DPDK
2.2.0
|
#include <stdint.h>
#include <stdio.h>
#include <rte_malloc.h>
#include <rte_memory.h>
#include <rte_ip.h>
#include <rte_byteorder.h>
Go to the source code of this file.
Data Structures | |
struct | rte_ip_frag_death_row |
struct | ip_frag_tbl_stat |
struct | rte_ip_frag_tbl |
Macros | |
#define | IP_FRAG_DEATH_ROW_LEN 32 |
#define | RTE_IPV6_EHDR_MF_SHIFT 0 |
Enumerations | |
enum | { IP_LAST_FRAG_IDX, IP_FIRST_FRAG_IDX, IP_MIN_FRAG_NUM, IP_MAX_FRAG_NUM = RTE_LIBRTE_IP_FRAG_MAX_FRAG } |
Functions | |
int32_t | rte_ipv6_fragment_packet (struct rte_mbuf *pkt_in, struct rte_mbuf **pkts_out, uint16_t nb_pkts_out, uint16_t mtu_size, struct rte_mempool *pool_direct, struct rte_mempool *pool_indirect) |
int32_t | rte_ipv4_fragment_packet (struct rte_mbuf *pkt_in, struct rte_mbuf **pkts_out, uint16_t nb_pkts_out, uint16_t mtu_size, struct rte_mempool *pool_direct, struct rte_mempool *pool_indirect) |
RTE IP Fragmentation and Reassembly
Implementation of IP packet fragmentation and reassembly.
Definition in file rte_ip_frag.h.
#define IP_FRAG_DEATH_ROW_LEN 32 |
death row size (in packets)
Definition at line 94 of file rte_ip_frag.h.
#define RTE_IPV6_EHDR_MF_SHIFT 0 |
IPv6 fragment extension header
Definition at line 131 of file rte_ip_frag.h.
anonymous enum |
IP_LAST_FRAG_IDX |
index of last fragment |
IP_FIRST_FRAG_IDX |
index of first fragment |
IP_MIN_FRAG_NUM |
minimum number of fragments |
IP_MAX_FRAG_NUM |
maximum number of fragments per packet |
Definition at line 58 of file rte_ip_frag.h.
int32_t rte_ipv6_fragment_packet | ( | struct rte_mbuf * | pkt_in, |
struct rte_mbuf ** | pkts_out, | ||
uint16_t | nb_pkts_out, | ||
uint16_t | mtu_size, | ||
struct rte_mempool * | pool_direct, | ||
struct rte_mempool * | pool_indirect | ||
) |
This function implements the fragmentation of IPv6 packets.
pkt_in | The input packet. |
pkts_out | Array storing the output fragments. |
nb_pkts_out | Number of fragments. |
mtu_size | Size in bytes of the Maximum Transfer Unit (MTU) for the outgoing IPv6 datagrams. This value includes the size of the IPv6 header. |
pool_direct | MBUF pool used for allocating direct buffers for the output fragments. |
pool_indirect | MBUF pool used for allocating indirect buffers for the output fragments. |
int32_t rte_ipv4_fragment_packet | ( | struct rte_mbuf * | pkt_in, |
struct rte_mbuf ** | pkts_out, | ||
uint16_t | nb_pkts_out, | ||
uint16_t | mtu_size, | ||
struct rte_mempool * | pool_direct, | ||
struct rte_mempool * | pool_indirect | ||
) |
IPv4 fragmentation.
This function implements the fragmentation of IPv4 packets.
pkt_in | The input packet. |
pkts_out | Array storing the output fragments. |
nb_pkts_out | Number of fragments. |
mtu_size | Size in bytes of the Maximum Transfer Unit (MTU) for the outgoing IPv4 datagrams. This value includes the size of the IPv4 header. |
pool_direct | MBUF pool used for allocating direct buffers for the output fragments. |
pool_indirect | MBUF pool used for allocating indirect buffers for the output fragments. |