Merge pull request #860 from simonduq/frame802154-align
frame802154_t: make sure dest_addr and src_addr are aligned
This commit is contained in:
commit
866bb99944
3 changed files with 7 additions and 3 deletions
|
@ -66,6 +66,7 @@
|
||||||
#include "sys/cc.h"
|
#include "sys/cc.h"
|
||||||
#include "net/mac/frame802154.h"
|
#include "net/mac/frame802154.h"
|
||||||
#include "net/llsec/llsec802154.h"
|
#include "net/llsec/llsec802154.h"
|
||||||
|
#include "net/linkaddr.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -67,7 +67,6 @@
|
||||||
#define FRAME_802154_H
|
#define FRAME_802154_H
|
||||||
|
|
||||||
#include "contiki-conf.h"
|
#include "contiki-conf.h"
|
||||||
#include "net/linkaddr.h"
|
|
||||||
|
|
||||||
#ifdef IEEE802154_CONF_PANID
|
#ifdef IEEE802154_CONF_PANID
|
||||||
#define IEEE802154_PANID IEEE802154_CONF_PANID
|
#define IEEE802154_PANID IEEE802154_CONF_PANID
|
||||||
|
@ -174,12 +173,15 @@ typedef struct {
|
||||||
* specification for details.
|
* specification for details.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
/* The fields dest_addr and src_addr must come first to ensure they are aligned to the
|
||||||
|
* CPU word size. Needed as they are accessed directly as linkaddr_t*. Note we cannot use
|
||||||
|
* the type linkaddr_t directly here, as we always need 8 bytes, not LINKADDR_SIZE bytes. */
|
||||||
|
uint8_t dest_addr[8]; /**< Destination address */
|
||||||
|
uint8_t src_addr[8]; /**< Source address */
|
||||||
frame802154_fcf_t fcf; /**< Frame control field */
|
frame802154_fcf_t fcf; /**< Frame control field */
|
||||||
uint8_t seq; /**< Sequence number */
|
uint8_t seq; /**< Sequence number */
|
||||||
uint16_t dest_pid; /**< Destination PAN ID */
|
uint16_t dest_pid; /**< Destination PAN ID */
|
||||||
uint8_t dest_addr[8]; /**< Destination address */
|
|
||||||
uint16_t src_pid; /**< Source PAN ID */
|
uint16_t src_pid; /**< Source PAN ID */
|
||||||
uint8_t src_addr[8]; /**< Source address */
|
|
||||||
frame802154_aux_hdr_t aux_hdr; /**< Aux security header */
|
frame802154_aux_hdr_t aux_hdr; /**< Aux security header */
|
||||||
uint8_t *payload; /**< Pointer to 802.15.4 payload */
|
uint8_t *payload; /**< Pointer to 802.15.4 payload */
|
||||||
int payload_len; /**< Length of payload field */
|
int payload_len; /**< Length of payload field */
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
#include "dev/leds.h"
|
#include "dev/leds.h"
|
||||||
#include "net/netstack.h"
|
#include "net/netstack.h"
|
||||||
#include "net/mac/frame802154.h"
|
#include "net/mac/frame802154.h"
|
||||||
|
#include "net/linkaddr.h"
|
||||||
|
|
||||||
#include "dev/ds2401.h"
|
#include "dev/ds2401.h"
|
||||||
#include "sys/node-id.h"
|
#include "sys/node-id.h"
|
||||||
|
|
Loading…
Reference in a new issue