mirror of
https://github.com/espressif/openthread.git
synced 2026-08-14 06:37:46 +00:00
[simulation] do not update CSL IE in retransmission (#6275)
This commit is contained in:
@@ -352,6 +352,8 @@ CSL_DEFAULT_PERIOD = 3125 # 0.5s, 3125 in units of ten symbols
|
||||
CSL_DEFAULT_PERIOD_IN_SECOND = 0.5
|
||||
US_PER_TEN_SYMBOLS = 160
|
||||
CSL_IE_ID = 0x1a
|
||||
CSL_DEFAULT_TIMEOUT = 30
|
||||
CSL_DEFAULT_CHANNEL = 12
|
||||
|
||||
# Thread Version TLV value
|
||||
THREAD_VERSION_1_2 = 3
|
||||
|
||||
@@ -31,14 +31,11 @@ import unittest
|
||||
|
||||
import mle
|
||||
import thread_cert
|
||||
from pktverify import consts
|
||||
|
||||
LEADER = 1
|
||||
SSED_1 = 2
|
||||
|
||||
CSL_PERIOD = 500 * 6.25 # 500ms
|
||||
CSL_TIMEOUT = 30 # 30s
|
||||
CSL_CHANNEL = 12
|
||||
|
||||
|
||||
class SSED_CslTransmission(thread_cert.TestCase):
|
||||
TOPOLOGY = {
|
||||
@@ -55,8 +52,8 @@ class SSED_CslTransmission(thread_cert.TestCase):
|
||||
|
||||
def test(self):
|
||||
|
||||
self.nodes[SSED_1].set_csl_period(CSL_PERIOD)
|
||||
self.nodes[SSED_1].set_csl_timeout(CSL_TIMEOUT)
|
||||
self.nodes[SSED_1].set_csl_period(consts.CSL_DEFAULT_PERIOD)
|
||||
self.nodes[SSED_1].set_csl_timeout(consts.CSL_DEFAULT_TIMEOUT)
|
||||
|
||||
self.nodes[SSED_1].get_csl_info()
|
||||
|
||||
@@ -69,24 +66,26 @@ class SSED_CslTransmission(thread_cert.TestCase):
|
||||
self.assertEqual(self.nodes[SSED_1].get_state(), 'child')
|
||||
|
||||
print('SSED rloc:%s' % self.nodes[SSED_1].get_rloc())
|
||||
self.assertTrue(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc()))
|
||||
# Set ping timeout as two CSL periods.
|
||||
timeout = 2 * consts.CSL_DEFAULT_PERIOD_IN_SECOND
|
||||
self.assertTrue(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc(), timeout=timeout))
|
||||
self.simulator.go(5)
|
||||
|
||||
ssed_messages = self.simulator.get_messages_sent_by(SSED_1)
|
||||
msg = ssed_messages.next_mle_message(mle.CommandType.CHILD_UPDATE_REQUEST)
|
||||
msg.assertMleMessageDoesNotContainTlv(mle.CslChannel)
|
||||
|
||||
self.nodes[SSED_1].set_csl_channel(CSL_CHANNEL)
|
||||
self.nodes[SSED_1].set_csl_channel(consts.CSL_DEFAULT_CHANNEL)
|
||||
self.simulator.go(1)
|
||||
ssed_messages = self.simulator.get_messages_sent_by(SSED_1)
|
||||
msg = ssed_messages.next_mle_message(mle.CommandType.CHILD_UPDATE_REQUEST)
|
||||
msg.assertMleMessageContainsTlv(mle.CslChannel)
|
||||
self.assertTrue(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc()))
|
||||
self.assertTrue(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc(), timeout=timeout))
|
||||
self.simulator.go(5)
|
||||
|
||||
self.nodes[SSED_1].set_csl_channel(0)
|
||||
self.simulator.go(1)
|
||||
self.assertTrue(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc()))
|
||||
self.assertTrue(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc(), timeout=timeout))
|
||||
self.simulator.go(5)
|
||||
|
||||
ssed_messages = self.simulator.get_messages_sent_by(SSED_1)
|
||||
@@ -94,7 +93,7 @@ class SSED_CslTransmission(thread_cert.TestCase):
|
||||
msg.assertMleMessageDoesNotContainTlv(mle.CslChannel)
|
||||
|
||||
self.nodes[SSED_1].set_csl_period(0)
|
||||
self.assertFalse(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc()))
|
||||
self.assertFalse(self.nodes[LEADER].ping(self.nodes[SSED_1].get_rloc(), timeout=timeout))
|
||||
self.simulator.go(2)
|
||||
|
||||
self.nodes[SSED_1].set_pollperiod(1000)
|
||||
|
||||
Reference in New Issue
Block a user