2 // Copyright (c) 2010-2020 Intel Corporation
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
16 #ifndef _PROX_COMPAT_H_
17 #define _PROX_COMPAT_H_
18 #include <rte_common.h>
19 #include <rte_table_hash.h>
20 #include <rte_ethdev.h>
21 #include <rte_hash_crc.h>
22 #include <rte_cryptodev.h>
24 #include "hash_utils.h"
27 /* This is a copy of the rte_table_hash_params from DPDK 17.11 *
28 * So if DPDK decides to change the structure the modifications *
29 * to PROX code should mainly be limited to this file *
31 struct prox_rte_table_params {
38 rte_table_hash_op_hash f_hash;
42 #if RTE_VERSION < RTE_VERSION_NUM(16,4,0,0)
43 typedef uint8_t prox_next_hop_index_type;
45 typedef uint32_t prox_next_hop_index_type;
48 #if RTE_VERSION < RTE_VERSION_NUM(16,7,0,0)
49 static void rte_mempool_free(struct rte_mempool *mp)
51 plog_warn("rte_mempool_free not supported in this DPDK - upgrade DPDK to avoid memory leaks\n");
55 #if RTE_VERSION < RTE_VERSION_NUM(17,11,0,0)
57 static void *prox_rte_table_create(struct prox_rte_table_params *params, int socket_id, uint32_t entry_size)
59 if (params->key_size == 8) {
60 struct rte_table_hash_key8_ext_params dpdk17_08_params;
61 dpdk17_08_params.n_entries = params->n_keys;
62 dpdk17_08_params.n_entries_ext = params->n_keys >> 2;
63 dpdk17_08_params.f_hash = (rte_table_hash_op_hash)rte_hash_crc;
64 dpdk17_08_params.seed = params->seed;
65 dpdk17_08_params.signature_offset = HASH_METADATA_OFFSET(8); // Ignored for dosig
66 dpdk17_08_params.key_offset = HASH_METADATA_OFFSET(0);
67 dpdk17_08_params.key_mask = params->key_mask;
68 return rte_table_hash_key8_ext_dosig_ops.f_create(&dpdk17_08_params, socket_id, entry_size);
70 struct rte_table_hash_ext_params dpdk17_08_params;
71 dpdk17_08_params.key_size = params->key_size;
72 dpdk17_08_params.n_keys = params->n_keys;
73 dpdk17_08_params.n_buckets = params->n_buckets;
74 dpdk17_08_params.n_buckets_ext = params->n_buckets >> 1;
75 dpdk17_08_params.seed = params->seed;
76 dpdk17_08_params.f_hash = (rte_table_hash_op_hash)rte_hash_crc;
77 dpdk17_08_params.signature_offset = HASH_METADATA_OFFSET(0);
78 dpdk17_08_params.key_offset = HASH_METADATA_OFFSET(0);
79 return rte_table_hash_ext_dosig_ops.f_create(&dpdk17_08_params, socket_id, entry_size);
83 static inline int prox_rte_eth_dev_get_port_by_name(const char *name, uint16_t *port_id)
85 #if RTE_VERSION < RTE_VERSION_NUM(16,7,0,0)
86 plog_err("Not supported in DPDK version <= 16.04 by lack of rte_eth_dev_get_port_by_name support\n");
89 return rte_eth_dev_get_port_by_name(name, (uint8_t *)port_id);
93 #define prox_rte_table_free rte_table_hash_ext_dosig_ops.f_free
94 #define prox_rte_table_add rte_table_hash_ext_dosig_ops.f_add
95 #define prox_rte_table_delete rte_table_hash_ext_dosig_ops.f_delete
96 #define prox_rte_table_add_bulk rte_table_hash_ext_dosig_ops.f_add_bulk
97 #define prox_rte_table_delete_bulk rte_table_hash_ext_dosig_ops.f_delete_bulk
98 #define prox_rte_table_lookup rte_table_hash_ext_dosig_ops.f_lookup
99 #define prox_rte_table_stats rte_table_hash_ext_dosig_ops.f_stats
101 #define prox_rte_table_key8_free rte_table_hash_key8_ext_dosig_ops.f_free
102 #define prox_rte_table_key8_add rte_table_hash_key8_ext_dosig_ops.f_add
103 #define prox_rte_table_key8_delete rte_table_hash_key8_ext_dosig_ops.f_delete
104 #define prox_rte_table_key8_add_bulk rte_table_hash_key8_ext_dosig_ops.f_add_bulk
105 #define prox_rte_table_key8_delete_bulk rte_table_hash_key8_ext_dosig_ops.f_delete_bulk
106 #define prox_rte_table_key8_lookup rte_table_hash_key8_ext_dosig_ops.f_lookup
107 #define prox_rte_table_key8_stats rte_table_hash_key8_ext_dosig_ops.f_stats
109 #define rte_log_set_global_level rte_set_log_level
113 static void *prox_rte_table_create(struct prox_rte_table_params *params, int socket_id, uint32_t entry_size)
115 struct rte_table_hash_params dpdk_17_11_params;
116 dpdk_17_11_params.name = params->name;
117 dpdk_17_11_params.key_size = params->key_size;
118 dpdk_17_11_params.key_offset = params->key_offset;
119 dpdk_17_11_params.key_mask = params->key_mask;
120 dpdk_17_11_params.n_keys = params->n_keys;
121 dpdk_17_11_params.n_buckets = rte_align32pow2(params->n_buckets);
122 dpdk_17_11_params.f_hash = params->f_hash;
123 dpdk_17_11_params.seed = params->seed;
125 if (params->key_size == 8) {
126 return rte_table_hash_key8_ext_ops.f_create(&dpdk_17_11_params, socket_id, entry_size);
128 return rte_table_hash_ext_ops.f_create(&dpdk_17_11_params, socket_id, entry_size);
132 #define prox_rte_eth_dev_get_port_by_name rte_eth_dev_get_port_by_name
134 #define prox_rte_table_free rte_table_hash_ext_ops.f_free
135 #define prox_rte_table_add rte_table_hash_ext_ops.f_add
136 #define prox_rte_table_delete rte_table_hash_ext_ops.f_delete
137 #define prox_rte_table_add_bulk rte_table_hash_ext_ops.f_add_bulk
138 #define prox_rte_table_delete_bulk rte_table_hash_ext_ops.f_delete_bulk
139 #define prox_rte_table_lookup rte_table_hash_ext_ops.f_lookup
140 #define prox_rte_table_stats rte_table_hash_ext_ops.f_stats
142 #define prox_rte_table_key8_free rte_table_hash_key8_ext_ops.f_free
143 #define prox_rte_table_key8_add rte_table_hash_key8_ext_ops.f_add
144 #define prox_rte_table_key8_delete rte_table_hash_key8_ext_ops.f_delete
145 #define prox_rte_table_key8_add_bulk rte_table_hash_key8_ext_ops.f_add_bulk
146 #define prox_rte_table_key8_delete_bulk rte_table_hash_key8_ext_ops.f_delete_bulk
147 #define prox_rte_table_key8_lookup rte_table_hash_key8_ext_ops.f_lookup
148 #define prox_rte_table_key8_stats rte_table_hash_key8_ext_ops.f_stats
152 #if RTE_VERSION < RTE_VERSION_NUM(18,8,0,0)
153 #define rte_cryptodev_sym_get_private_session_size rte_cryptodev_get_private_session_size
156 #if RTE_VERSION < RTE_VERSION_NUM(19,2,0,0)
157 #define RTE_COLOR_GREEN e_RTE_METER_GREEN
158 #define RTE_COLOR_YELLOW e_RTE_METER_YELLOW
159 #define RTE_COLOR_RED e_RTE_METER_RED
160 #define prox_rte_color rte_meter_color
161 #define prox_rte_sched_port_pkt_read_tree_path(A,B,C,D,E,F) rte_sched_port_pkt_read_tree_path(B,C,D,E,F)
162 #define prox_rte_sched_port_pkt_write(A,B,C,D,E,F,G) rte_sched_port_pkt_write(B,C,D,E,F,G);
164 #define prox_rte_color rte_color
165 #define prox_rte_sched_port_pkt_read_tree_path(A,B,C,D,E,F) rte_sched_port_pkt_read_tree_path(A,B,C,D,E,F)
166 #define prox_rte_sched_port_pkt_write(A,B,C,D,E,F,G) rte_sched_port_pkt_write(A,B,C,D,E,F,G);
169 #if RTE_VERSION < RTE_VERSION_NUM(19,8,0,0)
170 #if RTE_VERSION >= RTE_VERSION_NUM(18,5,0,0)
171 typedef struct vxlan_gpe_hdr prox_rte_vxlan_gpe_hdr;
173 #define PROX_RTE_ETHER_CRC_LEN ETHER_CRC_LEN
174 #define PROX_RTE_ETHER_MIN_LEN ETHER_MIN_LEN
175 #define PROX_RTE_ETHER_MAX_LEN ETHER_MAX_LEN
176 #define PROX_RTE_ETHER_HDR_LEN ETHER_HDR_LEN
177 #define PROX_RTE_TCP_SYN_FLAG TCP_SYN_FLAG
178 #define PROX_RTE_TCP_FIN_FLAG TCP_FIN_FLAG
179 #define PROX_RTE_TCP_RST_FLAG TCP_RST_FLAG
180 #define PROX_RTE_TCP_ACK_FLAG TCP_ACK_FLAG
181 #define PROX_RTE_IP_ICMP_ECHO_REPLY IP_ICMP_ECHO_REPLY
182 #define PROX_RTE_IP_ICMP_ECHO_REQUEST IP_ICMP_ECHO_REQUEST
184 #define prox_rte_ether_addr_copy ether_addr_copy
185 #define prox_rte_eth_random_addr eth_random_addr
187 typedef struct ipv6_hdr prox_rte_ipv6_hdr;
188 typedef struct ipv4_hdr prox_rte_ipv4_hdr;
189 typedef struct ether_addr prox_rte_ether_addr;
190 typedef struct ether_hdr prox_rte_ether_hdr;
191 typedef struct vlan_hdr prox_rte_vlan_hdr;
192 typedef struct udp_hdr prox_rte_udp_hdr;
193 typedef struct tcp_hdr prox_rte_tcp_hdr;
194 typedef struct icmp_hdr prox_rte_icmp_hdr;
196 #ifndef RTE_SCHED_BE_QUEUES_PER_PIPE
197 #define RTE_SCHED_BE_QUEUES_PER_PIPE RTE_SCHED_QUEUES_PER_PIPE
200 #define PROX_RTE_IS_IPV4_MCAST IS_IPV4_MCAST
201 #define prox_rte_is_same_ether_addr is_same_ether_addr
202 #define prox_rte_is_zero_ether_addr is_zero_ether_addr
205 #define PROX_RTE_ETHER_CRC_LEN RTE_ETHER_CRC_LEN
206 #define PROX_RTE_ETHER_MIN_LEN RTE_ETHER_MIN_LEN
207 #define PROX_RTE_ETHER_MAX_LEN RTE_ETHER_MAX_LEN
208 #define PROX_RTE_ETHER_HDR_LEN RTE_ETHER_HDR_LEN
209 #define PROX_RTE_TCP_SYN_FLAG RTE_TCP_SYN_FLAG
210 #define PROX_RTE_TCP_FIN_FLAG RTE_TCP_FIN_FLAG
211 #define PROX_RTE_TCP_RST_FLAG RTE_TCP_RST_FLAG
212 #define PROX_RTE_TCP_ACK_FLAG RTE_TCP_ACK_FLAG
213 #define PROX_RTE_IP_ICMP_ECHO_REPLY RTE_IP_ICMP_ECHO_REPLY
214 #define PROX_RTE_IP_ICMP_ECHO_REQUEST RTE_IP_ICMP_ECHO_REQUEST
216 #define prox_rte_ether_addr_copy rte_ether_addr_copy
217 #define prox_rte_eth_random_addr rte_eth_random_addr
219 typedef struct rte_ipv6_hdr prox_rte_ipv6_hdr;
220 typedef struct rte_ipv4_hdr prox_rte_ipv4_hdr;
221 typedef struct rte_ether_addr prox_rte_ether_addr;
222 #if RTE_VERSION < RTE_VERSION_NUM(21,11,0,0)
223 typedef struct rte_ether_hdr prox_rte_ether_hdr;
225 typedef struct prox_rte_ether_hdr
227 struct rte_ether_addr d_addr; /**< Destination address. */
228 struct rte_ether_addr s_addr; /**< Source address. */
229 rte_be16_t ether_type; /**< Frame type. */
230 } __rte_aligned(2) prox_rte_ether_hdr;
232 typedef struct rte_vlan_hdr prox_rte_vlan_hdr;
233 typedef struct rte_vxlan_gpe_hdr prox_rte_vxlan_gpe_hdr;
234 typedef struct rte_udp_hdr prox_rte_udp_hdr;
235 typedef struct rte_tcp_hdr prox_rte_tcp_hdr;
236 typedef struct rte_icmp_hdr prox_rte_icmp_hdr;
238 #define PROX_RTE_IS_IPV4_MCAST RTE_IS_IPV4_MCAST
239 #define prox_rte_is_same_ether_addr rte_is_same_ether_addr
240 #define prox_rte_is_zero_ether_addr rte_is_zero_ether_addr
244 char *prox_strncpy(char * dest, const char * src, size_t count);
246 #ifdef RTE_LIBRTE_PMD_AESNI_MB
247 #if RTE_VERSION < RTE_VERSION_NUM(19,5,0,0)
249 struct prox_esp_hdr {
253 struct prox_rte_cryptodev_qp_conf {
254 uint32_t nb_descriptors; /**< Number of descriptors per queue pair */
255 struct rte_mempool * mp_session;
256 struct rte_mempool * mp_session_private;
259 static int prox_rte_cryptodev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id, struct prox_rte_cryptodev_qp_conf *qp_conf, int socket_id)
261 struct rte_mempool *session_pool = qp_conf->mp_session;
262 return rte_cryptodev_queue_pair_setup(dev_id, queue_pair_id, (struct rte_cryptodev_qp_conf *)qp_conf, socket_id, session_pool);
266 #define prox_rte_cryptodev_qp_conf rte_cryptodev_qp_conf
267 static int prox_rte_cryptodev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id, struct prox_rte_cryptodev_qp_conf *qp_conf, int socket_id)
269 return rte_cryptodev_queue_pair_setup(dev_id, queue_pair_id, (struct rte_cryptodev_qp_conf *)qp_conf, socket_id);
272 #if RTE_VERSION < RTE_VERSION_NUM(19,8,0,0)
273 #define prox_esp_hdr esp_hdr
275 #else // From DPDK 19.08
276 #define prox_esp_hdr rte_esp_hdr
280 #endif // CONFIG_RTE_LIBRTE_PMD_AESNI_MB
282 #if RTE_VERSION < RTE_VERSION_NUM(19,11,0,0)
283 #define prox_rte_eth_dev_count_avail() rte_eth_dev_count()
285 #define prox_rte_eth_dev_count_avail() rte_eth_dev_count_avail()
288 // deal with RTE_DEPRECATED symbols
290 #if RTE_VERSION < RTE_VERSION_NUM(20,11,0,0)
291 #define SKIP_MAIN SKIP_MASTER
292 #define CALL_MAIN CALL_MASTER
293 #define RTE_DEVTYPE_ALLOWED RTE_DEVTYPE_WHITELISTED_PCI
294 #define RTE_DEVTYPE_BLOCKED RTE_DEVTYPE_BLACKLISTED_PCI
295 #define RTE_LCORE_FOREACH_WORKER RTE_LCORE_FOREACH_SLAVE
296 #if RTE_VERSION >= RTE_VERSION_NUM(17,8,0,0)
297 #define RTE_DEV_ALLOWED RTE_DEV_WHITELISTED
298 #define RTE_DEV_BLOCKED RTE_DEV_BLACKLISTED
299 #define RTE_BUS_SCAN_ALLOWLIST RTE_BUS_SCAN_WHITELIST
300 #define RTE_BUS_SCAN_BLOCKLIST RTE_BUS_SCAN_BLACKLIST
304 #if RTE_VERSION < RTE_VERSION_NUM(21,5,0,0)
305 #define RTE_PCI_ANY_ID PCI_ANY_ID
306 #define PKT_RX_OUTER_IP_CKSUM_BAD PKT_RX_EIP_CKSUM_BAD
309 #if RTE_VERSION < RTE_VERSION_NUM(21,11,0,0)
310 #define RTE_MEMPOOL_HEADER_SIZE MEMPOOL_HEADER_SIZE
311 #define RTE_MBUF_F_RX_RSS_HASH PKT_RX_RSS_HASH
312 #define RTE_MBUF_F_RX_FDIR PKT_RX_FDIR
313 #define RTE_MBUF_F_RX_OUTER_IP_CKSUM_BAD PKT_RX_OUTER_IP_CKSUM_BAD
314 #define RTE_MBUF_F_RX_IP_CKSUM_BAD PKT_RX_IP_CKSUM_BAD
315 #define RTE_MBUF_F_RX_L4_CKSUM_BAD PKT_RX_L4_CKSUM_BAD
316 #define RTE_MBUF_F_RX_IEEE1588_PTP PKT_RX_IEEE1588_PTP
317 #define RTE_MBUF_F_RX_IEEE1588_TMST PKT_RX_IEEE1588_TMST
318 #define RTE_MBUF_F_RX_FDIR_ID PKT_RX_FDIR_ID
319 #define RTE_MBUF_F_RX_FDIR_FLX PKT_RX_FDIR_FLX
320 #define RTE_MBUF_F_TX_QINQ PKT_TX_QINQ_PKT
321 #define RTE_MBUF_F_TX_TCP_SEG PKT_TX_TCP_SEG
322 #define RTE_MBUF_F_TX_IEEE1588_TMST PKT_TX_IEEE1588_TMST
323 #define RTE_MBUF_F_TX_L4_NO_CKSUM PKT_TX_L4_NO_CKSUM
324 #define RTE_MBUF_F_TX_TCP_CKSUM PKT_TX_TCP_CKSUM
325 #define RTE_MBUF_F_TX_SCTP_CKSUM PKT_TX_SCTP_CKSUM
326 #define RTE_MBUF_F_TX_UDP_CKSUM PKT_TX_UDP_CKSUM
327 #define RTE_MBUF_F_TX_L4_MASK PKT_TX_L4_MASK
328 #define RTE_MBUF_F_TX_IP_CKSUM PKT_TX_IP_CKSUM
329 #define RTE_MBUF_F_TX_IPV4 PKT_TX_IPV4
330 #define RTE_MBUF_F_TX_IPV6 PKT_TX_IPV6
331 #define RTE_MBUF_F_TX_VLAN PKT_TX_VLAN_PKT
332 #define RTE_MBUF_F_TX_OUTER_IP_CKSUM PKT_TX_OUTER_IP_CKSUM
333 #define RTE_MBUF_F_TX_OUTER_IPV4 PKT_TX_OUTER_IPV4
334 #define RTE_MBUF_F_TX_OUTER_IPV6 PKT_TX_OUTER_IPV6
335 #define RTE_MBUF_F_INDIRECT IND_ATTACHED_MBUF
336 #define RTE_ETH_LINK_SPEED_AUTONEG ETH_LINK_SPEED_AUTONEG
337 #define RTE_ETH_LINK_SPEED_FIXED ETH_LINK_SPEED_FIXED
338 #define RTE_ETH_LINK_SPEED_10M_HD ETH_LINK_SPEED_10M_HD
339 #define RTE_ETH_LINK_SPEED_10M ETH_LINK_SPEED_10M
340 #define RTE_ETH_LINK_SPEED_100M_HD ETH_LINK_SPEED_100M_HD
341 #define RTE_ETH_LINK_SPEED_100M ETH_LINK_SPEED_100M
342 #define RTE_ETH_LINK_SPEED_1G ETH_LINK_SPEED_1G
343 #define RTE_ETH_LINK_SPEED_2_5G ETH_LINK_SPEED_2_5G
344 #define RTE_ETH_LINK_SPEED_5G ETH_LINK_SPEED_5G
345 #define RTE_ETH_LINK_SPEED_10G ETH_LINK_SPEED_10G
346 #define RTE_ETH_LINK_SPEED_20G ETH_LINK_SPEED_20G
347 #define RTE_ETH_LINK_SPEED_25G ETH_LINK_SPEED_25G
348 #define RTE_ETH_LINK_SPEED_40G ETH_LINK_SPEED_40G
349 #define RTE_ETH_LINK_SPEED_50G ETH_LINK_SPEED_50G
350 #define RTE_ETH_LINK_SPEED_56G ETH_LINK_SPEED_56G
351 #define RTE_ETH_LINK_SPEED_100G ETH_LINK_SPEED_100G
352 #define RTE_ETH_SPEED_NUM_NONE ETH_SPEED_NUM_NONE
353 #define RTE_ETH_SPEED_NUM_10M ETH_SPEED_NUM_10M
354 #define RTE_ETH_SPEED_NUM_100M ETH_SPEED_NUM_100M
355 #define RTE_ETH_SPEED_NUM_1G ETH_SPEED_NUM_1G
356 #define RTE_ETH_SPEED_NUM_2_5G ETH_SPEED_NUM_2_5G
357 #define RTE_ETH_SPEED_NUM_5G ETH_SPEED_NUM_5G
358 #define RTE_ETH_SPEED_NUM_10G ETH_SPEED_NUM_10G
359 #define RTE_ETH_SPEED_NUM_20G ETH_SPEED_NUM_20G
360 #define RTE_ETH_SPEED_NUM_25G ETH_SPEED_NUM_25G
361 #define RTE_ETH_SPEED_NUM_40G ETH_SPEED_NUM_40G
362 #define RTE_ETH_SPEED_NUM_50G ETH_SPEED_NUM_50G
363 #define RTE_ETH_SPEED_NUM_56G ETH_SPEED_NUM_56G
364 #define RTE_ETH_SPEED_NUM_100G ETH_SPEED_NUM_100G
365 #define RTE_ETH_LINK_HALF_DUPLEX ETH_LINK_HALF_DUPLEX
366 #define RTE_ETH_LINK_FULL_DUPLEX ETH_LINK_FULL_DUPLEX
367 #define RTE_ETH_LINK_DOWN ETH_LINK_DOWN
368 #define RTE_ETH_LINK_UP ETH_LINK_UP
369 #define RTE_ETH_LINK_FIXED ETH_LINK_FIXED
370 #define RTE_ETH_LINK_AUTONEG ETH_LINK_AUTONEG
371 #define RTE_ETH_MQ_RX_RSS_FLAG ETH_MQ_RX_RSS_FLAG
372 #define RTE_ETH_MQ_RX_DCB_FLAG ETH_MQ_RX_DCB_FLAG
373 #define RTE_ETH_MQ_RX_VMDQ_FLAG ETH_MQ_RX_VMDQ_FLAG
374 #define RTE_ETH_MQ_RX_NONE ETH_MQ_RX_NONE
375 #define RTE_ETH_MQ_RX_RSS ETH_MQ_RX_RSS
376 #define RTE_ETH_MQ_RX_DCB ETH_MQ_RX_DCB
377 #define RTE_ETH_MQ_RX_DCB_RSS ETH_MQ_RX_DCB_RSS
378 #define RTE_ETH_MQ_RX_VMDQ_ONLY ETH_MQ_RX_VMDQ_ONLY
379 #define RTE_ETH_MQ_RX_VMDQ_RSS ETH_MQ_RX_VMDQ_RSS
380 #define RTE_ETH_MQ_RX_VMDQ_DCB ETH_MQ_RX_VMDQ_DCB
381 #define RTE_ETH_MQ_RX_VMDQ_DCB_RSS ETH_MQ_RX_VMDQ_DCB_RSS
382 #define RTE_ETH_MQ_TX_NONE ETH_MQ_TX_NONE
383 #define RTE_ETH_MQ_TX_DCB ETH_MQ_TX_DCB
384 #define RTE_ETH_MQ_TX_VMDQ_DCB ETH_MQ_TX_VMDQ_DCB
385 #define RTE_ETH_MQ_TX_VMDQ_ONLY ETH_MQ_TX_VMDQ_ONLY
386 #define RTE_ETH_VLAN_TYPE_UNKNOWN ETH_VLAN_TYPE_UNKNOWN
387 #define RTE_ETH_VLAN_TYPE_INNER ETH_VLAN_TYPE_INNER
388 #define RTE_ETH_VLAN_TYPE_OUTER ETH_VLAN_TYPE_OUTER
389 #define RTE_ETH_VLAN_TYPE_MAX ETH_VLAN_TYPE_MAX
390 #define RTE_ETH_RSS_IPV4 ETH_RSS_IPV4
391 #define RTE_ETH_RSS_FRAG_IPV4 ETH_RSS_FRAG_IPV4
392 #define RTE_ETH_RSS_NONFRAG_IPV4_TCP ETH_RSS_NONFRAG_IPV4_TCP
393 #define RTE_ETH_RSS_NONFRAG_IPV4_UDP ETH_RSS_NONFRAG_IPV4_UDP
394 #define RTE_ETH_RSS_NONFRAG_IPV4_SCTP ETH_RSS_NONFRAG_IPV4_SCTP
395 #define RTE_ETH_RSS_NONFRAG_IPV4_OTHER ETH_RSS_NONFRAG_IPV4_OTHER
396 #define RTE_ETH_RSS_IPV6 ETH_RSS_IPV6
397 #define RTE_ETH_RSS_FRAG_IPV6 ETH_RSS_FRAG_IPV6
398 #define RTE_ETH_RSS_NONFRAG_IPV6_TCP ETH_RSS_NONFRAG_IPV6_TCP
399 #define RTE_ETH_RSS_NONFRAG_IPV6_UDP ETH_RSS_NONFRAG_IPV6_UDP
400 #define RTE_ETH_RSS_NONFRAG_IPV6_SCTP ETH_RSS_NONFRAG_IPV6_SCTP
401 #define RTE_ETH_RSS_NONFRAG_IPV6_OTHER ETH_RSS_NONFRAG_IPV6_OTHER
402 #define RTE_ETH_RSS_L2_PAYLOAD ETH_RSS_L2_PAYLOAD
403 #define RTE_ETH_RSS_IPV6_EX ETH_RSS_IPV6_EX
404 #define RTE_ETH_RSS_IPV6_TCP_EX ETH_RSS_IPV6_TCP_EX
405 #define RTE_ETH_RSS_IPV6_UDP_EX ETH_RSS_IPV6_UDP_EX
406 #define RTE_ETH_RSS_IP ETH_RSS_IP
407 #define RTE_ETH_RSS_UDP ETH_RSS_UDP
408 #define RTE_ETH_RSS_TCP ETH_RSS_TCP
409 #define RTE_ETH_RSS_SCTP ETH_RSS_SCTP
410 #define RTE_ETH_RSS_PROTO_MASK ETH_RSS_PROTO_MASK
411 #define RTE_ETH_RSS_RETA_SIZE_64 ETH_RSS_RETA_SIZE_64
412 #define RTE_ETH_RSS_RETA_SIZE_128 ETH_RSS_RETA_SIZE_128
413 #define RTE_ETH_RSS_RETA_SIZE_512 ETH_RSS_RETA_SIZE_512
414 #define RTE_ETH_RETA_GROUP_SIZE RTE_RETA_GROUP_SIZE
415 #define RTE_ETH_VMDQ_MAX_VLAN_FILTERS ETH_VMDQ_MAX_VLAN_FILTERS
416 #define RTE_ETH_DCB_NUM_USER_PRIORITIES ETH_DCB_NUM_USER_PRIORITIES
417 #define RTE_ETH_VMDQ_DCB_NUM_QUEUES ETH_VMDQ_DCB_NUM_QUEUES
418 #define RTE_ETH_DCB_NUM_QUEUES ETH_DCB_NUM_QUEUES
419 #define RTE_ETH_DCB_PG_SUPPORT ETH_DCB_PG_SUPPORT
420 #define RTE_ETH_DCB_PFC_SUPPORT ETH_DCB_PFC_SUPPORT
421 #define RTE_ETH_VLAN_STRIP_OFFLOAD ETH_VLAN_STRIP_OFFLOAD
422 #define RTE_ETH_VLAN_FILTER_OFFLOAD ETH_VLAN_FILTER_OFFLOAD
423 #define RTE_ETH_VLAN_EXTEND_OFFLOAD ETH_VLAN_EXTEND_OFFLOAD
424 #define RTE_ETH_VLAN_STRIP_MASK ETH_VLAN_STRIP_MASK
425 #define RTE_ETH_VLAN_FILTER_MASK ETH_VLAN_FILTER_MASK
426 #define RTE_ETH_VLAN_EXTEND_MASK ETH_VLAN_EXTEND_MASK
427 #define RTE_ETH_VLAN_ID_MAX ETH_VLAN_ID_MAX
428 #define RTE_ETH_NUM_RECEIVE_MAC_ADDR ETH_NUM_RECEIVE_MAC_ADDR
429 #define RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY ETH_VMDQ_NUM_UC_HASH_ARRAY
430 #define RTE_ETH_VMDQ_ACCEPT_UNTAG ETH_VMDQ_ACCEPT_UNTAG
431 #define RTE_ETH_VMDQ_ACCEPT_HASH_MC ETH_VMDQ_ACCEPT_HASH_MC
432 #define RTE_ETH_VMDQ_ACCEPT_HASH_UC ETH_VMDQ_ACCEPT_HASH_UC
433 #define RTE_ETH_VMDQ_ACCEPT_BROADCAST ETH_VMDQ_ACCEPT_BROADCAST
434 #define RTE_ETH_VMDQ_ACCEPT_MULTICAST ETH_VMDQ_ACCEPT_MULTICAST
435 #define RTE_ETH_4_TCS ETH_4_TCS
436 #define RTE_ETH_8_TCS ETH_8_TCS
437 #define RTE_ETH_8_POOLS ETH_8_POOLS
438 #define RTE_ETH_16_POOLS ETH_16_POOLS
439 #define RTE_ETH_32_POOLS ETH_32_POOLS
440 #define RTE_ETH_64_POOLS ETH_64_POOLS
441 #define RTE_ETH_FC_NONE RTE_FC_NONE
442 #define RTE_ETH_FC_RX_PAUSE RTE_FC_RX_PAUSE
443 #define RTE_ETH_FC_TX_PAUSE RTE_FC_TX_PAUSE
444 #define RTE_ETH_FC_FULL RTE_FC_FULL
445 #define RTE_ETH_TUNNEL_TYPE_NONE RTE_TUNNEL_TYPE_NONE
446 #define RTE_ETH_TUNNEL_TYPE_VXLAN RTE_TUNNEL_TYPE_VXLAN
447 #define RTE_ETH_TUNNEL_TYPE_GENEVE RTE_TUNNEL_TYPE_GENEVE
448 #define RTE_ETH_TUNNEL_TYPE_TEREDO RTE_TUNNEL_TYPE_TEREDO
449 #define RTE_ETH_TUNNEL_TYPE_NVGRE RTE_TUNNEL_TYPE_NVGRE
450 #define RTE_ETH_TUNNEL_TYPE_IP_IN_GRE RTE_TUNNEL_TYPE_IP_IN_GRE
451 #define RTE_ETH_L2_TUNNEL_TYPE_E_TAG RTE_L2_TUNNEL_TYPE_E_TAG
452 #define RTE_ETH_TUNNEL_TYPE_MAX RTE_TUNNEL_TYPE_MAX
453 #define RTE_ETH_FDIR_PBALLOC_64K RTE_FDIR_PBALLOC_64K
454 #define RTE_ETH_FDIR_PBALLOC_128K RTE_FDIR_PBALLOC_128K
455 #define RTE_ETH_FDIR_PBALLOC_256K RTE_FDIR_PBALLOC_256K
456 #define RTE_ETH_RX_OFFLOAD_VLAN_STRIP DEV_RX_OFFLOAD_VLAN_STRIP
457 #define RTE_ETH_RX_OFFLOAD_IPV4_CKSUM DEV_RX_OFFLOAD_IPV4_CKSUM
458 #define RTE_ETH_RX_OFFLOAD_UDP_CKSUM DEV_RX_OFFLOAD_UDP_CKSUM
459 #define RTE_ETH_RX_OFFLOAD_TCP_CKSUM DEV_RX_OFFLOAD_TCP_CKSUM
460 #define RTE_ETH_RX_OFFLOAD_TCP_LRO DEV_RX_OFFLOAD_TCP_LRO
461 #define RTE_ETH_RX_OFFLOAD_QINQ_STRIP DEV_RX_OFFLOAD_QINQ_STRIP
462 #define RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM
463 #define RTE_ETH_TX_OFFLOAD_VLAN_INSERT DEV_TX_OFFLOAD_VLAN_INSERT
464 #define RTE_ETH_TX_OFFLOAD_IPV4_CKSUM DEV_TX_OFFLOAD_IPV4_CKSUM
465 #define RTE_ETH_TX_OFFLOAD_UDP_CKSUM DEV_TX_OFFLOAD_UDP_CKSUM
466 #define RTE_ETH_TX_OFFLOAD_TCP_CKSUM DEV_TX_OFFLOAD_TCP_CKSUM
467 #define RTE_ETH_TX_OFFLOAD_SCTP_CKSUM DEV_TX_OFFLOAD_SCTP_CKSUM
468 #define RTE_ETH_TX_OFFLOAD_TCP_TSO DEV_TX_OFFLOAD_TCP_TSO
469 #define RTE_ETH_TX_OFFLOAD_UDP_TSO DEV_TX_OFFLOAD_UDP_TSO
470 #define RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM
471 #define RTE_ETH_TX_OFFLOAD_QINQ_INSERT DEV_TX_OFFLOAD_QINQ_INSERT
472 #define RTE_ETH_DCB_NUM_TCS ETH_DCB_NUM_TCS
473 #define RTE_ETH_MAX_VMDQ_POOL ETH_MAX_VMDQ_POOL
474 #if RTE_VERSION >= RTE_VERSION_NUM(16,7,0,0)
475 #define RTE_MEMPOOL_REGISTER_OPS MEMPOOL_REGISTER_OPS
476 #define RTE_MBUF_F_RX_VLAN_STRIPPED PKT_RX_VLAN_STRIPPED
477 #define RTE_MBUF_F_RX_QINQ_STRIPPED PKT_RX_QINQ_STRIPPED
478 #define RTE_ETH_RSS_PORT ETH_RSS_PORT
479 #define RTE_ETH_RSS_VXLAN ETH_RSS_VXLAN
480 #define RTE_ETH_RSS_GENEVE ETH_RSS_GENEVE
481 #define RTE_ETH_RSS_NVGRE ETH_RSS_NVGRE
482 #define RTE_ETH_RSS_TUNNEL ETH_RSS_TUNNEL
483 #define RTE_ETH_RSS_RETA_SIZE_256 ETH_RSS_RETA_SIZE_256
485 #if RTE_VERSION >= RTE_VERSION_NUM(16,11,0,0)
486 #define RTE_MBUF_F_RX_IP_CKSUM_MASK PKT_RX_IP_CKSUM_MASK
487 #define RTE_MBUF_F_RX_IP_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN
488 #define RTE_MBUF_F_RX_IP_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD
489 #define RTE_MBUF_F_RX_IP_CKSUM_NONE PKT_RX_IP_CKSUM_NONE
490 #define RTE_MBUF_F_RX_L4_CKSUM_MASK PKT_RX_L4_CKSUM_MASK
491 #define RTE_MBUF_F_RX_L4_CKSUM_UNKNOWN PKT_RX_L4_CKSUM_UNKNOWN
492 #define RTE_MBUF_F_RX_L4_CKSUM_GOOD PKT_RX_L4_CKSUM_GOOD
493 #define RTE_MBUF_F_RX_L4_CKSUM_NONE PKT_RX_L4_CKSUM_NONE
494 #define RTE_MBUF_F_RX_LRO PKT_RX_LRO
495 #define RTE_MBUF_F_TX_TUNNEL_VXLAN PKT_TX_TUNNEL_VXLAN
496 #define RTE_MBUF_F_TX_TUNNEL_GRE PKT_TX_TUNNEL_GRE
497 #define RTE_MBUF_F_TX_TUNNEL_IPIP PKT_TX_TUNNEL_IPIP
498 #define RTE_MBUF_F_TX_TUNNEL_GENEVE PKT_TX_TUNNEL_GENEVE
499 #define RTE_MBUF_F_TX_TUNNEL_MASK PKT_TX_TUNNEL_MASK
500 #define RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO DEV_TX_OFFLOAD_VXLAN_TNL_TSO
501 #define RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO DEV_TX_OFFLOAD_GRE_TNL_TSO
502 #define RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO DEV_TX_OFFLOAD_IPIP_TNL_TSO
503 #define RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO DEV_TX_OFFLOAD_GENEVE_TNL_TSO
505 #if RTE_VERSION >= RTE_VERSION_NUM(17,2,0,0)
506 #define RTE_MBUF_F_TX_MACSEC PKT_TX_MACSEC
507 #define RTE_MBUF_F_TX_OFFLOAD_MASK PKT_TX_OFFLOAD_MASK
508 #define RTE_ETH_RX_OFFLOAD_MACSEC_STRIP DEV_RX_OFFLOAD_MACSEC_STRIP
509 #define RTE_ETH_TX_OFFLOAD_MACSEC_INSERT DEV_TX_OFFLOAD_MACSEC_INSERT
511 #if RTE_VERSION >= RTE_VERSION_NUM(17,8,0,0)
512 #define RTE_MBUF_F_TX_TUNNEL_MPLSINUDP PKT_TX_TUNNEL_MPLSINUDP
513 #define RTE_ETH_TX_OFFLOAD_MT_LOCKFREE DEV_TX_OFFLOAD_MT_LOCKFREE
515 #if RTE_VERSION >= RTE_VERSION_NUM(17,11,0,0)
516 #define RTE_MBUF_F_RX_VLAN PKT_RX_VLAN
517 #define RTE_MBUF_F_RX_SEC_OFFLOAD PKT_RX_SEC_OFFLOAD
518 #define RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED PKT_RX_SEC_OFFLOAD_FAILED
519 #define RTE_MBUF_F_RX_QINQ PKT_RX_QINQ
520 #define RTE_MBUF_F_TX_SEC_OFFLOAD PKT_TX_SEC_OFFLOAD
521 #define RTE_ETH_RX_OFFLOAD_HEADER_SPLIT DEV_RX_OFFLOAD_HEADER_SPLIT
522 #define RTE_ETH_RX_OFFLOAD_VLAN_FILTER DEV_RX_OFFLOAD_VLAN_FILTER
523 #define RTE_ETH_RX_OFFLOAD_VLAN_EXTEND DEV_RX_OFFLOAD_VLAN_EXTEND
524 #define RTE_ETH_RX_OFFLOAD_SCATTER DEV_RX_OFFLOAD_SCATTER
525 #define RTE_ETH_RX_OFFLOAD_TIMESTAMP DEV_RX_OFFLOAD_TIMESTAMP
526 #define RTE_ETH_RX_OFFLOAD_SECURITY DEV_RX_OFFLOAD_SECURITY
527 #define RTE_ETH_RX_OFFLOAD_CHECKSUM DEV_RX_OFFLOAD_CHECKSUM
528 #define RTE_ETH_RX_OFFLOAD_VLAN DEV_RX_OFFLOAD_VLAN
529 #define RTE_ETH_TX_OFFLOAD_MULTI_SEGS DEV_TX_OFFLOAD_MULTI_SEGS
530 #define RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE DEV_TX_OFFLOAD_MBUF_FAST_FREE
531 #define RTE_ETH_TX_OFFLOAD_SECURITY DEV_TX_OFFLOAD_SECURITY
533 #if RTE_VERSION >= RTE_VERSION_NUM(18,2,0,0)
534 #define RTE_MBUF_F_TX_UDP_SEG PKT_TX_UDP_SEG
536 #if RTE_VERSION >= RTE_VERSION_NUM(18,5,0,0)
537 #define RTE_MBUF_F_TX_TUNNEL_VXLAN_GPE PKT_TX_TUNNEL_VXLAN_GPE
538 #define RTE_MBUF_F_TX_TUNNEL_IP PKT_TX_TUNNEL_IP
539 #define RTE_MBUF_F_TX_TUNNEL_UDP PKT_TX_TUNNEL_UDP
540 #define RTE_MBUF_F_EXTERNAL EXT_ATTACHED_MBUF
541 #define RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO DEV_TX_OFFLOAD_UDP_TNL_TSO
542 #define RTE_ETH_TX_OFFLOAD_IP_TNL_TSO DEV_TX_OFFLOAD_IP_TNL_TSO
544 #if RTE_VERSION >= RTE_VERSION_NUM(18,11,0,0)
545 #define RTE_MBUF_F_RX_OUTER_L4_CKSUM_MASK PKT_RX_OUTER_L4_CKSUM_MASK
546 #define RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN
547 #define RTE_MBUF_F_RX_OUTER_L4_CKSUM_BAD PKT_RX_OUTER_L4_CKSUM_BAD
548 #define RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_GOOD
549 #define RTE_MBUF_F_RX_OUTER_L4_CKSUM_INVALID PKT_RX_OUTER_L4_CKSUM_INVALID
550 #define RTE_MBUF_F_TX_OUTER_UDP_CKSUM PKT_TX_OUTER_UDP_CKSUM
551 #define RTE_ETH_RX_OFFLOAD_SCTP_CKSUM DEV_RX_OFFLOAD_SCTP_CKSUM
552 #define RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM DEV_RX_OFFLOAD_OUTER_UDP_CKSUM
553 #define RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM DEV_TX_OFFLOAD_OUTER_UDP_CKSUM
555 #if RTE_VERSION >= RTE_VERSION_NUM(19,5,0,0)
556 #define RTE_ETH_TUNNEL_TYPE_VXLAN_GPE RTE_TUNNEL_TYPE_VXLAN_GPE
558 #if RTE_VERSION >= RTE_VERSION_NUM(19,8,0,0)
559 #define RTE_ETH_QINQ_STRIP_OFFLOAD ETH_QINQ_STRIP_OFFLOAD
560 #define RTE_ETH_QINQ_STRIP_MASK ETH_QINQ_STRIP_MASK
562 #if RTE_VERSION >= RTE_VERSION_NUM(19,11,0,0)
563 #define RTE_MBUF_DYNFLAG_RX_METADATA PKT_RX_DYNF_METADATA
564 #define RTE_MBUF_DYNFLAG_TX_METADATA PKT_TX_DYNF_METADATA
565 #define RTE_MBUF_F_FIRST_FREE PKT_FIRST_FREE
566 #define RTE_MBUF_F_LAST_FREE PKT_LAST_FREE
567 #define RTE_MBUF_F_TX_TUNNEL_GTP PKT_TX_TUNNEL_GTP
568 #define RTE_ETH_RSS_GTPU ETH_RSS_GTPU
569 #define RTE_ETH_RSS_L3_SRC_ONLY ETH_RSS_L3_SRC_ONLY
570 #define RTE_ETH_RSS_L3_DST_ONLY ETH_RSS_L3_DST_ONLY
571 #define RTE_ETH_RSS_L4_SRC_ONLY ETH_RSS_L4_SRC_ONLY
572 #define RTE_ETH_RSS_L4_DST_ONLY ETH_RSS_L4_DST_ONLY
573 #define RTE_ETH_RX_OFFLOAD_RSS_HASH DEV_RX_OFFLOAD_RSS_HASH
575 #if RTE_VERSION >= RTE_VERSION_NUM(20,5,0,0)
576 #define RTE_ETH_LINK_SPEED_200G ETH_LINK_SPEED_200G
577 #define RTE_ETH_SPEED_NUM_200G ETH_SPEED_NUM_200G
578 #define RTE_ETH_RSS_ETH ETH_RSS_ETH
579 #define RTE_ETH_RSS_S_VLAN ETH_RSS_S_VLAN
580 #define RTE_ETH_RSS_C_VLAN ETH_RSS_C_VLAN
581 #define RTE_ETH_RSS_ESP ETH_RSS_ESP
582 #define RTE_ETH_RSS_AH ETH_RSS_AH
583 #define RTE_ETH_RSS_L2TPV3 ETH_RSS_L2TPV3
584 #define RTE_ETH_RSS_PFCP ETH_RSS_PFCP
585 #define RTE_ETH_RSS_L2_SRC_ONLY ETH_RSS_L2_SRC_ONLY
586 #define RTE_ETH_RSS_L2_DST_ONLY ETH_RSS_L2_DST_ONLY
587 #define RTE_ETH_RSS_VLAN ETH_RSS_VLAN
589 #if RTE_VERSION >= RTE_VERSION_NUM(20,8,0,0)
590 #define RTE_ETH_RSS_PPPOE ETH_RSS_PPPOE
591 #define RTE_ETH_RSS_IPV6_PRE32 ETH_RSS_IPV6_PRE32
592 #define RTE_ETH_RSS_IPV6_PRE40 ETH_RSS_IPV6_PRE40
593 #define RTE_ETH_RSS_IPV6_PRE48 ETH_RSS_IPV6_PRE48
594 #define RTE_ETH_RSS_IPV6_PRE56 ETH_RSS_IPV6_PRE56
595 #define RTE_ETH_RSS_IPV6_PRE64 ETH_RSS_IPV6_PRE64
596 #define RTE_ETH_RSS_IPV6_PRE96 ETH_RSS_IPV6_PRE96
597 #define RTE_ETH_RSS_IPV6_PRE32_UDP ETH_RSS_IPV6_PRE32_UDP
598 #define RTE_ETH_RSS_IPV6_PRE40_UDP ETH_RSS_IPV6_PRE40_UDP
599 #define RTE_ETH_RSS_IPV6_PRE48_UDP ETH_RSS_IPV6_PRE48_UDP
600 #define RTE_ETH_RSS_IPV6_PRE56_UDP ETH_RSS_IPV6_PRE56_UDP
601 #define RTE_ETH_RSS_IPV6_PRE64_UDP ETH_RSS_IPV6_PRE64_UDP
602 #define RTE_ETH_RSS_IPV6_PRE96_UDP ETH_RSS_IPV6_PRE96_UDP
603 #define RTE_ETH_RSS_IPV6_PRE32_TCP ETH_RSS_IPV6_PRE32_TCP
604 #define RTE_ETH_RSS_IPV6_PRE40_TCP ETH_RSS_IPV6_PRE40_TCP
605 #define RTE_ETH_RSS_IPV6_PRE48_TCP ETH_RSS_IPV6_PRE48_TCP
606 #define RTE_ETH_RSS_IPV6_PRE56_TCP ETH_RSS_IPV6_PRE56_TCP
607 #define RTE_ETH_RSS_IPV6_PRE64_TCP ETH_RSS_IPV6_PRE64_TCP
608 #define RTE_ETH_RSS_IPV6_PRE96_TCP ETH_RSS_IPV6_PRE96_TCP
609 #define RTE_ETH_RSS_IPV6_PRE32_SCTP ETH_RSS_IPV6_PRE32_SCTP
610 #define RTE_ETH_RSS_IPV6_PRE40_SCTP ETH_RSS_IPV6_PRE40_SCTP
611 #define RTE_ETH_RSS_IPV6_PRE48_SCTP ETH_RSS_IPV6_PRE48_SCTP
612 #define RTE_ETH_RSS_IPV6_PRE56_SCTP ETH_RSS_IPV6_PRE56_SCTP
613 #define RTE_ETH_RSS_IPV6_PRE64_SCTP ETH_RSS_IPV6_PRE64_SCTP
614 #define RTE_ETH_RSS_IPV6_PRE96_SCTP ETH_RSS_IPV6_PRE96_SCTP
615 #define RTE_ETH_TX_OFFLOAD_SEND_ON_TIMESTAMP DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP
617 #if RTE_VERSION >= RTE_VERSION_NUM(20,11,0,0)
618 #define RTE_ETH_SPEED_NUM_UNKNOWN ETH_SPEED_NUM_UNKNOWN
619 #define RTE_ETH_RSS_ECPRI ETH_RSS_ECPRI
620 #define RTE_ETH_RSS_LEVEL_PMD_DEFAULT ETH_RSS_LEVEL_PMD_DEFAULT
621 #define RTE_ETH_RSS_LEVEL_OUTERMOST ETH_RSS_LEVEL_OUTERMOST
622 #define RTE_ETH_RSS_LEVEL_INNERMOST ETH_RSS_LEVEL_INNERMOST
623 #define RTE_ETH_RSS_LEVEL_MASK ETH_RSS_LEVEL_MASK
624 #define RTE_ETH_RSS_LEVEL ETH_RSS_LEVEL
626 #if RTE_VERSION >= RTE_VERSION_NUM(21,2,0,0)
627 #define RTE_ETH_RSS_MPLS ETH_RSS_MPLS
628 #define RTE_ETH_TUNNEL_TYPE_ECPRI RTE_TUNNEL_TYPE_ECPRI
631 #ifndef DEV_RX_OFFLOAD_JUMBO_FRAME
632 #define RTE_ETH_RX_OFFLOAD_JUMBO_FRAME 0x00000800
634 #define RTE_ETH_RX_OFFLOAD_JUMBO_FRAME DEV_RX_OFFLOAD_JUMBO_FRAME
637 #ifndef DEV_RX_OFFLOAD_KEEP_CRC
638 #ifndef DEV_RX_OFFLOAD_CRC_STRIP
639 #define RTE_ETH_RX_OFFLOAD_CRC_STRIP 0x00001000
641 #define RTE_ETH_RX_OFFLOAD_CRC_STRIP DEV_RX_OFFLOAD_CRC_STRIP
643 #define RTE_ETH_RX_OFFLOAD_KEEP_CRC _force_error_if_defined_
644 #undef RTE_ETH_RX_OFFLOAD_KEEP_CRC
647 #ifndef DEV_RX_OFFLOAD_CRC_STRIP
648 #define RTE_ETH_RX_OFFLOAD_CRC_STRIP _force_error_if_defined_
649 #undef RTE_ETH_RX_OFFLOAD_CRC_STRIP
651 #define RTE_ETH_RX_OFFLOAD_CRC_STRIP DEV_RX_OFFLOAD_CRC_STRIP
653 #define RTE_ETH_RX_OFFLOAD_KEEP_CRC DEV_RX_OFFLOAD_KEEP_CRC
657 #define RTE_ETH_RX_OFFLOAD_JUMBO_FRAME RTE_BIT64(11)
658 #define RTE_ETH_RX_OFFLOAD_CRC_STRIP _force_error_if_defined_
659 #undef RTE_ETH_RX_OFFLOAD_CRC_STRIP
662 #endif // _PROX_COMPAT_H