Loading...
Searching...
No Matches

GNRC fragmentation extension definitions. More...

Detailed Description

GNRC fragmentation extension definitions.

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

Definition in file frag.h.

#include <stdbool.h>
#include <stdint.h>
#include "clist.h"
#include "net/gnrc/pkt.h"
#include "net/gnrc/pktbuf.h"
#include "net/ipv6/hdr.h"
+ Include dependency graph for frag.h:

Go to the source code of this file.

Data Structures

struct  gnrc_ipv6_ext_frag_limits
 Data type to describe limits of a single fragment in the reassembly buffer. More...
 
struct  gnrc_ipv6_ext_frag_send_t
 Fragmentation send buffer type. More...
 
struct  gnrc_ipv6_ext_frag_rbuf_t
 A reassembly buffer entry. More...
 
struct  gnrc_ipv6_ext_frag_stats_t
 Statistics on reassembly and reassembly. More...
 

Macros

#define GNRC_IPV6_EXT_FRAG_RBUF_GC   (0xfe00U)
 Message type to time reassembly buffer garbage collection.
 
#define GNRC_IPV6_EXT_FRAG_CONTINUE   (0xfe01U)
 Message type to continue fragmenting a datagram from a given fragmentation send buffer.
 
#define GNRC_IPV6_EXT_FRAG_SEND   (0xfe02U)
 Message type to send a fragment of an IPv6 datagram.
 

Typedefs

typedef struct gnrc_ipv6_ext_frag_limits gnrc_ipv6_ext_frag_limits_t
 Data type to describe limits of a single fragment in the reassembly buffer.
 

Functions

void gnrc_ipv6_ext_frag_init (void)
 Initializes IPv6 fragmentation and reassembly.
 
void gnrc_ipv6_ext_frag_send_pkt (gnrc_pktsnip_t *pkt, unsigned path_mtu)
 Send an IPv6 packet fragmented.
 
void gnrc_ipv6_ext_frag_send (gnrc_ipv6_ext_frag_send_t *snd_buf)
 (Continue to) fragment packet already in fragmentation send buffer
 
gnrc_pktsnip_tgnrc_ipv6_ext_frag_reass (gnrc_pktsnip_t *pkt)
 Reassemble fragmented IPv6 packet.
 
gnrc_ipv6_ext_frag_stats_tgnrc_ipv6_ext_frag_stats (void)
 Get the current statistics on reassembly and fragmentation.
 

Reassembly buffer operations

gnrc_ipv6_ext_frag_rbuf_tgnrc_ipv6_ext_frag_rbuf_get (ipv6_hdr_t *ipv6, uint32_t id)
 Get a reassembly buffer by the identifying parameters.
 
void gnrc_ipv6_ext_frag_rbuf_free (gnrc_ipv6_ext_frag_rbuf_t *rbuf)
 Frees a reassembly buffer entry (but does not release its gnrc_ipv6_ext_frag_rbuf_t::pkt)
 
static void gnrc_ipv6_ext_frag_rbuf_del (gnrc_ipv6_ext_frag_rbuf_t *rbuf)
 Delete a reassembly buffer entry (and release its gnrc_ipv6_ext_frag_rbuf_t::pkt)
 
void gnrc_ipv6_ext_frag_rbuf_gc (void)
 Garbage-collect reassembly buffer.