Radio Configuration

This module includes the platform abstraction for radio configuration.

Summary

Functions

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

Functions

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

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

Details
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.

Details
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.

Details
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.

Details
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
)

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

Details
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.

Details
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.

Details
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.

Details
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.

Details
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 (

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

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.

Details
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.

Details
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.

Details
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.

Details
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.

Details
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.

Details
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.

Details
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.

Details
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.

Details
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.

Resources

OpenThread API Reference topics originate from the source code, available on GitHub. For more information, or to contribute to our documentation, refer to Resources.