|
lwIP
2.1.2
Lightweight IP stack
|
#include "lwip/opt.h"#include "lwip/ip6_frag.h"#include "lwip/ip6.h"#include "lwip/icmp6.h"#include "lwip/nd6.h"#include "lwip/ip.h"#include "lwip/pbuf.h"#include "lwip/memp.h"#include "lwip/stats.h"#include <string.h>#include "arch/bpstruct.h"#include "arch/epstruct.h"Data Structures | |
| struct | ip6_reass_helper |
Macros | |
| #define | IP_REASS_CHECK_OVERLAP 1 |
| #define | IP_REASS_FREE_OLDEST 1 |
Functions | |
| struct pbuf * | ip6_reass (struct pbuf *p) |
| err_t | ip6_frag (struct pbuf *p, struct netif *netif, const ip6_addr_t *dest) |
IPv6 fragmentation and reassembly.
| #define IP_REASS_CHECK_OVERLAP 1 |
Setting this to 0, you can turn off checking the fragments for overlapping regions. The code gets a little smaller. Only use this if you know that overlapping won't occur on your network!
| #define IP_REASS_FREE_OLDEST 1 |
Set to 0 to prevent freeing the oldest datagram when the reassembly buffer is full (IP_REASS_MAX_PBUFS pbufs are enqueued). The code gets a little smaller. Datagrams will be freed by timeout only. Especially useful when MEMP_NUM_REASSDATA is set to 1, so one datagram can be reassembled at a time, only.
| err_t ip6_frag | ( | struct pbuf * | p, |
| struct netif * | netif, | ||
| const ip6_addr_t * | dest | ||
| ) |
Fragment an IPv6 datagram if too large for the netif or path MTU.
Chop the datagram in MTU sized chunks and send them in order by pointing PBUF_REFs into p
| p | ipv6 packet to send |
| netif | the netif on which to send |
| dest | destination ipv6 address to which to send |