diff --git a/examples/apps/cli/README.md b/examples/apps/cli/README.md index 284ec6f2c..12fcb2186 100644 --- a/examples/apps/cli/README.md +++ b/examples/apps/cli/README.md @@ -56,7 +56,6 @@ View IPv6 addresses assigned to Node 1's Thread interface: ```bash > ipaddr fdde:ad00:beef:0:0:ff:fe00:0 -fe80:0:0:0:0:ff:fe00:0 fdde:ad00:beef:0:558:f56b:d688:799 fe80:0:0:0:f3d9:2a82:c8d8:fe43 Done diff --git a/src/cli/README.md b/src/cli/README.md index 3ea742535..be9c26181 100644 --- a/src/cli/README.md +++ b/src/cli/README.md @@ -766,7 +766,6 @@ List all IPv6 addresses assigned to the Thread interface. ```bash > ipaddr fdde:ad00:beef:0:0:ff:fe00:0 -fe80:0:0:0:0:ff:fe00:0 fdde:ad00:beef:0:558:f56b:d688:799 fe80:0:0:0:f3d9:2a82:c8d8:fe43 Done diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index 5a2939728..df9a3f81f 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -1120,15 +1120,6 @@ ThreadError Mac::ProcessReceiveSecurity(Frame &aFrame, const Address &aSrcAddr, aFrame.SetSecurityValid(true); exit: - - if (error == kThreadError_Security) - { - for (Receiver *receiver = mReceiveHead; receiver; receiver = receiver->mNext) - { - receiver->HandleReceivedFrame(aFrame, error); - } - } - return error; } @@ -1292,7 +1283,7 @@ void Mac::ReceiveDoneTask(Frame *aFrame, ThreadError aError) for (Receiver *receiver = mReceiveHead; receiver; receiver = receiver->mNext) { - receiver->HandleReceivedFrame(*aFrame, kThreadError_None); + receiver->HandleReceivedFrame(*aFrame); } break; diff --git a/src/core/mac/mac.hpp b/src/core/mac/mac.hpp index 5b78221dc..89fe143e4 100644 --- a/src/core/mac/mac.hpp +++ b/src/core/mac/mac.hpp @@ -97,10 +97,9 @@ public: * * @param[in] aContext A pointer to arbitrary context information. * @param[in] aFrame A reference to the MAC frame. - * @param[in] aError Any errors that occurred during reception. * */ - typedef void (*ReceiveFrameHandler)(void *aContext, Frame &aFrame, ThreadError aError); + typedef void (*ReceiveFrameHandler)(void *aContext, Frame &aFrame); /** * This constructor creates a MAC receiver client. @@ -116,7 +115,7 @@ public: } private: - void HandleReceivedFrame(Frame &frame, ThreadError error) { mReceiveFrameHandler(mContext, frame, error); } + void HandleReceivedFrame(Frame &frame) { mReceiveFrameHandler(mContext, frame); } ReceiveFrameHandler mReceiveFrameHandler; void *mContext; diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index b53373251..1d3ad285f 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -1358,19 +1358,18 @@ exit: mScheduleTransmissionTask.Post(); } -void MeshForwarder::HandleReceivedFrame(void *aContext, Mac::Frame &aFrame, ThreadError aError) +void MeshForwarder::HandleReceivedFrame(void *aContext, Mac::Frame &aFrame) { - static_cast(aContext)->HandleReceivedFrame(aFrame, aError); + static_cast(aContext)->HandleReceivedFrame(aFrame); } -void MeshForwarder::HandleReceivedFrame(Mac::Frame &aFrame, ThreadError aError) +void MeshForwarder::HandleReceivedFrame(Mac::Frame &aFrame) { ThreadMessageInfo messageInfo; Mac::Address macDest; Mac::Address macSource; uint8_t *payload; uint8_t payloadLength; - Ip6::Address destination; uint8_t commandId; Child *child = NULL; ThreadError error = kThreadError_None; @@ -1385,32 +1384,6 @@ void MeshForwarder::HandleReceivedFrame(Mac::Frame &aFrame, ThreadError aError) } SuccessOrExit(error = aFrame.GetSrcAddr(macSource)); - - if (aError == kThreadError_Security) - { - memset(&destination, 0, sizeof(destination)); - destination.mFields.m16[0] = HostSwap16(0xfe80); - - switch (macSource.mLength) - { - case 2: - destination.mFields.m16[5] = HostSwap16(0x00ff); - destination.mFields.m16[6] = HostSwap16(0xfe00); - destination.mFields.m16[7] = HostSwap16(macSource.mShortAddress); - break; - - case 8: - destination.SetIid(macSource.mExtAddress); - break; - - default: - ExitNow(error = kThreadError_Parse); - } - - mMle.SendLinkReject(destination); - ExitNow(error = kThreadError_Security); - } - SuccessOrExit(aFrame.GetDstAddr(macDest)); if ((child = mMle.GetChild(macSource)) != NULL) diff --git a/src/core/thread/mesh_forwarder.hpp b/src/core/thread/mesh_forwarder.hpp index e60d243be..748fb3566 100644 --- a/src/core/thread/mesh_forwarder.hpp +++ b/src/core/thread/mesh_forwarder.hpp @@ -200,8 +200,8 @@ private: ThreadError UpdateMeshRoute(Message &aMessage); ThreadError HandleDatagram(Message &aMessage, const ThreadMessageInfo &aMessageInfo); - static void HandleReceivedFrame(void *aContext, Mac::Frame &aFrame, ThreadError aError); - void HandleReceivedFrame(Mac::Frame &aFrame, ThreadError aError); + static void HandleReceivedFrame(void *aContext, Mac::Frame &aFrame); + void HandleReceivedFrame(Mac::Frame &aFrame); static ThreadError HandleFrameRequest(void *aContext, Mac::Frame &aFrame); ThreadError HandleFrameRequest(Mac::Frame &aFrame); diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 46236fd71..12652a006 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -86,7 +86,6 @@ Mle::Mle(ThreadNetif &aThreadNetif) : memset(&mParent, 0, sizeof(mParent)); memset(&mChildIdRequest, 0, sizeof(mChildIdRequest)); memset(&mLinkLocal64, 0, sizeof(mLinkLocal64)); - memset(&mLinkLocal16, 0, sizeof(mLinkLocal16)); memset(&mMeshLocal64, 0, sizeof(mMeshLocal64)); memset(&mMeshLocal16, 0, sizeof(mMeshLocal16)); memset(&mLinkLocalAllThreadNodes, 0, sizeof(mLinkLocalAllThreadNodes)); @@ -101,15 +100,6 @@ Mle::Mle(ThreadNetif &aThreadNetif) : mLinkLocal64.mValidLifetime = 0xffffffff; mNetif.AddUnicastAddress(mLinkLocal64); - // link-local 16 - memset(&mLinkLocal16, 0, sizeof(mLinkLocal16)); - mLinkLocal16.GetAddress().mFields.m16[0] = HostSwap16(0xfe80); - mLinkLocal16.GetAddress().mFields.m16[5] = HostSwap16(0x00ff); - mLinkLocal16.GetAddress().mFields.m16[6] = HostSwap16(0xfe00); - mLinkLocal16.mPrefixLength = 64; - mLinkLocal16.mPreferredLifetime = 0xffffffff; - mLinkLocal16.mValidLifetime = 0xffffffff; - // Leader Aloc memset(&mLeaderAloc, 0, sizeof(mLeaderAloc)); mLeaderAloc.mPrefixLength = 128; @@ -244,7 +234,6 @@ ThreadError Mle::Stop(bool aClearNetworkDatasets) otLogFuncEntry(); mKeyManager.Stop(); SetStateDetached(); - mNetif.RemoveUnicastAddress(mLinkLocal16); mNetif.RemoveUnicastAddress(mMeshLocal16); if (mDeviceState == kDeviceStateLeader) @@ -596,19 +585,10 @@ uint16_t Mle::GetRloc16(void) const ThreadError Mle::SetRloc16(uint16_t aRloc16) { - mNetif.RemoveUnicastAddress(mLinkLocal16); mNetif.RemoveUnicastAddress(mMeshLocal16); if (aRloc16 != Mac::kShortAddrInvalid) { - // link-local 16 - // add link-local 16 only for sleepy end device - if ((mDeviceMode & ModeTlv::kModeRxOnWhenIdle) == 0) - { - mLinkLocal16.GetAddress().mFields.m16[7] = HostSwap16(aRloc16); - mNetif.AddUnicastAddress(mLinkLocal16); - } - // mesh-local 16 mMeshLocal16.GetAddress().mFields.m16[7] = HostSwap16(aRloc16); mNetif.AddUnicastAddress(mMeshLocal16); @@ -1825,10 +1805,6 @@ void Mle::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &aMessageIn mMleRouter.HandleLinkAcceptAndRequest(aMessage, aMessageInfo, keySequence); break; - case Header::kCommandLinkReject: - mMleRouter.HandleLinkReject(aMessage, aMessageInfo); - break; - case Header::kCommandAdvertisement: HandleAdvertisement(aMessage, aMessageInfo); break; diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp index 35cc13f41..5917d139e 100644 --- a/src/core/thread/mle.hpp +++ b/src/core/thread/mle.hpp @@ -1253,7 +1253,6 @@ private: Ip6::NetifUnicastAddress mLeaderAloc; - Ip6::NetifUnicastAddress mLinkLocal16; Ip6::NetifUnicastAddress mLinkLocal64; Ip6::NetifUnicastAddress mMeshLocal64; Ip6::NetifUnicastAddress mMeshLocal16; diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index a1f7def13..40f5a13b1 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -975,43 +975,6 @@ exit: return error; } -ThreadError MleRouter::SendLinkReject(const Ip6::Address &aDestination) -{ - ThreadError error = kThreadError_None; - Message *message; - - VerifyOrExit((message = NewMessage()) != NULL, ;); - message->SetLinkSecurityEnabled(false); - SuccessOrExit(error = AppendHeader(*message, Header::kCommandLinkReject)); - SuccessOrExit(error = AppendStatus(*message, StatusTlv::kError)); - - SuccessOrExit(error = SendMessage(*message, aDestination)); - - otLogInfoMle("Sent link reject"); - -exit: - - if (error != kThreadError_None && message != NULL) - { - message->Free(); - } - - return error; -} - -ThreadError MleRouter::HandleLinkReject(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo) -{ - Mac::ExtAddress macAddr; - - (void)aMessage; - - otLogInfoMle("Received link reject"); - - macAddr.Set(aMessageInfo.GetPeerAddr()); - - return kThreadError_None; -} - Child *MleRouter::NewChild(void) { for (int i = 0; i < mMaxChildrenAllowed; i++) diff --git a/src/core/thread/mle_router.hpp b/src/core/thread/mle_router.hpp index ece21e6eb..95f8bebdb 100644 --- a/src/core/thread/mle_router.hpp +++ b/src/core/thread/mle_router.hpp @@ -596,17 +596,6 @@ public: */ ThreadError CheckReachability(uint16_t aMeshSource, uint16_t aMeshDest, Ip6::Header &aIp6Header); - /** - * This method generates an MLE Link Reject. - * - * @param[in] aDestination A reference to the destination. - * - * @retval kThreadError_None Successfully generated the MLE Link Reject message. - * @retval kThreadError_NoBufs Insufficient buffers to generate the MLE Link Reject message. - * - */ - ThreadError SendLinkReject(const Ip6::Address &aDestination); - /** * This method checks if a given Router ID has correct value. * @@ -655,7 +644,6 @@ private: bool request); ThreadError HandleLinkAcceptAndRequest(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo, uint32_t aKeySequence); - ThreadError HandleLinkReject(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo); ThreadError HandleAdvertisement(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo); ThreadError HandleParentRequest(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo); ThreadError HandleChildIdRequest(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo,