Radio Extension#
This module includes the Silicon Labs extension to the openthread platform radio interface.
The functions in this modules provide an API that can be called from SoC or host based openthread applications.
Note
Many of the functions defined in this module are wrappers on top of the Silicon Labs RAIL API. For additional information on the RAIl API please refer to the
Silicon Labs RAIL API Reference Guide
. Those functions that are wrappers to RAIL functions include a reference to the underlying RAIL function.
Enumerations#
This enumeration defines the coex event counters and can be used as an index into the aCoexCounters
table returned in a call to otPlatRadioExtensionGetCoexCounters.
Functions#
Get the antenna diversity transmit antenna mode.
Set the antenna diversity transmit antenna mode.
Get the antenna diversity receive antenna mode.
Set the antenna diversity receive antenna mode.
Get the antenna diversity active phy state.
Get the coexistence directional priority state and pulse width.
Set the coexistence directional priority state and pulse width.
Get the override input value of a GPIO.
Set the override input value of a GPIO.
Get the coexistence active phy state.
Get the coexistence phy select state and timeout.
Set the coexistence phy select state and timeout.
Get the coexistence bitmask of features.
Set the coexistence bitmask of features.
Get the coexistence bitmask of constant PTA features that can not be modified using public APIs.
Get the coexistence enabled status.
Set the coexistence enabled status.
Get the coexistence PWM configuration.
Set the coexistence PWM configuration.
Clear the coexistence counters.
Get the coexistence counters.
Set the coexistence radio holdoff status.
Get RAIL debug counter values.
Clear the RAIL debug counters.
Enumeration Documentation#
otPlatRadioExtensionCoexEvent_t#
otPlatRadioExtensionCoexEvent_t
This enumeration defines the coex event counters and can be used as an index into the aCoexCounters
table returned in a call to otPlatRadioExtensionGetCoexCounters.
Enumerator | |
---|---|
OT_PLAT_RADIO_EXTENSION_COEX_EVENT_LO_PRI_REQUESTED | Low priority request initiated. |
OT_PLAT_RADIO_EXTENSION_COEX_EVENT_HI_PRI_REQUESTED | High priority request initiated. |
OT_PLAT_RADIO_EXTENSION_COEX_EVENT_LO_PRI_DENIED | Low priority request denied. |
OT_PLAT_RADIO_EXTENSION_COEX_EVENT_HI_PRI_DENIED | High priority request denied. |
OT_PLAT_RADIO_EXTENSION_COEX_EVENT_LO_PRI_TX_ABORTED | Low priority transmission aborted mid packet. |
OT_PLAT_RADIO_EXTENSION_COEX_EVENT_HI_PRI_TX_ABORTED | High priority transmission aborted mid packet. |
OT_PLAT_RADIO_EXTENSION_COEX_EVENT_COUNT | Number of coexistence events. |
633
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
Function Documentation#
otPlatRadioExtensionGetTxAntennaMode#
otError otPlatRadioExtensionGetTxAntennaMode (uint8_t * aMode)
Get the antenna diversity transmit antenna mode.
[out] | aMode | A pointer to the location where the current transmit antenna mode will be returned. Antenna modes are defined by the RAIL |
Requires the ot_ant_div
component.
See Also
RAIL API: sl_rail_util_ant_div_get_tx_antenna_mode()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the transmit antenna mode.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Antenna diversity is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
97
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetTxAntennaMode#
otError otPlatRadioExtensionSetTxAntennaMode (uint8_t aMode)
Set the antenna diversity transmit antenna mode.
[in] | aMode | The antenna mode to use for transmit. Antenna modes are defined by the RAIL |
Requires the ot_ant_div
component.
See Also
RAIL API: sl_rail_util_ant_div_set_tx_antenna_mode()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the transmit antenna mode.
OT_ERROR_FAILED: The specified transmit antenna mode is not supported.
OT_ERROR_NOT_IMPLEMENTED: Antenna diversity is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
119
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetRxAntennaMode#
otError otPlatRadioExtensionGetRxAntennaMode (uint8_t * aMode)
Get the antenna diversity receive antenna mode.
[out] | aMode | A pointer to the location where the current receive antenna mode will be returned. Antenna modes are defined by the RAIL |
Requires the ot_ant_div
component.
See Also
RAIL API: sl_rail_util_ant_div_get_rx_antenna_mode()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the receive antenna mode.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Antenna diversity is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
142
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetRxAntennaMode#
otError otPlatRadioExtensionSetRxAntennaMode (uint8_t aMode)
Set the antenna diversity receive antenna mode.
[in] | aMode | The antenna mode to use for receive. Antenna modes are defined by the RAIL |
Requires the ot_ant_div
component.
See Also
RAIL API: sl_rail_util_ant_div_set_rx_antenna_mode()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the receive antenna mode.
OT_ERROR_FAILED: The specified receive antenna mode is not supported.
OT_ERROR_NOT_IMPLEMENTED: Antenna diversity is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
164
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetActivePhy#
otError otPlatRadioExtensionGetActivePhy (uint8_t * aActivePhy)
Get the antenna diversity active phy state.
[out] | aActivePhy | A pointer to the location where the current phy state will be returned. Phy states are defined by the RAIL |
Requires the ot_ant_div
component.
See Also
RAIL API: sl_rail_util_ieee802154_get_active_radio_config()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the phy state.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Antenna diversity is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
187
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetDpState#
otError otPlatRadioExtensionGetDpState (uint8_t * aDpPulse)
Get the coexistence directional priority state and pulse width.
[out] | aDpPulse | A pointer to the location where the current directional priority state will be returned. If |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_get_directional_priority_pulse_width()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the directional priority.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
211
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetDpState#
otError otPlatRadioExtensionSetDpState (uint8_t aDpPulse)
Set the coexistence directional priority state and pulse width.
[in] | aDpPulse | The directional priority state to set. If |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_set_directional_priority_pulse_width()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the directional priority.
OT_ERROR_FAILED: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
234
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetGpioInputOverride#
otError otPlatRadioExtensionGetGpioInputOverride (uint8_t aGpioIndex, bool * aEnabled)
Get the override input value of a GPIO.
[in] | aGpioIndex | The GPIO index
|
[out] | aEnabled | A pointer to the location where the boolean override input value will be returned. A TRUE value indicating the override input value is enabled, FALSE disabled. The return is inverted if the selected GPIO is active low. |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_get_gpio_input_override()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the override input value.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
262
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetGpioInputOverride#
otError otPlatRadioExtensionSetGpioInputOverride (uint8_t aGpioIndex, bool aEnabled)
Set the override input value of a GPIO.
[in] | aGpioIndex | The GPIO index
|
[in] | aEnabled | The boolean override input value. A TRUE value indicating the override input value is enabled, FALSE disabled. |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_set_gpio_input_override()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the override input value.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_FAILED: The override input value of the specified GPIO can not be set.
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
289
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetActiveRadio#
otError otPlatRadioExtensionGetActiveRadio (uint8_t * aActivePhy)
Get the coexistence active phy state.
[out] | aActivePhy | A pointer to the location where the current phy state will be returned. Phy states are defined by the RAIL |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_ieee802154_get_active_radio_config()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the phy state.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
312
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetPhySelectTimeout#
otError otPlatRadioExtensionGetPhySelectTimeout (uint8_t * aTimeout)
Get the coexistence phy select state and timeout.
[out] | aTimeout | A pointer to the location where the current phy select state will be returned. If |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_get_phy_select_timeout()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the phy select state.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
336
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetPhySelectTimeout#
otError otPlatRadioExtensionSetPhySelectTimeout (uint8_t aTimeout)
Set the coexistence phy select state and timeout.
[in] | aTimeout | The phy select state to set. If |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_set_phy_select_timeout()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the directional priority.
OT_ERROR_FAILED: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
359
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetCoexOptions#
otError otPlatRadioExtensionGetCoexOptions (uint32_t * aPtaOptions)
Get the coexistence bitmask of features.
[out] | aPtaOptions | A pointer to the location where the coexistence feature bitmask will be returned. The feature bitmask is defined by the set of macros making up the RAIL |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_get_options()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the bitmask of features.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
382
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetCoexOptions#
otError otPlatRadioExtensionSetCoexOptions (uint32_t aPtaOptions)
Set the coexistence bitmask of features.
[in] | aPtaOptions | The coexistence feature bitmask to set. The feature bitmask is defined by the set of macros making up the RAIL |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_set_options()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the bitmask of features.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_FAILED: The bitmask of features can not be set.
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
405
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetCoexConstantOptions#
otError otPlatRadioExtensionGetCoexConstantOptions (uint32_t * aPtaOptions)
Get the coexistence bitmask of constant PTA features that can not be modified using public APIs.
[out] | aPtaOptions | A pointer to the location where the coexistence constant PTA feature bitmask will be returned. The feature bitmask is defined by the set of macros making up the RAIL |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_get_constant_options()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the bitmask of of constant PTA features.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
428
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionIsCoexEnabled#
otError otPlatRadioExtensionIsCoexEnabled (bool * aPtaState)
Get the coexistence enabled status.
[out] | aPtaState | A pointer to the location where the coexistence enabled status will be returned. |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_is_enabled()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the coexistence status.
OT_ERROR_INVALID_ARGS: The
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
449
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetCoexEnable#
otError otPlatRadioExtensionSetCoexEnable (bool aPtaState)
Set the coexistence enabled status.
[in] | aPtaState | The coexistence enabled status. |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_set_enable()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the coexistence status.
OT_ERROR_FAILED: The coexistence status can not be set.
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
469
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetRequestPwmArgs#
otError otPlatRadioExtensionGetRequestPwmArgs (uint8_t * aPwmReq, uint8_t * aPwmDutyCycle, uint8_t * aPwmPeriodHalfMs)
Get the coexistence PWM configuration.
[out] | aPwmReq | A pointer to the location where the coexistence PWM request is returned. The value is defined as a bitmap using shift values from the RAIL |
[out] | aPwmDutyCycle | A pointer to the location where the coexistence PWM duty cycle value is returned. |
[out] | aPwmPeriodHalfMs | A pointer to the location where the coexistence PWM period half MS value is returned. |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_get_request_pwm_args()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the PWM configuration.
OT_ERROR_INVALID_ARGS: One or more of the parameters
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
497
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetRequestPwmArgs#
otError otPlatRadioExtensionSetRequestPwmArgs (uint8_t aPwmReq, uint8_t aPwmDutyCycle, uint8_t aPwmPeriodHalfMs)
Set the coexistence PWM configuration.
[in] | aPwmReq | The coexistence PWM request. The value is defined as a bitmap using shift values from the RAIL |
[in] | aPwmDutyCycle | The coexistence PWM duty cycle. |
[in] | aPwmPeriodHalfMs | The coexistencec PWM period half MS. |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_set_request_pwm()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the PWM configuration.
OT_ERROR_FAILED: The coexistence radio PWM configuration can not be set/.
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
521
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionClearCoexCounters#
otError otPlatRadioExtensionClearCoexCounters (void )
Clear the coexistence counters.
N/A |
Requires the ot_coex
component.
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully cleared the coexistence counters.
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented or
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
537
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetCoexCounters#
otError otPlatRadioExtensionGetCoexCounters (uint8_t aNumEntries, uint32_t aCoexCounters)
Get the coexistence counters.
[in] | aNumEntries | The number of entries in |
[out] | aCoexCounters | A pointer to an array where the coexistence counters will be returned. See otPlatRadioExtensionCoexEvent_t which defines what coexistence counter each array element stores. |
Requires the ot_coex
component.
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained the coexistence counters.
OT_ERROR_INVALID_ARGS: aNumEntries
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented or
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
562
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionSetRadioHoldoff#
otError otPlatRadioExtensionSetRadioHoldoff (bool aEnabled)
Set the coexistence radio holdoff status.
[in] | aEnabled | The coexistence radio holdoff status. |
Requires the ot_coex
component.
See Also
RAIL API: sl_rail_util_coex_set_radio_holdoff()
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully set the coexistence radio holdoff status.
OT_ERROR_FAILED: The coexistence radio holdoff status can not be set.
OT_ERROR_NOT_IMPLEMENTED: Coexistence is not implemented.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
582
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionGetRadioCounters#
otError otPlatRadioExtensionGetRadioCounters (efr32RadioCounters * aCounters)
Get RAIL debug counter values.
[out] | aCounters | Pointer to struct to store counter values. |
Requires the ot_efr32_custom_cli
component.
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully obtained radio counter values.
OT_ERROR_INVALID_ARGS: aCounters
OT_ERROR_NOT_IMPLEMENTED: RADIO_CONFIG_DEBUG_COUNTERS_SUPPORT is not enabled.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
666
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h
otPlatRadioExtensionClearRadioCounters#
otError otPlatRadioExtensionClearRadioCounters (void )
Clear the RAIL debug counters.
N/A |
Requires the ot_efr32_custom_cli
component.
Returns
Error code indicating success of the function call.
Return values
OT_ERROR_NONE: Successfully cleared radio counter values.
OT_ERROR_NOT_IMPLEMENTED: RADIO_CONFIG_DEBUG_COUNTERS_SUPPORT is not enabled.
OT_ERROR_NOT_FOUND: Returned to host applications when the coprocessor is not built with the required component.
681
of file /mnt/raid/workspaces/ws.X1Vz59oix/overlay/gsdk/protocol/openthread/platform-abstraction/include/radio_extension.h