Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright (C), 2025, Wuxi Stars Micro System Technologies Co., Ltd.
3 : : */
4 : :
5 : : #include <rte_common.h>
6 : : #include <rte_net.h>
7 : : #include <rte_vect.h>
8 : : #include <rte_malloc.h>
9 : : #include <rte_memzone.h>
10 : : #include <ethdev_driver.h>
11 : : #include <rte_geneve.h>
12 : : #include <rte_gtp.h>
13 : : #include <rte_vxlan.h>
14 : : #include <unistd.h>
15 : : #include "sxe2_txrx.h"
16 : : #include "sxe2_txrx_common.h"
17 : : #include "sxe2_txrx_vec.h"
18 : : #include "sxe2_txrx_poll.h"
19 : : #include "sxe2_ethdev.h"
20 : : #include "sxe2_common_log.h"
21 : : #include "sxe2_osal.h"
22 : : #include "sxe2_cmd_chnl.h"
23 : : #if defined(RTE_ARCH_ARM64)
24 : : #include <rte_cpuflags.h>
25 : : #endif
26 : :
27 : : int32_t __rte_cold
28 : 0 : sxe2_tx_simple_batch_support_check(struct rte_eth_dev *dev,
29 : : uint32_t *batch_flags)
30 : : {
31 : 0 : struct sxe2_tx_queue *txq;
32 : 0 : int32_t ret = 0;
33 : 0 : uint16_t i;
34 : :
35 [ # # ]: 0 : for (i = 0; i < dev->data->nb_tx_queues; ++i) {
36 : 0 : txq = (struct sxe2_tx_queue *)dev->data->tx_queues[i];
37 [ # # ]: 0 : if (txq == NULL) {
38 : 0 : ret = -EINVAL;
39 : 0 : goto l_end;
40 : : }
41 [ # # ]: 0 : if (txq->offloads != (txq->offloads & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) ||
42 [ # # ]: 0 : txq->rs_thresh < SXE2_TX_PKTS_BURST_BATCH_NUM) {
43 : 0 : ret = -ENOTSUP;
44 : 0 : goto l_end;
45 : : }
46 : : }
47 : 0 : *batch_flags = SXE2_TX_MODE_SIMPLE_BATCH;
48 : 0 : l_end:
49 : 0 : return ret;
50 : : }
51 : :
52 : 0 : static int32_t sxe2_tx_descriptor_status(void *tx_queue, uint16_t offset)
53 : : {
54 : 0 : struct sxe2_tx_queue *txq = (struct sxe2_tx_queue *)tx_queue;
55 : 0 : int32_t ret;
56 : 0 : uint16_t desc_idx;
57 : :
58 [ # # ]: 0 : if (unlikely(offset >= txq->ring_depth)) {
59 : 0 : ret = -EINVAL;
60 : 0 : goto l_end;
61 : : }
62 : 0 : desc_idx = txq->next_use + offset;
63 : 0 : desc_idx = SXE2_DIV_ROUND_UP(desc_idx, txq->rs_thresh) * (txq->rs_thresh);
64 [ # # ]: 0 : if (desc_idx >= txq->ring_depth) {
65 : 0 : desc_idx -= txq->ring_depth;
66 [ # # ]: 0 : if (desc_idx >= txq->ring_depth)
67 : 0 : desc_idx -= txq->ring_depth;
68 : : }
69 [ # # ]: 0 : if (desc_idx == 0)
70 : 0 : desc_idx = txq->rs_thresh - 1;
71 : : else
72 : 0 : desc_idx -= 1;
73 : 0 : if (rte_cpu_to_le_64(SXE2_TX_DESC_DTYPE_DESC_DONE) ==
74 [ # # ]: 0 : (txq->desc_ring[desc_idx].wb.dd &
75 : : rte_cpu_to_le_64(SXE2_TX_DESC_DTYPE_DESC_MASK)))
76 : : ret = RTE_ETH_TX_DESC_DONE;
77 : : else
78 : 0 : ret = RTE_ETH_TX_DESC_FULL;
79 : 0 : l_end:
80 : 0 : return ret;
81 : : }
82 : :
83 : : static inline int32_t sxe2_tx_mbuf_empty_check(struct rte_mbuf *mbuf)
84 : : {
85 : : struct rte_mbuf *m_seg = mbuf;
86 [ # # ]: 0 : while (m_seg != NULL) {
87 [ # # ]: 0 : if (m_seg->data_len == 0)
88 : : return -EINVAL;
89 : 0 : m_seg = m_seg->next;
90 : : }
91 : :
92 : : return 0;
93 : : }
94 : :
95 : : #ifdef RTE_ETHDEV_DEBUG_TX
96 : : static int32_t
97 : : sxe2_txrx_check_mbuf(struct rte_mbuf *m)
98 : : {
99 : : struct rte_ether_hdr *eth_hdr;
100 : : struct rte_ipv4_hdr *ipv4_hdr;
101 : : struct rte_ipv6_hdr *ipv6_hdr;
102 : : struct rte_vlan_hdr *vlan_hdr;
103 : : void *l3_hdr;
104 : : uint64_t ol_flags = m->ol_flags;
105 : : uint64_t tunnel_type = ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK;
106 : : uint16_t l2_len;
107 : : uint16_t l3_len;
108 : : uint8_t l4_proto;
109 : : uint16_t ethertype;
110 : :
111 : : eth_hdr = rte_pktmbuf_mtod(m, struct rte_ether_hdr *);
112 : :
113 : : /* Parse Ethernet + VLAN headers */
114 : : l2_len = sizeof(struct rte_ether_hdr);
115 : : ethertype = eth_hdr->ether_type;
116 : : while (ethertype == rte_cpu_to_be_16(RTE_ETHER_TYPE_VLAN) ||
117 : : ethertype == rte_cpu_to_be_16(RTE_ETHER_TYPE_QINQ)) {
118 : : vlan_hdr = (struct rte_vlan_hdr *)((char *)eth_hdr + l2_len);
119 : : l2_len += sizeof(struct rte_vlan_hdr);
120 : : ethertype = vlan_hdr->eth_proto;
121 : : }
122 : :
123 : : /* Parse L3 to get L3 length and L4 protocol */
124 : : if (ethertype == rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4)) {
125 : : ipv4_hdr = (struct rte_ipv4_hdr *)((char *)eth_hdr + l2_len);
126 : : l3_len = rte_ipv4_hdr_len(ipv4_hdr);
127 : : l4_proto = ipv4_hdr->next_proto_id;
128 : : } else if (ethertype == rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV6)) {
129 : : ipv6_hdr = (struct rte_ipv6_hdr *)((char *)eth_hdr + l2_len);
130 : : l3_len = sizeof(struct rte_ipv6_hdr);
131 : : l4_proto = ipv6_hdr->proto;
132 : : } else {
133 : : return 0;
134 : : }
135 : :
136 : : l3_hdr = (char *)eth_hdr + l2_len;
137 : :
138 : : /* Detect tunnel type and validate flag consistency */
139 : : if (l4_proto == IPPROTO_UDP) {
140 : : struct rte_udp_hdr *udp_hdr;
141 : : uint16_t dst_port;
142 : :
143 : : udp_hdr = (struct rte_udp_hdr *)((char *)l3_hdr + l3_len);
144 : : dst_port = udp_hdr->dst_port;
145 : :
146 : : /* GTP */
147 : : if (dst_port == rte_cpu_to_be_16(RTE_GTPC_UDP_PORT) ||
148 : : dst_port == rte_cpu_to_be_16(RTE_GTPU_UDP_PORT)) {
149 : : if (!tunnel_type) {
150 : : PMD_LOG_ERR(TX, "GTP tunnel packet missing "
151 : : "RTE_MBUF_F_TX_TUNNEL_GTP flag");
152 : : return -1;
153 : : }
154 : : if (tunnel_type != RTE_MBUF_F_TX_TUNNEL_GTP) {
155 : : PMD_LOG_ERR(TX, "GTP tunnel packet has wrong "
156 : : "tx offload flag %s, expected GTP",
157 : : rte_get_tx_ol_flag_name(tunnel_type));
158 : : return -1;
159 : : }
160 : : return 0;
161 : : }
162 : : /* VXLAN-GPE */
163 : : if (dst_port == rte_cpu_to_be_16(RTE_VXLAN_GPE_DEFAULT_PORT)) {
164 : : if (!tunnel_type) {
165 : : PMD_LOG_ERR(TX, "VXLAN-GPE tunnel packet missing "
166 : : "RTE_MBUF_F_TX_TUNNEL_VXLAN_GPE flag");
167 : : return -1;
168 : : }
169 : : if (tunnel_type != RTE_MBUF_F_TX_TUNNEL_VXLAN_GPE) {
170 : : PMD_LOG_ERR(TX, "VXLAN-GPE tunnel packet has wrong "
171 : : "tx offload flag %s, expected VXLAN-GPE",
172 : : rte_get_tx_ol_flag_name(tunnel_type));
173 : : return -1;
174 : : }
175 : : return 0;
176 : : }
177 : : /* VXLAN */
178 : : if (dst_port == rte_cpu_to_be_16(RTE_VXLAN_DEFAULT_PORT)) {
179 : : if (!tunnel_type) {
180 : : PMD_LOG_ERR(TX, "VXLAN tunnel packet missing "
181 : : "RTE_MBUF_F_TX_TUNNEL_VXLAN flag");
182 : : return -1;
183 : : }
184 : : if (tunnel_type != RTE_MBUF_F_TX_TUNNEL_VXLAN) {
185 : : PMD_LOG_ERR(TX, "VXLAN tunnel packet has wrong "
186 : : "tx offload flag %s, expected VXLAN",
187 : : rte_get_tx_ol_flag_name(tunnel_type));
188 : : return -1;
189 : : }
190 : : return 0;
191 : : }
192 : : /* Geneve */
193 : : if (dst_port == rte_cpu_to_be_16(RTE_GENEVE_DEFAULT_PORT)) {
194 : : if (!tunnel_type) {
195 : : PMD_LOG_ERR(TX, "Geneve tunnel packet missing "
196 : : "RTE_MBUF_F_TX_TUNNEL_GENEVE flag");
197 : : return -1;
198 : : }
199 : : if (tunnel_type != RTE_MBUF_F_TX_TUNNEL_GENEVE) {
200 : : PMD_LOG_ERR(TX, "Geneve tunnel packet has wrong "
201 : : "tx offload flag %s, expected Geneve",
202 : : rte_get_tx_ol_flag_name(tunnel_type));
203 : : return -1;
204 : : }
205 : : return 0;
206 : : }
207 : : } else if (l4_proto == IPPROTO_GRE) {
208 : : /* GRE */
209 : : if (!tunnel_type) {
210 : : PMD_LOG_ERR(TX, "GRE tunnel packet missing "
211 : : "RTE_MBUF_F_TX_TUNNEL_GRE flag");
212 : : return -1;
213 : : }
214 : : if (tunnel_type != RTE_MBUF_F_TX_TUNNEL_GRE) {
215 : : PMD_LOG_ERR(TX, "GRE tunnel packet has wrong "
216 : : "tx offload flag %s, expected GRE",
217 : : rte_get_tx_ol_flag_name(tunnel_type));
218 : : return -1;
219 : : }
220 : : return 0;
221 : : } else if (l4_proto == IPPROTO_IPIP) {
222 : : /* IP-in-IP */
223 : : if (!tunnel_type) {
224 : : PMD_LOG_ERR(TX, "IPIP tunnel packet missing "
225 : : "RTE_MBUF_F_TX_TUNNEL_IPIP flag");
226 : : return -1;
227 : : }
228 : : if (tunnel_type != RTE_MBUF_F_TX_TUNNEL_IPIP) {
229 : : PMD_LOG_ERR(TX, "IPIP tunnel packet has wrong "
230 : : "tx offload flag %s, expected IPIP",
231 : : rte_get_tx_ol_flag_name(tunnel_type));
232 : : return -1;
233 : : }
234 : : return 0;
235 : : }
236 : :
237 : : return 0;
238 : : }
239 : : #endif
240 : :
241 : 0 : uint16_t sxe2_tx_pkts_prepare(void *tx_queue,
242 : : struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
243 : : {
244 : 0 : struct sxe2_tx_queue *txq = tx_queue;
245 : 0 : struct rte_mbuf *mbuf;
246 : 0 : uint64_t ol_flags = 0;
247 : 0 : int32_t ret = 0;
248 : 0 : int32_t i = 0;
249 : :
250 [ # # ]: 0 : for (i = 0; i < nb_pkts; i++) {
251 : 0 : mbuf = tx_pkts[i];
252 [ # # ]: 0 : if (!mbuf)
253 : 0 : continue;
254 : 0 : ol_flags = mbuf->ol_flags;
255 [ # # ]: 0 : if (!(ol_flags & (RTE_MBUF_F_TX_TCP_SEG | RTE_MBUF_F_TX_UDP_SEG))) {
256 [ # # ]: 0 : if (mbuf->nb_segs > SXE2_TX_MTU_SEG_MAX ||
257 [ # # ]: 0 : mbuf->pkt_len > SXE2_FRAME_SIZE_MAX) {
258 : 0 : rte_errno = -EINVAL;
259 : 0 : goto l_end;
260 : : }
261 [ # # ]: 0 : } else if ((mbuf->tso_segsz < SXE2_MIN_TSO_MSS) ||
262 : 0 : (mbuf->tso_segsz > SXE2_MAX_TSO_MSS) ||
263 [ # # ]: 0 : (mbuf->nb_segs > txq->ring_depth) ||
264 [ # # ]: 0 : (mbuf->pkt_len > SXE2_TX_TSO_PKTLEN_MAX)) {
265 : 0 : rte_errno = -EINVAL;
266 : 0 : goto l_end;
267 : : }
268 [ # # ]: 0 : if (mbuf->pkt_len < SXE2_TX_MIN_PKT_LEN) {
269 : 0 : rte_errno = -EINVAL;
270 : 0 : goto l_end;
271 : : }
272 : : #ifdef RTE_ETHDEV_DEBUG_TX
273 : : ret = rte_validate_tx_offload(mbuf);
274 : : if (ret != 0) {
275 : : rte_errno = -ret;
276 : : goto l_end;
277 : : }
278 : : #endif
279 : 0 : ret = rte_net_intel_cksum_prepare(mbuf);
280 [ # # ]: 0 : if (ret != 0) {
281 : 0 : rte_errno = -ret;
282 : 0 : goto l_end;
283 : : }
284 : 0 : ret = sxe2_tx_mbuf_empty_check(mbuf);
285 [ # # ]: 0 : if (ret != 0) {
286 : 0 : rte_errno = -ret;
287 : 0 : goto l_end;
288 : : }
289 : : #ifdef RTE_ETHDEV_DEBUG_TX
290 : : ret = sxe2_txrx_check_mbuf(mbuf);
291 : : if (ret != 0) {
292 : : rte_errno = -ret;
293 : : goto l_end;
294 : : }
295 : : #endif
296 : : }
297 : 0 : l_end:
298 : 0 : return i;
299 : : }
300 : :
301 : 0 : void sxe2_tx_mode_func_set(struct rte_eth_dev *dev)
302 : : {
303 : 0 : struct sxe2_adapter *adapter = SXE2_DEV_PRIVATE_TO_ADAPTER(dev);
304 : 0 : uint32_t tx_mode_flags;
305 : 0 : int32_t ret;
306 : 0 : uint32_t vec_flags = 0;
307 : 0 : uint32_t batch_flags = 0;
308 : :
309 : 0 : PMD_INIT_FUNC_TRACE();
310 : :
311 [ # # ]: 0 : if (adapter->is_dev_repr) {
312 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
313 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts;
314 : 0 : tx_mode_flags = 0;
315 : 0 : return;
316 : : }
317 [ # # ]: 0 : if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
318 : 0 : tx_mode_flags = 0;
319 : 0 : ret = sxe2_tx_vec_support_check(dev, &vec_flags);
320 [ # # # # ]: 0 : if (ret == 0 &&
321 : 0 : rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128) {
322 : : #ifdef RTE_ARCH_X86
323 [ # # # # ]: 0 : if ((rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_512) &&
324 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1) &&
325 : 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512BW) == 1)) {
326 : : #ifdef CC_AVX512_SUPPORT
327 : 0 : tx_mode_flags |= (vec_flags | SXE2_TX_MODE_VEC_AVX512);
328 : : #else
329 : : PMD_LOG_INFO(TX, "AVX512 is not supported in build env.");
330 : : #endif
331 : : }
332 [ # # # # ]: 0 : if (((tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK) == 0) &&
333 [ # # ]: 0 : ((rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2) == 1) ||
334 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1)) &&
335 : 0 : (rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_256))
336 : 0 : tx_mode_flags |= (vec_flags | SXE2_TX_MODE_VEC_AVX2);
337 : :
338 [ # # ]: 0 : if ((0 == (tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK)))
339 : 0 : tx_mode_flags |= (vec_flags | SXE2_TX_MODE_VEC_SSE);
340 : : #elif defined(RTE_ARCH_ARM64)
341 : : if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_NEON) == 1)
342 : : tx_mode_flags |= (vec_flags | SXE2_TX_MODE_VEC_NEON);
343 : : #endif
344 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK) {
345 : 0 : ret = sxe2_tx_queues_vec_prepare(dev);
346 [ # # ]: 0 : if (ret != 0)
347 : 0 : tx_mode_flags &= ~SXE2_TX_MODE_VEC_SET_MASK;
348 : : }
349 : : }
350 : 0 : ret = sxe2_tx_simple_batch_support_check(dev, &batch_flags);
351 [ # # # # ]: 0 : if (ret == 0 && batch_flags == SXE2_TX_MODE_SIMPLE_BATCH)
352 : 0 : tx_mode_flags |= SXE2_TX_MODE_SIMPLE_BATCH;
353 : :
354 : 0 : adapter->q_ctxt.tx_mode_flags = tx_mode_flags;
355 : : } else {
356 : 0 : tx_mode_flags = adapter->q_ctxt.tx_mode_flags;
357 : : }
358 : :
359 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK) {
360 : 0 : dev->tx_pkt_prepare = rte_eth_tx_pkt_prepare_dummy;
361 : : #ifdef RTE_ARCH_X86
362 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_AVX512) {
363 : : #ifdef CC_AVX512_SUPPORT
364 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_OFFLOAD) {
365 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
366 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx512;
367 : : } else {
368 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx512_simple;
369 : : }
370 : : #endif
371 [ # # ]: 0 : } else if (tx_mode_flags & SXE2_TX_MODE_VEC_AVX2) {
372 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_OFFLOAD) {
373 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
374 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx2;
375 : : } else {
376 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx2_simple;
377 : : }
378 : : } else {
379 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_OFFLOAD) {
380 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
381 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_sse;
382 : : } else {
383 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_sse_simple;
384 : : }
385 : : }
386 : : #elif defined(RTE_ARCH_ARM64)
387 : : if (tx_mode_flags & SXE2_TX_MODE_VEC_NEON) {
388 : : if (tx_mode_flags & SXE2_TX_MODE_VEC_OFFLOAD) {
389 : : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
390 : : dev->tx_pkt_burst = sxe2_tx_pkts_vec_neon;
391 : : } else {
392 : : dev->tx_pkt_burst = sxe2_tx_pkts_vec_neon_simple;
393 : : }
394 : : } else {
395 : : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
396 : : dev->tx_pkt_burst = sxe2_tx_pkts;
397 : : }
398 : : #endif
399 : : } else {
400 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_SIMPLE_BATCH) {
401 : 0 : dev->tx_pkt_prepare = rte_eth_tx_pkt_prepare_dummy;
402 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_simple;
403 : : } else {
404 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
405 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts;
406 : : }
407 : : }
408 : 0 : PMD_LOG_DEBUG(TX, "Tx mode flags:0x%08x port_id:%u.",
409 : : tx_mode_flags, dev->data->port_id);
410 : : }
411 : :
412 : : static const struct {
413 : : eth_tx_burst_t tx_burst;
414 : : const char *info;
415 : : } sxe2_tx_burst_infos[] = {
416 : : { sxe2_tx_pkts, "Scalar" },
417 : : #ifdef RTE_ARCH_X86
418 : : #ifdef CC_AVX512_SUPPORT
419 : : { sxe2_tx_pkts_vec_avx512,
420 : : "Vector AVX512" },
421 : : { sxe2_tx_pkts_vec_avx512_simple,
422 : : "Vector AVX512 Simple" },
423 : : #endif
424 : : { sxe2_tx_pkts_vec_avx2,
425 : : "Vector AVX2" },
426 : : { sxe2_tx_pkts_vec_avx2_simple,
427 : : "Vector AVX2 Simple" },
428 : : { sxe2_tx_pkts_vec_sse,
429 : : "Vector SSE" },
430 : : { sxe2_tx_pkts_vec_sse_simple,
431 : : "Vector SSE Simple" },
432 : : #endif
433 : : #ifdef RTE_ARCH_ARM64
434 : : { sxe2_tx_pkts_vec_neon,
435 : : "Vector NEON" },
436 : : { sxe2_tx_pkts_vec_neon_simple,
437 : : "Vector NEON Simple" },
438 : : #endif
439 : : };
440 : :
441 : 0 : int32_t sxe2_tx_burst_mode_get(struct rte_eth_dev *dev,
442 : : __rte_unused uint16_t queue_id, struct rte_eth_burst_mode *mode)
443 : : {
444 : 0 : eth_tx_burst_t pkt_burst = dev->tx_pkt_burst;
445 : 0 : int32_t ret = -EINVAL;
446 : 0 : uint32_t i;
447 : 0 : uint32_t size;
448 : :
449 : 0 : size = RTE_DIM(sxe2_tx_burst_infos);
450 [ # # ]: 0 : for (i = 0; i < size; ++i) {
451 [ # # ]: 0 : if (pkt_burst == sxe2_tx_burst_infos[i].tx_burst) {
452 : 0 : snprintf(mode->info, sizeof(mode->info), "%s",
453 : 0 : sxe2_tx_burst_infos[i].info);
454 : 0 : ret = 0;
455 : 0 : break;
456 : : }
457 : : }
458 : 0 : return ret;
459 : : }
460 : :
461 : 0 : static int32_t sxe2_rx_descriptor_status(void *rx_queue, uint16_t offset)
462 : : {
463 : 0 : struct sxe2_rx_queue *rxq = (struct sxe2_rx_queue *)rx_queue;
464 : 0 : volatile union sxe2_rx_desc *desc;
465 : 0 : int32_t ret;
466 : :
467 [ # # ]: 0 : if (unlikely(offset >= rxq->ring_depth)) {
468 : 0 : ret = -EINVAL;
469 : 0 : goto l_end;
470 : : }
471 [ # # ]: 0 : if (offset >= rxq->ring_depth - rxq->hold_num) {
472 : 0 : ret = RTE_ETH_RX_DESC_UNAVAIL;
473 : 0 : goto l_end;
474 : : }
475 [ # # ]: 0 : if (rxq->processing_idx + offset >= rxq->ring_depth)
476 : 0 : desc = &rxq->desc_ring[rxq->processing_idx + offset - rxq->ring_depth];
477 : : else
478 : 0 : desc = &rxq->desc_ring[rxq->processing_idx + offset];
479 [ # # ]: 0 : if (rte_le_to_cpu_64(desc->wb.status_err_ptype_len) & SXE2_RX_DESC_STATUS_DD_MASK)
480 : : ret = RTE_ETH_RX_DESC_DONE;
481 : : else
482 : 0 : ret = RTE_ETH_RX_DESC_AVAIL;
483 : 0 : l_end:
484 : 0 : PMD_LOG_DEBUG(RX, "Rx queue desc[%u] status:%d queue_id:%u port_id:%u",
485 : : offset, ret, rxq->queue_id, rxq->port_id);
486 : 0 : return ret;
487 : : }
488 : :
489 : 0 : static int32_t sxe2_rx_queue_count(void *rx_queue)
490 : : {
491 : 0 : struct sxe2_rx_queue *rxq = (struct sxe2_rx_queue *)rx_queue;
492 : 0 : volatile union sxe2_rx_desc *desc;
493 : 0 : uint16_t done_num = 0;
494 : :
495 : 0 : desc = &rxq->desc_ring[rxq->processing_idx];
496 [ # # ]: 0 : while ((done_num < rxq->ring_depth) &&
497 [ # # ]: 0 : (rte_le_to_cpu_64(desc->wb.status_err_ptype_len) &
498 : : SXE2_RX_DESC_STATUS_DD_MASK)) {
499 : 0 : done_num += SXE2_RX_QUEUE_CHECK_INTERVAL_NUM;
500 [ # # ]: 0 : if (rxq->processing_idx + done_num >= rxq->ring_depth)
501 : 0 : desc = &rxq->desc_ring[rxq->processing_idx + done_num - rxq->ring_depth];
502 : : else
503 : 0 : desc += SXE2_RX_QUEUE_CHECK_INTERVAL_NUM;
504 : : }
505 : 0 : PMD_LOG_DEBUG(RX, "Rx queue done desc count:%u queue_id:%u port_id:%u",
506 : : done_num, rxq->queue_id, rxq->port_id);
507 : 0 : return done_num;
508 : : }
509 : :
510 : 0 : void sxe2_rx_mode_func_set(struct rte_eth_dev *dev)
511 : : {
512 : 0 : struct sxe2_adapter *adapter = SXE2_DEV_PRIVATE_TO_ADAPTER(dev);
513 : 0 : uint32_t rx_mode_flags = 0;
514 : 0 : int32_t ret;
515 : 0 : uint32_t vec_flags = 0;
516 : 0 : PMD_INIT_FUNC_TRACE();
517 : :
518 [ # # ]: 0 : if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
519 : 0 : ret = sxe2_rx_vec_support_check(dev, &vec_flags);
520 [ # # # # ]: 0 : if (ret == 0 &&
521 : 0 : rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128) {
522 : : #ifdef RTE_ARCH_X86
523 [ # # # # ]: 0 : if ((rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_512) &&
524 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1) &&
525 : 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512BW) == 1)) {
526 : : #ifdef CC_AVX512_SUPPORT
527 : 0 : rx_mode_flags |= (vec_flags | SXE2_RX_MODE_VEC_AVX512);
528 : : #else
529 : : PMD_LOG_INFO(RX, "AVX512 support detected but not enabled");
530 : : #endif
531 : : }
532 [ # # # # ]: 0 : if (((rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) == 0) &&
533 [ # # ]: 0 : ((rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2) == 1) ||
534 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1)) &&
535 : 0 : (rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_256))
536 : 0 : rx_mode_flags |= (vec_flags | SXE2_RX_MODE_VEC_AVX2);
537 : :
538 [ # # # # ]: 0 : if (((rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) == 0) &&
539 : 0 : rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128)
540 : 0 : rx_mode_flags |= (vec_flags | SXE2_RX_MODE_VEC_SSE);
541 : :
542 : : #elif defined(RTE_ARCH_ARM64)
543 : : if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_NEON) == 1) {
544 : : rx_mode_flags |= (vec_flags | SXE2_RX_MODE_VEC_NEON);
545 : : }
546 : : #endif
547 [ # # ]: 0 : if ((rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) != 0) {
548 : 0 : ret = sxe2_rx_queues_vec_prepare(dev);
549 [ # # ]: 0 : if (ret != 0)
550 : 0 : rx_mode_flags &= ~SXE2_RX_MODE_VEC_SET_MASK;
551 : : }
552 : : }
553 : 0 : adapter->q_ctxt.rx_mode_flags = rx_mode_flags;
554 : : } else {
555 : 0 : rx_mode_flags = adapter->q_ctxt.rx_mode_flags;
556 : : }
557 : :
558 : : #ifdef RTE_ARCH_X86
559 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) {
560 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_AVX512) {
561 : : #ifdef CC_AVX512_SUPPORT
562 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_OFFLOAD)
563 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx512_offload;
564 : : else
565 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx512;
566 : : #endif
567 [ # # ]: 0 : } else if (rx_mode_flags & SXE2_RX_MODE_VEC_AVX2) {
568 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_OFFLOAD)
569 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx2_offload;
570 : : else
571 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx2;
572 : : } else {
573 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_sse_offload;
574 : : }
575 : 0 : return;
576 : : }
577 : : #elif defined(RTE_ARCH_ARM64)
578 : : if (rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) {
579 : : if (rx_mode_flags & SXE2_RX_MODE_VEC_OFFLOAD)
580 : : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_neon_offload;
581 : : else
582 : : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_neon;
583 : : return;
584 : : }
585 : : #endif
586 [ # # ]: 0 : if (sxe2_rx_offload_en_check(dev, RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT))
587 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_split;
588 : : else
589 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered;
590 : :
591 : 0 : PMD_LOG_DEBUG(RX, "Rx mode flags:0x%08x port_id:%u.",
592 : : rx_mode_flags, dev->data->port_id);
593 : : }
594 : :
595 : : static const struct {
596 : : eth_rx_burst_t rx_burst;
597 : : const char *info;
598 : : } sxe2_rx_burst_infos[] = {
599 : : { sxe2_rx_pkts_scattered,
600 : : "Scalar Scattered" },
601 : : { sxe2_rx_pkts_scattered_split,
602 : : "Scalar Scattered split" },
603 : : #ifdef RTE_ARCH_X86
604 : : #ifdef CC_AVX512_SUPPORT
605 : : { sxe2_rx_pkts_scattered_vec_avx512,
606 : : "Vector AVX512 Scattered" },
607 : : { sxe2_rx_pkts_scattered_vec_avx512_offload,
608 : : "Offload Vector AVX512 Scattered" },
609 : : #endif
610 : : { sxe2_rx_pkts_scattered_vec_avx2,
611 : : "Vector AVX2 Scattered" },
612 : : { sxe2_rx_pkts_scattered_vec_avx2_offload,
613 : : "Offload Vector AVX2 Scattered" },
614 : : { sxe2_rx_pkts_scattered_vec_sse_offload,
615 : : "Vector SSE Scattered" },
616 : : #endif
617 : : #ifdef RTE_ARCH_ARM64
618 : : { sxe2_rx_pkts_scattered_vec_neon,
619 : : "Vector NEON Scattered" },
620 : : { sxe2_rx_pkts_scattered_vec_neon_offload,
621 : : "Offload Vector NEON Scattered" },
622 : : #endif
623 : : };
624 : :
625 : 0 : int32_t sxe2_rx_burst_mode_get(struct rte_eth_dev *dev,
626 : : __rte_unused uint16_t queue_id,
627 : : struct rte_eth_burst_mode *mode)
628 : : {
629 : 0 : eth_rx_burst_t pkt_burst = dev->rx_pkt_burst;
630 : 0 : int32_t ret = -EINVAL;
631 : 0 : uint32_t i, size;
632 : :
633 : 0 : size = RTE_DIM(sxe2_rx_burst_infos);
634 [ # # ]: 0 : for (i = 0; i < size; ++i) {
635 [ # # ]: 0 : if (pkt_burst == sxe2_rx_burst_infos[i].rx_burst) {
636 : 0 : snprintf(mode->info, sizeof(mode->info), "%s",
637 : 0 : sxe2_rx_burst_infos[i].info);
638 : 0 : ret = 0;
639 : 0 : break;
640 : : }
641 : : }
642 : 0 : return ret;
643 : : }
644 : :
645 : 0 : void sxe2_set_common_function(struct rte_eth_dev *dev)
646 : : {
647 : 0 : PMD_INIT_FUNC_TRACE();
648 : 0 : dev->rx_queue_count = sxe2_rx_queue_count;
649 : 0 : dev->rx_descriptor_status = sxe2_rx_descriptor_status;
650 : :
651 : 0 : dev->tx_descriptor_status = sxe2_tx_descriptor_status;
652 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
653 : 0 : }
654 : :
655 : : const alignas(RTE_CACHE_LINE_SIZE) uint32_t sxe2_ptype_tbl[SXE2_MAX_PTYPE_NUM] = {
656 : : /* [0] reserved */
657 : : [1] = RTE_PTYPE_L2_ETHER,
658 : : [2] = RTE_PTYPE_L2_ETHER_TIMESYNC,
659 : : /* [3] - [5] reserved */
660 : : [6] = RTE_PTYPE_L2_ETHER_LLDP,
661 : : /* ECP */
662 : : [7] = RTE_PTYPE_UNKNOWN,
663 : : /* [8] - [9] reserved */
664 : : /* EAPol */
665 : : [10] = RTE_PTYPE_UNKNOWN,
666 : : [11] = RTE_PTYPE_L2_ETHER_ARP,
667 : : /* [12] - [21] reserved */
668 : :
669 : : /* Non tunneled IPv4 */
670 : : [22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
671 : : RTE_PTYPE_L4_FRAG,
672 : : [23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
673 : : RTE_PTYPE_L4_NONFRAG,
674 : : [24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
675 : : RTE_PTYPE_L4_UDP,
676 : : /* [25] reserved */
677 : : [26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
678 : : RTE_PTYPE_L4_TCP,
679 : : [27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
680 : : RTE_PTYPE_L4_SCTP,
681 : : [28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
682 : : RTE_PTYPE_L4_ICMP,
683 : :
684 : : /* IPv4 --> IPv4 */
685 : : [29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
686 : : RTE_PTYPE_TUNNEL_IP |
687 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
688 : : RTE_PTYPE_INNER_L4_FRAG,
689 : : [30] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
690 : : RTE_PTYPE_TUNNEL_IP |
691 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
692 : : RTE_PTYPE_INNER_L4_NONFRAG,
693 : : [31] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
694 : : RTE_PTYPE_TUNNEL_IP |
695 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
696 : : RTE_PTYPE_INNER_L4_UDP,
697 : : /* [32] reserved */
698 : : [33] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
699 : : RTE_PTYPE_TUNNEL_IP |
700 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
701 : : RTE_PTYPE_INNER_L4_TCP,
702 : : [34] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
703 : : RTE_PTYPE_TUNNEL_IP |
704 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
705 : : RTE_PTYPE_INNER_L4_SCTP,
706 : : [35] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
707 : : RTE_PTYPE_TUNNEL_IP |
708 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
709 : : RTE_PTYPE_INNER_L4_ICMP,
710 : :
711 : : /* IPv4 --> IPv6 */
712 : : [36] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
713 : : RTE_PTYPE_TUNNEL_IP |
714 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
715 : : RTE_PTYPE_INNER_L4_FRAG,
716 : : [37] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
717 : : RTE_PTYPE_TUNNEL_IP |
718 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
719 : : RTE_PTYPE_INNER_L4_NONFRAG,
720 : : [38] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
721 : : RTE_PTYPE_TUNNEL_IP |
722 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
723 : : RTE_PTYPE_INNER_L4_UDP,
724 : : /* [39] reserved */
725 : : [40] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
726 : : RTE_PTYPE_TUNNEL_IP |
727 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
728 : : RTE_PTYPE_INNER_L4_TCP,
729 : : [41] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
730 : : RTE_PTYPE_TUNNEL_IP |
731 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
732 : : RTE_PTYPE_INNER_L4_SCTP,
733 : : [42] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
734 : : RTE_PTYPE_TUNNEL_IP |
735 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
736 : : RTE_PTYPE_INNER_L4_ICMP,
737 : :
738 : : /* IPv4 --> GRE/GENEVE/VXLAN */
739 : : [43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
740 : : RTE_PTYPE_TUNNEL_GRENAT,
741 : :
742 : : /* IPv4 --> GRE/GENEVE/VXLAN --> IPv4 */
743 : : [44] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
744 : : RTE_PTYPE_TUNNEL_GRENAT |
745 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
746 : : RTE_PTYPE_INNER_L4_FRAG,
747 : : [45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
748 : : RTE_PTYPE_TUNNEL_GRENAT |
749 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
750 : : RTE_PTYPE_INNER_L4_NONFRAG,
751 : : [46] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
752 : : RTE_PTYPE_TUNNEL_GRENAT |
753 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
754 : : RTE_PTYPE_INNER_L4_UDP,
755 : : /* [47] reserved */
756 : : [48] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
757 : : RTE_PTYPE_TUNNEL_GRENAT |
758 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
759 : : RTE_PTYPE_INNER_L4_TCP,
760 : : [49] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
761 : : RTE_PTYPE_TUNNEL_GRENAT |
762 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
763 : : RTE_PTYPE_INNER_L4_SCTP,
764 : : [50] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
765 : : RTE_PTYPE_TUNNEL_GRENAT |
766 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
767 : : RTE_PTYPE_INNER_L4_ICMP,
768 : :
769 : : /* IPv4 --> GRE/GENEVE/VXLAN --> IPv6 */
770 : : [51] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
771 : : RTE_PTYPE_TUNNEL_GRENAT |
772 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
773 : : RTE_PTYPE_INNER_L4_FRAG,
774 : : [52] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
775 : : RTE_PTYPE_TUNNEL_GRENAT |
776 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
777 : : RTE_PTYPE_INNER_L4_NONFRAG,
778 : : [53] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
779 : : RTE_PTYPE_TUNNEL_GRENAT |
780 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
781 : : RTE_PTYPE_INNER_L4_UDP,
782 : : /* [54] reserved */
783 : : [55] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
784 : : RTE_PTYPE_TUNNEL_GRENAT |
785 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
786 : : RTE_PTYPE_INNER_L4_TCP,
787 : : [56] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
788 : : RTE_PTYPE_TUNNEL_GRENAT |
789 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
790 : : RTE_PTYPE_INNER_L4_SCTP,
791 : : [57] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
792 : : RTE_PTYPE_TUNNEL_GRENAT |
793 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
794 : : RTE_PTYPE_INNER_L4_ICMP,
795 : :
796 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC */
797 : : [58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
798 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
799 : :
800 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC --> IPv4 */
801 : : [59] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
802 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
803 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
804 : : RTE_PTYPE_INNER_L4_FRAG,
805 : : [60] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
806 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
807 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
808 : : RTE_PTYPE_INNER_L4_NONFRAG,
809 : : [61] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
810 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
811 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
812 : : RTE_PTYPE_INNER_L4_UDP,
813 : : /* [62] reserved */
814 : : [63] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
815 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
816 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
817 : : RTE_PTYPE_INNER_L4_TCP,
818 : : [64] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
819 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
820 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
821 : : RTE_PTYPE_INNER_L4_SCTP,
822 : : [65] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
823 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
824 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
825 : : RTE_PTYPE_INNER_L4_ICMP,
826 : :
827 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC --> IPv6 */
828 : : [66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
829 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
830 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
831 : : RTE_PTYPE_INNER_L4_FRAG,
832 : : [67] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
833 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
834 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
835 : : RTE_PTYPE_INNER_L4_NONFRAG,
836 : : [68] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
837 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
838 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
839 : : RTE_PTYPE_INNER_L4_UDP,
840 : : /* [69] reserved */
841 : : [70] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
842 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
843 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
844 : : RTE_PTYPE_INNER_L4_TCP,
845 : : [71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
846 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
847 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
848 : : RTE_PTYPE_INNER_L4_SCTP,
849 : : [72] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
850 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
851 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
852 : : RTE_PTYPE_INNER_L4_ICMP,
853 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC/VLAN */
854 : : [73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
855 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
856 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv4 */
857 : : [74] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
858 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
859 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
860 : : RTE_PTYPE_INNER_L4_FRAG,
861 : : [75] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
862 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
863 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
864 : : RTE_PTYPE_INNER_L4_NONFRAG,
865 : : [76] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
866 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
867 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP,
868 : : /* [77] reserved */
869 : : [78] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
870 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
871 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP,
872 : : [79] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
873 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
874 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
875 : : [80] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
876 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
877 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
878 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv6 */
879 : : [81] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
880 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
881 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_FRAG,
882 : : [82] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
883 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
884 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
885 : : RTE_PTYPE_INNER_L4_NONFRAG,
886 : : [83] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
887 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
888 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP,
889 : : /* [64] reserved */
890 : : [85] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
891 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
892 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP,
893 : : [86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
894 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
895 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
896 : : [87] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
897 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
898 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
899 : : /* Non tunneled IPv6 */
900 : : [88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
901 : : RTE_PTYPE_L4_FRAG,
902 : : [89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
903 : : RTE_PTYPE_L4_NONFRAG,
904 : : [90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
905 : : RTE_PTYPE_L4_UDP,
906 : : /* [91] reserved */
907 : : [92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
908 : : RTE_PTYPE_L4_TCP,
909 : : [93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
910 : : RTE_PTYPE_L4_SCTP,
911 : : [94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
912 : : RTE_PTYPE_L4_ICMP,
913 : :
914 : : /* IPv6 --> IPv4 */
915 : : [95] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
916 : : RTE_PTYPE_TUNNEL_IP |
917 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
918 : : RTE_PTYPE_INNER_L4_FRAG,
919 : : [96] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
920 : : RTE_PTYPE_TUNNEL_IP |
921 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
922 : : RTE_PTYPE_INNER_L4_NONFRAG,
923 : : [97] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
924 : : RTE_PTYPE_TUNNEL_IP |
925 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
926 : : RTE_PTYPE_INNER_L4_UDP,
927 : : /* [98] reserved */
928 : : [99] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
929 : : RTE_PTYPE_TUNNEL_IP |
930 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
931 : : RTE_PTYPE_INNER_L4_TCP,
932 : : [100] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
933 : : RTE_PTYPE_TUNNEL_IP |
934 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
935 : : RTE_PTYPE_INNER_L4_SCTP,
936 : : [101] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
937 : : RTE_PTYPE_TUNNEL_IP |
938 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
939 : : RTE_PTYPE_INNER_L4_ICMP,
940 : :
941 : : /* IPv6 --> IPv6 */
942 : : [102] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
943 : : RTE_PTYPE_TUNNEL_IP |
944 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
945 : : RTE_PTYPE_INNER_L4_FRAG,
946 : : [103] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
947 : : RTE_PTYPE_TUNNEL_IP |
948 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
949 : : RTE_PTYPE_INNER_L4_NONFRAG,
950 : : [104] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
951 : : RTE_PTYPE_TUNNEL_IP |
952 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
953 : : RTE_PTYPE_INNER_L4_UDP,
954 : : /* [105] reserved */
955 : : [106] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
956 : : RTE_PTYPE_TUNNEL_IP |
957 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
958 : : RTE_PTYPE_INNER_L4_TCP,
959 : : [107] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
960 : : RTE_PTYPE_TUNNEL_IP |
961 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
962 : : RTE_PTYPE_INNER_L4_SCTP,
963 : : [108] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
964 : : RTE_PTYPE_TUNNEL_IP |
965 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
966 : : RTE_PTYPE_INNER_L4_ICMP,
967 : :
968 : : /* IPv6 --> GRE/GENEVE/VXLAN */
969 : : [109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
970 : : RTE_PTYPE_TUNNEL_GRENAT,
971 : :
972 : : /* IPv6 --> GRE/GENEVE/VXLAN --> IPv4 */
973 : : [110] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
974 : : RTE_PTYPE_TUNNEL_GRENAT |
975 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
976 : : RTE_PTYPE_INNER_L4_FRAG,
977 : : [111] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
978 : : RTE_PTYPE_TUNNEL_GRENAT |
979 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
980 : : RTE_PTYPE_INNER_L4_NONFRAG,
981 : : [112] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
982 : : RTE_PTYPE_TUNNEL_GRENAT |
983 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
984 : : RTE_PTYPE_INNER_L4_UDP,
985 : : /* [113] reserved */
986 : : [114] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
987 : : RTE_PTYPE_TUNNEL_GRENAT |
988 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
989 : : RTE_PTYPE_INNER_L4_TCP,
990 : : [115] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
991 : : RTE_PTYPE_TUNNEL_GRENAT |
992 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
993 : : RTE_PTYPE_INNER_L4_SCTP,
994 : : [116] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
995 : : RTE_PTYPE_TUNNEL_GRENAT |
996 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
997 : : RTE_PTYPE_INNER_L4_ICMP,
998 : :
999 : : /* IPv6 --> GRE/GENEVE/VXLAN --> IPv6 */
1000 : : [117] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1001 : : RTE_PTYPE_TUNNEL_GRENAT |
1002 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1003 : : RTE_PTYPE_INNER_L4_FRAG,
1004 : : [118] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1005 : : RTE_PTYPE_TUNNEL_GRENAT |
1006 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1007 : : RTE_PTYPE_INNER_L4_NONFRAG,
1008 : : [119] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1009 : : RTE_PTYPE_TUNNEL_GRENAT |
1010 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1011 : : RTE_PTYPE_INNER_L4_UDP,
1012 : : /* [120] reserved */
1013 : : [121] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1014 : : RTE_PTYPE_TUNNEL_GRENAT |
1015 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1016 : : RTE_PTYPE_INNER_L4_TCP,
1017 : : [122] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1018 : : RTE_PTYPE_TUNNEL_GRENAT |
1019 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1020 : : RTE_PTYPE_INNER_L4_SCTP,
1021 : : [123] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1022 : : RTE_PTYPE_TUNNEL_GRENAT |
1023 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1024 : : RTE_PTYPE_INNER_L4_ICMP,
1025 : :
1026 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC */
1027 : : [124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1028 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
1029 : :
1030 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC --> IPv4 */
1031 : : [125] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1032 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1033 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1034 : : RTE_PTYPE_INNER_L4_FRAG,
1035 : : [126] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1036 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1037 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1038 : : RTE_PTYPE_INNER_L4_NONFRAG,
1039 : : [127] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1040 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1041 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1042 : : RTE_PTYPE_INNER_L4_UDP,
1043 : : /* [128] reserved */
1044 : : [129] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1045 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1046 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1047 : : RTE_PTYPE_INNER_L4_TCP,
1048 : : [130] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1049 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1050 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1051 : : RTE_PTYPE_INNER_L4_SCTP,
1052 : : [131] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1053 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1054 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1055 : : RTE_PTYPE_INNER_L4_ICMP,
1056 : :
1057 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC --> IPv6 */
1058 : : [132] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1059 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1060 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1061 : : RTE_PTYPE_INNER_L4_FRAG,
1062 : : [133] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1063 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1064 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1065 : : RTE_PTYPE_INNER_L4_NONFRAG,
1066 : : [134] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1067 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1068 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1069 : : RTE_PTYPE_INNER_L4_UDP,
1070 : : /* [135] reserved */
1071 : : [136] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1072 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1073 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1074 : : RTE_PTYPE_INNER_L4_TCP,
1075 : : [137] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1076 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1077 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1078 : : RTE_PTYPE_INNER_L4_SCTP,
1079 : : [138] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1080 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1081 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1082 : : RTE_PTYPE_INNER_L4_ICMP,
1083 : :
1084 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC/VLAN */
1085 : : [139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1086 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
1087 : :
1088 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv4 */
1089 : : [140] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1090 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1091 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1092 : : RTE_PTYPE_INNER_L4_FRAG,
1093 : : [141] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1094 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1095 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1096 : : RTE_PTYPE_INNER_L4_NONFRAG,
1097 : : [142] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1098 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1099 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP,
1100 : : /* [143] reserved */
1101 : : [144] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1102 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1103 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP,
1104 : : [145] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1105 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1106 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
1107 : : [146] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1108 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1109 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
1110 : :
1111 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv6 */
1112 : : [147] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1113 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1114 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1115 : : RTE_PTYPE_INNER_L4_FRAG,
1116 : : [148] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1117 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1118 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1119 : : RTE_PTYPE_INNER_L4_NONFRAG,
1120 : : [149] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1121 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1122 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP,
1123 : : /* [150] reserved */
1124 : : [151] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1125 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1126 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP,
1127 : : [152] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1128 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1129 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
1130 : : [153] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1131 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1132 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
1133 : : /* [154] - [159] reserved */
1134 : : /* IPSec */
1135 : : [160] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1136 : : RTE_PTYPE_TUNNEL_ESP,
1137 : : [161] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1138 : : RTE_PTYPE_TUNNEL_ESP,
1139 : : /* AH */
1140 : : [162] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1141 : : RTE_PTYPE_L4_NONFRAG,
1142 : : [163] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1143 : : RTE_PTYPE_L4_NONFRAG,
1144 : : /* NAT-T-ESP */
1145 : : [164] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1146 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1147 : : [165] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1148 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1149 : : /* SDN-ESP */
1150 : : [166] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1151 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1152 : : [167] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1153 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1154 : : /* [168] - [271] reserved */
1155 : : /* IPV4 --> VRRP */
1156 : : [272] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1157 : : RTE_PTYPE_L4_NONFRAG,
1158 : : /* IPV4 --> OSPF */
1159 : : [273] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1160 : : RTE_PTYPE_L4_NONFRAG,
1161 : : /* IPV6 --> VRRP */
1162 : : [274] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1163 : : RTE_PTYPE_L4_NONFRAG,
1164 : : /* IPV6 --> VRRP */
1165 : : [275] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1166 : : RTE_PTYPE_L4_NONFRAG,
1167 : : /* ATAoE */
1168 : : [276] = RTE_PTYPE_UNKNOWN,
1169 : : /* Control */
1170 : : [278] = RTE_PTYPE_UNKNOWN,
1171 : : /* [279] - [324] reserved */
1172 : : /* GTP */
1173 : : [325] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1174 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1175 : : [326] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1176 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1177 : : [327] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1178 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1179 : : [328] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1180 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1181 : : [329] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1182 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU,
1183 : : [330] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1184 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU,
1185 : : [331] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1186 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1187 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1188 : : RTE_PTYPE_INNER_L4_FRAG,
1189 : : [332] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1190 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1191 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1192 : : RTE_PTYPE_INNER_L4_NONFRAG,
1193 : : [333] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1194 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1195 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1196 : : RTE_PTYPE_INNER_L4_UDP,
1197 : : [334] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1198 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1199 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1200 : : RTE_PTYPE_INNER_L4_TCP,
1201 : : [335] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1202 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1203 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1204 : : RTE_PTYPE_INNER_L4_ICMP,
1205 : : [336] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1206 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1207 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1208 : : RTE_PTYPE_INNER_L4_FRAG,
1209 : : [337] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1210 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1211 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1212 : : RTE_PTYPE_INNER_L4_NONFRAG,
1213 : : [338] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1214 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1215 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1216 : : RTE_PTYPE_INNER_L4_UDP,
1217 : : [339] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1218 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1219 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1220 : : RTE_PTYPE_INNER_L4_TCP,
1221 : : [340] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1222 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1223 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1224 : : RTE_PTYPE_INNER_L4_ICMP,
1225 : : [341] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1226 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1227 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1228 : : RTE_PTYPE_INNER_L4_FRAG,
1229 : : [342] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1230 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1231 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1232 : : RTE_PTYPE_INNER_L4_NONFRAG,
1233 : : [343] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1234 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1235 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1236 : : RTE_PTYPE_INNER_L4_UDP,
1237 : : [344] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1238 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1239 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1240 : : RTE_PTYPE_INNER_L4_TCP,
1241 : : [345] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1242 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1243 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1244 : : RTE_PTYPE_INNER_L4_ICMP,
1245 : : [346] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1246 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1247 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1248 : : RTE_PTYPE_INNER_L4_FRAG,
1249 : : [347] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1250 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1251 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1252 : : RTE_PTYPE_INNER_L4_NONFRAG,
1253 : : [348] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1254 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1255 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1256 : : RTE_PTYPE_INNER_L4_UDP,
1257 : : [349] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1258 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1259 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1260 : : RTE_PTYPE_INNER_L4_TCP,
1261 : : [350] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1262 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1263 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1264 : : RTE_PTYPE_INNER_L4_ICMP,
1265 : : /* PFCP */
1266 : : [351] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1267 : : RTE_PTYPE_L4_UDP,
1268 : : [352] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1269 : : RTE_PTYPE_L4_UDP,
1270 : : [353] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1271 : : RTE_PTYPE_L4_UDP,
1272 : : [354] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1273 : : RTE_PTYPE_L4_UDP,
1274 : : /* [355] - [359] reserved */
1275 : : /* L2TPv3 */
1276 : : [360] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1277 : : RTE_PTYPE_TUNNEL_L2TP,
1278 : : [361] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1279 : : RTE_PTYPE_TUNNEL_L2TP,
1280 : : /* [362] - [370] reserved */
1281 : : /* eCPRI */
1282 : : [371] = RTE_PTYPE_UNKNOWN,
1283 : : [381] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1284 : : RTE_PTYPE_L4_UDP,
1285 : : [391] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1286 : : RTE_PTYPE_L4_UDP,
1287 : : [396] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1288 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1289 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1290 : : RTE_PTYPE_INNER_L4_NONFRAG,
1291 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, IGMP */
1292 : : [397] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1293 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1294 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1295 : : RTE_PTYPE_INNER_L4_NONFRAG,
1296 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, EIGRP */
1297 : : [398] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1298 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1299 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1300 : : RTE_PTYPE_INNER_L4_NONFRAG,
1301 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, EIGRP */
1302 : : [399] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1303 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1304 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1305 : : RTE_PTYPE_INNER_L4_NONFRAG,
1306 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, PIM */
1307 : : [400] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1308 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1309 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1310 : : RTE_PTYPE_INNER_L4_NONFRAG,
1311 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, PIM */
1312 : : [401] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1313 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1314 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1315 : : RTE_PTYPE_INNER_L4_NONFRAG,
1316 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, IGMP */
1317 : : [402] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1318 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1319 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1320 : : RTE_PTYPE_INNER_L4_NONFRAG,
1321 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, IGMP */
1322 : : [403] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1323 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1324 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1325 : : RTE_PTYPE_INNER_L4_NONFRAG,
1326 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, EIGRP */
1327 : : [404] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1328 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1329 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1330 : : RTE_PTYPE_INNER_L4_NONFRAG,
1331 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, EIGRP */
1332 : : [405] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1333 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1334 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1335 : : RTE_PTYPE_INNER_L4_NONFRAG,
1336 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, PIM */
1337 : : [406] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1338 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1339 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1340 : : RTE_PTYPE_INNER_L4_NONFRAG,
1341 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, PIM */
1342 : : [407] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1343 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1344 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1345 : : RTE_PTYPE_INNER_L4_NONFRAG,
1346 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, VRRP */
1347 : : [408] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1348 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1349 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1350 : : RTE_PTYPE_INNER_L4_NONFRAG,
1351 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, VRRP */
1352 : : [409] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1353 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1354 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1355 : : RTE_PTYPE_INNER_L4_NONFRAG,
1356 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, VRRP */
1357 : : [410] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1358 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1359 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1360 : : RTE_PTYPE_INNER_L4_NONFRAG,
1361 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, VRRP */
1362 : : [411] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1363 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1364 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1365 : : RTE_PTYPE_INNER_L4_NONFRAG,
1366 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, OSPF */
1367 : : [412] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1368 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1369 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1370 : : RTE_PTYPE_INNER_L4_NONFRAG,
1371 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, OSPF */
1372 : : [413] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1373 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1374 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1375 : : RTE_PTYPE_INNER_L4_NONFRAG,
1376 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, OSPF */
1377 : : [414] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1378 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1379 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1380 : : RTE_PTYPE_INNER_L4_NONFRAG,
1381 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, OSPF */
1382 : : [415] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1383 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1384 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1385 : : RTE_PTYPE_INNER_L4_NONFRAG,
1386 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, L2_TP_V3 */
1387 : : [416] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1388 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1389 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1390 : : RTE_PTYPE_INNER_L4_NONFRAG,
1391 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, L2_TP_V3 */
1392 : : [417] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1393 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1394 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1395 : : RTE_PTYPE_INNER_L4_NONFRAG,
1396 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, L2_TP_V3 */
1397 : : [418] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1398 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1399 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1400 : : RTE_PTYPE_INNER_L4_NONFRAG,
1401 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, L2_TP_V3 */
1402 : : [419] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1403 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1404 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1405 : : RTE_PTYPE_INNER_L4_NONFRAG,
1406 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, AH */
1407 : : [420] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1408 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1409 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1410 : : RTE_PTYPE_INNER_L4_NONFRAG,
1411 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, AH */
1412 : : [421] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1413 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1414 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1415 : : RTE_PTYPE_INNER_L4_NONFRAG,
1416 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, AH */
1417 : : [422] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1418 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1419 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1420 : : RTE_PTYPE_INNER_L4_NONFRAG,
1421 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, AH */
1422 : : [423] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1423 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1424 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1425 : : RTE_PTYPE_INNER_L4_NONFRAG,
1426 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, ESP */
1427 : : [424] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1428 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1429 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1430 : : RTE_PTYPE_INNER_L4_NONFRAG,
1431 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, ESP */
1432 : : [425] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1433 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1434 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1435 : : RTE_PTYPE_INNER_L4_NONFRAG,
1436 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, ESP */
1437 : : [426] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1438 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1439 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1440 : : RTE_PTYPE_INNER_L4_NONFRAG,
1441 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, ESP */
1442 : : [427] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1443 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1444 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1445 : : RTE_PTYPE_INNER_L4_NONFRAG,
1446 : : /* TP-TUN GTPU */
1447 : : [450] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1448 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1449 : : RTE_PTYPE_INNER_L4_UDP,
1450 : : [451] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1451 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1452 : : RTE_PTYPE_INNER_L4_UDP,
1453 : : [452] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1454 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1455 : : RTE_PTYPE_INNER_L4_UDP,
1456 : : [453] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1457 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1458 : : RTE_PTYPE_INNER_L4_UDP,
1459 : : [454] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1460 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1461 : : RTE_PTYPE_INNER_L4_UDP,
1462 : : [455] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1463 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1464 : : RTE_PTYPE_INNER_L4_UDP,
1465 : : [456] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1466 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1467 : : RTE_PTYPE_INNER_L4_UDP,
1468 : : [457] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1469 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1470 : : RTE_PTYPE_INNER_L4_UDP,
1471 : : [458] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1472 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1473 : : RTE_PTYPE_INNER_L4_UDP,
1474 : : [459] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1475 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1476 : : RTE_PTYPE_INNER_L4_UDP,
1477 : : [460] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1478 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1479 : : RTE_PTYPE_INNER_L4_UDP,
1480 : : [461] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1481 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1482 : : RTE_PTYPE_INNER_L4_UDP,
1483 : : [462] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1484 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1485 : : RTE_PTYPE_INNER_L4_UDP,
1486 : : [463] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1487 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1488 : : RTE_PTYPE_INNER_L4_UDP,
1489 : : [464] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1490 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1491 : : RTE_PTYPE_INNER_L4_UDP,
1492 : : [465] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1493 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1494 : : RTE_PTYPE_INNER_L4_UDP,
1495 : : [466] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1496 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1497 : : RTE_PTYPE_INNER_L4_UDP,
1498 : : [467] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1499 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1500 : : RTE_PTYPE_INNER_L4_UDP,
1501 : : [468] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1502 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1503 : : RTE_PTYPE_INNER_L4_UDP,
1504 : : [469] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1505 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1506 : : RTE_PTYPE_INNER_L4_UDP,
1507 : : [470] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1508 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1509 : : RTE_PTYPE_INNER_L4_UDP,
1510 : : [471] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1511 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1512 : : RTE_PTYPE_INNER_L4_UDP,
1513 : : [472] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1514 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1515 : : RTE_PTYPE_INNER_L4_UDP,
1516 : : [473] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1517 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1518 : : RTE_PTYPE_INNER_L4_UDP,
1519 : : [474] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1520 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1521 : : RTE_PTYPE_INNER_L4_UDP,
1522 : : [475] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1523 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1524 : : RTE_PTYPE_INNER_L4_UDP,
1525 : : [476] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1526 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1527 : : RTE_PTYPE_INNER_L4_UDP,
1528 : : [477] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1529 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1530 : : RTE_PTYPE_INNER_L4_UDP,
1531 : : [478] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1532 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1533 : : RTE_PTYPE_INNER_L4_UDP,
1534 : : [479] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1535 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1536 : : RTE_PTYPE_INNER_L4_UDP,
1537 : : [480] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1538 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1539 : : RTE_PTYPE_INNER_L4_UDP,
1540 : : [481] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1541 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1542 : : RTE_PTYPE_INNER_L4_UDP,
1543 : : [482] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1544 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1545 : : RTE_PTYPE_INNER_L4_UDP,
1546 : : [483] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1547 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1548 : : RTE_PTYPE_INNER_L4_UDP,
1549 : : [484] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1550 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1551 : : RTE_PTYPE_INNER_L4_UDP,
1552 : : [485] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1553 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1554 : : RTE_PTYPE_INNER_L4_UDP,
1555 : : [486] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1556 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1557 : : RTE_PTYPE_INNER_L4_UDP,
1558 : : [487] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1559 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1560 : : RTE_PTYPE_INNER_L4_UDP,
1561 : : [488] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1562 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1563 : : RTE_PTYPE_INNER_L4_UDP,
1564 : : [489] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1565 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1566 : : RTE_PTYPE_INNER_L4_UDP,
1567 : : [490] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1568 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1569 : : RTE_PTYPE_INNER_L4_UDP,
1570 : : [491] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1571 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1572 : : RTE_PTYPE_INNER_L4_UDP,
1573 : : [492] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1574 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1575 : : RTE_PTYPE_INNER_L4_UDP,
1576 : : [493] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1577 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1578 : : RTE_PTYPE_INNER_L4_UDP,
1579 : : [494] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1580 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1581 : : RTE_PTYPE_INNER_L4_UDP,
1582 : : [495] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1583 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1584 : : RTE_PTYPE_INNER_L4_UDP,
1585 : : [496] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1586 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1587 : : RTE_PTYPE_INNER_L4_UDP,
1588 : : [497] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1589 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1590 : : RTE_PTYPE_INNER_L4_UDP,
1591 : : /* [498] - [767] reserved */
1592 : : /* L2(NETWORK CPU) */
1593 : : /* ISIS */
1594 : : [768] = RTE_PTYPE_UNKNOWN,
1595 : : /* SDF */
1596 : : [769] = RTE_PTYPE_UNKNOWN,
1597 : : /* PPoE_NEGO */
1598 : : [770] = RTE_PTYPE_L2_ETHER_PPPOE,
1599 : : /* PPoE_PROTOCOL */
1600 : : [771] = RTE_PTYPE_L2_ETHER_PPPOE,
1601 : : [772] = RTE_PTYPE_L2_ETHER_PPPOE,
1602 : : /* LACP */
1603 : : [773] = RTE_PTYPE_UNKNOWN,
1604 : : /* [774] - [775] reserved */
1605 : : /* IPv4 L3(NETWORK CPU) */
1606 : : [776] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1607 : : RTE_PTYPE_L4_IGMP,
1608 : : /* EIGRP */
1609 : : [777] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1610 : : RTE_PTYPE_L4_NONFRAG,
1611 : : /* PIM */
1612 : : [778] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1613 : : RTE_PTYPE_L4_NONFRAG,
1614 : : [779] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1615 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1616 : : [780] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1617 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1618 : : [781] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1619 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1620 : : /* [782] - [783] reserved */
1621 : : /* IPv6 L3(NETWORK CPU) */
1622 : : [784] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1623 : : RTE_PTYPE_L4_IGMP,
1624 : : /* EIGRP */
1625 : : [785] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1626 : : RTE_PTYPE_L4_NONFRAG,
1627 : : /* PIM */
1628 : : [786] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1629 : : RTE_PTYPE_L4_NONFRAG,
1630 : : [787] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1631 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1632 : : [788] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1633 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1634 : : [789] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1635 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1636 : : /* [790] - [791] reserved */
1637 : : /* IPv4 L4(NETWORK CPU) */
1638 : : [792] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1639 : : RTE_PTYPE_L4_TCP,
1640 : : [793] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1641 : : RTE_PTYPE_L4_TCP,
1642 : : [794] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1643 : : RTE_PTYPE_L4_UDP,
1644 : : [795] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1645 : : RTE_PTYPE_L4_UDP,
1646 : : [796] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1647 : : RTE_PTYPE_L4_UDP,
1648 : : [797] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1649 : : RTE_PTYPE_L4_UDP,
1650 : : [798] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1651 : : RTE_PTYPE_L4_UDP,
1652 : : [799] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1653 : : RTE_PTYPE_L4_UDP,
1654 : : [800] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1655 : : RTE_PTYPE_L4_UDP,
1656 : : [801] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1657 : : RTE_PTYPE_L4_UDP,
1658 : : /* [802] - [807] reserved */
1659 : : /* IPv6 L4(NETWORK CPU) */
1660 : : [808] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1661 : : RTE_PTYPE_L4_TCP,
1662 : : [809] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1663 : : RTE_PTYPE_L4_TCP,
1664 : : [810] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1665 : : RTE_PTYPE_L4_UDP,
1666 : : [811] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1667 : : RTE_PTYPE_L4_UDP,
1668 : : [812] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1669 : : RTE_PTYPE_L4_UDP,
1670 : : [813] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1671 : : RTE_PTYPE_L4_UDP,
1672 : : [814] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1673 : : RTE_PTYPE_L4_UDP,
1674 : : [815] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1675 : : RTE_PTYPE_L4_UDP,
1676 : : [816] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1677 : : RTE_PTYPE_L4_UDP,
1678 : : [817] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1679 : : RTE_PTYPE_L4_UDP,
1680 : : /* [818] - [819] reserved */
1681 : : /* IPv6 -> MAC */
1682 : : [820] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1683 : : RTE_PTYPE_L4_NONFRAG,
1684 : : /* IPv6 -> MAC -> IPv4*/
1685 : : [821] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1686 : : RTE_PTYPE_L4_NONFRAG,
1687 : : [822] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1688 : : RTE_PTYPE_L4_NONFRAG,
1689 : : [823] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1690 : : RTE_PTYPE_L4_NONFRAG,
1691 : : [824] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1692 : : RTE_PTYPE_L4_NONFRAG,
1693 : : [825] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1694 : : RTE_PTYPE_L4_NONFRAG,
1695 : : [826] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1696 : : RTE_PTYPE_L4_NONFRAG,
1697 : : /* IPv6 -> MAC -> IPv4*/
1698 : : [827] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1699 : : RTE_PTYPE_L4_NONFRAG,
1700 : : [828] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1701 : : RTE_PTYPE_L4_NONFRAG,
1702 : : [829] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1703 : : RTE_PTYPE_L4_NONFRAG,
1704 : : [830] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1705 : : RTE_PTYPE_L4_NONFRAG,
1706 : : [831] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1707 : : RTE_PTYPE_L4_NONFRAG,
1708 : : [832] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1709 : : RTE_PTYPE_L4_NONFRAG,
1710 : : /* [833] - [834] reserved */
1711 : : /* IPv6 -> MAC/VLAN */
1712 : : [835] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1713 : : RTE_PTYPE_L4_NONFRAG,
1714 : : /* IPv6 -> MAC/VLAN -> IPv4 */
1715 : : [836] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1716 : : RTE_PTYPE_L4_NONFRAG,
1717 : : [837] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1718 : : RTE_PTYPE_L4_NONFRAG,
1719 : : [838] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1720 : : RTE_PTYPE_L4_NONFRAG,
1721 : : [839] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1722 : : RTE_PTYPE_L4_NONFRAG,
1723 : : [840] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1724 : : RTE_PTYPE_L4_NONFRAG,
1725 : : [841] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1726 : : RTE_PTYPE_L4_NONFRAG,
1727 : : /* IPv6 -> MAC/VLAN -> IPv6 */
1728 : : [842] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1729 : : RTE_PTYPE_L4_NONFRAG,
1730 : : [843] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1731 : : RTE_PTYPE_L4_NONFRAG,
1732 : : [844] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1733 : : RTE_PTYPE_L4_NONFRAG,
1734 : : [845] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1735 : : RTE_PTYPE_L4_NONFRAG,
1736 : : [846] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1737 : : RTE_PTYPE_L4_NONFRAG,
1738 : : [847] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1739 : : RTE_PTYPE_L4_NONFRAG,
1740 : :
1741 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> PAY */
1742 : : [878] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1743 : : RTE_PTYPE_TUNNEL_GRENAT,
1744 : :
1745 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> IPv4 */
1746 : : [877] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1747 : : RTE_PTYPE_TUNNEL_GRENAT |
1748 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1749 : : RTE_PTYPE_INNER_L4_FRAG,
1750 : : [876] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1751 : : RTE_PTYPE_TUNNEL_GRENAT |
1752 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1753 : : RTE_PTYPE_INNER_L4_NONFRAG,
1754 : : [879] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1755 : : RTE_PTYPE_TUNNEL_GRENAT |
1756 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1757 : : RTE_PTYPE_INNER_L4_UDP,
1758 : : [880] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1759 : : RTE_PTYPE_TUNNEL_GRENAT |
1760 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1761 : : RTE_PTYPE_INNER_L4_TCP,
1762 : : [875] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1763 : : RTE_PTYPE_TUNNEL_GRENAT |
1764 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1765 : : RTE_PTYPE_INNER_L4_SCTP,
1766 : : [874] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1767 : : RTE_PTYPE_TUNNEL_GRENAT |
1768 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1769 : : RTE_PTYPE_INNER_L4_ICMP,
1770 : :
1771 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> IPv6 */
1772 : : [871] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1773 : : RTE_PTYPE_TUNNEL_GRENAT |
1774 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1775 : : RTE_PTYPE_INNER_L4_FRAG,
1776 : : [870] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1777 : : RTE_PTYPE_TUNNEL_GRENAT |
1778 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1779 : : RTE_PTYPE_INNER_L4_NONFRAG,
1780 : : [872] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1781 : : RTE_PTYPE_TUNNEL_GRENAT |
1782 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1783 : : RTE_PTYPE_INNER_L4_UDP,
1784 : : [873] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1785 : : RTE_PTYPE_TUNNEL_GRENAT |
1786 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1787 : : RTE_PTYPE_INNER_L4_TCP,
1788 : : [869] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1789 : : RTE_PTYPE_TUNNEL_GRENAT |
1790 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1791 : : RTE_PTYPE_INNER_L4_SCTP,
1792 : : [868] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1793 : : RTE_PTYPE_TUNNEL_GRENAT |
1794 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1795 : : RTE_PTYPE_INNER_L4_ICMP,
1796 : :
1797 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> PAY */
1798 : : [891] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1799 : : RTE_PTYPE_TUNNEL_GRENAT,
1800 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> IPv4 */
1801 : : [890] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1802 : : RTE_PTYPE_TUNNEL_GRENAT |
1803 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1804 : : RTE_PTYPE_INNER_L4_FRAG,
1805 : : [889] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1806 : : RTE_PTYPE_TUNNEL_GRENAT |
1807 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1808 : : RTE_PTYPE_INNER_L4_NONFRAG,
1809 : : [892] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1810 : : RTE_PTYPE_TUNNEL_GRENAT |
1811 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1812 : : RTE_PTYPE_INNER_L4_UDP,
1813 : : [893] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1814 : : RTE_PTYPE_TUNNEL_GRENAT |
1815 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1816 : : RTE_PTYPE_INNER_L4_TCP,
1817 : : [888] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1818 : : RTE_PTYPE_TUNNEL_GRENAT |
1819 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1820 : : RTE_PTYPE_INNER_L4_SCTP,
1821 : : [887] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1822 : : RTE_PTYPE_TUNNEL_GRENAT |
1823 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1824 : : RTE_PTYPE_INNER_L4_ICMP,
1825 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> IPv6 */
1826 : : [884] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1827 : : RTE_PTYPE_TUNNEL_GRENAT |
1828 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1829 : : RTE_PTYPE_INNER_L4_FRAG,
1830 : : [883] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1831 : : RTE_PTYPE_TUNNEL_GRENAT |
1832 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1833 : : RTE_PTYPE_INNER_L4_NONFRAG,
1834 : : [885] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1835 : : RTE_PTYPE_TUNNEL_GRENAT |
1836 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1837 : : RTE_PTYPE_INNER_L4_UDP,
1838 : : [886] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1839 : : RTE_PTYPE_TUNNEL_GRENAT |
1840 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1841 : : RTE_PTYPE_INNER_L4_TCP,
1842 : : [882] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1843 : : RTE_PTYPE_TUNNEL_GRENAT |
1844 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1845 : : RTE_PTYPE_INNER_L4_SCTP,
1846 : : [881] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1847 : : RTE_PTYPE_TUNNEL_GRENAT |
1848 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1849 : : RTE_PTYPE_INNER_L4_ICMP,
1850 : :
1851 : : /* IPv6 -> UDP -> GRE -> PAY */
1852 : : [904] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1853 : : RTE_PTYPE_TUNNEL_GRENAT,
1854 : : /* IPv6 -> UDP -> GRE -> IPv4 */
1855 : : [903] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1856 : : RTE_PTYPE_TUNNEL_GRENAT |
1857 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1858 : : RTE_PTYPE_INNER_L4_FRAG,
1859 : : [902] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1860 : : RTE_PTYPE_TUNNEL_GRENAT |
1861 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1862 : : RTE_PTYPE_INNER_L4_NONFRAG,
1863 : : [905] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1864 : : RTE_PTYPE_TUNNEL_GRENAT |
1865 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1866 : : RTE_PTYPE_INNER_L4_UDP,
1867 : : [906] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1868 : : RTE_PTYPE_TUNNEL_GRENAT |
1869 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1870 : : RTE_PTYPE_INNER_L4_TCP,
1871 : : [901] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1872 : : RTE_PTYPE_TUNNEL_GRENAT |
1873 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1874 : : RTE_PTYPE_INNER_L4_SCTP,
1875 : : [900] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1876 : : RTE_PTYPE_TUNNEL_GRENAT |
1877 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1878 : : RTE_PTYPE_INNER_L4_ICMP,
1879 : : /* IPv6 -> UDP -> GRE -> IPv6 */
1880 : : [897] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1881 : : RTE_PTYPE_TUNNEL_GRENAT |
1882 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1883 : : RTE_PTYPE_INNER_L4_FRAG,
1884 : : [896] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1885 : : RTE_PTYPE_TUNNEL_GRENAT |
1886 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1887 : : RTE_PTYPE_INNER_L4_NONFRAG,
1888 : : [898] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1889 : : RTE_PTYPE_TUNNEL_GRENAT |
1890 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1891 : : RTE_PTYPE_INNER_L4_UDP,
1892 : : [899] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1893 : : RTE_PTYPE_TUNNEL_GRENAT |
1894 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1895 : : RTE_PTYPE_INNER_L4_TCP,
1896 : : [895] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1897 : : RTE_PTYPE_TUNNEL_GRENAT |
1898 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1899 : : RTE_PTYPE_INNER_L4_SCTP,
1900 : : [894] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1901 : : RTE_PTYPE_TUNNEL_GRENAT |
1902 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1903 : : RTE_PTYPE_INNER_L4_ICMP,
1904 : :
1905 : : /* IPv4 -> UDP -> GRE -> PAY */
1906 : : [917] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1907 : : RTE_PTYPE_TUNNEL_GRENAT,
1908 : : /* IPv4 -> UDP -> GRE -> IPv4 */
1909 : : [916] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1910 : : RTE_PTYPE_TUNNEL_GRENAT |
1911 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1912 : : RTE_PTYPE_INNER_L4_FRAG,
1913 : : [915] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1914 : : RTE_PTYPE_TUNNEL_GRENAT |
1915 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1916 : : RTE_PTYPE_INNER_L4_NONFRAG,
1917 : : [918] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1918 : : RTE_PTYPE_TUNNEL_GRENAT |
1919 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1920 : : RTE_PTYPE_INNER_L4_UDP,
1921 : : [919] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1922 : : RTE_PTYPE_TUNNEL_GRENAT |
1923 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1924 : : RTE_PTYPE_INNER_L4_TCP,
1925 : : [914] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1926 : : RTE_PTYPE_TUNNEL_GRENAT |
1927 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1928 : : RTE_PTYPE_INNER_L4_SCTP,
1929 : : [913] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1930 : : RTE_PTYPE_TUNNEL_GRENAT |
1931 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1932 : : RTE_PTYPE_INNER_L4_ICMP,
1933 : : /* IPv4 -> UDP -> GRE -> IPv6 */
1934 : : [910] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1935 : : RTE_PTYPE_TUNNEL_GRENAT |
1936 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1937 : : RTE_PTYPE_INNER_L4_FRAG,
1938 : : [909] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1939 : : RTE_PTYPE_TUNNEL_GRENAT |
1940 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1941 : : RTE_PTYPE_INNER_L4_NONFRAG,
1942 : : [911] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1943 : : RTE_PTYPE_TUNNEL_GRENAT |
1944 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1945 : : RTE_PTYPE_INNER_L4_UDP,
1946 : : [912] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1947 : : RTE_PTYPE_TUNNEL_GRENAT |
1948 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1949 : : RTE_PTYPE_INNER_L4_TCP,
1950 : : [908] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1951 : : RTE_PTYPE_TUNNEL_GRENAT |
1952 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1953 : : RTE_PTYPE_INNER_L4_SCTP,
1954 : : [907] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1955 : : RTE_PTYPE_TUNNEL_GRENAT |
1956 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1957 : : RTE_PTYPE_INNER_L4_ICMP,
1958 : :
1959 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> PAY */
1960 : : [930] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1961 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
1962 : :
1963 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv4 */
1964 : : [929] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1965 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1966 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1967 : : RTE_PTYPE_INNER_L4_FRAG,
1968 : : [928] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1969 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1970 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1971 : : RTE_PTYPE_INNER_L4_NONFRAG,
1972 : : [931] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1973 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1974 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1975 : : RTE_PTYPE_INNER_L4_UDP,
1976 : : [932] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1977 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1978 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1979 : : RTE_PTYPE_INNER_L4_TCP,
1980 : : [927] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1981 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1982 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1983 : : RTE_PTYPE_INNER_L4_SCTP,
1984 : : [926] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1985 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1986 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1987 : : RTE_PTYPE_INNER_L4_ICMP,
1988 : :
1989 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv6 */
1990 : : [923] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1991 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1992 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1993 : : RTE_PTYPE_INNER_L4_FRAG,
1994 : : [922] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1995 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1996 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1997 : : RTE_PTYPE_INNER_L4_NONFRAG,
1998 : : [924] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1999 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2000 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2001 : : RTE_PTYPE_INNER_L4_UDP,
2002 : : [925] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2003 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2004 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2005 : : RTE_PTYPE_INNER_L4_TCP,
2006 : : [921] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2007 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2008 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2009 : : RTE_PTYPE_INNER_L4_SCTP,
2010 : : [920] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2011 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2012 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2013 : : RTE_PTYPE_INNER_L4_ICMP,
2014 : :
2015 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> PAY */
2016 : : [943] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2017 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
2018 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv4 */
2019 : : [942] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2020 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2021 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2022 : : RTE_PTYPE_INNER_L4_FRAG,
2023 : : [941] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2024 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2025 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2026 : : RTE_PTYPE_INNER_L4_NONFRAG,
2027 : : [944] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2028 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2029 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2030 : : RTE_PTYPE_INNER_L4_UDP,
2031 : : [945] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2032 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2033 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2034 : : RTE_PTYPE_INNER_L4_TCP,
2035 : : [940] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2036 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2037 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2038 : : RTE_PTYPE_INNER_L4_SCTP,
2039 : : [939] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2040 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2041 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2042 : : RTE_PTYPE_INNER_L4_ICMP,
2043 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv6 */
2044 : : [936] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2045 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2046 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2047 : : RTE_PTYPE_INNER_L4_FRAG,
2048 : : [935] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2049 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2050 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2051 : : RTE_PTYPE_INNER_L4_NONFRAG,
2052 : : [937] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2053 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2054 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2055 : : RTE_PTYPE_INNER_L4_UDP,
2056 : : [938] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2057 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2058 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2059 : : RTE_PTYPE_INNER_L4_TCP,
2060 : : [934] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2061 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2062 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2063 : : RTE_PTYPE_INNER_L4_SCTP,
2064 : : [933] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2065 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2066 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2067 : : RTE_PTYPE_INNER_L4_ICMP,
2068 : :
2069 : : /* IPv6 > UDP -> GRE -> MACVLAN -> PAY */
2070 : : [956] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2071 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
2072 : : /* IPv6 -> UDP -> GRE -> MACVLAN -> IPv4 */
2073 : : [955] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2074 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2075 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2076 : : RTE_PTYPE_INNER_L4_FRAG,
2077 : : [954] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2078 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2079 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2080 : : RTE_PTYPE_INNER_L4_NONFRAG,
2081 : : [957] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2082 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2083 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2084 : : RTE_PTYPE_INNER_L4_UDP,
2085 : : [958] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2086 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2087 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2088 : : RTE_PTYPE_INNER_L4_TCP,
2089 : : [953] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2090 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2091 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2092 : : RTE_PTYPE_INNER_L4_SCTP,
2093 : : [952] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2094 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2095 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2096 : : RTE_PTYPE_INNER_L4_ICMP,
2097 : : /* IPv6 -> UDP -> GRE -> MACVLAN -> IPv6 */
2098 : : [949] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2099 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2100 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2101 : : RTE_PTYPE_INNER_L4_FRAG,
2102 : : [948] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2103 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2104 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2105 : : RTE_PTYPE_INNER_L4_NONFRAG,
2106 : : [950] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2107 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2108 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2109 : : RTE_PTYPE_INNER_L4_UDP,
2110 : : [951] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2111 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2112 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2113 : : RTE_PTYPE_INNER_L4_TCP,
2114 : : [947] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2115 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2116 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2117 : : RTE_PTYPE_INNER_L4_SCTP,
2118 : : [946] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2119 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2120 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2121 : : RTE_PTYPE_INNER_L4_ICMP,
2122 : :
2123 : : /* IPv4 -> UDP -> GRE -> MACVLAN -> PAY */
2124 : : [969] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2125 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
2126 : : /* IPv4 -> UDP -> GRE -> MACVLAN -> IPv4 */
2127 : : [968] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2128 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2129 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2130 : : RTE_PTYPE_INNER_L4_FRAG,
2131 : : [967] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2132 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2133 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2134 : : RTE_PTYPE_INNER_L4_NONFRAG,
2135 : : [970] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2136 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2137 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2138 : : RTE_PTYPE_INNER_L4_UDP,
2139 : : [971] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2140 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2141 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2142 : : RTE_PTYPE_INNER_L4_TCP,
2143 : : [966] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2144 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2145 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2146 : : RTE_PTYPE_INNER_L4_SCTP,
2147 : : [965] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2148 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2149 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2150 : : RTE_PTYPE_INNER_L4_ICMP,
2151 : : /* IPv4 -> UDP -> GRE -> MACVLAN -> IPv6 */
2152 : : [962] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2153 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2154 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2155 : : RTE_PTYPE_INNER_L4_FRAG,
2156 : : [961] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2157 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2158 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2159 : : RTE_PTYPE_INNER_L4_NONFRAG,
2160 : : [963] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2161 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2162 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2163 : : RTE_PTYPE_INNER_L4_UDP,
2164 : : [964] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2165 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2166 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2167 : : RTE_PTYPE_INNER_L4_TCP,
2168 : : [960] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2169 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2170 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2171 : : RTE_PTYPE_INNER_L4_SCTP,
2172 : : [959] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2173 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2174 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2175 : : RTE_PTYPE_INNER_L4_ICMP,
2176 : :
2177 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> PAY */
2178 : : [982] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2179 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2180 : :
2181 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> IPv4 */
2182 : : [981] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2183 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2184 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2185 : : RTE_PTYPE_INNER_L4_FRAG,
2186 : : [980] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2187 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2188 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2189 : : RTE_PTYPE_INNER_L4_NONFRAG,
2190 : : [983] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2191 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2192 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2193 : : RTE_PTYPE_INNER_L4_UDP,
2194 : : [984] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2195 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2196 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2197 : : RTE_PTYPE_INNER_L4_TCP,
2198 : : [979] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2199 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2200 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2201 : : RTE_PTYPE_INNER_L4_SCTP,
2202 : : [978] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2203 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2204 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2205 : : RTE_PTYPE_INNER_L4_ICMP,
2206 : :
2207 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> IPv6 */
2208 : : [975] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2209 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2210 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2211 : : RTE_PTYPE_INNER_L4_FRAG,
2212 : : [974] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2213 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2214 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2215 : : RTE_PTYPE_INNER_L4_NONFRAG,
2216 : : [976] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2217 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2218 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2219 : : RTE_PTYPE_INNER_L4_UDP,
2220 : : [977] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2221 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2222 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2223 : : RTE_PTYPE_INNER_L4_TCP,
2224 : : [973] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2225 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2226 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2227 : : RTE_PTYPE_INNER_L4_SCTP,
2228 : : [972] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2229 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2230 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2231 : : RTE_PTYPE_INNER_L4_ICMP,
2232 : :
2233 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> PAY */
2234 : : [995] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2235 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2236 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> IPv4 */
2237 : : [994] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2238 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2239 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2240 : : RTE_PTYPE_INNER_L4_FRAG,
2241 : : [993] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2242 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2243 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2244 : : RTE_PTYPE_INNER_L4_NONFRAG,
2245 : : [996] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2246 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2247 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2248 : : RTE_PTYPE_INNER_L4_UDP,
2249 : : [997] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2250 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2251 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2252 : : RTE_PTYPE_INNER_L4_TCP,
2253 : : [992] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2254 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2255 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2256 : : RTE_PTYPE_INNER_L4_SCTP,
2257 : : [991] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2258 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2259 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2260 : : RTE_PTYPE_INNER_L4_ICMP,
2261 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> IPv6 */
2262 : : [988] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2263 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2264 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2265 : : RTE_PTYPE_INNER_L4_FRAG,
2266 : : [987] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2267 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2268 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2269 : : RTE_PTYPE_INNER_L4_NONFRAG,
2270 : : [989] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2271 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2272 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2273 : : RTE_PTYPE_INNER_L4_UDP,
2274 : : [990] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2275 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2276 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2277 : : RTE_PTYPE_INNER_L4_TCP,
2278 : : [986] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2279 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2280 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2281 : : RTE_PTYPE_INNER_L4_SCTP,
2282 : : [985] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2283 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2284 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2285 : : RTE_PTYPE_INNER_L4_ICMP,
2286 : :
2287 : : /* IPv6 > UDP -> GRE -> MAC -> PAY */
2288 : : [1008] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2289 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2290 : : /* IPv6 -> UDP -> GRE -> MAC -> IPv4 */
2291 : : [1007] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2292 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2293 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2294 : : RTE_PTYPE_INNER_L4_FRAG,
2295 : : [1006] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2296 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2297 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2298 : : RTE_PTYPE_INNER_L4_NONFRAG,
2299 : : [1009] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2300 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2301 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2302 : : RTE_PTYPE_INNER_L4_UDP,
2303 : : [1010] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2304 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2305 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2306 : : RTE_PTYPE_INNER_L4_TCP,
2307 : : [1005] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2308 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2309 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2310 : : RTE_PTYPE_INNER_L4_SCTP,
2311 : : [1004] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2312 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2313 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2314 : : RTE_PTYPE_INNER_L4_ICMP,
2315 : : /* IPv6 -> UDP -> GRE -> MAC -> IPv6 */
2316 : : [1001] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2317 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2318 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2319 : : RTE_PTYPE_INNER_L4_FRAG,
2320 : : [1000] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2321 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2322 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2323 : : RTE_PTYPE_INNER_L4_NONFRAG,
2324 : : [1002] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2325 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2326 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2327 : : RTE_PTYPE_INNER_L4_UDP,
2328 : : [1003] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2329 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2330 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2331 : : RTE_PTYPE_INNER_L4_TCP,
2332 : : [999] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2333 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2334 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2335 : : RTE_PTYPE_INNER_L4_SCTP,
2336 : : [998] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2337 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2338 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2339 : : RTE_PTYPE_INNER_L4_ICMP,
2340 : :
2341 : : /* IPv4 -> UDP -> GRE -> MAC -> PAY */
2342 : : [1021] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2343 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2344 : : /* IPv4 -> UDP -> GRE -> MAC -> IPv4 */
2345 : : [1020] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2346 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2347 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2348 : : RTE_PTYPE_INNER_L4_FRAG,
2349 : : [1019] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2350 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2351 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2352 : : RTE_PTYPE_INNER_L4_NONFRAG,
2353 : : [1022] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2354 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2355 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2356 : : RTE_PTYPE_INNER_L4_UDP,
2357 : : [1023] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2358 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2359 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2360 : : RTE_PTYPE_INNER_L4_TCP,
2361 : : [1018] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2362 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2363 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2364 : : RTE_PTYPE_INNER_L4_SCTP,
2365 : : [1017] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2366 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2367 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2368 : : RTE_PTYPE_INNER_L4_ICMP,
2369 : : /* IPv4 -> UDP -> GRE -> MAC -> IPv6 */
2370 : : [1014] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2371 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2372 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2373 : : RTE_PTYPE_INNER_L4_FRAG,
2374 : : [1013] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2375 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2376 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2377 : : RTE_PTYPE_INNER_L4_NONFRAG,
2378 : : [1015] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2379 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2380 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2381 : : RTE_PTYPE_INNER_L4_UDP,
2382 : : [1016] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2383 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2384 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2385 : : RTE_PTYPE_INNER_L4_TCP,
2386 : : [1012] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2387 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2388 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2389 : : RTE_PTYPE_INNER_L4_SCTP,
2390 : : [1011] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2391 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2392 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2393 : : RTE_PTYPE_INNER_L4_ICMP,
2394 : : };
2395 : : const uint32_t *
2396 : 0 : sxe2_dev_supported_ptypes_get(struct rte_eth_dev *dev, size_t *no_of_elements)
2397 : : {
2398 : 0 : const uint32_t *ret = NULL;
2399 : :
2400 : 0 : static const uint32_t ptypes[] = {
2401 : : RTE_PTYPE_L2_ETHER,
2402 : : RTE_PTYPE_L2_ETHER_TIMESYNC,
2403 : : RTE_PTYPE_L2_ETHER_LLDP,
2404 : : RTE_PTYPE_L2_ETHER_ARP,
2405 : : RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
2406 : : RTE_PTYPE_L3_IPV6_EXT_UNKNOWN,
2407 : : RTE_PTYPE_L4_FRAG,
2408 : : RTE_PTYPE_L4_ICMP,
2409 : : RTE_PTYPE_L4_NONFRAG,
2410 : : RTE_PTYPE_L4_SCTP,
2411 : : RTE_PTYPE_L4_TCP,
2412 : : RTE_PTYPE_L4_UDP,
2413 : : RTE_PTYPE_TUNNEL_GRENAT,
2414 : : RTE_PTYPE_TUNNEL_IP,
2415 : : RTE_PTYPE_INNER_L2_ETHER,
2416 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN,
2417 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN,
2418 : : RTE_PTYPE_INNER_L4_FRAG,
2419 : : RTE_PTYPE_INNER_L4_ICMP,
2420 : : RTE_PTYPE_INNER_L4_NONFRAG,
2421 : : RTE_PTYPE_INNER_L4_SCTP,
2422 : : RTE_PTYPE_INNER_L4_TCP,
2423 : : RTE_PTYPE_INNER_L4_UDP,
2424 : : RTE_PTYPE_UNKNOWN
2425 : : };
2426 : :
2427 [ # # ]: 0 : if (dev->rx_pkt_burst != NULL) {
2428 : 0 : *no_of_elements = RTE_DIM(ptypes);
2429 : 0 : ret = ptypes;
2430 : : } else {
2431 : : ret = NULL;
2432 : : }
2433 : :
2434 : 0 : return ret;
2435 : : }
|