Loading...
Searching...
No Matches

Reassembly buffer definitions. More...

Detailed Description

Reassembly buffer definitions.

Author
Martine Lenders m.len.nosp@m.ders.nosp@m.@fu-b.nosp@m.erli.nosp@m.n.de

Definition in file rb.h.

#include <stdint.h>
#include <stdbool.h>
#include <stdalign.h>
#include "architecture.h"
#include "net/gnrc/netif/hdr.h"
#include "net/gnrc/pkt.h"
#include "net/gnrc/sixlowpan/config.h"
+ Include dependency graph for rb.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gnrc_sixlowpan_frag_rb_int
 Fragment intervals to identify limits of fragments and duplicates. More...
 
struct  gnrc_sixlowpan_frag_rb_base_t
 Base class for both reassembly buffer and virtual reassembly buffer. More...
 
struct  gnrc_sixlowpan_frag_rb_t
 An entry in the 6LoWPAN reassembly buffer. More...
 

Macros

#define GNRC_SIXLOWPAN_FRAG_RB_GC_MSG   (0x0226)
 Message type for triggering garbage collection reassembly buffer.
 

Typedefs

typedef struct gnrc_sixlowpan_frag_rb_int gnrc_sixlowpan_frag_rb_int_t
 Fragment intervals to identify limits of fragments and duplicates.
 

Functions

gnrc_sixlowpan_frag_rb_tgnrc_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.
 
gnrc_sixlowpan_frag_rb_tgnrc_sixlowpan_frag_rb_get_by_datagram (const gnrc_netif_hdr_t *netif_hdr, uint16_t tag)
 Gets a reassembly buffer entry with a given link-layer address pair and tag.
 
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.
 
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.
 
static bool gnrc_sixlowpan_frag_rb_entry_empty (const gnrc_sixlowpan_frag_rb_t *rbuf)
 Checks if a reassembly buffer entry is unset.
 
void gnrc_sixlowpan_frag_rb_reset (void)
 Resets the packet buffer to a clean state.
 
const gnrc_sixlowpan_frag_rb_tgnrc_sixlowpan_frag_rb_array (void)
 Returns a pointer to the array representing the reassembly buffer.
 
void gnrc_sixlowpan_frag_rb_base_rm (gnrc_sixlowpan_frag_rb_base_t *entry)
 Remove base entry.
 
void gnrc_sixlowpan_frag_rb_gc (void)
 Garbage collect reassembly buffer.
 
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 case.
 
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)
 
bool gnrc_sixlowpan_frag_rb_ints_empty (void)
 Check if pool of fragment intervals is empty.