Raw Link

This module includes functions that control the raw link-layer configuration.

Typedefs

typedef void(* otLinkRawReceiveDone ) ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
This function pointer on receipt of a IEEE 802.15.4 frame.
typedef void(* otLinkRawTransmitDone ) ( otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
This function pointer on receipt of a IEEE 802.15.4 frame.
typedef void(* otLinkRawEnergyScanDone ) ( otInstance *aInstance, int8_t aEnergyScanMaxRssi)
This function pointer on receipt of a IEEE 802.15.4 frame.

Functions

otError otLinkRawSetReceiveDone ( otInstance *aInstance, otLinkRawReceiveDone aCallback)
This function enables/disables the raw link-layer.
bool otLinkRawIsEnabled ( otInstance *aInstance)
This function indicates whether or not the raw link-layer is enabled.
bool otLinkRawGetPromiscuous ( otInstance *aInstance)
This function gets the status of promiscuous mode.
otError otLinkRawSetPromiscuous ( otInstance *aInstance, bool aEnable)
This function enables or disables promiscuous mode.
otError otLinkRawSetShortAddress ( otInstance *aInstance, uint16_t aShortAddress)
Set the Short Address for address filtering.
otError otLinkRawSleep ( otInstance *aInstance)
Transition the radio from Receive to Sleep.
otError otLinkRawReceive ( otInstance *aInstance)
Transitioning the radio from Sleep to Receive.
bool otLinkRawIsTransmittingOrScanning ( otInstance *aInstance)
This function indicates whether or not the raw link-layer is busy transmitting or scanning.
otRadioFrame * otLinkRawGetTransmitBuffer ( otInstance *aInstance)
The radio transitions from Transmit to Receive.
otError otLinkRawTransmit ( otInstance *aInstance, otLinkRawTransmitDone aCallback)
This method begins the transmit sequence on the radio.
int8_t otLinkRawGetRssi ( otInstance *aInstance)
Get the most recent RSSI measurement.
otRadioCaps otLinkRawGetCaps ( otInstance *aInstance)
Get the radio capabilities.
otError otLinkRawEnergyScan ( otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration, otLinkRawEnergyScanDone aCallback)
This method begins the energy scan sequence on the radio.
otError otLinkRawSrcMatchEnable ( otInstance *aInstance, bool aEnable)
Enable/Disable source match for frame pending.
otError otLinkRawSrcMatchAddShortEntry ( otInstance *aInstance, uint16_t aShortAddress)
Adding short address to the source match table.
otError otLinkRawSrcMatchAddExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
Adding extended address to the source match table.
otError otLinkRawSrcMatchClearShortEntry ( otInstance *aInstance, uint16_t aShortAddress)
Removing short address to the source match table.
otError otLinkRawSrcMatchClearExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
Removing extended address to the source match table of the radio.
otError otLinkRawSrcMatchClearShortEntries ( otInstance *aInstance)
Removing all the short addresses from the source match table.
otError otLinkRawSrcMatchClearExtEntries ( otInstance *aInstance)
Removing all the extended addresses from the source match table.
otError otLinkRawSetMacKey ( otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKey *aPrevKey, const otMacKey *aCurrKey, const otMacKey *aNextKey)
Update MAC keys and key index.
otError otLinkRawSetMacFrameCounter ( otInstance *aInstance, uint32_t aMacFrameCounter)
Sets the current MAC frame counter value.
uint64_t otLinkRawGetRadioTime ( otInstance *aInstance)
Get current platform time (64bits width) of the radio chip.

Detailed Description

This module includes functions that control the raw link-layer configuration.

Typedef Documentation

otLinkRawEnergyScanDone

typedef void(* otLinkRawEnergyScanDone) ( otInstance *aInstance, int8_t aEnergyScanMaxRssi)

This function pointer on receipt of a IEEE 802.15.4 frame.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aEnergyScanMaxRssi The maximum RSSI encountered on the scanned channel.

otLinkRawReceiveDone

typedef void(* otLinkRawReceiveDone) ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)

This function pointer on receipt of a IEEE 802.15.4 frame.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aFrame A pointer to the received frame or NULL if the receive operation was aborted.
[in] aError OT_ERROR_NONE when successfully received a frame. OT_ERROR_ABORT when reception was aborted and a frame was not received.

otLinkRawTransmitDone

