From f72f792874fd0bc27f9ab124de6dfd4b32367cd7 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Tue, 16 Jul 2019 11:38:00 -0700 Subject: [PATCH] [config] commissioner (#4020) --- .travis/script.sh | 5 +- Android.mk | 2 +- Makefile.am | 1 - configure.ac | 33 ----------- examples/apps/cli/README.md | 2 +- examples/common-switches.mk | 2 +- examples/platforms/nrf52811/DIAG.md | 2 +- .../openthread-core-nrf52811-config.h | 2 +- examples/platforms/nrf52840/DIAG.md | 2 +- src/cli/README_DATASET.md | 2 +- src/cli/cli.cpp | 6 +- src/cli/cli.hpp | 4 +- src/cli/cli_commissioner.cpp | 4 +- src/cli/cli_commissioner.hpp | 4 +- src/core/Makefile.am | 1 + src/core/api/commissioner_api.cpp | 28 ++++----- src/core/common/instance.hpp | 2 +- src/core/config/commissioner.h | 58 +++++++++++++++++++ .../config/openthread-core-default-config.h | 12 +--- src/core/crypto/pbkdf2_cmac.cpp | 4 +- src/core/meshcop/announce_begin_client.cpp | 4 +- src/core/meshcop/commissioner.cpp | 4 +- src/core/meshcop/commissioner.hpp | 2 +- src/core/meshcop/dataset_manager.cpp | 4 +- src/core/meshcop/energy_scan_client.cpp | 4 +- src/core/meshcop/panid_query_client.cpp | 4 +- src/core/openthread-core-config.h | 3 +- src/core/thread/thread_netif.cpp | 4 +- src/core/thread/thread_netif.hpp | 8 +-- src/ncp/ncp_base.cpp | 4 +- src/ncp/ncp_base.hpp | 4 +- src/ncp/ncp_base_dispatcher.cpp | 8 +-- src/ncp/ncp_base_ftd.cpp | 6 +- tests/toranj/build.sh | 1 - tests/toranj/openthread-core-toranj-config.h | 8 +++ tests/unit/Makefile.am | 7 +-- tests/unit/test_pskc.cpp | 14 +++++ .../crypto/nrf52840-mbedtls-config.h | 2 +- third_party/mbedtls/mbedtls-config.h | 3 +- 39 files changed, 151 insertions(+), 119 deletions(-) create mode 100644 src/core/config/commissioner.h diff --git a/.travis/script.sh b/.travis/script.sh index c756adfce..21beb6f1e 100755 --- a/.travis/script.sh +++ b/.travis/script.sh @@ -62,13 +62,13 @@ python --version || die -DOPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE=1 \ -DOPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE=1 \ -DOPENTHREAD_CONFIG_COAP_API_ENABLE=1 \ - -DOPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE=1" + -DOPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE=1 \ + -DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1" scan-build ./configure \ --enable-builtin-mbedtls=no \ --enable-cert-log \ --enable-cli \ - --enable-commissioner \ --enable-dhcp6-client \ --enable-dhcp6-server \ --enable-diag \ @@ -98,7 +98,6 @@ python --version || die --enable-builtin-mbedtls=no \ --enable-cert-log \ --enable-cli \ - --enable-commissioner \ --enable-dhcp6-client \ --enable-dhcp6-server \ --enable-diag \ diff --git a/Android.mk b/Android.mk index aa019e639..f2b2ee1b1 100644 --- a/Android.mk +++ b/Android.mk @@ -54,7 +54,7 @@ endif ifeq ($(TARGET_PRODUCT),generic) OPENTHREAD_COMMON_FLAGS += \ -DOPENTHREAD_CONFIG_COAP_API_ENABLE=1 \ - -DOPENTHREAD_ENABLE_COMMISSIONER=1 \ + -DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1 \ -DOPENTHREAD_ENABLE_DHCP6_CLIENT=1 \ -DOPENTHREAD_ENABLE_DHCP6_SERVER=1 \ -DOPENTHREAD_ENABLE_DNS_CLIENT=1 \ diff --git a/Makefile.am b/Makefile.am index 3c1772ddc..b7ae8beed 100644 --- a/Makefile.am +++ b/Makefile.am @@ -34,7 +34,6 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \ --enable-address-sanitizer \ --enable-cert-log \ --enable-cli \ - --enable-commissioner \ --enable-dhcp6-client \ --enable-dhcp6-server \ --enable-diag \ diff --git a/configure.ac b/configure.ac index 34d886b36..eab130ce9 100644 --- a/configure.ac +++ b/configure.ac @@ -897,38 +897,6 @@ AC_SUBST(OPENTHREAD_ENABLE_PLATFORM_NETIF) AM_CONDITIONAL([OPENTHREAD_ENABLE_PLATFORM_NETIF], [test "${enable_platform_netif}" = 'yes']) AC_DEFINE_UNQUOTED([OPENTHREAD_ENABLE_PLATFORM_NETIF], [${OPENTHREAD_ENABLE_PLATFORM_NETIF}], [Define to 1 to enable platform Netif.]) -# -# Thread Commissioner -# - -AC_ARG_ENABLE(commissioner, - [AS_HELP_STRING([--enable-commissioner],[Enable commissioner support @<:@default=no@:>@.])], - [ - case "${enableval}" in - - no|yes) - enable_commissioner=${enableval} - ;; - - *) - AC_MSG_ERROR([Invalid value ${enable_commissioner} for --enable-commissioner]) - ;; - esac - ], - [enable_commissioner=no]) - -if test "$enable_commissioner" = "yes"; then - OPENTHREAD_ENABLE_COMMISSIONER=1 -else - OPENTHREAD_ENABLE_COMMISSIONER=0 -fi - -AC_MSG_CHECKING([whether to enable the commissioner]) -AC_MSG_RESULT(${enable_commissioner}) -AC_SUBST(OPENTHREAD_ENABLE_COMMISSIONER) -AM_CONDITIONAL([OPENTHREAD_ENABLE_COMMISSIONER], [test "${enable_commissioner}" = "yes"]) -AC_DEFINE_UNQUOTED([OPENTHREAD_ENABLE_COMMISSIONER],[${OPENTHREAD_ENABLE_COMMISSIONER}],[Define to 1 to enable the commissioner role.]) - # # Thread Joiner # @@ -1814,7 +1782,6 @@ AC_MSG_NOTICE([ OpenThread MTD Network Diagnostic support : ${enable_mtd_network_diagnostic} OpenThread builtin mbedtls support : ${enable_builtin_mbedtls} OpenThread UDP forward support : ${enable_udp_forward} - OpenThread Commissioner support : ${enable_commissioner} OpenThread Joiner support : ${enable_joiner} OpenThread Jam Detection support : ${enable_jam_detection} OpenThread MAC Filter support : ${enable_mac_filter} diff --git a/examples/apps/cli/README.md b/examples/apps/cli/README.md index fc1ea1a88..47de7df59 100644 --- a/examples/apps/cli/README.md +++ b/examples/apps/cli/README.md @@ -124,4 +124,4 @@ Done ## 4. Explore More -See the [OpenThread CLI Reference README.md](../../../src/cli/README.md) to explore more. \ No newline at end of file +See the [OpenThread CLI Reference README.md](../../../src/cli/README.md) to explore more. diff --git a/examples/common-switches.mk b/examples/common-switches.mk index 97889c6b9..1f47d72fb 100644 --- a/examples/common-switches.mk +++ b/examples/common-switches.mk @@ -83,7 +83,7 @@ COMMONCFLAGS += -DOPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE=1 endif ifeq ($(COMMISSIONER),1) -configure_OPTIONS += --enable-commissioner +COMMONCFLAGS += -DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1 endif ifeq ($(COVERAGE),1) diff --git a/examples/platforms/nrf52811/DIAG.md b/examples/platforms/nrf52811/DIAG.md index 7fb272167..bb38e7655 100644 --- a/examples/platforms/nrf52811/DIAG.md +++ b/examples/platforms/nrf52811/DIAG.md @@ -151,4 +151,4 @@ Start transmiting messages with specified interval. ### diag transmit carrier Start transmitting continuous carrier wave. -[DIAG]: ./../../../src/diag/README.md \ No newline at end of file +[DIAG]: ./../../../src/diag/README.md diff --git a/examples/platforms/nrf52811/openthread-core-nrf52811-config.h b/examples/platforms/nrf52811/openthread-core-nrf52811-config.h index fbeb28f55..bd77e7a7a 100644 --- a/examples/platforms/nrf52811/openthread-core-nrf52811-config.h +++ b/examples/platforms/nrf52811/openthread-core-nrf52811-config.h @@ -233,7 +233,7 @@ * context used by Header IE related features. * */ -#if OPENTHREAD_ENABLE_COMMISSIONER || OPENTHREAD_ENABLE_JOINER || OPENTHREAD_CONFIG_HEADER_IE_SUPPORT +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE || OPENTHREAD_ENABLE_JOINER || OPENTHREAD_CONFIG_HEADER_IE_SUPPORT #define NRF_MBEDTLS_AES_ALT_INTERRUPT_CONTEXT 1 #else #define NRF_MBEDTLS_AES_ALT_INTERRUPT_CONTEXT 0 diff --git a/examples/platforms/nrf52840/DIAG.md b/examples/platforms/nrf52840/DIAG.md index 9803de30d..cd5da367b 100644 --- a/examples/platforms/nrf52840/DIAG.md +++ b/examples/platforms/nrf52840/DIAG.md @@ -151,4 +151,4 @@ Start transmiting messages with specified interval. ### diag transmit carrier Start transmitting continuous carrier wave. -[DIAG]: ./../../../src/diag/README.md \ No newline at end of file +[DIAG]: ./../../../src/diag/README.md diff --git a/src/cli/README_DATASET.md b/src/cli/README_DATASET.md index 42a0d4af2..53e800cf2 100644 --- a/src/cli/README_DATASET.md +++ b/src/cli/README_DATASET.md @@ -403,4 +403,4 @@ Set security policy. ```bash > dataset securitypolicy 672 onrcb Done -``` \ No newline at end of file +``` diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index a3cf3fea2..85b4fde8d 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -106,7 +106,7 @@ const struct Command Interpreter::sCommands[] = { #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE {"coaps", &Interpreter::ProcessCoapSecure}, #endif -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD {"commissioner", &Interpreter::ProcessCommissioner}, #endif #if OPENTHREAD_FTD @@ -237,7 +237,7 @@ Interpreter::Interpreter(Instance *aInstance) #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE , mCoapSecure(*this) #endif -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD , mCommissioner(*this) #endif #if OPENTHREAD_ENABLE_JOINER @@ -3070,7 +3070,7 @@ void Interpreter::ProcessVersion(int argc, char *argv[]) AppendResult(OT_ERROR_NONE); } -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD void Interpreter::ProcessCommissioner(int argc, char *argv[]) { diff --git a/src/cli/cli.hpp b/src/cli/cli.hpp index 4acbc5444..f1a1e4b2c 100644 --- a/src/cli/cli.hpp +++ b/src/cli/cli.hpp @@ -208,7 +208,7 @@ private: #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE void ProcessCoapSecure(int argc, char *argv[]); #endif // OPENTHREAD_CONFIG_COAP_API_ENABLE -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD void ProcessCommissioner(int argc, char *argv[]); #endif #if OPENTHREAD_FTD @@ -397,7 +397,7 @@ private: CoapSecure mCoapSecure; #endif -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD Commissioner mCommissioner; #endif diff --git a/src/cli/cli_commissioner.cpp b/src/cli/cli_commissioner.cpp index 33eec523b..82e4895fd 100644 --- a/src/cli/cli_commissioner.cpp +++ b/src/cli/cli_commissioner.cpp @@ -36,7 +36,7 @@ #include "cli/cli.hpp" #include "cli/cli_server.hpp" -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD namespace ot { namespace Cli { @@ -441,4 +441,4 @@ void Commissioner::HandlePanIdConflict(uint16_t aPanId, uint32_t aChannelMask) } // namespace Cli } // namespace ot -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD diff --git a/src/cli/cli_commissioner.hpp b/src/cli/cli_commissioner.hpp index ba7e3c089..ae2a5d618 100644 --- a/src/cli/cli_commissioner.hpp +++ b/src/cli/cli_commissioner.hpp @@ -38,7 +38,7 @@ #include -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD namespace ot { namespace Cli { @@ -120,6 +120,6 @@ private: } // namespace Cli } // namespace ot -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD #endif // CLI_COMMISSIONER_HPP_ diff --git a/src/core/Makefile.am b/src/core/Makefile.am index b5b166671..8b06a5918 100644 --- a/src/core/Makefile.am +++ b/src/core/Makefile.am @@ -324,6 +324,7 @@ HEADERS_COMMON = \ config/channel_monitor.h \ config/child_supervision.h \ config/coap.h \ + config/commissioner.h \ config/openthread-core-config-check.h \ config/openthread-core-default-config.h \ crypto/aes_ccm.hpp \ diff --git a/src/core/api/commissioner_api.cpp b/src/core/api/commissioner_api.cpp index 2fd5965b0..fa30a7602 100644 --- a/src/core/api/commissioner_api.cpp +++ b/src/core/api/commissioner_api.cpp @@ -47,7 +47,7 @@ otError otCommissionerStart(otInstance * aInstance, { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); #if OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE @@ -72,7 +72,7 @@ otError otCommissionerStop(otInstance *aInstance) otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); SuccessOrExit(error = instance.Get().Stop()); @@ -88,7 +88,7 @@ otError otCommissionerAddJoiner(otInstance *aInstance, const otExtAddress *aEui6 { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = @@ -107,7 +107,7 @@ otError otCommissionerRemoveJoiner(otInstance *aInstance, const otExtAddress *aE { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().RemoveJoiner(static_cast(aEui64), 0); @@ -123,7 +123,7 @@ otError otCommissionerSetProvisioningUrl(otInstance *aInstance, const char *aPro { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().SetProvisioningUrl(aProvisioningUrl); @@ -139,7 +139,7 @@ const char *otCommissionerGetProvisioningUrl(otInstance *aInstance, uint16_t *aL { const char *url = NULL; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); if (aLength != NULL) @@ -162,7 +162,7 @@ otError otCommissionerAnnounceBegin(otInstance * aInstance, { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().GetAnnounceBeginClient().SendRequest( @@ -189,7 +189,7 @@ otError otCommissionerEnergyScan(otInstance * aInstance, { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().GetEnergyScanClient().SendQuery( @@ -218,7 +218,7 @@ otError otCommissionerPanIdQuery(otInstance * aInstance, { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().GetPanIdQueryClient().SendQuery( @@ -239,7 +239,7 @@ otError otCommissionerSendMgmtGet(otInstance *aInstance, const uint8_t *aTlvs, u { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().SendMgmtCommissionerGetRequest(aTlvs, aLength); @@ -259,7 +259,7 @@ otError otCommissionerSendMgmtSet(otInstance * aInstance, { otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().SendMgmtCommissionerSetRequest(*aDataset, aTlvs, aLength); @@ -277,7 +277,7 @@ uint16_t otCommissionerGetSessionId(otInstance *aInstance) { uint16_t sessionId = 0; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); sessionId = instance.Get().GetSessionId(); @@ -292,7 +292,7 @@ otCommissionerState otCommissionerGetState(otInstance *aInstance) { otCommissionerState state = OT_COMMISSIONER_STATE_DISABLED; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE Instance &instance = *static_cast(aInstance); state = instance.Get().GetState(); @@ -313,7 +313,7 @@ otError otCommissionerGeneratePSKc(otInstance * aInstance, otError error = OT_ERROR_DISABLED_FEATURE; -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE error = MeshCoP::Commissioner::GeneratePSKc(aPassPhrase, aNetworkName, *aExtPanId, aPSKc); #else OT_UNUSED_VARIABLE(aInstance); diff --git a/src/core/common/instance.hpp b/src/core/common/instance.hpp index e976ba7a1..feb11ccda 100644 --- a/src/core/common/instance.hpp +++ b/src/core/common/instance.hpp @@ -570,7 +570,7 @@ template <> inline TimeSync &Instance::Get(void) } #endif -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD template <> inline MeshCoP::Commissioner &Instance::Get(void) { return mThreadNetif.mCommissioner; diff --git a/src/core/config/commissioner.h b/src/core/config/commissioner.h new file mode 100644 index 000000000..a875d8d23 --- /dev/null +++ b/src/core/config/commissioner.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2019, 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. + */ + +/** + * @file + * This file includes compile-time configurations for the Commissioner. + * + */ + +#ifndef CONFIG_COMMISSIONER_H_ +#define CONFIG_COMMISSIONER_H_ + +/** + * @def OPENTHREAD_CONFIG_COMMISSIONER_ENABLE + * + * Define to 1 to enable Commissioner support. + * + */ +#ifndef OPENTHREAD_CONFIG_COMMISSIONER_ENABLE +#define OPENTHREAD_CONFIG_COMMISSIONER_ENABLE 0 +#endif + +/** + * @def OPENTHREAD_CONFIG_COMMISSIONER_MAX_JOINER_ENTRIES + * + * The maximum number of Joiner entries maintained by the Commissioner. + * + */ +#ifndef OPENTHREAD_CONFIG_COMMISSIONER_MAX_JOINER_ENTRIES +#define OPENTHREAD_CONFIG_COMMISSIONER_MAX_JOINER_ENTRIES 2 +#endif + +#endif // CONFIG_COMMISSIONER_H_ diff --git a/src/core/config/openthread-core-default-config.h b/src/core/config/openthread-core-default-config.h index b19e99cd5..370a7c3a5 100644 --- a/src/core/config/openthread-core-default-config.h +++ b/src/core/config/openthread-core-default-config.h @@ -400,17 +400,7 @@ #endif /** - * @def OPENTHREAD_CONFIG_MAX_JOINER_ENTRIES - * - * The maximum number of Joiner entries maintained by the Commissioner. - * - */ -#ifndef OPENTHREAD_CONFIG_MAX_JOINER_ENTRIES -#define OPENTHREAD_CONFIG_MAX_JOINER_ENTRIES 2 -#endif - -/** - * @def OPENTHREAD_CONFIG_MAX_JOINER_ENTRIES + * @def OPENTHREAD_CONFIG_MAX_JOINER_ROUTER_ENTRIES * * The maximum number of Joiner Router entries that can be queued by the Joiner. * diff --git a/src/core/crypto/pbkdf2_cmac.cpp b/src/core/crypto/pbkdf2_cmac.cpp index 205fd727a..992cbf85d 100644 --- a/src/core/crypto/pbkdf2_cmac.cpp +++ b/src/core/crypto/pbkdf2_cmac.cpp @@ -38,7 +38,7 @@ #include -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD void otPbkdf2Cmac(const uint8_t *aPassword, uint16_t aPasswordLen, @@ -105,4 +105,4 @@ void otPbkdf2Cmac(const uint8_t *aPassword, } } -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD diff --git a/src/core/meshcop/announce_begin_client.cpp b/src/core/meshcop/announce_begin_client.cpp index 819d4ea44..8a3ea4fdd 100644 --- a/src/core/meshcop/announce_begin_client.cpp +++ b/src/core/meshcop/announce_begin_client.cpp @@ -44,7 +44,7 @@ #include "thread/thread_netif.hpp" #include "thread/thread_uri_paths.hpp" -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD namespace ot { @@ -111,4 +111,4 @@ exit: } // namespace ot -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD diff --git a/src/core/meshcop/commissioner.cpp b/src/core/meshcop/commissioner.cpp index 0c4d2d453..c55225483 100644 --- a/src/core/meshcop/commissioner.cpp +++ b/src/core/meshcop/commissioner.cpp @@ -49,7 +49,7 @@ #include "thread/thread_tlvs.hpp" #include "thread/thread_uri_paths.hpp" -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE namespace ot { namespace MeshCoP { @@ -1123,4 +1123,4 @@ exit: } // namespace MeshCoP } // namespace ot -#endif // OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#endif // OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE diff --git a/src/core/meshcop/commissioner.hpp b/src/core/meshcop/commissioner.hpp index 9c4097dae..484087c0b 100644 --- a/src/core/meshcop/commissioner.hpp +++ b/src/core/meshcop/commissioner.hpp @@ -323,7 +323,7 @@ private: bool mValid : 1; bool mAny : 1; }; - Joiner mJoiners[OPENTHREAD_CONFIG_MAX_JOINER_ENTRIES]; + Joiner mJoiners[OPENTHREAD_CONFIG_COMMISSIONER_MAX_JOINER_ENTRIES]; uint8_t mJoinerIid[8]; uint16_t mJoinerPort; diff --git a/src/core/meshcop/dataset_manager.cpp b/src/core/meshcop/dataset_manager.cpp index d3eb659e5..9dbed95fd 100644 --- a/src/core/meshcop/dataset_manager.cpp +++ b/src/core/meshcop/dataset_manager.cpp @@ -418,7 +418,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, mUriSet)); SuccessOrExit(error = message->SetPayloadMarker()); -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD if (Get().IsActive()) { @@ -446,7 +446,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con } } -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD if (aDataset.mComponents.mIsActiveTimestampPresent) { diff --git a/src/core/meshcop/energy_scan_client.cpp b/src/core/meshcop/energy_scan_client.cpp index 372f68029..11c709c5a 100644 --- a/src/core/meshcop/energy_scan_client.cpp +++ b/src/core/meshcop/energy_scan_client.cpp @@ -45,7 +45,7 @@ #include "thread/thread_netif.hpp" #include "thread/thread_uri_paths.hpp" -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD namespace ot { @@ -164,4 +164,4 @@ exit: } // namespace ot -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD diff --git a/src/core/meshcop/panid_query_client.cpp b/src/core/meshcop/panid_query_client.cpp index c10841783..40c51cf00 100644 --- a/src/core/meshcop/panid_query_client.cpp +++ b/src/core/meshcop/panid_query_client.cpp @@ -44,7 +44,7 @@ #include "thread/thread_netif.hpp" #include "thread/thread_uri_paths.hpp" -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD namespace ot { @@ -146,4 +146,4 @@ exit: } // namespace ot -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD diff --git a/src/core/openthread-core-config.h b/src/core/openthread-core-config.h index fc1b835c3..7d80c09ff 100644 --- a/src/core/openthread-core-config.h +++ b/src/core/openthread-core-config.h @@ -50,9 +50,10 @@ #include "config/channel_monitor.h" #include "config/child_supervision.h" #include "config/coap.h" +#include "config/commissioner.h" #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE || OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE || \ - OPENTHREAD_ENABLE_COMMISSIONER || OPENTHREAD_ENABLE_JOINER + OPENTHREAD_CONFIG_COMMISSIONER_ENABLE || OPENTHREAD_ENABLE_JOINER #define OPENTHREAD_CONFIG_DTLS_ENABLE 1 #endif diff --git a/src/core/thread/thread_netif.cpp b/src/core/thread/thread_netif.cpp index 696995b7b..b2744c254 100644 --- a/src/core/thread/thread_netif.cpp +++ b/src/core/thread/thread_netif.cpp @@ -83,9 +83,9 @@ ThreadNetif::ThreadNetif(Instance &aInstance) #if OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE , mBorderAgent(aInstance) #endif -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD , mCommissioner(aInstance) -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD #if OPENTHREAD_CONFIG_DTLS_ENABLE , mCoapSecure(aInstance) #endif diff --git a/src/core/thread/thread_netif.hpp b/src/core/thread/thread_netif.hpp index f11413d77..5d94d0efc 100644 --- a/src/core/thread/thread_netif.hpp +++ b/src/core/thread/thread_netif.hpp @@ -43,9 +43,9 @@ #if OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE #include "meshcop/border_agent.hpp" #endif -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD #include "meshcop/commissioner.hpp" -#endif // OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD #include "meshcop/dataset_manager.hpp" @@ -199,9 +199,9 @@ private: #if OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE MeshCoP::BorderAgent mBorderAgent; #endif -#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD MeshCoP::Commissioner mCommissioner; -#endif // OPENTHREAD_ENABLE_COMMISSIONER +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #if OPENTHREAD_CONFIG_DTLS_ENABLE Coap::CoapSecure mCoapSecure; diff --git a/src/ncp/ncp_base.cpp b/src/ncp/ncp_base.cpp index 445e0ab72..6127ffa4c 100644 --- a/src/ncp/ncp_base.cpp +++ b/src/ncp/ncp_base.cpp @@ -922,7 +922,7 @@ bool NcpBase::HandlePropertySetForSpecialProperties(uint8_t aHeader, spinel_prop ExitNow(aError = HandlePropertySet_SPINEL_PROP_NEST_STREAM_MFG(aHeader)); #endif -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE case SPINEL_PROP_THREAD_COMMISSIONER_ENABLED: ExitNow(aError = HandlePropertySet_SPINEL_PROP_THREAD_COMMISSIONER_ENABLED(aHeader)); #endif @@ -1807,7 +1807,7 @@ template <> otError NcpBase::HandlePropertyGet(void) SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_NEST_LEGACY_INTERFACE)); #endif -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_THREAD_COMMISSIONER)); #endif diff --git a/src/ncp/ncp_base.hpp b/src/ncp/ncp_base.hpp index fd122d5b2..258fbd6c4 100644 --- a/src/ncp/ncp_base.hpp +++ b/src/ncp/ncp_base.hpp @@ -304,7 +304,7 @@ protected: static void HandleJamStateChange_Jump(bool aJamState, void *aContext); void HandleJamStateChange(bool aJamState); -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE static void HandleCommissionerEnergyReport_Jump(uint32_t aChannelMask, const uint8_t *aEnergyData, uint8_t aLength, @@ -413,7 +413,7 @@ protected: otError HandlePropertySet_SPINEL_PROP_NEST_STREAM_MFG(uint8_t aHeader); #endif -#if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE otError HandlePropertySet_SPINEL_PROP_THREAD_COMMISSIONER_ENABLED(uint8_t aHeader); #endif // OPENTHREAD_FTD diff --git a/src/ncp/ncp_base_dispatcher.cpp b/src/ncp/ncp_base_dispatcher.cpp index dd2055eca..a6003b2b3 100644 --- a/src/ncp/ncp_base_dispatcher.cpp +++ b/src/ncp/ncp_base_dispatcher.cpp @@ -589,7 +589,7 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey) handler = &NcpBase::HandlePropertyGet; break; #endif -#if OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE case SPINEL_PROP_MESHCOP_COMMISSIONER_STATE: handler = &NcpBase::HandlePropertyGet; break; @@ -928,7 +928,7 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey) handler = &NcpBase::HandlePropertySet; break; #endif -#if OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE case SPINEL_PROP_MESHCOP_COMMISSIONER_STATE: handler = &NcpBase::HandlePropertySet; break; @@ -1068,7 +1068,7 @@ NcpBase::PropertyHandler NcpBase::FindInsertPropertyHandler(spinel_prop_key_t aK // FTD Only Properties (Insert Handler) #if OPENTHREAD_FTD -#if OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE case SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS: handler = &NcpBase::HandlePropertyInsert; break; @@ -1156,7 +1156,7 @@ NcpBase::PropertyHandler NcpBase::FindRemovePropertyHandler(spinel_prop_key_t aK case SPINEL_PROP_THREAD_ACTIVE_ROUTER_IDS: handler = &NcpBase::HandlePropertyRemove; break; -#if OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE case SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS: handler = &NcpBase::HandlePropertyRemove; break; diff --git a/src/ncp/ncp_base_ftd.cpp b/src/ncp/ncp_base_ftd.cpp index a065ae925..a49c1822d 100644 --- a/src/ncp/ncp_base_ftd.cpp +++ b/src/ncp/ncp_base_ftd.cpp @@ -50,7 +50,7 @@ #include "common/code_utils.hpp" #include "common/debug.hpp" #include "common/instance.hpp" -#if OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #include "meshcop/commissioner.hpp" #endif @@ -471,7 +471,7 @@ template <> otError NcpBase::HandlePropertyGet(v return error; } -#if OPENTHREAD_ENABLE_COMMISSIONER +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE template <> otError NcpBase::HandlePropertyGet(void) { @@ -805,7 +805,7 @@ template <> otError NcpBase::HandlePropertyInsert(vo exit: return error; } -#endif // OPENTHREAD_ENABLE_COMMISSIONER +#endif // OPENTHREAD_CONFIG_COMMISSIONER_ENABLE template <> otError NcpBase::HandlePropertySet(void) { diff --git a/tests/toranj/build.sh b/tests/toranj/build.sh index c0eb076e6..d130cd9f4 100755 --- a/tests/toranj/build.sh +++ b/tests/toranj/build.sh @@ -77,7 +77,6 @@ build_config=$1 configure_options=" \ --disable-docs \ --disable-tests \ - --enable-commissioner \ --enable-coverage=$coverage \ --enable-diag \ --enable-ftd \ diff --git a/tests/toranj/openthread-core-toranj-config.h b/tests/toranj/openthread-core-toranj-config.h index b5fa39c67..eb740c11a 100644 --- a/tests/toranj/openthread-core-toranj-config.h +++ b/tests/toranj/openthread-core-toranj-config.h @@ -56,6 +56,14 @@ */ #define OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 1 +/** + * @def OPENTHREAD_CONFIG_COMMISSIONER_ENABLE + * + * Define to 1 to enable Commissioner support. + * + */ +#define OPENTHREAD_CONFIG_COMMISSIONER_ENABLE 1 + /** * @def OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS * diff --git a/tests/unit/Makefile.am b/tests/unit/Makefile.am index e1fce7f15..317be8e63 100644 --- a/tests/unit/Makefile.am +++ b/tests/unit/Makefile.am @@ -116,6 +116,7 @@ check_PROGRAMS += \ test-message-queue \ test-network-data \ test-priority-queue \ + test-pskc \ test-string \ test-strlcat \ test-strlcpy \ @@ -123,12 +124,6 @@ check_PROGRAMS += \ test-timer \ $(NULL) -if OPENTHREAD_ENABLE_COMMISSIONER -check_PROGRAMS += \ - test-pskc \ - $(NULL) -endif - if OPENTHREAD_ENABLE_NCP check_PROGRAMS += \ test-ncp-buffer \ diff --git a/tests/unit/test_pskc.cpp b/tests/unit/test_pskc.cpp index 8948f1f40..8d2a423d5 100644 --- a/tests/unit/test_pskc.cpp +++ b/tests/unit/test_pskc.cpp @@ -34,6 +34,8 @@ #include "test_platform.h" #include "test_util.h" +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE + static const otExtendedPanId sXPanId = {{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}}; void TestMinimumPassphrase(void) @@ -87,3 +89,15 @@ int main(void) return 0; } #endif + +#else // #if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE + +#ifdef ENABLE_TEST_MAIN +int main(void) +{ + printf("Commissioenr role disabled\n"); + return 0; +} +#endif + +#endif // #if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE diff --git a/third_party/NordicSemiconductor/libraries/crypto/nrf52840-mbedtls-config.h b/third_party/NordicSemiconductor/libraries/crypto/nrf52840-mbedtls-config.h index c9fa0d8fb..2bda9eb54 100644 --- a/third_party/NordicSemiconductor/libraries/crypto/nrf52840-mbedtls-config.h +++ b/third_party/NordicSemiconductor/libraries/crypto/nrf52840-mbedtls-config.h @@ -60,7 +60,7 @@ * used by Header IE related features. * */ -#if OPENTHREAD_ENABLE_COMMISSIONER || OPENTHREAD_ENABLE_JOINER || OPENTHREAD_CONFIG_HEADER_IE_SUPPORT +#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE || OPENTHREAD_ENABLE_JOINER || OPENTHREAD_CONFIG_HEADER_IE_SUPPORT #define NRF_MBEDTLS_AES_ALT_INTERRUPT_CONTEXT 1 #else #define NRF_MBEDTLS_AES_ALT_INTERRUPT_CONTEXT 0 diff --git a/third_party/mbedtls/mbedtls-config.h b/third_party/mbedtls/mbedtls-config.h index 396d8ea47..ee2fad91b 100644 --- a/third_party/mbedtls/mbedtls-config.h +++ b/third_party/mbedtls/mbedtls-config.h @@ -76,7 +76,8 @@ #define MBEDTLS_SSL_PROTO_DTLS #define MBEDTLS_SSL_TLS_C -#if OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE || OPENTHREAD_ENABLE_COMMISSIONER || OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE +#if OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE || OPENTHREAD_CONFIG_COMMISSIONER_ENABLE || \ + OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE #define MBEDTLS_SSL_COOKIE_C #define MBEDTLS_SSL_SRV_C #endif