OpenWSN Firmware
IEEE802154

IEEE802.15.4 header manipulation funtions. More...

Data Structures

struct  ieee802154_header_iht
 

Enumerations

enum  IEEE802154_fcf_enums {
  IEEE154_FCF_FRAME_TYPE = 0, IEEE154_FCF_SECURITY_ENABLED = 3, IEEE154_FCF_FRAME_PENDING = 4, IEEE154_FCF_ACK_REQ = 5,
  IEEE154_FCF_INTRAPAN = 6, IEEE154_FCF_IELIST_PRESENT = 1, IEEE154_FCF_DEST_ADDR_MODE = 2, IEEE154_FCF_FRAME_VERSION = 4,
  IEEE154_FCF_SRC_ADDR_MODE = 6
}
 
enum  IEEE802154_fcf_frameversion_enums { IEEE154_FRAMEVERSION_2003 = 0, IEEE154_FRAMEVERSION_2006 = 1, IEEE154_FRAMEVERSION = 2 }
 
enum  IEEE802154_fcf_type_enums {
  IEEE154_TYPE_BEACON = 0, IEEE154_TYPE_DATA = 1, IEEE154_TYPE_ACK = 2, IEEE154_TYPE_CMD = 3,
  IEEE154_TYPE_UNDEFINED = 5
}
 
enum  IEEE802154_fcf_sec_enums { IEEE154_SEC_NO_SECURITY = 0, IEEE154_SEC_YES_SECURITY = 1 }
 
enum  IEEE802154_fcf_ielist_enums { IEEE154_IELIST_NO = 0, IEEE154_IELIST_YES = 1 }
 
enum  IEEE802154_fcf_pending_enums { IEEE154_PENDING_NO_FRAMEPENDING = 0, IEEE154_PENDING_YES_FRAMEPENDING = 1 }
 
enum  IEEE802154_fcf_ack_enums { IEEE154_ACK_NO_ACK_REQ = 0, IEEE154_ACK_YES_ACK_REQ = 1 }
 
enum  IEEE802154_fcf_panid_enums { IEEE154_PANID_UNCOMPRESSED = 0, IEEE154_PANID_COMPRESSED = 1 }
 
enum  IEEE802154_fcf_addr_mode_enums { IEEE154_ADDR_NONE = 0, IEEE154_ADDR_SHORT = 2, IEEE154_ADDR_EXT = 3 }
 

Functions

void ieee802154_prependHeader (OpenQueueEntry_t *msg, uint8_t frameType, uint8_t ielistpresent, uint8_t frameversion, bool securityEnabled, uint8_t sequenceNumber, open_addr_t *nextHop)
 Prepend the IEEE802.15.4 MAC header to a (to be transmitted) packet. More...
 
void ieee802154_retrieveHeader (OpenQueueEntry_t *msg, ieee802154_header_iht *ieee802514_header)
 Retreieve the IEEE802.15.4 MAC header from a (just received) packet. More...
 

Detailed Description

IEEE802.15.4 header manipulation funtions.

Author
Thomas Watteyne watte.nosp@m.yne@.nosp@m.eecs..nosp@m.berk.nosp@m.eley..nosp@m.edu, August 2011

Enumeration Type Documentation

Enumerator
IEEE154_ACK_NO_ACK_REQ 
IEEE154_ACK_YES_ACK_REQ 
Enumerator
IEEE154_ADDR_NONE 
IEEE154_ADDR_SHORT 
IEEE154_ADDR_EXT 
Enumerator
IEEE154_FCF_FRAME_TYPE 
IEEE154_FCF_SECURITY_ENABLED 
IEEE154_FCF_FRAME_PENDING 
IEEE154_FCF_ACK_REQ 
IEEE154_FCF_INTRAPAN 
IEEE154_FCF_IELIST_PRESENT 
IEEE154_FCF_DEST_ADDR_MODE 
IEEE154_FCF_FRAME_VERSION 
IEEE154_FCF_SRC_ADDR_MODE 
Enumerator
IEEE154_FRAMEVERSION_2003 
IEEE154_FRAMEVERSION_2006 
IEEE154_FRAMEVERSION 
Enumerator
IEEE154_IELIST_NO 
IEEE154_IELIST_YES 
Enumerator
IEEE154_PANID_UNCOMPRESSED 
IEEE154_PANID_COMPRESSED 
Enumerator
IEEE154_PENDING_NO_FRAMEPENDING 
IEEE154_PENDING_YES_FRAMEPENDING 
Enumerator
IEEE154_SEC_NO_SECURITY 
IEEE154_SEC_YES_SECURITY 
Enumerator
IEEE154_TYPE_BEACON 
IEEE154_TYPE_DATA 
IEEE154_TYPE_ACK 
IEEE154_TYPE_CMD 
IEEE154_TYPE_UNDEFINED 

Function Documentation

void ieee802154_prependHeader ( OpenQueueEntry_t msg,
uint8_t  frameType,
uint8_t  ielistpresent,
uint8_t  frameVersion,
bool  securityEnabled,
uint8_t  sequenceNumber,
open_addr_t nextHop 
)

Prepend the IEEE802.15.4 MAC header to a (to be transmitted) packet.

Note that we are writing the field from the end of the header to the beginning.

Parameters
[in,out]msgThe message to append the header to.
[in]frameTypeType of IEEE802.15.4 frame.
[in]ielistpresentIs the IE list present¿
[in]frameVersionIEEE802.15.4 frame version.
[in]securityEnabledIs security enabled on this frame?
[in]sequenceNumberSequence number of this frame.
[in]nextHopAddress of the next hop
void ieee802154_retrieveHeader ( OpenQueueEntry_t msg,
ieee802154_header_iht ieee802514_header 
)

Retreieve the IEEE802.15.4 MAC header from a (just received) packet.

Note We are writing the fields from the begnning of the header to the end.

Parameters
[in,out]msgThe message just received.
[out]ieee802514_headerThe internal header to write the data to.