From 953c9db6b7f87002a09c0b4a72a8a416354939ff Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Mon, 15 Jul 2019 21:49:50 -0700 Subject: [PATCH] [config] mle (#4020) --- examples/platforms/nrf52811/platform-config.h | 4 +- .../openthread-core-nrf52840-config.h | 12 +- examples/platforms/nrf52840/platform-config.h | 4 +- examples/platforms/posix/radio.c | 2 +- include/openthread/thread_ftd.h | 4 +- src/core/Makefile.am | 1 + src/core/api/thread_ftd_api.cpp | 2 +- src/core/config/mle.h | 243 ++++++++++++++++++ .../config/openthread-core-default-config.h | 205 --------------- src/core/openthread-core-config.h | 1 + src/core/thread/child_table.hpp | 2 +- src/core/thread/mle.cpp | 24 +- src/core/thread/mle.hpp | 10 +- src/core/thread/mle_constants.hpp | 36 +-- src/core/thread/mle_router.cpp | 12 +- src/core/thread/mle_router_ftd.hpp | 8 +- src/core/thread/mle_router_mtd.hpp | 4 +- src/core/thread/mle_tlvs.hpp | 6 +- src/core/thread/topology.hpp | 8 +- src/ncp/ncp_base.cpp | 6 +- src/ncp/ncp_base.hpp | 2 +- src/ncp/ncp_base_dispatcher.cpp | 4 +- src/ncp/ncp_base_ftd.cpp | 4 +- tests/toranj/openthread-core-toranj-config.h | 20 +- .../toranj/test-019-inform-previous-parent.py | 2 +- tests/unit/test_child.cpp | 2 +- tests/unit/test_child_table.cpp | 2 +- 27 files changed, 335 insertions(+), 295 deletions(-) create mode 100644 src/core/config/mle.h diff --git a/examples/platforms/nrf52811/platform-config.h b/examples/platforms/nrf52811/platform-config.h index 0dd5192e4..bc02b34d0 100644 --- a/examples/platforms/nrf52811/platform-config.h +++ b/examples/platforms/nrf52811/platform-config.h @@ -350,7 +350,7 @@ * */ #ifndef NRF_802154_PENDING_SHORT_ADDRESSES -#define NRF_802154_PENDING_SHORT_ADDRESSES OPENTHREAD_CONFIG_MAX_CHILDREN +#define NRF_802154_PENDING_SHORT_ADDRESSES OPENTHREAD_CONFIG_MLE_MAX_CHILDREN #endif /** @@ -360,7 +360,7 @@ * */ #ifndef NRF_802154_PENDING_EXTENDED_ADDRESSES -#define NRF_802154_PENDING_EXTENDED_ADDRESSES OPENTHREAD_CONFIG_MAX_CHILDREN +#define NRF_802154_PENDING_EXTENDED_ADDRESSES OPENTHREAD_CONFIG_MLE_MAX_CHILDREN #endif /** diff --git a/examples/platforms/nrf52840/openthread-core-nrf52840-config.h b/examples/platforms/nrf52840/openthread-core-nrf52840-config.h index bbc5568ae..f824834fe 100644 --- a/examples/platforms/nrf52840/openthread-core-nrf52840-config.h +++ b/examples/platforms/nrf52840/openthread-core-nrf52840-config.h @@ -73,13 +73,13 @@ #endif /** - * @def OPENTHREAD_CONFIG_MAX_CHILDREN + * @def OPENTHREAD_CONFIG_MLE_MAX_CHILDREN * * The maximum number of children. * */ -#ifndef OPENTHREAD_CONFIG_MAX_CHILDREN -#define OPENTHREAD_CONFIG_MAX_CHILDREN 32 +#ifndef OPENTHREAD_CONFIG_MLE_MAX_CHILDREN +#define OPENTHREAD_CONFIG_MLE_MAX_CHILDREN 32 #endif /** @@ -93,13 +93,13 @@ #endif /** - * @def OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD + * @def OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD * * The maximum number of supported IPv6 address registrations per child. * */ -#ifndef OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD -#define OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD 6 +#ifndef OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD +#define OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD 6 #endif /** diff --git a/examples/platforms/nrf52840/platform-config.h b/examples/platforms/nrf52840/platform-config.h index fdabe45c6..1fd517300 100644 --- a/examples/platforms/nrf52840/platform-config.h +++ b/examples/platforms/nrf52840/platform-config.h @@ -404,7 +404,7 @@ * */ #ifndef NRF_802154_PENDING_SHORT_ADDRESSES -#define NRF_802154_PENDING_SHORT_ADDRESSES OPENTHREAD_CONFIG_MAX_CHILDREN +#define NRF_802154_PENDING_SHORT_ADDRESSES OPENTHREAD_CONFIG_MLE_MAX_CHILDREN #endif /** @@ -414,7 +414,7 @@ * */ #ifndef NRF_802154_PENDING_EXTENDED_ADDRESSES -#define NRF_802154_PENDING_EXTENDED_ADDRESSES OPENTHREAD_CONFIG_MAX_CHILDREN +#define NRF_802154_PENDING_EXTENDED_ADDRESSES OPENTHREAD_CONFIG_MLE_MAX_CHILDREN #endif /** diff --git a/examples/platforms/posix/radio.c b/examples/platforms/posix/radio.c index d74e0976d..f593f1d89 100644 --- a/examples/platforms/posix/radio.c +++ b/examples/platforms/posix/radio.c @@ -86,7 +86,7 @@ enum enum { POSIX_RECEIVE_SENSITIVITY = -100, // dBm - POSIX_MAX_SRC_MATCH_ENTRIES = OPENTHREAD_CONFIG_MAX_CHILDREN, + POSIX_MAX_SRC_MATCH_ENTRIES = OPENTHREAD_CONFIG_MLE_MAX_CHILDREN, POSIX_HIGH_RSSI_SAMPLE = -30, // dBm POSIX_LOW_RSSI_SAMPLE = -98, // dBm diff --git a/include/openthread/thread_ftd.h b/include/openthread/thread_ftd.h index ec2dd42a9..3a0d44bcc 100644 --- a/include/openthread/thread_ftd.h +++ b/include/openthread/thread_ftd.h @@ -114,7 +114,7 @@ uint8_t otThreadGetMaxAllowedChildren(otInstance *aInstance); * @param[in] aMaxChildren The maximum allowed children. * * @retval OT_ERROR_NONE Successfully set the max. - * @retval OT_ERROR_INVALID_ARGS If @p aMaxChildren is not in the range [1, OPENTHREAD_CONFIG_MAX_CHILDREN]. + * @retval OT_ERROR_INVALID_ARGS If @p aMaxChildren is not in the range [1, OPENTHREAD_CONFIG_MLE_MAX_CHILDREN]. * @retval OT_ERROR_INVALID_STATE If Thread isn't stopped. * * @sa otThreadGetMaxAllowedChildren @@ -231,7 +231,7 @@ otError otThreadSetJoinerUdpPort(otInstance *aInstance, uint16_t aJoinerUdpPort) /** * Set Steering data out of band. * - * Configuration option `OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB` should be set to enable setting of steering + * Configuration option `OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE` should be set to enable setting of steering * data out of band. Otherwise calling this function does nothing and it returns `OT_ERROR_DISABLED_FEATURE` * error. * diff --git a/src/core/Makefile.am b/src/core/Makefile.am index 4510218ec..892274199 100644 --- a/src/core/Makefile.am +++ b/src/core/Makefile.am @@ -335,6 +335,7 @@ HEADERS_COMMON = \ config/link_raw.h \ config/logging.h \ config/mac.h \ + config/mle.h \ config/openthread-core-config-check.h \ config/openthread-core-default-config.h \ crypto/aes_ccm.hpp \ diff --git a/src/core/api/thread_ftd_api.cpp b/src/core/api/thread_ftd_api.cpp index 3cc209789..ea6cc4002 100644 --- a/src/core/api/thread_ftd_api.cpp +++ b/src/core/api/thread_ftd_api.cpp @@ -328,7 +328,7 @@ otError otThreadSetSteeringData(otInstance *aInstance, const otExtAddress *aExtA { otError error; -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE Instance &instance = *static_cast(aInstance); error = instance.Get().SetSteeringData(static_cast(aExtAddress)); diff --git a/src/core/config/mle.h b/src/core/config/mle.h new file mode 100644 index 000000000..2ec38d50d --- /dev/null +++ b/src/core/config/mle.h @@ -0,0 +1,243 @@ +/* + * 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 MLE service. + * + */ + +#ifndef CONFIG_MLE_H_ +#define CONFIG_MLE_H_ + +/** + * @def OPENTHREAD_CONFIG_MLE_MAX_ROUTERS + * + * The maximum number of routers in a Thread network. + * + * @note Thread specifies this value to be 32. Changing this value may cause interoperability issues with standard + * Thread 1.1 devices. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_MAX_ROUTERS +#define OPENTHREAD_CONFIG_MLE_MAX_ROUTERS 32 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_MAX_CHILDREN + * + * The maximum number of children. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_MAX_CHILDREN +#define OPENTHREAD_CONFIG_MLE_MAX_CHILDREN 10 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_CHILD_TIMEOUT_DEFAULT + * + * The default child timeout value (in seconds). + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_CHILD_TIMEOUT_DEFAULT +#define OPENTHREAD_CONFIG_MLE_CHILD_TIMEOUT_DEFAULT 240 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD + * + * The maximum number of supported IPv6 address registrations per child. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD +#define OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD 4 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_IP_ADDRS_TO_REGISTER + * + * The maximum number of IPv6 address registrations for MTD. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_IP_ADDRS_TO_REGISTER +#define OPENTHREAD_CONFIG_MLE_IP_ADDRS_TO_REGISTER (OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD) +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE + * + * Enable setting steering data out of band. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE +#define OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE 0 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE + * + * Define as 1 to enable attach backoff feature + * + * When this feature is enabled, an exponentially increasing backoff wait time is added between attach attempts. + * If device is sleepy, the radio will be put to sleep during the wait time. This ensures that a battery-powered sleepy + * end-device does not drain its battery by continuously searching for a parent to attach to (when there is no + * router/parent for it to attach). + * + * The backoff time starts from a minimum interval specified by + * `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MINIMUM_INTERVAL`, and every attach attempt the wait time is doubled up to + * `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL` which specifies the maximum wait time. + * + * Once the wait time reaches the maximum, a random jitter interval is added to it. The maximum value for jitter is + * specified by `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_JITTER_INTERVAL`. The random jitter is selected uniformly within + * range `[-JITTER, +JITTER]`. It is only added when the backoff wait interval is at maximum value. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE +#define OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE 1 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MINIMUM_INTERVAL + * + * Specifies the minimum backoff wait interval (in milliseconds) used by attach backoff feature. + * + * Applicable only if attach backoff feature is enabled (see `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE`). + * + * Please see `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE` description for more details. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MINIMUM_INTERVAL +#define OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MINIMUM_INTERVAL 251 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL + * + * Specifies the maximum backoff wait interval (in milliseconds) used by attach backoff feature. + * + * Applicable only if attach backoff feature is enabled (see `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE`). + * + * Please see `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE` description for more details. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL +#define OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL 1200000 // 1200 seconds = 20 minutes +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_JITTER_INTERVAL + * + * Specifies the maximum jitter interval (in milliseconds) used by attach backoff feature. + * + * Applicable only if attach backoff feature is enabled (see `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE`). + * + * Please see `OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE` description for more details. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_JITTER_INTERVAL +#define OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_JITTER_INTERVAL 2000 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_SEND_LINK_REQUEST_ON_ADV_TIMEOUT + * + * Define to 1 to send an MLE Link Request when MAX_NEIGHBOR_AGE is reached for a neighboring router. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_SEND_LINK_REQUEST_ON_ADV_TIMEOUT +#define OPENTHREAD_CONFIG_MLE_SEND_LINK_REQUEST_ON_ADV_TIMEOUT 0 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN + * + * Specifies the minimum link margin in dBm required before attempting to establish a link with a neighboring router. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN +#define OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN 10 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_PARTITION_MERGE_MARGIN_MIN + * + * Specifies the minimum link margin in dBm required before attempting to merge to a different partition. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_PARTITION_MERGE_MARGIN_MIN +#define OPENTHREAD_CONFIG_MLE_PARTITION_MERGE_MARGIN_MIN 10 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_CHILD_ROUTER_LINKS + * + * Specifies the desired number of router links that a REED / FED attempts to maintain. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_CHILD_ROUTER_LINKS +#define OPENTHREAD_CONFIG_MLE_CHILD_ROUTER_LINKS 3 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE + * + * Enable experimental mode for 'deep' networks, allowing packet routes up to 32 nodes. + * This mode is incompatible with Thread 1.1.1 and older. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE +#define OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE 0 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_SEND_UNICAST_ANNOUNCE_RESPONSE + * + * Define as 1 to enable sending of a unicast MLE Announce message in response to a received Announce message from + * a device. + * + * @note The unicast MLE announce message is sent in addition to (and after) the multicast MLE Announce. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_SEND_UNICAST_ANNOUNCE_RESPONSE +#define OPENTHREAD_CONFIG_MLE_SEND_UNICAST_ANNOUNCE_RESPONSE 1 +#endif + +/** + * @def OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH + * + * Define as 1 for a child to inform its previous parent when it attaches to a new parent. + * + * If this feature is enabled, when a device attaches to a new parent, it will send an IP message (with empty payload + * and mesh-local IP address as the source address) to its previous parent. + * + */ +#ifndef OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH +#define OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH 0 +#endif + +#endif // CONFIG_MLE_H_ diff --git a/src/core/config/openthread-core-default-config.h b/src/core/config/openthread-core-default-config.h index d1ee607fe..cb67693ca 100644 --- a/src/core/config/openthread-core-default-config.h +++ b/src/core/config/openthread-core-default-config.h @@ -177,59 +177,6 @@ #define OPENTHREAD_CONFIG_ADDRESS_QUERY_MAX_RETRY_DELAY 28800 #endif -/** - * @def OPENTHREAD_CONFIG_MAX_ROUTERS - * - * The maximum number of routers in a Thread network. - * - * @note Thread specifies this value to be 32. Changing this value may cause interoperability issues with standard - * Thread 1.1 devices. - * - */ -#ifndef OPENTHREAD_CONFIG_MAX_ROUTERS -#define OPENTHREAD_CONFIG_MAX_ROUTERS 32 -#endif - -/** - * @def OPENTHREAD_CONFIG_MAX_CHILDREN - * - * The maximum number of children. - * - */ -#ifndef OPENTHREAD_CONFIG_MAX_CHILDREN -#define OPENTHREAD_CONFIG_MAX_CHILDREN 10 -#endif - -/** - * @def OPENTHREAD_CONFIG_DEFAULT_CHILD_TIMEOUT - * - * The default child timeout value (in seconds). - * - */ -#ifndef OPENTHREAD_CONFIG_DEFAULT_CHILD_TIMEOUT -#define OPENTHREAD_CONFIG_DEFAULT_CHILD_TIMEOUT 240 -#endif - -/** - * @def OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD - * - * The maximum number of supported IPv6 address registrations per child. - * - */ -#ifndef OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD -#define OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD 4 -#endif - -/** - * @def OPENTHREAD_CONFIG_IP_ADDRS_TO_REGISTER - * - * The maximum number of IPv6 address registrations for MTD. - * - */ -#ifndef OPENTHREAD_CONFIG_IP_ADDRS_TO_REGISTER -#define OPENTHREAD_CONFIG_IP_ADDRS_TO_REGISTER (OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD) -#endif - /** * @def OPENTHREAD_CONFIG_MAX_SERVICE_ALOCS * @@ -494,29 +441,6 @@ #define OPENTHREAD_CONFIG_DTLS_APPLICATION_DATA_MAX_LENGTH 1400 #endif -/** - * @def OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB - * - * Enable setting steering data out of band. - * - */ -#ifndef OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB -#define OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB 0 -#endif - -/** - * @def OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH - * - * Define as 1 for a child to inform its previous parent when it attaches to a new parent. - * - * If this feature is enabled, when a device attaches to a new parent, it will send an IP message (with empty payload - * and mesh-local IP address as the source address) to its previous parent. - * - */ -#ifndef OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH -#define OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH 0 -#endif - /** * @def OPENTHREAD_CONFIG_ENABLE_PERIODIC_PARENT_SEARCH * @@ -575,84 +499,6 @@ #define OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD -65 #endif -/** - * @def OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF - * - * Define as 1 to enable attach backoff feature - * - * When this feature is enabled, an exponentially increasing backoff wait time is added between attach attempts. - * If device is sleepy, the radio will be put to sleep during the wait time. This ensures that a battery-powered sleepy - * end-device does not drain its battery by continuously searching for a parent to attach to (when there is no - * router/parent for it to attach). - * - * The backoff time starts from a minimum interval specified by `OPENTHREAD_CONFIG_ATTACH_BACKOFF_MINIMUM_INTERVAL`, - * and every attach attempt the wait time is doubled up to `OPENTHREAD_CONFIG_ATTACH_BACKOFF_MAXIMUM_INTERVAL` which - * specifies the maximum wait time. - * - * Once the wait time reaches the maximum, a random jitter interval is added to it. The maximum value for jitter is - * specified by `OPENTHREAD_CONFIG_ATTACH_BACKOFF_JITTER_INTERVAL`. The random jitter is selected uniformly within - * range `[-JITTER, +JITTER]`. It is only added when the backoff wait interval is at maximum value. - * - */ -#ifndef OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF -#define OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF 1 -#endif - -/** - * @def OPENTHREAD_CONFIG_ATTACH_BACKOFF_MINIMUM_INTERVAL - * - * Specifies the minimum backoff wait interval (in milliseconds) used by attach backoff feature. - * - * Applicable only if attach backoff feature is enabled (see `OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF`). - * - * Please see `OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF` description for more details. - * - */ -#ifndef OPENTHREAD_CONFIG_ATTACH_BACKOFF_MINIMUM_INTERVAL -#define OPENTHREAD_CONFIG_ATTACH_BACKOFF_MINIMUM_INTERVAL 251 -#endif - -/** - * @def OPENTHREAD_CONFIG_ATTACH_BACKOFF_MAXIMUM_INTERVAL - * - * Specifies the maximum backoff wait interval (in milliseconds) used by attach backoff feature. - * - * Applicable only if attach backoff feature is enabled (see `OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF`). - * - * Please see `OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF` description for more details. - * - */ -#ifndef OPENTHREAD_CONFIG_ATTACH_BACKOFF_MAXIMUM_INTERVAL -#define OPENTHREAD_CONFIG_ATTACH_BACKOFF_MAXIMUM_INTERVAL 1200000 // 1200 seconds = 20 minutes -#endif - -/** - * @def OPENTHREAD_CONFIG_ATTACH_BACKOFF_JITTER_INTERVAL - * - * Specifies the maximum jitter interval (in milliseconds) used by attach backoff feature. - * - * Applicable only if attach backoff feature is enabled (see `OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF`). - * - * Please see `OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF` description for more details. - * - */ -#ifndef OPENTHREAD_CONFIG_ATTACH_BACKOFF_JITTER_INTERVAL -#define OPENTHREAD_CONFIG_ATTACH_BACKOFF_JITTER_INTERVAL 2000 -#endif - -/** - * @def OPENTHREAD_CONFIG_SEND_UNICAST_ANNOUNCE_RESPONSE - * - * Define as 1 to enable sending of a unicast MLE Announce message in response to a received Announce message from - * a device. - * - * @note The unicast MLE announce message is sent in addition to (and after) the multicast MLE Announce. - * - */ -#ifndef OPENTHREAD_CONFIG_SEND_UNICAST_ANNOUNCE_RESPONSE -#define OPENTHREAD_CONFIG_SEND_UNICAST_ANNOUNCE_RESPONSE 1 -#endif - /** * @def OPENTHREAD_CONFIG_NCP_ENABLE_PEEK_POKE * @@ -704,46 +550,6 @@ #define OPENTHREAD_CONFIG_NCP_ENABLE_MCU_POWER_STATE_CONTROL 0 #endif -/** - * @def OPENTHREAD_CONFIG_MLE_SEND_LINK_REQUEST_ON_ADV_TIMEOUT - * - * Define to 1 to send an MLE Link Request when MAX_NEIGHBOR_AGE is reached for a neighboring router. - * - */ -#ifndef OPENTHREAD_CONFIG_MLE_SEND_LINK_REQUEST_ON_ADV_TIMEOUT -#define OPENTHREAD_CONFIG_MLE_SEND_LINK_REQUEST_ON_ADV_TIMEOUT 0 -#endif - -/** - * @def OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN - * - * Specifies the minimum link margin in dBm required before attempting to establish a link with a neighboring router. - * - */ -#ifndef OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN -#define OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN 10 -#endif - -/** - * @def OPENTHREAD_CONFIG_MLE_PARTITION_MERGE_MARGIN_MIN - * - * Specifies the minimum link margin in dBm required before attempting to merge to a different partition. - * - */ -#ifndef OPENTHREAD_CONFIG_MLE_PARTITION_MERGE_MARGIN_MIN -#define OPENTHREAD_CONFIG_MLE_PARTITION_MERGE_MARGIN_MIN 10 -#endif - -/** - * @def OPENTHREAD_CONFIG_MLE_CHILD_ROUTER_LINKS - * - * Specifies the desired number of router links that a REED / FED attempts to maintain. - * - */ -#ifndef OPENTHREAD_CONFIG_MLE_CHILD_ROUTER_LINKS -#define OPENTHREAD_CONFIG_MLE_CHILD_ROUTER_LINKS 3 -#endif - /** * @def OPENTHREAD_CONFIG_ENABLE_DEBUG_UART * @@ -814,17 +620,6 @@ #define OPENTHREAD_CONFIG_TIME_SYNC_XTAL_THRESHOLD 300 #endif -/** - * @def OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES - * - * Enable experimental mode for 'deep' networks, allowing packet routes up to 32 nodes. - * This mode is incompatible with Thread 1.1.1 and older. - * - */ -#ifndef OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES -#define OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES 0 -#endif - /** * @def OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH * diff --git a/src/core/openthread-core-config.h b/src/core/openthread-core-config.h index d14254474..adc478500 100644 --- a/src/core/openthread-core-config.h +++ b/src/core/openthread-core-config.h @@ -61,6 +61,7 @@ #include "config/link_raw.h" #include "config/logging.h" #include "config/mac.h" +#include "config/mle.h" #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE || OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE || \ OPENTHREAD_CONFIG_COMMISSIONER_ENABLE || OPENTHREAD_CONFIG_JOINER_ENABLE diff --git a/src/core/thread/child_table.hpp b/src/core/thread/child_table.hpp index ee9534809..0f0588846 100644 --- a/src/core/thread/child_table.hpp +++ b/src/core/thread/child_table.hpp @@ -294,7 +294,7 @@ public: private: enum { - kMaxChildren = OPENTHREAD_CONFIG_MAX_CHILDREN, + kMaxChildren = OPENTHREAD_CONFIG_MLE_MAX_CHILDREN, }; static bool MatchesFilter(const Child &aChild, StateFilter aFilter); diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index e50a9c1d4..199b58c69 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -95,7 +95,7 @@ Mle::Mle(Instance &aInstance) , mDiscoverAnsiIndex(0) , mDiscoverInProgress(false) , mDiscoverEnableFiltering(false) -#if OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#if OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH , mPreviousParentRloc(Mac::kShortAddrInvalid) #endif #if OPENTHREAD_CONFIG_ENABLE_PERIODIC_PARENT_SEARCH @@ -416,7 +416,7 @@ otError Mle::Restore(void) mParent.SetRloc16(GetRloc16(GetRouterId(networkInfo.mRloc16))); mParent.SetState(Neighbor::kStateRestored); -#if OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#if OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH mPreviousParentRloc = mParent.GetRloc16(); #endif } @@ -678,7 +678,7 @@ uint32_t Mle::GetAttachStartDelay(void) const delay = 1 + Random::NonCrypto::GetUint32InRange(0, kParentRequestRouterTimeout); ExitNow(); } -#if OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF +#if OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE else { uint16_t counter = mAttachCounter - 1; @@ -694,7 +694,7 @@ uint32_t Mle::GetAttachStartDelay(void) const delay = Random::NonCrypto::AddJitter(kAttachBackoffMaxInterval, kAttachBackoffJitter); } } -#endif // OPENTHREAD_CONFIG_ENABLE_ATTACH_BACKOFF +#endif // OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE jitter = Random::NonCrypto::GetUint32InRange(0, kAttachStartJitter); @@ -773,7 +773,7 @@ void Mle::SetStateChild(uint16_t aRloc16) UpdateParentSearchState(); #endif -#if OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#if OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH InformPreviousParent(); mPreviousParentRloc = mParent.GetRloc16(); #endif @@ -1384,7 +1384,7 @@ otError Mle::AppendAddressRegistration(Message &aMessage, AddressRegistrationMod length += entry.GetLength(); counter++; // only continue to append if there is available entry. - VerifyOrExit(!done && (counter < OPENTHREAD_CONFIG_IP_ADDRS_TO_REGISTER)); + VerifyOrExit(!done && (counter < OPENTHREAD_CONFIG_MLE_IP_ADDRS_TO_REGISTER)); } // For sleepy end device, register external multicast addresses to the parent for indirect transmission @@ -1403,7 +1403,7 @@ otError Mle::AppendAddressRegistration(Message &aMessage, AddressRegistrationMod counter++; // only continue to append if there is available entry. - VerifyOrExit(counter < OPENTHREAD_CONFIG_IP_ADDRS_TO_REGISTER); + VerifyOrExit(counter < OPENTHREAD_CONFIG_MLE_IP_ADDRS_TO_REGISTER); } } @@ -3727,7 +3727,7 @@ otError Mle::HandleAnnounce(const Message &aMessage, const Ip6::MessageInfo &aMe { SendAnnounce(channel, false); -#if OPENTHREAD_CONFIG_SEND_UNICAST_ANNOUNCE_RESPONSE +#if OPENTHREAD_CONFIG_MLE_SEND_UNICAST_ANNOUNCE_RESPONSE SendAnnounce(channel, false, aMessageInfo.GetPeerAddr()); #endif } @@ -3992,7 +3992,7 @@ exit: return error; } -#if OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#if OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH otError Mle::InformPreviousParent(void) { otError error = OT_ERROR_NONE; @@ -4028,7 +4028,7 @@ exit: return error; } -#endif // OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#endif // OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH #if OPENTHREAD_CONFIG_ENABLE_PERIODIC_PARENT_SEARCH void Mle::HandleParentSearchTimer(Timer &aTimer) @@ -4098,7 +4098,7 @@ void Mle::StartParentSearchTimer(void) void Mle::UpdateParentSearchState(void) { -#if OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#if OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH // If we are in middle of backoff and backoff was not canceled // recently and we recently detached from a previous parent, @@ -4126,7 +4126,7 @@ void Mle::UpdateParentSearchState(void) } } -#endif // OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#endif // OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH mParentSearchRecentlyDetached = false; diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp index ed8f5fa36..17cda7908 100644 --- a/src/core/thread/mle.hpp +++ b/src/core/thread/mle.hpp @@ -1664,9 +1664,9 @@ private: kParentSearchRssThreadhold = OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD, // Parameters for "attach backoff" feature (CONFIG_ENABLE_ATTACH_BACKOFF) - Intervals are in milliseconds. - kAttachBackoffMinInterval = OPENTHREAD_CONFIG_ATTACH_BACKOFF_MINIMUM_INTERVAL, - kAttachBackoffMaxInterval = OPENTHREAD_CONFIG_ATTACH_BACKOFF_MAXIMUM_INTERVAL, - kAttachBackoffJitter = OPENTHREAD_CONFIG_ATTACH_BACKOFF_JITTER_INTERVAL, + kAttachBackoffMinInterval = OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MINIMUM_INTERVAL, + kAttachBackoffMaxInterval = OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL, + kAttachBackoffJitter = OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_JITTER_INTERVAL, }; enum ParentRequestType @@ -1737,7 +1737,7 @@ private: void UpdateServiceAlocs(void); #endif -#if OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#if OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH otError InformPreviousParent(void); #endif @@ -1791,7 +1791,7 @@ private: bool mDiscoverInProgress; bool mDiscoverEnableFiltering; -#if OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH +#if OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH uint16_t mPreviousParentRloc; #endif diff --git a/src/core/thread/mle_constants.hpp b/src/core/thread/mle_constants.hpp index 872879b4f..2c2c71c35 100644 --- a/src/core/thread/mle_constants.hpp +++ b/src/core/thread/mle_constants.hpp @@ -46,7 +46,7 @@ namespace Mle { enum { - kMaxChildren = OPENTHREAD_CONFIG_MAX_CHILDREN, + kMaxChildren = OPENTHREAD_CONFIG_MLE_MAX_CHILDREN, kMaxChildKeepAliveAttempts = 4, ///< Maximum keep alive attempts before attempting to reattach to a new Parent kFailedChildTransmissions = OPENTHREAD_CONFIG_FAILED_CHILD_TRANSMISSIONS, ///< FAILED_CHILD_TRANSMISSIONS }; @@ -99,7 +99,7 @@ enum enum { kAdvertiseIntervalMin = 1, ///< ADVERTISEMENT_I_MIN (sec) -#if OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES +#if OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE kAdvertiseIntervalMax = 5, ///< ADVERTISEMENT_I_MAX (sec) proposal #else kAdvertiseIntervalMax = 32, ///< ADVERTISEMENT_I_MAX (sec) @@ -108,26 +108,26 @@ enum kRouterIdReuseDelay = 100, ///< ID_REUSE_DELAY (sec) kRouterIdSequencePeriod = 10, ///< ID_SEQUENCE_PERIOD (sec) kMaxNeighborAge = 100, ///< MAX_NEIGHBOR_AGE (sec) -#if OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES +#if OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE kMaxRouteCost = 127, ///< MAX_ROUTE_COST proposal #else kMaxRouteCost = 16, ///< MAX_ROUTE_COST #endif - kMaxRouterId = 62, ///< MAX_ROUTER_ID - kInvalidRouterId = kMaxRouterId + 1, ///< Value indicating incorrect Router Id - kMaxRouters = OPENTHREAD_CONFIG_MAX_ROUTERS, ///< MAX_ROUTERS - kMinDowngradeNeighbors = 7, ///< MIN_DOWNGRADE_NEIGHBORS - kNetworkIdTimeout = 120, ///< NETWORK_ID_TIMEOUT (sec) - kParentRouteToLeaderTimeout = 20, ///< PARENT_ROUTE_TO_LEADER_TIMEOUT (sec) - kRouterSelectionJitter = 120, ///< ROUTER_SELECTION_JITTER (sec) - kRouterDowngradeThreshold = 23, ///< ROUTER_DOWNGRADE_THRESHOLD (routers) - kRouterUpgradeThreshold = 16, ///< ROUTER_UPGRADE_THRESHOLD (routers) - kMaxLeaderToRouterTimeout = 90, ///< INFINITE_COST_TIMEOUT (sec) - kReedAdvertiseInterval = 570, ///< REED_ADVERTISEMENT_INTERVAL (sec) - kReedAdvertiseJitter = 60, ///< REED_ADVERTISEMENT_JITTER (sec) - kLeaderWeight = 64, ///< Default leader weight - kMleEndDeviceTimeout = OPENTHREAD_CONFIG_DEFAULT_CHILD_TIMEOUT, ///< MLE_END_DEVICE_TIMEOUT (sec) - kMeshLocalPrefixContextId = 0, ///< 0 is reserved for Mesh Local Prefix + kMaxRouterId = 62, ///< MAX_ROUTER_ID + kInvalidRouterId = kMaxRouterId + 1, ///< Value indicating incorrect Router Id + kMaxRouters = OPENTHREAD_CONFIG_MLE_MAX_ROUTERS, ///< MAX_ROUTERS + kMinDowngradeNeighbors = 7, ///< MIN_DOWNGRADE_NEIGHBORS + kNetworkIdTimeout = 120, ///< NETWORK_ID_TIMEOUT (sec) + kParentRouteToLeaderTimeout = 20, ///< PARENT_ROUTE_TO_LEADER_TIMEOUT (sec) + kRouterSelectionJitter = 120, ///< ROUTER_SELECTION_JITTER (sec) + kRouterDowngradeThreshold = 23, ///< ROUTER_DOWNGRADE_THRESHOLD (routers) + kRouterUpgradeThreshold = 16, ///< ROUTER_UPGRADE_THRESHOLD (routers) + kMaxLeaderToRouterTimeout = 90, ///< INFINITE_COST_TIMEOUT (sec) + kReedAdvertiseInterval = 570, ///< REED_ADVERTISEMENT_INTERVAL (sec) + kReedAdvertiseJitter = 60, ///< REED_ADVERTISEMENT_JITTER (sec) + kLeaderWeight = 64, ///< Default leader weight + kMleEndDeviceTimeout = OPENTHREAD_CONFIG_MLE_CHILD_TIMEOUT_DEFAULT, ///< MLE_END_DEVICE_TIMEOUT (sec) + kMeshLocalPrefixContextId = 0, ///< 0 is reserved for Mesh Local Prefix }; /** diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 8207e723f..6d8508d26 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -2580,7 +2580,7 @@ exit: return; } -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE otError MleRouter::SetSteeringData(const Mac::ExtAddress *aExtAddress) { otError error = OT_ERROR_NONE; @@ -2615,7 +2615,7 @@ otError MleRouter::SetSteeringData(const Mac::ExtAddress *aExtAddress) return error; } -#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#endif // OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE otError MleRouter::HandleDiscoveryRequest(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { @@ -2651,14 +2651,14 @@ otError MleRouter::HandleDiscoveryRequest(const Message &aMessage, const Ip6::Me if (discoveryRequest.IsJoiner()) { -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE if (!mSteeringData.IsCleared()) { break; } else // if steering data is not set out of band, fall back to network data -#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#endif // OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE { VerifyOrExit(Get().IsJoiningEnabled()); } @@ -2747,7 +2747,7 @@ otError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, uint1 networkName.SetNetworkName(Get().GetNetworkName()); SuccessOrExit(error = message->AppendTlv(networkName)); -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE // If steering data is set out of band, use that value. // Otherwise use the one from commissioning data. @@ -2756,7 +2756,7 @@ otError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, uint1 SuccessOrExit(error = message->AppendTlv(mSteeringData)); } else -#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#endif // OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE { // Steering Data TLV steeringData = Get().GetCommissioningDataSubTlv(MeshCoP::Tlv::kSteeringData); diff --git a/src/core/thread/mle_router_ftd.hpp b/src/core/thread/mle_router_ftd.hpp index 0bb1f923c..b84c2eaec 100644 --- a/src/core/thread/mle_router_ftd.hpp +++ b/src/core/thread/mle_router_ftd.hpp @@ -539,7 +539,7 @@ public: otError SendLinkRequest(Neighbor *aNeighbor); -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE /** * This method sets steering data out of band * @@ -552,7 +552,7 @@ public: * */ otError SetSteeringData(const Mac::ExtAddress *aExtAddress); -#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#endif // OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE /** * This method gets the assigned parent priority. @@ -795,9 +795,9 @@ private: int8_t mParentPriority; ///< The assigned parent priority value, -2 means not assigned. -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE MeshCoP::SteeringDataTlv mSteeringData; -#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#endif // OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE }; } // namespace Mle diff --git a/src/core/thread/mle_router_mtd.hpp b/src/core/thread/mle_router_mtd.hpp index 2c1ac9f04..bec46eec5 100644 --- a/src/core/thread/mle_router_mtd.hpp +++ b/src/core/thread/mle_router_mtd.hpp @@ -116,9 +116,9 @@ public: otError SendChildUpdateRequest(void) { return Mle::SendChildUpdateRequest(); } -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE otError SetSteeringData(const otExtAddress *) { return OT_ERROR_NOT_IMPLEMENTED; } -#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#endif // OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE otError GetMaxChildTimeout(uint32_t &) { return OT_ERROR_NOT_IMPLEMENTED; } diff --git a/src/core/thread/mle_tlvs.hpp b/src/core/thread/mle_tlvs.hpp index 7d704547f..e52a4da73 100644 --- a/src/core/thread/mle_tlvs.hpp +++ b/src/core/thread/mle_tlvs.hpp @@ -488,7 +488,7 @@ private: uint32_t mFrameCounter; } OT_TOOL_PACKED_END; -#if !OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES +#if !OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE /** * This class implements Source Address TLV generation and parsing. @@ -662,7 +662,7 @@ private: uint8_t mRouteData[kMaxRouterId + 1]; } OT_TOOL_PACKED_END; -#else // OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES +#else // OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE /** * This class implements Source Address TLV generation and parsing. @@ -872,7 +872,7 @@ private: uint8_t mRouteData[kMaxRouterId + 1 + kMaxRouterId / 2 + 1]; } OT_TOOL_PACKED_END; -#endif // OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES +#endif // OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE /** * This class implements Source Address TLV generation and parsing. diff --git a/src/core/thread/topology.hpp b/src/core/thread/topology.hpp index 3907031de..25cf5fa0d 100644 --- a/src/core/thread/topology.hpp +++ b/src/core/thread/topology.hpp @@ -618,13 +618,13 @@ public: #endif // #if OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE private: -#if OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD < 2 -#error OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD should be at least set to 2. +#if OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD < 2 +#error OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD should be at least set to 2. #endif enum { - kNumIp6Addresses = OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD - 1, + kNumIp6Addresses = OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD - 1, }; uint8_t mNetworkDataVersion; ///< Current Network Data version @@ -705,7 +705,7 @@ private: uint8_t mNextHop; ///< The next hop towards this router uint8_t mLinkQualityOut : 2; ///< The link quality out for this router -#if OPENTHREAD_CONFIG_ENABLE_LONG_ROUTES +#if OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE uint8_t mCost; ///< The cost to this router via neighbor router #else uint8_t mCost : 4; ///< The cost to this router via neighbor router diff --git a/src/ncp/ncp_base.cpp b/src/ncp/ncp_base.cpp index 35b6cb341..da92491b3 100644 --- a/src/ncp/ncp_base.cpp +++ b/src/ncp/ncp_base.cpp @@ -275,7 +275,7 @@ NcpBase::NcpBase(Instance *aInstance) otIcmp6SetEchoMode(mInstance, OT_ICMP6_ECHO_HANDLER_DISABLED); #if OPENTHREAD_FTD otThreadRegisterNeighborTableCallback(mInstance, &NcpBase::HandleNeighborTableChanged); -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE memset(&mSteeringDataAddress, 0, sizeof(mSteeringDataAddress)); #endif otThreadRegisterParentResponseCallback(mInstance, &NcpBase::HandleParentResponseInfo, static_cast(this)); @@ -1785,7 +1785,7 @@ template <> otError NcpBase::HandlePropertyGet(void) SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_ERROR_RATE_TRACKING)); #endif -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_OOB_STEERING_DATA)); #endif @@ -1797,7 +1797,7 @@ template <> otError NcpBase::HandlePropertyGet(void) SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_PEEK_POKE)); #endif -#if OPENTHREAD_CONFIG_MAX_CHILDREN > 0 +#if OPENTHREAD_CONFIG_MLE_MAX_CHILDREN > 0 SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_ROLE_ROUTER)); #endif diff --git a/src/ncp/ncp_base.hpp b/src/ncp/ncp_base.hpp index fa9936dd0..6da294ef8 100644 --- a/src/ncp/ncp_base.hpp +++ b/src/ncp/ncp_base.hpp @@ -558,7 +558,7 @@ protected: #endif #if OPENTHREAD_FTD -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE otExtAddress mSteeringDataAddress; #endif uint8_t mPreferredRouteId; diff --git a/src/ncp/ncp_base_dispatcher.cpp b/src/ncp/ncp_base_dispatcher.cpp index fa58d0c1c..b189ea41a 100644 --- a/src/ncp/ncp_base_dispatcher.cpp +++ b/src/ncp/ncp_base_dispatcher.cpp @@ -603,7 +603,7 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey) handler = &NcpBase::HandlePropertyGet; break; #endif -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE case SPINEL_PROP_THREAD_STEERING_DATA: handler = &NcpBase::HandlePropertyGet; break; @@ -913,7 +913,7 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey) case SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID: handler = &NcpBase::HandlePropertySet; break; -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE case SPINEL_PROP_THREAD_STEERING_DATA: handler = &NcpBase::HandlePropertySet; break; diff --git a/src/ncp/ncp_base_ftd.cpp b/src/ncp/ncp_base_ftd.cpp index a49c1822d..78eb0a746 100644 --- a/src/ncp/ncp_base_ftd.cpp +++ b/src/ncp/ncp_base_ftd.cpp @@ -820,7 +820,7 @@ exit: return error; } -#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE template <> otError NcpBase::HandlePropertyGet(void) { @@ -838,7 +838,7 @@ template <> otError NcpBase::HandlePropertySet exit: return error; } -#endif // #if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB +#endif // #if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE template <> otError NcpBase::HandlePropertyGet(void) { diff --git a/tests/toranj/openthread-core-toranj-config.h b/tests/toranj/openthread-core-toranj-config.h index 7ba2b8e9a..abdb8b735 100644 --- a/tests/toranj/openthread-core-toranj-config.h +++ b/tests/toranj/openthread-core-toranj-config.h @@ -107,28 +107,28 @@ #define OPENTHREAD_CONFIG_ADDRESS_QUERY_MAX_RETRY_DELAY 120 /** - * @def OPENTHREAD_CONFIG_MAX_CHILDREN + * @def OPENTHREAD_CONFIG_MLE_MAX_CHILDREN * * The maximum number of children. * */ -#define OPENTHREAD_CONFIG_MAX_CHILDREN 32 +#define OPENTHREAD_CONFIG_MLE_MAX_CHILDREN 32 /** - * @def OPENTHREAD_CONFIG_DEFAULT_CHILD_TIMEOUT + * @def OPENTHREAD_CONFIG_MLE_CHILD_TIMEOUT_DEFAULT * * The default child timeout value (in seconds). * */ -#define OPENTHREAD_CONFIG_DEFAULT_CHILD_TIMEOUT 120 +#define OPENTHREAD_CONFIG_MLE_CHILD_TIMEOUT_DEFAULT 120 /** - * @def OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD + * @def OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD * * The maximum number of supported IPv6 address registrations per child. * */ -#define OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD 10 +#define OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD 10 /** * @def OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS @@ -227,15 +227,15 @@ #define OPENTHREAD_CONFIG_NCP_TX_BUFFER_SIZE 4096 /** - * @def OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB + * @def OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE * * Enable setting steering data out of band. * */ -#define OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB 1 +#define OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE 1 /** - * @def OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH + * @def OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH * * Define as 1 for a child to inform its previous parent when it attaches to a new parent. * @@ -243,7 +243,7 @@ * and mesh-local IP address as the source address) to its previous parent. * */ -#define OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH 1 +#define OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH 1 /** * @def OPENTHREAD_CONFIG_MLE_SEND_LINK_REQUEST_ON_ADV_TIMEOUT diff --git a/tests/toranj/test-019-inform-previous-parent.py b/tests/toranj/test-019-inform-previous-parent.py index 26648940b..c96097ddc 100644 --- a/tests/toranj/test-019-inform-previous-parent.py +++ b/tests/toranj/test-019-inform-previous-parent.py @@ -53,7 +53,7 @@ from wpan import verify # # This test verifies the behavior of the child and parents under this feature. # -# Note that `OPENTHREAD_CONFIG_INFORM_PREVIOUS_PARENT_ON_REATTACH` is enabled in +# Note that `OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH` is enabled in # `openthread-core-toranj.config.h` header file. # diff --git a/tests/unit/test_child.cpp b/tests/unit/test_child.cpp index 4fc3f88e5..52074f8f1 100644 --- a/tests/unit/test_child.cpp +++ b/tests/unit/test_child.cpp @@ -41,7 +41,7 @@ static ot::Instance *sInstance; enum { - kMaxChildIp6Addresses = OPENTHREAD_CONFIG_IP_ADDRS_PER_CHILD, + kMaxChildIp6Addresses = OPENTHREAD_CONFIG_MLE_IP_ADDRS_PER_CHILD, }; void VerifyChildIp6Addresses(const Child &aChild, uint8_t aAddressListLength, const Ip6::Address aAddressList[]) diff --git a/tests/unit/test_child_table.cpp b/tests/unit/test_child_table.cpp index ad5e11046..9499c01e2 100644 --- a/tests/unit/test_child_table.cpp +++ b/tests/unit/test_child_table.cpp @@ -41,7 +41,7 @@ static ot::Instance *sInstance; enum { - kMaxChildren = OPENTHREAD_CONFIG_MAX_CHILDREN, + kMaxChildren = OPENTHREAD_CONFIG_MLE_MAX_CHILDREN, }; struct TestChild