diff --git a/include/openthread/ip6.h b/include/openthread/ip6.h index 887773463..7bf32a956 100644 --- a/include/openthread/ip6.h +++ b/include/openthread/ip6.h @@ -522,6 +522,17 @@ bool otIp6IsAddressUnspecified(const otIp6Address *aAddress); */ otError otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo); +/** + * This function indicates whether the SLAAC module is enabled or not. + * + * This function requires the build-time feature `OPENTHREAD_CONFIG_ENABLE_SLAAC` to be enabled. + * + * @retval TRUE SLAAC module is enabled. + * @retval FALSE SLAAC module is disabled. + * + */ +bool otIp6IsSlaacEnabled(otInstance *aInstance); + /** * This function enables/disables the SLAAC module. * diff --git a/src/core/api/ip6_api.cpp b/src/core/api/ip6_api.cpp index 1a8a80f76..f7e789229 100644 --- a/src/core/api/ip6_api.cpp +++ b/src/core/api/ip6_api.cpp @@ -272,6 +272,11 @@ exit: #if OPENTHREAD_CONFIG_ENABLE_SLAAC +bool otIp6IsSlaacEnabled(otInstance *aInstance) +{ + return static_cast(aInstance)->Get().IsEnabled(); +} + void otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled) { Instance & instance = *static_cast(aInstance); diff --git a/src/core/utils/slaac_address.hpp b/src/core/utils/slaac_address.hpp index fe0fb8c16..d4e1fc7b1 100644 --- a/src/core/utils/slaac_address.hpp +++ b/src/core/utils/slaac_address.hpp @@ -86,7 +86,7 @@ public: /** * This method enables the SLAAC module. * - * When enabled, new SLAAC addresses are generated and added fron on-mesh prefixes in network data. + * When enabled, new SLAAC addresses are generated and added from on-mesh prefixes in network data. * */ void Enable(void); @@ -99,6 +99,15 @@ public: */ void Disable(void); + /** + * This method indicates whether SLAAC module is enabled or not. + * + * @retval TRUE SLAAC module is enabled. + * @retval FALSE SLAAC module is disabled. + * + */ + bool IsEnabled(void) const { return mEnabled; } + /** * This methods sets a SLAAC prefix filter handler. *