Go to the documentation of this file.
20 #ifndef NET_GNRC_SIXLOWPAN_FRAG_RB_H
21 #define NET_GNRC_SIXLOWPAN_FRAG_RB_H
37 #define GNRC_SIXLOWPAN_FRAG_RB_GC_MSG (0x0226)
119 size_t offset,
unsigned page);
170 return (rbuf->
pkt == NULL);
173 #if defined(TEST_SUITES) || defined(DOXYGEN)
225 #if defined(MODULE_GNRC_SIXLOWPAN_FRAG_RB) || defined(DOXYGEN)
const gnrc_sixlowpan_frag_rb_t * gnrc_sixlowpan_frag_rb_array(void)
Returns a pointer to the array representing the reassembly buffer.
void gnrc_sixlowpan_frag_rb_gc(void)
Garbage collect reassembly buffer.
struct gnrc_sixlowpan_frag_rb_int * next
next element in fragment interval list
gnrc_pktsnip_t * pkt
The reassembled packet in the packet buffer.
Generic network interface header.
uint8_t dst_len
length of gnrc_sixlowpan_frag_rb_t::dst
#define assert(cond)
abort the program if assertion is false
uint16_t start
start byte of the fragment interval
uint16_t datagram_size
the datagram's size
Fragment intervals to identify limits of fragments and duplicates.
void gnrc_sixlowpan_frag_rb_reset(void)
Resets the packet buffer to a clean state.
int gnrc_sixlowpan_frag_rb_dispatch_when_complete(gnrc_sixlowpan_frag_rb_t *rbuf, gnrc_netif_hdr_t *netif)
Checks if a reassembly buffer entry is complete and dispatches it to the next layer if that is the ca...
gnrc_sixlowpan_frag_rb_base_t super
base class
bool gnrc_sixlowpan_frag_rb_exists(const gnrc_netif_hdr_t *netif_hdr, uint16_t tag)
Checks if a reassembly buffer entry with a given link-layer address pair and tag exists.
struct gnrc_sixlowpan_frag_rb_int gnrc_sixlowpan_frag_rb_int_t
Fragment intervals to identify limits of fragments and duplicates.
Configuration macros for 6LoWPAN.
uint16_t tag
the datagram's tag
uint8_t src_len
length of gnrc_sixlowpan_frag_rb_t::src
An entry in the 6LoWPAN reassembly buffer.
static void gnrc_sixlowpan_frag_rb_remove(gnrc_sixlowpan_frag_rb_t *rbuf)
Unsets a reassembly buffer entry (but does not free rbuf_t::super::pkt)
void gnrc_sixlowpan_frag_rb_base_rm(gnrc_sixlowpan_frag_rb_base_t *entry)
Remove base entry.
uint32_t arrival
time in microseconds of arrival of last received fragment
General definitions for network packets and their helper functions.
uint16_t current_size
The number of bytes currently received of the complete datagram.
Base class for both reassembly buffer and virtual reassembly buffer.
gnrc_sixlowpan_frag_rb_int_t * ints
intervals of already received fragments
#define IEEE802154_LONG_ADDRESS_LEN
long address (EUI-64)
static bool gnrc_sixlowpan_frag_rb_entry_empty(const gnrc_sixlowpan_frag_rb_t *rbuf)
Checks if a reassembly buffer entry is unset.
uint16_t end
end byte of the fragment interval
void gnrc_sixlowpan_frag_rb_rm_by_datagram(const gnrc_netif_hdr_t *netif_hdr, uint16_t tag)
Removes a reassembly buffer entry with a given link-layer address pair and tag.
Generic network interface header.
gnrc_sixlowpan_frag_rb_t * gnrc_sixlowpan_frag_rb_add(gnrc_netif_hdr_t *netif_hdr, gnrc_pktsnip_t *frag, size_t offset, unsigned page)
Adds a new fragment to the reassembly buffer.
Type to represent parts (either headers or payload) of a packet, called snips.