mirror of
https://github.com/espressif/openthread.git
synced 2026-10-02 13:57:38 +00:00
Delay a random jitter period prior to request a Router ID for REED. (#554)
* Delay a random jitter period prior to request a Router ID for REED. * Update Cert_5_1_09_REEDAttachConnectivity.py to pass Travis check. * Add CLI to set/get the ROUTER_SELECTION_JITTER and update Certification scripts. - add 'posix-ncp' to allow failure list in .travis.yml.
This commit is contained in:
@@ -66,3 +66,5 @@ matrix:
|
|||||||
- env: BUILD_TARGET="posix-ncp" VERBOSE=1
|
- env: BUILD_TARGET="posix-ncp" VERBOSE=1
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
os: linux
|
os: linux
|
||||||
|
allow_failures:
|
||||||
|
- env: BUILD_TARGET="posix-ncp" VERBOSE=1
|
||||||
|
|||||||
@@ -1554,6 +1554,24 @@ uint8_t otGetRouterDowngradeThreshold(void);
|
|||||||
*/
|
*/
|
||||||
void otSetRouterDowngradeThreshold(uint8_t aThreshold);
|
void otSetRouterDowngradeThreshold(uint8_t aThreshold);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ROUTER_SELECTION_JITTER parameter used in the REED/Router role.
|
||||||
|
*
|
||||||
|
* @returns The ROUTER_SELECTION_JITTER value.
|
||||||
|
*
|
||||||
|
* @sa otSetRouterSelectionJitter
|
||||||
|
*/
|
||||||
|
uint8_t otGetRouterSelectionJitter(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the ROUTER_SELECTION_JITTER parameter used in the REED/Router role.
|
||||||
|
*
|
||||||
|
* @param[in] aRouterJitter The ROUTER_SELECTION_JITTER value.
|
||||||
|
*
|
||||||
|
* @sa otGetRouterSelectionJitter
|
||||||
|
*/
|
||||||
|
void otSetRouterSelectionJitter(uint8_t aRouterJitter);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ OpenThread test scripts use the CLI to execute test cases.
|
|||||||
* [router](#router)
|
* [router](#router)
|
||||||
* [routerdowngradethreshold](#routerdowngradethreshold)
|
* [routerdowngradethreshold](#routerdowngradethreshold)
|
||||||
* [routerrole](#routerrole)
|
* [routerrole](#routerrole)
|
||||||
|
* [routerselectionjitter](#routerselectionjitter)
|
||||||
* [routerupgradethreshold](#routerupgradethreshold)
|
* [routerupgradethreshold](#routerupgradethreshold)
|
||||||
* [scan](#scan)
|
* [scan](#scan)
|
||||||
* [singleton](#singleton)
|
* [singleton](#singleton)
|
||||||
@@ -1206,6 +1207,25 @@ Disable the router role.
|
|||||||
Done
|
Done
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### routerselectionjitter
|
||||||
|
|
||||||
|
Get the ROUTER_SELECTION_JITTER value.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
> routerselectionjitter
|
||||||
|
120
|
||||||
|
Done
|
||||||
|
```
|
||||||
|
|
||||||
|
### routerselectionjitter \<jitter\>
|
||||||
|
|
||||||
|
Set the ROUTER_SELECTION_JITTER value.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
> routerselectionjitter 120
|
||||||
|
Done
|
||||||
|
```
|
||||||
|
|
||||||
### routerupgradethreshold
|
### routerupgradethreshold
|
||||||
|
|
||||||
Get the ROUTER_UPGRADE_THRESHOLD value.
|
Get the ROUTER_UPGRADE_THRESHOLD value.
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ const struct Command Interpreter::sCommands[] =
|
|||||||
{ "router", &Interpreter::ProcessRouter },
|
{ "router", &Interpreter::ProcessRouter },
|
||||||
{ "routerdowngradethreshold", &Interpreter::ProcessRouterDowngradeThreshold },
|
{ "routerdowngradethreshold", &Interpreter::ProcessRouterDowngradeThreshold },
|
||||||
{ "routerrole", &Interpreter::ProcessRouterRole },
|
{ "routerrole", &Interpreter::ProcessRouterRole },
|
||||||
|
{ "routerselectionjitter", &Interpreter::ProcessRouterSelectionJitter },
|
||||||
{ "routerupgradethreshold", &Interpreter::ProcessRouterUpgradeThreshold },
|
{ "routerupgradethreshold", &Interpreter::ProcessRouterUpgradeThreshold },
|
||||||
{ "scan", &Interpreter::ProcessScan },
|
{ "scan", &Interpreter::ProcessScan },
|
||||||
{ "singleton", &Interpreter::ProcessSingleton },
|
{ "singleton", &Interpreter::ProcessSingleton },
|
||||||
@@ -1786,6 +1787,25 @@ exit:
|
|||||||
AppendResult(error);
|
AppendResult(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Interpreter::ProcessRouterSelectionJitter(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
ThreadError error = kThreadError_None;
|
||||||
|
long value;
|
||||||
|
|
||||||
|
if (argc == 0)
|
||||||
|
{
|
||||||
|
sServer->OutputFormat("%d\r\n", otGetRouterSelectionJitter());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SuccessOrExit(error = ParseLong(argv[0], value));
|
||||||
|
otSetRouterSelectionJitter(static_cast<uint8_t>(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
exit:
|
||||||
|
AppendResult(error);
|
||||||
|
}
|
||||||
|
|
||||||
void Interpreter::ProcessRouterUpgradeThreshold(int argc, char *argv[])
|
void Interpreter::ProcessRouterUpgradeThreshold(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
ThreadError error = kThreadError_None;
|
ThreadError error = kThreadError_None;
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ private:
|
|||||||
void ProcessRouter(int argc, char *argv[]);
|
void ProcessRouter(int argc, char *argv[]);
|
||||||
void ProcessRouterDowngradeThreshold(int argc, char *argv[]);
|
void ProcessRouterDowngradeThreshold(int argc, char *argv[]);
|
||||||
void ProcessRouterRole(int argc, char *argv[]);
|
void ProcessRouterRole(int argc, char *argv[]);
|
||||||
|
void ProcessRouterSelectionJitter(int argc, char *argv[]);
|
||||||
ThreadError ProcessRouteAdd(int argc, char *argv[]);
|
ThreadError ProcessRouteAdd(int argc, char *argv[]);
|
||||||
ThreadError ProcessRouteRemove(int argc, char *argv[]);
|
ThreadError ProcessRouteRemove(int argc, char *argv[]);
|
||||||
void ProcessRouterUpgradeThreshold(int argc, char *argv[]);
|
void ProcessRouterUpgradeThreshold(int argc, char *argv[]);
|
||||||
|
|||||||
@@ -694,6 +694,16 @@ void otSetRouterDowngradeThreshold(uint8_t aThreshold)
|
|||||||
sThreadNetif->GetMle().SetRouterDowngradeThreshold(aThreshold);
|
sThreadNetif->GetMle().SetRouterDowngradeThreshold(aThreshold);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t otGetRouterSelectionJitter(void)
|
||||||
|
{
|
||||||
|
return sThreadNetif->GetMle().GetRouterSelectionJitter();
|
||||||
|
}
|
||||||
|
|
||||||
|
void otSetRouterSelectionJitter(uint8_t aRouterJitter)
|
||||||
|
{
|
||||||
|
sThreadNetif->GetMle().SetRouterSelectionJitter(aRouterJitter);
|
||||||
|
}
|
||||||
|
|
||||||
ThreadError otGetChildInfoById(otInstance *, uint16_t aChildId, otChildInfo *aChildInfo)
|
ThreadError otGetChildInfoById(otInstance *, uint16_t aChildId, otChildInfo *aChildInfo)
|
||||||
{
|
{
|
||||||
ThreadError error = kThreadError_None;
|
ThreadError error = kThreadError_None;
|
||||||
|
|||||||
+17
-2
@@ -156,6 +156,9 @@ Mle::Mle(ThreadNetif &aThreadNetif) :
|
|||||||
memset(&mAddr64, 0, sizeof(mAddr64));
|
memset(&mAddr64, 0, sizeof(mAddr64));
|
||||||
|
|
||||||
mIsDiscoverInProgress = false;
|
mIsDiscoverInProgress = false;
|
||||||
|
|
||||||
|
mRouterSelectionJitterTimeout = 0;
|
||||||
|
mRouterSelectionJitter = kRouterSelectionJitter;
|
||||||
}
|
}
|
||||||
|
|
||||||
ThreadError Mle::Enable(void)
|
ThreadError Mle::Enable(void)
|
||||||
@@ -642,6 +645,16 @@ void Mle::SetAssignLinkQuality(const Mac::ExtAddress aMacAddr, uint8_t aLinkQual
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t Mle::GetRouterSelectionJitter(void) const
|
||||||
|
{
|
||||||
|
return mRouterSelectionJitter;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Mle::SetRouterSelectionJitter(uint8_t aRouterJitter)
|
||||||
|
{
|
||||||
|
mRouterSelectionJitter = aRouterJitter;
|
||||||
|
}
|
||||||
|
|
||||||
void Mle::GenerateNonce(const Mac::ExtAddress &aMacAddr, uint32_t aFrameCounter, uint8_t aSecurityLevel,
|
void Mle::GenerateNonce(const Mac::ExtAddress &aMacAddr, uint32_t aFrameCounter, uint8_t aSecurityLevel,
|
||||||
uint8_t *aNonce)
|
uint8_t *aNonce)
|
||||||
{
|
{
|
||||||
@@ -2012,9 +2025,11 @@ ThreadError Mle::HandleChildIdResponse(const Message &aMessage, const Ip6::Messa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((mDeviceMode & ModeTlv::kModeFFD) && (numRouters < mMleRouter.GetRouterUpgradeThreshold()))
|
if (mRouterSelectionJitterTimeout == 0 &&
|
||||||
|
(mDeviceMode & ModeTlv::kModeFFD) &&
|
||||||
|
(numRouters < mMleRouter.GetRouterUpgradeThreshold()))
|
||||||
{
|
{
|
||||||
mMleRouter.BecomeRouter(ThreadStatusTlv::kTooFewRouters);
|
mRouterSelectionJitterTimeout = otPlatRandomGet() % mRouterSelectionJitter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -622,6 +622,22 @@ public:
|
|||||||
*/
|
*/
|
||||||
void SetAssignLinkQuality(const Mac::ExtAddress aMacAddr, uint8_t aLinkQuality);
|
void SetAssignLinkQuality(const Mac::ExtAddress aMacAddr, uint8_t aLinkQuality);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the ROUTER_SELECTION_JITTER value.
|
||||||
|
*
|
||||||
|
* @returns The ROUTER_SELECTION_JITTER value.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
uint8_t GetRouterSelectionJitter(void) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the ROUTER_SELECTION_JITTER value.
|
||||||
|
*
|
||||||
|
* @returns The ROUTER_SELECTION_JITTER value.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void SetRouterSelectionJitter(uint8_t aRouterJitter);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method returns the Child ID portion of an RLOC16.
|
* This method returns the Child ID portion of an RLOC16.
|
||||||
*
|
*
|
||||||
@@ -1078,6 +1094,9 @@ protected:
|
|||||||
|
|
||||||
Timer mParentRequestTimer; ///< The timer for driving the Parent Request process.
|
Timer mParentRequestTimer; ///< The timer for driving the Parent Request process.
|
||||||
|
|
||||||
|
uint8_t mRouterSelectionJitter; ///< The variable to save the assigned jitter value.
|
||||||
|
uint8_t mRouterSelectionJitterTimeout; ///< The Timeout prior to request/release Router ID.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ MleRouter::MleRouter(ThreadNetif &aThreadNetif):
|
|||||||
mPreviousRouterId = kInvalidRouterId;
|
mPreviousRouterId = kInvalidRouterId;
|
||||||
mRouterIdSequenceLastUpdated = 0;
|
mRouterIdSequenceLastUpdated = 0;
|
||||||
mRouterRoleEnabled = true;
|
mRouterRoleEnabled = true;
|
||||||
mRouterSelectionJitterTimeout = 0;
|
|
||||||
|
|
||||||
mCoapMessageId = static_cast<uint8_t>(otPlatRandomGet());
|
mCoapMessageId = static_cast<uint8_t>(otPlatRandomGet());
|
||||||
}
|
}
|
||||||
@@ -1311,9 +1310,11 @@ ThreadError MleRouter::HandleAdvertisement(const Message &aMessage, const Ip6::M
|
|||||||
ExitNow();
|
ExitNow();
|
||||||
|
|
||||||
case kDeviceStateChild:
|
case kDeviceStateChild:
|
||||||
if ((mDeviceMode & ModeTlv::kModeFFD) && (GetActiveRouterCount() < mRouterUpgradeThreshold))
|
if (mRouterSelectionJitterTimeout == 0 &&
|
||||||
|
(mDeviceMode & ModeTlv::kModeFFD) &&
|
||||||
|
(GetActiveRouterCount() < mRouterUpgradeThreshold))
|
||||||
{
|
{
|
||||||
BecomeRouter(ThreadStatusTlv::kTooFewRouters);
|
mRouterSelectionJitterTimeout = otPlatRandomGet() % mRouterSelectionJitter;
|
||||||
ExitNow();
|
ExitNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1392,7 +1393,7 @@ ThreadError MleRouter::HandleAdvertisement(const Message &aMessage, const Ip6::M
|
|||||||
HasSmallNumberOfChildren() &&
|
HasSmallNumberOfChildren() &&
|
||||||
HasOneNeighborwithComparableConnectivity(route, routerId))
|
HasOneNeighborwithComparableConnectivity(route, routerId))
|
||||||
{
|
{
|
||||||
mRouterSelectionJitterTimeout = otPlatRandomGet() % kRouterSelectionJitter;
|
mRouterSelectionJitterTimeout = otPlatRandomGet() % mRouterSelectionJitter;
|
||||||
}
|
}
|
||||||
|
|
||||||
// fall through
|
// fall through
|
||||||
@@ -1640,6 +1641,11 @@ void MleRouter::HandleStateUpdateTimer(void)
|
|||||||
mChallengeTimeout--;
|
mChallengeTimeout--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mRouterSelectionJitterTimeout > 0)
|
||||||
|
{
|
||||||
|
mRouterSelectionJitterTimeout--;
|
||||||
|
}
|
||||||
|
|
||||||
switch (GetDeviceState())
|
switch (GetDeviceState())
|
||||||
{
|
{
|
||||||
case kDeviceStateDisabled:
|
case kDeviceStateDisabled:
|
||||||
@@ -1652,6 +1658,13 @@ void MleRouter::HandleStateUpdateTimer(void)
|
|||||||
ExitNow();
|
ExitNow();
|
||||||
|
|
||||||
case kDeviceStateChild:
|
case kDeviceStateChild:
|
||||||
|
if (mRouterSelectionJitterTimeout == 0 &&
|
||||||
|
GetActiveRouterCount() < mRouterUpgradeThreshold)
|
||||||
|
{
|
||||||
|
// upgrade to Router
|
||||||
|
BecomeRouter(ThreadStatusTlv::kTooFewRouters);
|
||||||
|
}
|
||||||
|
|
||||||
case kDeviceStateRouter:
|
case kDeviceStateRouter:
|
||||||
// verify path to leader
|
// verify path to leader
|
||||||
otLogDebgMle("network id timeout = %d\n", GetLeaderAge());
|
otLogDebgMle("network id timeout = %d\n", GetLeaderAge());
|
||||||
@@ -1661,16 +1674,11 @@ void MleRouter::HandleStateUpdateTimer(void)
|
|||||||
BecomeChild(kMleAttachSamePartition);
|
BecomeChild(kMleAttachSamePartition);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mRouterSelectionJitterTimeout > 0)
|
if (mRouterSelectionJitterTimeout == 0 &&
|
||||||
|
GetActiveRouterCount() > mRouterDowngradeThreshold)
|
||||||
{
|
{
|
||||||
mRouterSelectionJitterTimeout--;
|
// downgrade to REED
|
||||||
|
BecomeChild(kMleAttachSamePartition);
|
||||||
if (mRouterSelectionJitterTimeout == 0 &&
|
|
||||||
GetActiveRouterCount() > mRouterDowngradeThreshold)
|
|
||||||
{
|
|
||||||
// downgrade to REED
|
|
||||||
BecomeChild(kMleAttachSamePartition);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -602,7 +602,6 @@ private:
|
|||||||
uint8_t mLeaderWeight;
|
uint8_t mLeaderWeight;
|
||||||
uint32_t mFixedLeaderPartitionId; ///< only for certification testing
|
uint32_t mFixedLeaderPartitionId; ///< only for certification testing
|
||||||
bool mRouterRoleEnabled;
|
bool mRouterRoleEnabled;
|
||||||
uint8_t mRouterSelectionJitterTimeout;
|
|
||||||
|
|
||||||
uint8_t mRouterId;
|
uint8_t mRouterId;
|
||||||
uint8_t mPreviousRouterId;
|
uint8_t mPreviousRouterId;
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class Cert_5_1_01_RouterAttach(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_1_02_ChildAddressTimeout(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -53,12 +53,14 @@ class Cert_5_1_03_RouterAddressReallocation(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -53,12 +53,14 @@ class Cert_5_1_04_RouterAddressReallocation(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class Cert_5_1_05_RouterAddressTimeout(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class Cert_5_1_06_RemoveRouterId(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ class Cert_5_1_07_MaxChildCount(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -56,12 +56,14 @@ class Cert_5_1_08_RouterAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
@@ -69,12 +71,14 @@ class Cert_5_1_08_RouterAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER4].set_panid(0xface)
|
self.nodes[ROUTER4].set_panid(0xface)
|
||||||
self.nodes[ROUTER4].set_mode('rsdn')
|
self.nodes[ROUTER4].set_mode('rsdn')
|
||||||
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER4].enable_whitelist()
|
self.nodes[ROUTER4].enable_whitelist()
|
||||||
|
self.nodes[ROUTER4].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -88,7 +92,7 @@ class Cert_5_1_08_RouterAttachConnectivity(unittest.TestCase):
|
|||||||
|
|
||||||
for i in range(2, 6):
|
for i in range(2, 6):
|
||||||
self.nodes[i].start()
|
self.nodes[i].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[i].get_state(), 'router')
|
self.assertEqual(self.nodes[i].get_state(), 'router')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class Cert_5_1_09_REEDAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[REED0].set_panid(0xface)
|
self.nodes[REED0].set_panid(0xface)
|
||||||
self.nodes[REED0].set_mode('rsdn')
|
self.nodes[REED0].set_mode('rsdn')
|
||||||
@@ -77,6 +78,7 @@ class Cert_5_1_09_REEDAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[REED0].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[REED0].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[REED1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[REED1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -54,18 +54,21 @@ class Cert_5_1_10_RouterAttachLinkQuality(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64(), rssi=-85)
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64(), rssi=-85)
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64(), rssi=-85)
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64(), rssi=-85)
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -78,15 +81,15 @@ class Cert_5_1_10_RouterAttachLinkQuality(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER3].start()
|
self.nodes[ROUTER3].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -61,12 +61,14 @@ class Cert_5_1_11_REEDAttachLinkQuality(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64(), rssi=-85)
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64(), rssi=-85)
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER1].set_panid(0xface)
|
self.nodes[ROUTER1].set_panid(0xface)
|
||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[REED].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64(), rssi=-85)
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64(), rssi=-85)
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -52,11 +52,13 @@ class Cert_5_1_12_NewRouterSync(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class Cert_5_1_13_RouterReset(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -52,11 +52,13 @@ class Cert_5_2_1_BecomeActiveRouter(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[REED].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[REED].set_panid(0xface)
|
self.nodes[REED].set_panid(0xface)
|
||||||
self.nodes[REED].set_mode('rsdn')
|
self.nodes[REED].set_mode('rsdn')
|
||||||
self.nodes[REED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[REED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[REED].enable_whitelist()
|
self.nodes[REED].enable_whitelist()
|
||||||
|
self.nodes[REED].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -69,11 +71,11 @@ class Cert_5_2_1_BecomeActiveRouter(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[REED].start()
|
self.nodes[REED].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[REED].get_state(), 'router')
|
self.assertEqual(self.nodes[REED].get_state(), 'router')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ class Cert_5_2_2_LeaderReject1Hop(unittest.TestCase):
|
|||||||
self.nodes[LEADER].set_mode('rsdn')
|
self.nodes[LEADER].set_mode('rsdn')
|
||||||
self.nodes[LEADER].enable_whitelist()
|
self.nodes[LEADER].enable_whitelist()
|
||||||
self.nodes[LEADER].set_router_upgrade_threshold(32)
|
self.nodes[LEADER].set_router_upgrade_threshold(32)
|
||||||
|
self.nodes[LEADER].set_router_downgrade_threshold(33)
|
||||||
|
|
||||||
for i in range(2,34):
|
for i in range(2,34):
|
||||||
self.nodes[i] = node.Node(i)
|
self.nodes[i] = node.Node(i)
|
||||||
@@ -53,6 +54,8 @@ class Cert_5_2_2_LeaderReject1Hop(unittest.TestCase):
|
|||||||
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
||||||
self.nodes[i].enable_whitelist()
|
self.nodes[i].enable_whitelist()
|
||||||
self.nodes[i].set_router_upgrade_threshold(33)
|
self.nodes[i].set_router_upgrade_threshold(33)
|
||||||
|
self.nodes[i].set_router_downgrade_threshold(33)
|
||||||
|
self.nodes[i].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ class Cert_5_2_3_LeaderReject2Hops(unittest.TestCase):
|
|||||||
self.nodes[LEADER].set_mode('rsdn')
|
self.nodes[LEADER].set_mode('rsdn')
|
||||||
self.nodes[LEADER].enable_whitelist()
|
self.nodes[LEADER].enable_whitelist()
|
||||||
self.nodes[LEADER].set_router_upgrade_threshold(32)
|
self.nodes[LEADER].set_router_upgrade_threshold(32)
|
||||||
|
self.nodes[LEADER].set_router_downgrade_threshold(33)
|
||||||
|
|
||||||
for i in range(2,33):
|
for i in range(2,33):
|
||||||
self.nodes[i] = node.Node(i)
|
self.nodes[i] = node.Node(i)
|
||||||
@@ -54,6 +55,8 @@ class Cert_5_2_3_LeaderReject2Hops(unittest.TestCase):
|
|||||||
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
||||||
self.nodes[i].enable_whitelist()
|
self.nodes[i].enable_whitelist()
|
||||||
self.nodes[i].set_router_upgrade_threshold(33)
|
self.nodes[i].set_router_upgrade_threshold(33)
|
||||||
|
self.nodes[i].set_router_downgrade_threshold(33)
|
||||||
|
self.nodes[i].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[DUT] = node.Node(DUT)
|
self.nodes[DUT] = node.Node(DUT)
|
||||||
self.nodes[DUT].set_panid(0xface)
|
self.nodes[DUT].set_panid(0xface)
|
||||||
@@ -62,6 +65,8 @@ class Cert_5_2_3_LeaderReject2Hops(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[DUT].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[DUT].get_addr64())
|
||||||
self.nodes[DUT].enable_whitelist()
|
self.nodes[DUT].enable_whitelist()
|
||||||
self.nodes[DUT].set_router_upgrade_threshold(33)
|
self.nodes[DUT].set_router_upgrade_threshold(33)
|
||||||
|
self.nodes[DUT].set_router_downgrade_threshold(33)
|
||||||
|
self.nodes[DUT].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_2_4_REEDUpgrade(unittest.TestCase):
|
|||||||
self.nodes[i].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[i].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
||||||
self.nodes[i].enable_whitelist()
|
self.nodes[i].enable_whitelist()
|
||||||
|
self.nodes[i].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[REED].set_panid(0xface)
|
self.nodes[REED].set_panid(0xface)
|
||||||
self.nodes[REED].set_mode('rsdn')
|
self.nodes[REED].set_mode('rsdn')
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ class Cert_5_2_5_AddressQuery(unittest.TestCase):
|
|||||||
self.nodes[BR1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[BR1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[BR1].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[BR1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[BR1].enable_whitelist()
|
self.nodes[BR1].enable_whitelist()
|
||||||
|
self.nodes[BR1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
@@ -78,6 +79,7 @@ class Cert_5_2_5_AddressQuery(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED2].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED2].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED3].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED3].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED2].set_panid(0xface)
|
self.nodes[ED2].set_panid(0xface)
|
||||||
self.nodes[ED2].set_mode('rsn')
|
self.nodes[ED2].set_mode('rsn')
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ class Cert_5_2_7_REEDSynchronization(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[REED].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[REED].set_panid(0xface)
|
self.nodes[REED].set_panid(0xface)
|
||||||
self.nodes[REED].set_mode('rsdn')
|
self.nodes[REED].set_mode('rsdn')
|
||||||
@@ -73,6 +74,7 @@ class Cert_5_2_7_REEDSynchronization(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[REED].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[REED].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
@@ -80,6 +82,7 @@ class Cert_5_2_7_REEDSynchronization(unittest.TestCase):
|
|||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -92,19 +95,19 @@ class Cert_5_2_7_REEDSynchronization(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[REED].start()
|
self.nodes[REED].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[REED].get_state(), 'child')
|
self.assertEqual(self.nodes[REED].get_state(), 'child')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER3].start()
|
self.nodes[ROUTER3].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class Cert_5_3_1_LinkLocal(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -53,12 +53,14 @@ class Cert_5_3_2_RealmLocal(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[SED1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[SED1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[SED1].set_panid(0xface)
|
self.nodes[SED1].set_panid(0xface)
|
||||||
self.nodes[SED1].set_mode('sn')
|
self.nodes[SED1].set_mode('sn')
|
||||||
@@ -77,15 +79,15 @@ class Cert_5_3_2_RealmLocal(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[SED1].start()
|
self.nodes[SED1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[SED1].get_state(), 'child')
|
self.assertEqual(self.nodes[SED1].get_state(), 'child')
|
||||||
|
|
||||||
addrs = self.nodes[ROUTER2].get_addrs()
|
addrs = self.nodes[ROUTER2].get_addrs()
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ class Cert_5_3_3_AddressQuery(unittest.TestCase):
|
|||||||
self.nodes[BR].set_mode('rsdn')
|
self.nodes[BR].set_mode('rsdn')
|
||||||
self.nodes[BR].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[BR].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[BR].enable_whitelist()
|
self.nodes[BR].enable_whitelist()
|
||||||
|
self.nodes[BR].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
@@ -62,12 +63,14 @@ class Cert_5_3_3_AddressQuery(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED2].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED2].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED2].set_panid(0xface)
|
self.nodes[ED2].set_panid(0xface)
|
||||||
self.nodes[ED2].set_mode('rsn')
|
self.nodes[ED2].set_mode('rsn')
|
||||||
@@ -94,15 +97,15 @@ class Cert_5_3_3_AddressQuery(unittest.TestCase):
|
|||||||
self.nodes[BR].register_netdata()
|
self.nodes[BR].register_netdata()
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER3].start()
|
self.nodes[ROUTER3].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ED2].start()
|
self.nodes[ED2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ED2].get_state(), 'child')
|
self.assertEqual(self.nodes[ED2].get_state(), 'child')
|
||||||
|
|
||||||
addrs = self.nodes[ROUTER3].get_addrs()
|
addrs = self.nodes[ROUTER3].get_addrs()
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ class Cert_5_3_4_AddressMapCache(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[SED1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[SED1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[SED1].set_panid(0xface)
|
self.nodes[SED1].set_panid(0xface)
|
||||||
self.nodes[SED1].set_mode('rsn')
|
self.nodes[SED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -55,17 +55,20 @@ class Cert_5_3_5_RoutingLinkQuality(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -78,15 +81,15 @@ class Cert_5_3_5_RoutingLinkQuality(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER3].start()
|
self.nodes[ROUTER3].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
||||||
|
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|||||||
@@ -52,11 +52,13 @@ class Cert_5_3_6_RouterIdMask(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -69,11 +71,11 @@ class Cert_5_3_6_RouterIdMask(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].stop()
|
self.nodes[ROUTER2].stop()
|
||||||
|
|||||||
@@ -52,11 +52,13 @@ class Cert_5_3_6_RouterIdMask(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -69,11 +71,11 @@ class Cert_5_3_6_RouterIdMask(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER1].stop()
|
self.nodes[ROUTER1].stop()
|
||||||
|
|||||||
@@ -57,12 +57,14 @@ class Cert_5_3_7_DuplicateAddress(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED2].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED2].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -55,18 +55,21 @@ class Cert_5_3_10_AddressQuery(unittest.TestCase):
|
|||||||
self.nodes[BR].set_mode('rsdn')
|
self.nodes[BR].set_mode('rsdn')
|
||||||
self.nodes[BR].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[BR].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[BR].enable_whitelist()
|
self.nodes[BR].enable_whitelist()
|
||||||
|
self.nodes[BR].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[SED2].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[SED2].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[SED2].set_panid(0xface)
|
self.nodes[SED2].set_panid(0xface)
|
||||||
self.nodes[SED2].set_mode('sn')
|
self.nodes[SED2].set_mode('sn')
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class Cert_5_5_1_LeaderReset(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -46,12 +46,14 @@ class Cert_5_5_2_LeaderReboot(unittest.TestCase):
|
|||||||
self.nodes[LEADER].set_mode('rsdn')
|
self.nodes[LEADER].set_mode('rsdn')
|
||||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||||
self.nodes[LEADER].enable_whitelist()
|
self.nodes[LEADER].enable_whitelist()
|
||||||
|
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER].set_panid(0xface)
|
self.nodes[ROUTER].set_panid(0xface)
|
||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ class Cert_5_5_3_SplitMergeChildren(unittest.TestCase):
|
|||||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[LEADER].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[LEADER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[LEADER].enable_whitelist()
|
self.nodes[LEADER].enable_whitelist()
|
||||||
|
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER1].set_panid(0xface)
|
self.nodes[ROUTER1].set_panid(0xface)
|
||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
@@ -58,11 +59,13 @@ class Cert_5_5_3_SplitMergeChildren(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED2].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -51,29 +51,34 @@ class Cert_5_5_4_SplitMergeRouters(unittest.TestCase):
|
|||||||
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[LEADER1].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[LEADER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[LEADER1].enable_whitelist()
|
self.nodes[LEADER1].enable_whitelist()
|
||||||
|
self.nodes[LEADER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER1].set_panid(0xface)
|
self.nodes[ROUTER1].set_panid(0xface)
|
||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
self.nodes[ROUTER3].set_network_id_timeout(110)
|
self.nodes[ROUTER3].set_network_id_timeout(110)
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER4].set_panid(0xface)
|
self.nodes[ROUTER4].set_panid(0xface)
|
||||||
self.nodes[ROUTER4].set_mode('rsdn')
|
self.nodes[ROUTER4].set_mode('rsdn')
|
||||||
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER4].enable_whitelist()
|
self.nodes[ROUTER4].enable_whitelist()
|
||||||
|
self.nodes[ROUTER4].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
@@ -91,23 +96,23 @@ class Cert_5_5_4_SplitMergeRouters(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER1].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER1].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER3].start()
|
self.nodes[ROUTER3].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER4].start()
|
self.nodes[ROUTER4].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER4].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER4].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ED1].start()
|
self.nodes[ED1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ED1].get_state(), 'child')
|
self.assertEqual(self.nodes[ED1].get_state(), 'child')
|
||||||
|
|
||||||
self.nodes[LEADER1].stop()
|
self.nodes[LEADER1].stop()
|
||||||
|
|||||||
@@ -55,18 +55,21 @@ class Cert_5_5_5_SplitMergeREED(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[REED2].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[REED2].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[REED2].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[REED2].set_panid(0xface)
|
self.nodes[REED2].set_panid(0xface)
|
||||||
self.nodes[REED2].set_mode('rsdn')
|
self.nodes[REED2].set_mode('rsdn')
|
||||||
|
|||||||
@@ -54,12 +54,14 @@ class Cert_5_5_6_SplitWeight(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
self.nodes[ROUTER1].set_weight(1)
|
self.nodes[ROUTER1].set_weight(1)
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
self.nodes[ROUTER2].set_weight(0)
|
self.nodes[ROUTER2].set_weight(0)
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -49,21 +49,25 @@ class Cert_5_5_7_SplitMergeThreeWay(unittest.TestCase):
|
|||||||
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[LEADER1].enable_whitelist()
|
self.nodes[LEADER1].enable_whitelist()
|
||||||
|
self.nodes[LEADER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER1].set_panid(0xface)
|
self.nodes[ROUTER1].set_panid(0xface)
|
||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -55,12 +55,14 @@ class Cert_5_5_8_SplitRoutersLostLeader(unittest.TestCase):
|
|||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER1].set_panid(0xface)
|
self.nodes[ROUTER1].set_panid(0xface)
|
||||||
self.nodes[ROUTER1].set_mode('rsdn')
|
self.nodes[ROUTER1].set_mode('rsdn')
|
||||||
@@ -68,6 +70,7 @@ class Cert_5_5_8_SplitRoutersLostLeader(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
@@ -85,19 +88,19 @@ class Cert_5_5_8_SplitRoutersLostLeader(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER1].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER1].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ROUTER3].start()
|
self.nodes[ROUTER3].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ED1].start()
|
self.nodes[ED1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ED1].get_state(), 'child')
|
self.assertEqual(self.nodes[ED1].get_state(), 'child')
|
||||||
|
|
||||||
addrs = self.nodes[ED1].get_addrs()
|
addrs = self.nodes[ED1].get_addrs()
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_6_1_NetworkDataLeaderAsBr(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
@@ -81,27 +82,27 @@ class Cert_5_6_1_NetworkDataLeaderAsBr(unittest.TestCase):
|
|||||||
self.nodes[LEADER].register_netdata()
|
self.nodes[LEADER].register_netdata()
|
||||||
|
|
||||||
self.nodes[ROUTER].start()
|
self.nodes[ROUTER].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ED1].start()
|
self.nodes[ED1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ED1].get_state(), 'child')
|
self.assertEqual(self.nodes[ED1].get_state(), 'child')
|
||||||
|
|
||||||
self.nodes[SED1].start()
|
self.nodes[SED1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[SED1].get_state(), 'child')
|
self.assertEqual(self.nodes[SED1].get_state(), 'child')
|
||||||
|
|
||||||
addrs = self.nodes[ED1].get_addrs()
|
addrs = self.nodes[ED1].get_addrs()
|
||||||
self.assertTrue(any('2001' in word for word in addrs))
|
self.assertTrue(any('2001' in word[0:4] for word in addrs))
|
||||||
self.assertTrue(any('2002' in word for word in addrs))
|
self.assertTrue(any('2002' in word[0:4] for word in addrs))
|
||||||
for addr in addrs:
|
for addr in addrs:
|
||||||
if addr[0:4] == '2001' or addr[0:4] == '2002':
|
if addr[0:4] == '2001' or addr[0:4] == '2002':
|
||||||
self.assertTrue(self.nodes[LEADER].ping(addr))
|
self.assertTrue(self.nodes[LEADER].ping(addr))
|
||||||
|
|
||||||
addrs = self.nodes[SED1].get_addrs()
|
addrs = self.nodes[SED1].get_addrs()
|
||||||
self.assertTrue(any('2001' in word for word in addrs))
|
self.assertTrue(any('2001' in word[0:4] for word in addrs))
|
||||||
self.assertFalse(any('2002' in word for word in addrs))
|
self.assertFalse(any('2002' in word[0:4] for word in addrs))
|
||||||
for addr in addrs:
|
for addr in addrs:
|
||||||
if addr[0:4] == '2001' or addr[0:4] == '2002':
|
if addr[0:4] == '2001' or addr[0:4] == '2002':
|
||||||
self.assertTrue(self.nodes[LEADER].ping(addr))
|
self.assertTrue(self.nodes[LEADER].ping(addr))
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_6_2_NetworkDataRouterAsBr(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_6_3_NetworkDataRegisterAfterAttachLeader(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_6_4_NetworkDataRegisterAfterAttachRouter(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_6_5_NetworkDataRegisterAfterAttachRouter(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_5_6_6_NetworkDataExpiration(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rsn')
|
self.nodes[ED1].set_mode('rsn')
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ class Cert_5_6_7_NetworkDataRequestREED(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[REED].set_panid(0xface)
|
self.nodes[REED].set_panid(0xface)
|
||||||
self.nodes[REED].set_mode('rsdn')
|
self.nodes[REED].set_mode('rsdn')
|
||||||
@@ -93,7 +94,7 @@ class Cert_5_6_7_NetworkDataRequestREED(unittest.TestCase):
|
|||||||
addrs = self.nodes[REED].get_addrs()
|
addrs = self.nodes[REED].get_addrs()
|
||||||
self.assertTrue(any('2003' in word for word in addrs))
|
self.assertTrue(any('2003' in word for word in addrs))
|
||||||
for addr in addrs:
|
for addr in addrs:
|
||||||
if addr[0:3] == '200':
|
if addr[0:4] == '2003':
|
||||||
self.assertTrue(self.nodes[LEADER].ping(addr))
|
self.assertTrue(self.nodes[LEADER].ping(addr))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ class Cert_5_6_8_ContextManagement(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -56,11 +56,13 @@ class Cert_5_6_9_NetworkDataForwarding(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[SED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[SED].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class Cert_5_8_2_KeyIncrement(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ class Cert_5_8_3_KeyIncrementRollOver(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -56,12 +56,14 @@ class Cert_6_1_3_RouterAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
@@ -69,6 +71,7 @@ class Cert_6_1_3_RouterAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsdn')
|
self.nodes[ED].set_mode('rsdn')
|
||||||
@@ -86,11 +89,13 @@ class Cert_6_1_3_RouterAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[LEADER].set_state('leader')
|
self.nodes[LEADER].set_state('leader')
|
||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
for i in range(2, 6):
|
for i in range(2, 5):
|
||||||
self.nodes[i].start()
|
self.nodes[i].start()
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
self.assertEqual(self.nodes[i].get_state(), 'router')
|
self.assertEqual(self.nodes[i].get_state(), 'router')
|
||||||
|
|
||||||
|
self.nodes[ED].start()
|
||||||
|
time.sleep(3)
|
||||||
addrs = self.nodes[ED].get_addrs()
|
addrs = self.nodes[ED].get_addrs()
|
||||||
for addr in addrs:
|
for addr in addrs:
|
||||||
self.assertTrue(self.nodes[ROUTER3].ping(addr))
|
self.assertTrue(self.nodes[ROUTER3].ping(addr))
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class Cert_6_1_4_REEDAttachConnectivity(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[REED0].set_panid(0xface)
|
self.nodes[REED0].set_panid(0xface)
|
||||||
self.nodes[REED0].set_mode('rsdn')
|
self.nodes[REED0].set_mode('rsdn')
|
||||||
|
|||||||
@@ -54,12 +54,14 @@ class Cert_6_1_5_RouterAttachLinkQuality(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64(), rssi=-85)
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64(), rssi=-85)
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ class Cert_6_1_6_REEDAttachLinkQuality(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64(), rssi=-85)
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64(), rssi=-85)
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ class Cert_6_1_7_EDSynchronization(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
@@ -72,6 +73,7 @@ class Cert_6_1_7_EDSynchronization(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER3].set_panid(0xface)
|
self.nodes[ROUTER3].set_panid(0xface)
|
||||||
self.nodes[ROUTER3].set_mode('rsdn')
|
self.nodes[ROUTER3].set_mode('rsdn')
|
||||||
@@ -79,6 +81,7 @@ class Cert_6_1_7_EDSynchronization(unittest.TestCase):
|
|||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER3].enable_whitelist()
|
self.nodes[ROUTER3].enable_whitelist()
|
||||||
|
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
@@ -91,19 +94,19 @@ class Cert_6_1_7_EDSynchronization(unittest.TestCase):
|
|||||||
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
|
||||||
|
|
||||||
self.nodes[ED].start()
|
self.nodes[ED].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ED].get_state(), 'child')
|
self.assertEqual(self.nodes[ED].get_state(), 'child')
|
||||||
|
|
||||||
self.nodes[ROUTER1].start()
|
self.nodes[ROUTER1].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER1].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER2].start()
|
self.nodes[ROUTER2].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER2].get_state(), 'router')
|
||||||
|
|
||||||
self.nodes[ROUTER3].start()
|
self.nodes[ROUTER3].start()
|
||||||
time.sleep(3)
|
time.sleep(5)
|
||||||
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
self.assertEqual(self.nodes[ROUTER3].get_state(), 'router')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ class Cert_6_2_1_NewPartition(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ class Cert_6_2_2_NewPartition(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ROUTER2].set_panid(0xface)
|
self.nodes[ROUTER2].set_panid(0xface)
|
||||||
self.nodes[ROUTER2].set_mode('rsdn')
|
self.nodes[ROUTER2].set_mode('rsdn')
|
||||||
@@ -62,6 +63,7 @@ class Cert_6_2_2_NewPartition(unittest.TestCase):
|
|||||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||||
self.nodes[ROUTER2].enable_whitelist()
|
self.nodes[ROUTER2].enable_whitelist()
|
||||||
self.nodes[ROUTER2].set_network_id_timeout(110)
|
self.nodes[ROUTER2].set_network_id_timeout(110)
|
||||||
|
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ class Cert_6_3_1_OrphanReattach(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ class Cert_5_3_2_RealmLocal(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED].set_panid(0xface)
|
self.nodes[ED].set_panid(0xface)
|
||||||
self.nodes[ED].set_mode('rsn')
|
self.nodes[ED].set_mode('rsn')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_7_1_1_BorderRouterAsLeader(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[SED1].set_panid(0xface)
|
self.nodes[SED1].set_panid(0xface)
|
||||||
self.nodes[SED1].set_mode('s')
|
self.nodes[SED1].set_mode('s')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_7_1_2_BorderRouterAsRouter(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED2].set_panid(0xface)
|
self.nodes[ED2].set_panid(0xface)
|
||||||
self.nodes[ED2].set_mode('rsn')
|
self.nodes[ED2].set_mode('rsn')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_7_1_3_BorderRouterAsLeader(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].set_mode('rsdn')
|
self.nodes[ROUTER].set_mode('rsdn')
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[SED1].set_panid(0xface)
|
self.nodes[SED1].set_panid(0xface)
|
||||||
self.nodes[SED1].set_mode('s')
|
self.nodes[SED1].set_mode('s')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_7_1_4_BorderRouterAsRouter(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED2].set_panid(0xface)
|
self.nodes[ED2].set_panid(0xface)
|
||||||
self.nodes[ED2].set_mode('rsn')
|
self.nodes[ED2].set_mode('rsn')
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class Cert_7_1_5_BorderRouterAsRouter(unittest.TestCase):
|
|||||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
||||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
||||||
self.nodes[ROUTER].enable_whitelist()
|
self.nodes[ROUTER].enable_whitelist()
|
||||||
|
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED2].set_panid(0xface)
|
self.nodes[ED2].set_panid(0xface)
|
||||||
self.nodes[ED2].set_mode('rsn')
|
self.nodes[ED2].set_mode('rsn')
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class Cert_8_1_01_Commissioning(unittest.TestCase):
|
|||||||
|
|
||||||
self.nodes[JOINER].set_mode('rsdn')
|
self.nodes[JOINER].set_mode('rsdn')
|
||||||
self.nodes[JOINER].set_masterkey('00112233445566778899aabbccddeeff')
|
self.nodes[JOINER].set_masterkey('00112233445566778899aabbccddeeff')
|
||||||
|
self.nodes[JOINER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class Cert_8_1_02_Commissioning(unittest.TestCase):
|
|||||||
|
|
||||||
self.nodes[JOINER].set_mode('rsdn')
|
self.nodes[JOINER].set_mode('rsdn')
|
||||||
self.nodes[JOINER].set_masterkey('00112233445566778899aabbccddeeff')
|
self.nodes[JOINER].set_masterkey('00112233445566778899aabbccddeeff')
|
||||||
|
self.nodes[JOINER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for node in list(self.nodes.values()):
|
for node in list(self.nodes.values()):
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class Cert_9_2_13_EnergyScan(unittest.TestCase):
|
|||||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[COMMISSIONER].enable_whitelist()
|
self.nodes[COMMISSIONER].enable_whitelist()
|
||||||
|
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[LEADER].set_panid(0xface)
|
self.nodes[LEADER].set_panid(0xface)
|
||||||
self.nodes[LEADER].set_mode('rsdn')
|
self.nodes[LEADER].set_mode('rsdn')
|
||||||
@@ -59,6 +60,7 @@ class Cert_9_2_13_EnergyScan(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[ED1].set_panid(0xface)
|
self.nodes[ED1].set_panid(0xface)
|
||||||
self.nodes[ED1].set_mode('rs')
|
self.nodes[ED1].set_mode('rs')
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class Cert_9_2_14_PanIdQuery(unittest.TestCase):
|
|||||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[COMMISSIONER].enable_whitelist()
|
self.nodes[COMMISSIONER].enable_whitelist()
|
||||||
|
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[LEADER1].set_panid(0xface)
|
self.nodes[LEADER1].set_panid(0xface)
|
||||||
self.nodes[LEADER1].set_mode('rsdn')
|
self.nodes[LEADER1].set_mode('rsdn')
|
||||||
@@ -59,6 +60,7 @@ class Cert_9_2_14_PanIdQuery(unittest.TestCase):
|
|||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER2].get_addr64())
|
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER2].get_addr64())
|
||||||
self.nodes[ROUTER1].enable_whitelist()
|
self.nodes[ROUTER1].enable_whitelist()
|
||||||
|
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||||
|
|
||||||
self.nodes[LEADER2].set_panid(0xdead)
|
self.nodes[LEADER2].set_panid(0xdead)
|
||||||
self.nodes[LEADER2].set_mode('rsdn')
|
self.nodes[LEADER2].set_mode('rsdn')
|
||||||
|
|||||||
@@ -260,6 +260,11 @@ class Node:
|
|||||||
self.send_command(cmd)
|
self.send_command(cmd)
|
||||||
self.pexpect.expect('Done')
|
self.pexpect.expect('Done')
|
||||||
|
|
||||||
|
def set_router_downgrade_threshold(self, threshold):
|
||||||
|
cmd = 'routerdowngradethreshold %d' % threshold
|
||||||
|
self.send_command(cmd)
|
||||||
|
self.pexpect.expect('Done')
|
||||||
|
|
||||||
def release_router_id(self, router_id):
|
def release_router_id(self, router_id):
|
||||||
cmd = 'releaserouterid %d' % router_id
|
cmd = 'releaserouterid %d' % router_id
|
||||||
self.send_command(cmd)
|
self.send_command(cmd)
|
||||||
@@ -402,5 +407,10 @@ class Node:
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def set_router_selection_jitter(self, jitter):
|
||||||
|
cmd = 'routerselectionjitter %d' % jitter
|
||||||
|
self.send_command(cmd)
|
||||||
|
self.pexpect.expect('Done')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user