rbuf.h

RBUF_SIZE

size of the reassembly buffer

1
(4U)
RBUF_TIMEOUT

timeout for reassembly in microseconds

1
(3U * US_PER_SEC)
struct rbuf_int rbuf_int_t

Fragment intervals to identify limits of fragments.

Note

Fragments MUST NOT overlap and overlapping fragments are to be discarded

void rbuf_add(gnrc_netif_hdr_t * netif_hdr, include/net/gnrc/pkt.h::gnrc_pktsnip_t * frag, msp430_types.h::size_t offset, unsigned page)

Adds a new fragment to the reassembly buffer.

If the packet is complete, dispatch the packet with the transmit information of the last fragment.

Parameters

netif_hdr:The interface header of the fragment, with gnrc/netif/hdr.h::gnrc_netif_hdr_t::if_pid and its source and destination address set.
frag:The fragment to add.
offset:The fragment’s offset.
page:Current 6Lo dispatch parsing page.

void rbuf_gc(void)

Checks timeouts and removes entries if necessary.

void rbuf_rm(rbuf_t * rbuf)
struct rbuf_int

Fragment intervals to identify limits of fragments.

Note

Fragments MUST NOT overlap and overlapping fragments are to be discarded

struct rbuf_int * next

next element in interval list

uint16_t start

start byte of interval

uint16_t end

end byte of interval

struct rbuf_t

Internal representation of the 6LoWPAN reassembly buffer.

Additional members help with correct reassembly of the buffer.

gnrc_sixlowpan_rbuf_t super

exposed part of the reassembly buffer

rbuf.h::rbuf_int_t * ints

intervals of the fragment

uint32_t arrival

time in microseconds of arrival of last received fragment