diff --git a/src/core/openthread-core-default-config.h b/src/core/openthread-core-default-config.h index 8bd0dea49..92b9578c1 100644 --- a/src/core/openthread-core-default-config.h +++ b/src/core/openthread-core-default-config.h @@ -1776,4 +1776,35 @@ #define OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH "tmp" #endif +/** + * @def OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS + * + * This setting configures the number of consecutive MCPS.DATA-Confirms having Status NO_ACK + * that cause a Child-to-Parent link to be considered broken. + * + */ +#ifndef OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS +#define OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS 4 +#endif + +/** + * @def OPENTHREAD_CONFIG_MINIMUM_POLL_PERIOD + * + * This setting configures the minimum poll period in milliseconds. + * + */ +#ifndef OPENTHREAD_CONFIG_MINIMUM_POLL_PERIOD +#define OPENTHREAD_CONFIG_MINIMUM_POLL_PERIOD 10 +#endif + +/** + * @def OPENTHREAD_CONFIG_RETX_POLL_PERIOD + * + * This setting configures the retx poll period in milliseconds. + * + */ +#ifndef OPENTHREAD_CONFIG_RETX_POLL_PERIOD +#define OPENTHREAD_CONFIG_RETX_POLL_PERIOD 1000 +#endif + #endif // OPENTHREAD_CORE_DEFAULT_CONFIG_H_ diff --git a/src/core/thread/data_poll_manager.hpp b/src/core/thread/data_poll_manager.hpp index 03b3d1dd6..aa9d11db6 100644 --- a/src/core/thread/data_poll_manager.hpp +++ b/src/core/thread/data_poll_manager.hpp @@ -196,16 +196,17 @@ private: enum // Poll period under different conditions (in milliseconds). { kAttachDataPollPeriod = OPENTHREAD_CONFIG_ATTACH_DATA_POLL_PERIOD, ///< Poll period during attach. - kRetxPollPeriod = 1000, ///< Poll retx period due to tx failure. + kRetxPollPeriod = OPENTHREAD_CONFIG_RETX_POLL_PERIOD, ///< Poll retx period due to tx failure. kNoBufferRetxPollPeriod = 200, ///< Poll retx due to no buffer space. kFastPollPeriod = 188, ///< Period used for fast polls. - kMinPollPeriod = 10, ///< Minimum allowed poll period. + kMinPollPeriod = OPENTHREAD_CONFIG_MINIMUM_POLL_PERIOD, ///< Minimum allowed poll period. }; enum { kQuickPollsAfterTimeout = 5, ///< Maximum number of quick data poll tx in case of back-to-back poll timeouts. - kMaxPollRetxAttempts = 5, ///< Maximum number of retransmit attempts of data poll (mac data request). + kMaxPollRetxAttempts = OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS, ///< Maximum number of retransmit attempts + ///< of data poll (mac data request). }; enum PollPeriodSelector diff --git a/src/core/thread/mle_constants.hpp b/src/core/thread/mle_constants.hpp index 3c1c7b1ac..bdb3800da 100644 --- a/src/core/thread/mle_constants.hpp +++ b/src/core/thread/mle_constants.hpp @@ -48,7 +48,7 @@ enum { kMaxChildren = OPENTHREAD_CONFIG_MAX_CHILDREN, kMaxChildKeepAliveAttempts = 4, ///< Maximum keep alive attempts before attempting to reattach to a new Parent - kFailedChildTransmissions = 4, ///< FAILED_CHILD_TRANSMISSIONS + kFailedChildTransmissions = OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS, ///< FAILED_CHILD_TRANSMISSIONS }; /** @@ -74,7 +74,13 @@ enum kMaxChildIdRequestTimeout = 5000, ///< Maximum delay for receiving a Child ID Request kMaxChildUpdateResponseTimeout = 2000, ///< Maximum delay for receiving a Child Update Response kMaxLinkRequestTimeout = 2000, ///< Maximum delay for receiving a Link Accept - kMinTimeout = (((kMaxChildKeepAliveAttempts + 1) * kUnicastRetransmissionDelay) / 1000), ///< Minimum timeout(s) + kMinTimeoutKeepAlive = (((kMaxChildKeepAliveAttempts + 1) * kUnicastRetransmissionDelay) / + 1000), ///< Minimum timeout(s) for keep alive + kMinTimeoutDataPoll = (OPENTHREAD_CONFIG_MINIMUM_POLL_PERIOD + + OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS * OPENTHREAD_CONFIG_RETX_POLL_PERIOD) / + 1000, ///< Minimum timeout(s) for data poll + kMinTimeout = (kMinTimeoutKeepAlive >= kMinTimeoutDataPoll ? kMinTimeoutKeepAlive + : kMinTimeoutDataPoll), ///< Minimum timeout(s) }; enum diff --git a/tests/scripts/thread-cert/Cert_5_1_02_ChildAddressTimeout.py b/tests/scripts/thread-cert/Cert_5_1_02_ChildAddressTimeout.py index e130ae350..bc77d06e2 100755 --- a/tests/scripts/thread-cert/Cert_5_1_02_ChildAddressTimeout.py +++ b/tests/scripts/thread-cert/Cert_5_1_02_ChildAddressTimeout.py @@ -65,13 +65,13 @@ class Cert_5_1_02_ChildAddressTimeout(unittest.TestCase): self.nodes[ED].set_panid(0xface) self.nodes[ED].set_mode('rsn') - self.nodes[ED].set_timeout(3) + self.nodes[ED].set_timeout(config.DEFAULT_CHILD_TIMEOUT) self.nodes[ED].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[ED].enable_whitelist() self.nodes[SED].set_panid(0xface) self.nodes[SED].set_mode('sn') - self.nodes[SED].set_timeout(3) + self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT) self.nodes[SED].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED].enable_whitelist() diff --git a/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py b/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py index d6833e71a..820eb04fe 100755 --- a/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py +++ b/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py @@ -66,7 +66,7 @@ class Cert_5_1_07_MaxChildCount(unittest.TestCase): self.nodes[i].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[ROUTER].add_whitelist(self.nodes[i].get_addr64()) self.nodes[i].enable_whitelist() - self.nodes[i].set_timeout(3) + self.nodes[i].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_3_02_RealmLocal.py b/tests/scripts/thread-cert/Cert_5_3_02_RealmLocal.py index 22221bfbc..aa2e77add 100755 --- a/tests/scripts/thread-cert/Cert_5_3_02_RealmLocal.py +++ b/tests/scripts/thread-cert/Cert_5_3_02_RealmLocal.py @@ -70,7 +70,7 @@ class Cert_5_3_2_RealmLocal(unittest.TestCase): self.nodes[SED1].set_mode('sn') self.nodes[SED1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_3_09_AddressQuery.py b/tests/scripts/thread-cert/Cert_5_3_09_AddressQuery.py index 9a913c911..3144c884a 100755 --- a/tests/scripts/thread-cert/Cert_5_3_09_AddressQuery.py +++ b/tests/scripts/thread-cert/Cert_5_3_09_AddressQuery.py @@ -80,7 +80,7 @@ class Cert_5_3_09_AddressQuery(unittest.TestCase): self.nodes[SED1].set_panid(0xface) self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64()) - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) self.nodes[SED1].enable_whitelist() def tearDown(self): diff --git a/tests/scripts/thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py b/tests/scripts/thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py index 9b52d7190..5142f94c7 100755 --- a/tests/scripts/thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py +++ b/tests/scripts/thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py @@ -70,7 +70,7 @@ class Cert_5_6_1_NetworkDataLeaderAsBr(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py b/tests/scripts/thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py index 6f8a17c74..751c1bddf 100755 --- a/tests/scripts/thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py +++ b/tests/scripts/thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py @@ -70,7 +70,7 @@ class Cert_5_6_2_NetworkDataRouterAsBr(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[LEADER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py b/tests/scripts/thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py index 81d7d680c..26e9cfef2 100755 --- a/tests/scripts/thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py +++ b/tests/scripts/thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py @@ -70,7 +70,7 @@ class Cert_5_6_3_NetworkDataRegisterAfterAttachLeader(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py b/tests/scripts/thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py index 900d27e5b..4c049e138 100755 --- a/tests/scripts/thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py +++ b/tests/scripts/thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py @@ -70,7 +70,7 @@ class Cert_5_6_4_NetworkDataRegisterAfterAttachRouter(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py b/tests/scripts/thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py index 00a673b8e..38c01dd65 100755 --- a/tests/scripts/thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py +++ b/tests/scripts/thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py @@ -70,7 +70,7 @@ class Cert_5_6_5_NetworkDataRegisterAfterAttachRouter(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_6_06_NetworkDataExpiration.py b/tests/scripts/thread-cert/Cert_5_6_06_NetworkDataExpiration.py index a67d093ba..42c898557 100755 --- a/tests/scripts/thread-cert/Cert_5_6_06_NetworkDataExpiration.py +++ b/tests/scripts/thread-cert/Cert_5_6_06_NetworkDataExpiration.py @@ -70,7 +70,7 @@ class Cert_5_6_6_NetworkDataExpiration(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_5_6_09_NetworkDataForwarding.py b/tests/scripts/thread-cert/Cert_5_6_09_NetworkDataForwarding.py index 381d2f94d..4cc4c763e 100755 --- a/tests/scripts/thread-cert/Cert_5_6_09_NetworkDataForwarding.py +++ b/tests/scripts/thread-cert/Cert_5_6_09_NetworkDataForwarding.py @@ -78,7 +78,7 @@ class Cert_5_6_9_NetworkDataForwarding(unittest.TestCase): self.nodes[SED].set_mode('s') self.nodes[SED].add_whitelist(self.nodes[ROUTER1].get_addr64()) self.nodes[SED].enable_whitelist() - self.nodes[SED].set_timeout(3) + self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_6_5_01_ChildResetSynchronize.py b/tests/scripts/thread-cert/Cert_6_5_01_ChildResetSynchronize.py index 6631f63c4..dd20110af 100755 --- a/tests/scripts/thread-cert/Cert_6_5_01_ChildResetSynchronize.py +++ b/tests/scripts/thread-cert/Cert_6_5_01_ChildResetSynchronize.py @@ -51,7 +51,7 @@ class Cert_6_5_1_ChildResetSynchronize(unittest.TestCase): self.nodes[ED].set_panid(0xface) self.nodes[ED].set_mode('rsn') - self.nodes[ED].set_timeout(3) + self.nodes[ED].set_timeout(config.DEFAULT_CHILD_TIMEOUT) self._setUpEd() def _setUpEd(self): diff --git a/tests/scripts/thread-cert/Cert_7_1_01_BorderRouterAsLeader.py b/tests/scripts/thread-cert/Cert_7_1_01_BorderRouterAsLeader.py index cdd2eeb07..eaba7fcaa 100755 --- a/tests/scripts/thread-cert/Cert_7_1_01_BorderRouterAsLeader.py +++ b/tests/scripts/thread-cert/Cert_7_1_01_BorderRouterAsLeader.py @@ -65,7 +65,7 @@ class Cert_7_1_1_BorderRouterAsLeader(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[LEADER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) self.nodes[ED1].set_panid(0xface) self.nodes[ED1].set_mode('rsn') diff --git a/tests/scripts/thread-cert/Cert_7_1_02_BorderRouterAsRouter.py b/tests/scripts/thread-cert/Cert_7_1_02_BorderRouterAsRouter.py index aef3a6ae2..4eef8bcd5 100755 --- a/tests/scripts/thread-cert/Cert_7_1_02_BorderRouterAsRouter.py +++ b/tests/scripts/thread-cert/Cert_7_1_02_BorderRouterAsRouter.py @@ -70,7 +70,7 @@ class Cert_7_1_2_BorderRouterAsRouter(unittest.TestCase): self.nodes[SED2].set_mode('s') self.nodes[SED2].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED2].enable_whitelist() - self.nodes[SED2].set_timeout(3) + self.nodes[SED2].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_7_1_03_BorderRouterAsLeader.py b/tests/scripts/thread-cert/Cert_7_1_03_BorderRouterAsLeader.py index 5618bfca3..daf6622ef 100755 --- a/tests/scripts/thread-cert/Cert_7_1_03_BorderRouterAsLeader.py +++ b/tests/scripts/thread-cert/Cert_7_1_03_BorderRouterAsLeader.py @@ -65,7 +65,7 @@ class Cert_7_1_3_BorderRouterAsLeader(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[LEADER].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) self.nodes[ED1].set_panid(0xface) self.nodes[ED1].set_mode('rsn') diff --git a/tests/scripts/thread-cert/Cert_7_1_04_BorderRouterAsRouter.py b/tests/scripts/thread-cert/Cert_7_1_04_BorderRouterAsRouter.py index 817295128..d07f0dd11 100755 --- a/tests/scripts/thread-cert/Cert_7_1_04_BorderRouterAsRouter.py +++ b/tests/scripts/thread-cert/Cert_7_1_04_BorderRouterAsRouter.py @@ -70,7 +70,7 @@ class Cert_7_1_4_BorderRouterAsRouter(unittest.TestCase): self.nodes[SED2].set_mode('s') self.nodes[SED2].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED2].enable_whitelist() - self.nodes[SED2].set_timeout(3) + self.nodes[SED2].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_7_1_05_BorderRouterAsRouter.py b/tests/scripts/thread-cert/Cert_7_1_05_BorderRouterAsRouter.py index 53f0d552b..5800c94bb 100755 --- a/tests/scripts/thread-cert/Cert_7_1_05_BorderRouterAsRouter.py +++ b/tests/scripts/thread-cert/Cert_7_1_05_BorderRouterAsRouter.py @@ -70,7 +70,7 @@ class Cert_7_1_5_BorderRouterAsRouter(unittest.TestCase): self.nodes[SED2].set_mode('s') self.nodes[SED2].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[SED2].enable_whitelist() - self.nodes[SED2].set_timeout(3) + self.nodes[SED2].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_9_2_08_PersistentDatasets.py b/tests/scripts/thread-cert/Cert_9_2_08_PersistentDatasets.py index 4bb5fff0a..f07e8bff1 100755 --- a/tests/scripts/thread-cert/Cert_9_2_08_PersistentDatasets.py +++ b/tests/scripts/thread-cert/Cert_9_2_08_PersistentDatasets.py @@ -92,12 +92,12 @@ class Cert_9_2_8_PersistentDatasets(unittest.TestCase): def _setUpEd(self): self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64()) self.nodes[ED].enable_whitelist() - self.nodes[ED].set_timeout(3) + self.nodes[ED].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def _setUpSed(self): self.nodes[SED].add_whitelist(self.nodes[LEADER].get_addr64()) self.nodes[SED].enable_whitelist() - self.nodes[SED].set_timeout(3) + self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_9_2_10_PendingPartition.py b/tests/scripts/thread-cert/Cert_9_2_10_PendingPartition.py index ee0107973..557fbac14 100755 --- a/tests/scripts/thread-cert/Cert_9_2_10_PendingPartition.py +++ b/tests/scripts/thread-cert/Cert_9_2_10_PendingPartition.py @@ -88,7 +88,7 @@ class Cert_9_2_10_PendingPartition(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_9_2_11_MasterKey.py b/tests/scripts/thread-cert/Cert_9_2_11_MasterKey.py index 8d863bb54..3eb9eb3e5 100755 --- a/tests/scripts/thread-cert/Cert_9_2_11_MasterKey.py +++ b/tests/scripts/thread-cert/Cert_9_2_11_MasterKey.py @@ -89,7 +89,7 @@ class Cert_9_2_11_MasterKey(unittest.TestCase): self.nodes[SED1].set_mode('s') self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_9_2_17_Orphan.py b/tests/scripts/thread-cert/Cert_9_2_17_Orphan.py index 201b75918..d41199113 100755 --- a/tests/scripts/thread-cert/Cert_9_2_17_Orphan.py +++ b/tests/scripts/thread-cert/Cert_9_2_17_Orphan.py @@ -66,7 +66,7 @@ class Cert_9_2_17_Orphan(unittest.TestCase): self.nodes[ED1].set_panid(PANID_INIT) self.nodes[ED1].add_whitelist(self.nodes[LEADER1].get_addr64()) self.nodes[ED1].enable_whitelist() - self.nodes[ED1].set_timeout(3) + self.nodes[ED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py b/tests/scripts/thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py index f9cf62a8e..873140247 100755 --- a/tests/scripts/thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py +++ b/tests/scripts/thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py @@ -98,7 +98,7 @@ class Cert_9_2_18_RollBackActiveTimestamp(unittest.TestCase): self.nodes[SED1].set_panid(PANID_INIT) self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64()) self.nodes[SED1].enable_whitelist() - self.nodes[SED1].set_timeout(3) + self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT) def tearDown(self): for node in list(self.nodes.values()): diff --git a/tests/scripts/thread-cert/config.py b/tests/scripts/thread-cert/config.py index 0d639c0f0..373c01b51 100644 --- a/tests/scripts/thread-cert/config.py +++ b/tests/scripts/thread-cert/config.py @@ -68,8 +68,9 @@ INFINITE_COST_TIMEOUT = 90 MAX_ADVERTISEMENT_INTERVAL = 32 MLE_END_DEVICE_TIMEOUT = 100 -AQ_TIMEOUT = 3 +AQ_TIMEOUT = 3 ADDRESS_QUERY_INITIAL_RETRY_DELAY = 15 +DEFAULT_CHILD_TIMEOUT = 6 VIRTUAL_TIME = bool(os.getenv('VIRTUAL_TIME', False))