IEEE 802.15.4 header definitions. More...
IEEE 802.15.4 header definitions.
Definition in file ieee802154.h.
#include <stdint.h>#include <stdlib.h>#include "byteorder.h"#include "modules.h"#include "net/eui64.h"#include "time_units.h"
Include dependency graph for ieee802154.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | IEEE802154_SFD (0xa7) |
| Default start frame delimiter. | |
| #define | IEEE802154_FRAME_LEN_MAX (127U) |
| maximum 802.15.4 frame length | |
| #define | IEEE802154G_FRAME_LEN_MAX (2047U) |
| maximum 802.15.4g-2012 frame length | |
| #define | IEEE802154_ACK_FRAME_LEN (5U) |
| ACK frame length. | |
| #define | IEEE802154_LIFS_SYMS (40U) |
| Number of symbols to wait during Long Inter Frame Spacing. | |
| #define | IEEE802154_SIFS_SYMS (12U) |
| Number of symbols to wait during Short Inter Frame Spacing. | |
| #define | IEEE802154_SIFS_MAX_FRAME_SIZE (18U) |
| Maximum frame size to consider a frame as short. | |
| #define | IEEE802154_ACK_TIMEOUT_SYMS (54) |
| ACK Timeout period in symbols. | |
| #define | IEEE802154_MR_OFDM_SYMBOL_TIME_US (120) |
| Symbol time for IEEE 802.15.4 MR-OFDM in µs. | |
| #define | IEEE802154_MR_FSK_SYMBOL_TIME_US (20) |
| Symbol time for IEEE 802.15.4 MR-FSK in µs. More... | |
| #define | IEEE802154_RADIO_RSSI_OFFSET (-174) |
| value of measured power when RSSI is zero. More... | |
| #define | IEEE802154_PHY_MR_FSK_PHR_LEN (2) |
| MR-FSK PHY header length. | |
| #define | IEEE802154_PHY_MR_FSK_2FSK_SFD_LEN (2) |
| MR-FSK SFD length on Filtered 2-FSK. | |
| #define | IEEE802154G_ATURNAROUNDTIME_US (1 * US_PER_MS) |
| For the SUN PHYs, the value is 1 ms expressed in symbol periods, rounded up to the next integer number of symbol periods using the ceiling() function. More... | |
| #define | IEEE802154_ATURNAROUNDTIME_IN_SYMBOLS (12) |
| IEEE Std 802.15.4-2020 Table 11-1—PHY constants: The value is 12 for all other PHYs. | |
| #define | IEEE802154_SYMBOL_TIME_US (16) |
| O-QPSK Symbol time for 2.4 GHz: More... | |
| #define | IEEE802154_CCA_DURATION_IN_SYMBOLS (8) |
| IEEE Std 802.15.4-2020 Table 11-1—PHY constants: For all other PHYs¹, the duration of 8 symbol periods. More... | |
| #define | CONFIG_IEEE802154_DEFAULT_SUBGHZ_CHANNEL (5U) |
| IEEE802.15.4 default sub-GHZ channel. | |
| #define | CONFIG_IEEE802154_DEFAULT_CHANNEL (26U) |
| IEEE802.15.4 default channel. | |
| #define | CONFIG_IEEE802154_DEFAULT_SUBGHZ_PAGE (2U) |
| IEEE802.15.4 default sub-GHZ page. | |
| #define | CONFIG_IEEE802154_MR_OQPSK_DEFAULT_CHIPS IEEE802154_MR_OQPSK_CHIPS_1000 |
| IEEE802.15.4 MR-OQPSK default chip rate. | |
| #define | CONFIG_IEEE802154_MR_OQPSK_DEFAULT_RATE (2U) |
| IEEE802.15.4 MR-OQPSK default rate mode. | |
| #define | CONFIG_IEEE802154_MR_OFDM_DEFAULT_OPTION (2U) |
| IEEE802.15.4 MR-OFDM default modulation option. | |
| #define | CONFIG_IEEE802154_MR_OFDM_DEFAULT_SCHEME (2U) |
| IEEE802.15.4 MR-OFDM default Modulation & Coding Scheme. | |
| #define | CONFIG_IEEE802154_MR_FSK_DEFAULT_SRATE IEEE802154_MR_FSK_SRATE_200K |
| IEEE802.15.4 MR-FSK default symbol rate. | |
| #define | CONFIG_IEEE802154_MR_FSK_DEFAULT_MOD_IDX (64U) |
| IEEE802.15.4 MR-FSK default modulation index, fraction of 64. | |
| #define | CONFIG_IEEE802154_MR_FSK_DEFAULT_MOD_ORD (2U) |
| IEEE802.15.4 MR-FSK default modulation order. | |
| #define | CONFIG_IEEE802154_MR_FSK_DEFAULT_FEC IEEE802154_FEC_NONE |
| IEEE802.15.4 MR-FSK default error correction mode. | |
| #define | CONFIG_IEEE802154_DEFAULT_PANID (0x0023U) |
| IEEE802.15.4 default PANID. | |
| #define | IEEE802154_PANID_BCAST { 0xff, 0xff } |
| IEEE802.15.4 Broadcast PANID. | |
| #define | CONFIG_IEEE802154_DEFAULT_TXPOWER (0) |
| IEEE802.15.4 default TX power (in dBm) | |
| #define | CONFIG_IEEE802154_DEFAULT_CSMA_CA_MIN_BE (3U) |
| IEEE802.15.4 default value for minimum backoff exponent. | |
| #define | CONFIG_IEEE802154_DEFAULT_CSMA_CA_RETRIES (4U) |
| IEEE802.15.4 default value for maximum number of CSMA-CA retries. | |
| #define | CONFIG_IEEE802154_DEFAULT_CSMA_CA_MAX_BE (5U) |
| IEEE802.15.4 default value for maximum backoff exponent. | |
| #define | CONFIG_IEEE802154_CCA_THRESH_DEFAULT (-70) |
| IEEE802.15.4 default value for CCA threshold (in dBm) | |
| #define | CONFIG_IEEE802154_DEFAULT_MAX_FRAME_RETRANS (4U) |
| IEEE802.15.4 default value for maximum frame retries. | |
| #define | CONFIG_IEEE802154_AUTO_ACK_DISABLE 0 |
| Disable Auto ACK support. | |
| #define | CONFIG_IEEE802154_DEFAULT_ACK_REQ 1 |
| Request ACKs by default. | |
| #define | CONFIG_IEEE802154_DSME_CAP_REDUCTION 0 |
| Enable DSME CAP reduction. More... | |
| #define | CONFIG_IEEE802154_DSME_MAC_RESPONSE_WAIT_TIME (244U) |
| Set the maximum DSME MAC response wait time. More... | |
| #define | CONFIG_IEEE802154_DSME_SCAN_DURATION (4U) |
| Set the scan duration. More... | |
| #define | CONFIG_IEEE802154_DSME_SUPERFRAME_ORDER (3U) |
Set IEEE 802.15.4 DSME Superframe Order (SO) The SO sets the slot duration to 60 * symbol_time_us * 2^SO usecs. More... | |
| #define | CONFIG_IEEE802154_DSME_MULTISUPERFRAME_ORDER (3U) |
| Set IEEE 802.15.4 DSME Multisuperframe Order (MO) More... | |
| #define | CONFIG_IEEE802154_DSME_BEACON_ORDER (3U) |
| Set IEEE 802.15.4 DSME Beacon Order (BO) More... | |
| #define | CONFIG_IEEE802154_DSME_STATIC_GTS 0 |
| Use static GTS allocation. More... | |
| #define | CONFIG_IEEE802154_DSME_GTS_EXPIRATION (16U) |
| Set expiration time of DSME GTS slot. More... | |
| #define | CONFIG_IEEE802154_DSME_MIN_COORD_LQI (100U) |
| Set the minimum LQI to consider a beacon from a coordinator valid. More... | |
Enumerations | |
| enum | ieee802154_phy_mode_t { IEEE802154_PHY_DISABLED , IEEE802154_PHY_BPSK , IEEE802154_PHY_ASK , IEEE802154_PHY_OQPSK , IEEE802154_PHY_MR_OQPSK , IEEE802154_PHY_MR_OFDM , IEEE802154_PHY_MR_FSK , IEEE802154_PHY_NO_OP } |
| 802.15.4 PHY modes More... | |
| enum | ieee802154_mr_fsk_fec_t { IEEE802154_FEC_NONE , IEEE802154_FEC_NRNSC , IEEE802154_FEC_RSC } |
| 802.15.4 forward error correction schemes More... | |
| enum | ieee802154_mr_fsk_srate_t { IEEE802154_MR_FSK_SRATE_50K , IEEE802154_MR_FSK_SRATE_100K , IEEE802154_MR_FSK_SRATE_150K , IEEE802154_MR_FSK_SRATE_200K , IEEE802154_MR_FSK_SRATE_300K , IEEE802154_MR_FSK_SRATE_400K } |
| 802.15.4 MR-FSK symbol rates More... | |
| enum | ieee802154_mr_oqpsk_chips_t { IEEE802154_MR_OQPSK_CHIPS_100 , IEEE802154_MR_OQPSK_CHIPS_200 , IEEE802154_MR_OQPSK_CHIPS_1000 , IEEE802154_MR_OQPSK_CHIPS_2000 } |
| 802.15.4 MR-OQPSK chip rates More... | |
Functions | |
| static uint8_t | ieee802154_mr_fsk_plen (ieee802154_mr_fsk_srate_t srate) |
| Get the minimum preamble length for a given symbol rate. More... | |
| size_t | ieee802154_set_frame_hdr (uint8_t *buf, const uint8_t *src, size_t src_len, const uint8_t *dst, size_t dst_len, le_uint16_t src_pan, le_uint16_t dst_pan, uint8_t flags, uint8_t seq) |
Initializes an IEEE 802.15.4 MAC frame header in buf. More... | |
| size_t | ieee802154_get_frame_hdr_len (const uint8_t *mhr) |
| Get length of MAC header. More... | |
| int | ieee802154_get_src (const uint8_t *mhr, uint8_t *src, le_uint16_t *src_pan) |
| Gets source address from MAC header. More... | |
| int | ieee802154_get_dst (const uint8_t *mhr, uint8_t *dst, le_uint16_t *dst_pan) |
| Gets destination address from MAC header. More... | |
| int | ieee802154_dst_filter (const uint8_t *mhr, uint16_t pan, network_uint16_t short_addr, const eui64_t *ext_addr) |
| Check whether a frame pass the IEEE 802.15.4 frame filter. More... | |
| static uint8_t | ieee802154_get_seq (const uint8_t *mhr) |
| Gets sequence number from MAC header. More... | |
| static eui64_t * | ieee802154_get_iid (eui64_t *eui64, const uint8_t *addr, size_t addr_len) |
| Generates an IPv6 interface identifier from an IEEE 802.15.4 address. More... | |
| static int16_t | ieee802154_rssi_to_dbm (uint8_t rssi) |
| Convert from RSSI scale to dBm. More... | |
| static uint8_t | ieee802154_dbm_to_rssi (int16_t dbm) |
| Convert from dBm scale to RSSI. More... | |
| #define | IEEE802154_SHORT_ADDRESS_LEN (2U) |
| IEEE 802.15.4 address lengths. More... | |
| #define | IEEE802154_LONG_ADDRESS_LEN (8U) |
| long address (EUI-64) | |
| #define | IEEE802154_MAX_HDR_LEN (23U) |
| IEEE802.15.4 FCF field definitions. | |
| #define | IEEE802154_MIN_FRAME_LEN (IEEE802154_FCF_LEN + sizeof(uint8_t)) |
| #define | IEEE802154_FCF_LEN (2U) |
| #define | IEEE802154_FCS_LEN (2U) |
| #define | IEEE802154_FCF_TYPE_MASK (0x07) |
| #define | IEEE802154_FCF_TYPE_BEACON (0x00) |
| #define | IEEE802154_FCF_TYPE_DATA (0x01) |
| #define | IEEE802154_FCF_TYPE_ACK (0x02) |
| #define | IEEE802154_FCF_TYPE_MACCMD (0x03) |
| #define | IEEE802154_FCF_SECURITY_EN (0x08) |
| enable security | |
| #define | IEEE802154_FCF_FRAME_PEND (0x10) |
| follow-up frame is pending | |
| #define | IEEE802154_FCF_ACK_REQ (0x20) |
| acknowledgement requested from receiver | |
| #define | IEEE802154_FCF_PAN_COMP (0x40) |
| compress source PAN ID | |
| #define | IEEE802154_FCF_DST_ADDR_MASK (0x0c) |
| #define | IEEE802154_FCF_DST_ADDR_VOID (0x00) |
| no destination address | |
| #define | IEEE802154_FCF_DST_ADDR_RESV (0x04) |
| reserved address mode | |
| #define | IEEE802154_FCF_DST_ADDR_SHORT (0x08) |
| destination address length is 2 | |
| #define | IEEE802154_FCF_DST_ADDR_LONG (0x0c) |
| destination address length is 8 | |
| #define | IEEE802154_FCF_VERS_MASK (0x30) |
| #define | IEEE802154_FCF_VERS_V0 (0x00) |
| #define | IEEE802154_FCF_VERS_V1 (0x10) |
| #define | IEEE802154_FCF_SRC_ADDR_MASK (0xc0) |
| #define | IEEE802154_FCF_SRC_ADDR_VOID (0x00) |
| no source address | |
| #define | IEEE802154_FCF_SRC_ADDR_RESV (0x40) |
| reserved address mode | |
| #define | IEEE802154_FCF_SRC_ADDR_SHORT (0x80) |
| source address length is 2 | |
| #define | IEEE802154_FCF_SRC_ADDR_LONG (0xc0) |
| source address length is 8 | |
| #define | IEEE802154_CHANNEL_MIN_SUBGHZ (0U) |
| Channel ranges. More... | |
| #define | IEEE802154_CHANNEL_MAX_SUBGHZ (10U) |
| Maximum channel for sub-GHz band. | |
| #define | IEEE802154_CHANNEL_MIN (11U) |
| Minimum channel for 2.4 GHz band. | |
| #define | IEEE802154_CHANNEL_MAX (26U) |
| Maximum channel for 2.4 GHz band. | |
| #define | IEEE802154_PHY_MR_FSK_2FSK_CODED_SFD_0 (0x6F4E) |
| For the MR-FSK PHY, the SFD value when PHR + PSDU are coded/uncoded and with phyMRFSKSFD = 0 or 1 respectively. More... | |
| #define | IEEE802154_PHY_MR_FSK_2FSK_CODED_SFD_1 (0x632D) |
| #define | IEEE802154_PHY_MR_FSK_2FSK_UNCODED_SFD_0 (0x90E4) |
| #define | IEEE802154_PHY_MR_FSK_2FSK_UNCODED_SFD_1 (0x7A0E) |
| #define | IEEE802154_ADDR_BCAST { 0xff, 0xff } |
| Special address definitions. More... | |
| #define | IEEE802154_ADDR_BCAST_LEN (IEEE802154_SHORT_ADDRESS_LEN) |
| Length in byte of IEEE802154_ADDR_BCAST. | |
| const uint8_t | ieee802154_addr_bcast [IEEE802154_ADDR_BCAST_LEN] |
| Broadcast address. | |
| #define | CONFIG_IEEE802154_DEFAULT_PHY_MODE IEEE802154_PHY_OQPSK |
| IEEE802.15.4 default PHY mode. | |