42 #include "lib/random.h"
49 #define PRINTF(...) printf(__VA_ARGS__)
50 #define PRINTADDR(addr) PRINTF(" %02x%02x:%02x%02x:%02x%02x:%02x%02x ", ((uint8_t *)addr)[0], ((uint8_t *)addr)[1], ((uint8_t *)addr)[2], ((uint8_t *)addr)[3], ((uint8_t *)addr)[4], ((uint8_t *)addr)[5], ((uint8_t *)addr)[6], ((uint8_t *)addr)[7])
53 #define PRINTADDR(addr)
60 static uint8_t mac_dsn;
62 static uint8_t initialized = 0;
68 static const uint16_t mac_dst_pan_id = IEEE802154_PANID;
74 static const uint16_t mac_src_pan_id = IEEE802154_PANID;
78 is_broadcast_addr(uint8_t mode, uint8_t *addr)
80 int i = mode == FRAME802154_SHORTADDRMODE ? 2 : 8;
96 memset(¶ms, 0,
sizeof(params));
101 printf(
"***mac_dsn: %d\n");
119 if(packetbuf_attr(PACKETBUF_ATTR_MAC_SEQNO)) {
120 params.
seq = packetbuf_attr(PACKETBUF_ATTR_MAC_SEQNO);
122 params.
seq = mac_dsn++;
123 packetbuf_set_attr(PACKETBUF_ATTR_MAC_SEQNO, params.
seq);
132 if(
sizeof(linkaddr_t) == 2) {
152 packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
154 if(
sizeof(linkaddr_t) == 2) {
162 params.
src_pid = mac_src_pan_id;
182 PRINTF(
"15.4-OUT: too large header: %u\n", len);
183 return FRAMER_FAILED;
196 if(frame.
dest_pid != mac_src_pan_id &&
197 frame.
dest_pid != FRAME802154_BROADCASTPANDID) {
199 PRINTF(
"15.4: for another pan %u\n", frame.
dest_pid);
200 return FRAMER_FAILED;
203 packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (linkaddr_t *)&frame.
dest_addr);
206 packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (linkaddr_t *)&frame.
src_addr);
209 packetbuf_set_attr(PACKETBUF_ATTR_PACKET_ID, frame.
seq);
212 PRINTADDR(packetbuf_addr(PACKETBUF_ADDR_SENDER));
213 PRINTADDR(packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
218 return FRAMER_FAILED;
221 const struct framer framer_802154 = {