diff --git a/src/core/api/commissioner_api.cpp b/src/core/api/commissioner_api.cpp index 1e10f677d..8c549098a 100644 --- a/src/core/api/commissioner_api.cpp +++ b/src/core/api/commissioner_api.cpp @@ -117,8 +117,8 @@ otError otCommissionerAnnounceBegin(otInstance *aInstance, uint32_t aChannelMask otError error = OT_ERROR_DISABLED_FEATURE; #if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER - error = aInstance->mThreadNetif.GetCommissioner().mAnnounceBegin.SendRequest(aChannelMask, aCount, aPeriod, - *static_cast(aAddress)); + error = aInstance->mThreadNetif.GetCommissioner().GetAnnounceBeginClient().SendRequest( + aChannelMask, aCount, aPeriod, *static_cast(aAddress)); #else // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD OT_UNUSED_VARIABLE(aInstance); OT_UNUSED_VARIABLE(aChannelMask); @@ -137,9 +137,9 @@ otError otCommissionerEnergyScan(otInstance *aInstance, uint32_t aChannelMask, u otError error = OT_ERROR_DISABLED_FEATURE; #if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER - error = aInstance->mThreadNetif.GetCommissioner().mEnergyScan.SendQuery(aChannelMask, aCount, aPeriod, aScanDuration, - *static_cast(aAddress), - aCallback, aContext); + error = aInstance->mThreadNetif.GetCommissioner().GetEnergyScanClient().SendQuery( + aChannelMask, aCount, aPeriod, aScanDuration, *static_cast(aAddress), + aCallback, aContext); #else // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD OT_UNUSED_VARIABLE(aInstance); OT_UNUSED_VARIABLE(aChannelMask); @@ -161,7 +161,7 @@ otError otCommissionerPanIdQuery(otInstance *aInstance, uint16_t aPanId, uint32_ otError error = OT_ERROR_DISABLED_FEATURE; #if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER - error = aInstance->mThreadNetif.GetCommissioner().mPanIdQuery.SendQuery( + error = aInstance->mThreadNetif.GetCommissioner().GetPanIdQueryClient().SendQuery( aPanId, aChannelMask, *static_cast(aAddress), aCallback, aContext); #else // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD OT_UNUSED_VARIABLE(aInstance); diff --git a/src/core/api/icmp6_api.cpp b/src/core/api/icmp6_api.cpp index dfc77f9d0..7d5aed4f7 100644 --- a/src/core/api/icmp6_api.cpp +++ b/src/core/api/icmp6_api.cpp @@ -41,23 +41,23 @@ using namespace ot; bool otIcmp6IsEchoEnabled(otInstance *aInstance) { - return aInstance->mIp6.mIcmp.IsEchoEnabled(); + return aInstance->mIp6.GetIcmp().IsEchoEnabled(); } void otIcmp6SetEchoEnabled(otInstance *aInstance, bool aEnabled) { - aInstance->mIp6.mIcmp.SetEchoEnabled(aEnabled); + aInstance->mIp6.GetIcmp().SetEchoEnabled(aEnabled); } otError otIcmp6RegisterHandler(otInstance *aInstance, otIcmp6Handler *aHandler) { - return aInstance->mIp6.mIcmp.RegisterHandler(*static_cast(aHandler)); + return aInstance->mIp6.GetIcmp().RegisterHandler(*static_cast(aHandler)); } otError otIcmp6SendEchoRequest(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, uint16_t aIdentifier) { - return aInstance->mIp6.mIcmp.SendEchoRequest(*static_cast(aMessage), - *static_cast(aMessageInfo), - aIdentifier); + return aInstance->mIp6.GetIcmp().SendEchoRequest(*static_cast(aMessage), + *static_cast(aMessageInfo), + aIdentifier); } diff --git a/src/core/api/message_api.cpp b/src/core/api/message_api.cpp index afe269750..dda8d7ed0 100644 --- a/src/core/api/message_api.cpp +++ b/src/core/api/message_api.cpp @@ -178,8 +178,8 @@ void otMessageGetBufferInfo(otInstance *aInstance, otBufferInfo *aBufferInfo) aInstance->mThreadNetif.GetIp6().GetSendQueue().GetInfo(aBufferInfo->mIp6Messages, aBufferInfo->mIp6Buffers); - aInstance->mThreadNetif.GetIp6().mMpl.GetBufferedMessageSet().GetInfo(aBufferInfo->mMplMessages, - aBufferInfo->mMplBuffers); + aInstance->mThreadNetif.GetIp6().GetMpl().GetBufferedMessageSet().GetInfo(aBufferInfo->mMplMessages, + aBufferInfo->mMplBuffers); aInstance->mThreadNetif.GetMle().GetMessageQueue().GetInfo(aBufferInfo->mMleMessages, aBufferInfo->mMleBuffers); diff --git a/src/core/api/udp_api.cpp b/src/core/api/udp_api.cpp index 6431db854..90db4f37c 100644 --- a/src/core/api/udp_api.cpp +++ b/src/core/api/udp_api.cpp @@ -41,7 +41,7 @@ using namespace ot; otMessage *otUdpNewMessage(otInstance *aInstance, bool aLinkSecurityEnabled) { - Message *message = aInstance->mIp6.mUdp.NewMessage(0); + Message *message = aInstance->mIp6.GetUdp().NewMessage(0); if (message) { @@ -58,7 +58,7 @@ otError otUdpOpen(otInstance *aInstance, otUdpSocket *aSocket, otUdpReceive aCal if (socket->mTransport == NULL) { - socket->mTransport = &aInstance->mIp6.mUdp; + socket->mTransport = &aInstance->mIp6.GetUdp(); error = socket->Open(aCallback, aCallbackContext); } diff --git a/src/core/coap/coap.cpp b/src/core/coap/coap.cpp index 6e04532b5..9bd7e1d8c 100644 --- a/src/core/coap/coap.cpp +++ b/src/core/coap/coap.cpp @@ -51,7 +51,7 @@ namespace Coap { CoapBase::CoapBase(otInstance &aInstance, Timer::Handler aRetransmissionTimerHandler, Timer::Handler aResponsesQueueTimerHandler): InstanceLocator(aInstance), - mSocket(aInstance.mThreadNetif.GetIp6().mUdp), + mSocket(aInstance.mThreadNetif.GetIp6().GetUdp()), mRetransmissionTimer(aInstance, aRetransmissionTimerHandler, this), mResources(NULL), mContext(NULL), diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index 715f4af8d..0bdfdd0e1 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -138,17 +138,6 @@ void Mac::StartCsmaBackoff(void) Mac::Mac(otInstance &aInstance): InstanceLocator(aInstance), - mMacTimer(aInstance, &Mac::HandleMacTimer, this), - mBackoffTimer(aInstance, &Mac::HandleBeginTransmit, this), - mReceiveTimer(aInstance, &Mac::HandleReceiveTimer, this), - mShortAddress(kShortAddrInvalid), - mPanId(kPanIdBroadcast), - mChannel(OPENTHREAD_CONFIG_DEFAULT_CHANNEL), - mMaxTransmitPower(OPENTHREAD_CONFIG_DEFAULT_MAX_TRANSMIT_POWER), - mSendHead(NULL), - mSendTail(NULL), - mReceiveHead(NULL), - mReceiveTail(NULL), mOperation(kOperationIdle), mPendingActiveScan(false), mPendingEnergyScan(false), @@ -160,6 +149,17 @@ Mac::Mac(otInstance &aInstance): #if OPENTHREAD_CONFIG_STAY_AWAKE_BETWEEN_FRAGMENTS mDelaySleep(false), #endif + mMacTimer(aInstance, &Mac::HandleMacTimer, this), + mBackoffTimer(aInstance, &Mac::HandleBeginTransmit, this), + mReceiveTimer(aInstance, &Mac::HandleReceiveTimer, this), + mShortAddress(kShortAddrInvalid), + mPanId(kPanIdBroadcast), + mChannel(OPENTHREAD_CONFIG_DEFAULT_CHANNEL), + mMaxTransmitPower(OPENTHREAD_CONFIG_DEFAULT_MAX_TRANSMIT_POWER), + mSendHead(NULL), + mSendTail(NULL), + mReceiveHead(NULL), + mReceiveTail(NULL), mBeaconSequence(static_cast(otPlatRandomGet())), mDataSequence(static_cast(otPlatRandomGet())), mCsmaAttempts(0), diff --git a/src/core/mac/mac.hpp b/src/core/mac/mac.hpp index 7ee25b051..4263b5aa6 100644 --- a/src/core/mac/mac.hpp +++ b/src/core/mac/mac.hpp @@ -682,6 +682,19 @@ private: static const char *OperationToString(Operation aOperation); + Operation mOperation; + + bool mPendingActiveScan : 1; + bool mPendingEnergyScan : 1; + bool mPendingTransmitBeacon : 1; + bool mPendingTransmitData : 1; + bool mPendingWaitingForData : 1; + bool mRxOnWhenIdle : 1; + bool mBeaconsEnabled : 1; +#if OPENTHREAD_CONFIG_STAY_AWAKE_BETWEEN_FRAGMENTS + bool mDelaySleep : 1; +#endif + TimerMilli mMacTimer; #if OPENTHREAD_CONFIG_ENABLE_PLATFORM_USEC_TIMER TimerMicro mBackoffTimer; @@ -702,19 +715,6 @@ private: Sender *mSendHead, *mSendTail; Receiver *mReceiveHead, *mReceiveTail; - Operation mOperation; - - bool mPendingActiveScan : 1; - bool mPendingEnergyScan : 1; - bool mPendingTransmitBeacon : 1; - bool mPendingTransmitData : 1; - bool mPendingWaitingForData : 1; - bool mRxOnWhenIdle : 1; - bool mBeaconsEnabled : 1; -#if OPENTHREAD_CONFIG_STAY_AWAKE_BETWEEN_FRAGMENTS - bool mDelaySleep : 1; -#endif - uint8_t mBeaconSequence; uint8_t mDataSequence; uint8_t mCsmaAttempts; diff --git a/src/core/meshcop/commissioner.cpp b/src/core/meshcop/commissioner.cpp index 026ef7fc8..5be94538c 100644 --- a/src/core/meshcop/commissioner.cpp +++ b/src/core/meshcop/commissioner.cpp @@ -62,9 +62,6 @@ namespace MeshCoP { Commissioner::Commissioner(otInstance &aInstance): InstanceLocator(aInstance), - mAnnounceBegin(aInstance), - mEnergyScan(aInstance), - mPanIdQuery(aInstance), mState(OT_COMMISSIONER_STATE_DISABLED), mJoinerPort(0), mJoinerRloc(0), @@ -74,7 +71,10 @@ Commissioner::Commissioner(otInstance &aInstance): mTransmitAttempts(0), mRelayReceive(OT_URI_PATH_RELAY_RX, &Commissioner::HandleRelayReceive, this), mDatasetChanged(OT_URI_PATH_DATASET_CHANGED, &Commissioner::HandleDatasetChanged, this), - mJoinerFinalize(OT_URI_PATH_JOINER_FINALIZE, &Commissioner::HandleJoinerFinalize, this) + mJoinerFinalize(OT_URI_PATH_JOINER_FINALIZE, &Commissioner::HandleJoinerFinalize, this), + mAnnounceBegin(aInstance), + mEnergyScan(aInstance), + mPanIdQuery(aInstance) { memset(mJoiners, 0, sizeof(mJoiners)); } diff --git a/src/core/meshcop/commissioner.hpp b/src/core/meshcop/commissioner.hpp index c9fb38f4e..7985ebddd 100644 --- a/src/core/meshcop/commissioner.hpp +++ b/src/core/meshcop/commissioner.hpp @@ -196,9 +196,29 @@ public: static otError GeneratePSKc(const char *aPassPhrase, const char *aNetworkName, const uint8_t *aExtPanId, uint8_t *aPSKc); - AnnounceBeginClient mAnnounceBegin; - EnergyScanClient mEnergyScan; - PanIdQueryClient mPanIdQuery; + /** + * This method returns a reference to the AnnounceBeginClient instance. + * + * @returns A reference to the AnnounceBeginClient instance. + * + */ + AnnounceBeginClient &GetAnnounceBeginClient(void) { return mAnnounceBegin; } + + /** + * This method returns a reference to the EnergyScanClient instance. + * + * @returns A reference to the EnergyScanClient instance. + * + */ + EnergyScanClient &GetEnergyScanClient(void) { return mEnergyScan; } + + /** + * This method returns a reference to the PanIdQueryClient instance. + * + * @returns A reference to the PanIdQueryClient instance. + * + */ + PanIdQueryClient &GetPanIdQueryClient(void) { return mPanIdQuery; } private: enum @@ -289,6 +309,10 @@ private: Coap::Resource mRelayReceive; Coap::Resource mDatasetChanged; Coap::Resource mJoinerFinalize; + + AnnounceBeginClient mAnnounceBegin; + EnergyScanClient mEnergyScan; + PanIdQueryClient mPanIdQuery; }; } // namespace MeshCoP diff --git a/src/core/meshcop/dataset_manager.cpp b/src/core/meshcop/dataset_manager.cpp index d16f5cce8..fb62a3e68 100644 --- a/src/core/meshcop/dataset_manager.cpp +++ b/src/core/meshcop/dataset_manager.cpp @@ -62,8 +62,8 @@ namespace MeshCoP { DatasetManager::DatasetManager(otInstance &aInstance, const Tlv::Type aType, const char *aUriSet, const char *aUriGet, Timer::Handler aTimerHandler): InstanceLocator(aInstance), - mLocal(aInstance, aType), mNetwork(aType), + mLocal(aInstance, aType), mTimer(aInstance, aTimerHandler, this), mUriSet(aUriSet), mUriGet(aUriGet) diff --git a/src/core/meshcop/dataset_manager.hpp b/src/core/meshcop/dataset_manager.hpp index d2882dbb0..1ae609b22 100644 --- a/src/core/meshcop/dataset_manager.hpp +++ b/src/core/meshcop/dataset_manager.hpp @@ -204,8 +204,8 @@ protected: */ void HandleTimer(void); - DatasetLocal mLocal; Dataset mNetwork; + DatasetLocal mLocal; private: static void HandleUdpReceive(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo); diff --git a/src/core/meshcop/joiner_router.cpp b/src/core/meshcop/joiner_router.cpp index 9ed8ab494..3e7c38aa3 100644 --- a/src/core/meshcop/joiner_router.cpp +++ b/src/core/meshcop/joiner_router.cpp @@ -57,7 +57,7 @@ namespace MeshCoP { JoinerRouter::JoinerRouter(otInstance &aInstance): InstanceLocator(aInstance), - mSocket(aInstance.mThreadNetif.GetIp6().mUdp), + mSocket(aInstance.mThreadNetif.GetIp6().GetUdp()), mRelayTransmit(OT_URI_PATH_RELAY_TX, &JoinerRouter::HandleRelayTransmit, this), mTimer(aInstance, &JoinerRouter::HandleTimer, this), mJoinerUdpPort(0), diff --git a/src/core/net/dhcp6_client.cpp b/src/core/net/dhcp6_client.cpp index 57b76141a..62303db68 100644 --- a/src/core/net/dhcp6_client.cpp +++ b/src/core/net/dhcp6_client.cpp @@ -58,8 +58,8 @@ namespace Dhcp6 { Dhcp6Client::Dhcp6Client(otInstance &aInstance) : InstanceLocator(aInstance), + mSocket(aInstance.mThreadNetif.GetIp6().GetUdp()), mTrickleTimer(aInstance, &Dhcp6Client::HandleTrickleTimer, NULL, this), - mSocket(aInstance.mThreadNetif.GetIp6().mUdp), mStartTime(0), mAddresses(NULL), mNumAddresses(0) diff --git a/src/core/net/dhcp6_client.hpp b/src/core/net/dhcp6_client.hpp index 177682efe..257d4a004 100644 --- a/src/core/net/dhcp6_client.hpp +++ b/src/core/net/dhcp6_client.hpp @@ -226,10 +226,10 @@ private: static Dhcp6Client &GetOwner(const Context &aContext); - TrickleTimer mTrickleTimer; - Ip6::UdpSocket mSocket; + TrickleTimer mTrickleTimer; + uint8_t mTransactionId[kTransactionIdSize]; uint32_t mStartTime; otDhcpAddress *mAddresses; diff --git a/src/core/net/dhcp6_server.cpp b/src/core/net/dhcp6_server.cpp index 81e20d038..f5bb225c6 100644 --- a/src/core/net/dhcp6_server.cpp +++ b/src/core/net/dhcp6_server.cpp @@ -53,7 +53,7 @@ namespace Dhcp6 { Dhcp6Server::Dhcp6Server(otInstance &aInstance): InstanceLocator(aInstance), - mSocket(GetNetif().GetIp6().mUdp) + mSocket(GetNetif().GetIp6().GetUdp()) { for (uint8_t i = 0; i < OPENTHREAD_CONFIG_NUM_DHCP_PREFIXES; i++) { diff --git a/src/core/net/dns_client.hpp b/src/core/net/dns_client.hpp index 43034a9c4..fe546beb7 100644 --- a/src/core/net/dns_client.hpp +++ b/src/core/net/dns_client.hpp @@ -159,7 +159,7 @@ public: * */ Client(Ip6::Netif &aNetif): - mSocket(aNetif.GetIp6().mUdp), + mSocket(aNetif.GetIp6().GetUdp()), mMessageId(0), mRetransmissionTimer(aNetif.GetInstance(), &Client::HandleRetransmissionTimer, this) { }; diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index 172454495..0cc0dd308 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -52,16 +52,17 @@ namespace Ip6 { Ip6::Ip6(otInstance &aInstance): InstanceLocator(aInstance), + mForwardingEnabled(false), + mIsReceiveIp6FilterEnabled(false), + mReceiveIp6DatagramCallback(NULL), + mReceiveIp6DatagramCallbackContext(NULL), + mNetifListHead(NULL), + mSendQueue(), + mSendQueueTask(aInstance, HandleSendQueue, this), mRoutes(aInstance), mIcmp(aInstance), mUdp(aInstance), - mMpl(aInstance), - mForwardingEnabled(false), - mSendQueueTask(aInstance, HandleSendQueue, this), - mReceiveIp6DatagramCallback(NULL), - mReceiveIp6DatagramCallbackContext(NULL), - mIsReceiveIp6FilterEnabled(false), - mNetifListHead(NULL) + mMpl(aInstance) { } diff --git a/src/core/net/ip6.hpp b/src/core/net/ip6.hpp index c993437b8..3b57b3f80 100644 --- a/src/core/net/ip6.hpp +++ b/src/core/net/ip6.hpp @@ -334,6 +334,38 @@ public: */ const PriorityQueue &GetSendQueue(void) const { return mSendQueue; } + /** + * This method returns a reference to the IPv6 route management instance. + * + * @returns A reference to the route management instance. + * + */ + Routes &GetRoutes(void) { return mRoutes; } + + /** + * This method returns a reference to the ICMP6 controller instance. + * + * @returns A reference to the ICMP6 instance. + * + */ + Icmp &GetIcmp(void) { return mIcmp; } + + /** + * This method returns a reference to the UDP controller instance. + * + * @returns A reference to the UDP instance. + * + */ + Udp &GetUdp(void) { return mUdp; } + + /** + * This method returns a reference to the UDMPL message processing controller instance. + * + * @returns A reference to the Mpl instance. + * + */ + Mpl &GetMpl(void) { return mMpl; } + /** * This static method converts an `IpProto` enumeration to a string. * @@ -342,11 +374,6 @@ public: */ static const char *IpProtoToString(IpProto aIpProto); - Routes mRoutes; - Icmp mIcmp; - Udp mUdp; - Mpl mMpl; - private: static void HandleSendQueue(Tasklet &aTasklet); void HandleSendQueue(void); @@ -367,15 +394,19 @@ private: static Ip6 &GetOwner(const Context &aContext); bool mForwardingEnabled; + bool mIsReceiveIp6FilterEnabled; + otIp6ReceiveCallback mReceiveIp6DatagramCallback; + void *mReceiveIp6DatagramCallbackContext; + Netif *mNetifListHead; PriorityQueue mSendQueue; Tasklet mSendQueueTask; - otIp6ReceiveCallback mReceiveIp6DatagramCallback; - void *mReceiveIp6DatagramCallbackContext; - bool mIsReceiveIp6FilterEnabled; + Routes mRoutes; + Icmp mIcmp; + Udp mUdp; + Mpl mMpl; - Netif *mNetifListHead; }; /** diff --git a/src/core/net/ip6_mpl.cpp b/src/core/net/ip6_mpl.cpp index b46c3e64d..b146600f3 100644 --- a/src/core/net/ip6_mpl.cpp +++ b/src/core/net/ip6_mpl.cpp @@ -55,11 +55,11 @@ void MplBufferedMessageMetadata::GenerateNextTransmissionTime(uint32_t aCurrentT Mpl::Mpl(otInstance &aInstance): InstanceLocator(aInstance), - mSeedSetTimer(aInstance, &Mpl::HandleSeedSetTimer, this), - mRetransmissionTimer(aInstance, &Mpl::HandleRetransmissionTimer, this), mTimerExpirations(0), mSequence(0), mSeedId(0), + mSeedSetTimer(aInstance, &Mpl::HandleSeedSetTimer, this), + mRetransmissionTimer(aInstance, &Mpl::HandleRetransmissionTimer, this), mMatchingAddress(NULL) { memset(mSeedSet, 0, sizeof(mSeedSet)); @@ -373,7 +373,7 @@ Mpl &Mpl::GetOwner(const Context &aContext) #if OPENTHREAD_ENABLE_MULTIPLE_INSTANCES Mpl &mpl = *static_cast(aContext.GetContext()); #else - Mpl &mpl = otGetIp6().mMpl; + Mpl &mpl = otGetIp6().GetMpl(); OT_UNUSED_VARIABLE(aContext); #endif return mpl; diff --git a/src/core/net/ip6_mpl.hpp b/src/core/net/ip6_mpl.hpp index 94c6db75b..711f098b7 100644 --- a/src/core/net/ip6_mpl.hpp +++ b/src/core/net/ip6_mpl.hpp @@ -537,12 +537,13 @@ private: static Mpl &GetOwner(const Context &aContext); - TimerMilli mSeedSetTimer; - TimerMilli mRetransmissionTimer; - uint8_t mTimerExpirations; uint8_t mSequence; uint16_t mSeedId; + + TimerMilli mSeedSetTimer; + TimerMilli mRetransmissionTimer; + const Address *mMatchingAddress; MplSeedEntry mSeedSet[kNumSeedEntries]; diff --git a/src/core/thread/address_resolver.cpp b/src/core/thread/address_resolver.cpp index 71ec4517b..fe31e2ac1 100644 --- a/src/core/thread/address_resolver.cpp +++ b/src/core/thread/address_resolver.cpp @@ -70,7 +70,7 @@ AddressResolver::AddressResolver(otInstance &aInstance) : GetNetif().GetCoap().AddResource(mAddressQuery); GetNetif().GetCoap().AddResource(mAddressNotification); - GetNetif().GetIp6().mIcmp.RegisterHandler(mIcmpHandler); + GetNetif().GetIp6().GetIcmp().RegisterHandler(mIcmpHandler); } void AddressResolver::Clear() diff --git a/src/core/thread/data_poll_manager.cpp b/src/core/thread/data_poll_manager.cpp index 40d934fbe..213d5dc02 100644 --- a/src/core/thread/data_poll_manager.cpp +++ b/src/core/thread/data_poll_manager.cpp @@ -51,10 +51,10 @@ namespace ot { DataPollManager::DataPollManager(otInstance &aInstance): InstanceLocator(aInstance), - mTimer(aInstance, &DataPollManager::HandlePollTimer, this), mTimerStartTime(0), mExternalPollPeriod(0), mPollPeriod(0), + mTimer(aInstance, &DataPollManager::HandlePollTimer, this), mEnabled(false), mAttachMode(false), mRetxMode(false), diff --git a/src/core/thread/data_poll_manager.hpp b/src/core/thread/data_poll_manager.hpp index 7cc5315f8..3731a855c 100644 --- a/src/core/thread/data_poll_manager.hpp +++ b/src/core/thread/data_poll_manager.hpp @@ -222,11 +222,12 @@ private: static DataPollManager &GetOwner(Context &aContext); uint32_t GetDefaultPollPeriod(void) const; - TimerMilli mTimer; uint32_t mTimerStartTime; uint32_t mExternalPollPeriod; uint32_t mPollPeriod; + TimerMilli mTimer; + bool mEnabled: 1; //< Indicates whether data polling is enabled/started. bool mAttachMode: 1; //< Indicates whether in attach mode (to use attach poll period). bool mRetxMode: 1; //< Indicates whether last poll tx failed at mac/radio layer (poll retx mode). diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 1e3bb71ea..ae5618a3c 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -81,7 +81,7 @@ Mle::Mle(otInstance &aInstance) : mChildUpdateAttempts(0), mParentLinkMargin(0), mParentIsSingleton(false), - mSocket(aInstance.mThreadNetif.GetIp6().mUdp), + mSocket(aInstance.mThreadNetif.GetIp6().GetUdp()), mTimeout(kMleEndDeviceTimeout), mSendChildUpdateRequest(aInstance, &Mle::HandleSendChildUpdateRequest, this), mDiscoverHandler(NULL), @@ -154,7 +154,7 @@ Mle::Mle(otInstance &aInstance) : mMeshLocal16.mRloc = true; // Store RLOC address reference in MPL module. - GetNetif().GetIp6().mMpl.SetMatchingAddress(mMeshLocal16.GetAddress()); + GetNetif().GetIp6().GetMpl().SetMatchingAddress(mMeshLocal16.GetAddress()); // link-local all thread nodes mLinkLocalAllThreadNodes.GetAddress().mFields.m16[0] = HostSwap16(0xff32); @@ -583,7 +583,7 @@ otError Mle::SetStateDetached(void) netif.GetMac().SetBeaconEnabled(false); netif.GetMle().HandleDetachStart(); netif.GetIp6().SetForwardingEnabled(false); - netif.GetIp6().mMpl.SetTimerExpirations(0); + netif.GetIp6().GetMpl().SetTimerExpirations(0); otLogInfoMle(GetInstance(), "Role -> Detached"); return OT_ERROR_NONE; @@ -624,7 +624,7 @@ otError Mle::SetStateChild(uint16_t aRloc16) netif.GetNetworkDataLocal().ClearResubmitDelayTimer(); #endif netif.GetIp6().SetForwardingEnabled(false); - netif.GetIp6().mMpl.SetTimerExpirations(kMplChildDataMessageTimerExpirations); + netif.GetIp6().GetMpl().SetTimerExpirations(kMplChildDataMessageTimerExpirations); // Once the Thread device receives the new Active Commissioning Dataset, the device MUST // transmit its own Announce messages on the channel it was on prior to the attachment. @@ -801,7 +801,7 @@ otError Mle::SetRloc16(uint16_t aRloc16) } netif.GetMac().SetShortAddress(aRloc16); - netif.GetIp6().mMpl.SetSeedId(aRloc16); + netif.GetIp6().GetMpl().SetSeedId(aRloc16); return OT_ERROR_NONE; } @@ -3291,9 +3291,9 @@ otError Mle::CheckReachability(uint16_t aMeshSource, uint16_t aMeshDest, Ip6::He messageInfo.GetPeerAddr().mFields.m16[7] = HostSwap16(aMeshSource); messageInfo.SetInterfaceId(netif.GetInterfaceId()); - netif.GetIp6().mIcmp.SendError(Ip6::IcmpHeader::kTypeDstUnreach, - Ip6::IcmpHeader::kCodeDstUnreachNoRoute, - messageInfo, aIp6Header); + netif.GetIp6().GetIcmp().SendError(Ip6::IcmpHeader::kTypeDstUnreach, + Ip6::IcmpHeader::kCodeDstUnreachNoRoute, + messageInfo, aIp6Header); exit: return error; diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 887896e41..bc708c3cb 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -441,7 +441,7 @@ otError MleRouter::SetStateRouter(uint16_t aRloc16) netif.GetNetworkDataLeader().Stop(); mStateUpdateTimer.Start(kStateUpdatePeriod); netif.GetIp6().SetForwardingEnabled(true); - netif.GetIp6().mMpl.SetTimerExpirations(kMplRouterDataMessageTimerExpirations); + netif.GetIp6().GetMpl().SetTimerExpirations(kMplRouterDataMessageTimerExpirations); netif.GetMac().SetBeaconEnabled(true); for (int i = 0; i < mMaxChildrenAllowed; i++) @@ -485,7 +485,7 @@ otError MleRouter::SetStateLeader(uint16_t aRloc16) netif.GetCoap().AddResource(mAddressSolicit); netif.GetCoap().AddResource(mAddressRelease); netif.GetIp6().SetForwardingEnabled(true); - netif.GetIp6().mMpl.SetTimerExpirations(kMplRouterDataMessageTimerExpirations); + netif.GetIp6().GetMpl().SetTimerExpirations(kMplRouterDataMessageTimerExpirations); netif.GetMac().SetBeaconEnabled(true); for (int i = 0; i < mMaxChildrenAllowed; i++) @@ -3920,9 +3920,9 @@ otError MleRouter::CheckReachability(uint16_t aMeshSource, uint16_t aMeshDest, I messageInfo.GetPeerAddr().mFields.m16[7] = HostSwap16(aMeshSource); messageInfo.SetInterfaceId(netif.GetInterfaceId()); - netif.GetIp6().mIcmp.SendError(Ip6::IcmpHeader::kTypeDstUnreach, - Ip6::IcmpHeader::kCodeDstUnreachNoRoute, - messageInfo, aIp6Header); + netif.GetIp6().GetIcmp().SendError(Ip6::IcmpHeader::kTypeDstUnreach, + Ip6::IcmpHeader::kCodeDstUnreachNoRoute, + messageInfo, aIp6Header); return OT_ERROR_DROP; } diff --git a/src/core/utils/child_supervision.cpp b/src/core/utils/child_supervision.cpp index 5be49e136..3e25fcd4c 100644 --- a/src/core/utils/child_supervision.cpp +++ b/src/core/utils/child_supervision.cpp @@ -50,8 +50,8 @@ namespace Utils { ChildSupervisor::ChildSupervisor(otInstance &aInstance) : InstanceLocator(aInstance), - mTimer(aInstance, &ChildSupervisor::HandleTimer, this), - mSupervisionInterval(kDefaultSupervisionInterval) + mSupervisionInterval(kDefaultSupervisionInterval), + mTimer(aInstance, &ChildSupervisor::HandleTimer, this) { } @@ -180,8 +180,8 @@ ChildSupervisor &ChildSupervisor::GetOwner(const Context &aContext) SupervisionListener::SupervisionListener(otInstance &aInstance) : InstanceLocator(aInstance), - mTimer(aInstance, &SupervisionListener::HandleTimer, this), - mTimeout(0) + mTimeout(0), + mTimer(aInstance, &SupervisionListener::HandleTimer, this) { SetTimeout(kDefaultTimeout); } diff --git a/src/core/utils/child_supervision.hpp b/src/core/utils/child_supervision.hpp index da76f107c..c6d45ccf6 100644 --- a/src/core/utils/child_supervision.hpp +++ b/src/core/utils/child_supervision.hpp @@ -159,8 +159,8 @@ private: void HandleTimer(void); static ChildSupervisor &GetOwner(const Context &aContext); - TimerMilli mTimer; uint16_t mSupervisionInterval; + TimerMilli mTimer; }; #else // #if OPENTHREAD_ENABLE_CHILD_SUPERVISION && OPENTHREAD_FTD @@ -251,8 +251,8 @@ private: void HandleTimer(void); static SupervisionListener &GetOwner(const Context &aContext); - TimerMilli mTimer; uint16_t mTimeout; + TimerMilli mTimer; }; #else // #if OPENTHREAD_ENABLE_CHILD_SUPERVISION