Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[link-metrics] update link metrics callback parameter #9343

Merged
merged 1 commit into from
Aug 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading