diff --git a/examples/apps/cli/README.md b/examples/apps/cli/README.md index a18db68ee..42b096d8c 100644 --- a/examples/apps/cli/README.md +++ b/examples/apps/cli/README.md @@ -34,7 +34,7 @@ Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 -Security Policy: 0, onrcb +Security Policy: 0, onrc Done > dataset commit active Done diff --git a/include/openthread/dataset.h b/include/openthread/dataset.h index 6e899b1b2..a92f3a78c 100644 --- a/include/openthread/dataset.h +++ b/include/openthread/dataset.h @@ -152,7 +152,6 @@ typedef struct otSecurityPolicy bool mNativeCommissioningEnabled : 1; ///< Native Commissioning using PSKc is allowed bool mRoutersEnabled : 1; ///< Thread 1.0/1.1.x Routers are enabled bool mExternalCommissioningEnabled : 1; ///< External Commissioner authentication is allowed - bool mBeaconsEnabled : 1; ///< Thread 1.0/1.1.x Beacons are enabled bool mCommercialCommissioningEnabled : 1; ///< Commercial Commissioning is enabled bool mAutonomousEnrollmentEnabled : 1; ///< Autonomous Enrollment is enabled bool mNetworkKeyProvisioningEnabled : 1; ///< Network Key Provisioning is enabled diff --git a/include/openthread/instance.h b/include/openthread/instance.h index cc2fdeb92..8b2457196 100644 --- a/include/openthread/instance.h +++ b/include/openthread/instance.h @@ -53,7 +53,7 @@ extern "C" { * @note This number versions both OpenThread platform and user APIs. * */ -#define OPENTHREAD_API_VERSION (200) +#define OPENTHREAD_API_VERSION (201) /** * @addtogroup api-instance diff --git a/include/openthread/link.h b/include/openthread/link.h index 0a06150ad..4be9a79a7 100644 --- a/include/openthread/link.h +++ b/include/openthread/link.h @@ -379,18 +379,18 @@ typedef struct otMacCounters */ typedef struct otActiveScanResult { - otExtAddress mExtAddress; ///< IEEE 802.15.4 Extended Address - otNetworkName mNetworkName; ///< Thread Network Name - otExtendedPanId mExtendedPanId; ///< Thread Extended PAN ID - otSteeringData mSteeringData; ///< Steering Data - uint16_t mPanId; ///< IEEE 802.15.4 PAN ID - uint16_t mJoinerUdpPort; ///< Joiner UDP Port - uint8_t mChannel; ///< IEEE 802.15.4 Channel - int8_t mRssi; ///< RSSI (dBm) - uint8_t mLqi; ///< LQI - unsigned int mVersion : 4; ///< Version - bool mIsNative : 1; ///< Native Commissioner flag - bool mIsJoinable : 1; ///< Joining Permitted flag + otExtAddress mExtAddress; ///< IEEE 802.15.4 Extended Address + otNetworkName mNetworkName; ///< Thread Network Name + otExtendedPanId mExtendedPanId; ///< Thread Extended PAN ID + otSteeringData mSteeringData; ///< Steering Data + uint16_t mPanId; ///< IEEE 802.15.4 PAN ID + uint16_t mJoinerUdpPort; ///< Joiner UDP Port + uint8_t mChannel; ///< IEEE 802.15.4 Channel + int8_t mRssi; ///< RSSI (dBm) + uint8_t mLqi; ///< LQI + unsigned int mVersion : 4; ///< Version + bool mIsNative : 1; ///< Native Commissioner flag + bool mDiscover : 1; ///< Result from MLE Discovery } otActiveScanResult; /** diff --git a/src/cli/README.md b/src/cli/README.md index 17be9b28b..1d0696baf 100644 --- a/src/cli/README.md +++ b/src/cli/README.md @@ -2481,9 +2481,9 @@ Perform an IEEE 802.15.4 Active Scan. ```bash > scan -| J | Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI | -+---+------------------+------------------+------+------------------+----+-----+-----+ -| 0 | OpenThread | dead00beef00cafe | ffff | f1d92a82c8d8fe43 | 11 | -20 | 0 | +| PAN | MAC Address | Ch | dBm | LQI | ++------+------------------+----+-----+-----+ +| ffff | f1d92a82c8d8fe43 | 11 | -20 | 0 | Done ``` diff --git a/src/cli/README_COMMISSIONING.md b/src/cli/README_COMMISSIONING.md index 237b65d86..8262a8c5b 100644 --- a/src/cli/README_COMMISSIONING.md +++ b/src/cli/README_COMMISSIONING.md @@ -21,7 +21,7 @@ Form a network with the device that has Commissioner support. Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 - Security Policy: 0, onrcb + Security Policy: 0, onrc Done ``` @@ -107,7 +107,7 @@ Form a network with the device that has Commissioner support. Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 - Security Policy: 0, onrcb + Security Policy: 0, onrc Done ``` diff --git a/src/cli/README_DATASET.md b/src/cli/README_DATASET.md index a9f678f0d..4c3657923 100644 --- a/src/cli/README_DATASET.md +++ b/src/cli/README_DATASET.md @@ -44,7 +44,7 @@ The Pending Operational Dataset is used to communicate changes to the Active Ope Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 - Security Policy: 0, onrcb + Security Policy: 0, onrc Done ``` @@ -103,7 +103,7 @@ After the device successfully attaches to a Thread network, the device will retr Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 - Security Policy: 0, onrcb + Security Policy: 0, onrc Done ``` @@ -180,7 +180,7 @@ Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 -Security Policy: 0, onrcb +Security Policy: 0, onrc Done ``` @@ -359,7 +359,7 @@ Usage: `dataset mgmtsetcommand [TLV Type list] [-x]` Send MGMT_ACTIVE_SET or MGMT_PENDING_SET. ```bash -> dataset mgmtsetcommand active activetimestamp 123 securitypolicy 1 onrcb +> dataset mgmtsetcommand active activetimestamp 123 securitypolicy 1 onrc Done ``` @@ -441,7 +441,7 @@ Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 -Security Policy: 0, onrcb +Security Policy: 0, onrc Done ``` @@ -503,7 +503,7 @@ Get security policy. ```bash > dataset securitypolicy -672 onrcb +672 onrc Done ``` @@ -520,7 +520,7 @@ Set security policy. - R: Non-CCM routers are allowed in Thread 1.2 CCM networks. ```bash -> dataset securitypolicy 672 onrcb +> dataset securitypolicy 672 onrc Done ``` diff --git a/src/cli/README_NETDATA.md b/src/cli/README_NETDATA.md index b119de193..68c3b43f7 100644 --- a/src/cli/README_NETDATA.md +++ b/src/cli/README_NETDATA.md @@ -27,7 +27,7 @@ Border Router and service information may be stable or temporary. Stable Thread Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 - Security Policy: 0, onrcb + Security Policy: 0, onrc Done ``` diff --git a/src/cli/README_SRP.md b/src/cli/README_SRP.md index 645f44f91..a0ab5ba81 100644 --- a/src/cli/README_SRP.md +++ b/src/cli/README_SRP.md @@ -25,7 +25,7 @@ Network Key: 7fcbae4153cc2955c28440c15d4d4219 Network Name: OpenThread-f7af PAN ID: 0xf7af PSKc: b658e40f174e3a11be149b302ef07a0f -Security Policy: 672, onrcb +Security Policy: 672, onrc Done > dataset commit active Done diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index 35ff91190..3844d695e 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -1471,7 +1471,15 @@ template <> otError Interpreter::Process(Arg aArgs[]) SuccessOrExit(error = otThreadDiscover(GetInstancePtr(), scanChannels, OT_PANID_BROADCAST, false, false, &Interpreter::HandleActiveScanResult, this)); - OutputScanTableHeader(); + static const char *const kScanTableTitles[] = { + "Network Name", "Extended PAN", "PAN", "MAC Address", "Ch", "dBm", "LQI", + }; + + static const uint8_t kScanTableColumnWidths[] = { + 18, 18, 6, 18, 4, 5, 5, + }; + + OutputTableHeader(kScanTableTitles, kScanTableColumnWidths); error = OT_ERROR_PENDING; @@ -3898,7 +3906,11 @@ template <> otError Interpreter::Process(Arg aArgs[]) } else { - OutputScanTableHeader(); + static const char *const kScanTableTitles[] = {"PAN", "MAC Address", "Ch", "dBm", "LQI"}; + static const uint8_t kScanTableColumnWidths[] = {6, 18, 4, 5, 5}; + + OutputTableHeader(kScanTableTitles, kScanTableColumnWidths); + SuccessOrExit(error = otLinkActiveScan(GetInstancePtr(), scanChannels, scanDuration, &Interpreter::HandleActiveScanResult, this)); } @@ -3909,19 +3921,6 @@ exit: return error; } -void Interpreter::OutputScanTableHeader(void) -{ - static const char *const kScanTableTitles[] = { - "J", "Network Name", "Extended PAN", "PAN", "MAC Address", "Ch", "dBm", "LQI", - }; - - static const uint8_t kScanTableColumnWidths[] = { - 3, 18, 18, 6, 18, 4, 5, 5, - }; - - OutputTableHeader(kScanTableTitles, kScanTableColumnWidths); -} - void Interpreter::HandleActiveScanResult(otActiveScanResult *aResult, void *aContext) { static_cast(aContext)->HandleActiveScanResult(aResult); @@ -3935,13 +3934,14 @@ void Interpreter::HandleActiveScanResult(otActiveScanResult *aResult) ExitNow(); } - OutputFormat("| %d ", aResult->mIsJoinable); + if (aResult->mDiscover) + { + OutputFormat("| %-16s ", aResult->mNetworkName.m8); - OutputFormat("| %-16s ", aResult->mNetworkName.m8); - - OutputFormat("| "); - OutputBytes(aResult->mExtendedPanId.m8); - OutputFormat(" "); + OutputFormat("| "); + OutputBytes(aResult->mExtendedPanId.m8); + OutputFormat(" "); + } OutputFormat("| %04x | ", aResult->mPanId); OutputExtAddress(aResult->mExtAddress); diff --git a/src/cli/cli.hpp b/src/cli/cli.hpp index bc15dfa89..90144d196 100644 --- a/src/cli/cli.hpp +++ b/src/cli/cli.hpp @@ -377,7 +377,6 @@ private: static void HandlePingReply(const otPingSenderReply *aReply, void *aContext); static void HandlePingStatistics(const otPingSenderStatistics *aStatistics, void *aContext); #endif - void OutputScanTableHeader(void); static void HandleActiveScanResult(otActiveScanResult *aResult, void *aContext); static void HandleEnergyScanResult(otEnergyScanResult *aResult, void *aContext); static void HandleLinkPcapReceive(const otRadioFrame *aFrame, bool aIsTx, void *aContext); diff --git a/src/cli/cli_dataset.cpp b/src/cli/cli_dataset.cpp index 29f3361c1..efade0586 100644 --- a/src/cli/cli_dataset.cpp +++ b/src/cli/cli_dataset.cpp @@ -711,11 +711,6 @@ void Dataset::OutputSecurityPolicy(const otSecurityPolicy &aSecurityPolicy) OutputFormat("c"); } - if (aSecurityPolicy.mBeaconsEnabled) - { - OutputFormat("b"); - } - if (aSecurityPolicy.mCommercialCommissioningEnabled) { OutputFormat("C"); @@ -771,10 +766,6 @@ otError Dataset::ParseSecurityPolicy(otSecurityPolicy &aSecurityPolicy, Arg *&aA policy.mExternalCommissioningEnabled = true; break; - case 'b': - policy.mBeaconsEnabled = true; - break; - case 'C': policy.mCommercialCommissioningEnabled = true; break; diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index f8d7c9690..b3edb5a40 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -224,11 +224,8 @@ bool Mac::IsInTransmitState(void) const Error Mac::ConvertBeaconToActiveScanResult(const RxFrame *aBeaconFrame, ActiveScanResult &aResult) { - Error error = kErrorNone; - Address address; - const Beacon * beacon = nullptr; - const BeaconPayload *beaconPayload = nullptr; - uint16_t payloadLength; + Error error = kErrorNone; + Address address; memset(&aResult, 0, sizeof(ActiveScanResult)); @@ -248,22 +245,7 @@ Error Mac::ConvertBeaconToActiveScanResult(const RxFrame *aBeaconFrame, ActiveSc aResult.mRssi = aBeaconFrame->GetRssi(); aResult.mLqi = aBeaconFrame->GetLqi(); - payloadLength = aBeaconFrame->GetPayloadLength(); - - beacon = reinterpret_cast(aBeaconFrame->GetPayload()); - beaconPayload = reinterpret_cast(beacon->GetPayload()); - - if ((payloadLength >= (sizeof(*beacon) + sizeof(*beaconPayload))) && beacon->IsValid() && beaconPayload->IsValid()) - { - aResult.mVersion = beaconPayload->GetProtocolVersion(); - aResult.mIsJoinable = beaconPayload->IsJoiningPermitted(); - aResult.mIsNative = beaconPayload->IsNative(); - IgnoreError(AsCoreType(&aResult.mNetworkName).Set(beaconPayload->GetNetworkName())); - VerifyOrExit(IsValidUtf8String(aResult.mNetworkName.m8), error = kErrorParse); - aResult.mExtendedPanId = beaconPayload->GetExtendedPanId(); - } - - LogBeacon("Received", *beaconPayload); + LogBeacon("Received"); exit: return error; @@ -797,11 +779,9 @@ TxFrame *Mac::PrepareBeaconRequest(void) TxFrame *Mac::PrepareBeacon(void) { - TxFrame * frame; - uint8_t beaconLength; - uint16_t fcf; - Beacon * beacon = nullptr; - BeaconPayload *beaconPayload = nullptr; + TxFrame *frame; + uint16_t fcf; + Beacon * beacon = nullptr; #if OPENTHREAD_CONFIG_MULTI_RADIO OT_ASSERT(!mTxBeaconRadioLinks.IsEmpty()); @@ -818,32 +798,8 @@ TxFrame *Mac::PrepareBeacon(void) beacon = reinterpret_cast(frame->GetPayload()); beacon->Init(); - beaconLength = sizeof(*beacon); - beaconPayload = reinterpret_cast(beacon->GetPayload()); - - if (Get().GetSecurityPolicy().mBeaconsEnabled) - { - beaconPayload->Init(); - - if (IsJoinable()) - { - beaconPayload->SetJoiningPermitted(); - } - else - { - beaconPayload->ClearJoiningPermitted(); - } - - beaconPayload->SetNetworkName(mNetworkName.GetAsData()); - beaconPayload->SetExtendedPanId(mExtendedPanId); - - beaconLength += sizeof(*beaconPayload); - } - - frame->SetPayloadLength(beaconLength); - - LogBeacon("Sending", *beaconPayload); + LogBeacon("Sending"); return frame; } @@ -2276,9 +2232,9 @@ void Mac::LogFrameTxFailure(const TxFrame &aFrame, Error aError, uint8_t aRetryC } } -void Mac::LogBeacon(const char *aActionText, const BeaconPayload &aBeaconPayload) const +void Mac::LogBeacon(const char *aActionText) const { - LogInfo("%s Beacon, %s", aActionText, aBeaconPayload.ToInfoString().AsCString()); + LogInfo("%s Beacon", aActionText); } #else // #if OT_SHOULD_LOG_AT(OT_LOG_LEVEL_INFO) @@ -2287,7 +2243,7 @@ void Mac::LogFrameRxFailure(const RxFrame *, Error) const { } -void Mac::LogBeacon(const char *, const BeaconPayload &) const +void Mac::LogBeacon(const char *) const { } diff --git a/src/core/mac/mac.hpp b/src/core/mac/mac.hpp index abab9d517..34cc36e54 100644 --- a/src/core/mac/mac.hpp +++ b/src/core/mac/mac.hpp @@ -856,7 +856,7 @@ private: void LogFrameRxFailure(const RxFrame *aFrame, Error aError) const; void LogFrameTxFailure(const TxFrame &aFrame, Error aError, uint8_t aRetryCount, bool aWillRetx) const; - void LogBeacon(const char *aActionText, const BeaconPayload &aBeaconPayload) const; + void LogBeacon(const char *aActionText) const; #if OPENTHREAD_CONFIG_TIME_SYNC_ENABLE uint8_t GetTimeIeOffset(const Frame &aFrame); diff --git a/src/core/mac/mac_frame.cpp b/src/core/mac/mac_frame.cpp index 896a10d3a..2f0b1d18c 100644 --- a/src/core/mac/mac_frame.cpp +++ b/src/core/mac/mac_frame.cpp @@ -1447,19 +1447,6 @@ Frame::InfoString Frame::ToInfoString(void) const return string; } -BeaconPayload::InfoString BeaconPayload::ToInfoString(void) const -{ - NetworkName name; - InfoString string; - - IgnoreError(name.Set(GetNetworkName())); - - string.Append("name:%s, xpanid:%s, id:%d, ver:%d, joinable:%s, native:%s", name.GetAsCString(), - mExtendedPanId.ToString().AsCString(), GetProtocolId(), GetProtocolVersion(), - ToYesNo(IsJoiningPermitted()), ToYesNo(IsNative())); - return string; -} - #endif // #if OT_SHOULD_LOG_AT(OT_LOG_LEVEL_NOTE) // LCOV_EXCL_STOP diff --git a/src/core/mac/mac_frame.hpp b/src/core/mac/mac_frame.hpp index 79dec45b6..1c1a1a504 100644 --- a/src/core/mac/mac_frame.hpp +++ b/src/core/mac/mac_frame.hpp @@ -1482,161 +1482,6 @@ private: uint8_t mPendingAddressSpec; } OT_TOOL_PACKED_END; -/** - * This class implements IEEE 802.15.4 Beacon Payload generation and parsing. - * - */ -OT_TOOL_PACKED_BEGIN -class BeaconPayload -{ -public: - static constexpr uint8_t kProtocolId = 3; ///< Thread Protocol ID. - static constexpr uint8_t kProtocolVersion = 2; ///< Thread Protocol version. - static constexpr uint8_t kVersionOffset = 4; ///< Version field bit offset. - static constexpr uint8_t kVersionMask = 0xf << kVersionOffset; ///< Version field mask. - static constexpr uint8_t kNativeFlag = 1 << 3; ///< Native Commissioner flag. - static constexpr uint8_t kJoiningFlag = 1 << 0; ///< Joining Permitted flag. - - static constexpr uint16_t kInfoStringSize = 92; ///< Max chars for the info string (@sa ToInfoString()). - - /** - * This type defines the fixed-length `String` object returned from `ToInfoString()` method. - * - */ - typedef String InfoString; - - /** - * This method initializes the Beacon Payload. - * - */ - void Init(void) - { - mProtocolId = kProtocolId; - mFlags = kProtocolVersion << kVersionOffset; - } - - /** - * This method indicates whether or not the beacon appears to be a valid Thread Beacon Payload. - * - * @retval TRUE If the beacon appears to be a valid Thread Beacon Payload. - * @retval FALSE If the beacon does not appear to be a valid Thread Beacon Payload. - * - */ - bool IsValid(void) const { return (mProtocolId == kProtocolId); } - - /** - * This method returns the Protocol ID value. - * - * @returns the Protocol ID value. - * - */ - uint8_t GetProtocolId(void) const { return mProtocolId; } - - /** - * This method returns the Protocol Version value. - * - * @returns The Protocol Version value. - * - */ - uint8_t GetProtocolVersion(void) const { return mFlags >> kVersionOffset; } - - /** - * This method indicates whether or not the Native Commissioner flag is set. - * - * @retval TRUE If the Native Commissioner flag is set. - * @retval FALSE If the Native Commissioner flag is not set. - * - */ - bool IsNative(void) const { return (mFlags & kNativeFlag) != 0; } - - /** - * This method clears the Native Commissioner flag. - * - */ - void ClearNative(void) { mFlags &= ~kNativeFlag; } - - /** - * This method sets the Native Commissioner flag. - * - */ - void SetNative(void) { mFlags |= kNativeFlag; } - - /** - * This method indicates whether or not the Joining Permitted flag is set. - * - * @retval TRUE If the Joining Permitted flag is set. - * @retval FALSE If the Joining Permitted flag is not set. - * - */ - bool IsJoiningPermitted(void) const { return (mFlags & kJoiningFlag) != 0; } - - /** - * This method clears the Joining Permitted flag. - * - */ - void ClearJoiningPermitted(void) { mFlags &= ~kJoiningFlag; } - - /** - * This method sets the Joining Permitted flag. - * - */ - void SetJoiningPermitted(void) - { - mFlags |= kJoiningFlag; - -#if OPENTHREAD_CONFIG_MAC_JOIN_BEACON_VERSION != 2 // check against kProtocolVersion - mFlags &= ~kVersionMask; - mFlags |= OPENTHREAD_CONFIG_MAC_JOIN_BEACON_VERSION << kVersionOffset; -#endif - } - - /** - * This method gets the Network Name field. - * - * @returns The Network Name field as `NameData`. - * - */ - NameData GetNetworkName(void) const { return NameData(mNetworkName, sizeof(mNetworkName)); } - - /** - * This method sets the Network Name field. - * - * @param[in] aNameData The Network Name (as a `NameData`). - * - */ - void SetNetworkName(const NameData &aNameData) { aNameData.CopyTo(mNetworkName, sizeof(mNetworkName)); } - - /** - * This method returns the Extended PAN ID field. - * - * @returns The Extended PAN ID field. - * - */ - const ExtendedPanId &GetExtendedPanId(void) const { return mExtendedPanId; } - - /** - * This method sets the Extended PAN ID field. - * - * @param[in] aExtPanId An Extended PAN ID. - * - */ - void SetExtendedPanId(const ExtendedPanId &aExtPanId) { mExtendedPanId = aExtPanId; } - - /** - * This method returns information about the Beacon as a `InfoString`. - * - * @returns An `InfoString` representing the beacon payload. - * - */ - InfoString ToInfoString(void) const; - -private: - uint8_t mProtocolId; - uint8_t mFlags; - char mNetworkName[NetworkName::kMaxSize]; - ExtendedPanId mExtendedPanId; -} OT_TOOL_PACKED_END; - /** * This class implements CSL IE data structure. * diff --git a/src/core/thread/discover_scanner.cpp b/src/core/thread/discover_scanner.cpp index e9560213d..3a9fb9d8e 100644 --- a/src/core/thread/discover_scanner.cpp +++ b/src/core/thread/discover_scanner.cpp @@ -310,10 +310,11 @@ void DiscoverScanner::HandleDiscoveryResponse(const Message &aMessage, const Ip6 end = offset + tlv.GetLength(); memset(&result, 0, sizeof(result)); - result.mPanId = linkInfo->mPanId; - result.mChannel = linkInfo->mChannel; - result.mRssi = linkInfo->mRss; - result.mLqi = linkInfo->mLqi; + result.mDiscover = true; + result.mPanId = linkInfo->mPanId; + result.mChannel = linkInfo->mChannel; + result.mRssi = linkInfo->mRss; + result.mLqi = linkInfo->mLqi; aMessageInfo.GetPeerAddr().GetIid().ConvertToExtAddress(AsCoreType(&result.mExtAddress)); diff --git a/src/core/thread/key_manager.cpp b/src/core/thread/key_manager.cpp index a8a3944f7..067a0ef5c 100644 --- a/src/core/thread/key_manager.cpp +++ b/src/core/thread/key_manager.cpp @@ -72,7 +72,6 @@ void SecurityPolicy::SetToDefaultFlags(void) mNativeCommissioningEnabled = true; mRoutersEnabled = true; mExternalCommissioningEnabled = true; - mBeaconsEnabled = true; mCommercialCommissioningEnabled = false; mAutonomousEnrollmentEnabled = false; mNetworkKeyProvisioningEnabled = false; @@ -91,7 +90,6 @@ void SecurityPolicy::SetFlags(const uint8_t *aFlags, uint8_t aFlagsLength) mNativeCommissioningEnabled = aFlags[0] & kNativeCommissioningMask; mRoutersEnabled = aFlags[0] & kRoutersMask; mExternalCommissioningEnabled = aFlags[0] & kExternalCommissioningMask; - mBeaconsEnabled = aFlags[0] & kBeaconsMask; mCommercialCommissioningEnabled = (aFlags[0] & kCommercialCommissioningMask) == 0; mAutonomousEnrollmentEnabled = (aFlags[0] & kAutonomousEnrollmentMask) == 0; mNetworkKeyProvisioningEnabled = (aFlags[0] & kNetworkKeyProvisioningMask) == 0; @@ -131,11 +129,6 @@ void SecurityPolicy::GetFlags(uint8_t *aFlags, uint8_t aFlagsLength) const aFlags[0] |= kExternalCommissioningMask; } - if (mBeaconsEnabled) - { - aFlags[0] |= kBeaconsMask; - } - if (!mCommercialCommissioningEnabled) { aFlags[0] |= kCommercialCommissioningMask; diff --git a/src/ncp/ncp_base_mtd.cpp b/src/ncp/ncp_base_mtd.cpp index 2810a86c8..1f6e703e3 100644 --- a/src/ncp/ncp_base_mtd.cpp +++ b/src/ncp/ncp_base_mtd.cpp @@ -4221,11 +4221,6 @@ void NcpBase::HandleActiveScanResult(otActiveScanResult *aResult) { uint8_t flags = static_cast(aResult->mVersion << SPINEL_BEACON_THREAD_FLAG_VERSION_SHIFT); - if (aResult->mIsJoinable) - { - flags |= SPINEL_BEACON_THREAD_FLAG_JOINABLE; - } - if (aResult->mIsNative) { flags |= SPINEL_BEACON_THREAD_FLAG_NATIVE; diff --git a/tests/scripts/expect/cli-dataset.exp b/tests/scripts/expect/cli-dataset.exp index a660c44dd..0b753000a 100755 --- a/tests/scripts/expect/cli-dataset.exp +++ b/tests/scripts/expect/cli-dataset.exp @@ -102,10 +102,10 @@ expect_line "Done" send "dataset pskc\n" expect "00112233445566778899aabbccddeeff" expect_line "Done" -send "dataset securitypolicy 678 onrcb\n" +send "dataset securitypolicy 678 onrc\n" expect_line "Done" send "dataset securitypolicy\n" -expect "678 onrcb" +expect "678 onrc" expect_line "Done" send "dataset pendingtimestamp 100\n" expect_line "Done" @@ -135,7 +135,7 @@ expect "Network Key: aabbccddeeff00112233445566778899" expect "Network Name: OT-network" expect "PAN ID: 0xface" expect "PSKc: 00112233445566778899aabbccddeeff" -expect "Security Policy: 678 onrcb" +expect "Security Policy: 678 onrc" expect_line "Done" send "dataset pending -x\n" expect "dataset pending -x" @@ -161,7 +161,7 @@ expect "Network Key: aabbccddeeff00112233445566778899" expect "Network Name: OT-network" expect "PAN ID: 0xface" expect "PSKc: 00112233445566778899aabbccddeeff" -expect "Security Policy: 678 onrcb" +expect "Security Policy: 678 onrc" expect_line "Done" sleep 30 @@ -183,7 +183,7 @@ expect "Network Key: aabbccddeeff00112233445566778899" expect "Network Name: OT-network" expect "PAN ID: 0xface" expect "PSKc: 00112233445566778899aabbccddeeff" -expect "Security Policy: 678 onrcb" +expect "Security Policy: 678 onrc" expect_line "Done" send "dataset clear\n" expect_line "Done" @@ -203,7 +203,7 @@ expect "Network Key: aabbccddeeff00112233445566778899" expect "Network Name: OT-network" expect "PAN ID: 0xface" expect "PSKc: 00112233445566778899aabbccddeeff" -expect "Security Policy: 678 onrcb" +expect "Security Policy: 678 onrc" expect_line "Done" send "dataset init pending\n" expect "Error 23: NotFound" diff --git a/tests/scripts/expect/cli-networkname.exp b/tests/scripts/expect/cli-networkname.exp index 20c09c668..fc4edb140 100755 --- a/tests/scripts/expect/cli-networkname.exp +++ b/tests/scripts/expect/cli-networkname.exp @@ -43,7 +43,9 @@ wait_for "state" "leader" expect_line "Done" switch_node 2 -send "scan\n" +send "ifconfig up\n" +expect_line "Done" +send "discover\n" expect "Thread Network" expect_line "Done" @@ -58,7 +60,7 @@ wait_for "state" "leader" expect_line "Done" switch_node 2 -send "scan\n" +send "discover\n" expect "Thread 网络" expect_line "Done" @@ -73,7 +75,7 @@ wait_for "state" "leader" expect_line "Done" switch_node 2 -send "scan\n" +send "discover\n" expect "スレッド" expect_line "Done" diff --git a/tests/scripts/expect/cli-scan-discover.exp b/tests/scripts/expect/cli-scan-discover.exp index 3c1d193b3..78226c77d 100755 --- a/tests/scripts/expect/cli-scan-discover.exp +++ b/tests/scripts/expect/cli-scan-discover.exp @@ -60,9 +60,9 @@ expect_line "Done" switch_node 3 send "scan $channel\n" -expect "| J | Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI |" -expect "+---+------------------+------------------+------+------------------+----+-----+-----+" -wait_for "" "\\| \\d \\| $network +\\| $extpan \\| $pan \\| $extaddr \\| +$channel \\| +-?\\d+ \\| +\\d \\|" +expect "| PAN | MAC Address | Ch | dBm | LQI |" +expect "+------+------------------+----+-----+-----+" +wait_for "" "\\| $pan \\| $extaddr \\| +$channel \\| +-?\\d+ \\| +\\d \\|" wait_for "" "Done" send "scan energy 100\n" expect "| Ch | RSSI |" @@ -83,9 +83,9 @@ expect "Error 13: InvalidState" send "ifconfig up\n" expect_line "Done" send "discover $channel\n" -expect "| J | Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI |" -expect "+---+------------------+------------------+------+------------------+----+-----+-----+" -wait_for "" "\\| \\d \\| $network +\\| $extpan \\| $pan \\| $extaddr \\| +$channel \\| +-?\\d+ \\| +\\d \\|" +expect "| Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI |" +expect "+------------------+------------------+------+------------------+----+-----+-----+" +wait_for "" "\\| $network +\\| $extpan \\| $pan \\| $extaddr \\| +$channel \\| +-?\\d+ \\| +\\d \\|" wait_for "" "Done" send "discover something_invalid\n" expect "Error 7: InvalidArgs" diff --git a/tests/scripts/expect/posix-scan-tx-to-sleep.exp b/tests/scripts/expect/posix-scan-tx-to-sleep.exp index a613737df..2ac44a81f 100755 --- a/tests/scripts/expect/posix-scan-tx-to-sleep.exp +++ b/tests/scripts/expect/posix-scan-tx-to-sleep.exp @@ -49,17 +49,6 @@ expect "panid" expect -re {([0-9a-f]{4})} set pan $expect_out(1,string) expect_line "Done" -send "extpanid\n" -expect "extpanid" -expect -re {([0-9a-f]{16})} -set extpan $expect_out(1,string) -expect_line "Done" -expect "> " -send "networkname\n" -expect "networkname" -expect -re {[\r\n]([^\r\n]+)[\r\n]} -set network $expect_out(1,string) -expect_line "Done" send "channel\n" expect "channel" expect -re {(\d+)} @@ -68,9 +57,9 @@ expect_line "Done" spawn_node 2 "rcp" "spinel+hdlc+uart://$env(OT_SIMULATION_APPS)/ncp/ot-rcp?forkpty-arg=--sleep-to-tx&forkpty-arg=2" send "scan\n" -expect "| J | Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI |" -expect "+---+------------------+------------------+------+------------------+----+-----+-----+" -wait_for "" "\\| \\d \\| $network +\\| $extpan \\| $pan \\| $extaddr \\| +$channel \\| +-?\\d+ \\| +\\d \\|" +expect "| PAN | MAC Address | Ch | dBm | LQI |" +expect "+------+------------------+----+-----+-----+" +wait_for "" "\\| $pan \\| $extaddr \\| +$channel \\| +-?\\d+ \\| +\\d \\|" wait_for "" "Done" dispose_all diff --git a/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py b/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py index 2bf86741e..28dc68c92 100755 --- a/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py +++ b/tests/scripts/thread-cert/Cert_5_8_04_SecurityPolicyTLV.py @@ -77,7 +77,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): 'timestamp': 1, 'channel': 19, 'network_key': '00112233445566778899aabbccddeeff', - 'security_policy': [3600, 'onrcb'] + 'security_policy': [3600, 'onrc'] }, 'mode': 'rdn', }, @@ -87,7 +87,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): 'timestamp': 1, 'channel': 19, 'network_key': '00112233445566778899aabbccddeeff', - 'security_policy': [3600, 'onrcb'] + 'security_policy': [3600, 'onrc'] }, 'mode': 'rdn', 'allowlist': [LEADER] @@ -103,7 +103,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): 'timestamp': 1, 'channel': 19, 'network_key': '00112233445566778899aabbccddeeff', - 'security_policy': [3600, 'onrcb'] + 'security_policy': [3600, 'onrc'] }, 'mode': 'rdn', }, @@ -130,10 +130,10 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): self.simulator.go(5) # Step 5 - # Disabling O-Bit security_policy = [3600, 0b01111000] + # Disabling O-Bit security_policy = [3600, 0b01110000] self.nodes[COMMISSIONER_1].send_mgmt_active_set( active_timestamp=15, - security_policy=[3600, 'nrcb'], + security_policy=[3600, 'nrc'], ) self.simulator.go(5) @@ -143,10 +143,10 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): self.simulator.go(5) # Step 9 - # Disabling N-Bit security_policy = [3600, 0b10111000] + # Disabling N-Bit security_policy = [3600, 0b10110000] self.nodes[COMMISSIONER_1].send_mgmt_active_set( active_timestamp=20, - security_policy=[3600, 'orcb'], + security_policy=[3600, 'orc'], ) self.simulator.go(5) @@ -173,10 +173,10 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): self.simulator.go(20) # Step 17 - # Disabling R-Bit security_policy = [3600, 0b11011000] + # Disabling R-Bit security_policy = [3600, 0b11010000] self.nodes[COMMISSIONER_1].send_mgmt_active_set( active_timestamp=30, - security_policy=[3600, 'oncb'], + security_policy=[3600, 'onc'], ) self.simulator.go(5) @@ -209,7 +209,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): # 2.04 Changed # CoAP Payload # Security Policy TLV - # Bits “O”,”N”,”R”,”C”,”B” should be set to 1 + # Bits “O”,”N”,”R”,”C” should be set to 1 pkts.filter_wpan_src64(LEADER).\ filter_ipv6_dst(COMMISSIONER_1_RLOC).\ filter_coap_ack(MGMT_ACTIVE_GET_URI).\ @@ -217,9 +217,8 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): p.thread_meshcop.tlv.sec_policy_o == 1 and p.thread_meshcop.tlv.sec_policy_n == 1 and p.thread_meshcop.tlv.sec_policy_r == 1 and - p.thread_meshcop.tlv.sec_policy_c == 1 and - p.thread_meshcop.tlv.sec_policy_b == 1) or - (p.thread_meshcop.tlv.unknown == '0e10ff')).\ + p.thread_meshcop.tlv.sec_policy_c == 1) or + (p.thread_meshcop.tlv.unknown == '0e10f7')).\ must_next() # Step 5: Commissioner_1 sends MGMT_ACTIVE_SET.req to Leader @@ -239,7 +238,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): } == set(p.thread_meshcop.tlv.type) and\ p.thread_meshcop.tlv.active_tstamp == 15 and\ (p.thread_meshcop.tlv.sec_policy_o == 0 or - p.thread_meshcop.tlv.unknown == '0e107f')).\ + p.thread_meshcop.tlv.unknown == '0e1077')).\ must_next() # Step 6: Leader MUST send MGMT_ACTIVE_SET.rsp to the Commissioner_1 @@ -292,7 +291,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): } == set(p.thread_meshcop.tlv.type) and\ p.thread_meshcop.tlv.active_tstamp == 20 and\ (p.thread_meshcop.tlv.sec_policy_n == 0 or - p.thread_meshcop.tlv.unknown == '0e10bf')).\ + p.thread_meshcop.tlv.unknown == '0e10b7')).\ must_next() # Step 10: Leader MUST send MGMT_ACTIVE_SET.rsp to the Commissioner_1 @@ -376,7 +375,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): } == set(p.thread_meshcop.tlv.type) and\ p.thread_meshcop.tlv.active_tstamp == 30 and\ (p.thread_meshcop.tlv.sec_policy_r == 0 or - p.thread_meshcop.tlv.unknown == '0e10df')).\ + p.thread_meshcop.tlv.unknown == '0e10d7')).\ must_next() # Step 18: Leader MUST send MGMT_ACTIVE_SET.rsp to the Commissioner_1 @@ -407,7 +406,7 @@ class Cert_5_8_04_SecurityPolicyTLV(thread_cert.TestCase): filter(lambda p: p.mle.tlv.active_tstamp == 30 and\ (p.thread_meshcop.tlv.sec_policy_r == 0 or - p.thread_meshcop.tlv.unknown == '0e10df')).\ + p.thread_meshcop.tlv.unknown == '0e10d7')).\ must_next() diff --git a/tests/scripts/thread-cert/node.py b/tests/scripts/thread-cert/node.py index f7a26a23c..c176f3460 100755 --- a/tests/scripts/thread-cert/node.py +++ b/tests/scripts/thread-cert/node.py @@ -2085,15 +2085,11 @@ class NodeImpl: if result == 1: networks = [] for line in self._expect_command_output()[2:]: - _, J, networkname, extpanid, panid, extaddr, channel, dbm, lqi, _ = map(str.strip, line.split('|')) - J = bool(int(J)) + _, panid, extaddr, channel, dbm, lqi, _ = map(str.strip, line.split('|')) panid = int(panid, 16) channel, dbm, lqi = map(int, (channel, dbm, lqi)) networks.append({ - 'joinable': J, - 'networkname': networkname, - 'extpanid': extpanid, 'panid': panid, 'extaddr': extaddr, 'channel': channel, diff --git a/tests/scripts/thread-cert/test_mac_scan.py b/tests/scripts/thread-cert/test_mac_scan.py index e3214b89a..ae493a5e0 100755 --- a/tests/scripts/thread-cert/test_mac_scan.py +++ b/tests/scripts/thread-cert/test_mac_scan.py @@ -70,8 +70,6 @@ class Test_MacScan(thread_cert.TestCase): self.assertEqual(len(results), 1) network = results[0] self.assertEqual(network['extaddr'], self.nodes[ROUTER].get_addr64()) - self.assertEqual(network['extpanid'], self.nodes[ROUTER].get_extpanid()) - self.assertEqual(network['networkname'], self.nodes[ROUTER].get_network_name()) self.assertEqual(network['channel'], CHANNEL) diff --git a/tests/toranj/README_NCP.md b/tests/toranj/README_NCP.md index 1c1e09f0d..6262b7e76 100644 --- a/tests/toranj/README_NCP.md +++ b/tests/toranj/README_NCP.md @@ -124,7 +124,6 @@ wpan1 => [ "Network:PANID" => 0x9D81 "IPv6:MeshLocalAddress" => "fda4:38cf:5973:0:b899:3436:15c6:941d" "IPv6:MeshLocalPrefix" => "fda4:38cf:5973::/64" - "com.nestlabs.internal:Network:AllowingJoin" => false ] ``` @@ -348,9 +347,9 @@ $ Node1.wpanctl('form "toranj-net"'): Forming WPAN "toranj-net" as node type "router" Successfully formed! $ Node2.wpanctl('scan'): - | Joinable | NetworkName | PAN ID | Ch | XPanID | HWAddr | RSSI - ---+----------+--------------------+--------+----+------------------+------------------+------ - 1 | NO | "toranj-net" | 0x9DEB | 16 | 8CC6CFC810F23E1B | BEECDAF3439DC931 | -20 + | PAN ID | Ch | XPanID | HWAddr | RSSI + ---+--------+----+------------------+------------------+------ + 1 | 0x9DEB | 16 | 8CC6CFC810F23E1B | BEECDAF3439DC931 | -20 $ Node1.wpanctl('get -v NCP:State') -> '"associated"' $ Node1.wpanctl('get -v Network:Name') -> '"toranj-net"' $ Node1.wpanctl('get -v Network:PANID') -> '0x9DEB' diff --git a/tests/toranj/ncp/test-001-get-set.py b/tests/toranj/ncp/test-001-get-set.py index 2daed0131..6dde37a07 100644 --- a/tests/toranj/ncp/test-001-get-set.py +++ b/tests/toranj/ncp/test-001-get-set.py @@ -101,7 +101,6 @@ all_gettable_props = [ wpan.WPAN_PARTITION_ID, wpan.WPAN_NCP_VERSION, wpan.WPAN_NCP_MCU_POWER_STATE, - wpan.WPAN_NETWORK_ALLOW_JOIN, wpan.WPAN_NETWORK_PASSTHRU_PORT, wpan.WPAN_IP6_LINK_LOCAL_ADDRESS, wpan.WPAN_IP6_MESH_LOCAL_ADDRESS, diff --git a/tests/toranj/ncp/test-008-permit-join.py b/tests/toranj/ncp/test-008-permit-join.py deleted file mode 100644 index 63ded3272..000000000 --- a/tests/toranj/ncp/test-008-permit-join.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2018, The OpenThread Authors. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the copyright holder nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -import time -import wpan -from wpan import verify - -# ----------------------------------------------------------------------------------------------------------------------- -# Test description: check wpantund `permit-join` functionality and timeout - -test_name = __file__[:-3] if __file__.endswith('.py') else __file__ -print('-' * 120) -print('Starting \'{}\''.format(test_name)) - -# ----------------------------------------------------------------------------------------------------------------------- -# Creating `wpan.Nodes` instances - -node = wpan.Node() - -# ----------------------------------------------------------------------------------------------------------------------- -# Init all nodes - -wpan.Node.init_all_nodes() - -# ----------------------------------------------------------------------------------------------------------------------- -# Build network topology - -node.form("permit-join-test") - -# ----------------------------------------------------------------------------------------------------------------------- -# Test implementation - -verify(node.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'false') - -node.permit_join() -verify(node.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'true') - -node.permit_join('0') -verify(node.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'false') - -node.permit_join(port='1234') -verify(node.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'true') - -node.permit_join('0') -verify(node.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'false') - -# check the timeout -node.permit_join('1') -verify(node.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'true') -time.sleep(1.5) -verify(node.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'false') - -# ----------------------------------------------------------------------------------------------------------------------- -# Test finished - -wpan.Node.finalize_all_nodes() - -print('\'{}\' passed.'.format(test_name)) diff --git a/tests/toranj/ncp/test-009-insecure-traffic-join.py b/tests/toranj/ncp/test-009-insecure-traffic-join.py index aa0dfe137..40267374b 100644 --- a/tests/toranj/ncp/test-009-insecure-traffic-join.py +++ b/tests/toranj/ncp/test-009-insecure-traffic-join.py @@ -60,7 +60,6 @@ NUM_MSGS = 4 # Make node1 joinable and set the insecure port node1.permit_join(duration_sec='100', port=str(insecure_port)) -verify(node1.get(wpan.WPAN_NETWORK_ALLOW_JOIN) == 'true') # Join node1 network from node2 without setting the key node2.join_node(node1, should_set_key=False) diff --git a/tests/toranj/ncp/wpan.py b/tests/toranj/ncp/wpan.py index c2c7a5157..1dc313a7f 100644 --- a/tests/toranj/ncp/wpan.py +++ b/tests/toranj/ncp/wpan.py @@ -56,7 +56,6 @@ WPAN_ROLE = 'Network:Role' WPAN_PARTITION_ID = 'Network:PartitionId' WPAN_NCP_VERSION = 'NCP:Version' WPAN_NCP_MCU_POWER_STATE = "NCP:MCUPowerState" -WPAN_NETWORK_ALLOW_JOIN = 'com.nestlabs.internal:Network:AllowingJoin' WPAN_NETWORK_PASSTHRU_PORT = 'com.nestlabs.internal:Network:PassthruPort' WPAN_RCP_VERSION = "POSIXApp:RCPVersion" @@ -568,7 +567,6 @@ class Node(object): """Checks if node is in the scan results `scan_result` must be an array of `ScanResult` object (see `parse_scan_result`). """ - joinable = (self.get(WPAN_NETWORK_ALLOW_JOIN) == 'true') panid = self.get(WPAN_PANID) xpanid = self.get(WPAN_XPANID)[2:] name = self.get(WPAN_NAME)[1:-1] @@ -576,11 +574,12 @@ class Node(object): ext_address = self.get(WPAN_EXT_ADDRESS)[1:-1] for item in scan_result: - if all([ - item.network_name == name, item.panid == panid, item.xpanid == xpanid, - item.channel == channel, item.ext_address == ext_address, - (item.type == ScanResult.TYPE_DISCOVERY_SCAN) or (item.joinable == joinable) - ]): + if all([item.panid == panid, item.channel == channel, item.ext_address == ext_address]): + if (item.type == ScanResult.TYPE_DISCOVERY_SCAN): + if all([item.network_name == name, item.xpanid == xpanid]): + return True + else: + continue return True return False @@ -1061,16 +1060,17 @@ class ScanResult(object): items = [item.strip() for item in result_text.split('|')] - if len(items) == 8: + if len(items) == 2: + self._type = ScanResult.TYPE_ENERGY_SCAN + self._channel = items[0] + self._rssi = items[1] + if len(items) == 7 and '------ NONE ------' in items[1]: self._type = ScanResult.TYPE_ACTIVE_SCAN self._index = items[0] - self._joinable = (items[1] == 'YES') - self._network_name = items[2][1:-1] - self._panid = items[3] - self._channel = items[4] - self._xpanid = items[5] - self._ext_address = items[6] - self._rssi = items[7] + self._panid = items[2] + self._channel = items[3] + self._ext_address = items[5] + self._rssi = items[6] elif len(items) == 7: self._type = ScanResult.TYPE_DISCOVERY_SCAN self._index = items[0] @@ -1080,12 +1080,8 @@ class ScanResult(object): self._xpanid = items[4] self._ext_address = items[5] self._rssi = items[6] - elif len(items) == 2: - self._type = ScanResult.TYPE_ENERGY_SCAN - self._channel = items[0] - self._rssi = items[1] else: - raise ValueError('"{}" does not seem to be a valid scan result string'.result_text) + raise ValueError('"%s" does not seem to be a valid scan result string' % result_text) @property def type(self): diff --git a/tests/toranj/start.sh b/tests/toranj/start.sh index 889844172..3831afc2b 100755 --- a/tests/toranj/start.sh +++ b/tests/toranj/start.sh @@ -152,7 +152,6 @@ run ncp/test-004-scan.py run ncp/test-005-discover-scan.py run ncp/test-006-traffic-router-end-device.py run ncp/test-007-traffic-router-sleepy.py -run ncp/test-008-permit-join.py run ncp/test-009-insecure-traffic-join.py run ncp/test-010-on-mesh-prefix-config-gateway.py run ncp/test-011-child-table.py diff --git a/tools/harness-thci/OpenThread.py b/tools/harness-thci/OpenThread.py index d1f3705b3..84453850e 100644 --- a/tools/harness-thci/OpenThread.py +++ b/tools/harness-thci/OpenThread.py @@ -1460,7 +1460,7 @@ class OpenThreadTHCI(object): ModuleHelper.Default_NwkName) self.pskc = hex(stretchedPSKc).rstrip('L').lstrip('0x') self.securityPolicySecs = ModuleHelper.Default_SecurityPolicy - self.securityPolicyFlags = 'onrcb' + self.securityPolicyFlags = 'onrc' self.activetimestamp = ModuleHelper.Default_ActiveTimestamp # self.sedPollingRate = ModuleHelper.Default_Harness_SED_Polling_Rate self.__sedPollPeriod = 3 * 1000 # in milliseconds diff --git a/tools/harness-thci/OpenThread_WpanCtl.py b/tools/harness-thci/OpenThread_WpanCtl.py index c7bb9d7ea..42d8aa944 100644 --- a/tools/harness-thci/OpenThread_WpanCtl.py +++ b/tools/harness-thci/OpenThread_WpanCtl.py @@ -648,8 +648,8 @@ class OpenThread_WpanCtl(IThci): print('call _setSecurityPolicy') try: cmd1 = self.wpan_cmd_prefix + 'setprop Dataset:SecPolicy:KeyRotation %s' % str(securityPolicySecs) - if securityPolicyFlags == 'onrcb': - cmd2 = self.wpan_cmd_prefix + 'setprop Dataset:SecPolicy:Flags 0xff' + if securityPolicyFlags == 'onrc': + cmd2 = self.wpan_cmd_prefix + 'setprop Dataset:SecPolicy:Flags 0xf7' else: print('unknown policy flag :' + securityPolicyFlags) return False @@ -1442,7 +1442,7 @@ class OpenThread_WpanCtl(IThci): # OT only accept hex format PSKc for now self.pskc = '00000000000000000000000000000000' self.securityPolicySecs = ModuleHelper.Default_SecurityPolicy - self.securityPolicyFlags = 'onrcb' + self.securityPolicyFlags = 'onrc' self.activetimestamp = ModuleHelper.Default_ActiveTimestamp # self.sedPollingRate = ModuleHelper.Default_Harness_SED_Polling_Rate self.__sedPollPeriod = 3 * 1000 # in milliseconds diff --git a/tools/otci/otci/otci.py b/tools/otci/otci/otci.py index c464b0d32..710400e0b 100644 --- a/tools/otci/otci/otci.py +++ b/tools/otci/otci/otci.py @@ -1717,7 +1717,7 @@ class OTCI(object): # Network Name: OpenThread-7caa # PAN ID: 0x7caa # PSKc: 167d89fd169e439ca0b8266de248090f - # Security Policy: 0, onrcb + # Security Policy: 0, onrc dataset = {}