From 2ba99338828380cab2375030928e601d4ed39ff3 Mon Sep 17 00:00:00 2001 From: rongli Date: Fri, 7 Apr 2017 00:56:31 +0800 Subject: [PATCH] not configure discovery scan duration (#1502) --- examples/drivers/windows/otApi/otApi.cpp | 3 +-- examples/drivers/windows/otLwf/iocontrol.c | 6 ++---- include/openthread/thread.h | 4 +--- src/cli/cli.cpp | 2 +- src/core/api/thread_api.cpp | 5 ++--- src/core/meshcop/joiner.cpp | 2 +- src/core/thread/mesh_forwarder.cpp | 6 ++---- src/core/thread/mesh_forwarder.hpp | 4 +--- src/core/thread/mle.cpp | 6 +++--- src/core/thread/mle.hpp | 5 ++--- 10 files changed, 16 insertions(+), 27 deletions(-) diff --git a/examples/drivers/windows/otApi/otApi.cpp b/examples/drivers/windows/otApi/otApi.cpp index c1f615652..46215baa5 100644 --- a/examples/drivers/windows/otApi/otApi.cpp +++ b/examples/drivers/windows/otApi/otApi.cpp @@ -1334,7 +1334,6 @@ OTCALL otThreadDiscover( _In_ otInstance *aInstance, uint32_t aScanChannels, - uint16_t aScanDuration, uint16_t aPanid, otHandleActiveScanResult aCallback, void *aCallbackContext @@ -1347,7 +1346,7 @@ otThreadDiscover( aInstance->InterfaceGuid, aCallback, aCallbackContext ); - PackedBuffer4 Buffer(aInstance->InterfaceGuid, aScanChannels, aScanDuration, aPanid); + PackedBuffer3 Buffer(aInstance->InterfaceGuid, aScanChannels, aPanid); return DwordToThreadError(SendIOCTL(aInstance->ApiHandle, IOCTL_OTLWF_OT_DISCOVER, &Buffer, sizeof(Buffer), nullptr, 0)); } diff --git a/examples/drivers/windows/otLwf/iocontrol.c b/examples/drivers/windows/otLwf/iocontrol.c index 5aea5f664..105007ead 100644 --- a/examples/drivers/windows/otLwf/iocontrol.c +++ b/examples/drivers/windows/otLwf/iocontrol.c @@ -904,16 +904,14 @@ otLwfIoCtl_otDiscover( { NTSTATUS status = STATUS_INVALID_PARAMETER; - if (InBufferLength >= sizeof(uint32_t) + sizeof(uint16_t) + sizeof(uint16_t)) + if (InBufferLength >= sizeof(uint32_t) + sizeof(uint16_t)) { uint32_t aScanChannels = *(uint32_t*)InBuffer; - uint16_t aScanDuration = *(uint16_t*)(InBuffer + sizeof(uint32_t)); - uint16_t aPanid = *(uint16_t*)(InBuffer + sizeof(uint32_t) + sizeof(uint16_t)); + uint16_t aPanid = *(uint16_t*)(InBuffer + sizeof(uint32_t)); status = ThreadErrorToNtstatus( otThreadDiscover( pFilter->otCtx, aScanChannels, - aScanDuration, aPanid, otLwfDiscoverCallback, pFilter) diff --git a/include/openthread/thread.h b/include/openthread/thread.h index e55d3e381..961167ce0 100644 --- a/include/openthread/thread.h +++ b/include/openthread/thread.h @@ -114,7 +114,6 @@ OTAPI bool OTCALL otThreadIsSingleton(otInstance *aInstance); * * @param[in] aInstance A pointer to an OpenThread instance. * @param[in] aScanChannels A bit vector indicating which channels to scan (e.g. OT_CHANNEL_11_MASK). - * @param[in] aScanDuration The time in milliseconds to spend scanning each channel. * @param[in] aPanId The PAN ID filter (set to Broadcast PAN to disable filter). * @param[in] aCallback A pointer to a function called on receiving an MLE Discovery Response or scan completes. * @param[in] aCallbackContext A pointer to application-specific context. @@ -123,8 +122,7 @@ OTAPI bool OTCALL otThreadIsSingleton(otInstance *aInstance); * @retval kThreadError_Busy Already performing an Thread Discovery. * */ -OTAPI ThreadError OTCALL otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aScanDuration, - uint16_t aPanid, +OTAPI ThreadError OTCALL otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aPanid, otHandleActiveScanResult aCallback, void *aCallbackContext); /** diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index e150e2343..c6a01169f 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -709,7 +709,7 @@ void Interpreter::ProcessDiscover(int argc, char *argv[]) scanChannels = 1 << value; } - SuccessOrExit(error = otThreadDiscover(mInstance, scanChannels, 0, OT_PANID_BROADCAST, + SuccessOrExit(error = otThreadDiscover(mInstance, scanChannels, OT_PANID_BROADCAST, &Interpreter::s_HandleActiveScanResult, this)); sServer->OutputFormat("| J | Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI |\r\n"); sServer->OutputFormat("+---+------------------+------------------+------+------------------+----+-----+-----+\r\n"); diff --git a/src/core/api/thread_api.cpp b/src/core/api/thread_api.cpp index 348c765f6..51d46c480 100644 --- a/src/core/api/thread_api.cpp +++ b/src/core/api/thread_api.cpp @@ -652,11 +652,10 @@ bool otThreadIsSingleton(otInstance *aInstance) return aInstance->mThreadNetif.GetMle().IsSingleton(); } -ThreadError otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aScanDuration, uint16_t aPanId, +ThreadError otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aPanId, otHandleActiveScanResult aCallback, void *aCallbackContext) { - return aInstance->mThreadNetif.GetMle().Discover(aScanChannels, aScanDuration, aPanId, false, - aCallback, aCallbackContext); + return aInstance->mThreadNetif.GetMle().Discover(aScanChannels, aPanId, false, aCallback, aCallbackContext); } bool otThreadIsDiscoverInProgress(otInstance *aInstance) diff --git a/src/core/meshcop/joiner.cpp b/src/core/meshcop/joiner.cpp index 69813e553..65a57177c 100644 --- a/src/core/meshcop/joiner.cpp +++ b/src/core/meshcop/joiner.cpp @@ -114,7 +114,7 @@ ThreadError Joiner::Start(const char *aPSKd, const char *aProvisioningUrl, SuccessOrExit(error); mJoinerRouterPanId = Mac::kPanIdBroadcast; - SuccessOrExit(error = mNetif.GetMle().Discover(0, 0, mNetif.GetMac().GetPanId(), true, HandleDiscoverResult, this)); + SuccessOrExit(error = mNetif.GetMle().Discover(0, mNetif.GetMac().GetPanId(), true, HandleDiscoverResult, this)); mVendorName = aVendorName; mVendorModel = aVendorModel; diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index eb56615b0..89f20f434 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -74,7 +74,6 @@ MeshForwarder::MeshForwarder(ThreadNetif &aThreadNetif): mScheduleTransmissionTask(aThreadNetif.GetIp6().mTaskletScheduler, ScheduleTransmissionTask, this), mEnabled(false), mScanChannels(0), - mScanDuration(0), mScanChannel(0), mRestoreChannel(0), mRestorePanId(Mac::kPanIdBroadcast), @@ -1620,7 +1619,7 @@ void MeshForwarder::HandleSentFrame(Mac::Frame &aFrame, ThreadError aError) if (mSendMessage->GetSubType() == Message::kSubTypeMleDiscoverRequest) { mSendBusy = true; - mDiscoverTimer.Start(mScanDuration); + mDiscoverTimer.Start(static_cast(Mac::kScanDurationDefault)); ExitNow(); } } @@ -1661,10 +1660,9 @@ exit: } } -void MeshForwarder::SetDiscoverParameters(uint32_t aScanChannels, uint16_t aScanDuration) +void MeshForwarder::SetDiscoverParameters(uint32_t aScanChannels) { mScanChannels = (aScanChannels == 0) ? static_cast(Mac::kScanChannelsAll) : aScanChannels; - mScanDuration = (aScanDuration == 0) ? static_cast(Mac::kScanDurationDefault) : aScanDuration; } void MeshForwarder::HandleDiscoverTimer(void *aContext) diff --git a/src/core/thread/mesh_forwarder.hpp b/src/core/thread/mesh_forwarder.hpp index 3b71f9ece..97d36c56b 100644 --- a/src/core/thread/mesh_forwarder.hpp +++ b/src/core/thread/mesh_forwarder.hpp @@ -151,10 +151,9 @@ public: * This method sets the scan parameters for MLE Discovery Request messages. * * @param[in] aScanChannels A bit vector indicating which channels to scan. - * @param[in] aScanDuration The time in milliseconds to spend scanning each channel. * */ - void SetDiscoverParameters(uint32_t aScanChannels, uint16_t aScanDuration); + void SetDiscoverParameters(uint32_t aScanChannels); /** * This method frees any indirect messages queued for a specific child. @@ -321,7 +320,6 @@ private: bool mEnabled; uint32_t mScanChannels; - uint16_t mScanDuration; uint8_t mScanChannel; uint8_t mRestoreChannel; uint16_t mRestorePanId; diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index df13048f2..a50d655c2 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -375,8 +375,8 @@ exit: return error; } -ThreadError Mle::Discover(uint32_t aScanChannels, uint16_t aScanDuration, uint16_t aPanId, bool aJoiner, - DiscoverHandler aCallback, void *aContext) +ThreadError Mle::Discover(uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, DiscoverHandler aCallback, + void *aContext) { ThreadError error = kThreadError_None; Message *message = NULL; @@ -389,7 +389,7 @@ ThreadError Mle::Discover(uint32_t aScanChannels, uint16_t aScanDuration, uint16 mDiscoverHandler = aCallback; mDiscoverContext = aContext; - mNetif.GetMeshForwarder().SetDiscoverParameters(aScanChannels, aScanDuration); + mNetif.GetMeshForwarder().SetDiscoverParameters(aScanChannels); VerifyOrExit((message = NewMleMessage()) != NULL); message->SetSubType(Message::kSubTypeMleDiscoverRequest); diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp index 9bb1a198f..7f7382dc2 100644 --- a/src/core/thread/mle.hpp +++ b/src/core/thread/mle.hpp @@ -539,7 +539,6 @@ public: * This method initiates a Thread Discovery. * * @param[in] aScanChannels A bit vector indicating which channels to scan. - * @param[in] aScanDuration The time in milliseconds to spend scanning each channel. * @param[in] aPanId The PAN ID filter (set to Broadcast PAN to disable filter). * @param[in] aJoiner Value of the Joiner Flag in the Discovery Request TLV. * @param[in] aHandler A pointer to a function that is called on receiving an MLE Discovery Response. @@ -549,8 +548,8 @@ public: * @retval kThreadError_Busy Thread Discovery is already in progress. * */ - ThreadError Discover(uint32_t aScanChannels, uint16_t aScanDuration, uint16_t aPanId, bool aJoiner, - DiscoverHandler aCallback, void *aContext); + ThreadError Discover(uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, DiscoverHandler aCallback, + void *aContext); /** * This method indicates whether or not an MLE Thread Discovery is currently in progress.