66 #ifndef FRAME_802154_H
67 #define FRAME_802154_H
69 #include "contiki-conf.h"
71 #ifdef IEEE802154_CONF_PANID
72 #define IEEE802154_PANID IEEE802154_CONF_PANID
74 #define IEEE802154_PANID 0xABCD
83 #define FRAME802154_BEACONFRAME (0x00)
84 #define FRAME802154_DATAFRAME (0x01)
85 #define FRAME802154_ACKFRAME (0x02)
86 #define FRAME802154_CMDFRAME (0x03)
88 #define FRAME802154_BEACONREQ (0x07)
90 #define FRAME802154_IEEERESERVED (0x00)
91 #define FRAME802154_NOADDR (0x00)
92 #define FRAME802154_SHORTADDRMODE (0x02)
93 #define FRAME802154_LONGADDRMODE (0x03)
95 #define FRAME802154_NOBEACONS (0x0F)
97 #define FRAME802154_BROADCASTADDR (0xFFFF)
98 #define FRAME802154_BROADCASTPANDID (0xFFFF)
100 #define FRAME802154_IEEE802154_2003 (0x00)
101 #define FRAME802154_IEEE802154_2006 (0x01)
103 #define FRAME802154_SECURITY_LEVEL_NONE (0)
104 #define FRAME802154_SECURITY_LEVEL_MIC_32 (1)
105 #define FRAME802154_SECURITY_LEVEL_MIC_64 (2)
106 #define FRAME802154_SECURITY_LEVEL_MIC_128 (3)
107 #define FRAME802154_SECURITY_LEVEL_ENC (4)
108 #define FRAME802154_SECURITY_LEVEL_ENC_MIC_32 (5)
109 #define FRAME802154_SECURITY_LEVEL_ENC_MIC_64 (6)
110 #define FRAME802154_SECURITY_LEVEL_ENC_MIC_128 (7)
112 #define FRAME802154_IMPLICIT_KEY (0)
113 #define FRAME802154_1_BYTE_KEY_ID_MODE (1)
114 #define FRAME802154_5_BYTE_KEY_ID_MODE (2)
115 #define FRAME802154_9_BYTE_KEY_ID_MODE (3)
156 } frame802154_frame_counter_t;
161 } frame802154_key_source_t;
179 uint8_t dest_addr[8];
frame802154_frame_counter_t frame_counter
Frame counter, used for security.
The IEEE 802.15.4 frame has a number of constant/fixed fields that can be counted to make frame const...
uint8_t * payload
Pointer to 802.15.4 payload.
uint8_t ack_required
1 bit.
frame802154_key_source_t key_source
Key Source subfield.
uint8_t frame_version
2 bit.
int frame802154_hdrlen(frame802154_t *p)
Calculates the length of the frame header.
uint8_t security_enabled
1 bit.
int frame802154_create(frame802154_t *p, uint8_t *buf)
Creates a frame for transmission over the air.
uint8_t src_addr_mode
2 bit.
uint8_t panid_compression
1 bit.
802.15.4 Aux security header
uint8_t key_id_mode
2 bit.
Parameters used by the frame802154_create() function.
uint8_t seq
Sequence number.
int payload_len
Length of payload field.
frame802154_scf_t security_control
Security control bitfield.
802.15.4 security control bitfield.
uint8_t key_index
Key Index subfield.
uint16_t dest_pid
Destination PAN ID.
uint16_t src_pid
Source PAN ID.
int frame802154_parse(uint8_t *data, int len, frame802154_t *pf)
Parses an input frame.
uint8_t frame_pending
1 bit.
frame802154_fcf_t fcf
Frame control field.
uint8_t security_level
3 bit.
frame802154_aux_hdr_t aux_hdr
Aux security header.
uint8_t dest_addr_mode
< 3 bit.