The friendly Operating System for the Internet of Things
#include <inttypes.h>
#include "net/gnrc/netif/hdr.h"
#include "net/gnrc/pkt.h"
#include "net/gnrc/sixlowpan/frag.h"
+ Include dependency graph for rbuf.h:

Go to the source code of this file.

Data Structures

struct  rbuf_int
 Fragment intervals to identify limits of fragments. More...
 
struct  rbuf_t
 An entry in the 6LoWPAN reassembly buffer. More...
 
#define RBUF_L2ADDR_MAX_LEN   (8U)
 maximum length for link-layer addresses
 
#define RBUF_SIZE   (4U)
 size of the reassembly buffer
 
#define RBUF_TIMEOUT   (3U * US_PER_SEC)
 timeout for reassembly in microseconds
 
typedef struct rbuf_int rbuf_int_t
 Fragment intervals to identify limits of fragments. More...
 
void rbuf_add (gnrc_netif_hdr_t *netif_hdr, gnrc_pktsnip_t *frag, size_t frag_size, size_t offset)
 Adds a new fragment to the reassembly buffer. More...
 

Typedef Documentation

typedef struct rbuf_int rbuf_int_t
Note
Fragments MUST NOT overlap and overlapping fragments are to be discarded
See also
RFC 4944, section 5.3

Function Documentation

void rbuf_add ( gnrc_netif_hdr_t netif_hdr,
gnrc_pktsnip_t frag,
size_t  frag_size,
size_t  offset 
)

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

Parameters
[in]netif_hdrThe interface header of the fragment, with gnrc_netif_hdr_t::if_pid and its source and destination address set.
[in]fragThe fragment to add.
[in]frag_sizeThe fragment's size.
[in]offsetThe fragment's offset.