From 5d09e9ca4f26f0071513121bbaa684a371577bee Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Thu, 7 Jul 2022 16:50:21 -0700 Subject: [PATCH] [mle] update number parent requests in an attach cycle (#7538) This commit updates the MLE attach process so that in the first attach cycle device tries a total of six MLE Parent Requests, the first two to routers only followed by four to routers and REEDs. For example, the six Parent Request message will be used before device can decide to act the leader. An MTD in the next attach attempt (if cannot find a parent in first attempt cycle), will go to the model of two Parent Requests (first to routers, then to routers/REEDs). This change impacts the time it takes for a device to start as leader (due to increased number of Parent Request and wait time). This commit updates different test scripts to address the change in the wait time. It adds a new `config.LEADER_STARTUP_DELAY` constants which is used for wait time for leader to start. --- script/check-ncp-rcp-migrate | 2 +- script/check-posix-pty | 4 +- src/core/thread/mle.cpp | 148 +++++++++++------- src/core/thread/mle.hpp | 31 +++- .../expect/cli-commissioner-multiple-ftds.exp | 2 +- tests/scripts/expect/cli-reset.exp | 2 +- .../thread-cert/Cert_5_1_01_RouterAttach.py | 2 +- .../Cert_5_1_02_ChildAddressTimeout.py | 2 +- .../Cert_5_1_03_RouterAddressReallocation.py | 2 +- .../Cert_5_1_04_RouterAddressReallocation.py | 2 +- .../Cert_5_1_05_RouterAddressTimeout.py | 2 +- .../thread-cert/Cert_5_1_06_RemoveRouterId.py | 2 +- .../thread-cert/Cert_5_1_07_MaxChildCount.py | 2 +- .../Cert_5_1_08_RouterAttachConnectivity.py | 2 +- .../Cert_5_1_09_REEDAttachConnectivity.py | 2 +- .../Cert_5_1_10_RouterAttachLinkQuality.py | 2 +- .../Cert_5_1_11_REEDAttachLinkQuality.py | 2 +- .../Cert_5_1_12_NewRouterNeighborSync.py | 2 +- .../thread-cert/Cert_5_1_13_RouterReset.py | 2 +- .../thread-cert/Cert_5_2_01_REEDAttach.py | 2 +- .../Cert_5_2_03_LeaderReject2Hops.py | 2 +- .../thread-cert/Cert_5_2_04_REEDUpgrade.py | 2 +- .../thread-cert/Cert_5_2_05_AddressQuery.py | 2 +- .../Cert_5_2_06_RouterDowngrade.py | 2 +- .../Cert_5_2_07_REEDSynchronization.py | 2 +- .../thread-cert/Cert_5_3_01_LinkLocal.py | 2 +- .../thread-cert/Cert_5_3_02_RealmLocal.py | 2 +- .../thread-cert/Cert_5_3_03_AddressQuery.py | 2 +- .../Cert_5_3_04_AddressMapCache.py | 2 +- .../Cert_5_3_05_RoutingLinkQuality.py | 2 +- .../thread-cert/Cert_5_3_06_RouterIdMask.py | 2 +- .../Cert_5_3_07_DuplicateAddress.py | 2 +- .../Cert_5_3_08_ChildAddressSet.py | 2 +- .../thread-cert/Cert_5_3_09_AddressQuery.py | 2 +- .../thread-cert/Cert_5_3_10_AddressQuery.py | 2 +- ...ert_5_3_11_AddressQueryTimeoutIntervals.py | 2 +- .../thread-cert/Cert_5_5_01_LeaderReboot.py | 4 +- .../thread-cert/Cert_5_5_02_LeaderReboot.py | 4 +- .../Cert_5_5_03_SplitMergeChildren.py | 4 +- .../Cert_5_5_04_SplitMergeRouters.py | 2 +- .../thread-cert/Cert_5_5_05_SplitMergeREED.py | 2 +- .../Cert_5_5_07_SplitMergeThreeWay.py | 2 +- ...1_NetworkDataRegisterBeforeAttachLeader.py | 2 +- ...2_NetworkDataRegisterBeforeAttachRouter.py | 2 +- ...03_NetworkDataRegisterAfterAttachLeader.py | 2 +- ...04_NetworkDataRegisterAfterAttachRouter.py | 2 +- ...05_NetworkDataRegisterAfterAttachRouter.py | 2 +- .../Cert_5_6_06_NetworkDataExpiration.py | 2 +- .../Cert_5_6_07_NetworkDataRequestREED.py | 2 +- .../Cert_5_6_09_NetworkDataForwarding.py | 2 +- .../Cert_5_7_01_CoapDiagCommands.py | 2 +- .../Cert_5_7_02_CoapDiagCommands.py | 2 +- .../Cert_5_7_03_CoapDiagCommands.py | 2 +- .../thread-cert/Cert_5_8_02_KeyIncrement.py | 2 +- .../Cert_5_8_03_KeyIncrementRollOver.py | 2 +- .../Cert_5_8_04_SecurityPolicyTLV.py | 2 +- .../thread-cert/Cert_6_1_01_RouterAttach.py | 2 +- .../thread-cert/Cert_6_1_02_REEDAttach.py | 2 +- .../Cert_6_1_03_RouterAttachConnectivity.py | 2 +- .../Cert_6_1_04_REEDAttachConnectivity.py | 2 +- .../Cert_6_1_05_REEDAttachConnectivity.py | 16 +- .../Cert_6_1_06_REEDAttachLinkQuality.py | 2 +- .../Cert_6_1_07_RouterAttachLinkQuality.py | 2 +- .../thread-cert/Cert_6_2_01_NewPartition.py | 4 +- .../thread-cert/Cert_6_2_02_NewPartition.py | 2 +- .../thread-cert/Cert_6_3_01_OrphanReattach.py | 2 +- .../Cert_6_3_02_NetworkDataUpdate.py | 2 +- .../thread-cert/Cert_6_4_01_LinkLocal.py | 2 +- .../thread-cert/Cert_6_4_02_RealmLocal.py | 2 +- .../Cert_6_5_01_ChildResetReattach.py | 2 +- .../Cert_6_5_02_ChildResetReattach.py | 2 +- .../Cert_6_5_03_ChildResetSynchronize.py | 2 +- .../thread-cert/Cert_6_6_01_KeyIncrement.py | 2 +- .../Cert_6_6_02_KeyIncrementRollOver.py | 2 +- .../Cert_7_1_01_BorderRouterAsLeader.py | 2 +- .../Cert_7_1_02_BorderRouterAsRouter.py | 2 +- .../Cert_7_1_03_BorderRouterAsLeader.py | 2 +- .../Cert_7_1_04_BorderRouterAsRouter.py | 2 +- .../Cert_7_1_05_BorderRouterAsRouter.py | 2 +- .../Cert_7_1_06_BorderRouterAsLeader.py | 2 +- .../Cert_7_1_07_BorderRouterAsLeader.py | 4 +- .../Cert_7_1_08_BorderRouterAsFED.py | 2 +- .../thread-cert/Cert_8_1_01_Commissioning.py | 2 +- .../thread-cert/Cert_8_1_02_Commissioning.py | 2 +- .../thread-cert/Cert_8_1_06_Commissioning.py | 2 +- .../thread-cert/Cert_8_2_01_JoinerRouter.py | 2 +- .../thread-cert/Cert_8_2_02_JoinerRouter.py | 2 +- .../thread-cert/Cert_8_2_05_JoinerRouter.py | 2 +- .../Cert_8_3_01_CommissionerPetition.py | 2 +- .../Cert_9_2_01_MGMTCommissionerGet.py | 2 +- .../Cert_9_2_02_MGMTCommissionerSet.py | 2 +- .../Cert_9_2_03_ActiveDatasetGet.py | 2 +- .../thread-cert/Cert_9_2_04_ActiveDataset.py | 2 +- .../thread-cert/Cert_9_2_05_ActiveDataset.py | 2 +- .../Cert_9_2_06_DatasetDissemination.py | 2 +- .../thread-cert/Cert_9_2_07_DelayTimer.py | 6 +- .../Cert_9_2_08_PersistentDatasets.py | 2 +- .../Cert_9_2_09_PendingPartition.py | 2 +- .../Cert_9_2_10_PendingPartition.py | 2 +- .../thread-cert/Cert_9_2_11_NetworkKey.py | 2 +- .../thread-cert/Cert_9_2_12_Announce.py | 2 +- .../thread-cert/Cert_9_2_13_EnergyScan.py | 2 +- .../thread-cert/Cert_9_2_14_PanIdQuery.py | 4 +- .../Cert_9_2_15_PendingPartition.py | 2 +- .../Cert_9_2_16_ActivePendingPartition.py | 2 +- .../scripts/thread-cert/Cert_9_2_17_Orphan.py | 2 +- .../Cert_9_2_18_RollBackActiveTimestamp.py | 2 +- .../Cert_9_2_19_PendingDatasetGet.py | 2 +- .../thread-cert/backbone/bbr_5_11_01.py | 2 +- .../scripts/thread-cert/backbone/test_bmlr.py | 3 +- .../thread-cert/backbone/test_dua_dad.py | 8 +- .../thread-cert/backbone/test_dua_routing.py | 8 +- .../backbone/test_dua_routing_med.py | 8 +- ...not_send_icmpv6_destination_unreachable.py | 3 +- .../backbone/test_mlr_multicast_routing.py | 2 +- ...lr_multicast_routing_across_thread_pans.py | 4 +- ..._multicast_routing_commissioner_timeout.py | 1 + .../test_mlr_multicast_routing_timeout.py | 2 +- .../thread-cert/backbone/test_ndproxy.py | 4 +- .../border_router/MATN/MATN_02_MLRFirstUse.py | 2 +- ...TN_03_InvalidCommissionerDeregistration.py | 2 +- .../MATN/MATN_04_MulticastListenerTimeout.py | 2 +- ...N_05_ReregistrationToSameMulticastGroup.py | 2 +- .../MATN_09_DefaultBRMulticastForwarding.py | 2 +- .../MATN/MATN_12_HopLimitProcessing.py | 2 +- ..._ChangeOfPrimaryBBRTriggersRegistration.py | 2 +- ...umberOfMulticastGroupSubscriptionsToBBR.py | 2 +- .../test_border_router_as_fed.py | 2 +- .../test_dnssd_instance_name_with_space.py | 2 +- .../border_router/test_dnssd_server.py | 2 +- .../test_dnssd_server_multi_border_routers.py | 2 +- .../test_end_device_udp_reachability.py | 2 +- .../border_router/test_external_route.py | 2 +- .../border_router/test_firewall.py | 2 +- .../border_router/test_manual_address.py | 2 +- .../border_router/test_manual_maddress.py | 2 +- .../border_router/test_mdns_restart.py | 2 +- .../test_multi_border_routers.py | 2 +- .../test_multi_thread_networks.py | 4 +- .../test_nat64_multi_border_routers.py | 2 +- .../test_nat64_single_border_router.py | 2 +- .../border_router/test_on_link_prefix.py | 4 +- .../test_plat_udp_accessiblity.py | 4 +- .../border_router/test_radvd_coexist.py | 2 +- .../test_single_border_router.py | 2 +- tests/scripts/thread-cert/config.py | 1 + tests/scripts/thread-cert/test_anycast.py | 2 +- .../thread-cert/test_anycast_locator.py | 3 +- .../test_br_upgrade_router_role.py | 3 +- tests/scripts/thread-cert/test_coap_block.py | 2 +- .../scripts/thread-cert/test_coap_observe.py | 2 +- tests/scripts/thread-cert/test_coaps.py | 2 +- .../thread-cert/test_dataset_updater.py | 2 +- tests/scripts/thread-cert/test_detach.py | 8 +- .../test_dns_client_config_auto_start.py | 2 +- tests/scripts/thread-cert/test_dnssd.py | 2 +- .../test_dnssd_name_with_special_chars.py | 2 +- .../thread-cert/test_history_tracker.py | 4 +- ...test_inform_previous_parent_on_reattach.py | 2 +- .../thread-cert/test_ipv6_fragmentation.py | 2 +- .../thread-cert/test_ipv6_source_selection.py | 2 +- .../thread-cert/test_mle_msg_key_seq_jump.py | 4 +- .../thread-cert/test_netdata_publisher.py | 2 +- .../thread-cert/test_on_mesh_prefix.py | 2 +- tests/scripts/thread-cert/test_pbbr_aloc.py | 4 +- tests/scripts/thread-cert/test_ping.py | 2 +- .../scripts/thread-cert/test_ping_lla_src.py | 2 +- .../scripts/thread-cert/test_radio_filter.py | 2 +- .../test_reed_address_solicit_rejected.py | 4 +- tests/scripts/thread-cert/test_reset.py | 4 +- tests/scripts/thread-cert/test_route_table.py | 2 +- .../test_router_multicast_link_request.py | 2 +- .../thread-cert/test_router_reattach.py | 2 +- .../thread-cert/test_router_upgrade.py | 2 +- tests/scripts/thread-cert/test_service.py | 2 +- tests/scripts/thread-cert/test_set_mliid.py | 4 +- .../thread-cert/test_srp_auto_start_mode.py | 2 +- .../test_srp_client_change_lease.py | 2 +- .../test_srp_client_remove_host.py | 2 +- .../test_srp_client_save_server_info.py | 2 +- tests/scripts/thread-cert/test_srp_lease.py | 2 +- .../test_srp_many_services_mtu_check.py | 2 +- .../thread-cert/test_srp_name_conflicts.py | 2 +- .../test_srp_register_500_services.py | 2 +- .../test_srp_register_single_service.py | 2 +- .../test_srp_server_anycast_mode.py | 2 +- .../test_srp_server_reboot_port.py | 2 +- .../scripts/thread-cert/test_srp_sub_type.py | 2 +- tests/scripts/thread-cert/test_srp_ttl.py | 2 +- .../test_zero_len_external_route.py | 2 +- .../v1_2_LowPower_5_3_01_SSEDAttachment.py | 2 +- ...Power_6_1_07_PreferringARouterOverAReed.py | 2 +- ..._SingleProbeLinkMetricsWithEnhancedAcks.py | 2 +- ...2_LowPower_7_2_01_ForwardTrackingSeries.py | 2 +- ...2_LowPower_test_forward_tracking_series.py | 2 +- .../scripts/thread-cert/v1_2_router_5_1_1.py | 2 +- .../v1_2_test_backbone_router_service.py | 2 +- .../thread-cert/v1_2_test_csl_transmission.py | 2 +- .../v1_2_test_domain_unicast_address.py | 2 +- ...est_domain_unicast_address_registration.py | 2 +- .../v1_2_test_dua_handle_address_error.py | 2 +- .../v1_2_test_enhanced_frame_pending.py | 2 +- .../v1_2_test_enhanced_keep_alive.py | 2 +- ..._2_test_multicast_listener_registration.py | 2 +- .../v1_2_test_multicast_registration.py | 2 +- .../thread-cert/v1_2_test_parent_selection.py | 4 +- .../thread-cert/v1_2_test_single_probe.py | 3 +- .../test-017-parent-reset-child-recovery.py | 4 +- tools/otci/tests/test_otci.py | 6 +- 209 files changed, 372 insertions(+), 310 deletions(-) diff --git a/script/check-ncp-rcp-migrate b/script/check-ncp-rcp-migrate index 1001ccc42..ce38eb527 100755 --- a/script/check-ncp-rcp-migrate +++ b/script/check-ncp-rcp-migrate @@ -83,7 +83,7 @@ send "ifconfig up\r\n" expect "Done" send "thread start\r\n" expect "Done" -sleep 5 +sleep 10 send "state\r\n" expect "leader" expect "Done" diff --git a/script/check-posix-pty b/script/check-posix-pty index 4aad5649f..716d154d4 100755 --- a/script/check-posix-pty +++ b/script/check-posix-pty @@ -182,7 +182,7 @@ send "ifconfig up\r\n" expect "Done" send "thread start\r\n" expect "Done" -sleep 5 +sleep 10 send "state\r\n" expect "leader" expect "Done" @@ -207,7 +207,7 @@ EOF sleep 5 # wait until the node becomes leader - timeout_run 5 wait_for_leader + timeout_run 10 wait_for_leader # wait coap service start sleep 5 diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 500fcafb6..06d06b416 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -1282,10 +1282,64 @@ void Mle::HandleAttachTimer(Timer &aTimer) aTimer.Get().HandleAttachTimer(); } +Error Mle::DetermineParentRequestType(ParentRequestType &aType) const +{ + // This method determines the Parent Request type to use during an + // attach cycle based on `mAttachMode`, `mAttachCounter` and + // `mParentRequestCounter`. This method MUST be used while in + // `kAttachStateParentRequest` state. + // + // On success it returns `kErrorNone` and sets `aType`. It returns + // `kErrorNotFound` to indicate that device can now transition + // from `kAttachStateParentRequest` state (has already sent the + // required number of Parent Requests for this attach attempt + // cycle). + + Error error = kErrorNone; + + OT_ASSERT(mAttachState == kAttachStateParentRequest); + + aType = kToRoutersAndReeds; + + // If device is not yet attached, `mAttachCounter` will track the + // number of attach attempt cycles so far, starting from one for + // the first attempt. `mAttachCounter` will be zero if device is + // already attached. Examples of this situation include a leader or + // router trying to attach to a better partition, or a child trying + // to find a better parent. + + if ((mAttachCounter <= 1) && (mAttachMode != kBetterParent)) + { + VerifyOrExit(mParentRequestCounter <= kFirstAttachCycleTotalParentRequests, error = kErrorNotFound); + + // During reattach to the same partition all the Parent + // Request are sent to Routers and REEDs. + + if ((mAttachMode != kSamePartition) && (mAttachMode != kSamePartitionRetry) && + (mParentRequestCounter <= kFirstAttachCycleNumParentRequestToRouters)) + { + aType = kToRouters; + } + } + else + { + VerifyOrExit(mParentRequestCounter <= kNextAttachCycleTotalParentRequests, error = kErrorNotFound); + + if (mParentRequestCounter <= kNextAttachCycleNumParentRequestToRouters) + { + aType = kToRouters; + } + } + +exit: + return error; +} + bool Mle::HasAcceptableParentCandidate(void) const { - bool hasAcceptableParent = false; - LinkQuality linkQuality; + bool hasAcceptableParent = false; + LinkQuality linkQuality; + ParentRequestType parentReqType; VerifyOrExit(mParentCandidate.IsStateParentResponse()); @@ -1295,16 +1349,19 @@ bool Mle::HasAcceptableParentCandidate(void) const VerifyOrExit(!HasMoreChannelsToAnnouce()); break; - case kAttachStateParentRequestRouter: - // If we cannot find a parent with best link quality (3) when - // in `kAttachStateParentRequestRouter` state we will keep the - // candidate and forward to REED stage to potentially find a - // better parent. - linkQuality = OT_MIN(mParentCandidate.GetLinkInfo().GetLinkQuality(), mParentCandidate.GetLinkQualityOut()); - VerifyOrExit(linkQuality == kLinkQuality3); - break; + case kAttachStateParentRequest: + SuccessOrAssert(DetermineParentRequestType(parentReqType)); + + if (parentReqType == kToRouters) + { + // If we cannot find a parent with best link quality (3) when + // in Parent Request was sent to routers, we will keep the + // candidate and forward to REED stage to potentially find a + // better parent. + linkQuality = OT_MIN(mParentCandidate.GetLinkInfo().GetLinkQuality(), mParentCandidate.GetLinkQualityOut()); + VerifyOrExit(linkQuality == kLinkQuality3); + } - case kAttachStateParentRequestReed: break; default: @@ -1331,8 +1388,9 @@ exit: void Mle::HandleAttachTimer(void) { - uint32_t delay = 0; - bool shouldAnnounce = true; + uint32_t delay = 0; + bool shouldAnnounce = true; + ParentRequestType type; // First, check if we are waiting to receive parent responses and // found an acceptable parent candidate. @@ -1355,46 +1413,26 @@ void Mle::HandleAttachTimer(void) break; case kAttachStateStart: - if (mAttachCounter > 0) - { - LogNote("Attempt to attach - attempt %d, %s %s", mAttachCounter, AttachModeToString(mAttachMode), - ReattachStateToString(mReattachState)); - } - else - { - LogNote("Attempt to attach - %s %s", AttachModeToString(mAttachMode), - ReattachStateToString(mReattachState)); - } + LogNote("Attach attempt %d, %s %s", mAttachCounter, AttachModeToString(mAttachMode), + ReattachStateToString(mReattachState)); - SetAttachState(kAttachStateParentRequestRouter); + SetAttachState(kAttachStateParentRequest); mParentCandidate.SetState(Neighbor::kStateInvalid); mReceivedResponseFromParent = false; + mParentRequestCounter = 0; Get().SetRxOnWhenIdle(true); - // initial MLE Parent Request has both E and R flags set in Scan Mask TLV - // during reattach when losing connectivity. - if (mAttachMode == kSamePartition || mAttachMode == kSamePartitionRetry) + OT_FALL_THROUGH; + + case kAttachStateParentRequest: + mParentRequestCounter++; + if (DetermineParentRequestType(type) == kErrorNone) { - SendParentRequest(kToRoutersAndReeds); - delay = kParentRequestReedTimeout; - } - // initial MLE Parent Request has only R flag set in Scan Mask TLV for - // during initial attach or downgrade process - else - { - SendParentRequest(kToRouters); - delay = kParentRequestRouterTimeout; + SendParentRequest(type); + delay = (type == kToRouters) ? kParentRequestRouterTimeout : kParentRequestReedTimeout; + break; } - break; - - case kAttachStateParentRequestRouter: - SetAttachState(kAttachStateParentRequestReed); - SendParentRequest(kToRoutersAndReeds); - delay = kParentRequestReedTimeout; - break; - - case kAttachStateParentRequestReed: shouldAnnounce = PrepareAnnounceState(); if (shouldAnnounce) @@ -4199,22 +4237,20 @@ const char *Mle::AttachModeToString(AttachMode aMode) const char *Mle::AttachStateToString(AttachState aState) { static const char *const kAttachStateStrings[] = { - "Idle", // (0) kAttachStateIdle - "ProcessAnnounce", // (1) kAttachStateProcessAnnounce - "Start", // (2) kAttachStateStart - "ParentReqRouters", // (3) kAttachStateParentRequestRouter - "ParentReqReeds", // (4) kAttachStateParentRequestReed - "Announce", // (5) kAttachStateAnnounce - "ChildIdReq", // (6) kAttachStateChildIdRequest + "Idle", // (0) kAttachStateIdle + "ProcessAnnounce", // (1) kAttachStateProcessAnnounce + "Start", // (2) kAttachStateStart + "ParentReq", // (3) kAttachStateParent + "Announce", // (4) kAttachStateAnnounce + "ChildIdReq", // (5) kAttachStateChildIdRequest }; static_assert(kAttachStateIdle == 0, "kAttachStateIdle value is incorrect"); static_assert(kAttachStateProcessAnnounce == 1, "kAttachStateProcessAnnounce value is incorrect"); static_assert(kAttachStateStart == 2, "kAttachStateStart value is incorrect"); - static_assert(kAttachStateParentRequestRouter == 3, "kAttachStateParentRequestRouter value is incorrect"); - static_assert(kAttachStateParentRequestReed == 4, "kAttachStateParentRequestReed value is incorrect"); - static_assert(kAttachStateAnnounce == 5, "kAttachStateAnnounce value is incorrect"); - static_assert(kAttachStateChildIdRequest == 6, "kAttachStateChildIdRequest value is incorrect"); + static_assert(kAttachStateParentRequest == 3, "kAttachStateParentRequest value is incorrect"); + static_assert(kAttachStateAnnounce == 4, "kAttachStateAnnounce value is incorrect"); + static_assert(kAttachStateChildIdRequest == 5, "kAttachStateChildIdRequest value is incorrect"); return kAttachStateStrings[aState]; } diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp index 78c1f1c5d..961d9ad52 100644 --- a/src/core/thread/mle.hpp +++ b/src/core/thread/mle.hpp @@ -812,13 +812,12 @@ protected: */ enum AttachState : uint8_t { - kAttachStateIdle, ///< Not currently searching for a parent. - kAttachStateProcessAnnounce, ///< Waiting to process a received Announce (to switch channel/pan-id). - kAttachStateStart, ///< Starting to look for a parent. - kAttachStateParentRequestRouter, ///< Searching for a Router to attach to. - kAttachStateParentRequestReed, ///< Searching for Routers or REEDs to attach to. - kAttachStateAnnounce, ///< Send Announce messages - kAttachStateChildIdRequest, ///< Sending a Child ID Request message. + kAttachStateIdle, ///< Not currently searching for a parent. + kAttachStateProcessAnnounce, ///< Waiting to process a received Announce (to switch channel/pan-id). + kAttachStateStart, ///< Starting to look for a parent. + kAttachStateParentRequest, ///< Send Parent Request (current number tracked by `mParentRequestCounter`). + kAttachStateAnnounce, ///< Send Announce messages + kAttachStateChildIdRequest, ///< Sending a Child ID Request message. }; /** @@ -1698,7 +1697,8 @@ protected: Router mParentCandidate; ///< Parent candidate information. NeighborTable mNeighborTable; ///< The neighbor table. DeviceMode mDeviceMode; ///< Device mode setting. - AttachState mAttachState; ///< The parent request state. + AttachState mAttachState; ///< The attach state. + uint8_t mParentRequestCounter; ///< Number of parent requests while in `kAttachStateParentRequest`. ReattachState mReattachState; ///< Reattach state uint16_t mAttachCounter; ///< Attach attempt counter. uint16_t mAnnounceDelay; ///< Delay in between sending Announce messages during attach. @@ -1731,6 +1731,20 @@ private: static constexpr uint32_t kAttachBackoffDelayToResetCounter = OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_DELAY_TO_RESET_BACKOFF_INTERVAL; +#if OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_3 + // First attach cycle includes two Parent Requests to routers, followed by four to routers and REEDs. + static constexpr uint8_t kFirstAttachCycleTotalParentRequests = 6; + static constexpr uint8_t kFirstAttachCycleNumParentRequestToRouters = 2; +#else + // First attach cycle in Thread 1.1/1.2 includes a Parent Requests to routers, followed by one to routers and REEDs. + static constexpr uint8_t kFirstAttachCycleTotalParentRequests = 2; + static constexpr uint8_t kFirstAttachCycleNumParentRequestToRouters = 1; +#endif + + // Next attach cycles includes one Parent Request to routers, followed by one to routers and REEDs. + static constexpr uint8_t kNextAttachCycleTotalParentRequests = 2; + static constexpr uint8_t kNextAttachCycleNumParentRequestToRouters = 1; + enum StartMode : uint8_t // Used in `Start()`. { kNormalAttach, @@ -1887,6 +1901,7 @@ private: #endif uint32_t Reattach(void); bool HasAcceptableParentCandidate(void) const; + Error DetermineParentRequestType(ParentRequestType &aType) const; bool IsBetterParent(uint16_t aRloc16, LinkQuality aLinkQuality, diff --git a/tests/scripts/expect/cli-commissioner-multiple-ftds.exp b/tests/scripts/expect/cli-commissioner-multiple-ftds.exp index 7d43522c4..a212ae14f 100755 --- a/tests/scripts/expect/cli-commissioner-multiple-ftds.exp +++ b/tests/scripts/expect/cli-commissioner-multiple-ftds.exp @@ -38,7 +38,7 @@ setup_leader setup_node 3 "rdn" "router" setup_node 2 "rdn" "router" -sleep 2 +sleep 15 ########################################### # Verify topology and commissioners diff --git a/tests/scripts/expect/cli-reset.exp b/tests/scripts/expect/cli-reset.exp index dc2944160..644208880 100755 --- a/tests/scripts/expect/cli-reset.exp +++ b/tests/scripts/expect/cli-reset.exp @@ -38,7 +38,7 @@ expect_line "Done" send "thread start\n" expect_line "Done" -sleep 3 +sleep 10 send "reset\n" sleep 3 diff --git a/tests/scripts/thread-cert/Cert_5_1_01_RouterAttach.py b/tests/scripts/thread-cert/Cert_5_1_01_RouterAttach.py index 5c91aa520..1e4c3269e 100755 --- a/tests/scripts/thread-cert/Cert_5_1_01_RouterAttach.py +++ b/tests/scripts/thread-cert/Cert_5_1_01_RouterAttach.py @@ -75,7 +75,7 @@ class Cert_5_1_01_RouterAttach(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 ad42c8292..abb9e8cdd 100755 --- a/tests/scripts/thread-cert/Cert_5_1_02_ChildAddressTimeout.py +++ b/tests/scripts/thread-cert/Cert_5_1_02_ChildAddressTimeout.py @@ -93,7 +93,7 @@ class Cert_5_1_02_ChildAddressTimeout(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_03_RouterAddressReallocation.py b/tests/scripts/thread-cert/Cert_5_1_03_RouterAddressReallocation.py index 2b9a652e5..e7c443ed4 100755 --- a/tests/scripts/thread-cert/Cert_5_1_03_RouterAddressReallocation.py +++ b/tests/scripts/thread-cert/Cert_5_1_03_RouterAddressReallocation.py @@ -81,7 +81,7 @@ class Cert_5_1_03_RouterAddressReallocation(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_04_RouterAddressReallocation.py b/tests/scripts/thread-cert/Cert_5_1_04_RouterAddressReallocation.py index 13f014855..183710243 100755 --- a/tests/scripts/thread-cert/Cert_5_1_04_RouterAddressReallocation.py +++ b/tests/scripts/thread-cert/Cert_5_1_04_RouterAddressReallocation.py @@ -83,7 +83,7 @@ class Cert_5_1_04_RouterAddressReallocation(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_05_RouterAddressTimeout.py b/tests/scripts/thread-cert/Cert_5_1_05_RouterAddressTimeout.py index 8e551d164..3eef9c9d7 100755 --- a/tests/scripts/thread-cert/Cert_5_1_05_RouterAddressTimeout.py +++ b/tests/scripts/thread-cert/Cert_5_1_05_RouterAddressTimeout.py @@ -79,7 +79,7 @@ class Cert_5_1_05_RouterAddressTimeout(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_06_RemoveRouterId.py b/tests/scripts/thread-cert/Cert_5_1_06_RemoveRouterId.py index d32bed0a7..05a77b75e 100755 --- a/tests/scripts/thread-cert/Cert_5_1_06_RemoveRouterId.py +++ b/tests/scripts/thread-cert/Cert_5_1_06_RemoveRouterId.py @@ -75,7 +75,7 @@ class Cert_5_1_06_RemoveRouterId(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() 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 a1c0bd600..d65e17685 100755 --- a/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py +++ b/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py @@ -152,7 +152,7 @@ class Cert_5_1_07_MaxChildCount(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_08_RouterAttachConnectivity.py b/tests/scripts/thread-cert/Cert_5_1_08_RouterAttachConnectivity.py index b901089d3..3aac58c7d 100755 --- a/tests/scripts/thread-cert/Cert_5_1_08_RouterAttachConnectivity.py +++ b/tests/scripts/thread-cert/Cert_5_1_08_RouterAttachConnectivity.py @@ -93,7 +93,7 @@ class Cert_5_1_08_RouterAttachConnectivity(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(2, 5): diff --git a/tests/scripts/thread-cert/Cert_5_1_09_REEDAttachConnectivity.py b/tests/scripts/thread-cert/Cert_5_1_09_REEDAttachConnectivity.py index b17518639..ba18b3147 100755 --- a/tests/scripts/thread-cert/Cert_5_1_09_REEDAttachConnectivity.py +++ b/tests/scripts/thread-cert/Cert_5_1_09_REEDAttachConnectivity.py @@ -95,7 +95,7 @@ class Cert_5_1_09_REEDAttachConnectivity(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(2, 5): diff --git a/tests/scripts/thread-cert/Cert_5_1_10_RouterAttachLinkQuality.py b/tests/scripts/thread-cert/Cert_5_1_10_RouterAttachLinkQuality.py index 501659355..af5076ea0 100755 --- a/tests/scripts/thread-cert/Cert_5_1_10_RouterAttachLinkQuality.py +++ b/tests/scripts/thread-cert/Cert_5_1_10_RouterAttachLinkQuality.py @@ -87,7 +87,7 @@ class Cert_5_1_10_RouterAttachLinkQuality(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_11_REEDAttachLinkQuality.py b/tests/scripts/thread-cert/Cert_5_1_11_REEDAttachLinkQuality.py index 85cb3c7f0..3973f71ab 100755 --- a/tests/scripts/thread-cert/Cert_5_1_11_REEDAttachLinkQuality.py +++ b/tests/scripts/thread-cert/Cert_5_1_11_REEDAttachLinkQuality.py @@ -89,7 +89,7 @@ class Cert_5_1_11_REEDAttachLinkQuality(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[REED].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_12_NewRouterNeighborSync.py b/tests/scripts/thread-cert/Cert_5_1_12_NewRouterNeighborSync.py index 304d3d559..69470a4c5 100755 --- a/tests/scripts/thread-cert/Cert_5_1_12_NewRouterNeighborSync.py +++ b/tests/scripts/thread-cert/Cert_5_1_12_NewRouterNeighborSync.py @@ -78,7 +78,7 @@ class Cert_5_1_12_NewRouterSync(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_1_13_RouterReset.py b/tests/scripts/thread-cert/Cert_5_1_13_RouterReset.py index e1ece81a6..a1c55ac35 100755 --- a/tests/scripts/thread-cert/Cert_5_1_13_RouterReset.py +++ b/tests/scripts/thread-cert/Cert_5_1_13_RouterReset.py @@ -80,7 +80,7 @@ class Cert_5_1_13_RouterReset(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_5_2_01_REEDAttach.py b/tests/scripts/thread-cert/Cert_5_2_01_REEDAttach.py index 230c6e372..27f4e5e9c 100755 --- a/tests/scripts/thread-cert/Cert_5_2_01_REEDAttach.py +++ b/tests/scripts/thread-cert/Cert_5_2_01_REEDAttach.py @@ -92,7 +92,7 @@ class Cert_5_2_01_REEDAttach(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[DUT_ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_2_03_LeaderReject2Hops.py b/tests/scripts/thread-cert/Cert_5_2_03_LeaderReject2Hops.py index 35480c8f1..6a261bfa7 100755 --- a/tests/scripts/thread-cert/Cert_5_2_03_LeaderReject2Hops.py +++ b/tests/scripts/thread-cert/Cert_5_2_03_LeaderReject2Hops.py @@ -311,7 +311,7 @@ class Cert_5_2_3_LeaderReject2Hops(thread_cert.TestCase): def test(self): self.nodes[DUT_LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') for i in range(2, 32): diff --git a/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py b/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py index e97bb72ce..241c9bb36 100755 --- a/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py +++ b/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py @@ -169,7 +169,7 @@ class Cert_5_2_4_REEDUpgrade(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(2, 17): diff --git a/tests/scripts/thread-cert/Cert_5_2_05_AddressQuery.py b/tests/scripts/thread-cert/Cert_5_2_05_AddressQuery.py index 9abe1556f..903650a15 100755 --- a/tests/scripts/thread-cert/Cert_5_2_05_AddressQuery.py +++ b/tests/scripts/thread-cert/Cert_5_2_05_AddressQuery.py @@ -177,7 +177,7 @@ class Cert_5_2_5_AddressQuery(thread_cert.TestCase): def test(self): # 1. LEADER: DHCPv6 Server for prefix 2001::/64. self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[LEADER].add_prefix('2001::/64', 'pdros') self.nodes[LEADER].register_netdata() diff --git a/tests/scripts/thread-cert/Cert_5_2_06_RouterDowngrade.py b/tests/scripts/thread-cert/Cert_5_2_06_RouterDowngrade.py index fdf33bf9d..a8576e241 100755 --- a/tests/scripts/thread-cert/Cert_5_2_06_RouterDowngrade.py +++ b/tests/scripts/thread-cert/Cert_5_2_06_RouterDowngrade.py @@ -211,7 +211,7 @@ class Cert_5_2_06_RouterDowngrade(thread_cert.TestCase): def test(self): # 1 Ensure topology is formed correctly without ROUTER23. self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(2, 24): diff --git a/tests/scripts/thread-cert/Cert_5_2_07_REEDSynchronization.py b/tests/scripts/thread-cert/Cert_5_2_07_REEDSynchronization.py index 930f0aa62..038fe6f50 100755 --- a/tests/scripts/thread-cert/Cert_5_2_07_REEDSynchronization.py +++ b/tests/scripts/thread-cert/Cert_5_2_07_REEDSynchronization.py @@ -146,7 +146,7 @@ class Cert_5_2_7_REEDSynchronization_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(2, 17): diff --git a/tests/scripts/thread-cert/Cert_5_3_01_LinkLocal.py b/tests/scripts/thread-cert/Cert_5_3_01_LinkLocal.py index 74b03189b..fbb14df26 100755 --- a/tests/scripts/thread-cert/Cert_5_3_01_LinkLocal.py +++ b/tests/scripts/thread-cert/Cert_5_3_01_LinkLocal.py @@ -71,7 +71,7 @@ class Cert_5_3_1_LinkLocal(thread_cert.TestCase): def test(self): # 1 self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[DUT_ROUTER1].start() 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 2d7a42f51..9e2184fde 100755 --- a/tests/scripts/thread-cert/Cert_5_3_02_RealmLocal.py +++ b/tests/scripts/thread-cert/Cert_5_3_02_RealmLocal.py @@ -89,7 +89,7 @@ class Cert_5_3_2_RealmLocal(thread_cert.TestCase): def test(self): # 1 self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_3_03_AddressQuery.py b/tests/scripts/thread-cert/Cert_5_3_03_AddressQuery.py index 3e66f2c80..233764d44 100755 --- a/tests/scripts/thread-cert/Cert_5_3_03_AddressQuery.py +++ b/tests/scripts/thread-cert/Cert_5_3_03_AddressQuery.py @@ -96,7 +96,7 @@ class Cert_5_3_3_AddressQuery(thread_cert.TestCase): def test(self): # 1 self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_3_04_AddressMapCache.py b/tests/scripts/thread-cert/Cert_5_3_04_AddressMapCache.py index 1e032e890..66e1d1edb 100755 --- a/tests/scripts/thread-cert/Cert_5_3_04_AddressMapCache.py +++ b/tests/scripts/thread-cert/Cert_5_3_04_AddressMapCache.py @@ -113,7 +113,7 @@ class Cert_5_3_4_AddressMapCache(thread_cert.TestCase): def test(self): # 1 self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[DUT_ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_3_05_RoutingLinkQuality.py b/tests/scripts/thread-cert/Cert_5_3_05_RoutingLinkQuality.py index 5dd4ac158..ce267a669 100755 --- a/tests/scripts/thread-cert/Cert_5_3_05_RoutingLinkQuality.py +++ b/tests/scripts/thread-cert/Cert_5_3_05_RoutingLinkQuality.py @@ -86,7 +86,7 @@ class Cert_5_3_5_RoutingLinkQuality(thread_cert.TestCase): def test(self): # 1 self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for router in range(DUT_ROUTER1, ROUTER3 + 1): diff --git a/tests/scripts/thread-cert/Cert_5_3_06_RouterIdMask.py b/tests/scripts/thread-cert/Cert_5_3_06_RouterIdMask.py index baf2b1c1f..1f57e9f46 100755 --- a/tests/scripts/thread-cert/Cert_5_3_06_RouterIdMask.py +++ b/tests/scripts/thread-cert/Cert_5_3_06_RouterIdMask.py @@ -86,7 +86,7 @@ class Cert_5_3_6_RouterIdMask(thread_cert.TestCase): def test(self): # 1 self.nodes[DUT_LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_3_07_DuplicateAddress.py b/tests/scripts/thread-cert/Cert_5_3_07_DuplicateAddress.py index 669fcfd87..0fd38b638 100755 --- a/tests/scripts/thread-cert/Cert_5_3_07_DuplicateAddress.py +++ b/tests/scripts/thread-cert/Cert_5_3_07_DuplicateAddress.py @@ -111,7 +111,7 @@ class Cert_5_3_7_DuplicateAddress(thread_cert.TestCase): def test(self): self.nodes[DUT_LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') for i in range(ROUTER1, MED2 + 1): diff --git a/tests/scripts/thread-cert/Cert_5_3_08_ChildAddressSet.py b/tests/scripts/thread-cert/Cert_5_3_08_ChildAddressSet.py index 8a2e0da39..c1d4f4be8 100755 --- a/tests/scripts/thread-cert/Cert_5_3_08_ChildAddressSet.py +++ b/tests/scripts/thread-cert/Cert_5_3_08_ChildAddressSet.py @@ -96,7 +96,7 @@ class Cert_5_3_8_ChildAddressSet(thread_cert.TestCase): def test(self): self.nodes[DUT_LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') self.nodes[BR].start() 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 ddbf8ee7b..6e1ca9d21 100755 --- a/tests/scripts/thread-cert/Cert_5_3_09_AddressQuery.py +++ b/tests/scripts/thread-cert/Cert_5_3_09_AddressQuery.py @@ -109,7 +109,7 @@ class Cert_5_3_09_AddressQuery(thread_cert.TestCase): def test(self): # 1 & 2 ALL: Build and verify the topology self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') # Configure the LEADER to be a DHCPv6 Border Router for prefixes diff --git a/tests/scripts/thread-cert/Cert_5_3_10_AddressQuery.py b/tests/scripts/thread-cert/Cert_5_3_10_AddressQuery.py index 4781f6058..775ee5f8c 100755 --- a/tests/scripts/thread-cert/Cert_5_3_10_AddressQuery.py +++ b/tests/scripts/thread-cert/Cert_5_3_10_AddressQuery.py @@ -109,7 +109,7 @@ class Cert_5_3_10_AddressQuery(thread_cert.TestCase): def test(self): # 1 & 2 self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[BR].start() diff --git a/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py b/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py index 51e78b1e2..7e0f304eb 100755 --- a/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py +++ b/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py @@ -85,7 +85,7 @@ class Cert_5_3_11_AddressQueryTimeoutIntervals(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[DUT_ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_5_01_LeaderReboot.py b/tests/scripts/thread-cert/Cert_5_5_01_LeaderReboot.py index 1ebebae99..af4ce8730 100755 --- a/tests/scripts/thread-cert/Cert_5_5_01_LeaderReboot.py +++ b/tests/scripts/thread-cert/Cert_5_5_01_LeaderReboot.py @@ -79,7 +79,7 @@ class Cert_5_5_1_LeaderReboot(thread_cert.TestCase): def test(self): self.nodes[DUT_LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') self.nodes[DUT_ROUTER1].start() @@ -97,7 +97,7 @@ class Cert_5_5_1_LeaderReboot(thread_cert.TestCase): self.nodes[DUT_LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') self.assertEqual(self.nodes[DUT_LEADER].get_addr16(), leader_rloc16) diff --git a/tests/scripts/thread-cert/Cert_5_5_02_LeaderReboot.py b/tests/scripts/thread-cert/Cert_5_5_02_LeaderReboot.py index be94103f6..6aff3cfce 100755 --- a/tests/scripts/thread-cert/Cert_5_5_02_LeaderReboot.py +++ b/tests/scripts/thread-cert/Cert_5_5_02_LeaderReboot.py @@ -67,7 +67,7 @@ class Cert_5_5_2_LeaderReboot(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() @@ -80,7 +80,7 @@ class Cert_5_5_2_LeaderReboot(thread_cert.TestCase): self.nodes[LEADER].reset() self._setUpLeader() - self.simulator.go(140) + self.simulator.go(150) self.assertEqual(self.nodes[ROUTER].get_state(), 'leader') self.nodes[LEADER].start() diff --git a/tests/scripts/thread-cert/Cert_5_5_03_SplitMergeChildren.py b/tests/scripts/thread-cert/Cert_5_5_03_SplitMergeChildren.py index 7a1d02f40..92040d013 100755 --- a/tests/scripts/thread-cert/Cert_5_5_03_SplitMergeChildren.py +++ b/tests/scripts/thread-cert/Cert_5_5_03_SplitMergeChildren.py @@ -85,7 +85,7 @@ class Cert_5_5_3_SplitMergeChildren(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() @@ -108,7 +108,7 @@ class Cert_5_5_3_SplitMergeChildren(thread_cert.TestCase): self._setUpLeader() self.nodes[ROUTER2].set_preferred_partition_id(0xffffffff) - self.simulator.go(140) + self.simulator.go(150) self.assertEqual(self.nodes[ROUTER1].get_state(), 'leader') self.assertEqual(self.nodes[ROUTER2].get_state(), 'leader') diff --git a/tests/scripts/thread-cert/Cert_5_5_04_SplitMergeRouters.py b/tests/scripts/thread-cert/Cert_5_5_04_SplitMergeRouters.py index 7628e961a..8c08d1ecf 100755 --- a/tests/scripts/thread-cert/Cert_5_5_04_SplitMergeRouters.py +++ b/tests/scripts/thread-cert/Cert_5_5_04_SplitMergeRouters.py @@ -78,7 +78,7 @@ class Cert_5_5_4_SplitMergeRouters(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_5_05_SplitMergeREED.py b/tests/scripts/thread-cert/Cert_5_5_05_SplitMergeREED.py index 65a02df1d..abfab5149 100755 --- a/tests/scripts/thread-cert/Cert_5_5_05_SplitMergeREED.py +++ b/tests/scripts/thread-cert/Cert_5_5_05_SplitMergeREED.py @@ -121,7 +121,7 @@ class Cert_5_5_5_SplitMergeREED(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(ROUTER2, ROUTER15 + 1): diff --git a/tests/scripts/thread-cert/Cert_5_5_07_SplitMergeThreeWay.py b/tests/scripts/thread-cert/Cert_5_5_07_SplitMergeThreeWay.py index 16be6ab21..3b6e201ff 100755 --- a/tests/scripts/thread-cert/Cert_5_5_07_SplitMergeThreeWay.py +++ b/tests/scripts/thread-cert/Cert_5_5_07_SplitMergeThreeWay.py @@ -73,7 +73,7 @@ class Cert_5_5_7_SplitMergeThreeWay(thread_cert.TestCase): def test(self): self.nodes[LEADER1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER1].get_state(), 'leader') self.nodes[ROUTER1].start() 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 f98b45078..044df4892 100755 --- a/tests/scripts/thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py +++ b/tests/scripts/thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py @@ -72,7 +72,7 @@ class Cert_5_6_1_NetworkDataLeaderAsBr(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[LEADER].add_prefix('2001:2:0:1::/64', 'paros') 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 d3c6089fe..cfb983ce6 100755 --- a/tests/scripts/thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py +++ b/tests/scripts/thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py @@ -72,7 +72,7 @@ class Cert_5_6_2_NetworkDataRouterAsBr(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 9c0335c2e..e5c6667e4 100755 --- a/tests/scripts/thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py +++ b/tests/scripts/thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py @@ -72,7 +72,7 @@ class Cert_5_6_3_NetworkDataRegisterAfterAttachLeader(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 858d291c5..ab3d9ca76 100755 --- a/tests/scripts/thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py +++ b/tests/scripts/thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py @@ -72,7 +72,7 @@ class Cert_5_6_4_NetworkDataRegisterAfterAttachRouter(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 58f162ed2..232ee23b2 100755 --- a/tests/scripts/thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py +++ b/tests/scripts/thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py @@ -72,7 +72,7 @@ class Cert_5_6_5_NetworkDataRegisterAfterAttachRouter(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 df02a2f15..5452f2051 100755 --- a/tests/scripts/thread-cert/Cert_5_6_06_NetworkDataExpiration.py +++ b/tests/scripts/thread-cert/Cert_5_6_06_NetworkDataExpiration.py @@ -72,7 +72,7 @@ class Cert_5_6_6_NetworkDataExpiration(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_5_6_07_NetworkDataRequestREED.py b/tests/scripts/thread-cert/Cert_5_6_07_NetworkDataRequestREED.py index fe7536b7e..fd66ef93d 100755 --- a/tests/scripts/thread-cert/Cert_5_6_07_NetworkDataRequestREED.py +++ b/tests/scripts/thread-cert/Cert_5_6_07_NetworkDataRequestREED.py @@ -120,7 +120,7 @@ class Cert_5_6_7_NetworkDataRequestREED(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(ROUTER1, ROUTER15 + 1): 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 0397dcc85..619999621 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(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_7_01_CoapDiagCommands.py b/tests/scripts/thread-cert/Cert_5_7_01_CoapDiagCommands.py index c5bb0f2c0..a2b0c402d 100755 --- a/tests/scripts/thread-cert/Cert_5_7_01_CoapDiagCommands.py +++ b/tests/scripts/thread-cert/Cert_5_7_01_CoapDiagCommands.py @@ -110,7 +110,7 @@ class Cert_5_7_01_CoapDiagCommands_Base(thread_cert.TestCase): def test(self): # 1 - Form topology self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_7_02_CoapDiagCommands.py b/tests/scripts/thread-cert/Cert_5_7_02_CoapDiagCommands.py index f9f8a4143..0e89e8375 100755 --- a/tests/scripts/thread-cert/Cert_5_7_02_CoapDiagCommands.py +++ b/tests/scripts/thread-cert/Cert_5_7_02_CoapDiagCommands.py @@ -159,7 +159,7 @@ class Cert_5_7_02_CoapDiagCommands(thread_cert.TestCase): def test(self): # 1 - Form topology self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(2, 17): diff --git a/tests/scripts/thread-cert/Cert_5_7_03_CoapDiagCommands.py b/tests/scripts/thread-cert/Cert_5_7_03_CoapDiagCommands.py index e33da6872..36b5b98c9 100755 --- a/tests/scripts/thread-cert/Cert_5_7_03_CoapDiagCommands.py +++ b/tests/scripts/thread-cert/Cert_5_7_03_CoapDiagCommands.py @@ -104,7 +104,7 @@ class Cert_5_7_03_CoapDiagCommands_Base(thread_cert.TestCase): def test(self): # 1 - Form topology self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_5_8_02_KeyIncrement.py b/tests/scripts/thread-cert/Cert_5_8_02_KeyIncrement.py index cead10f48..af305c613 100755 --- a/tests/scripts/thread-cert/Cert_5_8_02_KeyIncrement.py +++ b/tests/scripts/thread-cert/Cert_5_8_02_KeyIncrement.py @@ -56,7 +56,7 @@ class Cert_5_8_2_KeyIncrement(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), "leader") self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_5_8_03_KeyIncrementRollOver.py b/tests/scripts/thread-cert/Cert_5_8_03_KeyIncrementRollOver.py index 4dc9919bc..382c247aa 100755 --- a/tests/scripts/thread-cert/Cert_5_8_03_KeyIncrementRollOver.py +++ b/tests/scripts/thread-cert/Cert_5_8_03_KeyIncrementRollOver.py @@ -57,7 +57,7 @@ class Cert_5_8_3_KeyIncrementRollOver(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py b/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py index 1fc93e6b7..37f5506e3 100755 --- a/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py +++ b/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py @@ -112,7 +112,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER_1].start() diff --git a/tests/scripts/thread-cert/Cert_6_1_01_RouterAttach.py b/tests/scripts/thread-cert/Cert_6_1_01_RouterAttach.py index 4867947ea..59e18952b 100755 --- a/tests/scripts/thread-cert/Cert_6_1_01_RouterAttach.py +++ b/tests/scripts/thread-cert/Cert_6_1_01_RouterAttach.py @@ -75,7 +75,7 @@ class Cert_6_1_1_RouterAttach_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ED].start() diff --git a/tests/scripts/thread-cert/Cert_6_1_02_REEDAttach.py b/tests/scripts/thread-cert/Cert_6_1_02_REEDAttach.py index ce6383166..1bbb2d96f 100755 --- a/tests/scripts/thread-cert/Cert_6_1_02_REEDAttach.py +++ b/tests/scripts/thread-cert/Cert_6_1_02_REEDAttach.py @@ -84,7 +84,7 @@ class Cert_6_1_2_REEDAttach_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[REED].start() diff --git a/tests/scripts/thread-cert/Cert_6_1_03_RouterAttachConnectivity.py b/tests/scripts/thread-cert/Cert_6_1_03_RouterAttachConnectivity.py index da91d6333..3da6d068f 100755 --- a/tests/scripts/thread-cert/Cert_6_1_03_RouterAttachConnectivity.py +++ b/tests/scripts/thread-cert/Cert_6_1_03_RouterAttachConnectivity.py @@ -73,7 +73,7 @@ class Cert_6_1_3_RouterAttachConnectivity(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in range(2, 5): diff --git a/tests/scripts/thread-cert/Cert_6_1_04_REEDAttachConnectivity.py b/tests/scripts/thread-cert/Cert_6_1_04_REEDAttachConnectivity.py index 8c05eaa0f..34be7e9d9 100755 --- a/tests/scripts/thread-cert/Cert_6_1_04_REEDAttachConnectivity.py +++ b/tests/scripts/thread-cert/Cert_6_1_04_REEDAttachConnectivity.py @@ -96,7 +96,7 @@ class Cert_6_1_4_REEDAttachConnectivity_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_6_1_05_REEDAttachConnectivity.py b/tests/scripts/thread-cert/Cert_6_1_05_REEDAttachConnectivity.py index b6513798b..10ed131c8 100755 --- a/tests/scripts/thread-cert/Cert_6_1_05_REEDAttachConnectivity.py +++ b/tests/scripts/thread-cert/Cert_6_1_05_REEDAttachConnectivity.py @@ -75,7 +75,7 @@ class Cert_6_1_5_REEDAttachConnectivity(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() @@ -95,6 +95,8 @@ class Cert_6_1_5_REEDAttachConnectivity(thread_cert.TestCase): self.assertEqual(self.nodes[ED].get_state(), 'child') self.assertEqual(self.nodes[REED1].get_state(), 'router') + self.num_parent_requests = 1 if self.nodes[ED].version in ['1.1', '1.2'] else 2 + self.collect_ipaddrs() addrs = self.nodes[ED].get_addrs() for addr in addrs: @@ -109,12 +111,14 @@ class Cert_6_1_5_REEDAttachConnectivity(thread_cert.TestCase): _reed1_pkts = pkts.filter_wpan_src64(REED_1) _ed_pkts = pkts.filter_wpan_src64(ED) - # Step 2: The DUT MUST send a MLE Parent Request to the + # Step 2: The DUT MUST send MLE Parent Requests to the # All-Routers multicast address - _ed_pkts.filter_mle_cmd(MLE_PARENT_REQUEST).filter_ipv6_dst( - LINK_LOCAL_ALL_ROUTERS_MULTICAST_ADDRESS).must_next().must_verify( - lambda p: {MODE_TLV, CHALLENGE_TLV, SCAN_MASK_TLV, VERSION_TLV} == set(p.mle.tlv.type - ) and p.mle.tlv.scan_mask.r == 1) + + for num in range(self.num_parent_requests): + _ed_pkts.filter_mle_cmd(MLE_PARENT_REQUEST).filter_ipv6_dst( + LINK_LOCAL_ALL_ROUTERS_MULTICAST_ADDRESS).must_next().must_verify( + lambda p: {MODE_TLV, CHALLENGE_TLV, SCAN_MASK_TLV, VERSION_TLV} == set( + p.mle.tlv.type) and p.mle.tlv.scan_mask.r == 1) # Step 3: REED_1 and REED_2 No response to Parent Request # Step 4: DUT Send MLE Parent Request with Scan Mask set to Routers AND REEDs diff --git a/tests/scripts/thread-cert/Cert_6_1_06_REEDAttachLinkQuality.py b/tests/scripts/thread-cert/Cert_6_1_06_REEDAttachLinkQuality.py index 296ddf71f..7b9a23dc5 100755 --- a/tests/scripts/thread-cert/Cert_6_1_06_REEDAttachLinkQuality.py +++ b/tests/scripts/thread-cert/Cert_6_1_06_REEDAttachLinkQuality.py @@ -91,7 +91,7 @@ class Cert_6_1_6_REEDAttachLinkQuality_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[REED].start() diff --git a/tests/scripts/thread-cert/Cert_6_1_07_RouterAttachLinkQuality.py b/tests/scripts/thread-cert/Cert_6_1_07_RouterAttachLinkQuality.py index 0fd3ffb67..64cba5086 100755 --- a/tests/scripts/thread-cert/Cert_6_1_07_RouterAttachLinkQuality.py +++ b/tests/scripts/thread-cert/Cert_6_1_07_RouterAttachLinkQuality.py @@ -67,7 +67,7 @@ class Cert_6_1_7_RouterAttachLinkQuality(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_6_2_01_NewPartition.py b/tests/scripts/thread-cert/Cert_6_2_01_NewPartition.py index 95ad479c6..754cf7184 100755 --- a/tests/scripts/thread-cert/Cert_6_2_01_NewPartition.py +++ b/tests/scripts/thread-cert/Cert_6_2_01_NewPartition.py @@ -83,7 +83,7 @@ class Cert_6_2_1_NewPartition_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() @@ -95,7 +95,7 @@ class Cert_6_2_1_NewPartition_Base(thread_cert.TestCase): self.assertEqual(self.nodes[MTD].get_state(), 'child') self.nodes[LEADER].stop() - self.simulator.go(140) + self.simulator.go(150) self.assertEqual(self.nodes[ROUTER1].get_state(), 'leader') self.assertEqual(self.nodes[MTD].get_state(), 'child') diff --git a/tests/scripts/thread-cert/Cert_6_2_02_NewPartition.py b/tests/scripts/thread-cert/Cert_6_2_02_NewPartition.py index 071108205..a7fc7a675 100755 --- a/tests/scripts/thread-cert/Cert_6_2_02_NewPartition.py +++ b/tests/scripts/thread-cert/Cert_6_2_02_NewPartition.py @@ -68,7 +68,7 @@ class Cert_6_2_2_NewPartition(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/Cert_6_3_01_OrphanReattach.py b/tests/scripts/thread-cert/Cert_6_3_01_OrphanReattach.py index 9f515e615..216199a9c 100755 --- a/tests/scripts/thread-cert/Cert_6_3_01_OrphanReattach.py +++ b/tests/scripts/thread-cert/Cert_6_3_01_OrphanReattach.py @@ -62,7 +62,7 @@ class Cert_6_3_1_OrphanReattach(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_6_3_02_NetworkDataUpdate.py b/tests/scripts/thread-cert/Cert_6_3_02_NetworkDataUpdate.py index ac6a01feb..4d8ba3464 100755 --- a/tests/scripts/thread-cert/Cert_6_3_02_NetworkDataUpdate.py +++ b/tests/scripts/thread-cert/Cert_6_3_02_NetworkDataUpdate.py @@ -56,7 +56,7 @@ class Cert_6_3_2_NetworkDataUpdate(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ED].start() diff --git a/tests/scripts/thread-cert/Cert_6_4_01_LinkLocal.py b/tests/scripts/thread-cert/Cert_6_4_01_LinkLocal.py index 3faa013ce..2524e6db2 100755 --- a/tests/scripts/thread-cert/Cert_6_4_01_LinkLocal.py +++ b/tests/scripts/thread-cert/Cert_6_4_01_LinkLocal.py @@ -75,7 +75,7 @@ class Cert_6_4_1_LinkLocal_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[MTD].start() diff --git a/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py b/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py index 41a14d7dd..addccfb96 100755 --- a/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py +++ b/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py @@ -80,7 +80,7 @@ class Cert_6_4_2_RealmLocal_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_6_5_01_ChildResetReattach.py b/tests/scripts/thread-cert/Cert_6_5_01_ChildResetReattach.py index fdb970846..df62743b3 100755 --- a/tests/scripts/thread-cert/Cert_6_5_01_ChildResetReattach.py +++ b/tests/scripts/thread-cert/Cert_6_5_01_ChildResetReattach.py @@ -59,7 +59,7 @@ class Cert_6_5_1_ChildResetReattach(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ED].start() diff --git a/tests/scripts/thread-cert/Cert_6_5_02_ChildResetReattach.py b/tests/scripts/thread-cert/Cert_6_5_02_ChildResetReattach.py index 99f1a45de..05e4355f8 100755 --- a/tests/scripts/thread-cert/Cert_6_5_02_ChildResetReattach.py +++ b/tests/scripts/thread-cert/Cert_6_5_02_ChildResetReattach.py @@ -91,7 +91,7 @@ class Cert_6_5_2_ChildResetReattach_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_6_5_03_ChildResetSynchronize.py b/tests/scripts/thread-cert/Cert_6_5_03_ChildResetSynchronize.py index 0bca59802..d92539013 100755 --- a/tests/scripts/thread-cert/Cert_6_5_03_ChildResetSynchronize.py +++ b/tests/scripts/thread-cert/Cert_6_5_03_ChildResetSynchronize.py @@ -60,7 +60,7 @@ class Cert_6_5_3_ChildResetSynchronize(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ED].start() diff --git a/tests/scripts/thread-cert/Cert_6_6_01_KeyIncrement.py b/tests/scripts/thread-cert/Cert_6_6_01_KeyIncrement.py index 513af2ff0..6ad6e6ecc 100755 --- a/tests/scripts/thread-cert/Cert_6_6_01_KeyIncrement.py +++ b/tests/scripts/thread-cert/Cert_6_6_01_KeyIncrement.py @@ -57,7 +57,7 @@ class Cert_6_6_1_KeyIncrement(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), "leader") self.nodes[ED].start() diff --git a/tests/scripts/thread-cert/Cert_6_6_02_KeyIncrementRollOver.py b/tests/scripts/thread-cert/Cert_6_6_02_KeyIncrementRollOver.py index 2a59fc3f2..d7e078537 100755 --- a/tests/scripts/thread-cert/Cert_6_6_02_KeyIncrementRollOver.py +++ b/tests/scripts/thread-cert/Cert_6_6_02_KeyIncrementRollOver.py @@ -58,7 +58,7 @@ class Cert_6_6_2_KeyIncrement1(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ED].start() 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 c37eb4be9..7b90d12b9 100755 --- a/tests/scripts/thread-cert/Cert_7_1_01_BorderRouterAsLeader.py +++ b/tests/scripts/thread-cert/Cert_7_1_01_BorderRouterAsLeader.py @@ -98,7 +98,7 @@ class Cert_7_1_1_BorderRouterAsLeader(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[LEADER].add_prefix(PREFIX_2001, 'paros') 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 a657fc665..61495ea0a 100755 --- a/tests/scripts/thread-cert/Cert_7_1_02_BorderRouterAsRouter.py +++ b/tests/scripts/thread-cert/Cert_7_1_02_BorderRouterAsRouter.py @@ -72,7 +72,7 @@ class Cert_7_1_2_BorderRouterAsRouter(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 94befdde6..03d440ebd 100755 --- a/tests/scripts/thread-cert/Cert_7_1_03_BorderRouterAsLeader.py +++ b/tests/scripts/thread-cert/Cert_7_1_03_BorderRouterAsLeader.py @@ -99,7 +99,7 @@ class Cert_7_1_3_BorderRouterAsLeader(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 965e9b349..c5490a455 100755 --- a/tests/scripts/thread-cert/Cert_7_1_04_BorderRouterAsRouter.py +++ b/tests/scripts/thread-cert/Cert_7_1_04_BorderRouterAsRouter.py @@ -72,7 +72,7 @@ class Cert_7_1_4_BorderRouterAsRouter(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() 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 6fd3c2d75..3ee96e1bc 100755 --- a/tests/scripts/thread-cert/Cert_7_1_05_BorderRouterAsRouter.py +++ b/tests/scripts/thread-cert/Cert_7_1_05_BorderRouterAsRouter.py @@ -97,7 +97,7 @@ class Cert_7_1_5_BorderRouterAsRouter(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_7_1_06_BorderRouterAsLeader.py b/tests/scripts/thread-cert/Cert_7_1_06_BorderRouterAsLeader.py index 0ec424a59..f6053cb6b 100755 --- a/tests/scripts/thread-cert/Cert_7_1_06_BorderRouterAsLeader.py +++ b/tests/scripts/thread-cert/Cert_7_1_06_BorderRouterAsLeader.py @@ -113,7 +113,7 @@ class Cert_7_1_6_BorderRouterAsLeader(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in (2, 3): diff --git a/tests/scripts/thread-cert/Cert_7_1_07_BorderRouterAsLeader.py b/tests/scripts/thread-cert/Cert_7_1_07_BorderRouterAsLeader.py index 95b2d4aee..617fb58b7 100755 --- a/tests/scripts/thread-cert/Cert_7_1_07_BorderRouterAsLeader.py +++ b/tests/scripts/thread-cert/Cert_7_1_07_BorderRouterAsLeader.py @@ -113,7 +113,7 @@ class Cert_7_1_7_BorderRouterAsLeader(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for i in (2, 3): @@ -146,7 +146,7 @@ class Cert_7_1_7_BorderRouterAsLeader(thread_cert.TestCase): # Wait for NETWORK_ID_TIMEOUT taking effect # Router_2 creates a new partition - self.simulator.go(60) + self.simulator.go(80) self.assertEqual(self.nodes[ROUTER_2].get_state(), 'leader') self.nodes[ROUTER_2].remove_domain_prefix(PREFIX_1) self.nodes[ROUTER_2].add_prefix(PREFIX_2, 'paros') diff --git a/tests/scripts/thread-cert/Cert_7_1_08_BorderRouterAsFED.py b/tests/scripts/thread-cert/Cert_7_1_08_BorderRouterAsFED.py index 1e3c7df0d..a43198427 100755 --- a/tests/scripts/thread-cert/Cert_7_1_08_BorderRouterAsFED.py +++ b/tests/scripts/thread-cert/Cert_7_1_08_BorderRouterAsFED.py @@ -92,7 +92,7 @@ class Cert_7_1_8_BorderRouterAsFED(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_8_1_01_Commissioning.py b/tests/scripts/thread-cert/Cert_8_1_01_Commissioning.py index b4104dae1..447ebbbae 100755 --- a/tests/scripts/thread-cert/Cert_8_1_01_Commissioning.py +++ b/tests/scripts/thread-cert/Cert_8_1_01_Commissioning.py @@ -78,7 +78,7 @@ class Cert_8_1_01_Commissioning(thread_cert.TestCase): def test(self): self.nodes[COMMISSIONER].interface_up() self.nodes[COMMISSIONER].thread_start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[COMMISSIONER].get_state(), 'leader') self.nodes[COMMISSIONER].commissioner_start() self.simulator.go(3) diff --git a/tests/scripts/thread-cert/Cert_8_1_02_Commissioning.py b/tests/scripts/thread-cert/Cert_8_1_02_Commissioning.py index f47fbef8d..a80770036 100755 --- a/tests/scripts/thread-cert/Cert_8_1_02_Commissioning.py +++ b/tests/scripts/thread-cert/Cert_8_1_02_Commissioning.py @@ -57,7 +57,7 @@ class Cert_8_1_02_Commissioning(thread_cert.TestCase): def test(self): self.nodes[COMMISSIONER].interface_up() self.nodes[COMMISSIONER].thread_start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[COMMISSIONER].get_state(), 'leader') self.nodes[COMMISSIONER].commissioner_start() self.simulator.go(3) diff --git a/tests/scripts/thread-cert/Cert_8_1_06_Commissioning.py b/tests/scripts/thread-cert/Cert_8_1_06_Commissioning.py index 667bea096..d00092985 100755 --- a/tests/scripts/thread-cert/Cert_8_1_06_Commissioning.py +++ b/tests/scripts/thread-cert/Cert_8_1_06_Commissioning.py @@ -77,7 +77,7 @@ class Cert_8_1_06_Commissioning(thread_cert.TestCase): def test(self): self.nodes[COMMISSIONER].interface_up() self.nodes[COMMISSIONER].thread_start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[COMMISSIONER].get_state(), 'leader') self.nodes[COMMISSIONER].commissioner_set_provisioning_url(URL_1) self.nodes[COMMISSIONER].commissioner_start() diff --git a/tests/scripts/thread-cert/Cert_8_2_01_JoinerRouter.py b/tests/scripts/thread-cert/Cert_8_2_01_JoinerRouter.py index a9960be40..b2951ee46 100755 --- a/tests/scripts/thread-cert/Cert_8_2_01_JoinerRouter.py +++ b/tests/scripts/thread-cert/Cert_8_2_01_JoinerRouter.py @@ -63,7 +63,7 @@ class Cert_8_2_01_JoinerRouter(thread_cert.TestCase): def test(self): self.nodes[COMMISSIONER].interface_up() self.nodes[COMMISSIONER].thread_start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[COMMISSIONER].get_state(), 'leader') self.nodes[COMMISSIONER].commissioner_start() diff --git a/tests/scripts/thread-cert/Cert_8_2_02_JoinerRouter.py b/tests/scripts/thread-cert/Cert_8_2_02_JoinerRouter.py index 8d651420b..7ef880b28 100755 --- a/tests/scripts/thread-cert/Cert_8_2_02_JoinerRouter.py +++ b/tests/scripts/thread-cert/Cert_8_2_02_JoinerRouter.py @@ -63,7 +63,7 @@ class Cert_8_2_02_JoinerRouter(thread_cert.TestCase): def test(self): self.nodes[COMMISSIONER].interface_up() self.nodes[COMMISSIONER].thread_start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[COMMISSIONER].get_state(), 'leader') self.nodes[COMMISSIONER].commissioner_start() diff --git a/tests/scripts/thread-cert/Cert_8_2_05_JoinerRouter.py b/tests/scripts/thread-cert/Cert_8_2_05_JoinerRouter.py index a3357613c..a8f01b2ff 100755 --- a/tests/scripts/thread-cert/Cert_8_2_05_JoinerRouter.py +++ b/tests/scripts/thread-cert/Cert_8_2_05_JoinerRouter.py @@ -89,7 +89,7 @@ class Cert_8_2_05_JoinerRouter(thread_cert.TestCase): def test(self): self.nodes[COMMISSIONER].interface_up() self.nodes[COMMISSIONER].thread_start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[COMMISSIONER].get_state(), 'leader') self.nodes[COMMISSIONER].commissioner_set_provisioning_url(URL_1) diff --git a/tests/scripts/thread-cert/Cert_8_3_01_CommissionerPetition.py b/tests/scripts/thread-cert/Cert_8_3_01_CommissionerPetition.py index f85627671..4c30bfc22 100755 --- a/tests/scripts/thread-cert/Cert_8_3_01_CommissionerPetition.py +++ b/tests/scripts/thread-cert/Cert_8_3_01_CommissionerPetition.py @@ -78,7 +78,7 @@ class Cert_8_3_01_CommissionerPetition(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() self.simulator.go(config.ROUTER_STARTUP_DELAY) diff --git a/tests/scripts/thread-cert/Cert_9_2_01_MGMTCommissionerGet.py b/tests/scripts/thread-cert/Cert_9_2_01_MGMTCommissionerGet.py index 56f8b5e27..9dd812098 100755 --- a/tests/scripts/thread-cert/Cert_9_2_01_MGMTCommissionerGet.py +++ b/tests/scripts/thread-cert/Cert_9_2_01_MGMTCommissionerGet.py @@ -74,7 +74,7 @@ class Cert_9_2_01_MGMTCommissionerGet(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_02_MGMTCommissionerSet.py b/tests/scripts/thread-cert/Cert_9_2_02_MGMTCommissionerSet.py index 17f721112..7ece17af2 100755 --- a/tests/scripts/thread-cert/Cert_9_2_02_MGMTCommissionerSet.py +++ b/tests/scripts/thread-cert/Cert_9_2_02_MGMTCommissionerSet.py @@ -75,7 +75,7 @@ class Cert_9_2_02_MGMTCommissionerSet(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_03_ActiveDatasetGet.py b/tests/scripts/thread-cert/Cert_9_2_03_ActiveDatasetGet.py index 0a8fed9f9..66ac7d8a3 100755 --- a/tests/scripts/thread-cert/Cert_9_2_03_ActiveDatasetGet.py +++ b/tests/scripts/thread-cert/Cert_9_2_03_ActiveDatasetGet.py @@ -75,7 +75,7 @@ class Cert_9_2_03_ActiveDatasetGet(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_04_ActiveDataset.py b/tests/scripts/thread-cert/Cert_9_2_04_ActiveDataset.py index 7f76b31f4..01f1f2293 100755 --- a/tests/scripts/thread-cert/Cert_9_2_04_ActiveDataset.py +++ b/tests/scripts/thread-cert/Cert_9_2_04_ActiveDataset.py @@ -65,7 +65,7 @@ class Cert_9_2_04_ActiveDataset(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_05_ActiveDataset.py b/tests/scripts/thread-cert/Cert_9_2_05_ActiveDataset.py index 8629e2b7f..3c54cf04d 100755 --- a/tests/scripts/thread-cert/Cert_9_2_05_ActiveDataset.py +++ b/tests/scripts/thread-cert/Cert_9_2_05_ActiveDataset.py @@ -76,7 +76,7 @@ class Cert_9_2_05_ActiveDataset(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_06_DatasetDissemination.py b/tests/scripts/thread-cert/Cert_9_2_06_DatasetDissemination.py index 94819eb20..a4ff24b22 100755 --- a/tests/scripts/thread-cert/Cert_9_2_06_DatasetDissemination.py +++ b/tests/scripts/thread-cert/Cert_9_2_06_DatasetDissemination.py @@ -143,7 +143,7 @@ class Cert_9_2_06_DatasetDissemination(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_07_DelayTimer.py b/tests/scripts/thread-cert/Cert_9_2_07_DelayTimer.py index 508265ece..0460f1dc2 100755 --- a/tests/scripts/thread-cert/Cert_9_2_07_DelayTimer.py +++ b/tests/scripts/thread-cert/Cert_9_2_07_DelayTimer.py @@ -77,7 +77,7 @@ class Cert_9_2_7_DelayTimer(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() @@ -90,12 +90,12 @@ class Cert_9_2_7_DelayTimer(thread_cert.TestCase): self.simulator.go(5) self.nodes[ROUTER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[ROUTER].get_state(), 'leader') self.nodes[LEADER].add_allowlist(self.nodes[ROUTER].get_addr64()) self.nodes[ROUTER].add_allowlist(self.nodes[LEADER].get_addr64()) - self.simulator.go(20) + self.simulator.go(35) self.assertEqual(self.nodes[COMMISSIONER].get_state(), 'router') self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.assertEqual(self.nodes[ROUTER].get_state(), 'router') 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 97072b3c1..d64ff047c 100755 --- a/tests/scripts/thread-cert/Cert_9_2_08_PersistentDatasets.py +++ b/tests/scripts/thread-cert/Cert_9_2_08_PersistentDatasets.py @@ -111,7 +111,7 @@ class Cert_9_2_8_PersistentDatasets_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_09_PendingPartition.py b/tests/scripts/thread-cert/Cert_9_2_09_PendingPartition.py index 621384f17..a56c47db1 100755 --- a/tests/scripts/thread-cert/Cert_9_2_09_PendingPartition.py +++ b/tests/scripts/thread-cert/Cert_9_2_09_PendingPartition.py @@ -131,7 +131,7 @@ class Cert_9_2_09_PendingPartition(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() 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 d158e554d..c5c634530 100755 --- a/tests/scripts/thread-cert/Cert_9_2_10_PendingPartition.py +++ b/tests/scripts/thread-cert/Cert_9_2_10_PendingPartition.py @@ -100,7 +100,7 @@ class Cert_9_2_10_PendingPartition(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_11_NetworkKey.py b/tests/scripts/thread-cert/Cert_9_2_11_NetworkKey.py index 776a87d62..e63a8606e 100755 --- a/tests/scripts/thread-cert/Cert_9_2_11_NetworkKey.py +++ b/tests/scripts/thread-cert/Cert_9_2_11_NetworkKey.py @@ -135,7 +135,7 @@ class Cert_9_2_11_NetworkKey(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_12_Announce.py b/tests/scripts/thread-cert/Cert_9_2_12_Announce.py index 8034ece26..f0dd65ef2 100755 --- a/tests/scripts/thread-cert/Cert_9_2_12_Announce.py +++ b/tests/scripts/thread-cert/Cert_9_2_12_Announce.py @@ -94,7 +94,7 @@ class Cert_9_2_12_Announce(thread_cert.TestCase): def test(self): self.nodes[LEADER1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER1].get_state(), 'leader') self.nodes[LEADER1].commissioner_start() self.simulator.go(3) diff --git a/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py b/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py index 20aa19b55..3e9df4781 100755 --- a/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py +++ b/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py @@ -67,7 +67,7 @@ class Cert_9_2_13_EnergyScan_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py b/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py index 237814dde..e97a720e5 100755 --- a/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py +++ b/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py @@ -69,7 +69,7 @@ class Cert_9_2_14_PanIdQuery(thread_cert.TestCase): def test(self): self.nodes[LEADER1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER1].get_state(), 'leader') self.nodes[COMMISSIONER].start() @@ -83,7 +83,7 @@ class Cert_9_2_14_PanIdQuery(thread_cert.TestCase): self.assertEqual(self.nodes[ROUTER1].get_state(), 'router') self.nodes[LEADER2].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER2].get_state(), 'leader') self.collect_rlocs() diff --git a/tests/scripts/thread-cert/Cert_9_2_15_PendingPartition.py b/tests/scripts/thread-cert/Cert_9_2_15_PendingPartition.py index fd18667c2..13d3e2bec 100755 --- a/tests/scripts/thread-cert/Cert_9_2_15_PendingPartition.py +++ b/tests/scripts/thread-cert/Cert_9_2_15_PendingPartition.py @@ -99,7 +99,7 @@ class Cert_9_2_15_PendingPartition(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_16_ActivePendingPartition.py b/tests/scripts/thread-cert/Cert_9_2_16_ActivePendingPartition.py index c0f60569a..e257f28d3 100755 --- a/tests/scripts/thread-cert/Cert_9_2_16_ActivePendingPartition.py +++ b/tests/scripts/thread-cert/Cert_9_2_16_ActivePendingPartition.py @@ -100,7 +100,7 @@ class Cert_9_2_16_ActivePendingPartition(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() 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 ee147636d..9fce65e29 100755 --- a/tests/scripts/thread-cert/Cert_9_2_17_Orphan.py +++ b/tests/scripts/thread-cert/Cert_9_2_17_Orphan.py @@ -82,7 +82,7 @@ class Cert_9_2_17_Orphan(thread_cert.TestCase): def test(self): self.nodes[LEADER1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER1].get_state(), 'leader') self.nodes[LEADER2].start() 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 f8996a52f..5c809ea23 100755 --- a/tests/scripts/thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py +++ b/tests/scripts/thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py @@ -111,7 +111,7 @@ class Cert_9_2_18_RollBackActiveTimestamp(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/Cert_9_2_19_PendingDatasetGet.py b/tests/scripts/thread-cert/Cert_9_2_19_PendingDatasetGet.py index de2c0a937..ab0842d57 100755 --- a/tests/scripts/thread-cert/Cert_9_2_19_PendingDatasetGet.py +++ b/tests/scripts/thread-cert/Cert_9_2_19_PendingDatasetGet.py @@ -74,7 +74,7 @@ class Cert_9_2_19_PendingDatasetGet(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[COMMISSIONER].start() diff --git a/tests/scripts/thread-cert/backbone/bbr_5_11_01.py b/tests/scripts/thread-cert/backbone/bbr_5_11_01.py index d0adf5948..63d2b08b8 100755 --- a/tests/scripts/thread-cert/backbone/bbr_5_11_01.py +++ b/tests/scripts/thread-cert/backbone/bbr_5_11_01.py @@ -81,7 +81,7 @@ class BBR_5_11_01(thread_cert.TestCase): self.nodes[ROUTER1].set_weight(72) self.nodes[ROUTER1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[ROUTER1].get_state()) self.nodes[ROUTER2].start() diff --git a/tests/scripts/thread-cert/backbone/test_bmlr.py b/tests/scripts/thread-cert/backbone/test_bmlr.py index f685da86c..990038c85 100644 --- a/tests/scripts/thread-cert/backbone/test_bmlr.py +++ b/tests/scripts/thread-cert/backbone/test_bmlr.py @@ -39,6 +39,7 @@ import unittest import thread_cert +import config from pktverify.packet_verifier import PacketVerifier PBBR = 1 @@ -87,7 +88,7 @@ class BBR_5_11_01(thread_cert.TestCase): def test(self): self.nodes[PBBR].start() - self.wait_node_state(PBBR, 'leader', 5) + self.wait_node_state(PBBR, 'leader', 10) self.nodes[PBBR].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR].enable_backbone_router() self.wait_until(lambda: self.nodes[PBBR].is_primary_backbone_router, 5) diff --git a/tests/scripts/thread-cert/backbone/test_dua_dad.py b/tests/scripts/thread-cert/backbone/test_dua_dad.py index 9239978d0..9fe2a874a 100644 --- a/tests/scripts/thread-cert/backbone/test_dua_dad.py +++ b/tests/scripts/thread-cert/backbone/test_dua_dad.py @@ -121,9 +121,9 @@ class TestDuaDad(thread_cert.TestCase): # Bring up PBBR self.nodes[PBBR].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR].get_state()) - self.wait_node_state(PBBR, 'leader', 5) + self.wait_node_state(PBBR, 'leader', 10) self.nodes[PBBR].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR].enable_backbone_router() @@ -152,9 +152,9 @@ class TestDuaDad(thread_cert.TestCase): # Bring up PBBR2 self.nodes[PBBR2].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR2].get_state()) - self.wait_node_state(PBBR2, 'leader', 5) + self.wait_node_state(PBBR2, 'leader', 10) self.nodes[PBBR2].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR2].enable_backbone_router() diff --git a/tests/scripts/thread-cert/backbone/test_dua_routing.py b/tests/scripts/thread-cert/backbone/test_dua_routing.py index 51b88fafc..3c3c2498e 100644 --- a/tests/scripts/thread-cert/backbone/test_dua_routing.py +++ b/tests/scripts/thread-cert/backbone/test_dua_routing.py @@ -109,9 +109,9 @@ class TestNdProxy(thread_cert.TestCase): # Bring up PBBR self.nodes[PBBR].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR].get_state()) - self.wait_node_state(PBBR, 'leader', 5) + self.wait_node_state(PBBR, 'leader', 10) self.nodes[PBBR].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR].enable_backbone_router() @@ -139,9 +139,9 @@ class TestNdProxy(thread_cert.TestCase): # Bring up PBBR2 self.nodes[PBBR2].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR2].get_state()) - self.wait_node_state(PBBR2, 'leader', 5) + self.wait_node_state(PBBR2, 'leader', 10) self.nodes[PBBR2].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR2].enable_backbone_router() diff --git a/tests/scripts/thread-cert/backbone/test_dua_routing_med.py b/tests/scripts/thread-cert/backbone/test_dua_routing_med.py index d6a5fc79b..fd908b8da 100644 --- a/tests/scripts/thread-cert/backbone/test_dua_routing_med.py +++ b/tests/scripts/thread-cert/backbone/test_dua_routing_med.py @@ -109,9 +109,9 @@ class TestDuaRoutingMed(thread_cert.TestCase): # Bring up PBBR self.nodes[PBBR].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR].get_state()) - self.wait_node_state(PBBR, 'leader', 5) + self.wait_node_state(PBBR, 'leader', 10) self.nodes[PBBR].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR].enable_backbone_router() @@ -134,9 +134,9 @@ class TestDuaRoutingMed(thread_cert.TestCase): # Bring up PBBR2 self.nodes[PBBR2].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR2].get_state()) - self.wait_node_state(PBBR2, 'leader', 5) + self.wait_node_state(PBBR2, 'leader', 10) self.nodes[PBBR2].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR2].enable_backbone_router() diff --git a/tests/scripts/thread-cert/backbone/test_mle_must_not_send_icmpv6_destination_unreachable.py b/tests/scripts/thread-cert/backbone/test_mle_must_not_send_icmpv6_destination_unreachable.py index bb6d09c57..40221fdf4 100644 --- a/tests/scripts/thread-cert/backbone/test_mle_must_not_send_icmpv6_destination_unreachable.py +++ b/tests/scripts/thread-cert/backbone/test_mle_must_not_send_icmpv6_destination_unreachable.py @@ -31,6 +31,7 @@ import unittest import thread_cert +import config from pktverify.consts import ICMPV6_TYPE_DESTINATION_UNREACHABLE from pktverify.packet_verifier import PacketVerifier @@ -63,7 +64,7 @@ class TestMleMustNotSendIcmpv6DestinationUnreachable(thread_cert.TestCase): def test(self): self.nodes[PBBR].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR].get_state()) self.nodes[PBBR].enable_backbone_router() self.simulator.go(3) diff --git a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing.py b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing.py index 6539ac91e..762ce13d4 100644 --- a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing.py +++ b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing.py @@ -128,7 +128,7 @@ class TestMlr(thread_cert.TestCase): # Bring up Leader self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[LEADER].get_state()) # Bring up Router diff --git a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_across_thread_pans.py b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_across_thread_pans.py index 1abb932f8..8da0c1c18 100644 --- a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_across_thread_pans.py +++ b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_across_thread_pans.py @@ -102,7 +102,7 @@ class TestMlr(thread_cert.TestCase): # Bring up PBBR1 self.nodes[PBBR1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR1].get_state()) self.nodes[PBBR1].enable_backbone_router() @@ -121,7 +121,7 @@ class TestMlr(thread_cert.TestCase): # Bring up PBBR2 self.nodes[PBBR2].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR2].get_state()) self.nodes[PBBR2].enable_backbone_router() diff --git a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_commissioner_timeout.py b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_commissioner_timeout.py index aa7a99906..1ced307d9 100644 --- a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_commissioner_timeout.py +++ b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_commissioner_timeout.py @@ -29,6 +29,7 @@ # This test verifies that the MLR timeout configured by Commissioner works for multicast routing. # import unittest +import config from pktverify.consts import NM_COMMISSIONER_SESSION_ID_TLV from pktverify.packet_verifier import PacketVerifier diff --git a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_timeout.py b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_timeout.py index 5d74c05cb..fcedbde49 100644 --- a/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_timeout.py +++ b/tests/scripts/thread-cert/backbone/test_mlr_multicast_routing_timeout.py @@ -81,7 +81,7 @@ class TestMlrTimeout(thread_cert.TestCase): # Bring up PBBR self.nodes[PBBR].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR].get_state()) self.nodes[PBBR].enable_backbone_router() self.nodes[PBBR].set_backbone_router(reg_delay=REG_DELAY, mlr_timeout=MLR_TIMEOUT) diff --git a/tests/scripts/thread-cert/backbone/test_ndproxy.py b/tests/scripts/thread-cert/backbone/test_ndproxy.py index dbb227467..bab1c7168 100644 --- a/tests/scripts/thread-cert/backbone/test_ndproxy.py +++ b/tests/scripts/thread-cert/backbone/test_ndproxy.py @@ -88,9 +88,9 @@ class TestNdProxy(thread_cert.TestCase): # Bring up PBBR self.nodes[PBBR].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', self.nodes[PBBR].get_state()) - self.wait_node_state(PBBR, 'leader', 5) + self.wait_node_state(PBBR, 'leader', 10) self.nodes[PBBR].set_backbone_router(reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[PBBR].enable_backbone_router() diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_02_MLRFirstUse.py b/tests/scripts/thread-cert/border_router/MATN/MATN_02_MLRFirstUse.py index 19940256f..db215e6c8 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_02_MLRFirstUse.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_02_MLRFirstUse.py @@ -97,7 +97,7 @@ class MATN_02_MLRFirstUse(thread_cert.TestCase): host = self.nodes[HOST] br1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_03_InvalidCommissionerDeregistration.py b/tests/scripts/thread-cert/border_router/MATN/MATN_03_InvalidCommissionerDeregistration.py index 272f79408..1d9de6591 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_03_InvalidCommissionerDeregistration.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_03_InvalidCommissionerDeregistration.py @@ -90,7 +90,7 @@ class MATN_03_InvalidCommissionerDeregistration(thread_cert.TestCase): host = self.nodes[HOST] br1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_04_MulticastListenerTimeout.py b/tests/scripts/thread-cert/border_router/MATN/MATN_04_MulticastListenerTimeout.py index b24a708ad..119529ffc 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_04_MulticastListenerTimeout.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_04_MulticastListenerTimeout.py @@ -94,7 +94,7 @@ class MATN_04_MulticastListenerTimeout(thread_cert.TestCase): br1.set_backbone_router(reg_delay=REG_DELAY, mlr_timeout=consts.MLR_TIMEOUT_MIN) br1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_05_ReregistrationToSameMulticastGroup.py b/tests/scripts/thread-cert/border_router/MATN/MATN_05_ReregistrationToSameMulticastGroup.py index 7eaa590a4..e931127ea 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_05_ReregistrationToSameMulticastGroup.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_05_ReregistrationToSameMulticastGroup.py @@ -95,7 +95,7 @@ class MATN_05_ReregistrationToSameMulticastGroup(thread_cert.TestCase): br1.set_backbone_router(reg_delay=REG_DELAY, mlr_timeout=consts.MLR_TIMEOUT_MIN) br1.start() - self.simulator.go(10) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_09_DefaultBRMulticastForwarding.py b/tests/scripts/thread-cert/border_router/MATN/MATN_09_DefaultBRMulticastForwarding.py index 3f2bf08cf..5e92a379a 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_09_DefaultBRMulticastForwarding.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_09_DefaultBRMulticastForwarding.py @@ -87,7 +87,7 @@ class MATN_09_FailureOfPrimaryBBROutboundMulticast(thread_cert.TestCase): router1 = self.nodes[ROUTER_1] br1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_12_HopLimitProcessing.py b/tests/scripts/thread-cert/border_router/MATN/MATN_12_HopLimitProcessing.py index a031b4f86..c51c04810 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_12_HopLimitProcessing.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_12_HopLimitProcessing.py @@ -85,7 +85,7 @@ class MATN_12_HopLimitProcessing(thread_cert.TestCase): host = self.nodes[HOST] br1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_15_ChangeOfPrimaryBBRTriggersRegistration.py b/tests/scripts/thread-cert/border_router/MATN/MATN_15_ChangeOfPrimaryBBRTriggersRegistration.py index 8a7506802..71c7da285 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_15_ChangeOfPrimaryBBRTriggersRegistration.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_15_ChangeOfPrimaryBBRTriggersRegistration.py @@ -106,7 +106,7 @@ class MATN_15_ChangeOfPrimaryBBRTriggersRegistration(thread_cert.TestCase): br1.set_backbone_router(reg_delay=REG_DELAY, mlr_timeout=consts.MLR_TIMEOUT_MIN) br1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/MATN/MATN_16_LargeNumberOfMulticastGroupSubscriptionsToBBR.py b/tests/scripts/thread-cert/border_router/MATN/MATN_16_LargeNumberOfMulticastGroupSubscriptionsToBBR.py index 68a459878..d5a2ae16f 100644 --- a/tests/scripts/thread-cert/border_router/MATN/MATN_16_LargeNumberOfMulticastGroupSubscriptionsToBBR.py +++ b/tests/scripts/thread-cert/border_router/MATN/MATN_16_LargeNumberOfMulticastGroupSubscriptionsToBBR.py @@ -91,7 +91,7 @@ class MATN_16_LargeNumberOfMulticastGroupSubscriptionsToBBR(thread_cert.TestCase br1.set_backbone_router(reg_delay=REG_DELAY, mlr_timeout=consts.MLR_TIMEOUT_MIN) br1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/test_border_router_as_fed.py b/tests/scripts/thread-cert/border_router/test_border_router_as_fed.py index 0a20239df..ec705c582 100644 --- a/tests/scripts/thread-cert/border_router/test_border_router_as_fed.py +++ b/tests/scripts/thread-cert/border_router/test_border_router_as_fed.py @@ -80,7 +80,7 @@ class TestBorderRouterAsFed(thread_cert.TestCase): self.simulator.go(5) leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', leader.get_state()) br.start() diff --git a/tests/scripts/thread-cert/border_router/test_dnssd_instance_name_with_space.py b/tests/scripts/thread-cert/border_router/test_dnssd_instance_name_with_space.py index d20040dbd..7c2cc9985 100644 --- a/tests/scripts/thread-cert/border_router/test_dnssd_instance_name_with_space.py +++ b/tests/scripts/thread-cert/border_router/test_dnssd_instance_name_with_space.py @@ -90,7 +90,7 @@ class TestDnssdInstanceNameWithSpace(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) server.srp_server_set_enabled(True) diff --git a/tests/scripts/thread-cert/border_router/test_dnssd_server.py b/tests/scripts/thread-cert/border_router/test_dnssd_server.py index 9d07d28a8..471c83ee2 100644 --- a/tests/scripts/thread-cert/border_router/test_dnssd_server.py +++ b/tests/scripts/thread-cert/border_router/test_dnssd_server.py @@ -94,7 +94,7 @@ class TestDnssdServerOnBr(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) server.srp_server_set_enabled(True) diff --git a/tests/scripts/thread-cert/border_router/test_dnssd_server_multi_border_routers.py b/tests/scripts/thread-cert/border_router/test_dnssd_server_multi_border_routers.py index 0f267e0aa..3a09b726d 100644 --- a/tests/scripts/thread-cert/border_router/test_dnssd_server_multi_border_routers.py +++ b/tests/scripts/thread-cert/border_router/test_dnssd_server_multi_border_routers.py @@ -111,7 +111,7 @@ class TestDnssdServerOnMultiBr(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) br1.srp_server_set_enabled(True) diff --git a/tests/scripts/thread-cert/border_router/test_end_device_udp_reachability.py b/tests/scripts/thread-cert/border_router/test_end_device_udp_reachability.py index bef4a6a1b..2ad55c8fa 100644 --- a/tests/scripts/thread-cert/border_router/test_end_device_udp_reachability.py +++ b/tests/scripts/thread-cert/border_router/test_end_device_udp_reachability.py @@ -82,7 +82,7 @@ class TestEndDeviceUdpReachability(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) br1.udp_start("::", PORT, bind_unspecified=True) diff --git a/tests/scripts/thread-cert/border_router/test_external_route.py b/tests/scripts/thread-cert/border_router/test_external_route.py index 236a8286b..cbb597bdc 100644 --- a/tests/scripts/thread-cert/border_router/test_external_route.py +++ b/tests/scripts/thread-cert/border_router/test_external_route.py @@ -93,7 +93,7 @@ class ExternalRoutes(thread_cert.TestCase): host = self.nodes[HOST] br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) br2.start() diff --git a/tests/scripts/thread-cert/border_router/test_firewall.py b/tests/scripts/thread-cert/border_router/test_firewall.py index abc6d3614..c1bd9ad67 100644 --- a/tests/scripts/thread-cert/border_router/test_firewall.py +++ b/tests/scripts/thread-cert/border_router/test_firewall.py @@ -81,7 +81,7 @@ class Firewall(thread_cert.TestCase): host = self.nodes[HOST] br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) router1.start() diff --git a/tests/scripts/thread-cert/border_router/test_manual_address.py b/tests/scripts/thread-cert/border_router/test_manual_address.py index aeb6c6051..bc432fede 100644 --- a/tests/scripts/thread-cert/border_router/test_manual_address.py +++ b/tests/scripts/thread-cert/border_router/test_manual_address.py @@ -71,7 +71,7 @@ class ManualAddressConfig(thread_cert.TestCase): router = self.nodes[ROUTER] br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/test_manual_maddress.py b/tests/scripts/thread-cert/border_router/test_manual_maddress.py index 93f94b55b..1bbe19007 100644 --- a/tests/scripts/thread-cert/border_router/test_manual_maddress.py +++ b/tests/scripts/thread-cert/border_router/test_manual_maddress.py @@ -76,7 +76,7 @@ class ManualMulticastAddressConfig(thread_cert.TestCase): host = self.nodes[HOST] br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.assertTrue(br1.is_primary_backbone_router) diff --git a/tests/scripts/thread-cert/border_router/test_mdns_restart.py b/tests/scripts/thread-cert/border_router/test_mdns_restart.py index 585e9da07..6bcd90813 100755 --- a/tests/scripts/thread-cert/border_router/test_mdns_restart.py +++ b/tests/scripts/thread-cert/border_router/test_mdns_restart.py @@ -100,7 +100,7 @@ class MdnsRestart(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) self.simulator.go(5) diff --git a/tests/scripts/thread-cert/border_router/test_multi_border_routers.py b/tests/scripts/thread-cert/border_router/test_multi_border_routers.py index 894882a06..2e5855b59 100755 --- a/tests/scripts/thread-cert/border_router/test_multi_border_routers.py +++ b/tests/scripts/thread-cert/border_router/test_multi_border_routers.py @@ -102,7 +102,7 @@ class MultiBorderRouters(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) router1.start() diff --git a/tests/scripts/thread-cert/border_router/test_multi_thread_networks.py b/tests/scripts/thread-cert/border_router/test_multi_thread_networks.py index 9ad442d4f..34688af4f 100755 --- a/tests/scripts/thread-cert/border_router/test_multi_thread_networks.py +++ b/tests/scripts/thread-cert/border_router/test_multi_thread_networks.py @@ -93,7 +93,7 @@ class MultiThreadNetworks(thread_cert.TestCase): router2 = self.nodes[ROUTER2] br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) router1.start() @@ -101,7 +101,7 @@ class MultiThreadNetworks(thread_cert.TestCase): self.assertEqual('router', router1.get_state()) br2.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br2.get_state()) router2.start() diff --git a/tests/scripts/thread-cert/border_router/test_nat64_multi_border_routers.py b/tests/scripts/thread-cert/border_router/test_nat64_multi_border_routers.py index 569699721..8ce9e0de2 100644 --- a/tests/scripts/thread-cert/border_router/test_nat64_multi_border_routers.py +++ b/tests/scripts/thread-cert/border_router/test_nat64_multi_border_routers.py @@ -89,7 +89,7 @@ class Nat64MultiBorderRouter(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) router.start() diff --git a/tests/scripts/thread-cert/border_router/test_nat64_single_border_router.py b/tests/scripts/thread-cert/border_router/test_nat64_single_border_router.py index 4ac418924..a301cdaea 100644 --- a/tests/scripts/thread-cert/border_router/test_nat64_single_border_router.py +++ b/tests/scripts/thread-cert/border_router/test_nat64_single_border_router.py @@ -84,7 +84,7 @@ class Nat64SingleBorderRouter(thread_cert.TestCase): self.simulator.go(5) br.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br.get_state()) router.start() diff --git a/tests/scripts/thread-cert/border_router/test_on_link_prefix.py b/tests/scripts/thread-cert/border_router/test_on_link_prefix.py index 8d273f1aa..4ff831ac4 100755 --- a/tests/scripts/thread-cert/border_router/test_on_link_prefix.py +++ b/tests/scripts/thread-cert/border_router/test_on_link_prefix.py @@ -112,7 +112,7 @@ class MultiThreadNetworks(thread_cert.TestCase): self.simulator.go(5) br1.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br1.get_state()) router1.start() @@ -139,7 +139,7 @@ class MultiThreadNetworks(thread_cert.TestCase): host.kill_radvd_service() br2.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br2.get_state()) router2.start() diff --git a/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py b/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py index 12f83e50c..5ed84bc0b 100644 --- a/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py +++ b/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py @@ -67,7 +67,7 @@ class TestPlatUdpAccessibility(thread_cert.TestCase): router = self.nodes[ROUTER] br.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br.get_state()) br.srp_server_set_enabled(True) @@ -104,7 +104,7 @@ class TestPlatUdpAccessibility(thread_cert.TestCase): reset_device.reset() reset_device.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertIn(reset_device.get_state(), ['leader', 'router']) self.simulator.go(5) diff --git a/tests/scripts/thread-cert/border_router/test_radvd_coexist.py b/tests/scripts/thread-cert/border_router/test_radvd_coexist.py index 9492e7d72..2fffd6070 100755 --- a/tests/scripts/thread-cert/border_router/test_radvd_coexist.py +++ b/tests/scripts/thread-cert/border_router/test_radvd_coexist.py @@ -86,7 +86,7 @@ class SingleBorderRouter(thread_cert.TestCase): self.simulator.go(5) br.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br.get_state()) router.start() diff --git a/tests/scripts/thread-cert/border_router/test_single_border_router.py b/tests/scripts/thread-cert/border_router/test_single_border_router.py index 8f03644be..577b73ede 100755 --- a/tests/scripts/thread-cert/border_router/test_single_border_router.py +++ b/tests/scripts/thread-cert/border_router/test_single_border_router.py @@ -85,7 +85,7 @@ class SingleBorderRouter(thread_cert.TestCase): self.simulator.go(5) br.start() - self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', br.get_state()) router.start() diff --git a/tests/scripts/thread-cert/config.py b/tests/scripts/thread-cert/config.py index a7f0e3b14..3878d4e2f 100755 --- a/tests/scripts/thread-cert/config.py +++ b/tests/scripts/thread-cert/config.py @@ -125,6 +125,7 @@ RSSI = { SNIFFER_ID = int(os.getenv('SNIFFER_ID', 34)) PANID = 0xface +LEADER_STARTUP_DELAY = 12 ROUTER_STARTUP_DELAY = 10 BORDER_ROUTER_STARTUP_DELAY = 20 MAX_NEIGHBOR_AGE = 100 diff --git a/tests/scripts/thread-cert/test_anycast.py b/tests/scripts/thread-cert/test_anycast.py index b05011d1f..c55755560 100755 --- a/tests/scripts/thread-cert/test_anycast.py +++ b/tests/scripts/thread-cert/test_anycast.py @@ -71,7 +71,7 @@ class TestAnycast(thread_cert.TestCase): def test(self): self.nodes[ROUTER1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[ROUTER1].get_state(), 'leader') self.nodes[ROUTER1].udp_start('::', TEST_UDP_PORT) diff --git a/tests/scripts/thread-cert/test_anycast_locator.py b/tests/scripts/thread-cert/test_anycast_locator.py index c8165830f..7d0883f6b 100755 --- a/tests/scripts/thread-cert/test_anycast_locator.py +++ b/tests/scripts/thread-cert/test_anycast_locator.py @@ -32,6 +32,7 @@ import ipaddress import unittest import command +import config import thread_cert # Test description: @@ -98,7 +99,7 @@ class AnycastLocator(thread_cert.TestCase): # leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') for node in nodes[1:]: diff --git a/tests/scripts/thread-cert/test_br_upgrade_router_role.py b/tests/scripts/thread-cert/test_br_upgrade_router_role.py index 296be93b2..91b1fa92d 100755 --- a/tests/scripts/thread-cert/test_br_upgrade_router_role.py +++ b/tests/scripts/thread-cert/test_br_upgrade_router_role.py @@ -31,6 +31,7 @@ import ipaddress import unittest import command +import config import thread_cert # Test description: @@ -96,7 +97,7 @@ class BrUpgradeRouterRole(thread_cert.TestCase): # Start the leader and router. leader.start() - self.simulator.go(10) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') router.start() diff --git a/tests/scripts/thread-cert/test_coap_block.py b/tests/scripts/thread-cert/test_coap_block.py index 7c74b0f59..561f8cfce 100755 --- a/tests/scripts/thread-cert/test_coap_block.py +++ b/tests/scripts/thread-cert/test_coap_block.py @@ -57,7 +57,7 @@ class TestCoapBlockTransfer(thread_cert.TestCase): def _do_transfer_test(self, method): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_coap_observe.py b/tests/scripts/thread-cert/test_coap_observe.py index 1071c3c23..5aa89db03 100755 --- a/tests/scripts/thread-cert/test_coap_observe.py +++ b/tests/scripts/thread-cert/test_coap_observe.py @@ -57,7 +57,7 @@ class TestCoapObserve(thread_cert.TestCase): def _do_notification_test(self, con): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_coaps.py b/tests/scripts/thread-cert/test_coaps.py index 18a946b10..50e3255f7 100755 --- a/tests/scripts/thread-cert/test_coaps.py +++ b/tests/scripts/thread-cert/test_coaps.py @@ -52,7 +52,7 @@ class TestCoaps(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_dataset_updater.py b/tests/scripts/thread-cert/test_dataset_updater.py index 9a1ac3ffe..ba3bc9f13 100755 --- a/tests/scripts/thread-cert/test_dataset_updater.py +++ b/tests/scripts/thread-cert/test_dataset_updater.py @@ -66,7 +66,7 @@ class TestDatasetUpdater(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_detach.py b/tests/scripts/thread-cert/test_detach.py index e9f79fa7b..2c1693d4c 100755 --- a/tests/scripts/thread-cert/test_detach.py +++ b/tests/scripts/thread-cert/test_detach.py @@ -78,11 +78,11 @@ class TestDetach(thread_cert.TestCase): child1 = self.nodes[CHILD_1] leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') router1.start() - self.simulator.go(5) + self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual(router1.get_state(), 'router') router1_rloc16 = router1.get_addr16() self.assertTrue(list(filter(lambda x: x[1]['rloc16'] == router1_rloc16, leader.router_table().items()))) @@ -145,10 +145,10 @@ class TestDetach(thread_cert.TestCase): self.assertEqual(leader.get_state(), 'disabled') leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') router1.start() - self.simulator.go(5) + self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual(router1.get_state(), 'router') leader.thread_stop() diff --git a/tests/scripts/thread-cert/test_dns_client_config_auto_start.py b/tests/scripts/thread-cert/test_dns_client_config_auto_start.py index 48cbef362..9b9a2e774 100755 --- a/tests/scripts/thread-cert/test_dns_client_config_auto_start.py +++ b/tests/scripts/thread-cert/test_dns_client_config_auto_start.py @@ -73,7 +73,7 @@ class DnsClientConfigAutoStart(thread_cert.TestCase): # Form network. leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') router.start() diff --git a/tests/scripts/thread-cert/test_dnssd.py b/tests/scripts/thread-cert/test_dnssd.py index 06d644f9b..e3c88babf 100755 --- a/tests/scripts/thread-cert/test_dnssd.py +++ b/tests/scripts/thread-cert/test_dnssd.py @@ -84,7 +84,7 @@ class TestDnssd(thread_cert.TestCase): # Start the server & client devices. server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') server.srp_server_set_enabled(True) diff --git a/tests/scripts/thread-cert/test_dnssd_name_with_special_chars.py b/tests/scripts/thread-cert/test_dnssd_name_with_special_chars.py index b1f18813e..6adf538bc 100644 --- a/tests/scripts/thread-cert/test_dnssd_name_with_special_chars.py +++ b/tests/scripts/thread-cert/test_dnssd_name_with_special_chars.py @@ -75,7 +75,7 @@ class TestDnssdNameWithSpecialChars(thread_cert.TestCase): # Start the server & client devices. server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') client.start() diff --git a/tests/scripts/thread-cert/test_history_tracker.py b/tests/scripts/thread-cert/test_history_tracker.py index 209c78152..74bbc1b04 100755 --- a/tests/scripts/thread-cert/test_history_tracker.py +++ b/tests/scripts/thread-cert/test_history_tracker.py @@ -76,7 +76,7 @@ class TestHistoryTracker(thread_cert.TestCase): # is updated correctly. leader.start() - self.simulator.go(SHORT_WAIT) + self.simulator.go(SHORT_WAIT * 2) self.assertEqual(leader.get_state(), 'leader') netinfo = leader.history_netinfo() @@ -128,7 +128,7 @@ class TestHistoryTracker(thread_cert.TestCase): # Start leader and child leader.start() - self.simulator.go(SHORT_WAIT) + self.simulator.go(SHORT_WAIT * 2) self.assertEqual(leader.get_state(), 'leader') child.start() diff --git a/tests/scripts/thread-cert/test_inform_previous_parent_on_reattach.py b/tests/scripts/thread-cert/test_inform_previous_parent_on_reattach.py index 66f87cbb5..308bab39f 100755 --- a/tests/scripts/thread-cert/test_inform_previous_parent_on_reattach.py +++ b/tests/scripts/thread-cert/test_inform_previous_parent_on_reattach.py @@ -81,7 +81,7 @@ class TestReset(thread_cert.TestCase): self.skipTest("skip for posix tests") self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_ipv6_fragmentation.py b/tests/scripts/thread-cert/test_ipv6_fragmentation.py index 801c16a3f..46739d697 100755 --- a/tests/scripts/thread-cert/test_ipv6_fragmentation.py +++ b/tests/scripts/thread-cert/test_ipv6_fragmentation.py @@ -55,7 +55,7 @@ class TestIPv6Fragmentation(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_ipv6_source_selection.py b/tests/scripts/thread-cert/test_ipv6_source_selection.py index 12a8eabaf..0985e23bd 100755 --- a/tests/scripts/thread-cert/test_ipv6_source_selection.py +++ b/tests/scripts/thread-cert/test_ipv6_source_selection.py @@ -55,7 +55,7 @@ class TestIPv6SourceSelection(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_mle_msg_key_seq_jump.py b/tests/scripts/thread-cert/test_mle_msg_key_seq_jump.py index 52ddaaaaa..3140d09d1 100755 --- a/tests/scripts/thread-cert/test_mle_msg_key_seq_jump.py +++ b/tests/scripts/thread-cert/test_mle_msg_key_seq_jump.py @@ -94,7 +94,7 @@ class MleMsgKeySeqJump(thread_cert.TestCase): node.set_key_sequence_counter(0) leader.start() - self.simulator.go(15) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') child.start() @@ -104,7 +104,7 @@ class MleMsgKeySeqJump(thread_cert.TestCase): self.assertEqual(reed.get_state(), 'child') router.start() - self.simulator.go(5) + self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual(router.get_state(), 'router') #------------------------------------------------------------------- diff --git a/tests/scripts/thread-cert/test_netdata_publisher.py b/tests/scripts/thread-cert/test_netdata_publisher.py index 98d1ea224..548544081 100755 --- a/tests/scripts/thread-cert/test_netdata_publisher.py +++ b/tests/scripts/thread-cert/test_netdata_publisher.py @@ -207,7 +207,7 @@ class NetDataPublisher(thread_cert.TestCase): # Start the nodes leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') for router in routers: diff --git a/tests/scripts/thread-cert/test_on_mesh_prefix.py b/tests/scripts/thread-cert/test_on_mesh_prefix.py index d69929813..83dd732da 100755 --- a/tests/scripts/thread-cert/test_on_mesh_prefix.py +++ b/tests/scripts/thread-cert/test_on_mesh_prefix.py @@ -65,7 +65,7 @@ class Test_OnMeshPrefix(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(4) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/test_pbbr_aloc.py b/tests/scripts/thread-cert/test_pbbr_aloc.py index 84ce43bb6..0a4ee71ed 100755 --- a/tests/scripts/thread-cert/test_pbbr_aloc.py +++ b/tests/scripts/thread-cert/test_pbbr_aloc.py @@ -76,7 +76,7 @@ class TestPing(thread_cert.TestCase): router = self.nodes[ROUTER] leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', leader.get_state()) pbbr.enable_backbone_router() @@ -86,7 +86,7 @@ class TestPing(thread_cert.TestCase): self.assertTrue(pbbr.is_primary_backbone_router) router.start() - self.simulator.go(10) + self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual('router', router.get_state()) for node in (leader, pbbr): diff --git a/tests/scripts/thread-cert/test_ping.py b/tests/scripts/thread-cert/test_ping.py index 660bfd5a2..34946114d 100755 --- a/tests/scripts/thread-cert/test_ping.py +++ b/tests/scripts/thread-cert/test_ping.py @@ -76,7 +76,7 @@ class TestPing(thread_cert.TestCase): router3 = self.nodes[ROUTER_3] router1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', router1.get_state()) router2.start() diff --git a/tests/scripts/thread-cert/test_ping_lla_src.py b/tests/scripts/thread-cert/test_ping_lla_src.py index 3cc0be7a5..e6f9b26d1 100644 --- a/tests/scripts/thread-cert/test_ping_lla_src.py +++ b/tests/scripts/thread-cert/test_ping_lla_src.py @@ -75,7 +75,7 @@ class TestPing(thread_cert.TestCase): router3 = self.nodes[ROUTER_3] router1.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual('leader', router1.get_state()) router2.start() diff --git a/tests/scripts/thread-cert/test_radio_filter.py b/tests/scripts/thread-cert/test_radio_filter.py index 5103aa47f..7ce082bf2 100755 --- a/tests/scripts/thread-cert/test_radio_filter.py +++ b/tests/scripts/thread-cert/test_radio_filter.py @@ -83,7 +83,7 @@ class RadioFilter(thread_cert.TestCase): nodes = [leader, router, sed] leader.start() - self.simulator.go(WAIT_TIME) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') router.start() diff --git a/tests/scripts/thread-cert/test_reed_address_solicit_rejected.py b/tests/scripts/thread-cert/test_reed_address_solicit_rejected.py index e1f36b353..508d0c941 100755 --- a/tests/scripts/thread-cert/test_reed_address_solicit_rejected.py +++ b/tests/scripts/thread-cert/test_reed_address_solicit_rejected.py @@ -61,7 +61,7 @@ class TestREEDAddressSolicitRejected(thread_cert.TestCase): def testAddressSolicitRejectedBeforeSvrData(self): self.nodes[LEADER].start() self.nodes[LEADER].set_router_upgrade_threshold(1) - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[REED].start() @@ -77,7 +77,7 @@ class TestREEDAddressSolicitRejected(thread_cert.TestCase): def testAddressSolicitRejectedAfterSvrData(self): self.nodes[LEADER].start() self.nodes[LEADER].set_router_upgrade_threshold(1) - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[REED].set_router_selection_jitter(120) diff --git a/tests/scripts/thread-cert/test_reset.py b/tests/scripts/thread-cert/test_reset.py index 29183af1c..b23e58d67 100755 --- a/tests/scripts/thread-cert/test_reset.py +++ b/tests/scripts/thread-cert/test_reset.py @@ -56,7 +56,7 @@ class TestReset(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() @@ -73,7 +73,7 @@ class TestReset(thread_cert.TestCase): self.nodes[LEADER].reset() self.nodes[LEADER].start() - self.simulator.go(7) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].reset() diff --git a/tests/scripts/thread-cert/test_route_table.py b/tests/scripts/thread-cert/test_route_table.py index 038d9a5db..f213aaa25 100755 --- a/tests/scripts/thread-cert/test_route_table.py +++ b/tests/scripts/thread-cert/test_route_table.py @@ -61,7 +61,7 @@ class TestRouteTable(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/test_router_multicast_link_request.py b/tests/scripts/thread-cert/test_router_multicast_link_request.py index 563185f82..38e768131 100755 --- a/tests/scripts/thread-cert/test_router_multicast_link_request.py +++ b/tests/scripts/thread-cert/test_router_multicast_link_request.py @@ -94,7 +94,7 @@ class TestRouterMulticastLinkRequest(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') for routerid in (ROUTER1, ROUTER2, ROUTER3): diff --git a/tests/scripts/thread-cert/test_router_reattach.py b/tests/scripts/thread-cert/test_router_reattach.py index 31b7c26db..2cb4b5b92 100755 --- a/tests/scripts/thread-cert/test_router_reattach.py +++ b/tests/scripts/thread-cert/test_router_reattach.py @@ -199,7 +199,7 @@ class test_router_reattach(thread_cert.TestCase): def test(self): self.nodes[1].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[1].get_state(), 'leader') for i in range(2, 33): diff --git a/tests/scripts/thread-cert/test_router_upgrade.py b/tests/scripts/thread-cert/test_router_upgrade.py index bb1374fea..a9c1e1a34 100755 --- a/tests/scripts/thread-cert/test_router_upgrade.py +++ b/tests/scripts/thread-cert/test_router_upgrade.py @@ -78,7 +78,7 @@ class TestRouterUpgrade(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[REED].add_allowlist(self.nodes[LEADER].get_addr64(), rssi=RSSI_LOW) diff --git a/tests/scripts/thread-cert/test_service.py b/tests/scripts/thread-cert/test_service.py index c08379b3c..6032f6c3b 100755 --- a/tests/scripts/thread-cert/test_service.py +++ b/tests/scripts/thread-cert/test_service.py @@ -91,7 +91,7 @@ class Test_Service(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER1].start() diff --git a/tests/scripts/thread-cert/test_set_mliid.py b/tests/scripts/thread-cert/test_set_mliid.py index e36b7f5a1..760f0da6c 100755 --- a/tests/scripts/thread-cert/test_set_mliid.py +++ b/tests/scripts/thread-cert/test_set_mliid.py @@ -50,7 +50,7 @@ class Test_SetMlIid(thread_cert.TestCase): self.nodes[LEADER].set_mliid('1122334455667788') self.nodes[LEADER].start() - self.simulator.go(10) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') # Ensure set ML-IID was effective. @@ -63,7 +63,7 @@ class Test_SetMlIid(thread_cert.TestCase): self.nodes[LEADER].reset() self.nodes[LEADER].start() - self.simulator.go(10) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') # Ensure ML-IID is persistent after reset. diff --git a/tests/scripts/thread-cert/test_srp_auto_start_mode.py b/tests/scripts/thread-cert/test_srp_auto_start_mode.py index 298a74ee6..8fbcdda2d 100755 --- a/tests/scripts/thread-cert/test_srp_auto_start_mode.py +++ b/tests/scripts/thread-cert/test_srp_auto_start_mode.py @@ -83,7 +83,7 @@ class SrpAutoStartMode(thread_cert.TestCase): client.srp_server_set_enabled(False) client.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(client.get_state(), 'leader') server1.start() diff --git a/tests/scripts/thread-cert/test_srp_client_change_lease.py b/tests/scripts/thread-cert/test_srp_client_change_lease.py index 5c1245da0..37b03d3df 100755 --- a/tests/scripts/thread-cert/test_srp_client_change_lease.py +++ b/tests/scripts/thread-cert/test_srp_client_change_lease.py @@ -85,7 +85,7 @@ class SrpClientChangeLeaseTime(thread_cert.TestCase): server.srp_server_set_enabled(True) server.srp_server_set_lease_range(LEASE_TIME, LEASE_TIME, KEY_LEASE_TIME, KEY_LEASE_TIME) server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') self.simulator.go(5) diff --git a/tests/scripts/thread-cert/test_srp_client_remove_host.py b/tests/scripts/thread-cert/test_srp_client_remove_host.py index 6de96c183..298014518 100755 --- a/tests/scripts/thread-cert/test_srp_client_remove_host.py +++ b/tests/scripts/thread-cert/test_srp_client_remove_host.py @@ -72,7 +72,7 @@ class SrpRemoveHost(thread_cert.TestCase): # Start the server & client devices. server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') client.start() diff --git a/tests/scripts/thread-cert/test_srp_client_save_server_info.py b/tests/scripts/thread-cert/test_srp_client_save_server_info.py index df95f4ec1..cb277e5fc 100755 --- a/tests/scripts/thread-cert/test_srp_client_save_server_info.py +++ b/tests/scripts/thread-cert/test_srp_client_save_server_info.py @@ -88,7 +88,7 @@ class SrpAutoStartMode(thread_cert.TestCase): # Start the server & client devices. client.start() - self.simulator.go(WAIT_TIME) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(client.get_state(), 'leader') for node in [server1, server2, server3]: diff --git a/tests/scripts/thread-cert/test_srp_lease.py b/tests/scripts/thread-cert/test_srp_lease.py index a1a4abe7b..946104c53 100755 --- a/tests/scripts/thread-cert/test_srp_lease.py +++ b/tests/scripts/thread-cert/test_srp_lease.py @@ -79,7 +79,7 @@ class SrpRegisterSingleService(thread_cert.TestCase): server.srp_server_set_enabled(True) server.srp_server_set_lease_range(LEASE, LEASE, KEY_LEASE, KEY_LEASE) server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') self.simulator.go(5) diff --git a/tests/scripts/thread-cert/test_srp_many_services_mtu_check.py b/tests/scripts/thread-cert/test_srp_many_services_mtu_check.py index 87ea05210..89a173fa1 100755 --- a/tests/scripts/thread-cert/test_srp_many_services_mtu_check.py +++ b/tests/scripts/thread-cert/test_srp_many_services_mtu_check.py @@ -75,7 +75,7 @@ class SrpManyServicesMtuCheck(thread_cert.TestCase): # Start the server & client devices. server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') client.start() diff --git a/tests/scripts/thread-cert/test_srp_name_conflicts.py b/tests/scripts/thread-cert/test_srp_name_conflicts.py index daf37b27f..4451eab2d 100755 --- a/tests/scripts/thread-cert/test_srp_name_conflicts.py +++ b/tests/scripts/thread-cert/test_srp_name_conflicts.py @@ -83,7 +83,7 @@ class SrpNameConflicts(thread_cert.TestCase): server.srp_server_set_enabled(True) server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') self.simulator.go(5) diff --git a/tests/scripts/thread-cert/test_srp_register_500_services.py b/tests/scripts/thread-cert/test_srp_register_500_services.py index 8b639c999..54719ddc9 100644 --- a/tests/scripts/thread-cert/test_srp_register_500_services.py +++ b/tests/scripts/thread-cert/test_srp_register_500_services.py @@ -113,7 +113,7 @@ class SrpRegister500Services(thread_cert.TestCase): # Start the server & clients. server.srp_server_set_enabled(True) server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') for router in routers(): diff --git a/tests/scripts/thread-cert/test_srp_register_single_service.py b/tests/scripts/thread-cert/test_srp_register_single_service.py index 32f57b513..621ad578c 100755 --- a/tests/scripts/thread-cert/test_srp_register_single_service.py +++ b/tests/scripts/thread-cert/test_srp_register_single_service.py @@ -76,7 +76,7 @@ class SrpRegisterSingleService(thread_cert.TestCase): server.srp_server_set_enabled(True) server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') self.simulator.go(5) diff --git a/tests/scripts/thread-cert/test_srp_server_anycast_mode.py b/tests/scripts/thread-cert/test_srp_server_anycast_mode.py index 7313004b3..38a83218d 100755 --- a/tests/scripts/thread-cert/test_srp_server_anycast_mode.py +++ b/tests/scripts/thread-cert/test_srp_server_anycast_mode.py @@ -94,7 +94,7 @@ class TestSrpServerAnycastMode(thread_cert.TestCase): # Form the network. server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') client.start() diff --git a/tests/scripts/thread-cert/test_srp_server_reboot_port.py b/tests/scripts/thread-cert/test_srp_server_reboot_port.py index 41dc355e7..411b598a5 100755 --- a/tests/scripts/thread-cert/test_srp_server_reboot_port.py +++ b/tests/scripts/thread-cert/test_srp_server_reboot_port.py @@ -75,7 +75,7 @@ class SrpServerRebootPort(thread_cert.TestCase): client.srp_server_set_enabled(False) client.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(client.get_state(), 'leader') server.srp_server_set_enabled(True) diff --git a/tests/scripts/thread-cert/test_srp_sub_type.py b/tests/scripts/thread-cert/test_srp_sub_type.py index 0561876d2..e9b6fdc4a 100755 --- a/tests/scripts/thread-cert/test_srp_sub_type.py +++ b/tests/scripts/thread-cert/test_srp_sub_type.py @@ -71,7 +71,7 @@ class SrpSubType(thread_cert.TestCase): # Start the server & client devices. server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') client.start() diff --git a/tests/scripts/thread-cert/test_srp_ttl.py b/tests/scripts/thread-cert/test_srp_ttl.py index 5ea55ef5c..93cc81881 100755 --- a/tests/scripts/thread-cert/test_srp_ttl.py +++ b/tests/scripts/thread-cert/test_srp_ttl.py @@ -76,7 +76,7 @@ class SrpTtl(thread_cert.TestCase): server.srp_server_set_enabled(True) server.srp_server_set_lease_range(120, 240, KEY_LEASE, KEY_LEASE) server.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(server.get_state(), 'leader') self.simulator.go(5) diff --git a/tests/scripts/thread-cert/test_zero_len_external_route.py b/tests/scripts/thread-cert/test_zero_len_external_route.py index a69665bea..b48dff8bd 100755 --- a/tests/scripts/thread-cert/test_zero_len_external_route.py +++ b/tests/scripts/thread-cert/test_zero_len_external_route.py @@ -76,7 +76,7 @@ class ZeroLengthExternalRoute(thread_cert.TestCase): # Start the nodes and form the network. leader.start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(leader.get_state(), 'leader') router1.start() diff --git a/tests/scripts/thread-cert/v1_2_LowPower_5_3_01_SSEDAttachment.py b/tests/scripts/thread-cert/v1_2_LowPower_5_3_01_SSEDAttachment.py index 7a6c89388..66f547e34 100755 --- a/tests/scripts/thread-cert/v1_2_LowPower_5_3_01_SSEDAttachment.py +++ b/tests/scripts/thread-cert/v1_2_LowPower_5_3_01_SSEDAttachment.py @@ -68,7 +68,7 @@ class LowPower_5_3_01_SSEDAttachment(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER].start() diff --git a/tests/scripts/thread-cert/v1_2_LowPower_6_1_07_PreferringARouterOverAReed.py b/tests/scripts/thread-cert/v1_2_LowPower_6_1_07_PreferringARouterOverAReed.py index c5114f720..7e9c857ae 100755 --- a/tests/scripts/thread-cert/v1_2_LowPower_6_1_07_PreferringARouterOverAReed.py +++ b/tests/scripts/thread-cert/v1_2_LowPower_6_1_07_PreferringARouterOverAReed.py @@ -75,7 +75,7 @@ class LowPower_6_1_07_PreferringARouterOverAReed_Base(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER_1].start() diff --git a/tests/scripts/thread-cert/v1_2_LowPower_7_1_01_SingleProbeLinkMetricsWithEnhancedAcks.py b/tests/scripts/thread-cert/v1_2_LowPower_7_1_01_SingleProbeLinkMetricsWithEnhancedAcks.py index 5d7f88cb8..e14e49a7b 100755 --- a/tests/scripts/thread-cert/v1_2_LowPower_7_1_01_SingleProbeLinkMetricsWithEnhancedAcks.py +++ b/tests/scripts/thread-cert/v1_2_LowPower_7_1_01_SingleProbeLinkMetricsWithEnhancedAcks.py @@ -68,7 +68,7 @@ class LowPower_7_1_01(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[SED_1].set_pollperiod(POLL_PERIOD) diff --git a/tests/scripts/thread-cert/v1_2_LowPower_7_2_01_ForwardTrackingSeries.py b/tests/scripts/thread-cert/v1_2_LowPower_7_2_01_ForwardTrackingSeries.py index daee92ed6..b9543cf10 100755 --- a/tests/scripts/thread-cert/v1_2_LowPower_7_2_01_ForwardTrackingSeries.py +++ b/tests/scripts/thread-cert/v1_2_LowPower_7_2_01_ForwardTrackingSeries.py @@ -73,7 +73,7 @@ class LowPower_7_2_01_ForwardTrackingSeries(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[SED_1].set_pollperiod(POLL_PERIOD) diff --git a/tests/scripts/thread-cert/v1_2_LowPower_test_forward_tracking_series.py b/tests/scripts/thread-cert/v1_2_LowPower_test_forward_tracking_series.py index e51f1adf6..c1287fe5c 100755 --- a/tests/scripts/thread-cert/v1_2_LowPower_test_forward_tracking_series.py +++ b/tests/scripts/thread-cert/v1_2_LowPower_test_forward_tracking_series.py @@ -64,7 +64,7 @@ class LowPower_test_ForwardTrackingSeries(thread_cert.TestCase): def test(self): self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[CHILD].start() diff --git a/tests/scripts/thread-cert/v1_2_router_5_1_1.py b/tests/scripts/thread-cert/v1_2_router_5_1_1.py index 8af0ae5d5..20173f5ba 100755 --- a/tests/scripts/thread-cert/v1_2_router_5_1_1.py +++ b/tests/scripts/thread-cert/v1_2_router_5_1_1.py @@ -53,7 +53,7 @@ class Router_5_1_01(thread_cert.TestCase): self.nodes[ROUTER_1].set_router_selection_jitter(1) self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[ROUTER_1].start() diff --git a/tests/scripts/thread-cert/v1_2_test_backbone_router_service.py b/tests/scripts/thread-cert/v1_2_test_backbone_router_service.py index c538ec52e..1a9d54df8 100755 --- a/tests/scripts/thread-cert/v1_2_test_backbone_router_service.py +++ b/tests/scripts/thread-cert/v1_2_test_backbone_router_service.py @@ -92,7 +92,7 @@ class TestBackboneRouterService(thread_cert.TestCase): self.nodes[LEADER_1_1].start() WAIT_TIME = WAIT_ATTACH - self.simulator.go(WAIT_TIME) + self.simulator.go(WAIT_TIME * 2) self.assertEqual(self.nodes[LEADER_1_1].get_state(), 'leader') self.simulator.set_lowpan_context(1, config.DOMAIN_PREFIX) diff --git a/tests/scripts/thread-cert/v1_2_test_csl_transmission.py b/tests/scripts/thread-cert/v1_2_test_csl_transmission.py index 4022852dc..9ddb9e048 100755 --- a/tests/scripts/thread-cert/v1_2_test_csl_transmission.py +++ b/tests/scripts/thread-cert/v1_2_test_csl_transmission.py @@ -59,7 +59,7 @@ class SSED_CslTransmission(thread_cert.TestCase): self.nodes[SSED_1].get_csl_info() self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[SSED_1].start() diff --git a/tests/scripts/thread-cert/v1_2_test_domain_unicast_address.py b/tests/scripts/thread-cert/v1_2_test_domain_unicast_address.py index 54b9a5bfd..13c195016 100755 --- a/tests/scripts/thread-cert/v1_2_test_domain_unicast_address.py +++ b/tests/scripts/thread-cert/v1_2_test_domain_unicast_address.py @@ -160,7 +160,7 @@ class TestDomainUnicastAddress(thread_cert.TestCase): self.nodes[BBR_1].set_backbone_router(seqno=1) self.nodes[BBR_1].start() WAIT_TIME = WAIT_ATTACH + ROUTER_SELECTION_JITTER - self.simulator.go(WAIT_TIME) + self.simulator.go(WAIT_TIME * 2) self.assertEqual(self.nodes[BBR_1].get_state(), 'leader') self.nodes[BBR_1].enable_backbone_router() WAIT_TIME = BBR_REGISTRATION_JITTER + WAIT_REDUNDANCE diff --git a/tests/scripts/thread-cert/v1_2_test_domain_unicast_address_registration.py b/tests/scripts/thread-cert/v1_2_test_domain_unicast_address_registration.py index 9dcc75d23..dfbf3140f 100755 --- a/tests/scripts/thread-cert/v1_2_test_domain_unicast_address_registration.py +++ b/tests/scripts/thread-cert/v1_2_test_domain_unicast_address_registration.py @@ -188,7 +188,7 @@ class TestDomainUnicastAddressRegistration(thread_cert.TestCase): self.nodes[BBR_1].set_backbone_router(seqno=seq_num, reg_delay=BBR_REREGISTRATION_DELAY) self.nodes[BBR_1].start() WAIT_TIME = WAIT_ATTACH + ROUTER_SELECTION_JITTER - self.simulator.go(WAIT_TIME) + self.simulator.go(WAIT_TIME * 2) self.assertEqual(self.nodes[BBR_1].get_state(), 'leader') self.nodes[BBR_1].enable_backbone_router() WAIT_TIME = BBR_REGISTRATION_JITTER + WAIT_REDUNDANCE diff --git a/tests/scripts/thread-cert/v1_2_test_dua_handle_address_error.py b/tests/scripts/thread-cert/v1_2_test_dua_handle_address_error.py index c9017ea44..ea36c69da 100755 --- a/tests/scripts/thread-cert/v1_2_test_dua_handle_address_error.py +++ b/tests/scripts/thread-cert/v1_2_test_dua_handle_address_error.py @@ -92,7 +92,7 @@ class TestDomainUnicastAddress(thread_cert.TestCase): self.nodes[BBR_1].set_backbone_router(seqno=1, reg_delay=REG_DELAY) self.nodes[BBR_1].start() - self.simulator.go(WAIT_ATTACH + config.DEFAULT_ROUTER_SELECTION_JITTER) + self.simulator.go(WAIT_ATTACH * 2 + config.DEFAULT_ROUTER_SELECTION_JITTER) self.assertEqual(self.nodes[BBR_1].get_state(), 'leader') self.nodes[BBR_1].enable_backbone_router() self.simulator.go(BBR_REGISTRATION_JITTER + WAIT_REDUNDANCE) diff --git a/tests/scripts/thread-cert/v1_2_test_enhanced_frame_pending.py b/tests/scripts/thread-cert/v1_2_test_enhanced_frame_pending.py index a3093ee58..436cfa9e9 100755 --- a/tests/scripts/thread-cert/v1_2_test_enhanced_frame_pending.py +++ b/tests/scripts/thread-cert/v1_2_test_enhanced_frame_pending.py @@ -75,7 +75,7 @@ class SED_EnhancedFramePending(thread_cert.TestCase): # 1 - Set up topology self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[SED_1].start() diff --git a/tests/scripts/thread-cert/v1_2_test_enhanced_keep_alive.py b/tests/scripts/thread-cert/v1_2_test_enhanced_keep_alive.py index a104a51ac..9bd10c361 100755 --- a/tests/scripts/thread-cert/v1_2_test_enhanced_keep_alive.py +++ b/tests/scripts/thread-cert/v1_2_test_enhanced_keep_alive.py @@ -62,7 +62,7 @@ class SED_EnhancedKeepAlive(thread_cert.TestCase): self.nodes[SED_1].set_pollperiod(USER_POLL_PERIOD * 1000) self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[SED_1].start() diff --git a/tests/scripts/thread-cert/v1_2_test_multicast_listener_registration.py b/tests/scripts/thread-cert/v1_2_test_multicast_listener_registration.py index 96cdd12f8..a424e99f4 100755 --- a/tests/scripts/thread-cert/v1_2_test_multicast_listener_registration.py +++ b/tests/scripts/thread-cert/v1_2_test_multicast_listener_registration.py @@ -134,7 +134,7 @@ class TestMulticastListenerRegistration(thread_cert.TestCase): self.nodes[BBR_1].set_backbone_router(seqno=1, reg_delay=REREG_DELAY, mlr_timeout=MLR_TIMEOUT) self.nodes[BBR_1].start() WAIT_TIME = WAIT_ATTACH + ROUTER_SELECTION_JITTER - self.simulator.go(WAIT_TIME) + self.simulator.go(WAIT_TIME * 2) self.assertEqual(self.nodes[BBR_1].get_state(), 'leader') if bbr_1_enable_backbone_router: diff --git a/tests/scripts/thread-cert/v1_2_test_multicast_registration.py b/tests/scripts/thread-cert/v1_2_test_multicast_registration.py index afed08439..67537b7ee 100755 --- a/tests/scripts/thread-cert/v1_2_test_multicast_registration.py +++ b/tests/scripts/thread-cert/v1_2_test_multicast_registration.py @@ -177,7 +177,7 @@ class TestMulticastRegistration(thread_cert.TestCase): # 1) Bring up Leader_1_2. self.nodes[LEADER_1_2].start() WAIT_TIME = WAIT_ATTACH - self.simulator.go(WAIT_TIME) + self.simulator.go(WAIT_TIME * 2) self.assertEqual(self.nodes[LEADER_1_2].get_state(), 'leader') # 2) Bring up MED_1_2, which attaches to Thread 1.2 parent, only register MA with scope larger than realm local. diff --git a/tests/scripts/thread-cert/v1_2_test_parent_selection.py b/tests/scripts/thread-cert/v1_2_test_parent_selection.py index e94571886..7b55b91d3 100755 --- a/tests/scripts/thread-cert/v1_2_test_parent_selection.py +++ b/tests/scripts/thread-cert/v1_2_test_parent_selection.py @@ -107,7 +107,7 @@ class TestParentSelection(thread_cert.TestCase): def test(self): self.nodes[LEADER_1_2].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER_1_2].get_state(), 'leader') self.nodes[ROUTER_1_1].set_router_selection_jitter(1) @@ -260,7 +260,7 @@ class TestParentSelection(thread_cert.TestCase): self.nodes[ROUTER_1_1].set_parent_priority(1) self.nodes[MED_1_2].start() - self.simulator.go(5) + self.simulator.go(15) self.assertEqual(self.nodes[MED_1_2].get_state(), 'child') # Check Parent Response diff --git a/tests/scripts/thread-cert/v1_2_test_single_probe.py b/tests/scripts/thread-cert/v1_2_test_single_probe.py index 899ee503a..b929479c9 100755 --- a/tests/scripts/thread-cert/v1_2_test_single_probe.py +++ b/tests/scripts/thread-cert/v1_2_test_single_probe.py @@ -31,6 +31,7 @@ import unittest import mle import thread_cert +import config LEADER = 1 SSED_1 = 2 @@ -57,7 +58,7 @@ class SSED_SingleProbe(thread_cert.TestCase): self.nodes[SSED_1].set_csl_timeout(CSL_TIMEOUT) self.nodes[LEADER].start() - self.simulator.go(5) + self.simulator.go(config.LEADER_STARTUP_DELAY) self.assertEqual(self.nodes[LEADER].get_state(), 'leader') self.nodes[SSED_1].start() diff --git a/tests/toranj/ncp/test-017-parent-reset-child-recovery.py b/tests/toranj/ncp/test-017-parent-reset-child-recovery.py index 625039097..9737a4374 100644 --- a/tests/toranj/ncp/test-017-parent-reset-child-recovery.py +++ b/tests/toranj/ncp/test-017-parent-reset-child-recovery.py @@ -81,7 +81,7 @@ parent.form("recovery") for child in sleepy_children: child.join_node(parent, wpan.JOIN_TYPE_SLEEPY_END_DEVICE) - child.set(wpan.WPAN_POLL_INTERVAL, '4000') + child.set(wpan.WPAN_POLL_INTERVAL, '10000') for child in rx_on_children: child.join_node(parent, wpan.JOIN_TYPE_END_DEVICE) @@ -148,7 +148,7 @@ def check_parent_is_associated(): verify(parent.is_associated()) -wpan.verify_within(check_parent_is_associated, 5) +wpan.verify_within(check_parent_is_associated, 10) # Verify that all the children are recovered and present in the parent's # child table again (within 5 seconds). diff --git a/tools/otci/tests/test_otci.py b/tools/otci/tests/test_otci.py index 286e3363c..38c59810f 100644 --- a/tools/otci/tests/test_otci.py +++ b/tools/otci/tests/test_otci.py @@ -172,7 +172,7 @@ class TestOTCI(unittest.TestCase): self.assertEqual(leader.get_preferred_partition_id(), 0xabcddead) leader.thread_start() - leader.wait(5) + leader.wait(10) self.assertEqual('leader', leader.get_state()) self.assertEqual(0xabcddead, leader.get_leader_data()['partition_id']) logging.info('leader key sequence counter = %d', leader.get_key_sequence_counter()) @@ -519,7 +519,7 @@ class TestOTCI(unittest.TestCase): node1.ifconfig_up() node1.thread_start() - node1.wait(5) + node1.wait(10) assert node1.get_state() == "leader" node1.commissioner_start() @@ -571,7 +571,7 @@ class TestOTCI(unittest.TestCase): self.assertEqual('rdn', leader.get_mode()) leader.thread_start() - leader.wait(5) + leader.wait(10) self.assertEqual('leader', leader.get_state()) logging.info('leader key sequence counter = %d', leader.get_key_sequence_counter())