File tree 5 files changed +32
-1
lines changed
5 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -152,6 +152,7 @@ if (CONFIG_CHIP_ENABLE_ICD_SUPPORT)
152
152
matter_add_gn_arg_bool ("chip_enable_icd_lit" CONFIG_CHIP_ICD_LIT_SUPPORT)
153
153
matter_add_gn_arg_bool ("chip_enable_icd_checkin" CONFIG_CHIP_ICD_CHECK_IN_SUPPORT)
154
154
matter_add_gn_arg_bool ("chip_enable_icd_user_active_mode_trigger" CONFIG_CHIP_ICD_UAT_SUPPORT)
155
+ matter_add_gn_arg_bool ("icd_enforce_sit_slow_poll_limit" TRUE )
155
156
endif ()
156
157
157
158
if (CONFIG_CHIP_FACTORY_DATA OR CONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND)
Original file line number Diff line number Diff line change @@ -354,6 +354,15 @@ config CHIP_ICD_SLOW_POLL_INTERVAL
354
354
device is in the idle mode. It determines the fastest frequency at which the device will be able
355
355
to receive the messages in the idle mode.
356
356
357
+ config CHIP_ICD_SIT_SLOW_POLL_LIMIT
358
+ int "Intermittently Connected Device slow polling interval limit for device in SIT mode (ms)"
359
+ default 15000
360
+ range 0 15000
361
+ help
362
+ Provides the limit for Intermittently Connected Device slow polling interval in milliseconds while the
363
+ device is in the SIT mode. By spec, this value cannot exceed 15 s (spec 9.16.1.5). This value can be
364
+ used for the LIT device, to limit the slow poll interval used while temporarily working in the SIT mode.
365
+
357
366
config CHIP_ICD_FAST_POLLING_INTERVAL
358
367
int "Intermittently Connected Device fast polling interval (ms)"
359
368
default 200
Original file line number Diff line number Diff line change @@ -149,7 +149,9 @@ class ICDConfigurationData
149
149
uint16_t mFabricClientsSupported = CHIP_CONFIG_ICD_CLIENTS_SUPPORTED_PER_FABRIC;
150
150
151
151
// SIT ICDs should have a SlowPollingThreshold shorter than or equal to 15s (spec 9.16.1.5)
152
- static constexpr System::Clock::Milliseconds32 kSITPollingThreshold = System::Clock::Milliseconds32(15000 );
152
+ static_assert ((CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT).count() <= 15000,
153
+ "Spec requires the maximum slow poll interval for the SIT device to be smaller or equal than 15 s.");
154
+ static constexpr System::Clock::Milliseconds32 kSITPollingThreshold = CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT;
153
155
System::Clock::Milliseconds32 mSlowPollingInterval = CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL;
154
156
System::Clock::Milliseconds32 mFastPollingInterval = CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL;
155
157
Original file line number Diff line number Diff line change 146
146
#define CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL System::Clock::Milliseconds32(5000)
147
147
#endif
148
148
149
+ /**
150
+ * CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT
151
+ *
152
+ * The maximum value of time in milliseconds that the sleepy end device can use as an idle interval in the SIT mode.
153
+ * The Matter spec does not allow this value to exceed 15s (spec 9.16.1.5).
154
+ * For the SIT device, the usability of this value is arguable, as slow poll interval can be configured using
155
+ * CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL. This value can be used for the LIT device, to limit the slow poll interval used while
156
+ * temporarily working in the SIT mode.
157
+ */
158
+ #ifndef CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT
159
+ #define CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT System::Clock::Milliseconds32(15000)
160
+ #endif
161
+
149
162
/**
150
163
* CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL
151
164
*
Original file line number Diff line number Diff line change 212
212
#endif // CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL
213
213
#endif // CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL
214
214
215
+ #ifndef CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT
216
+ #ifdef CONFIG_CHIP_ICD_SIT_SLOW_POLL_LIMIT
217
+ #define CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT chip::System::Clock::Milliseconds32(CONFIG_CHIP_ICD_SIT_SLOW_POLL_LIMIT)
218
+ #endif // CONFIG_CHIP_ICD_SIT_SLOW_POLL_LIMIT
219
+ #endif // CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT
220
+
215
221
#ifndef CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL
216
222
#ifdef CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL
217
223
#define CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL chip::System::Clock::Milliseconds32(CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL)
You can’t perform that action at this time.
0 commit comments