Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
ieee802154_ie.h File Reference

IEEE 802.15.4 MAC information element (IE) related types and helpers. More...

Go to the source code of this file.

Data Structures

struct  ieee802154_header_ie_vendor_specific
 Vendor Specific Header IE, see section 7.4.2.3. More...
 
struct  ieee802154_header_ie_csl_full
 Full CSL IE, see section 7.4.2.3. More...
 
struct  ieee802154_header_ie_csl_reduced
 Reduced CSL IE, see section 7.4.2.3. More...
 
struct  ieee802154_header_ie_csl
 Generic CSL IE, see section 7.4.2.3. More...
 
struct  ieee802154_header_ie_rit
 RIT IE, see section 7.4.2.4. More...
 
struct  ieee802154_header_ie_rendezvous_time_full
 Full Rendezvous Time IE, see section 7.4.2.6 (macCslInterval is nonzero). More...
 
struct  ieee802154_header_ie_rendezvous_time_reduced
 Reduced Rendezvous Time IE, see section 7.4.2.6 (macCslInterval is zero). More...
 
struct  ieee802154_header_ie_rendezvous_time
 Rendezvous Time IE, see section 7.4.2.6. More...
 
struct  ieee802154_header_ie_time_correction
 Time Correction IE, see section 7.4.2.7. More...
 

IEEE 802.15.4, section 7.4.2: MAC header information elements

#define IEEE802154_HEADER_IE_HEADER_LENGTH   sizeof(uint16_t)
 The header IE's header length (2 bytes).
 
#define IEEE802154_DEFINE_HEADER_IE_VENDOR_SPECIFIC(_vendor_oui, _vendor_specific_info, _vendor_specific_info_len)
 Define a vendor specific header IE, see section 7.4.2.3.
 
#define IEEE802154_DEFINE_HEADER_IE_CSL_REDUCED(_csl_phase, _csl_period)
 Define a reduced CSL IE, see section 7.4.2.3.
 
#define IEEE802154_DEFINE_HEADER_IE_CSL_FULL(_csl_phase, _csl_period, _csl_rendezvous_time)
 Define a full CSL IE, see section 7.4.2.3.
 
#define IEEE802154_DEFINE_HEADER_IE_TIME_CORRECTION(_ack, _time_correction_us)
 Define a Time Correction IE, see section 7.4.2.7.
 
#define IEEE802154_TIME_CORRECTION_HEADER_IE_LEN    (IEEE802154_HEADER_IE_HEADER_LENGTH + sizeof(struct ieee802154_header_ie_time_correction))
 The length in bytes of a "Time Correction" header IE.
 
#define IEEE802154_HEADER_TERMINATION_1_HEADER_IE_LEN   IEEE802154_HEADER_IE_HEADER_LENGTH
 The length in bytes of a "Header Termination 1" header IE.
 
enum  ieee802154_ie_type { IEEE802154_IE_TYPE_HEADER = 0x0 , IEEE802154_IE_TYPE_PAYLOAD }
 Information Element Types. More...
 
enum  ieee802154_header_ie_element_id {
  IEEE802154_HEADER_IE_ELEMENT_ID_VENDOR_SPECIFIC_IE = 0x00 , IEEE802154_HEADER_IE_ELEMENT_ID_CSL_IE = 0x1a , IEEE802154_HEADER_IE_ELEMENT_ID_RIT_IE = 0x1b , IEEE802154_HEADER_IE_ELEMENT_ID_RENDEZVOUS_TIME_IE = 0x1d ,
  IEEE802154_HEADER_IE_ELEMENT_ID_TIME_CORRECTION_IE = 0x1e , IEEE802154_HEADER_IE_ELEMENT_ID_HEADER_TERMINATION_1 = 0x7e , IEEE802154_HEADER_IE_ELEMENT_ID_HEADER_TERMINATION_2 = 0x7f
}
 Header Information Element IDs. More...
 
static int16_t ieee802154_header_ie_get_time_correction_us (struct ieee802154_header_ie_time_correction *ie)
 Retrieve the time correction value in microseconds from a Time Correction IE, see section 7.4.2.7.
 
static void ieee802154_header_ie_set_element_id (struct ieee802154_header_ie *ie, uint8_t element_id)
 Set the element ID of a header IE.
 
static uint8_t ieee802154_header_ie_get_element_id (struct ieee802154_header_ie *ie)
 Get the element ID of a header IE.
 

Detailed Description

IEEE 802.15.4 MAC information element (IE) related types and helpers.

This is not to be included by the application. This file contains only those parts of the types required for IE support that need to be visible to IEEE 802.15.4 drivers and L2 at the same time, i.e. everything related to header IE representation, parsing and generation.

All specification references in this file refer to IEEE 802.15.4-2020.

Note
All structs and attributes in this file that directly represent parts of IEEE 802.15.4 frames are in LITTLE ENDIAN, see section 4, especially section 4.3.