Consistently use PACKETBUF_ATTR_MAC_SEQNO for MAC sequence number, both input and output. Disable PACKETBUF_ATTR_PACKET_ID in the non-Rime case.
This commit is contained in:
parent
bb76bb8beb
commit
290fc829ea
|
@ -242,7 +242,10 @@ parse(void)
|
||||||
}
|
}
|
||||||
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (linkaddr_t *)&frame.src_addr);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (linkaddr_t *)&frame.src_addr);
|
||||||
packetbuf_set_attr(PACKETBUF_ATTR_PENDING, frame.fcf.frame_pending);
|
packetbuf_set_attr(PACKETBUF_ATTR_PENDING, frame.fcf.frame_pending);
|
||||||
|
packetbuf_set_attr(PACKETBUF_ATTR_MAC_SEQNO, frame.seq);
|
||||||
|
#if NETSTACK_CONF_WITH_RIME
|
||||||
packetbuf_set_attr(PACKETBUF_ATTR_PACKET_ID, frame.seq);
|
packetbuf_set_attr(PACKETBUF_ATTR_PACKET_ID, frame.seq);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if LLSEC802154_SECURITY_LEVEL
|
#if LLSEC802154_SECURITY_LEVEL
|
||||||
if(frame.fcf.security_enabled) {
|
if(frame.fcf.security_enabled) {
|
||||||
|
|
|
@ -74,7 +74,7 @@ mac_sequence_is_duplicate(void)
|
||||||
for(i = 0; i < MAX_SEQNOS; ++i) {
|
for(i = 0; i < MAX_SEQNOS; ++i) {
|
||||||
if(linkaddr_cmp(packetbuf_addr(PACKETBUF_ADDR_SENDER),
|
if(linkaddr_cmp(packetbuf_addr(PACKETBUF_ADDR_SENDER),
|
||||||
&received_seqnos[i].sender)) {
|
&received_seqnos[i].sender)) {
|
||||||
if(packetbuf_attr(PACKETBUF_ATTR_PACKET_ID) == received_seqnos[i].seqno) {
|
if(packetbuf_attr(PACKETBUF_ATTR_MAC_SEQNO) == received_seqnos[i].seqno) {
|
||||||
/* Duplicate packet. */
|
/* Duplicate packet. */
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ mac_sequence_register_seqno(void)
|
||||||
for(j = i - 1; j > 0; --j) {
|
for(j = i - 1; j > 0; --j) {
|
||||||
memcpy(&received_seqnos[j], &received_seqnos[j - 1], sizeof(struct seqno));
|
memcpy(&received_seqnos[j], &received_seqnos[j - 1], sizeof(struct seqno));
|
||||||
}
|
}
|
||||||
received_seqnos[0].seqno = packetbuf_attr(PACKETBUF_ATTR_PACKET_ID);
|
received_seqnos[0].seqno = packetbuf_attr(PACKETBUF_ATTR_MAC_SEQNO);
|
||||||
linkaddr_copy(&received_seqnos[0].sender,
|
linkaddr_copy(&received_seqnos[0].sender,
|
||||||
packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
}
|
}
|
||||||
|
|
|
@ -294,7 +294,7 @@ packet_input(void)
|
||||||
if(duplicate) {
|
if(duplicate) {
|
||||||
/* Drop the packet. */
|
/* Drop the packet. */
|
||||||
PRINTF("nullrdc: drop duplicate link layer packet %u\n",
|
PRINTF("nullrdc: drop duplicate link layer packet %u\n",
|
||||||
packetbuf_attr(PACKETBUF_ATTR_PACKET_ID));
|
packetbuf_attr(PACKETBUF_ATTR_MAC_SEQNO));
|
||||||
} else {
|
} else {
|
||||||
mac_sequence_register_seqno();
|
mac_sequence_register_seqno();
|
||||||
}
|
}
|
||||||
|
|
|
@ -309,9 +309,9 @@ enum {
|
||||||
PACKETBUF_ATTR_IS_CREATED_AND_SECURED,
|
PACKETBUF_ATTR_IS_CREATED_AND_SECURED,
|
||||||
|
|
||||||
/* Scope 1 attributes: used between two neighbors only. */
|
/* Scope 1 attributes: used between two neighbors only. */
|
||||||
PACKETBUF_ATTR_PACKET_ID,
|
|
||||||
PACKETBUF_ATTR_PACKET_TYPE,
|
PACKETBUF_ATTR_PACKET_TYPE,
|
||||||
#if NETSTACK_CONF_WITH_RIME
|
#if NETSTACK_CONF_WITH_RIME
|
||||||
|
PACKETBUF_ATTR_PACKET_ID,
|
||||||
PACKETBUF_ATTR_RELIABLE,
|
PACKETBUF_ATTR_RELIABLE,
|
||||||
PACKETBUF_ATTR_REXMIT,
|
PACKETBUF_ATTR_REXMIT,
|
||||||
PACKETBUF_ATTR_MAX_REXMIT,
|
PACKETBUF_ATTR_MAX_REXMIT,
|
||||||
|
|
|
@ -402,8 +402,10 @@ sicslowmac_dataRequest(void)
|
||||||
frame_create_params_t params;
|
frame_create_params_t params;
|
||||||
frame_result_t result;
|
frame_result_t result;
|
||||||
|
|
||||||
|
#if NETSTACK_CONF_WITH_RIME
|
||||||
/* Save the msduHandle in a global variable. */
|
/* Save the msduHandle in a global variable. */
|
||||||
msduHandle = packetbuf_attr(PACKETBUF_ATTR_PACKET_ID);
|
msduHandle = packetbuf_attr(PACKETBUF_ATTR_PACKET_ID);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Build the FCF. */
|
/* Build the FCF. */
|
||||||
params.fcf.frameType = DATAFRAME;
|
params.fcf.frameType = DATAFRAME;
|
||||||
|
|
|
@ -109,7 +109,7 @@ parse(void)
|
||||||
}
|
}
|
||||||
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (linkaddr_t *)&frame.src_addr);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (linkaddr_t *)&frame.src_addr);
|
||||||
packetbuf_set_attr(PACKETBUF_ATTR_PENDING, frame.fcf.frame_pending);
|
packetbuf_set_attr(PACKETBUF_ATTR_PENDING, frame.fcf.frame_pending);
|
||||||
packetbuf_set_attr(PACKETBUF_ATTR_PACKET_ID, frame.seq);
|
packetbuf_set_attr(PACKETBUF_ATTR_MAC_SEQNO, frame.seq);
|
||||||
|
|
||||||
PRINTF("15.4-IN: %2X", frame.fcf.frame_type);
|
PRINTF("15.4-IN: %2X", frame.fcf.frame_type);
|
||||||
PRINTADDR(packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
PRINTADDR(packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
|
|
Loading…
Reference in a new issue