diff --git a/include/openthread/instance.h b/include/openthread/instance.h index a74bde35b..ae50bbf8d 100644 --- a/include/openthread/instance.h +++ b/include/openthread/instance.h @@ -53,7 +53,7 @@ extern "C" { * @note This number versions both OpenThread platform and user APIs. * */ -#define OPENTHREAD_API_VERSION (408) +#define OPENTHREAD_API_VERSION (409) /** * @addtogroup api-instance diff --git a/include/openthread/link_metrics.h b/include/openthread/link_metrics.h index 3b6a76ac5..cf79a8009 100644 --- a/include/openthread/link_metrics.h +++ b/include/openthread/link_metrics.h @@ -247,6 +247,17 @@ otError otLinkMetricsSendLinkProbe(otInstance *aInstance, uint8_t aSeriesId, uint8_t aLength); +/** + * If Link Metrics Manager is enabled. + * + * @param[in] aInstance A pointer to an OpenThread instance. + * + * @retval TRUE Link Metrics Manager is enabled. + * @retval FALSE Link Metrics Manager is not enabled. + * + */ +bool otLinkMetricsManagerIsEnabled(otInstance *aInstance); + /** * Enable or disable Link Metrics Manager. * diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index 2a98ee0ec..79a296936 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -3812,8 +3812,6 @@ template <> otError Interpreter::Process(Arg aArgs[]) { otError error = OT_ERROR_NONE; - VerifyOrExit(!aArgs[0].IsEmpty(), error = OT_ERROR_INVALID_ARGS); - /** * @cli linkmetricsmgr (enable,disable) * @code @@ -3829,7 +3827,7 @@ template <> otError Interpreter::Process(Arg aArgs[]) * #otLinkMetricsManagerSetEnabled * */ - if (ProcessEnableDisable(aArgs, otLinkMetricsManagerSetEnabled) == OT_ERROR_NONE) + if (ProcessEnableDisable(aArgs, otLinkMetricsManagerIsEnabled, otLinkMetricsManagerSetEnabled) == OT_ERROR_NONE) { } /** @@ -3868,7 +3866,6 @@ template <> otError Interpreter::Process(Arg aArgs[]) error = OT_ERROR_INVALID_COMMAND; } -exit: return error; } #endif // OPENTHREAD_CONFIG_LINK_METRICS_MANAGER_ENABLE diff --git a/src/core/api/link_metrics_api.cpp b/src/core/api/link_metrics_api.cpp index 8e678d921..d822ba806 100644 --- a/src/core/api/link_metrics_api.cpp +++ b/src/core/api/link_metrics_api.cpp @@ -99,6 +99,11 @@ otError otLinkMetricsSendLinkProbe(otInstance *aInstance, } #if OPENTHREAD_CONFIG_LINK_METRICS_MANAGER_ENABLE +bool otLinkMetricsManagerIsEnabled(otInstance *aInstance) +{ + return AsCoreType(aInstance).Get().IsEnabled(); +} + void otLinkMetricsManagerSetEnabled(otInstance *aInstance, bool aEnable) { AsCoreType(aInstance).Get().SetEnabled(aEnable); diff --git a/src/core/utils/link_metrics_manager.hpp b/src/core/utils/link_metrics_manager.hpp index 098865e31..df42809c2 100644 --- a/src/core/utils/link_metrics_manager.hpp +++ b/src/core/utils/link_metrics_manager.hpp @@ -151,6 +151,15 @@ public: */ explicit LinkMetricsManager(Instance &aInstance); + /** + * Is the LinkMetricsManager feature enabled. + * + * @retval TRUE Link Metrics Manager is enabled. + * @retval FALSE Link Metrics Manager is not enabled. + * + */ + bool IsEnabled(void) { return mEnabled; } + /** * Enable/Disable the LinkMetricsManager feature. * diff --git a/tests/scripts/expect/v1_2-linkmetricsmgr.exp b/tests/scripts/expect/v1_2-linkmetricsmgr.exp index 2a1de2ac6..32e7ac4f3 100755 --- a/tests/scripts/expect/v1_2-linkmetricsmgr.exp +++ b/tests/scripts/expect/v1_2-linkmetricsmgr.exp @@ -35,6 +35,9 @@ setup_two_nodes switch_node 1 send "linkmetricsmgr enable\n" expect_line "Done" +send "linkmetricsmgr\n" +expect_line "Enabled" +expect_line "Done" sleep 10 @@ -52,6 +55,9 @@ sleep 5 send "linkmetricsmgr disable\n" expect_line "Done" +send "linkmetricsmgr\n" +expect_line "Disabled" +expect_line "Done" send "linkmetricsmgr show\n" expect_line "Done" send "linkmetricsmgr xxx\n" @@ -64,6 +70,9 @@ send "linkmetricsmgr enable\n" expect_line "Done" send "linkmetricsmgr enable\n" expect_line "Done" +send "linkmetricsmgr\n" +expect_line "Enabled" +expect_line "Done" send "ping $addr\n" expect "16 bytes from $addr: icmp_seq=" @@ -84,6 +93,9 @@ send "linkmetricsmgr disable\n" expect_line "Done" send "linkmetricsmgr disable\n" expect_line "Done" +send "linkmetricsmgr\n" +expect_line "Disabled" +expect_line "Done" send "ping $addr\n" expect "16 bytes from $addr: icmp_seq=" @@ -103,6 +115,9 @@ send "linkmetricsmgr disable\n" expect_line "Done" send "linkmetricsmgr enable\n" expect_line "Done" +send "linkmetricsmgr\n" +expect_line "Enabled" +expect_line "Done" send "ping $addr\n" expect "16 bytes from $addr: icmp_seq=" @@ -122,6 +137,9 @@ send "linkmetricsmgr enable\n" expect_line "Done" send "linkmetricsmgr disable\n" expect_line "Done" +send "linkmetricsmgr\n" +expect_line "Disabled" +expect_line "Done" send "ping $addr\n" expect "16 bytes from $addr: icmp_seq="