47 #include "contiki-net.h"
57 #ifdef NETSTACK_CONF_MAC_SEQNO_HISTORY
58 #define MAX_SEQNOS NETSTACK_CONF_MAC_SEQNO_HISTORY
62 static struct seqno received_seqnos[MAX_SEQNOS];
74 for(i = 0; i < MAX_SEQNOS; ++i) {
76 &received_seqnos[i].sender)) {
77 if(packetbuf_attr(PACKETBUF_ATTR_PACKET_ID) == received_seqnos[i].seqno) {
93 for(i = 0; i < MAX_SEQNOS; ++i) {
95 &received_seqnos[i].sender)) {
102 for(j = i - 1; j > 0; --j) {
103 memcpy(&received_seqnos[j], &received_seqnos[j - 1],
sizeof(
struct seqno));
105 received_seqnos[0].seqno = packetbuf_attr(PACKETBUF_ATTR_PACKET_ID);
107 packetbuf_addr(PACKETBUF_ADDR_SENDER));
int mac_sequence_is_duplicate(void)
Tell whether the packetbuf is a duplicate packet.
Header file for the Rime buffer (packetbuf) management
Header file for MAC sequence numbers management
Header file for the Rime stack
void linkaddr_copy(linkaddr_t *dest, const linkaddr_t *src)
Copy a Rime address.
void mac_sequence_register_seqno(void)
Register the sequence number of the packetbuf.
int linkaddr_cmp(const linkaddr_t *addr1, const linkaddr_t *addr2)
Compare two Rime addresses.