Microchip® Advanced Software Framework

ip6_frag.h File Reference

IPv6 fragmentation and reassembly.

#include "lwip/opt.h"
#include "lwip/pbuf.h"
#include "lwip/ip6_addr.h"
#include "lwip/netif.h"

Data Structures

struct  ip6_reassdata
 

Macros

#define ip6_reass_init()   /* Compatibility define */
 
#define IP6_REASS_TMR_INTERVAL   1000
 

Functions

struct pbufip6_reass (struct pbuf *p)
 Reassembles incoming IPv6 fragments into an IPv6 datagram. More...
 
void ip6_reass_tmr (void)
 

#define ip6_reass_init ( )    /* Compatibility define */
#define IP6_REASS_TMR_INTERVAL   1000

struct pbuf* ip6_reass ( struct pbuf p)

Reassembles incoming IPv6 fragments into an IPv6 datagram.

Parameters
ppoints to the IPv6 Fragment Header
lenthe length of the payload (after Fragment Header)
Returns
NULL if reassembly is incomplete, pbuf pointing to IPv6 Header if reassembly is complete

References ip6_reassdata::datagram_len, htons, ip6_reassdata::identification, if(), ip6_addr_cmp, ip6_current_dest_addr, ip6_current_header, ip6_current_src_addr, IP6_FRAG_HLEN, IP6_FRAG_MORE_FLAG, IP6_FRAG_OFFSET_MASK, IP6_FRAG_STATS_INC, IP6_HLEN, ip6_reass_pbufcount, ip6_reass_remove_oldest_datagram(), ip6_reassdata::iphdr, LWIP_ASSERT, memp_free(), memp_malloc(), ip6_reassdata::next, ip6_reassdata::nexth, ntohs, NULL, ip6_reassdata::p, pbuf::payload, pbuf_cat(), pbuf_clen(), pbuf_free(), pbuf_header(), reassdatagrams, and ip6_reassdata::timer.

Referenced by ip6_input().