Radio Configuration

This module includes the platform abstraction for radio configuration.

Functions

otRadioCaps otPlatRadioGetCaps ( otInstance *aInstance)
Get the radio capabilities.
const char * otPlatRadioGetVersionString ( otInstance *aInstance)
Get the radio version string.
int8_t otPlatRadioGetReceiveSensitivity ( otInstance *aInstance)
Get the radio receive sensitivity value.
void otPlatRadioGetIeeeEui64 ( otInstance *aInstance, uint8_t *aIeeeEui64)
Gets the factory-assigned IEEE EUI-64 for this interface.
void otPlatRadioSetPanId ( otInstance *aInstance, otPanId aPanId)
Set the PAN ID for address filtering.
void otPlatRadioSetExtendedAddress ( otInstance *aInstance, const otExtAddress *aExtAddress)
Set the Extended Address for address filtering.
void otPlatRadioSetShortAddress ( otInstance *aInstance, otShortAddress aShortAddress)
Set the Short Address for address filtering.
otError otPlatRadioGetTransmitPower ( otInstance *aInstance, int8_t *aPower)
Get the radio's transmit power in dBm.
otError otPlatRadioSetTransmitPower ( otInstance *aInstance, int8_t aPower)
Set the radio's transmit power in dBm.
otError otPlatRadioGetCcaEnergyDetectThreshold ( otInstance *aInstance, int8_t *aThreshold)
Get the radio's CCA ED threshold in dBm measured at antenna connector per IEEE 802.15.4 - 2015 section 10.1.4.
otError otPlatRadioSetCcaEnergyDetectThreshold ( otInstance *aInstance, int8_t aThreshold)
Set the radio's CCA ED threshold in dBm measured at antenna connector per IEEE 802.15.4 - 2015 section 10.1.4.
otError otPlatRadioGetFemLnaGain ( otInstance *aInstance, int8_t *aGain)
Get the external FEM's Rx LNA gain in dBm.
otError otPlatRadioSetFemLnaGain ( otInstance *aInstance, int8_t aGain)
Set the external FEM's Rx LNA gain in dBm.
bool otPlatRadioGetPromiscuous ( otInstance *aInstance)
Get the status of promiscuous mode.
void otPlatRadioSetPromiscuous ( otInstance *aInstance, bool aEnable)
Enable or disable promiscuous mode.
void otPlatRadioSetMacKey ( otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
Update MAC keys and key index.
void otPlatRadioSetMacFrameCounter ( otInstance *aInstance, uint32_t aMacFrameCounter)
This method sets the current MAC frame counter value.
uint64_t otPlatRadioGetNow ( otInstance *aInstance)
Get the current estimated time (in microseconds) of the radio chip.
uint32_t otPlatRadioGetBusSpeed ( otInstance *aInstance)
Get the bus speed in bits/second between the host and the radio chip.

Detailed Description

This module includes the platform abstraction for radio configuration.

Function Documentation

otPlatRadioGetBusSpeed()

uint32_t otPlatRadioGetBusSpeed ( otInstance * aInstance )

Get the bus speed in bits/second between the host and the radio chip.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Returns
The bus speed in bits/second between the host and the radio chip. Return 0 when the MAC and above layer and Radio layer resides on the same chip.

otPlatRadioGetCaps()

otRadioCaps otPlatRadioGetCaps ( otInstance * aInstance )

Get the radio capabilities.

Parameters
[in] aInstance The OpenThread instance structure.
Returns
The radio capability bit vector (see OT_RADIO_CAP_* definitions).

otPlatRadioGetCcaEnergyDetectThreshold()

otError otPlatRadioGetCcaEnergyDetectThreshold ( otInstance * aInstance,
int8_t * aThreshold
)

Get the radio's CCA ED threshold in dBm measured at antenna connector per IEEE 802.15.4 - 2015 section 10.1.4.

Parameters
[in] aInstance The OpenThread instance structure.
[out] aThreshold The CCA ED threshold in dBm.
Return values
OT_ERROR_NONE Successfully retrieved the CCA ED threshold.
OT_ERROR_INVALID_ARGS aThreshold was NULL.
OT_ERROR_NOT_IMPLEMENTED CCA ED threshold configuration via dBm is not implemented.

otPlatRadioGetFemLnaGain()

otError otPlatRadioGetFemLnaGain ( otInstance * aInstance,
int8_t * aGain
)

Get the external FEM's Rx LNA gain in dBm.

Parameters
[in] aInstance The OpenThread instance structure.
[out] aGain The external FEM's Rx LNA gain in dBm.
Return values
OT_ERROR_NONE Successfully retrieved the external FEM's LNA gain.
OT_ERROR_INVALID_ARGS aGain was NULL.
OT_ERROR_NOT_IMPLEMENTED External FEM's LNA setting is not implemented.

otPlatRadioGetIeeeEui64()

void otPlatRadioGetIeeeEui64 ( otInstance * aInstance,
uint8_t * aIeeeEui64
)

Gets the factory-assigned IEEE EUI-64 for this interface.

Parameters
[in] aInstance The OpenThread instance structure.
[out] aIeeeEui64 A pointer to the factory-assigned IEEE EUI-64.

otPlatRadioGetNow()

uint64_t otPlatRadioGetNow ( otInstance * aInstance )

Get the current estimated time (in microseconds) of the radio chip.

This microsecond timer must be a free-running timer. The timer must continue to advance with microsecond precision even when the radio is in the sleep state.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Returns
The current time in microseconds. UINT64_MAX when platform does not support or radio time is not ready.

otPlatRadioGetPromiscuous()

bool otPlatRadioGetPromiscuous ( otInstance * aInstance )

Get the status of promiscuous mode.

Parameters
[in] aInstance The OpenThread instance structure.
Return values
TRUE Promiscuous mode is enabled.
FALSE Promiscuous mode is disabled.

otPlatRadioGetReceiveSensitivity()

int8_t otPlatRadioGetReceiveSensitivity ( otInstance * aInstance )

Get the radio receive sensitivity value.

Parameters
[in] aInstance The OpenThread instance structure.
Returns
The radio receive sensitivity value in dBm.

otPlatRadioGetTransmitPower()

otError otPlatRadioGetTransmitPower ( otInstance * aInstance,
int8_t * aPower
)

Get the radio's transmit power in dBm.

Note
The transmit power returned will be no larger than the power specified in the max power table for the current channel.
Parameters
[in] aInstance The OpenThread instance structure.
[out] aPower The transmit power in dBm.
Return values
OT_ERROR_NONE Successfully retrieved the transmit power.
OT_ERROR_INVALID_ARGS aPower was NULL.
OT_ERROR_NOT_IMPLEMENTED Transmit power configuration via dBm is not implemented.

otPlatRadioGetVersionString()

const char* otPlatRadioGetVersionString ( otInstance * aInstance )

Get the radio version string.

This is an optional radio driver platform function. If not provided by platform radio driver, OpenThread uses the OpenThread version instead (

See also
otGetVersionString() ).
Parameters
[in] aInstance The OpenThread instance structure.
Returns
A pointer to the OpenThread radio version.

otPlatRadioSetCcaEnergyDetectThreshold()

otError otPlatRadioSetCcaEnergyDetectThreshold ( otInstance * aInstance,
int8_t aThreshold
)

Set the radio's CCA ED threshold in dBm measured at antenna connector per IEEE 802.15.4 - 2015 section 10.1.4.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aThreshold The CCA ED threshold in dBm.
Return values
OT_ERROR_NONE Successfully set the transmit power.
OT_ERROR_INVALID_ARGS Given threshold is out of range.
OT_ERROR_NOT_IMPLEMENTED CCA ED threshold configuration via dBm is not implemented.

otPlatRadioSetExtendedAddress()

void otPlatRadioSetExtendedAddress ( otInstance * aInstance,
const otExtAddress * aExtAddress
)

Set the Extended Address for address filtering.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aExtAddress A pointer to the IEEE 802.15.4 Extended Address stored in little-endian byte order.

otPlatRadioSetFemLnaGain()

otError otPlatRadioSetFemLnaGain ( otInstance * aInstance,
int8_t aGain
)

Set the external FEM's Rx LNA gain in dBm.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aGain The external FEM's Rx LNA gain in dBm.
Return values
OT_ERROR_NONE Successfully set the external FEM's LNA gain.
OT_ERROR_NOT_IMPLEMENTED External FEM's LNA gain setting is not implemented.

otPlatRadioSetMacFrameCounter()

void otPlatRadioSetMacFrameCounter ( otInstance * aInstance,
uint32_t aMacFrameCounter
)

This method sets the current MAC frame counter value.

This function is used when radio provides OT_RADIO_CAPS_TRANSMIT_SEC capability.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aMacFrameCounter The MAC frame counter value.

otPlatRadioSetMacKey()

void otPlatRadioSetMacKey ( otInstance * aInstance,
uint8_t aKeyIdMode,
uint8_t aKeyId,
const otMacKeyMaterial * aPrevKey,
const otMacKeyMaterial * aCurrKey,
const otMacKeyMaterial * aNextKey,
otRadioKeyType aKeyType
)

Update MAC keys and key index.

This function is used when radio provides OT_RADIO_CAPS_TRANSMIT_SEC capability.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aKeyIdMode The key ID mode.
[in] aKeyId Current MAC key index.
[in] aPrevKey A pointer to the previous MAC key.
[in] aCurrKey A pointer to the current MAC key.
[in] aNextKey A pointer to the next MAC key.
[in] aKeyType Key Type used.

otPlatRadioSetPanId()

void otPlatRadioSetPanId ( otInstance * aInstance,
otPanId aPanId
)

Set the PAN ID for address filtering.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aPanId The IEEE 802.15.4 PAN ID.

otPlatRadioSetPromiscuous()

void otPlatRadioSetPromiscuous ( otInstance * aInstance,
bool aEnable
)

Enable or disable promiscuous mode.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aEnable TRUE to enable or FALSE to disable promiscuous mode.

otPlatRadioSetShortAddress()

void otPlatRadioSetShortAddress ( otInstance * aInstance,
otShortAddress aShortAddress
)

Set the Short Address for address filtering.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aShortAddress The IEEE 802.15.4 Short Address.

otPlatRadioSetTransmitPower()

otError otPlatRadioSetTransmitPower ( otInstance * aInstance,
int8_t aPower
)

Set the radio's transmit power in dBm.

Note
The real transmit power will be no larger than the power specified in the max power table for the current channel.
Parameters
[in] aInstance The OpenThread instance structure.
[in] aPower The transmit power in dBm.
Return values
OT_ERROR_NONE Successfully set the transmit power.
OT_ERROR_NOT_IMPLEMENTED Transmit power configuration via dBm is not implemented.