diff --git a/tests/nexus/platform/nexus_node.cpp b/tests/nexus/platform/nexus_node.cpp index 9aeba7cbc..39fcf734a 100644 --- a/tests/nexus/platform/nexus_node.cpp +++ b/tests/nexus/platform/nexus_node.cpp @@ -66,7 +66,7 @@ void Node::Form(void) void Node::Join(Node &aNode, JoinMode aJoinMode) { MeshCoP::Dataset dataset; - Mle::DeviceMode mode(0); + uint8_t mode = 0; switch (aJoinMode) { @@ -75,18 +75,20 @@ void Node::Join(Node &aNode, JoinMode aJoinMode) OT_FALL_THROUGH; case kAsFtd: - mode.Set(Mle::DeviceMode::kModeRxOnWhenIdle | Mle::DeviceMode::kModeFullThreadDevice | - Mle::DeviceMode::kModeFullNetworkData); + mode = Mle::DeviceMode::kModeRxOnWhenIdle | Mle::DeviceMode::kModeFullThreadDevice | + Mle::DeviceMode::kModeFullNetworkData; break; case kAsMed: - mode.Set(Mle::DeviceMode::kModeRxOnWhenIdle | Mle::DeviceMode::kModeFullNetworkData); + mode = Mle::DeviceMode::kModeRxOnWhenIdle | Mle::DeviceMode::kModeFullNetworkData; + break; + case kAsSedWithFullNetData: + mode = Mle::DeviceMode::kModeFullNetworkData; break; case kAsSed: - mode.Set(Mle::DeviceMode::kModeFullNetworkData); break; } - SuccessOrQuit(Get().SetDeviceMode(mode)); + SuccessOrQuit(Get().SetDeviceMode(Mle::DeviceMode(mode))); SuccessOrQuit(aNode.Get().Read(dataset)); Get().SaveLocal(dataset); diff --git a/tests/nexus/platform/nexus_node.hpp b/tests/nexus/platform/nexus_node.hpp index 61d6a9fad..5c966b438 100644 --- a/tests/nexus/platform/nexus_node.hpp +++ b/tests/nexus/platform/nexus_node.hpp @@ -66,12 +66,19 @@ class Node : public Platform, public Heap::Allocatable, public LinkedListE friend class Heap::Allocatable; public: + // Defines the device role and Network Data request behavior + // during joining: + // + // - `kAsFtd`, `kAsFed`, and `kAsMed` all request full netdata. + // - `kAsSed` requests only stable netdata (default for SED). + // - `kAsSedWithFullNetData` explicitly request full netdata. enum JoinMode : uint8_t { kAsFtd, kAsFed, kAsMed, kAsSed, + kAsSedWithFullNetData, }; void Reset(void);