From 7d9b65e7a12e0570cee0ab2392b5d83a0802c124 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Fri, 12 Aug 2016 10:42:54 -0700 Subject: [PATCH] Set the Beacon Joining Permitted flag if unsecure ports are configured. (#370) --- src/core/mac/mac.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index dd8d3540e..74ed3ad53 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -381,6 +381,7 @@ void Mac::SendBeaconRequest(Frame &aFrame) void Mac::SendBeacon(Frame &aFrame) { + uint8_t numUnsecurePorts; uint16_t fcf; // initialize MAC header @@ -389,6 +390,18 @@ void Mac::SendBeacon(Frame &aFrame) aFrame.SetSrcPanId(mPanId); aFrame.SetSrcAddr(mExtAddress); + // set the Joining Permitted flag + mNetif.GetIp6Filter().GetUnsecurePorts(numUnsecurePorts); + + if (numUnsecurePorts) + { + mBeacon.SetJoiningPermitted(); + } + else + { + mBeacon.ClearJoiningPermitted(); + } + // write payload memcpy(aFrame.GetPayload(), &mBeacon, sizeof(mBeacon)); aFrame.SetPayloadLength(sizeof(mBeacon));