# Radio Types

This module includes the platform abstraction for a radio frame.

## Summary

| ### Enumerations ||
|---|---|
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga385c44f6fb256e5716a2302a5b940388{ https://openthread.io/reference/group/radio-types#group__radio-types_1gga385c44f6fb256e5716a2302a5b940388a468d16458f5934e99d9aa7bea7b72822 = 1, https://openthread.io/reference/group/radio-types#group__radio-types_1gga385c44f6fb256e5716a2302a5b940388af277d29aeda6603509709053869b1834 = 10, https://openthread.io/reference/group/radio-types#group__radio-types_1gga385c44f6fb256e5716a2302a5b940388ad38f23b12da91fb3d19db0e5ac9266f0 = 0x3ff << OT_RADIO_915MHZ_OQPSK_CHANNEL_MIN, https://openthread.io/reference/group/radio-types#group__radio-types_1gga385c44f6fb256e5716a2302a5b940388a83fc2d73f59ac9c27c40bc4d99dcbe83 = 11, https://openthread.io/reference/group/radio-types#group__radio-types_1gga385c44f6fb256e5716a2302a5b940388a2302059f1a1a0dd9957b1f8f95e4f330 = 26, https://openthread.io/reference/group/radio-types#group__radio-types_1gga385c44f6fb256e5716a2302a5b940388a953bb67424191a43f17ac4ce09ce3672 = 0xffff << OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MIN }` | enumDefines the frequency band channel range. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gabc5c98fcc1211af2b80116dd6e0a035d{ https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da6d5d517247cb67a374004023245ee374 = 0, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da580a32c195f9a6fe524f5be907c5fe09 = 1 << 0, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035daab09bec5a91c5be306904003abb74734 = 1 << 1, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da97a80e5760039794583709129012a023 = 1 << 2, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035daa2daca978ba32e2c8d066d6cbba1bef5 = 1 << 3, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da6644cab299d3f5d557c76191e35cfde4 = 1 << 4, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da4a2797b9070f43ffc6e4ea8138d19bbe = 1 << 5, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da1e7695780dba986b05ec77e1f788dc2e = 1 << 6, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035dacb58d932932d8fe6f5ed85f36cd4bb0b = 1 << 7, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da5764fe81721d0fd741bf3b913570e8bf = 1 << 8, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da84e570383fb0d1176b46d400ad1dbdaa = 1 << 9, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035da7f466b78d1fa70658c4d0a19e2d321d5 = 1 << 10, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabc5c98fcc1211af2b80116dd6e0a035dac4a3af86ffcd0011bf2cb182f1c02573 = 1 << 11 }` | enumDefines constants that are used to indicate different radio capabilities. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gac36f475ca5b446f4fde4c9b90bec77c8{ https://openthread.io/reference/group/radio-types#group__radio-types_1ggac36f475ca5b446f4fde4c9b90bec77c8a4a034afb1ccced831361dd6f02ac4a3a = 2, https://openthread.io/reference/group/radio-types#group__radio-types_1ggac36f475ca5b446f4fde4c9b90bec77c8ae10baca31c07e0e820ed6f3fb16a4ca5 = 4, https://openthread.io/reference/group/radio-types#group__radio-types_1ggac36f475ca5b446f4fde4c9b90bec77c8ae6b068d15135bc455f6f3cf07398b70a = 16, https://openthread.io/reference/group/radio-types#group__radio-types_1ggac36f475ca5b446f4fde4c9b90bec77c8a14b5ea13baba46615621d8d4a5dc3eab = 2 }` | enumDefines constants about size of header IE in ACK. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga05589fbab0657f08285ebdfe93f5ec9e{ https://openthread.io/reference/group/radio-types#group__radio-types_1gga05589fbab0657f08285ebdfe93f5ec9ea5a60736070ee261713f15933526a3d3a = 60000, https://openthread.io/reference/group/radio-types#group__radio-types_1gga05589fbab0657f08285ebdfe93f5ec9ea11849363712908bc94b68b237a355c25 = (OT_RADIO_AVAILABILITY_MAX_DURATION_US / 625 + 7) / 8 }` | enumDefines constants for the radio availability schedule. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gabed82baf7f470b522273a3e37c24c600{ https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a4a71c2b96ef99d0f9f6af8beae85071a = 127, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a650263bec03034dd8b5ff4638d10d0be = 3, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a46076b5d12c2ad2c11a532aec66dc0fc = 2, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a51020aa64a3b03169e135accc85fb7f6 = 250000, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a9ea1c56ebbb853f7c075b356e3b52c00 = 8, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600aa444d588be5d15303519bb3b11ab241e = 62500, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a400e0365c213d5c902270b19e3f63b72 = 1000000 * 1 / OT_RADIO_SYMBOL_RATE, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600ac40850ad60f684412d4bf5e4a3ce7e78 = 10 * OT_RADIO_SYMBOL_TIME, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a3216e2bca5ece269a53c505a09def06e = 0, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a11e3d192986996d0901d30811f53bd12 = 127, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a8450d5f181df1a7ade818f7855a44d99 = 127, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a409df441e259df820cc2cf5c1a654088 = 0xfffe, https://openthread.io/reference/group/radio-types#group__radio-types_1ggabed82baf7f470b522273a3e37c24c600a51380a786fe7b8ab2fcb8116b220e7b2 = 0xffff }` | enum |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gab04a0655cd1e3bcac5e8f48c18df1a57{ https://openthread.io/reference/group/radio-types#group__radio-types_1ggab04a0655cd1e3bcac5e8f48c18df1a57a7b80619eb6b5f256bb3872faca8abaab = 0, https://openthread.io/reference/group/radio-types#group__radio-types_1ggab04a0655cd1e3bcac5e8f48c18df1a57ada151e6c311e626c3a09b8c5333b0957 = (1U << OT_RADIO_CHANNEL_PAGE_0), https://openthread.io/reference/group/radio-types#group__radio-types_1ggab04a0655cd1e3bcac5e8f48c18df1a57a51d2f89a1b09ed57730354ace1d08382 = 2, https://openthread.io/reference/group/radio-types#group__radio-types_1ggab04a0655cd1e3bcac5e8f48c18df1a57a1695b508c54d80eaa5f77a64410e17b7 = (1U << OT_RADIO_CHANNEL_PAGE_2) }` | enumDefines the channel page. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gaa0442c7152f84578641925a2df5f87b9{ https://openthread.io/reference/group/radio-types#group__radio-types_1ggaa0442c7152f84578641925a2df5f87b9a75b3408c954f91610eb879517e1b5d72 = 0, https://openthread.io/reference/group/radio-types#group__radio-types_1ggaa0442c7152f84578641925a2df5f87b9a836ba57b40c785347ef211f2095f4fc9 = 1 }` | enumDefines the slot durations of the radio availability schedule. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga055672199ad163e788cf20ac6ce04d3c{ https://openthread.io/reference/group/radio-types#group__radio-types_1gga055672199ad163e788cf20ac6ce04d3ca4b01501f13aabe40d685b2cb6c058840 = 0, https://openthread.io/reference/group/radio-types#group__radio-types_1gga055672199ad163e788cf20ac6ce04d3ca62afdc6a46b441d3119f5b6c4854fc49 = 1 }` | enumDefines constants about key types. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga3f89fd47d15047dbcc4137f00dad6dda` | enumRepresents the state of a radio. |

| ### Typedefs ||
|---|---|
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga50bea867580b4024e6a099e6b5b11d15` | typedef `struct https://openthread.io/reference/struct/ot-ext-address` Represents the IEEE 802.15.4 Extended Address. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gade84617211c0e297c0d969fafe7442da` | typedef `struct https://openthread.io/reference/struct/ot-link-metrics` Represents what metrics are specified to query. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gaa71b496e783600472ceb9ac9dbe3f32a` | typedef `struct https://openthread.io/reference/struct/ot-mac-key` Represents a MAC Key. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga0797340ad221c75b7f7104e5818f9e49` | typedef `struct https://openthread.io/reference/struct/ot-mac-key-material` |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gab38055dd368a6f7dd32e3c4ef43c1768` | typedef `https://openthread.io/reference/group/plat-crypto#group__plat-crypto_1ga829b526f41c89661fdcc649d5789603b` Represents a MAC Key Ref used by PSA. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga2dd7c7e7e4b5a8a15e9af7fb78de1eda` | typedef `uint16_t` Represents the IEEE 802.15.4 PAN ID. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga3f82a50abb89739aa66a725e80bcda47` | typedef `struct https://openthread.io/reference/struct/ot-radio-availability` Represents the radio availability schedule. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gad695f1696c0b660f5f961bf1f1e00ab2` | typedef `enum https://openthread.io/reference/group/radio-types#group__radio-types_1gaa0442c7152f84578641925a2df5f87b9` Defines the slot durations of the radio availability schedule. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga42eb2a20cdbfe1cf16f8f662ee223504` | typedef `uint16_t` Represents radio capabilities. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gac7e63faeae93c6ecea45f2ee30666574` | typedef `struct https://openthread.io/reference/struct/ot-radio-coex-metrics` The following are valid radio state transitions: |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gab06907a61c511a92f3fc2bc1514d726b` | typedef `struct https://openthread.io/reference/struct/ot-radio-frame` Represents an IEEE 802.15.4 radio frame. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga7846f9d397cdc17486e3f5116aed571f` | typedef `struct https://openthread.io/reference/struct/ot-radio-ie-info` Represents the Time IE (Information Element) related information of a radio frame. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gabac8258a680edee8c18b7de660f86880` | typedef `enum https://openthread.io/reference/group/radio-types#group__radio-types_1ga3f89fd47d15047dbcc4137f00dad6dda` Represents the state of a radio. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga44619e1e7b1ec8cdd464312687d4ff68` | typedef `uint32_t` Represents a 32-bit radio time in microseconds. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga4b1723679c73d4b1cb45146bb29e8402` | typedef `uint64_t` Represents a 64-bit radio time in microseconds referenced to a continuous monotonic local radio clock. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga9199b7f0fe13ebcd0da2e3af71f04c40` | typedef `uint16_t` Represents the IEEE 802.15.4 Short Address. |

| ### Variables ||
|---|---|
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga33253dc9acb0c2cb297763c0807afe4f` | `https://openthread.io/reference/group/plat-toolchain#group__plat-toolchain_1gaba6ad63129c3a790957a9b149a65891b struct https://openthread.io/reference/struct/ot-ext-address` |

| ### Macros ||
|---|---|
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga1f3cc215067d858a198197d67fc83a55 0x0d` | Fixed CSL IE header second byte. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga91cfb3e47570c5dd7302fd03d707f197 0x04` | Fixed CSL IE header first byte. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gad61ad5e225afdc13e71ec0b73c51b408 8` | Size of an IEEE 802.15.4 Extended Address (bytes) |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1gac996e2a627289cca44930d0f26687eb7 16` | Size of the MAC Key in bytes. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga83a6fca9b333eadabd6f4b77664df1d6 0xffff` | IEEE 802.15.4 Broadcast PAN ID. |
| `https://openthread.io/reference/group/radio-types#group__radio-types_1ga0036e5002e98a8160c01d0d9bfdb4f13` | Compiler-specific indication at the end of a byte packed class or struct. |

| ### Structs ||
|---|---|
| [otExtAddress](https://openthread.io/reference/struct/ot-ext-address) | Represents the IEEE 802.15.4 Extended Address. |
| [otLinkMetrics](https://openthread.io/reference/struct/ot-link-metrics) | Represents what metrics are specified to query. |
| [otMacKey](https://openthread.io/reference/struct/ot-mac-key) | Represents a MAC Key. |
| [otMacKeyMaterial](https://openthread.io/reference/struct/ot-mac-key-material) | Represents a MAC Key. |
| [otRadioAvailability](https://openthread.io/reference/struct/ot-radio-availability) | Represents the radio availability schedule. |
| [otRadioCoexMetrics](https://openthread.io/reference/struct/ot-radio-coex-metrics) | The following are valid radio state transitions: |
| [otRadioFrame](https://openthread.io/reference/struct/ot-radio-frame) | Represents an IEEE 802.15.4 radio frame. |
| [otRadioIeInfo](https://openthread.io/reference/struct/ot-radio-ie-info) | Represents the Time IE (Information Element) related information of a radio frame. |

## Enumerations

### Anonymous Enum 10

```
 Anonymous Enum 10
```
Defines the frequency band channel range.

| Properties ||
|---|---|
| `OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MASK` | 2.4 GHz IEEE 802.15.4-2006 |
| `OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MAX` | 2.4 GHz IEEE 802.15.4-2006 |
| `OT_RADIO_2P4GHZ_OQPSK_CHANNEL_MIN` | 2.4 GHz IEEE 802.15.4-2006 |
| `OT_RADIO_915MHZ_OQPSK_CHANNEL_MASK` | 915 MHz IEEE 802.15.4-2006 |
| `OT_RADIO_915MHZ_OQPSK_CHANNEL_MAX` | 915 MHz IEEE 802.15.4-2006 |
| `OT_RADIO_915MHZ_OQPSK_CHANNEL_MIN` | 915 MHz IEEE 802.15.4-2006 |

### Anonymous Enum 11

```
 Anonymous Enum 11
```
Defines constants that are used to indicate different radio capabilities.

See `otRadioCaps`.

| Properties ||
|---|---|
| `OT_RADIO_CAPS_ACK_TIMEOUT` | Radio supports AckTime event. |
| `OT_RADIO_CAPS_ALT_SHORT_ADDR` | Radio supports setting alternate short address. |
| `OT_RADIO_CAPS_CSMA_BACKOFF` | Radio supports CSMA backoff for frame tx (but no retry). |
| `OT_RADIO_CAPS_ENERGY_SCAN` | Radio supports Energy Scans. |
| `OT_RADIO_CAPS_NONE` | Radio supports no capability. |
| `OT_RADIO_CAPS_RECEIVE_TIMING` | Radio supports rx at specific time. |
| `OT_RADIO_CAPS_RX_ON_WHEN_IDLE` | Radio supports RxOnWhenIdle handling. |
| `OT_RADIO_CAPS_SCHEDULED_TX` | Radio supports scheduling frame TX (`https://openthread.io/reference/group/radio-operation#group__radio-operation_1ga3f5c00536dbb219c1b571a01947a1c64`). |
| `OT_RADIO_CAPS_SLEEP_TO_TX` | Radio supports direct transition from sleep to TX with CSMA. |
| `OT_RADIO_CAPS_TRANSMIT_FRAME_POWER` | Radio supports setting per-frame transmit power. |
| `OT_RADIO_CAPS_TRANSMIT_RETRIES` | Radio supports tx retry logic with collision avoidance (CSMA). |
| `OT_RADIO_CAPS_TRANSMIT_SEC` | Radio supports tx security. |
| `OT_RADIO_CAPS_TRANSMIT_TIMING` | Radio supports tx at specific time (using `mTxDelay`). |

### Anonymous Enum 12

```
 Anonymous Enum 12
```
Defines constants about size of header IE in ACK.

| Properties ||
|---|---|
| `OT_ACK_IE_MAX_SIZE` | Max length for header IE in ACK. |
| `OT_CSL_IE_SIZE` | Size of CSL IE content in bytes. |
| `OT_ENH_PROBING_IE_DATA_MAX_SIZE` | Max length of Link Metrics data in Vendor-Specific IE. |
| `OT_IE_HEADER_SIZE` | Size of IE header in bytes. |

### Anonymous Enum 13

```
 Anonymous Enum 13
```
Defines constants for the radio availability schedule.

| Properties ||
|---|---|
| `OT_RADIO_AVAILABILITY_MAX_BITMAP_SIZE` | The maximum size (in bytes) of a radio availability slots bitmap. Derived from `OT_RADIO_AVAILABILITY_MAX_DURATION_US` and the shortest slot duration (625 us), i.e., 96 slots. |
| `OT_RADIO_AVAILABILITY_MAX_DURATION_US` | The maximum duration of a radio availability schedule (us). |

### Anonymous Enum 8

```
 Anonymous Enum 8
```

| Properties ||
|---|---|
| `OT_RADIO_BITS_PER_OCTET` | Number of bits per octet. |
| `OT_RADIO_BIT_RATE` | 2.4 GHz IEEE 802.15.4 (bits per second) |
| `OT_RADIO_BROADCAST_SHORT_ADDR` | Broadcast short address. |
| `OT_RADIO_FRAME_MAX_SIZE` | aMaxPHYPacketSize (IEEE 802.15.4-2006) |
| `OT_RADIO_FRAME_MIN_SIZE` | Minimal size of frame FCS + CONTROL. |
| `OT_RADIO_INVALID_SHORT_ADDR` | Invalid short address. |
| `OT_RADIO_LQI_NONE` | LQI measurement not supported. |
| `OT_RADIO_POWER_INVALID` | Invalid or unknown power value. |
| `OT_RADIO_RSSI_INVALID` | Invalid or unknown RSSI value. |
| `OT_RADIO_SYMBOLS_PER_OCTET` | 2.4 GHz IEEE 802.15.4-2006 |
| `OT_RADIO_SYMBOL_RATE` | The O-QPSK PHY symbol rate when operating in the 780MHz, 915MHz, 2380MHz, 2450MHz. |
| `OT_RADIO_SYMBOL_TIME` | Symbol duration time in unit of microseconds. |
| `OT_RADIO_TEN_SYMBOLS_TIME` | Time for 10 symbols in unit of microseconds. |

### Anonymous Enum 9

```
 Anonymous Enum 9
```
Defines the channel page.

| Properties ||
|---|---|
| `OT_RADIO_CHANNEL_PAGE_0` | 2.4 GHz IEEE 802.15.4-2006 |
| `OT_RADIO_CHANNEL_PAGE_0_MASK` | 2.4 GHz IEEE 802.15.4-2006 |
| `OT_RADIO_CHANNEL_PAGE_2` | 915 MHz IEEE 802.15.4-2006 |
| `OT_RADIO_CHANNEL_PAGE_2_MASK` | 915 MHz IEEE 802.15.4-2006 |

### otRadioAvailabilitySlotDuration

```
 otRadioAvailabilitySlotDuration
```
Defines the slot durations of the radio availability schedule.

| Properties ||
|---|---|
| `OT_RADIO_AVAILABILITY_SLOT_DURATION_1250_US` | 1.25 milliseconds. |
| `OT_RADIO_AVAILABILITY_SLOT_DURATION_625_US` | 625 microseconds. |

### otRadioKeyType

```
 otRadioKeyType
```
Defines constants about key types.

| Properties ||
|---|---|
| `OT_KEY_TYPE_KEY_REF` | Use Reference to Key. |
| `OT_KEY_TYPE_LITERAL_KEY` | Use Literal Keys. |

### otRadioState

```
 otRadioState
```
Represents the state of a radio.

Initially, a radio is in the Disabled state.

## Typedefs

### otExtAddress

```
struct otExtAddress otExtAddress
```
Represents the IEEE 802.15.4 Extended Address.

### otLinkMetrics

```
struct otLinkMetrics otLinkMetrics
```
Represents what metrics are specified to query.

### otMacKey

```
struct otMacKey otMacKey
```
Represents a MAC Key.

### otMacKeyMaterial

```
struct otMacKeyMaterial otMacKeyMaterial
```

### otMacKeyRef

```
otCryptoKeyRef otMacKeyRef
```
Represents a MAC Key Ref used by PSA.

### otPanId

```
uint16_t otPanId
```
Represents the IEEE 802.15.4 PAN ID.

### otRadioAvailability

```
struct otRadioAvailability otRadioAvailability
```
Represents the radio availability schedule.

The radio availability schedule is a periodic map of `mNumSlots` slots, each lasting `mSlotDuration`. The schedule starts at `mStartTime` and repeats every `mNumSlots` slots. The schedule duration (`mNumSlots` multiplied by `mSlotDuration`) MUST NOT be longer than `OT_RADIO_AVAILABILITY_MAX_DURATION_US`.

The bitmaps are MSB-first: slot `i` corresponds to bit `7 - (i % 8)` of byte `i / 8`, i.e., `(bitmap[i / 8] >> (7 - (i % 8))) & 1`. Only the first `mNumSlots` bits of each bitmap are used. The remaining bits SHOULD be set to 0 and are ignored by OpenThread.

In `mAvailableSlots`, a bit value of 1 indicates that the slot is available for Thread, and 0 indicates that it is unavailable (e.g., occupied by BT or 2.4GHz WiFi).

In `mPreferredSlots`, a bit value of 1 indicates that the slot is preferred for Thread, and 0 indicates that it is not preferred. The preferred slots MUST be a subset of the available slots, i.e., a bit MUST be 0 in `mPreferredSlots` if the corresponding bit is 0 in `mAvailableSlots`. OpenThread treats a slot as preferred only if it is set in both bitmaps. If there is no preference among the available slots, `mPreferredSlots` MUST be set to the same value as `mAvailableSlots`.

### otRadioAvailabilitySlotDuration

```
enum otRadioAvailabilitySlotDuration otRadioAvailabilitySlotDuration
```
Defines the slot durations of the radio availability schedule.

### otRadioCaps

```
uint16_t otRadioCaps
```
Represents radio capabilities.

The value is a bit-field indicating the capabilities supported by the radio. See `OT_RADIO_CAPS_*` definitions.

### otRadioCoexMetrics

```
struct otRadioCoexMetrics otRadioCoexMetrics
```
The following are valid radio state transitions:

(Radio ON) +---+ Enable() +-+ Receive() +---+ Transmit() +---+ \| \|---\>\| \|---\>\| \|---\>\| \| \| Disabled \| \| Sleep \| \| Receive \| \| Transmit \| \| \|\<---\| \|\<---\| \|\<---\| \| +---+ Disable() +-+ Sleep() +---+ Receive() +---+ (Radio OFF) or signal TransmitDone

During the IEEE 802.15.4 data request command the transition Sleep-\>Receive-\>Transmit can be shortened to direct transition from Sleep to Transmit if the platform supports the OT_RADIO_CAPS_SLEEP_TO_TX capability. Represents radio coexistence metrics.

### otRadioFrame

```
struct otRadioFrame otRadioFrame
```
Represents an IEEE 802.15.4 radio frame.

### otRadioIeInfo

```
struct otRadioIeInfo otRadioIeInfo
```
Represents the Time IE (Information Element) related information of a radio frame.

This structure is only used by the experimental Time Synchronization service feature (enabled via `OPENTHREAD_CONFIG_TIME_SYNC_ENABLE`).

### otRadioState

```
enum otRadioState otRadioState
```
Represents the state of a radio.

Initially, a radio is in the Disabled state.

### otRadioTime32

```
uint32_t otRadioTime32
```
Represents a 32-bit radio time in microseconds.

This type holds the lower 32 bits (least significant bits) of a full 64-bit radio time (`otRadioTime64`).

It is used in APIs such as `https://openthread.io/reference/group/radio-operation#group__radio-operation_1ga091540e62f72fa46225e666446014144` and `https://openthread.io/reference/group/radio-operation#group__radio-operation_1ga3b7fa6d86c4acff8853b704e852894b9` and as the transmission delay base time (`mTxDelayBaseTime`) in `https://openthread.io/reference/struct/ot-radio-frame`. It is important for radio platform implementations to correctly account for its roll-over.

### otRadioTime64

```
uint64_t otRadioTime64
```
Represents a 64-bit radio time in microseconds referenced to a continuous monotonic local radio clock.

This type is returned by `https://openthread.io/reference/group/radio-config#group__radio-config_1gadd536021d7e30db21d42710879580370`, used as the target transmission time in `https://openthread.io/reference/group/radio-operation#group__radio-operation_1ga3f5c00536dbb219c1b571a01947a1c64`, and used as the timestamp field (`mTimestamp`) in radio frames (`https://openthread.io/reference/struct/ot-radio-frame`).

### otShortAddress

```
uint16_t otShortAddress
```
Represents the IEEE 802.15.4 Short Address.

## Variables

### OT_TOOL_PACKED_END

```
OT_TOOL_PACKED_BEGIN struct otExtAddress OT_TOOL_PACKED_END
```

## Macros

### CSL_IE_HEADER_BYTES_HI

```
 CSL_IE_HEADER_BYTES_HI 0x0d
```
Fixed CSL IE header second byte.

### CSL_IE_HEADER_BYTES_LO

```
 CSL_IE_HEADER_BYTES_LO 0x04
```
Fixed CSL IE header first byte.

### OT_EXT_ADDRESS_SIZE

```
 OT_EXT_ADDRESS_SIZE 8
```
Size of an IEEE 802.15.4 Extended Address (bytes)

### OT_MAC_KEY_SIZE

```
 OT_MAC_KEY_SIZE 16
```
Size of the MAC Key in bytes.

### OT_PANID_BROADCAST

```
 OT_PANID_BROADCAST 0xffff
```
IEEE 802.15.4 Broadcast PAN ID.

### OT_TOOL_PACKED_END

```
 OT_TOOL_PACKED_END
```
Compiler-specific indication at the end of a byte packed class or struct.

## Resources

OpenThread API Reference topics originate from the source code, available
on [GitHub](https://github.com/openthread/openthread/tree/main/include/openthread).
For more information, or to contribute to our documentation, refer to
[Resources](https://openthread.io/resources).