Contiki-NG
Data Structures

802.15.4 frame creation and parsing functions More...

#include "contiki.h"
#include "net/linkaddr.h"

Go to the source code of this file.

Data Structures

struct  frame802154_fcf_t
 The IEEE 802.15.4 frame has a number of constant/fixed fields that can be counted to make frame construction and max payload calculations easier. More...
 
struct  frame802154_scf_t
 802.15.4 security control bitfield. More...
 
struct  frame802154_aux_hdr_t
 802.15.4 Aux security header More...
 
struct  frame802154_t
 Parameters used by the frame802154_create() function. More...
 

FCF element values definitions

These are some definitions of values used in the FCF.

See the 802.15.4 spec for details.

#define FRAME802154_BEACONFRAME   (0x00)
 
#define FRAME802154_DATAFRAME   (0x01)
 
#define FRAME802154_ACKFRAME   (0x02)
 
#define FRAME802154_CMDFRAME   (0x03)
 
#define FRAME802154_BEACONREQ   (0x07)
 
#define FRAME802154_IEEERESERVED   (0x00)
 
#define FRAME802154_NOADDR   (0x00)
 Only valid for ACK or Beacon frames. More...
 
#define FRAME802154_SHORTADDRMODE   (0x02)
 
#define FRAME802154_LONGADDRMODE   (0x03)
 
#define FRAME802154_NOBEACONS   (0x0F)
 
#define FRAME802154_BROADCASTADDR   (0xFFFF)
 
#define FRAME802154_BROADCASTPANDID   (0xFFFF)
 
#define FRAME802154_IEEE802154_2003   (0x00)
 
#define FRAME802154_IEEE802154_2006   (0x01)
 
#define FRAME802154_IEEE802154_2015   (0x02)
 
#define FRAME802154_SECURITY_LEVEL_NONE   (0)
 
#define FRAME802154_SECURITY_LEVEL_MIC_32   (1)
 
#define FRAME802154_SECURITY_LEVEL_MIC_64   (2)
 
#define FRAME802154_SECURITY_LEVEL_MIC_128   (3)
 
#define FRAME802154_SECURITY_LEVEL_ENC   (4)
 
#define FRAME802154_SECURITY_LEVEL_ENC_MIC_32   (5)
 
#define FRAME802154_SECURITY_LEVEL_ENC_MIC_64   (6)
 
#define FRAME802154_SECURITY_LEVEL_ENC_MIC_128   (7)
 
#define FRAME802154_IMPLICIT_KEY   (0)
 
#define FRAME802154_1_BYTE_KEY_ID_MODE   (1)
 
#define FRAME802154_5_BYTE_KEY_ID_MODE   (2)
 
#define FRAME802154_9_BYTE_KEY_ID_MODE   (3)
 
int frame802154_hdrlen (frame802154_t *p)
 Calculates the length of the frame header. More...
 
void frame802154_create_fcf (frame802154_fcf_t *fcf, uint8_t *buf)
 
int frame802154_create (frame802154_t *p, uint8_t *buf)
 Creates a frame for transmission over the air. More...
 
int frame802154_parse (uint8_t *data, int len, frame802154_t *pf)
 Parses an input frame. More...
 
void frame802154_parse_fcf (uint8_t *data, frame802154_fcf_t *pfcf)
 
uint16_t frame802154_get_pan_id (void)
 
void frame802154_set_pan_id (uint16_t pan_id)
 
void frame802154_has_panid (frame802154_fcf_t *fcf, int *has_src_pan_id, int *has_dest_pan_id)
 
int frame802154_check_dest_panid (frame802154_t *frame)
 
int frame802154_is_broadcast_addr (uint8_t mode, uint8_t *addr)
 
int frame802154_extract_linkaddr (frame802154_t *frame, linkaddr_t *source_address, linkaddr_t *dest_address)
 

Detailed Description

802.15.4 frame creation and parsing functions

This file converts to and from a structure to a packed 802.15.4 frame.

Definition in file frame802154.h.