GNRC fragmentation extension definitions. More...
GNRC fragmentation extension definitions.
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"
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_t * | gnrc_ipv6_ext_frag_reass (gnrc_pktsnip_t *pkt) |
Reassemble fragmented IPv6 packet. | |
gnrc_ipv6_ext_frag_stats_t * | gnrc_ipv6_ext_frag_stats (void) |
Get the current statistics on reassembly and fragmentation. | |
Reassembly buffer operations | |
gnrc_ipv6_ext_frag_rbuf_t * | gnrc_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. | |