DPDK 25.03.0-rc0
rte_gro.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_GRO_H_
6#define _RTE_GRO_H_
7
13#include <stdint.h>
14#include <rte_mbuf.h>
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20#define RTE_GRO_MAX_BURST_ITEM_NUM 128U
24#define RTE_GRO_TYPE_MAX_NUM 64
26#define RTE_GRO_TYPE_SUPPORT_NUM 2
29#define RTE_GRO_TCP_IPV4_INDEX 0
30#define RTE_GRO_TCP_IPV4 (1ULL << RTE_GRO_TCP_IPV4_INDEX)
32#define RTE_GRO_IPV4_VXLAN_TCP_IPV4_INDEX 1
33#define RTE_GRO_IPV4_VXLAN_TCP_IPV4 (1ULL << RTE_GRO_IPV4_VXLAN_TCP_IPV4_INDEX)
35#define RTE_GRO_UDP_IPV4_INDEX 2
36#define RTE_GRO_UDP_IPV4 (1ULL << RTE_GRO_UDP_IPV4_INDEX)
38#define RTE_GRO_IPV4_VXLAN_UDP_IPV4_INDEX 3
39#define RTE_GRO_IPV4_VXLAN_UDP_IPV4 (1ULL << RTE_GRO_IPV4_VXLAN_UDP_IPV4_INDEX)
41#define RTE_GRO_TCP_IPV6_INDEX 4
42#define RTE_GRO_TCP_IPV6 (1ULL << RTE_GRO_TCP_IPV6_INDEX)
50 uint64_t gro_types;
52 uint16_t max_flow_num;
56 uint16_t socket_id;
61};
62
78void *rte_gro_ctx_create(const struct rte_gro_param *param);
79
89void rte_gro_ctx_destroy(void *ctx);
90
111uint16_t rte_gro_reassemble_burst(struct rte_mbuf **pkts,
112 uint16_t nb_pkts,
113 const struct rte_gro_param *param);
114
142uint16_t rte_gro_reassemble(struct rte_mbuf **pkts,
143 uint16_t nb_pkts,
144 void *ctx);
145
173uint16_t rte_gro_timeout_flush(void *ctx,
174 uint64_t timeout_cycles,
175 uint64_t gro_types,
176 struct rte_mbuf **out,
177 uint16_t max_nb_out);
178
192uint64_t rte_gro_get_pkt_count(void *ctx);
193
194#ifdef __cplusplus
195}
196#endif
197
198#endif /* _RTE_GRO_H_ */
uint64_t rte_gro_get_pkt_count(void *ctx)
uint16_t rte_gro_reassemble_burst(struct rte_mbuf **pkts, uint16_t nb_pkts, const struct rte_gro_param *param)
uint16_t rte_gro_timeout_flush(void *ctx, uint64_t timeout_cycles, uint64_t gro_types, struct rte_mbuf **out, uint16_t max_nb_out)
void * rte_gro_ctx_create(const struct rte_gro_param *param)
void rte_gro_ctx_destroy(void *ctx)
uint16_t rte_gro_reassemble(struct rte_mbuf **pkts, uint16_t nb_pkts, void *ctx)
uint64_t gro_types
Definition: rte_gro.h:50
uint16_t socket_id
Definition: rte_gro.h:56
uint16_t max_item_per_flow
Definition: rte_gro.h:54
uint16_t max_flow_num
Definition: rte_gro.h:52