typedef void(* otLinkRawTransmitDone) ( otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)

This function pointer on receipt of a IEEE 802.15.4 frame.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aFrame A pointer to the frame that was transmitted.
[in] aAckFrame A pointer to the ACK frame.
[in] aError OT_ERROR_NONE when the frame was transmitted. OT_ERROR_NO_ACK when the frame was transmitted but no ACK was received OT_ERROR_CHANNEL_ACCESS_FAILURE when the transmission could not take place due to activity on the channel. OT_ERROR_ABORT when transmission was aborted for other reasons.

Function Documentation

otLinkRawEnergyScan()

otError otLinkRawEnergyScan ( otInstance * aInstance,
uint8_t aScanChannel,
uint16_t aScanDuration,
otLinkRawEnergyScanDone aCallback
)

This method begins the energy scan sequence on the radio.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aScanChannel The channel to perform the energy scan on.
[in] aScanDuration The duration, in milliseconds, for the channel to be scanned.
[in] aCallback A pointer to a function called on completion of a scanned channel.
Return values
OT_ERROR_NONE Successfully started scanning the channel.
OT_ERROR_BUSY The radio is performing enery scanning.
OT_ERROR_NOT_IMPLEMENTED The radio doesn't support energy scanning.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawGetCaps()

otRadioCaps otLinkRawGetCaps ( otInstance * aInstance )

Get the radio capabilities.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Returns
The radio capability bit vector. The stack enables or disables some functions based on this value.

otLinkRawGetPromiscuous()

bool otLinkRawGetPromiscuous ( otInstance * aInstance )

This function gets the status of promiscuous mode.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
true Promiscuous mode is enabled.
false Promiscuous mode is disabled.

otLinkRawGetRadioTime()

uint64_t otLinkRawGetRadioTime ( otInstance * aInstance )

Get current platform time (64bits width) of the radio chip.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Returns
The current radio time in microseconds.

otLinkRawGetRssi()

int8_t otLinkRawGetRssi ( otInstance * aInstance )

Get the most recent RSSI measurement.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Returns
The RSSI in dBm when it is valid. 127 when RSSI is invalid.

otLinkRawGetTransmitBuffer()

otRadioFrame * otLinkRawGetTransmitBuffer ( otInstance * aInstance )

The radio transitions from Transmit to Receive.

This method returns a pointer to the transmit buffer.

The caller forms the IEEE 802.15.4 frame in this buffer then calls otLinkRawTransmit() to request transmission.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Returns
A pointer to the transmit buffer or NULL if the raw link-layer isn't enabled.

otLinkRawIsEnabled()

bool otLinkRawIsEnabled ( otInstance * aInstance )

This function indicates whether or not the raw link-layer is enabled.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
true The raw link-layer is enabled.
false The raw link-layer is disabled.

otLinkRawIsTransmittingOrScanning()

bool otLinkRawIsTransmittingOrScanning ( otInstance * aInstance )

This function indicates whether or not the raw link-layer is busy transmitting or scanning.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
true The raw link-layer is busy transmitting or scanning.
false The raw link-layer is not busy transmitting or scanning.

otLinkRawReceive()

otError otLinkRawReceive ( otInstance * aInstance )

Transitioning the radio from Sleep to Receive.

Turn on the radio.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
OT_ERROR_NONE Successfully transitioned to Receive.
OT_ERROR_INVALID_STATE The radio was disabled or transmitting.

otLinkRawSetMacFrameCounter()

otError otLinkRawSetMacFrameCounter ( otInstance * aInstance,
uint32_t aMacFrameCounter
)

Sets the current MAC frame counter value.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aMacFrameCounter The MAC frame counter value.
Return values
OT_ERROR_NONE If successful.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSetMacKey()

otError otLinkRawSetMacKey ( otInstance * aInstance,
uint8_t aKeyIdMode,
uint8_t aKeyId,
const otMacKey * aPrevKey,
const otMacKey * aCurrKey,
const otMacKey * aNextKey
)

Update MAC keys and key index.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aKeyIdMode The key ID mode.
[in] aKeyId The key index.
[in] aPrevKey The previous MAC key.
[in] aCurrKey The current MAC key.
[in] aNextKey The next MAC key.
Return values
OT_ERROR_NONE If successful.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSetPromiscuous()

otError otLinkRawSetPromiscuous ( otInstance * aInstance,
bool aEnable
)

