diff --git a/examples/all-clusters-app/nxp/mw320/main.cpp b/examples/all-clusters-app/nxp/mw320/main.cpp index 4d30f9582eca91..bf7f1fc454fd4a 100644 --- a/examples/all-clusters-app/nxp/mw320/main.cpp +++ b/examples/all-clusters-app/nxp/mw320/main.cpp @@ -974,9 +974,6 @@ static void run_chip_srv(System::Layer * aSystemLayer, void * aAppState) // uint16_t unsecurePort = CHIP_UDC_PORT; // PRINTF("==> call chip::Server() \r\n"); - // PRINTF("Orig DNSS Discovery Timeout: %d sec \r\n", chip::app::DnssdServer::Instance().GetDiscoveryTimeoutSecs()); - // chip::app::DnssdServer::Instance().SetDiscoveryTimeoutSecs(60); - // chip::app::DnssdServer::Instance().SetDiscoveryTimeoutSecs(30); // chip::Server::GetInstance().Init(nullptr, securePort, unsecurePort); static chip::CommonCaseDeviceServerInitParams initParams; diff --git a/examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h b/examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h index 70233ed5396f29..e0b01be6a7a421 100644 --- a/examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h +++ b/examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h @@ -118,16 +118,6 @@ */ #define CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT (30 * 1000) -/** - * CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - * - * The amount of time in miliseconds after which BLE advertisement should be disabled, counting - * from the moment of slow advertisement commencement. - * - * Defaults to 9000000 (15 minutes). - */ -#define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT (15 * 60 * 1000) - /** * @def CHIP_CONFIG_MAX_FABRICS * diff --git a/examples/lock-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h b/examples/lock-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h index e353245107691c..26b42ea1acd871 100644 --- a/examples/lock-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h +++ b/examples/lock-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h @@ -118,16 +118,6 @@ */ #define CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT (30 * 1000) -/** - * CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - * - * The amount of time in miliseconds after which BLE advertisement should be disabled, counting - * from the moment of slow advertisement commencement. - * - * Defaults to 9000000 (15 minutes). - */ -#define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT (15 * 60 * 1000) - /** * @def CHIP_CONFIG_MAX_FABRICS * diff --git a/examples/pigweed-app/efr32/include/CHIPProjectConfig.h b/examples/pigweed-app/efr32/include/CHIPProjectConfig.h index 31021c1723ddf8..4bf2b06020dc06 100644 --- a/examples/pigweed-app/efr32/include/CHIPProjectConfig.h +++ b/examples/pigweed-app/efr32/include/CHIPProjectConfig.h @@ -150,13 +150,3 @@ * 30000 (30 secondes). */ #define CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT (30 * 1000) - -/** - * CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - * - * The amount of time in miliseconds after which BLE advertisement should be disabled, counting - * from the moment of slow advertisement commencement. - * - * Defaults to 9000000 (15 minutes). - */ -#define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT (15 * 60 * 1000) diff --git a/examples/platform/linux/CommissioneeShellCommands.cpp b/examples/platform/linux/CommissioneeShellCommands.cpp index 73cc376bd8db7e..bef012defbedeb 100644 --- a/examples/platform/linux/CommissioneeShellCommands.cpp +++ b/examples/platform/linux/CommissioneeShellCommands.cpp @@ -61,8 +61,14 @@ static CHIP_ERROR PrintAllCommands() #if CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY_CLIENT streamer_printf(sout, " sendudc
Send UDC message to address. Usage: commissionee sendudc ::1 5543\r\n"); #endif // CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY_CLIENT + // TODO: Figure out whether setdiscoverytimeout is a reasonable thing to do + // at all, and if so what semantics it should have. Presumably it should + // affect BLE discovery too, not just DNS-SD. How should it interact with + // explicit timeouts specified in OpenCommissioningWindow? +#if 0 streamer_printf( sout, " setdiscoverytimeout Set discovery timeout in seconds. Usage: commissionee setdiscoverytimeout 30\r\n"); +#endif #if CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY streamer_printf(sout, " setextendeddiscoverytimeout Set extendeddiscovery timeout in seconds. Usage: commissionee " @@ -94,6 +100,11 @@ static CHIP_ERROR CommissioneeHandler(int argc, char ** argv) return SendUDC(true, chip::Transport::PeerAddress::UDP(commissioner, port)); } #endif // CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY_CLIENT + // TODO: Figure out whether setdiscoverytimeout is a reasonable thing to do + // at all, and if so what semantics it should have. Presumably it should + // affect BLE discovery too, not just DNS-SD. How should it interact with + // explicit timeouts specified in OpenCommissioningWindow? +#if 0 if (strcmp(argv[0], "setdiscoverytimeout") == 0) { char * eptr; @@ -101,8 +112,9 @@ static CHIP_ERROR CommissioneeHandler(int argc, char ** argv) chip::app::DnssdServer::Instance().SetDiscoveryTimeoutSecs(timeout); return CHIP_NO_ERROR; } +#endif #if CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY - else if (strcmp(argv[0], "setextendeddiscoverytimeout") == 0) + if (strcmp(argv[0], "setextendeddiscoverytimeout") == 0) { char * eptr; int16_t timeout = (int16_t) strtol(argv[1], &eptr, 10); diff --git a/examples/shell/nxp/k32w/k32w0/include/CHIPProjectConfig.h b/examples/shell/nxp/k32w/k32w0/include/CHIPProjectConfig.h index cf249979512c0c..0d36467b3c07b9 100644 --- a/examples/shell/nxp/k32w/k32w0/include/CHIPProjectConfig.h +++ b/examples/shell/nxp/k32w/k32w0/include/CHIPProjectConfig.h @@ -125,16 +125,6 @@ */ #define CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT (30 * 1000) -/** - * CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - * - * The amount of time in miliseconds after which BLE advertisement should be disabled, counting - * from the moment of slow advertisement commencement. - * - * Defaults to 9000000 (15 minutes). - */ -#define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT (15 * 60 * 1000) - /** * @def CHIP_CONFIG_MAX_FABRICS * diff --git a/examples/window-app/efr32/include/CHIPProjectConfig.h b/examples/window-app/efr32/include/CHIPProjectConfig.h index 14ebab2b3009e8..4f69721d3d971e 100644 --- a/examples/window-app/efr32/include/CHIPProjectConfig.h +++ b/examples/window-app/efr32/include/CHIPProjectConfig.h @@ -154,16 +154,6 @@ */ #define CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT (30 * 1000) -/** - * CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - * - * The amount of time in miliseconds after which BLE advertisement should be disabled, counting - * from the moment of slow advertisement commencement. - * - * Defaults to 9000000 (15 minutes). - */ -#define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT (15 * 60 * 1000) - /** * @def CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL * diff --git a/src/app/server/Dnssd.cpp b/src/app/server/Dnssd.cpp index f9d466f92e0270..3b1d7d7c9f0042 100644 --- a/src/app/server/Dnssd.cpp +++ b/src/app/server/Dnssd.cpp @@ -107,12 +107,6 @@ void DnssdServer::OnExtendedDiscoveryExpiration(System::Layer * aSystemLayer, vo } #endif // CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY -/// Callback from Discovery Expiration timer -void HandleDiscoveryExpiration(System::Layer * aSystemLayer, void * aAppState) -{ - DnssdServer::Instance().OnDiscoveryExpiration(aSystemLayer, aAppState); -} - bool DnssdServer::OnExpiration(System::Clock::Timestamp expirationMs) { if (expirationMs == kTimeoutCleared) @@ -166,47 +160,6 @@ bool DnssdServer::OnExpiration(System::Clock::Timestamp expirationMs) return true; } -void DnssdServer::OnDiscoveryExpiration(System::Layer * aSystemLayer, void * aAppState) -{ - if (!DnssdServer::OnExpiration(mDiscoveryExpiration)) - { - ChipLogDetail(Discovery, "OnDiscoveryExpiration callback for cleared session"); - return; - } - - ChipLogDetail(Discovery, "OnDiscoveryExpiration callback for valid session"); - -#if CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY - int32_t extTimeout = GetExtendedDiscoveryTimeoutSecs(); - if (extTimeout != CHIP_DEVICE_CONFIG_DISCOVERY_DISABLED) - { - CHIP_ERROR err = AdvertiseCommissionableNode(chip::Dnssd::CommissioningMode::kDisabled); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Discovery, "Failed to advertise extended commissionable node: %" CHIP_ERROR_FORMAT, err.Format()); - } - // set timeout - ScheduleExtendedDiscoveryExpiration(); - } -#endif // CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY - - mDiscoveryExpiration = kTimeoutCleared; -} - -CHIP_ERROR DnssdServer::ScheduleDiscoveryExpiration() -{ - if (mDiscoveryTimeoutSecs == CHIP_DEVICE_CONFIG_DISCOVERY_NO_TIMEOUT) - { - return CHIP_NO_ERROR; - } - ChipLogDetail(Discovery, "Scheduling discovery timeout in %ds", mDiscoveryTimeoutSecs); - - mDiscoveryExpiration = mTimeSource.GetMonotonicTimestamp() + System::Clock::Seconds16(mDiscoveryTimeoutSecs); - - return DeviceLayer::SystemLayer().StartTimer(System::Clock::Seconds16(mDiscoveryTimeoutSecs), HandleDiscoveryExpiration, - nullptr); -} - #if CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY CHIP_ERROR DnssdServer::ScheduleExtendedDiscoveryExpiration() { @@ -455,13 +408,6 @@ void DnssdServer::StartServer(Dnssd::CommissioningMode mode) { ChipLogError(Discovery, "Failed to advertise commissionable node: %" CHIP_ERROR_FORMAT, err.Format()); } - - // If any fabrics exist, the commissioning window must have been opened by the administrator - // commissioning cluster commands which take care of the timeout. - if (!HaveOperationalCredentials()) - { - ScheduleDiscoveryExpiration(); - } } #if CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY else if (GetExtendedDiscoveryTimeoutSecs() != CHIP_DEVICE_CONFIG_DISCOVERY_DISABLED) diff --git a/src/app/server/Dnssd.h b/src/app/server/Dnssd.h index 86eab1f85d0d5a..af9cfaf6122e04 100644 --- a/src/app/server/Dnssd.h +++ b/src/app/server/Dnssd.h @@ -59,12 +59,6 @@ class DLL_EXPORT DnssdServer /// Gets the interface id used for advertising Inet::InterfaceId GetInterfaceId() { return mInterfaceId; } - /// Sets the factory-new state commissionable node discovery timeout - void SetDiscoveryTimeoutSecs(int16_t secs) { mDiscoveryTimeoutSecs = secs; } - - /// Gets the factory-new state commissionable node discovery timeout - int16_t GetDiscoveryTimeoutSecs() const { return mDiscoveryTimeoutSecs; } - // // Override the referenced fabric table from the default that is present // in Server::GetInstance().GetFabricTable() to something else. @@ -147,7 +141,6 @@ class DLL_EXPORT DnssdServer void ClearTimeouts() { - mDiscoveryExpiration = kTimeoutCleared; #if CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY mExtendedDiscoveryExpiration = kTimeoutCleared; #endif // CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY @@ -163,11 +156,6 @@ class DLL_EXPORT DnssdServer // Ephemeral discriminator to use instead of the default if set Optional mEphemeralDiscriminator; - /// schedule next discovery expiration - CHIP_ERROR ScheduleDiscoveryExpiration(); - int16_t mDiscoveryTimeoutSecs = CHIP_DEVICE_CONFIG_DISCOVERY_TIMEOUT_SECS; - System::Clock::Timestamp mDiscoveryExpiration = kTimeoutCleared; - Optional mExtendedDiscoveryTimeoutSecs = NullOptional; /// return true if expirationMs is valid (not cleared and not in the future) diff --git a/src/include/platform/CHIPDeviceConfig.h b/src/include/platform/CHIPDeviceConfig.h index 510d89f371e135..0a35aca535a85f 100644 --- a/src/include/platform/CHIPDeviceConfig.h +++ b/src/include/platform/CHIPDeviceConfig.h @@ -584,18 +584,6 @@ #define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME 30000 #endif -/** - * CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - * - * The amount of time in miliseconds after which BLE advertisement should be disabled, counting - * from the moment of advertisement commencement. - * - * Defaults to 9000000 (15 minutes). - */ -#ifndef CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT -#define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT (15 * 60 * 1000) -#endif - // -------------------- Time Sync Configuration -------------------- /** diff --git a/src/platform/Ameba/BLEManagerImpl.cpp b/src/platform/Ameba/BLEManagerImpl.cpp index 129f4ccd43dbca..5b81a1797de54d 100644 --- a/src/platform/Ameba/BLEManagerImpl.cpp +++ b/src/platform/Ameba/BLEManagerImpl.cpp @@ -127,8 +127,6 @@ const ChipBleUUID ChipUUID_CHIPoBLEChar_RX = { { 0x18, 0xEE, 0x2E, 0xF5, 0x26, 0 const ChipBleUUID ChipUUID_CHIPoBLEChar_TX = { { 0x18, 0xEE, 0x2E, 0xF5, 0x26, 0x3D, 0x45, 0x59, 0x95, 0x9F, 0x4F, 0x9C, 0x42, 0x9F, 0x9D, 0x12 } }; -static constexpr System::Clock::Timeout kAdvertiseTimeout = - System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT); static constexpr System::Clock::Timeout kFastAdvertiseTimeout = System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME); System::Clock::Timestamp mAdvertiseStartTime; @@ -380,7 +378,6 @@ CHIP_ERROR BLEManagerImpl::_SetAdvertisingEnabled(bool val) if (val) { mAdvertiseStartTime = System::SystemClock().GetMonotonicTimestamp(); - ReturnErrorOnFailure(DeviceLayer::SystemLayer().StartTimer(kAdvertiseTimeout, HandleAdvertisementTimer, this)); ReturnErrorOnFailure(DeviceLayer::SystemLayer().StartTimer(kFastAdvertiseTimeout, HandleFastAdvertisementTimer, this)); } @@ -396,22 +393,6 @@ CHIP_ERROR BLEManagerImpl::_SetAdvertisingEnabled(bool val) return err; } -void BLEManagerImpl::HandleAdvertisementTimer(System::Layer * systemLayer, void * context) -{ - static_cast(context)->HandleAdvertisementTimer(); -} - -void BLEManagerImpl::HandleAdvertisementTimer() -{ - System::Clock::Timestamp currentTimestamp = System::SystemClock().GetMonotonicTimestamp(); - - if (currentTimestamp - mAdvertiseStartTime >= kAdvertiseTimeout) - { - mFlags.Set(Flags::kAdvertisingEnabled, 0); - PlatformMgr().ScheduleWork(DriveBLEState, 0); - } -} - void BLEManagerImpl::HandleFastAdvertisementTimer(System::Layer * systemLayer, void * context) { static_cast(context)->HandleFastAdvertisementTimer(); diff --git a/src/platform/Ameba/BLEManagerImpl.h b/src/platform/Ameba/BLEManagerImpl.h index 734597e72150a1..1886a941da557d 100755 --- a/src/platform/Ameba/BLEManagerImpl.h +++ b/src/platform/Ameba/BLEManagerImpl.h @@ -144,8 +144,6 @@ class BLEManagerImpl final : public BLEManager, private BleLayer, private BlePla static void HandleFastAdvertisementTimer(System::Layer * systemLayer, void * context); void HandleFastAdvertisementTimer(); - static void HandleAdvertisementTimer(System::Layer * systemLayer, void * context); - void HandleAdvertisementTimer(); void HandleRXCharWrite(uint8_t *, uint16_t, uint8_t); void HandleTXCharRead(void * param); diff --git a/src/platform/EFR32/BLEManagerImpl.cpp b/src/platform/EFR32/BLEManagerImpl.cpp index 795b8404237e58..1d59f76d725bbc 100644 --- a/src/platform/EFR32/BLEManagerImpl.cpp +++ b/src/platform/EFR32/BLEManagerImpl.cpp @@ -691,7 +691,6 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) sl_status_t ret; uint32_t interval_min; uint32_t interval_max; - uint32_t BleAdvTimeoutMs; uint16_t numConnectionss = NumConnections(); uint8_t connectableAdv = (numConnectionss < kMaxConnections) ? sl_bt_advertiser_connectable_scannable : sl_bt_advertiser_scannable_non_connectable; @@ -718,15 +717,13 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) if (mFlags.Has(Flags::kFastAdvertisingEnabled)) { - interval_min = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MIN; - interval_max = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MAX; - BleAdvTimeoutMs = CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME; + interval_min = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MIN; + interval_max = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MAX; } else { - interval_min = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN; - interval_max = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX; - BleAdvTimeoutMs = CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT; + interval_min = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN; + interval_max = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX; } ret = sl_bt_advertiser_set_timing(advertising_set_handle, interval_min, interval_max, 0, 0); @@ -738,7 +735,10 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) if (SL_STATUS_OK == ret) { - StartBleAdvTimeoutTimer(BleAdvTimeoutMs); + if (mFlags.Has(Flags::kFastAdvertisingEnabled)) + { + StartBleAdvTimeoutTimer(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME); + } mFlags.Set(Flags::kAdvertising); } @@ -1076,12 +1076,6 @@ void BLEManagerImpl::BleAdvTimeoutHandler(TimerHandle_t xTimer) ChipLogDetail(DeviceLayer, "bleAdv Timeout : Start slow advertissment"); BLEMgr().SetAdvertisingMode(BLEAdvertisingMode::kSlowAdvertising); } - else if (BLEMgrImpl().mFlags.Has(Flags::kAdvertising)) - { - // Advertisement time expired. Stop advertising - ChipLogDetail(DeviceLayer, "bleAdv Timeout : Stop advertissement"); - BLEMgr().SetAdvertisingEnabled(false); - } } void BLEManagerImpl::CancelBleAdvTimeoutTimer(void) diff --git a/src/platform/ESP32/BLEManagerImpl.h b/src/platform/ESP32/BLEManagerImpl.h index 62ba2b79ba9097..b62fde05104e85 100644 --- a/src/platform/ESP32/BLEManagerImpl.h +++ b/src/platform/ESP32/BLEManagerImpl.h @@ -202,16 +202,12 @@ class BLEManagerImpl final : public BLEManager, CHIP_ERROR ConfigureAdvertisingData(void); CHIP_ERROR StartAdvertising(void); - static constexpr System::Clock::Timeout kAdvertiseTimeout = - System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT); static constexpr System::Clock::Timeout kFastAdvertiseTimeout = System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME); System::Clock::Timestamp mAdvertiseStartTime; static void HandleFastAdvertisementTimer(System::Layer * systemLayer, void * context); void HandleFastAdvertisementTimer(); - static void HandleAdvertisementTimer(System::Layer * systemLayer, void * context); - void HandleAdvertisementTimer(); #if CONFIG_BT_BLUEDROID_ENABLED void HandleGATTControlEvent(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t * param); diff --git a/src/platform/ESP32/bluedroid/BLEManagerImpl.cpp b/src/platform/ESP32/bluedroid/BLEManagerImpl.cpp index 783ae9f8d5405d..9242ea1d2fd86c 100644 --- a/src/platform/ESP32/bluedroid/BLEManagerImpl.cpp +++ b/src/platform/ESP32/bluedroid/BLEManagerImpl.cpp @@ -125,7 +125,6 @@ const uint16_t CHIPoBLEGATTAttrCount = sizeof(CHIPoBLEGATTAttrs) / sizeof(CHIPoB } // unnamed namespace BLEManagerImpl BLEManagerImpl::sInstance; -constexpr System::Clock::Timeout BLEManagerImpl::kAdvertiseTimeout; constexpr System::Clock::Timeout BLEManagerImpl::kFastAdvertiseTimeout; CHIP_ERROR BLEManagerImpl::_Init() @@ -179,7 +178,6 @@ CHIP_ERROR BLEManagerImpl::_SetAdvertisingEnabled(bool val) if (val) { mAdvertiseStartTime = System::SystemClock().GetMonotonicTimestamp(); - ReturnErrorOnFailure(DeviceLayer::SystemLayer().StartTimer(kAdvertiseTimeout, HandleAdvertisementTimer, this)); ReturnErrorOnFailure(DeviceLayer::SystemLayer().StartTimer(kFastAdvertiseTimeout, HandleFastAdvertisementTimer, this)); } mFlags.Set(Flags::kFastAdvertisingEnabled, val); @@ -190,22 +188,6 @@ CHIP_ERROR BLEManagerImpl::_SetAdvertisingEnabled(bool val) return err; } -void BLEManagerImpl::HandleAdvertisementTimer(System::Layer * systemLayer, void * context) -{ - static_cast(context)->HandleAdvertisementTimer(); -} - -void BLEManagerImpl::HandleAdvertisementTimer() -{ - System::Clock::Timestamp currentTimestamp = System::SystemClock().GetMonotonicTimestamp(); - - if (currentTimestamp - mAdvertiseStartTime >= kAdvertiseTimeout) - { - mFlags.Clear(Flags::kAdvertisingEnabled); - PlatformMgr().ScheduleWork(DriveBLEState, 0); - } -} - void BLEManagerImpl::HandleFastAdvertisementTimer(System::Layer * systemLayer, void * context) { static_cast(context)->HandleFastAdvertisementTimer(); diff --git a/src/platform/ESP32/nimble/BLEManagerImpl.cpp b/src/platform/ESP32/nimble/BLEManagerImpl.cpp index 45f2c8af849916..ae99c64299e9fe 100644 --- a/src/platform/ESP32/nimble/BLEManagerImpl.cpp +++ b/src/platform/ESP32/nimble/BLEManagerImpl.cpp @@ -95,7 +95,6 @@ SemaphoreHandle_t semaphoreHandle = NULL; } // unnamed namespace BLEManagerImpl BLEManagerImpl::sInstance; -constexpr System::Clock::Timeout BLEManagerImpl::kAdvertiseTimeout; constexpr System::Clock::Timeout BLEManagerImpl::kFastAdvertiseTimeout; const struct ble_gatt_svc_def BLEManagerImpl::CHIPoBLEGATTAttrs[] = { @@ -185,7 +184,6 @@ CHIP_ERROR BLEManagerImpl::_SetAdvertisingEnabled(bool val) if (val) { mAdvertiseStartTime = System::SystemClock().GetMonotonicTimestamp(); - ReturnErrorOnFailure(DeviceLayer::SystemLayer().StartTimer(kAdvertiseTimeout, HandleAdvertisementTimer, this)); ReturnErrorOnFailure(DeviceLayer::SystemLayer().StartTimer(kFastAdvertiseTimeout, HandleFastAdvertisementTimer, this)); } @@ -198,22 +196,6 @@ CHIP_ERROR BLEManagerImpl::_SetAdvertisingEnabled(bool val) return err; } -void BLEManagerImpl::HandleAdvertisementTimer(System::Layer * systemLayer, void * context) -{ - static_cast(context)->HandleAdvertisementTimer(); -} - -void BLEManagerImpl::HandleAdvertisementTimer() -{ - System::Clock::Timestamp currentTimestamp = System::SystemClock().GetMonotonicTimestamp(); - - if (currentTimestamp - mAdvertiseStartTime >= kAdvertiseTimeout) - { - mFlags.Set(Flags::kAdvertisingEnabled, 0); - PlatformMgr().ScheduleWork(DriveBLEState, 0); - } -} - void BLEManagerImpl::HandleFastAdvertisementTimer(System::Layer * systemLayer, void * context) { static_cast(context)->HandleFastAdvertisementTimer(); diff --git a/src/platform/P6/cycfg_gap.h b/src/platform/P6/cycfg_gap.h index d6d0c59530e252..6243c64d8fb68d 100644 --- a/src/platform/P6/cycfg_gap.h +++ b/src/platform/P6/cycfg_gap.h @@ -73,7 +73,7 @@ #define CY_BT_LOW_DUTY_ADV_MIN_INTERVAL CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN #define CY_BT_LOW_DUTY_ADV_MAX_INTERVAL CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX #define CY_BT_LOW_DUTY_ADV_DURATION \ - (CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME) / 1000 + (CHIP_DEVICE_CONFIG_DISCOVERY_TIMEOUT_SECS * 1000 - CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME) / 1000 #define CY_BT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL 400 #define CY_BT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL 800 diff --git a/src/platform/Zephyr/BLEManagerImpl.cpp b/src/platform/Zephyr/BLEManagerImpl.cpp index 2e7f44e50fe88f..6eaa2b611ea952 100644 --- a/src/platform/Zephyr/BLEManagerImpl.cpp +++ b/src/platform/Zephyr/BLEManagerImpl.cpp @@ -324,14 +324,6 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME), HandleBLEAdvertisementIntervalChange, this); } - - // Start timer to disable CHIPoBLE advertisement after timeout expiration only if it isn't advertising rerun (in that case - // timer is already running). - if (!isAdvertisingRerun) - { - DeviceLayer::SystemLayer().StartTimer(System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT), - HandleBLEAdvertisementTimeout, this); - } } return CHIP_NO_ERROR; @@ -358,9 +350,6 @@ CHIP_ERROR BLEManagerImpl::StopAdvertising(void) ReturnErrorOnFailure(PlatformMgr().PostEvent(&advChange)); } - // Cancel timer event disabling CHIPoBLE advertisement after timeout expiration - DeviceLayer::SystemLayer().CancelTimer(HandleBLEAdvertisementTimeout, this); - // Cancel timer event changing CHIPoBLE advertisement interval DeviceLayer::SystemLayer().CancelTimer(HandleBLEAdvertisementIntervalChange, this); } @@ -605,12 +594,6 @@ CHIP_ERROR BLEManagerImpl::PrepareC3CharData() } #endif -void BLEManagerImpl::HandleBLEAdvertisementTimeout(System::Layer * layer, void * param) -{ - BLEMgr().SetAdvertisingEnabled(false); - ChipLogProgress(DeviceLayer, "CHIPoBLE advertising disabled because of timeout expired"); -} - void BLEManagerImpl::HandleBLEAdvertisementIntervalChange(System::Layer * layer, void * param) { BLEMgr().SetAdvertisingMode(BLEAdvertisingMode::kSlowAdvertising); diff --git a/src/platform/Zephyr/BLEManagerImpl.h b/src/platform/Zephyr/BLEManagerImpl.h index 5a6d69d40fdbc2..238d563b5582dc 100644 --- a/src/platform/Zephyr/BLEManagerImpl.h +++ b/src/platform/Zephyr/BLEManagerImpl.h @@ -139,7 +139,6 @@ class BLEManagerImpl final : public BLEManager, private BleLayer, private BlePla static void HandleTXIndicated(bt_conn * conn, IndicationAttrType attr, uint8_t err); static void HandleConnect(bt_conn * conn, uint8_t err); static void HandleDisconnect(bt_conn * conn, uint8_t reason); - static void HandleBLEAdvertisementTimeout(System::Layer * layer, void * param); static void HandleBLEAdvertisementIntervalChange(System::Layer * layer, void * param); // ===== Members for internal use by the following friends. diff --git a/src/platform/bouffalolab/BL602/BLEManagerImpl.cpp b/src/platform/bouffalolab/BL602/BLEManagerImpl.cpp index 8c577f1741dfb2..4ed04876557915 100644 --- a/src/platform/bouffalolab/BL602/BLEManagerImpl.cpp +++ b/src/platform/bouffalolab/BL602/BLEManagerImpl.cpp @@ -292,7 +292,7 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) if (!isAdvertisingRerun) { #if CONFIG_BT_PRIVACY - static_assert((CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT / 1000) <= CONFIG_BT_RPA_TIMEOUT, + static_assert(CHIP_DEVICE_CONFIG_DISCOVERY_TIMEOUT_SECS <= CONFIG_BT_RPA_TIMEOUT, "BLE advertising timeout is too long relative to RPA timeout"); // Generate new private BLE address bt_le_oob bleOobInfo; @@ -330,14 +330,6 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME), HandleBLEAdvertisementIntervalChange, this); } - - // Start timer to disable CHIPoBLE advertisement after timeout expiration only if it isn't advertising rerun (in that case - // timer is already running). - if (!isAdvertisingRerun) - { - DeviceLayer::SystemLayer().StartTimer(System::Clock::Milliseconds32(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT), - HandleBLEAdvertisementTimeout, this); - } } return CHIP_NO_ERROR; @@ -364,9 +356,6 @@ CHIP_ERROR BLEManagerImpl::StopAdvertising(void) PlatformMgr().PostEvent(&advChange); } - // Cancel timer event disabling CHIPoBLE advertisement after timeout expiration - DeviceLayer::SystemLayer().CancelTimer(HandleBLEAdvertisementTimeout, this); - // Cancel timer event changing CHIPoBLE advertisement interval DeviceLayer::SystemLayer().CancelTimer(HandleBLEAdvertisementIntervalChange, this); } @@ -577,12 +566,6 @@ CHIP_ERROR BLEManagerImpl::HandleTXCharComplete(const ChipDeviceEvent * event) return CHIP_NO_ERROR; } -void BLEManagerImpl::HandleBLEAdvertisementTimeout(System::Layer * layer, void * param) -{ - BLEMgr().SetAdvertisingEnabled(false); - ChipLogProgress(DeviceLayer, "CHIPoBLE advertising disabled because of timeout expired"); -} - void BLEManagerImpl::HandleBLEAdvertisementIntervalChange(System::Layer * layer, void * param) { BLEMgr().SetAdvertisingMode(BLEAdvertisingMode::kSlowAdvertising); diff --git a/src/platform/bouffalolab/BL602/BLEManagerImpl.h b/src/platform/bouffalolab/BL602/BLEManagerImpl.h index 44d65d503a78b4..e4c8e64341a8db 100644 --- a/src/platform/bouffalolab/BL602/BLEManagerImpl.h +++ b/src/platform/bouffalolab/BL602/BLEManagerImpl.h @@ -123,7 +123,6 @@ class BLEManagerImpl final : public BLEManager, private BleLayer, private BlePla static void HandleTXCompleted(bt_conn * conn, void * param); static void HandleConnect(bt_conn * conn, uint8_t err); static void HandleDisconnect(bt_conn * conn, uint8_t reason); - static void HandleBLEAdvertisementTimeout(System::Layer * layer, void * param); static void HandleBLEAdvertisementIntervalChange(System::Layer * layer, void * param); // ===== Members for internal use by the following friends. diff --git a/src/platform/nxp/k32w/k32w0/BLEManagerImpl.cpp b/src/platform/nxp/k32w/k32w0/BLEManagerImpl.cpp index cc46ea6602a4b8..44a9c0c7890d46 100644 --- a/src/platform/nxp/k32w/k32w0/BLEManagerImpl.cpp +++ b/src/platform/nxp/k32w/k32w0/BLEManagerImpl.cpp @@ -885,21 +885,15 @@ CHIP_ERROR BLEManagerImpl::ConfigureAdvertisingData(void) CHIP_ERROR BLEManagerImpl::StartAdvertising(void) { - CHIP_ERROR err = CHIP_NO_ERROR; - uint32_t bleAdvTimeoutMs = 0; + CHIP_ERROR err = CHIP_NO_ERROR; mFlags.Set(Flags::kAdvertising); mFlags.Clear(Flags::kRestartAdvertising); if (mFlags.Has(Flags::kFastAdvertisingEnabled)) { - bleAdvTimeoutMs = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT; - } - else - { - bleAdvTimeoutMs = CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT; + StartBleAdvTimeoutTimer(CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT); } - StartBleAdvTimeoutTimer(bleAdvTimeoutMs); err = ConfigureAdvertisingData(); @@ -1557,13 +1551,6 @@ void BLEManagerImpl::BleAdvTimeoutHandler(TimerHandle_t xTimer) // stop advertiser, change interval and restart it; sInstance.StopAdvertising(); sInstance.StartAdvertising(); - sInstance.StartBleAdvTimeoutTimer(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT); // Slow advertise for 15 Minutes - } - else if (sInstance._IsAdvertisingEnabled()) - { - // advertisement expired. we stop advertissing - ChipLogDetail(DeviceLayer, "bleAdv Timeout : Stop advertisement"); - sInstance.StopAdvertising(); } return; diff --git a/src/platform/qpg/BLEManagerImpl.cpp b/src/platform/qpg/BLEManagerImpl.cpp index 0a0288c2381850..b9eb7f831f3124 100644 --- a/src/platform/qpg/BLEManagerImpl.cpp +++ b/src/platform/qpg/BLEManagerImpl.cpp @@ -515,7 +515,6 @@ CHIP_ERROR BLEManagerImpl::ConfigureAdvertisingData(void) CHIP_ERROR BLEManagerImpl::StartAdvertising(void) { CHIP_ERROR err; - uint32_t bleAdvTimeout; uint16_t intervalMin; uint16_t intervalMax; @@ -537,15 +536,13 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) if (mFlags.Has(Flags::kFastAdvertisingEnabled)) { - intervalMin = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MIN; - intervalMax = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MAX; - bleAdvTimeout = CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME; + intervalMin = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MIN; + intervalMax = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MAX; } else { - intervalMin = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN; - intervalMax = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX; - bleAdvTimeout = CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME; + intervalMin = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN; + intervalMax = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX; } qvCHIP_BleSetAdvInterval(intervalMin, intervalMax); @@ -554,7 +551,10 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) SuccessOrExit(err); mFlags.Set(Flags::kAdvertising); - StartBleAdvTimeoutTimer(bleAdvTimeout); + if (mFlags.Has(Flags::kFastAdvertisingEnabled)) + { + StartBleAdvTimeoutTimer(CHIP_DEVICE_CONFIG_BLE_ADVERTISING_INTERVAL_CHANGE_TIME); + } exit: return err; @@ -936,12 +936,6 @@ void BLEManagerImpl::BleAdvTimeoutHandler(TimerHandle_t xTimer) sInstance.mFlags.Set(Flags::kRestartAdvertising); sInstance.StopAdvertising(); } - else if (BLEMgrImpl().mFlags.Has(Flags::kAdvertising)) - { - // Advertisement time expired. Stop advertising - ChipLogDetail(DeviceLayer, "bleAdv Timeout : Stop advertissement"); - BLEMgr().SetAdvertisingEnabled(false); - } } void BLEManagerImpl::CancelBleAdvTimeoutTimer(void) diff --git a/src/test_driver/efr32/include/CHIPProjectConfig.h b/src/test_driver/efr32/include/CHIPProjectConfig.h index a444e6f97d967a..032c45ce5b2e4b 100644 --- a/src/test_driver/efr32/include/CHIPProjectConfig.h +++ b/src/test_driver/efr32/include/CHIPProjectConfig.h @@ -141,13 +141,3 @@ * 30000 (30 secondes). */ #define CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_TIMEOUT (30 * 1000) - -/** - * CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT - * - * The amount of time in miliseconds after which BLE advertisement should be disabled, counting - * from the moment of slow advertisement commencement. - * - * Defaults to 9000000 (15 minutes). - */ -#define CHIP_DEVICE_CONFIG_BLE_ADVERTISING_TIMEOUT (15 * 60 * 1000)