Link Metrics

This module includes functions that control the Link Metrics protocol.

Classes

struct  otLinkMetrics
 This structure represents what metrics are specified to query.
 
struct  otLinkMetricsValues
 This structure represents the result (value) for a Link Metrics query.
 
struct  otLinkMetricsSeriesFlags
 This structure represents which frames are accounted in a Forward Tracking Series.

Typedefs

typedef struct otLinkMetrics otLinkMetrics
 This structure represents what metrics are specified to query.
 
typedef struct otLinkMetricsValues otLinkMetricsValues
 This structure represents the result (value) for a Link Metrics query.
 
typedef struct otLinkMetricsSeriesFlags otLinkMetricsSeriesFlags
 This structure represents which frames are accounted in a Forward Tracking Series.
 
typedef enum otLinkMetricsStatus otLinkMetricsStatus
 Link Metrics Status values.
 
typedef void(* otLinkMetricsReportCallback) (const otIp6Address *aSource, const otLinkMetricsValues *aMetricsValues, uint8_t aStatus, void *aContext)
 This function pointer is called when a Link Metrics report is received.
 
typedef void(* otLinkMetricsMgmtResponseCallback) (const otIp6Address *aSource, uint8_t aStatus, void *aContext)
 This function pointer is called when a Link Metrics Management Response is received.

Enumerations

enum  otLinkMetricsStatus : uint8_t {
  OT_LINK_METRICS_STATUS_SUCCESS = 0,
  OT_LINK_METRICS_STATUS_CANNOT_SUPPORT_NEW_SERIES = 1,
  OT_LINK_METRICS_STATUS_SERIESID_ALREADY_REGISTERED = 2,
  OT_LINK_METRICS_STATUS_SERIESID_NOT_RECOGNIZED = 3,
  OT_LINK_METRICS_STATUS_NO_MATCHING_FRAMES_RECEIVED = 4,
  OT_LINK_METRICS_STATUS_OTHER_ERROR = 254
}
 Link Metrics Status values.

Functions

otError otLinkMetricsQuery (otInstance *aInstance, const otIp6Address *aDestination, uint8_t aSeriesId, const otLinkMetrics *aLinkMetricsFlags, otLinkMetricsReportCallback aCallback, void *aCallbackContext)
 This function sends an MLE Data Request to query Link Metrics.
 
otError otLinkMetricsConfigForwardTrackingSeries (otInstance *aInstance, const otIp6Address *aDestination, uint8_t aSeriesId, otLinkMetricsSeriesFlags aSeriesFlags, const otLinkMetrics *aLinkMetricsFlags, otLinkMetricsMgmtResponseCallback aCallback, void *aCallbackContext)
 This function sends an MLE Link Metrics Management Request to configure/clear a Forward Tracking Series.
 
otError otLinkMetricsSendLinkProbe (otInstance *aInstance, const otIp6Address *aDestination, uint8_t aSeriesId, uint8_t aLength)
 This function sends an MLE Link Probe message.

Detailed Description

This module includes functions that control the Link Metrics protocol.

Typedef Documentation

◆ otLinkMetricsMgmtResponseCallback

typedef void(* otLinkMetricsMgmtResponseCallback) (const otIp6Address *aSource, uint8_t aStatus, void *aContext)

This function pointer is called when a Link Metrics Management Response is received.

Parameters
[in]aSourceA pointer to the source address.
[in]aStatusThe status code in the response.
[in]aContextA pointer to application-specific context.

◆ otLinkMetricsReportCallback

typedef void(* otLinkMetricsReportCallback) (const otIp6Address *aSource, const otLinkMetricsValues *aMetricsValues, uint8_t aStatus, void *aContext)

This function pointer is called when a Link Metrics report is received.

Parameters
[in]aSourceA pointer to the source address.
[in]aMetricsValuesA pointer to the Link Metrics values (the query result).
[in]aStatusThe status code in the report (only useful when aMetricsValues is NULL).
[in]aContextA pointer to application-specific context.

Function Documentation

◆ otLinkMetricsConfigForwardTrackingSeries()

otError otLinkMetricsConfigForwardTrackingSeries ( otInstance aInstance,
const otIp6Address aDestination,
uint8_t  aSeriesId,
otLinkMetricsSeriesFlags  aSeriesFlags,
const otLinkMetrics aLinkMetricsFlags,
otLinkMetricsMgmtResponseCallback  aCallback,
void *  aCallbackContext 
)

This function sends an MLE Link Metrics Management Request to configure/clear a Forward Tracking Series.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDestinationA pointer to the destination address.
[in]aSeriesIdThe Series ID to operate with.
[in]aSeriesFlagsThe Series Flags that specifies which frames are to be accounted.
[in]aLinkMetricsFlagsA pointer to flags specifying what metrics to query. Should be NULL when aSeriesFlags is 0.
[in]aCallbackA pointer to a function that is called when Link Metrics Management Response is received.
[in]aCallbackContextA pointer to application-specific context.
Return values
OT_ERROR_NONESuccessfully sent a Link Metrics Management Request message.
OT_ERROR_NO_BUFSInsufficient buffers to generate the MLE Link Metrics Management Request message.
OT_ERROR_INVALID_ARGSaSeriesId is not within the valid range.

◆ otLinkMetricsQuery()

otError otLinkMetricsQuery ( otInstance aInstance,
const otIp6Address aDestination,
uint8_t  aSeriesId,
const otLinkMetrics aLinkMetricsFlags,
otLinkMetricsReportCallback  aCallback,
void *  aCallbackContext 
)

This function sends an MLE Data Request to query Link Metrics.

It could be either Single Probe or Forward Tracking Series.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDestinationA pointer to the destination address.
[in]aSeriesIdThe Series ID to query about, 0 for Single Probe.
[in]aLinkMetricsFlagsA pointer to flags specifying what metrics to query.
[in]aCallbackA pointer to a function that is called when Link Metrics report is received.
[in]aCallbackContextA pointer to application-specific context.
Return values
OT_ERROR_NONESuccessfully sent a Link Metrics query message.
OT_ERROR_NO_BUFSInsufficient buffers to generate the MLE Data Request message.

◆ otLinkMetricsSendLinkProbe()

otError otLinkMetricsSendLinkProbe ( otInstance aInstance,
const otIp6Address aDestination,
uint8_t  aSeriesId,
uint8_t  aLength 
)

This function sends an MLE Link Probe message.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDestinationA pointer to the destination address.
[in]aSeriesIdThe Series ID [1, 254] which the Probe message aims at.
[in]aLengthThe length of the data payload in Link Probe TLV, 0, 64.
Return values
OT_ERROR_NONESuccessfully sent a Link Probe message.
OT_ERROR_NO_BUFSInsufficient buffers to generate the MLE Link Probe message.
OT_ERROR_INVALID_ARGSaSeriesId or aLength is not within the valid range.