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)