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] aSource A pointer to the source address.
[in] aStatus The status code in the response.
[in] aContext A 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] aSource A pointer to the source address.
[in] aMetricsValues A pointer to the Link Metrics values (the query result).
[in] aStatus The status code in the report (only useful when aMetricsValues is NULL).
[in] aContext A 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] aInstance A pointer to an OpenThread instance.
[in] aDestination A pointer to the destination address.
[in] aSeriesId The Series ID to operate with.
[in] aSeriesFlags The Series Flags that specifies which frames are to be accounted.
[in] aLinkMetricsFlags A pointer to flags specifying what metrics to query. Should be NULL when aSeriesFlags is 0 .
[in] aCallback A pointer to a function that is called when Link Metrics Management Response is received.
[in] aCallbackContext A pointer to application-specific context.
Return values
OT_ERROR_NONE Successfully sent a Link Metrics Management Request message.
OT_ERROR_NO_BUFS Insufficient buffers to generate the MLE Link Metrics Management Request message.
OT_ERROR_INVALID_ARGS aSeriesId 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] aInstance A pointer to an OpenThread instance.
[in] aDestination A pointer to the destination address.
[in] aSeriesId The Series ID to query about, 0 for Single Probe.
[in] aLinkMetricsFlags A pointer to flags specifying what metrics to query.
[in] aCallback A pointer to a function that is called when Link Metrics report is received.
[in] aCallbackContext A pointer to application-specific context.
Return values
OT_ERROR_NONE Successfully sent a Link Metrics query message.
OT_ERROR_NO_BUFS Insufficient 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] aInstance A pointer to an OpenThread instance.
[in] aDestination A pointer to the destination address.
[in] aSeriesId The Series ID [1, 254] which the Probe message aims at.
[in] aLength The length of the data payload in Link Probe TLV, 0, 64.
Return values
OT_ERROR_NONE Successfully sent a Link Probe message.
OT_ERROR_NO_BUFS Insufficient buffers to generate the MLE Link Probe message.
OT_ERROR_INVALID_ARGS aSeriesId or aLength is not within the valid range.