mirror of
https://github.com/espressif/openthread.git
synced 2026-08-07 19:27:46 +00:00
[config] mle (#4020)
This commit is contained in:
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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<Instance *>(aInstance);
|
||||
|
||||
error = instance.Get<Mle::MleRouter>().SetSteeringData(static_cast<const Mac::ExtAddress *>(aExtAddress));
|
||||
|
||||
@@ -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_
|
||||
@@ -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
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
+12
-12
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<NetworkData::Leader>().IsJoiningEnabled());
|
||||
}
|
||||
@@ -2747,7 +2747,7 @@ otError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, uint1
|
||||
networkName.SetNetworkName(Get<Mac::Mac>().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<NetworkData::Leader>().GetCommissioningDataSubTlv(MeshCoP::Tlv::kSteeringData);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<void *>(this));
|
||||
@@ -1785,7 +1785,7 @@ template <> otError NcpBase::HandlePropertyGet<SPINEL_PROP_CAPS>(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<SPINEL_PROP_CAPS>(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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -603,7 +603,7 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey)
|
||||
handler = &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_COMMISSIONER_ENABLED>;
|
||||
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<SPINEL_PROP_THREAD_STEERING_DATA>;
|
||||
break;
|
||||
@@ -913,7 +913,7 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey)
|
||||
case SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID:
|
||||
handler = &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID>;
|
||||
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<SPINEL_PROP_THREAD_STEERING_DATA>;
|
||||
break;
|
||||
|
||||
@@ -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<SPINEL_PROP_THREAD_STEERING_DATA>(void)
|
||||
{
|
||||
@@ -838,7 +838,7 @@ template <> otError NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_STEERING_DATA>
|
||||
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<SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID>(void)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
#
|
||||
|
||||
|
||||
@@ -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[])
|
||||
|
||||
@@ -41,7 +41,7 @@ static ot::Instance *sInstance;
|
||||
|
||||
enum
|
||||
{
|
||||
kMaxChildren = OPENTHREAD_CONFIG_MAX_CHILDREN,
|
||||
kMaxChildren = OPENTHREAD_CONFIG_MLE_MAX_CHILDREN,
|
||||
};
|
||||
|
||||
struct TestChild
|
||||
|
||||
Reference in New Issue
Block a user