This function enables or disables promiscuous mode.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aEnable A value to enable or disable promiscuous mode.
Return values
OT_ERROR_NONE If successful.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSetReceiveDone()

otError otLinkRawSetReceiveDone ( otInstance * aInstance,
otLinkRawReceiveDone aCallback
)

This function enables/disables the raw link-layer.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aCallback A pointer to a function called on receipt of a IEEE 802.15.4 frame. NULL to disable the raw-link layer.
Return values
OT_ERROR_FAILED The radio could not be enabled/disabled.
OT_ERROR_INVALID_STATE If the OpenThread IPv6 interface is already enabled.
OT_ERROR_NONE If the enable state was successfully set.

otLinkRawSetShortAddress()

otError otLinkRawSetShortAddress ( otInstance * aInstance,
uint16_t aShortAddress
)

Set the Short Address for address filtering.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aShortAddress The IEEE 802.15.4 Short Address.
Return values
OT_ERROR_NONE If successful.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSleep()

otError otLinkRawSleep ( otInstance * aInstance )

Transition the radio from Receive to Sleep.

Turn off the radio.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
OT_ERROR_NONE Successfully transitioned to Sleep.
OT_ERROR_BUSY The radio was transmitting
OT_ERROR_INVALID_STATE The radio was disabled

otLinkRawSrcMatchAddExtEntry()

otError otLinkRawSrcMatchAddExtEntry ( otInstance * aInstance,
const otExtAddress * aExtAddress
)

Adding extended address to the source match table.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aExtAddress The extended address to be added.
Return values
OT_ERROR_NONE Successfully added extended address to the source match table.
OT_ERROR_NO_BUFS No available entry in the source match table.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSrcMatchAddShortEntry()

otError otLinkRawSrcMatchAddShortEntry ( otInstance * aInstance,
uint16_t aShortAddress
)

Adding short address to the source match table.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aShortAddress The short address to be added.
Return values
OT_ERROR_NONE Successfully added short address to the source match table.
OT_ERROR_NO_BUFS No available entry in the source match table.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSrcMatchClearExtEntries()

otError otLinkRawSrcMatchClearExtEntries ( otInstance * aInstance )

Removing all the extended addresses from the source match table.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
OT_ERROR_NONE If successful.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSrcMatchClearExtEntry()

otError otLinkRawSrcMatchClearExtEntry ( otInstance * aInstance,
const otExtAddress * aExtAddress
)

Removing extended address to the source match table of the radio.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aExtAddress The extended address to be removed.
Return values
OT_ERROR_NONE Successfully removed the extended address from the source match table.
OT_ERROR_NO_ADDRESS The extended address is not in source match table.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSrcMatchClearShortEntries()

otError otLinkRawSrcMatchClearShortEntries ( otInstance * aInstance )

Removing all the short addresses from the source match table.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
OT_ERROR_NONE If successful.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSrcMatchClearShortEntry()

otError otLinkRawSrcMatchClearShortEntry ( otInstance * aInstance,
uint16_t aShortAddress
)

Removing short address to the source match table.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aShortAddress The short address to be removed.
Return values
OT_ERROR_NONE Successfully removed short address from the source match table.
OT_ERROR_NO_ADDRESS The short address is not in source match table.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawSrcMatchEnable()

otError otLinkRawSrcMatchEnable ( otInstance * aInstance,
bool aEnable
)

Enable/Disable source match for frame pending.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aEnable Enable/disable source match for frame pending.
Return values
OT_ERROR_NONE If successful.
OT_ERROR_INVALID_STATE If the raw link-layer isn't enabled.

otLinkRawTransmit()

otError otLinkRawTransmit ( otInstance * aInstance,
otLinkRawTransmitDone aCallback
)

This method begins the transmit sequence on the radio.

The caller must form the IEEE 802.15.4 frame in the buffer provided by otLinkRawGetTransmitBuffer() before requesting transmission. The channel and transmit power are also included in the otRadioFrame structure.

The transmit sequence consists of:

  1. Transitioning the radio to Transmit from Receive.
  2. Transmits the PSDU on the given channel and at the given transmit power.
Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aCallback A pointer to a function called on completion of the transmission.
Return values
OT_ERROR_NONE Successfully transitioned to Transmit.
OT_ERROR_INVALID_STATE The radio was not in the Receive state.