mirror of
https://github.com/espressif/openthread.git
synced 2026-09-04 08:10:11 +00:00
[tests] increase child timeout (#3000)
* fix calculate default poll period * add default child timeout in config.py * define FAILED_CHILD_TRANSMISSIONS
This commit is contained in:
@@ -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_
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user