DPDK  18.11.11
rte_gso.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation
3  */
4 
5 #ifndef _RTE_GSO_H_
6 #define _RTE_GSO_H_
7 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 #include <stdint.h>
18 #include <rte_mbuf.h>
19 
20 /* Minimum GSO segment size for TCP based packets. */
21 #define RTE_GSO_SEG_SIZE_MIN (sizeof(struct ether_hdr) + \
22  sizeof(struct ipv4_hdr) + sizeof(struct tcp_hdr) + 1)
23 
24 /* Minimum GSO segment size for UDP based packets. */
25 #define RTE_GSO_UDP_SEG_SIZE_MIN (sizeof(struct ether_hdr) + \
26  sizeof(struct ipv4_hdr) + sizeof(struct udp_hdr) + 1)
27 
28 /* GSO flags for rte_gso_ctx. */
29 #define RTE_GSO_FLAG_IPID_FIXED (1ULL << 0)
30 
37 struct rte_gso_ctx {
48  uint64_t flag;
52  uint32_t gso_types;
61  uint16_t gso_size;
66 };
67 
115 int rte_gso_segment(struct rte_mbuf *pkt,
116  const struct rte_gso_ctx *ctx,
117  struct rte_mbuf **pkts_out,
118  uint16_t nb_pkts_out);
119 #ifdef __cplusplus
120 }
121 #endif
122 
123 #endif /* _RTE_GSO_H_ */
int rte_gso_segment(struct rte_mbuf *pkt, const struct rte_gso_ctx *ctx, struct rte_mbuf **pkts_out, uint16_t nb_pkts_out)
uint64_t flag
Definition: rte_gso.h:48
struct rte_mempool * indirect_pool
Definition: rte_gso.h:42
struct rte_mempool * direct_pool
Definition: rte_gso.h:38
uint16_t gso_size
Definition: rte_gso.h:61
uint32_t gso_types
Definition: rte_gso.h:52