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 @@ -147,6 +147,7 @@ if (CONFIG_CHIP_ENABLE_ICD_SUPPORT)
147
147
matter_add_gn_arg_bool ("chip_enable_icd_lit" CONFIG_CHIP_ICD_LIT_SUPPORT)
148
148
matter_add_gn_arg_bool ("chip_enable_icd_checkin" CONFIG_CHIP_ICD_CHECK_IN_SUPPORT)
149
149
matter_add_gn_arg_bool ("chip_enable_icd_user_active_mode_trigger" CONFIG_CHIP_ICD_UAT_SUPPORT)
150
+ matter_add_gn_arg_bool ("icd_enforce_sit_slow_poll_limit" TRUE )
150
151
endif ()
151
152
152
153
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 @@ -159,7 +159,9 @@ class ICDConfigurationData
159
159
System::Clock::Seconds32 mMaximumCheckInBackOff = System::Clock::Seconds32(CHIP_CONFIG_ICD_MAXIMUM_CHECK_IN_BACKOFF_SEC);
160
160
161
161
// SIT ICDs should have a SlowPollingThreshold shorter than or equal to 15s (spec 9.16.1.5)
162
- static constexpr System::Clock::Milliseconds32 kSITPollingThreshold = System::Clock::Milliseconds32(15000 );
162
+ static_assert ((CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT).count() <= 15000,
163
+ "Spec requires the maximum slow poll interval for the SIT device to be smaller or equal than 15 s.");
164
+ static constexpr System::Clock::Milliseconds32 kSITPollingThreshold = CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT;
163
165
System::Clock::Milliseconds32 mSlowPollingInterval = CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL;
164
166
System::Clock::Milliseconds32 mFastPollingInterval = CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL;
165
167
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 221
221
#endif // CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL
222
222
#endif // CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL
223
223
224
+ #ifndef CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT
225
+ #ifdef CONFIG_CHIP_ICD_SIT_SLOW_POLL_LIMIT
226
+ #define CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT chip::System::Clock::Milliseconds32(CONFIG_CHIP_ICD_SIT_SLOW_POLL_LIMIT)
227
+ #endif // CONFIG_CHIP_ICD_SIT_SLOW_POLL_LIMIT
228
+ #endif // CHIP_DEVICE_CONFIG_ICD_SIT_SLOW_POLL_LIMIT
229
+
224
230
#ifndef CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL
225
231
#ifdef CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL
226
232
#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