mirror of
https://github.com/espressif/openthread.git
synced 2026-08-19 00:49:53 +00:00
[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.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
+2
-1
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user