diff --git a/src/core/backbone_router/bbr_local.hpp b/src/core/backbone_router/bbr_local.hpp index e51e17ffa..3b474ffcc 100644 --- a/src/core/backbone_router/bbr_local.hpp +++ b/src/core/backbone_router/bbr_local.hpp @@ -37,6 +37,15 @@ #include "openthread-core-config.h" #if OPENTHREAD_FTD && OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE + +#if (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) +#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE." +#endif + +#if !OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE +#error "OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE is required for OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE." +#endif + #include #include diff --git a/src/core/border_router/routing_manager.hpp b/src/core/border_router/routing_manager.hpp index 3fa6b1192..2d3a50a7a 100644 --- a/src/core/border_router/routing_manager.hpp +++ b/src/core/border_router/routing_manager.hpp @@ -39,6 +39,14 @@ #if OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE +#if !OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE +#error "OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE is required for OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE." +#endif + +#if !OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE +#error "OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE is required for OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE." +#endif + #include #include #include diff --git a/src/core/common/logging.hpp b/src/core/common/logging.hpp index c258d2acb..2eca1e0cc 100644 --- a/src/core/common/logging.hpp +++ b/src/core/common/logging.hpp @@ -2509,6 +2509,10 @@ const char *otLogLevelToPrefixString(otLogLevel aLogLevel); #if OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE +#if OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE +#error "Dynamic log level is not supported along with multiple OT instance feature" +#endif + /** * Local/private macro to dynamically filter log level. */ diff --git a/src/core/common/message.cpp b/src/core/common/message.cpp index 79be31278..bfc2c13fd 100644 --- a/src/core/common/message.cpp +++ b/src/core/common/message.cpp @@ -43,6 +43,10 @@ #if OPENTHREAD_MTD || OPENTHREAD_FTD +#if OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE && OPENTHREAD_CONFIG_PLATFORM_MESSAGE_MANAGEMENT +#error "OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE conflicts with OPENTHREAD_CONFIG_PLATFORM_MESSAGE_MANAGEMENT." +#endif + #if OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE && !OPENTHREAD_CONFIG_DTLS_ENABLE #error "OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE is strongly discouraged when OPENTHREAD_CONFIG_DTLS_ENABLE is off." #endif diff --git a/src/core/config/openthread-core-config-check.h b/src/core/config/openthread-core-config-check.h index ed633f7d0..aca59dadd 100644 --- a/src/core/config/openthread-core-config-check.h +++ b/src/core/config/openthread-core-config-check.h @@ -28,32 +28,7 @@ /** * @file - * Sanity checking for configuration options. - */ - -#ifndef OPENTHREAD_CORE_CONFIG_CHECK_H_ -#define OPENTHREAD_CORE_CONFIG_CHECK_H_ - -#if OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE && OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE -#error "OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE and OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE must not both be set." -#endif - -#if OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT && !OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE -#error "OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT requires OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE to be also set." -#endif - -#if OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT && OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE -#error "OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT requires DHCPv6 server on Border Router side to be enabled." -#endif - -#if OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE -#if OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE -#error "Dynamic log level is not supported along with multiple OT instance feature" -#endif -#endif - -/* - * Removed or replaced OPENTHREAD_CONFIG options. + * Checking for configuration options. Removed or replaced OPENTHREAD_CONFIG options. * * The checks below verify that none of the older configuration definition are * still defined and being used. The list below is not necessarily complete and @@ -63,6 +38,9 @@ * */ +#ifndef OPENTHREAD_CORE_CONFIG_CHECK_H_ +#define OPENTHREAD_CORE_CONFIG_CHECK_H_ + #if defined(OPENTHREAD_CONFIG_DISABLE_CCA_ON_LAST_ATTEMPT) || \ defined(OPENTHREAD_CONFIG_DISABLE_CSMA_CA_ON_LAST_ATTEMPT) || \ defined(OPENTHREAD_CONFIG_MAC_DISABLE_CSMA_CA_ON_LAST_ATTEMPT) @@ -91,8 +69,6 @@ #error "OPENTHREAD_ENABLE_CERT_LOG was replaced by OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE." #endif -//--------------------------------------------------------------------------------------------------------------------- - #ifdef OPENTHREAD_ENABLE_MULTIPLE_INSTANCES #error "OPENTHREAD_ENABLE_MULTIPLE_INSTANCES was replaced by OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE." #endif @@ -217,8 +193,6 @@ #error "OPENTHREAD_ENABLE_SPINEL_VENDOR_SUPPORT was replaced by OPENTHREAD_ENABLE_NCP_VENDOR_HOOK." #endif -//--------------------------------------------------------------------------------------------------------------------- - #ifdef OPENTHREAD_CONFIG_MAX_TX_ATTEMPTS_INDIRECT_POLLS #error \ "OPENTHREAD_CONFIG_MAX_TX_ATTEMPTS_INDIRECT_POLLS was replaced by OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS." @@ -496,60 +470,6 @@ "OPENTHREAD_CONFIG_COAP_ACK_TIMEOUT_MILLIS was removed. Use otCoapSendRequestWithParameters to configure CoAP transmission parameters." #endif -#if OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE -#if (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) -#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE" -#endif - -#if !OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE -#error "OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE is required for OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE" -#endif - -#endif // OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE - -#if OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE -#if !OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE -#error "OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE is required for OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE" -#endif - -#if !OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE -#error "OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE is required for OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE" -#endif - -#endif // OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE - -#if OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE -#if (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) -#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE" -#endif -#endif // OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE - -#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE -#if (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) -#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE" -#endif -#endif // OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE - -#if OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE -#if !OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE -#error "OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE is required for OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE" -#endif -#endif - -#if OPENTHREAD_CONFIG_MLE_LINK_METRICS_ENABLE -#if (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) -#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MLE_LINK_METRICS_ENABLE" -#endif -#endif - -#if OPENTHREAD_CONFIG_DUA_ENABLE && (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) -#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_DUA_ENABLE" -#endif - -#if OPENTHREAD_CONFIG_MLR_ENABLE && (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) -#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MLR_ENABLE" -#endif - #ifdef OPENTHREAD_CONFIG_LOG_OUTPUT_NCP_SPINEL #error "OPENTHREAD_CONFIG_LOG_OUTPUT_NCP_SPINEL is removed, use OPENTHREAD_CONFIG_LOG_OUTPUT_APP instead" #endif @@ -559,10 +479,6 @@ "(and OPENTHREAD_CONFIG_LOG_DEFINE_AS_MACRO_ONLY)" #endif -#if OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE && OPENTHREAD_CONFIG_PLATFORM_MESSAGE_MANAGEMENT -#error "OPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE conflicts with OPENTHREAD_CONFIG_PLATFORM_MESSAGE_MANAGEMENT." -#endif - #ifdef OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT #error "OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT was replaced by OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_RESPONSE_TIMEOUT" #endif diff --git a/src/core/mac/sub_mac.hpp b/src/core/mac/sub_mac.hpp index 85569fc0d..3241a8fb1 100644 --- a/src/core/mac/sub_mac.hpp +++ b/src/core/mac/sub_mac.hpp @@ -58,6 +58,18 @@ namespace ot { namespace Mac { +#if OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE && (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) +#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE." +#endif + +#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE && (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) +#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE." +#endif + +#if OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE && !OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE +#error "OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE is required for OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE." +#endif + /** * This class implements the IEEE 802.15.4 MAC (sub-MAC). * diff --git a/src/core/net/dhcp6_client.hpp b/src/core/net/dhcp6_client.hpp index 0f40b8e6e..6bb58f902 100644 --- a/src/core/net/dhcp6_client.hpp +++ b/src/core/net/dhcp6_client.hpp @@ -51,6 +51,8 @@ namespace ot { namespace Dhcp6 { +#if OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE + /** * @addtogroup core-dhcp6 * @@ -152,6 +154,19 @@ private: IdentityAssociation *mIdentityAssociationCurrent; }; +/** + * @} + * + */ + +#else // OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE + +#if OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT +#error "OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT requires OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE to be also set." +#endif + +#endif // OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE + } // namespace Dhcp6 } // namespace ot diff --git a/src/core/net/dhcp6_server.hpp b/src/core/net/dhcp6_server.hpp index 0890633c8..9269e164e 100644 --- a/src/core/net/dhcp6_server.hpp +++ b/src/core/net/dhcp6_server.hpp @@ -45,9 +45,14 @@ #include "thread/network_data_leader.hpp" namespace ot { - namespace Dhcp6 { +#if OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE + +#if OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT +#error "OPENTHREAD_ENABLE_DHCP6_MULTICAST_SOLICIT requires DHCPv6 server on Border Router side to be enabled." +#endif + /** * @addtogroup core-dhcp6 * @@ -219,6 +224,13 @@ private: uint8_t mPrefixAgentsMask; }; +/** + * @} + * + */ + +#endif // OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE + } // namespace Dhcp6 } // namespace ot diff --git a/src/core/net/udp6.hpp b/src/core/net/udp6.hpp index 343874628..0f883143e 100644 --- a/src/core/net/udp6.hpp +++ b/src/core/net/udp6.hpp @@ -60,6 +60,10 @@ class Udp; * */ +#if OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE && OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE +#error "OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE and OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE must not both be set." +#endif + /** * This class implements core UDP message handling. * diff --git a/src/core/thread/dua_manager.hpp b/src/core/thread/dua_manager.hpp index dc3a7b95b..8c2ffeb70 100644 --- a/src/core/thread/dua_manager.hpp +++ b/src/core/thread/dua_manager.hpp @@ -38,6 +38,10 @@ #if OPENTHREAD_CONFIG_DUA_ENABLE || (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_DUA_ENABLE) +#if OPENTHREAD_CONFIG_DUA_ENABLE && (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) +#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_DUA_ENABLE" +#endif + #include "backbone_router/bbr_leader.hpp" #include "coap/coap.hpp" #include "coap/coap_message.hpp" diff --git a/src/core/thread/link_metrics.hpp b/src/core/thread/link_metrics.hpp index e2d1c3731..f3b43792d 100644 --- a/src/core/thread/link_metrics.hpp +++ b/src/core/thread/link_metrics.hpp @@ -38,6 +38,10 @@ #if OPENTHREAD_CONFIG_MLE_LINK_METRICS_ENABLE +#if (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) +#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MLE_LINK_METRICS_ENABLE." +#endif + #include #include diff --git a/src/core/thread/mlr_manager.hpp b/src/core/thread/mlr_manager.hpp index fa2a9f1a3..ffc4963e4 100644 --- a/src/core/thread/mlr_manager.hpp +++ b/src/core/thread/mlr_manager.hpp @@ -38,6 +38,10 @@ #if OPENTHREAD_CONFIG_MLR_ENABLE || (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) +#if OPENTHREAD_CONFIG_MLR_ENABLE && (OPENTHREAD_CONFIG_THREAD_VERSION < OT_THREAD_VERSION_1_2) +#error "Thread 1.2 or higher version is required for OPENTHREAD_CONFIG_MLR_ENABLE" +#endif + #include "backbone_router/bbr_leader.hpp" #include "coap/coap_message.hpp" #include "common/locator.hpp"