diff --git a/src/core/mac/mac_frame.hpp b/src/core/mac/mac_frame.hpp index 637ffb4af..3352b0f62 100644 --- a/src/core/mac/mac_frame.hpp +++ b/src/core/mac/mac_frame.hpp @@ -34,6 +34,8 @@ #ifndef MAC_FRAME_HPP_ #define MAC_FRAME_HPP_ +#include + #include #include #include @@ -799,7 +801,14 @@ public: * This method sets the Joining Permitted flag. * */ - void SetJoiningPermitted(void) { mFlags |= kJoiningFlag; } + void SetJoiningPermitted(void) { + mFlags |= kJoiningFlag; + +#if OPENTHREAD_CONFIG_JOIN_BEACON_VERSION != kProtocolVersion + mFlags &= ~kVersionMask; + mFlags |= OPENTHREAD_CONFIG_JOIN_BEACON_VERSION << kVersionOffset; +#endif + } /** * This method returns a pointer to the Network Name field. diff --git a/src/core/openthread-core-default-config.h b/src/core/openthread-core-default-config.h index bc0c31378..203c815f6 100644 --- a/src/core/openthread-core-default-config.h +++ b/src/core/openthread-core-default-config.h @@ -237,6 +237,16 @@ #define OPENTHREAD_CONFIG_COAP_MAX_RETRANSMIT 4 #endif // OPENTHREAD_CONFIG_COAP_MAX_RETRANSMIT +/** + * @def OPENTHREAD_CONFIG_JOIN_BEACON_VERSION + * + * The Beacon version to use when the beacon join flag is set. + * + */ +#ifndef OPENTHREAD_CONFIG_JOIN_BEACON_VERSION +#define OPENTHREAD_CONFIG_JOIN_BEACON_VERSION kProtocolVersion +#endif // OPENTHREAD_CONFIG_JOIN_BEACON_VERSION + /** * @def OPENTHREAD_CONFIG_LOG_LEVEL *