Skip to content

Commit

Permalink
[link-metrics] update link metrics callback parameter (#9343)
Browse files Browse the repository at this point in the history
This commit updates the type of parameter `status` in
`otLinkMetricsReportCallback` and `otLinkMetricsMgmtResponseCallback`
from `uint8_t` to `otLinkMetricsStatus` for better readability.
  • Loading branch information
Irving-cl committed Aug 13, 2023
1 parent 6f73ce2 commit 73daf43
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 23 deletions.
2 changes: 1 addition & 1 deletion include/openthread/instance.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ extern "C" {
* @note This number versions both OpenThread platform and user APIs.
*
*/
#define OPENTHREAD_API_VERSION (349)
#define OPENTHREAD_API_VERSION (350)

/**
* @addtogroup api-instance
Expand Down
6 changes: 4 additions & 2 deletions include/openthread/link_metrics.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ typedef enum otLinkMetricsStatus
*/
typedef void (*otLinkMetricsReportCallback)(const otIp6Address *aSource,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus,
otLinkMetricsStatus aStatus,
void *aContext);
/**
* Pointer is called when a Link Metrics Management Response is received.
Expand All @@ -128,7 +128,9 @@ typedef void (*otLinkMetricsReportCallback)(const otIp6Address *aSource,
* @param[in] aContext A pointer to application-specific context.
*
*/
typedef void (*otLinkMetricsMgmtResponseCallback)(const otIp6Address *aSource, uint8_t aStatus, void *aContext);
typedef void (*otLinkMetricsMgmtResponseCallback)(const otIp6Address *aSource,
otLinkMetricsStatus aStatus,
void *aContext);

/**
* Pointer is called when Enh-ACK Probing IE is received.
Expand Down
12 changes: 7 additions & 5 deletions src/cli/cli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3575,7 +3575,7 @@ template <> otError Interpreter::Process<Cmd("deviceprops")>(Arg aArgs[])
#if OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE
void Interpreter::HandleLinkMetricsReport(const otIp6Address *aAddress,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus,
otLinkMetricsStatus aStatus,
void *aContext)
{
static_cast<Interpreter *>(aContext)->HandleLinkMetricsReport(aAddress, aMetricsValues, aStatus);
Expand Down Expand Up @@ -3608,7 +3608,7 @@ void Interpreter::PrintLinkMetricsValue(const otLinkMetricsValues *aMetricsValue

void Interpreter::HandleLinkMetricsReport(const otIp6Address *aAddress,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus)
otLinkMetricsStatus aStatus)
{
OutputFormat("Received Link Metrics Report from: ");
OutputIp6AddressLine(*aAddress);
Expand All @@ -3629,12 +3629,14 @@ void Interpreter::HandleLinkMetricsReport(const otIp6Address *aAddress,
}
}

void Interpreter::HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress, uint8_t aStatus, void *aContext)
void Interpreter::HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress,
otLinkMetricsStatus aStatus,
void *aContext)
{
static_cast<Interpreter *>(aContext)->HandleLinkMetricsMgmtResponse(aAddress, aStatus);
}

void Interpreter::HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress, uint8_t aStatus)
void Interpreter::HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress, otLinkMetricsStatus aStatus)
{
OutputFormat("Received Link Metrics Management Response from: ");
OutputIp6AddressLine(*aAddress);
Expand Down Expand Up @@ -3664,7 +3666,7 @@ void Interpreter::HandleLinkMetricsEnhAckProbingIe(otShortAddress aS
}
}

const char *Interpreter::LinkMetricsStatusToStr(uint8_t aStatus)
const char *Interpreter::LinkMetricsStatusToStr(otLinkMetricsStatus aStatus)
{
static const char *const kStatusStrings[] = {
"Success", // (0) OT_LINK_METRICS_STATUS_SUCCESS
Expand Down
12 changes: 7 additions & 5 deletions src/cli/cli.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -512,16 +512,18 @@ class Interpreter : public OutputImplementer, public Output

static void HandleLinkMetricsReport(const otIp6Address *aAddress,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus,
otLinkMetricsStatus aStatus,
void *aContext);

void HandleLinkMetricsReport(const otIp6Address *aAddress,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus);
otLinkMetricsStatus aStatus);

static void HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress, uint8_t aStatus, void *aContext);
static void HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress,
otLinkMetricsStatus aStatus,
void *aContext);

void HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress, uint8_t aStatus);
void HandleLinkMetricsMgmtResponse(const otIp6Address *aAddress, otLinkMetricsStatus aStatus);

static void HandleLinkMetricsEnhAckProbingIe(otShortAddress aShortAddress,
const otExtAddress *aExtAddress,
Expand All @@ -532,7 +534,7 @@ class Interpreter : public OutputImplementer, public Output
const otExtAddress *aExtAddress,
const otLinkMetricsValues *aMetricsValues);

const char *LinkMetricsStatusToStr(uint8_t aStatus);
const char *LinkMetricsStatusToStr(otLinkMetricsStatus aStatus);
#endif // OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE

static void HandleDetachGracefullyResult(void *aContext);
Expand Down
4 changes: 2 additions & 2 deletions src/core/thread/link_metrics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ void Initiator::HandleReport(const Message &aMessage, uint16_t aOffset, uint16_t
VerifyOrExit(hasStatus || hasReport);

mReportCallback.Invoke(&aAddress, hasStatus ? nullptr : &values,
hasStatus ? static_cast<Status>(status) : kStatusSuccess);
hasStatus ? MapEnum(static_cast<Status>(status)) : MapEnum(kStatusSuccess));

exit:
LogDebg("HandleReport, error:%s", ErrorToString(error));
Expand Down Expand Up @@ -337,7 +337,7 @@ Error Initiator::HandleManagementResponse(const Message &aMessage, const Ip6::Ad

VerifyOrExit(hasStatus, error = kErrorParse);

mMgmtResponseCallback.Invoke(&aAddress, status);
mMgmtResponseCallback.Invoke(&aAddress, MapEnum(static_cast<Status>(status)));

exit:
return error;
Expand Down
10 changes: 6 additions & 4 deletions src/ncp/ncp_base.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -312,16 +312,18 @@ class NcpBase
#if OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE
static void HandleLinkMetricsReport_Jump(const otIp6Address *aSource,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus,
otLinkMetricsStatus aStatus,
void *aContext);

void HandleLinkMetricsReport(const otIp6Address *aSource,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus);
otLinkMetricsStatus aStatus);

static void HandleLinkMetricsMgmtResponse_Jump(const otIp6Address *aSource, uint8_t aStatus, void *aContext);
static void HandleLinkMetricsMgmtResponse_Jump(const otIp6Address *aSource,
otLinkMetricsStatus aStatus,
void *aContext);

void HandleLinkMetricsMgmtResponse(const otIp6Address *aSource, uint8_t aStatus);
void HandleLinkMetricsMgmtResponse(const otIp6Address *aSource, otLinkMetricsStatus aStatus);

static void HandleLinkMetricsEnhAckProbingIeReport_Jump(otShortAddress aShortAddress,
const otExtAddress *aExtAddress,
Expand Down
10 changes: 6 additions & 4 deletions src/ncp/ncp_base_mtd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4230,15 +4230,15 @@ void NcpBase::HandleJoinerCallback(otError aError)
#if OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE
void NcpBase::HandleLinkMetricsReport_Jump(const otIp6Address *aSource,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus,
otLinkMetricsStatus aStatus,
void *aContext)
{
static_cast<NcpBase *>(aContext)->HandleLinkMetricsReport(aSource, aMetricsValues, aStatus);
}

void NcpBase::HandleLinkMetricsReport(const otIp6Address *aSource,
const otLinkMetricsValues *aMetricsValues,
uint8_t aStatus)
otLinkMetricsStatus aStatus)
{
SuccessOrExit(mEncoder.BeginFrame(SPINEL_HEADER_FLAG | SPINEL_HEADER_IID_0, SPINEL_CMD_PROP_VALUE_IS,
SPINEL_PROP_THREAD_LINK_METRICS_QUERY_RESULT));
Expand All @@ -4253,12 +4253,14 @@ void NcpBase::HandleLinkMetricsReport(const otIp6Address *aSource,
return;
}

void NcpBase::HandleLinkMetricsMgmtResponse_Jump(const otIp6Address *aSource, uint8_t aStatus, void *aContext)
void NcpBase::HandleLinkMetricsMgmtResponse_Jump(const otIp6Address *aSource,
otLinkMetricsStatus aStatus,
void *aContext)
{
static_cast<NcpBase *>(aContext)->HandleLinkMetricsMgmtResponse(aSource, aStatus);
}

void NcpBase::HandleLinkMetricsMgmtResponse(const otIp6Address *aSource, uint8_t aStatus)
void NcpBase::HandleLinkMetricsMgmtResponse(const otIp6Address *aSource, otLinkMetricsStatus aStatus)
{
SuccessOrExit(mEncoder.BeginFrame(SPINEL_HEADER_FLAG | SPINEL_HEADER_IID_0, SPINEL_CMD_PROP_VALUE_IS,
SPINEL_PROP_THREAD_LINK_METRICS_MGMT_RESPONSE));
Expand Down

0 comments on commit 73daf43

Please sign in to comment.