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 "net/eui64.h"
#include "modules.h"
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_RADIO_RSSI_OFFSET (-174) |
value of measured power when RSSI is zero. | |
#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. | |
#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_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. | |
#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_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. | |
#define | CONFIG_IEEE802154_DSME_MAC_RESPONSE_WAIT_TIME (244U) |
Set the maximum DSME MAC response wait time. | |
#define | CONFIG_IEEE802154_DSME_SCAN_DURATION (4U) |
Set the scan duration. | |
#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. | |
#define | CONFIG_IEEE802154_DSME_MULTISUPERFRAME_ORDER (3U) |
Set IEEE 802.15.4 DSME Multisuperframe Order (MO) | |
#define | CONFIG_IEEE802154_DSME_BEACON_ORDER (3U) |
Set IEEE 802.15.4 DSME Beacon Order (BO) | |
#define | CONFIG_IEEE802154_DSME_STATIC_GTS 0 |
Use static GTS allocation. | |
#define | CONFIG_IEEE802154_DSME_GTS_EXPIRATION (16U) |
Set expiration time of DSME GTS slot. | |
#define | CONFIG_IEEE802154_DSME_MIN_COORD_LQI (100U) |
Set the minimum LQI to consider a beacon from a coordinator valid. | |
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 } |
802.15.4 PHY modes More... | |
enum | { IEEE802154_FEC_NONE , IEEE802154_FEC_NRNSC , IEEE802154_FEC_RSC } |
802.15.4 forward error correction schemes More... | |
Functions | |
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 . | |
size_t | ieee802154_get_frame_hdr_len (const uint8_t *mhr) |
Get length of MAC header. | |
int | ieee802154_get_src (const uint8_t *mhr, uint8_t *src, le_uint16_t *src_pan) |
Gets source address from MAC header. | |
int | ieee802154_get_dst (const uint8_t *mhr, uint8_t *dst, le_uint16_t *dst_pan) |
Gets destination address from MAC header. | |
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. | |
static uint8_t | ieee802154_get_seq (const uint8_t *mhr) |
Gets sequence number from MAC header. | |
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. | |
static int16_t | ieee802154_rssi_to_dbm (uint8_t rssi) |
Convert from RSSI scale to dBm. | |
static uint8_t | ieee802154_dbm_to_rssi (int16_t dbm) |
Convert from dBm scale to RSSI. | |
#define | IEEE802154_SHORT_ADDRESS_LEN (2U) |
IEEE 802.15.4 address lengths. | |
#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. | |
#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. | |
#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. | |
#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. | |