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 : 0 : tx_mode_flags = vec_flags;
323 : : #ifdef RTE_ARCH_X86
324 [ # # # # ]: 0 : if ((rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_512) &&
325 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1) &&
326 : 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512BW) == 1)) {
327 : : #ifdef CC_AVX512_SUPPORT
328 : 0 : tx_mode_flags |= SXE2_TX_MODE_VEC_AVX512;
329 : : #else
330 : : PMD_LOG_INFO(TX, "AVX512 is not supported in build env.");
331 : : #endif
332 : : }
333 [ # # # # ]: 0 : if (((tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK) == 0) &&
334 [ # # ]: 0 : ((rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2) == 1) ||
335 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1)) &&
336 : 0 : (rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_256))
337 : 0 : tx_mode_flags |= SXE2_TX_MODE_VEC_AVX2;
338 : :
339 [ # # ]: 0 : if ((0 == (tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK)))
340 : 0 : tx_mode_flags |= SXE2_TX_MODE_VEC_SSE;
341 : : #elif defined(RTE_ARCH_ARM64)
342 : : if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_NEON) == 1)
343 : : tx_mode_flags |= (vec_flags | SXE2_TX_MODE_VEC_NEON);
344 : : #endif
345 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK) {
346 : 0 : ret = sxe2_tx_queues_vec_prepare(dev);
347 [ # # ]: 0 : if (ret != 0)
348 : 0 : tx_mode_flags &= ~SXE2_TX_MODE_VEC_SET_MASK;
349 : : }
350 : : }
351 : 0 : ret = sxe2_tx_simple_batch_support_check(dev, &batch_flags);
352 [ # # # # ]: 0 : if (ret == 0 && batch_flags == SXE2_TX_MODE_SIMPLE_BATCH)
353 : 0 : tx_mode_flags |= SXE2_TX_MODE_SIMPLE_BATCH;
354 : :
355 : 0 : adapter->q_ctxt.tx_mode_flags = tx_mode_flags;
356 : : } else {
357 : 0 : tx_mode_flags = adapter->q_ctxt.tx_mode_flags;
358 : : }
359 : :
360 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_SET_MASK) {
361 : 0 : dev->tx_pkt_prepare = NULL;
362 : : #ifdef RTE_ARCH_X86
363 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_AVX512) {
364 : : #ifdef CC_AVX512_SUPPORT
365 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_OFFLOAD) {
366 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
367 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx512;
368 : : } else {
369 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx512_simple;
370 : : }
371 : : #endif
372 [ # # ]: 0 : } else if (tx_mode_flags & SXE2_TX_MODE_VEC_AVX2) {
373 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_OFFLOAD) {
374 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
375 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx2;
376 : : } else {
377 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_avx2_simple;
378 : : }
379 : : } else {
380 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_VEC_OFFLOAD) {
381 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
382 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_sse;
383 : : } else {
384 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_vec_sse_simple;
385 : : }
386 : : }
387 : : #elif defined(RTE_ARCH_ARM64)
388 : : if (tx_mode_flags & SXE2_TX_MODE_VEC_NEON) {
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 : : #endif
395 : : } else {
396 [ # # ]: 0 : if (tx_mode_flags & SXE2_TX_MODE_SIMPLE_BATCH) {
397 : 0 : dev->tx_pkt_prepare = NULL;
398 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts_simple;
399 : : } else {
400 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
401 : 0 : dev->tx_pkt_burst = sxe2_tx_pkts;
402 : : }
403 : : }
404 : : }
405 : :
406 : : static const struct {
407 : : eth_tx_burst_t tx_burst;
408 : : const char *info;
409 : : } sxe2_tx_burst_infos[] = {
410 : : { sxe2_tx_pkts, "Scalar" },
411 : : #ifdef RTE_ARCH_X86
412 : : #ifdef CC_AVX512_SUPPORT
413 : : { sxe2_tx_pkts_vec_avx512,
414 : : "Vector AVX512" },
415 : : { sxe2_tx_pkts_vec_avx512_simple,
416 : : "Vector AVX512 Simple" },
417 : : #endif
418 : : { sxe2_tx_pkts_vec_avx2,
419 : : "Vector AVX2" },
420 : : { sxe2_tx_pkts_vec_avx2_simple,
421 : : "Vector AVX2 Simple" },
422 : : { sxe2_tx_pkts_vec_sse,
423 : : "Vector SSE" },
424 : : { sxe2_tx_pkts_vec_sse_simple,
425 : : "Vector SSE Simple" },
426 : : #endif
427 : : #ifdef RTE_ARCH_ARM64
428 : : { sxe2_tx_pkts_vec_neon,
429 : : "Vector NEON" },
430 : : { sxe2_tx_pkts_vec_neon_simple,
431 : : "Vector NEON Simple" },
432 : : #endif
433 : : };
434 : :
435 : 0 : int32_t sxe2_tx_burst_mode_get(struct rte_eth_dev *dev,
436 : : __rte_unused uint16_t queue_id, struct rte_eth_burst_mode *mode)
437 : : {
438 : 0 : eth_tx_burst_t pkt_burst = dev->tx_pkt_burst;
439 : 0 : int32_t ret = -EINVAL;
440 : 0 : uint32_t i;
441 : 0 : uint32_t size;
442 : :
443 : 0 : size = RTE_DIM(sxe2_tx_burst_infos);
444 [ # # ]: 0 : for (i = 0; i < size; ++i) {
445 [ # # ]: 0 : if (pkt_burst == sxe2_tx_burst_infos[i].tx_burst) {
446 : 0 : snprintf(mode->info, sizeof(mode->info), "%s",
447 : 0 : sxe2_tx_burst_infos[i].info);
448 : 0 : ret = 0;
449 : 0 : break;
450 : : }
451 : : }
452 : 0 : return ret;
453 : : }
454 : :
455 : 0 : static int32_t sxe2_rx_descriptor_status(void *rx_queue, uint16_t offset)
456 : : {
457 : 0 : struct sxe2_rx_queue *rxq = (struct sxe2_rx_queue *)rx_queue;
458 : 0 : volatile union sxe2_rx_desc *desc;
459 : 0 : int32_t ret;
460 : :
461 [ # # ]: 0 : if (unlikely(offset >= rxq->ring_depth)) {
462 : 0 : ret = -EINVAL;
463 : 0 : goto l_end;
464 : : }
465 [ # # ]: 0 : if (offset >= rxq->ring_depth - rxq->hold_num) {
466 : 0 : ret = RTE_ETH_RX_DESC_UNAVAIL;
467 : 0 : goto l_end;
468 : : }
469 [ # # ]: 0 : if (rxq->processing_idx + offset >= rxq->ring_depth)
470 : 0 : desc = &rxq->desc_ring[rxq->processing_idx + offset - rxq->ring_depth];
471 : : else
472 : 0 : desc = &rxq->desc_ring[rxq->processing_idx + offset];
473 [ # # ]: 0 : if (rte_le_to_cpu_64(desc->wb.status_err_ptype_len) & SXE2_RX_DESC_STATUS_DD_MASK)
474 : : ret = RTE_ETH_RX_DESC_DONE;
475 : : else
476 : 0 : ret = RTE_ETH_RX_DESC_AVAIL;
477 : 0 : l_end:
478 : 0 : PMD_LOG_DEBUG(RX, "Rx queue desc[%u] status:%d queue_id:%u port_id:%u",
479 : : offset, ret, rxq->queue_id, rxq->port_id);
480 : 0 : return ret;
481 : : }
482 : :
483 : 0 : static int32_t sxe2_rx_queue_count(void *rx_queue)
484 : : {
485 : 0 : struct sxe2_rx_queue *rxq = (struct sxe2_rx_queue *)rx_queue;
486 : 0 : volatile union sxe2_rx_desc *desc;
487 : 0 : uint16_t done_num = 0;
488 : :
489 : 0 : desc = &rxq->desc_ring[rxq->processing_idx];
490 [ # # ]: 0 : while ((done_num < rxq->ring_depth) &&
491 [ # # ]: 0 : (rte_le_to_cpu_64(desc->wb.status_err_ptype_len) &
492 : : SXE2_RX_DESC_STATUS_DD_MASK)) {
493 : 0 : done_num += SXE2_RX_QUEUE_CHECK_INTERVAL_NUM;
494 [ # # ]: 0 : if (rxq->processing_idx + done_num >= rxq->ring_depth)
495 : 0 : desc = &rxq->desc_ring[rxq->processing_idx + done_num - rxq->ring_depth];
496 : : else
497 : 0 : desc += SXE2_RX_QUEUE_CHECK_INTERVAL_NUM;
498 : : }
499 : 0 : PMD_LOG_DEBUG(RX, "Rx queue done desc count:%u queue_id:%u port_id:%u",
500 : : done_num, rxq->queue_id, rxq->port_id);
501 : 0 : return done_num;
502 : : }
503 : :
504 : 0 : void sxe2_rx_mode_func_set(struct rte_eth_dev *dev)
505 : : {
506 : 0 : struct sxe2_adapter *adapter = SXE2_DEV_PRIVATE_TO_ADAPTER(dev);
507 : 0 : uint32_t rx_mode_flags = 0;
508 : 0 : int32_t ret;
509 : 0 : uint32_t vec_flags = 0;
510 : 0 : PMD_INIT_FUNC_TRACE();
511 : :
512 [ # # ]: 0 : if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
513 : 0 : ret = sxe2_rx_vec_support_check(dev, &vec_flags);
514 [ # # # # ]: 0 : if (ret == 0 &&
515 : 0 : rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128) {
516 : 0 : rx_mode_flags = vec_flags;
517 : : #ifdef RTE_ARCH_X86
518 [ # # # # ]: 0 : if ((rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_512) &&
519 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1) &&
520 : 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512BW) == 1)) {
521 : : #ifdef CC_AVX512_SUPPORT
522 : 0 : rx_mode_flags |= SXE2_RX_MODE_VEC_AVX512;
523 : : #else
524 : : PMD_LOG_INFO(RX, "AVX512 support detected but not enabled");
525 : : #endif
526 : : }
527 [ # # # # ]: 0 : if (((rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) == 0) &&
528 [ # # ]: 0 : ((rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2) == 1) ||
529 [ # # ]: 0 : (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1)) &&
530 : 0 : (rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_256))
531 : 0 : rx_mode_flags |= SXE2_RX_MODE_VEC_AVX2;
532 : :
533 [ # # # # ]: 0 : if (((rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) == 0) &&
534 : 0 : rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128)
535 : 0 : rx_mode_flags |= SXE2_RX_MODE_VEC_SSE;
536 : :
537 : : #elif defined(RTE_ARCH_ARM64)
538 : : if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_NEON) == 1) {
539 : : rx_mode_flags |= (vec_flags | SXE2_RX_MODE_VEC_NEON);
540 : : }
541 : : #endif
542 [ # # ]: 0 : if ((rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) != 0) {
543 : 0 : ret = sxe2_rx_queues_vec_prepare(dev);
544 [ # # ]: 0 : if (ret != 0)
545 : 0 : rx_mode_flags &= ~SXE2_RX_MODE_VEC_SET_MASK;
546 : : }
547 : : }
548 : 0 : adapter->q_ctxt.rx_mode_flags = rx_mode_flags;
549 : : } else {
550 : 0 : rx_mode_flags = adapter->q_ctxt.rx_mode_flags;
551 : : }
552 : :
553 : : #ifdef RTE_ARCH_X86
554 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) {
555 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_AVX512) {
556 : : #ifdef CC_AVX512_SUPPORT
557 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_OFFLOAD)
558 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx512_offload;
559 : : else
560 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx512;
561 : : #endif
562 [ # # ]: 0 : } else if (rx_mode_flags & SXE2_RX_MODE_VEC_AVX2) {
563 [ # # ]: 0 : if (rx_mode_flags & SXE2_RX_MODE_VEC_OFFLOAD)
564 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx2_offload;
565 : : else
566 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_avx2;
567 : : } else {
568 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_sse_offload;
569 : : }
570 : 0 : return;
571 : : }
572 : : #elif defined(RTE_ARCH_ARM64)
573 : : if (rx_mode_flags & SXE2_RX_MODE_VEC_SET_MASK) {
574 : : if (rx_mode_flags & SXE2_RX_MODE_VEC_OFFLOAD)
575 : : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_neon_offload;
576 : : else
577 : : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_vec_neon;
578 : : return;
579 : : }
580 : : #endif
581 [ # # ]: 0 : if (sxe2_rx_offload_en_check(dev, RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT))
582 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered_split;
583 : : else
584 : 0 : dev->rx_pkt_burst = sxe2_rx_pkts_scattered;
585 : : }
586 : :
587 : : static const struct {
588 : : eth_rx_burst_t rx_burst;
589 : : const char *info;
590 : : } sxe2_rx_burst_infos[] = {
591 : : { sxe2_rx_pkts_scattered,
592 : : "Scalar Scattered" },
593 : : { sxe2_rx_pkts_scattered_split,
594 : : "Scalar Scattered split" },
595 : : #ifdef RTE_ARCH_X86
596 : : #ifdef CC_AVX512_SUPPORT
597 : : { sxe2_rx_pkts_scattered_vec_avx512,
598 : : "Vector AVX512 Scattered" },
599 : : { sxe2_rx_pkts_scattered_vec_avx512_offload,
600 : : "Offload Vector AVX512 Scattered" },
601 : : #endif
602 : : { sxe2_rx_pkts_scattered_vec_avx2,
603 : : "Vector AVX2 Scattered" },
604 : : { sxe2_rx_pkts_scattered_vec_avx2_offload,
605 : : "Offload Vector AVX2 Scattered" },
606 : : { sxe2_rx_pkts_scattered_vec_sse_offload,
607 : : "Vector SSE Scattered" },
608 : : #endif
609 : : #ifdef RTE_ARCH_ARM64
610 : : { sxe2_rx_pkts_scattered_vec_neon,
611 : : "Vector NEON Scattered" },
612 : : { sxe2_rx_pkts_scattered_vec_neon_offload,
613 : : "Offload Vector NEON Scattered" },
614 : : #endif
615 : : };
616 : :
617 : 0 : int32_t sxe2_rx_burst_mode_get(struct rte_eth_dev *dev,
618 : : __rte_unused uint16_t queue_id,
619 : : struct rte_eth_burst_mode *mode)
620 : : {
621 : 0 : eth_rx_burst_t pkt_burst = dev->rx_pkt_burst;
622 : 0 : int32_t ret = -EINVAL;
623 : 0 : uint32_t i, size;
624 : :
625 : 0 : size = RTE_DIM(sxe2_rx_burst_infos);
626 [ # # ]: 0 : for (i = 0; i < size; ++i) {
627 [ # # ]: 0 : if (pkt_burst == sxe2_rx_burst_infos[i].rx_burst) {
628 : 0 : snprintf(mode->info, sizeof(mode->info), "%s",
629 : 0 : sxe2_rx_burst_infos[i].info);
630 : 0 : ret = 0;
631 : 0 : break;
632 : : }
633 : : }
634 : 0 : return ret;
635 : : }
636 : :
637 : 0 : void sxe2_set_common_function(struct rte_eth_dev *dev)
638 : : {
639 : 0 : PMD_INIT_FUNC_TRACE();
640 : 0 : dev->rx_queue_count = sxe2_rx_queue_count;
641 : 0 : dev->rx_descriptor_status = sxe2_rx_descriptor_status;
642 : :
643 : 0 : dev->tx_descriptor_status = sxe2_tx_descriptor_status;
644 : 0 : dev->tx_pkt_prepare = sxe2_tx_pkts_prepare;
645 : 0 : }
646 : :
647 : : const alignas(RTE_CACHE_LINE_SIZE) uint32_t sxe2_ptype_tbl[SXE2_MAX_PTYPE_NUM] = {
648 : : /* [0] reserved */
649 : : [1] = RTE_PTYPE_L2_ETHER,
650 : : [2] = RTE_PTYPE_L2_ETHER_TIMESYNC,
651 : : /* [3] - [5] reserved */
652 : : [6] = RTE_PTYPE_L2_ETHER_LLDP,
653 : : /* ECP */
654 : : [7] = RTE_PTYPE_UNKNOWN,
655 : : /* [8] - [9] reserved */
656 : : /* EAPol */
657 : : [10] = RTE_PTYPE_UNKNOWN,
658 : : [11] = RTE_PTYPE_L2_ETHER_ARP,
659 : : /* [12] - [21] reserved */
660 : :
661 : : /* Non tunneled IPv4 */
662 : : [22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
663 : : RTE_PTYPE_L4_FRAG,
664 : : [23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
665 : : RTE_PTYPE_L4_NONFRAG,
666 : : [24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
667 : : RTE_PTYPE_L4_UDP,
668 : : /* [25] reserved */
669 : : [26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
670 : : RTE_PTYPE_L4_TCP,
671 : : [27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
672 : : RTE_PTYPE_L4_SCTP,
673 : : [28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
674 : : RTE_PTYPE_L4_ICMP,
675 : :
676 : : /* IPv4 --> IPv4 */
677 : : [29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
678 : : RTE_PTYPE_TUNNEL_IP |
679 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
680 : : RTE_PTYPE_INNER_L4_FRAG,
681 : : [30] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
682 : : RTE_PTYPE_TUNNEL_IP |
683 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
684 : : RTE_PTYPE_INNER_L4_NONFRAG,
685 : : [31] = 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_UDP,
689 : : /* [32] reserved */
690 : : [33] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
691 : : RTE_PTYPE_TUNNEL_IP |
692 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
693 : : RTE_PTYPE_INNER_L4_TCP,
694 : : [34] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
695 : : RTE_PTYPE_TUNNEL_IP |
696 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
697 : : RTE_PTYPE_INNER_L4_SCTP,
698 : : [35] = 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_ICMP,
702 : :
703 : : /* IPv4 --> IPv6 */
704 : : [36] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
705 : : RTE_PTYPE_TUNNEL_IP |
706 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
707 : : RTE_PTYPE_INNER_L4_FRAG,
708 : : [37] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
709 : : RTE_PTYPE_TUNNEL_IP |
710 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
711 : : RTE_PTYPE_INNER_L4_NONFRAG,
712 : : [38] = 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_UDP,
716 : : /* [39] reserved */
717 : : [40] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
718 : : RTE_PTYPE_TUNNEL_IP |
719 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
720 : : RTE_PTYPE_INNER_L4_TCP,
721 : : [41] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
722 : : RTE_PTYPE_TUNNEL_IP |
723 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
724 : : RTE_PTYPE_INNER_L4_SCTP,
725 : : [42] = 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_ICMP,
729 : :
730 : : /* IPv4 --> GRE/GENEVE/VXLAN */
731 : : [43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
732 : : RTE_PTYPE_TUNNEL_GRENAT,
733 : :
734 : : /* IPv4 --> GRE/GENEVE/VXLAN --> IPv4 */
735 : : [44] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
736 : : RTE_PTYPE_TUNNEL_GRENAT |
737 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
738 : : RTE_PTYPE_INNER_L4_FRAG,
739 : : [45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
740 : : RTE_PTYPE_TUNNEL_GRENAT |
741 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
742 : : RTE_PTYPE_INNER_L4_NONFRAG,
743 : : [46] = 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_UDP,
747 : : /* [47] reserved */
748 : : [48] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
749 : : RTE_PTYPE_TUNNEL_GRENAT |
750 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
751 : : RTE_PTYPE_INNER_L4_TCP,
752 : : [49] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
753 : : RTE_PTYPE_TUNNEL_GRENAT |
754 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
755 : : RTE_PTYPE_INNER_L4_SCTP,
756 : : [50] = 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_ICMP,
760 : :
761 : : /* IPv4 --> GRE/GENEVE/VXLAN --> IPv6 */
762 : : [51] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
763 : : RTE_PTYPE_TUNNEL_GRENAT |
764 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
765 : : RTE_PTYPE_INNER_L4_FRAG,
766 : : [52] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
767 : : RTE_PTYPE_TUNNEL_GRENAT |
768 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
769 : : RTE_PTYPE_INNER_L4_NONFRAG,
770 : : [53] = 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_UDP,
774 : : /* [54] reserved */
775 : : [55] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
776 : : RTE_PTYPE_TUNNEL_GRENAT |
777 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
778 : : RTE_PTYPE_INNER_L4_TCP,
779 : : [56] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
780 : : RTE_PTYPE_TUNNEL_GRENAT |
781 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
782 : : RTE_PTYPE_INNER_L4_SCTP,
783 : : [57] = 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_ICMP,
787 : :
788 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC */
789 : : [58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
790 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
791 : :
792 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC --> IPv4 */
793 : : [59] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
794 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
795 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
796 : : RTE_PTYPE_INNER_L4_FRAG,
797 : : [60] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
798 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
799 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
800 : : RTE_PTYPE_INNER_L4_NONFRAG,
801 : : [61] = 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_UDP,
805 : : /* [62] reserved */
806 : : [63] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
807 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
808 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
809 : : RTE_PTYPE_INNER_L4_TCP,
810 : : [64] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
811 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
812 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
813 : : RTE_PTYPE_INNER_L4_SCTP,
814 : : [65] = 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_ICMP,
818 : :
819 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC --> IPv6 */
820 : : [66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
821 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
822 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
823 : : RTE_PTYPE_INNER_L4_FRAG,
824 : : [67] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
825 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
826 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
827 : : RTE_PTYPE_INNER_L4_NONFRAG,
828 : : [68] = 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_UDP,
832 : : /* [69] reserved */
833 : : [70] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
834 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
835 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
836 : : RTE_PTYPE_INNER_L4_TCP,
837 : : [71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
838 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
839 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
840 : : RTE_PTYPE_INNER_L4_SCTP,
841 : : [72] = 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_ICMP,
845 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC/VLAN */
846 : : [73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
847 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
848 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv4 */
849 : : [74] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
850 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
851 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
852 : : RTE_PTYPE_INNER_L4_FRAG,
853 : : [75] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
854 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
855 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
856 : : RTE_PTYPE_INNER_L4_NONFRAG,
857 : : [76] = 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 | RTE_PTYPE_INNER_L4_UDP,
860 : : /* [77] reserved */
861 : : [78] = 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 | RTE_PTYPE_INNER_L4_TCP,
864 : : [79] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
865 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
866 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
867 : : [80] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
868 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
869 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
870 : : /* IPv4 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv6 */
871 : : [81] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
872 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
873 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_FRAG,
874 : : [82] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
875 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
876 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
877 : : RTE_PTYPE_INNER_L4_NONFRAG,
878 : : [83] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
879 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
880 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP,
881 : : /* [64] reserved */
882 : : [85] = 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_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP,
885 : : [86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
886 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
887 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
888 : : [87] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
889 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
890 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
891 : : /* Non tunneled IPv6 */
892 : : [88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
893 : : RTE_PTYPE_L4_FRAG,
894 : : [89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
895 : : RTE_PTYPE_L4_NONFRAG,
896 : : [90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
897 : : RTE_PTYPE_L4_UDP,
898 : : /* [91] reserved */
899 : : [92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
900 : : RTE_PTYPE_L4_TCP,
901 : : [93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
902 : : RTE_PTYPE_L4_SCTP,
903 : : [94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
904 : : RTE_PTYPE_L4_ICMP,
905 : :
906 : : /* IPv6 --> IPv4 */
907 : : [95] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
908 : : RTE_PTYPE_TUNNEL_IP |
909 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
910 : : RTE_PTYPE_INNER_L4_FRAG,
911 : : [96] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
912 : : RTE_PTYPE_TUNNEL_IP |
913 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
914 : : RTE_PTYPE_INNER_L4_NONFRAG,
915 : : [97] = 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_UDP,
919 : : /* [98] reserved */
920 : : [99] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
921 : : RTE_PTYPE_TUNNEL_IP |
922 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
923 : : RTE_PTYPE_INNER_L4_TCP,
924 : : [100] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
925 : : RTE_PTYPE_TUNNEL_IP |
926 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
927 : : RTE_PTYPE_INNER_L4_SCTP,
928 : : [101] = 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_ICMP,
932 : :
933 : : /* IPv6 --> IPv6 */
934 : : [102] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
935 : : RTE_PTYPE_TUNNEL_IP |
936 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
937 : : RTE_PTYPE_INNER_L4_FRAG,
938 : : [103] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
939 : : RTE_PTYPE_TUNNEL_IP |
940 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
941 : : RTE_PTYPE_INNER_L4_NONFRAG,
942 : : [104] = 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_UDP,
946 : : /* [105] reserved */
947 : : [106] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
948 : : RTE_PTYPE_TUNNEL_IP |
949 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
950 : : RTE_PTYPE_INNER_L4_TCP,
951 : : [107] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
952 : : RTE_PTYPE_TUNNEL_IP |
953 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
954 : : RTE_PTYPE_INNER_L4_SCTP,
955 : : [108] = 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_ICMP,
959 : :
960 : : /* IPv6 --> GRE/GENEVE/VXLAN */
961 : : [109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
962 : : RTE_PTYPE_TUNNEL_GRENAT,
963 : :
964 : : /* IPv6 --> GRE/GENEVE/VXLAN --> IPv4 */
965 : : [110] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
966 : : RTE_PTYPE_TUNNEL_GRENAT |
967 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
968 : : RTE_PTYPE_INNER_L4_FRAG,
969 : : [111] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
970 : : RTE_PTYPE_TUNNEL_GRENAT |
971 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
972 : : RTE_PTYPE_INNER_L4_NONFRAG,
973 : : [112] = 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_UDP,
977 : : /* [113] reserved */
978 : : [114] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
979 : : RTE_PTYPE_TUNNEL_GRENAT |
980 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
981 : : RTE_PTYPE_INNER_L4_TCP,
982 : : [115] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
983 : : RTE_PTYPE_TUNNEL_GRENAT |
984 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
985 : : RTE_PTYPE_INNER_L4_SCTP,
986 : : [116] = 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_ICMP,
990 : :
991 : : /* IPv6 --> GRE/GENEVE/VXLAN --> IPv6 */
992 : : [117] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
993 : : RTE_PTYPE_TUNNEL_GRENAT |
994 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
995 : : RTE_PTYPE_INNER_L4_FRAG,
996 : : [118] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
997 : : RTE_PTYPE_TUNNEL_GRENAT |
998 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
999 : : RTE_PTYPE_INNER_L4_NONFRAG,
1000 : : [119] = 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_UDP,
1004 : : /* [120] reserved */
1005 : : [121] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1006 : : RTE_PTYPE_TUNNEL_GRENAT |
1007 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1008 : : RTE_PTYPE_INNER_L4_TCP,
1009 : : [122] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1010 : : RTE_PTYPE_TUNNEL_GRENAT |
1011 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1012 : : RTE_PTYPE_INNER_L4_SCTP,
1013 : : [123] = 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_ICMP,
1017 : :
1018 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC */
1019 : : [124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1020 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
1021 : :
1022 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC --> IPv4 */
1023 : : [125] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1024 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1025 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1026 : : RTE_PTYPE_INNER_L4_FRAG,
1027 : : [126] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1028 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1029 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1030 : : RTE_PTYPE_INNER_L4_NONFRAG,
1031 : : [127] = 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_UDP,
1035 : : /* [128] reserved */
1036 : : [129] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1037 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1038 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1039 : : RTE_PTYPE_INNER_L4_TCP,
1040 : : [130] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1041 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1042 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1043 : : RTE_PTYPE_INNER_L4_SCTP,
1044 : : [131] = 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_ICMP,
1048 : :
1049 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC --> IPv6 */
1050 : : [132] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1051 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1052 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1053 : : RTE_PTYPE_INNER_L4_FRAG,
1054 : : [133] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1055 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1056 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1057 : : RTE_PTYPE_INNER_L4_NONFRAG,
1058 : : [134] = 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_UDP,
1062 : : /* [135] reserved */
1063 : : [136] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1064 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1065 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1066 : : RTE_PTYPE_INNER_L4_TCP,
1067 : : [137] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1068 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1069 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1070 : : RTE_PTYPE_INNER_L4_SCTP,
1071 : : [138] = 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_ICMP,
1075 : :
1076 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC/VLAN */
1077 : : [139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1078 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
1079 : :
1080 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv4 */
1081 : : [140] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1082 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1083 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1084 : : RTE_PTYPE_INNER_L4_FRAG,
1085 : : [141] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1086 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1087 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1088 : : RTE_PTYPE_INNER_L4_NONFRAG,
1089 : : [142] = 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 | RTE_PTYPE_INNER_L4_UDP,
1092 : : /* [143] reserved */
1093 : : [144] = 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 | RTE_PTYPE_INNER_L4_TCP,
1096 : : [145] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1097 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1098 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
1099 : : [146] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1100 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1101 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
1102 : :
1103 : : /* IPv6 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv6 */
1104 : : [147] = 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_IPV6_EXT_UNKNOWN |
1107 : : RTE_PTYPE_INNER_L4_FRAG,
1108 : : [148] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1109 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1110 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1111 : : RTE_PTYPE_INNER_L4_NONFRAG,
1112 : : [149] = 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 | RTE_PTYPE_INNER_L4_UDP,
1115 : : /* [150] reserved */
1116 : : [151] = 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_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP,
1119 : : [152] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1120 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1121 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP,
1122 : : [153] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1123 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1124 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_ICMP,
1125 : : /* [154] - [159] reserved */
1126 : : /* IPSec */
1127 : : [160] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1128 : : RTE_PTYPE_TUNNEL_ESP,
1129 : : [161] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1130 : : RTE_PTYPE_TUNNEL_ESP,
1131 : : /* AH */
1132 : : [162] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1133 : : RTE_PTYPE_L4_NONFRAG,
1134 : : [163] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1135 : : RTE_PTYPE_L4_NONFRAG,
1136 : : /* NAT-T-ESP */
1137 : : [164] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1138 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1139 : : [165] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1140 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1141 : : /* SDN-ESP */
1142 : : [166] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1143 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1144 : : [167] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1145 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP,
1146 : : /* [168] - [271] reserved */
1147 : : /* IPV4 --> VRRP */
1148 : : [272] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1149 : : RTE_PTYPE_L4_NONFRAG,
1150 : : /* IPV4 --> OSPF */
1151 : : [273] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1152 : : RTE_PTYPE_L4_NONFRAG,
1153 : : /* IPV6 --> VRRP */
1154 : : [274] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1155 : : RTE_PTYPE_L4_NONFRAG,
1156 : : /* IPV6 --> VRRP */
1157 : : [275] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1158 : : RTE_PTYPE_L4_NONFRAG,
1159 : : /* ATAoE */
1160 : : [276] = RTE_PTYPE_UNKNOWN,
1161 : : /* Control */
1162 : : [278] = RTE_PTYPE_UNKNOWN,
1163 : : /* [279] - [324] reserved */
1164 : : /* GTP */
1165 : : [325] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1166 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1167 : : [326] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1168 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1169 : : [327] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1170 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1171 : : [328] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1172 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC,
1173 : : [329] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1174 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU,
1175 : : [330] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1176 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU,
1177 : : [331] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1178 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1179 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1180 : : RTE_PTYPE_INNER_L4_FRAG,
1181 : : [332] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1182 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1183 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1184 : : RTE_PTYPE_INNER_L4_NONFRAG,
1185 : : [333] = 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_UDP,
1189 : : [334] = 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_TCP,
1193 : : [335] = 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_ICMP,
1197 : : [336] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1198 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1199 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1200 : : RTE_PTYPE_INNER_L4_FRAG,
1201 : : [337] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1202 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1203 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1204 : : RTE_PTYPE_INNER_L4_NONFRAG,
1205 : : [338] = 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_UDP,
1209 : : [339] = 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_TCP,
1213 : : [340] = 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_ICMP,
1217 : : [341] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1218 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1219 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1220 : : RTE_PTYPE_INNER_L4_FRAG,
1221 : : [342] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1222 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1223 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1224 : : RTE_PTYPE_INNER_L4_NONFRAG,
1225 : : [343] = 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_UDP,
1229 : : [344] = 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_TCP,
1233 : : [345] = 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_ICMP,
1237 : : [346] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1238 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1239 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1240 : : RTE_PTYPE_INNER_L4_FRAG,
1241 : : [347] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1242 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1243 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1244 : : RTE_PTYPE_INNER_L4_NONFRAG,
1245 : : [348] = 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_UDP,
1249 : : [349] = 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_TCP,
1253 : : [350] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1254 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
1255 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1256 : : RTE_PTYPE_INNER_L4_ICMP,
1257 : : /* PFCP */
1258 : : [351] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1259 : : RTE_PTYPE_L4_UDP,
1260 : : [352] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1261 : : RTE_PTYPE_L4_UDP,
1262 : : [353] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1263 : : RTE_PTYPE_L4_UDP,
1264 : : [354] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1265 : : RTE_PTYPE_L4_UDP,
1266 : : /* [355] - [359] reserved */
1267 : : /* L2TPv3 */
1268 : : [360] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1269 : : RTE_PTYPE_TUNNEL_L2TP,
1270 : : [361] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1271 : : RTE_PTYPE_TUNNEL_L2TP,
1272 : : /* [362] - [370] reserved */
1273 : : /* eCPRI */
1274 : : [371] = RTE_PTYPE_UNKNOWN,
1275 : : [381] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1276 : : RTE_PTYPE_L4_UDP,
1277 : : [391] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1278 : : RTE_PTYPE_L4_UDP,
1279 : : [396] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1280 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1281 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1282 : : RTE_PTYPE_INNER_L4_NONFRAG,
1283 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, IGMP */
1284 : : [397] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1285 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1286 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1287 : : RTE_PTYPE_INNER_L4_NONFRAG,
1288 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, EIGRP */
1289 : : [398] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1290 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1291 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1292 : : RTE_PTYPE_INNER_L4_NONFRAG,
1293 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, EIGRP */
1294 : : [399] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1295 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1296 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1297 : : RTE_PTYPE_INNER_L4_NONFRAG,
1298 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, PIM */
1299 : : [400] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1300 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1301 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1302 : : RTE_PTYPE_INNER_L4_NONFRAG,
1303 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, PIM */
1304 : : [401] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1305 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1306 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1307 : : RTE_PTYPE_INNER_L4_NONFRAG,
1308 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, IGMP */
1309 : : [402] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1310 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1311 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1312 : : RTE_PTYPE_INNER_L4_NONFRAG,
1313 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, IGMP */
1314 : : [403] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1315 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1316 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1317 : : RTE_PTYPE_INNER_L4_NONFRAG,
1318 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, EIGRP */
1319 : : [404] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1320 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1321 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1322 : : RTE_PTYPE_INNER_L4_NONFRAG,
1323 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, EIGRP */
1324 : : [405] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1325 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1326 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1327 : : RTE_PTYPE_INNER_L4_NONFRAG,
1328 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, PIM */
1329 : : [406] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1330 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1331 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1332 : : RTE_PTYPE_INNER_L4_NONFRAG,
1333 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, PIM */
1334 : : [407] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1335 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1336 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1337 : : RTE_PTYPE_INNER_L4_NONFRAG,
1338 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, VRRP */
1339 : : [408] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1340 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1341 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1342 : : RTE_PTYPE_INNER_L4_NONFRAG,
1343 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, VRRP */
1344 : : [409] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1345 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1346 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1347 : : RTE_PTYPE_INNER_L4_NONFRAG,
1348 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, VRRP */
1349 : : [410] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1350 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1351 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1352 : : RTE_PTYPE_INNER_L4_NONFRAG,
1353 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, VRRP */
1354 : : [411] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1355 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1356 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1357 : : RTE_PTYPE_INNER_L4_NONFRAG,
1358 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, OSPF */
1359 : : [412] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1360 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1361 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1362 : : RTE_PTYPE_INNER_L4_NONFRAG,
1363 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, OSPF */
1364 : : [413] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1365 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1366 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1367 : : RTE_PTYPE_INNER_L4_NONFRAG,
1368 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, OSPF */
1369 : : [414] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1370 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1371 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1372 : : RTE_PTYPE_INNER_L4_NONFRAG,
1373 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, OSPF */
1374 : : [415] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1375 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1376 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1377 : : RTE_PTYPE_INNER_L4_NONFRAG,
1378 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, L2_TP_V3 */
1379 : : [416] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1380 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1381 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1382 : : RTE_PTYPE_INNER_L4_NONFRAG,
1383 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, L2_TP_V3 */
1384 : : [417] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1385 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1386 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1387 : : RTE_PTYPE_INNER_L4_NONFRAG,
1388 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, L2_TP_V3 */
1389 : : [418] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1390 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1391 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1392 : : RTE_PTYPE_INNER_L4_NONFRAG,
1393 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, L2_TP_V3 */
1394 : : [419] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1395 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1396 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1397 : : RTE_PTYPE_INNER_L4_NONFRAG,
1398 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, AH */
1399 : : [420] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1400 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1401 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1402 : : RTE_PTYPE_INNER_L4_NONFRAG,
1403 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, AH */
1404 : : [421] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1405 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1406 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1407 : : RTE_PTYPE_INNER_L4_NONFRAG,
1408 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, AH */
1409 : : [422] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1410 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1411 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1412 : : RTE_PTYPE_INNER_L4_NONFRAG,
1413 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, AH */
1414 : : [423] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1415 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1416 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1417 : : RTE_PTYPE_INNER_L4_NONFRAG,
1418 : : /* MAC, IPv4, UDP, TUN, MAC, IPv4, ESP */
1419 : : [424] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1420 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1421 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1422 : : RTE_PTYPE_INNER_L4_NONFRAG,
1423 : : /* MAC, IPv6, UDP, TUN, MAC, IPv4, ESP */
1424 : : [425] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1425 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1426 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1427 : : RTE_PTYPE_INNER_L4_NONFRAG,
1428 : : /* MAC, IPv4, UDP, TUN, MAC, IPv6, ESP */
1429 : : [426] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1430 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1431 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1432 : : RTE_PTYPE_INNER_L4_NONFRAG,
1433 : : /* MAC, IPv6, UDP, TUN, MAC, IPv6, ESP */
1434 : : [427] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1435 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
1436 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1437 : : RTE_PTYPE_INNER_L4_NONFRAG,
1438 : : /* TP-TUN GTPU */
1439 : : [450] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1440 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1441 : : RTE_PTYPE_INNER_L4_UDP,
1442 : : [451] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1443 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1444 : : RTE_PTYPE_INNER_L4_UDP,
1445 : : [452] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1446 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1447 : : RTE_PTYPE_INNER_L4_UDP,
1448 : : [453] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1449 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1450 : : RTE_PTYPE_INNER_L4_UDP,
1451 : : [454] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1452 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1453 : : RTE_PTYPE_INNER_L4_UDP,
1454 : : [455] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1455 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1456 : : RTE_PTYPE_INNER_L4_UDP,
1457 : : [456] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1458 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1459 : : RTE_PTYPE_INNER_L4_UDP,
1460 : : [457] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1461 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1462 : : RTE_PTYPE_INNER_L4_UDP,
1463 : : [458] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1464 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1465 : : RTE_PTYPE_INNER_L4_UDP,
1466 : : [459] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1467 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1468 : : RTE_PTYPE_INNER_L4_UDP,
1469 : : [460] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1470 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1471 : : RTE_PTYPE_INNER_L4_UDP,
1472 : : [461] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1473 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1474 : : RTE_PTYPE_INNER_L4_UDP,
1475 : : [462] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1476 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1477 : : RTE_PTYPE_INNER_L4_UDP,
1478 : : [463] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1479 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1480 : : RTE_PTYPE_INNER_L4_UDP,
1481 : : [464] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1482 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1483 : : RTE_PTYPE_INNER_L4_UDP,
1484 : : [465] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1485 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1486 : : RTE_PTYPE_INNER_L4_UDP,
1487 : : [466] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1488 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1489 : : RTE_PTYPE_INNER_L4_UDP,
1490 : : [467] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1491 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1492 : : RTE_PTYPE_INNER_L4_UDP,
1493 : : [468] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1494 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1495 : : RTE_PTYPE_INNER_L4_UDP,
1496 : : [469] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1497 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1498 : : RTE_PTYPE_INNER_L4_UDP,
1499 : : [470] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1500 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1501 : : RTE_PTYPE_INNER_L4_UDP,
1502 : : [471] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1503 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1504 : : RTE_PTYPE_INNER_L4_UDP,
1505 : : [472] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1506 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1507 : : RTE_PTYPE_INNER_L4_UDP,
1508 : : [473] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1509 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1510 : : RTE_PTYPE_INNER_L4_UDP,
1511 : : [474] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1512 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1513 : : RTE_PTYPE_INNER_L4_UDP,
1514 : : [475] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1515 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1516 : : RTE_PTYPE_INNER_L4_UDP,
1517 : : [476] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1518 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1519 : : RTE_PTYPE_INNER_L4_UDP,
1520 : : [477] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1521 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1522 : : RTE_PTYPE_INNER_L4_UDP,
1523 : : [478] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1524 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1525 : : RTE_PTYPE_INNER_L4_UDP,
1526 : : [479] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1527 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1528 : : RTE_PTYPE_INNER_L4_UDP,
1529 : : [480] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1530 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1531 : : RTE_PTYPE_INNER_L4_UDP,
1532 : : [481] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1533 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1534 : : RTE_PTYPE_INNER_L4_UDP,
1535 : : [482] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1536 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1537 : : RTE_PTYPE_INNER_L4_UDP,
1538 : : [483] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1539 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1540 : : RTE_PTYPE_INNER_L4_UDP,
1541 : : [484] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1542 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1543 : : RTE_PTYPE_INNER_L4_UDP,
1544 : : [485] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1545 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1546 : : RTE_PTYPE_INNER_L4_UDP,
1547 : : [486] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1548 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1549 : : RTE_PTYPE_INNER_L4_UDP,
1550 : : [487] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1551 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1552 : : RTE_PTYPE_INNER_L4_UDP,
1553 : : [488] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1554 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1555 : : RTE_PTYPE_INNER_L4_UDP,
1556 : : [489] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1557 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1558 : : RTE_PTYPE_INNER_L4_UDP,
1559 : : [490] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1560 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1561 : : RTE_PTYPE_INNER_L4_UDP,
1562 : : [491] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1563 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1564 : : RTE_PTYPE_INNER_L4_UDP,
1565 : : [492] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1566 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1567 : : RTE_PTYPE_INNER_L4_UDP,
1568 : : [493] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1569 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1570 : : RTE_PTYPE_INNER_L4_UDP,
1571 : : [494] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1572 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1573 : : RTE_PTYPE_INNER_L4_UDP,
1574 : : [495] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1575 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1576 : : RTE_PTYPE_INNER_L4_UDP,
1577 : : [496] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1578 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1579 : : RTE_PTYPE_INNER_L4_UDP,
1580 : : [497] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1581 : : RTE_PTYPE_TUNNEL_IP | RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1582 : : RTE_PTYPE_INNER_L4_UDP,
1583 : : /* [498] - [767] reserved */
1584 : : /* L2(NETWORK CPU) */
1585 : : /* ISIS */
1586 : : [768] = RTE_PTYPE_UNKNOWN,
1587 : : /* SDF */
1588 : : [769] = RTE_PTYPE_UNKNOWN,
1589 : : /* PPoE_NEGO */
1590 : : [770] = RTE_PTYPE_L2_ETHER_PPPOE,
1591 : : /* PPoE_PROTOCOL */
1592 : : [771] = RTE_PTYPE_L2_ETHER_PPPOE,
1593 : : [772] = RTE_PTYPE_L2_ETHER_PPPOE,
1594 : : /* LACP */
1595 : : [773] = RTE_PTYPE_UNKNOWN,
1596 : : /* [774] - [775] reserved */
1597 : : /* IPv4 L3(NETWORK CPU) */
1598 : : [776] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1599 : : RTE_PTYPE_L4_IGMP,
1600 : : /* EIGRP */
1601 : : [777] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1602 : : RTE_PTYPE_L4_NONFRAG,
1603 : : /* PIM */
1604 : : [778] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1605 : : RTE_PTYPE_L4_NONFRAG,
1606 : : [779] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1607 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1608 : : [780] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1609 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1610 : : [781] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1611 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1612 : : /* [782] - [783] reserved */
1613 : : /* IPv6 L3(NETWORK CPU) */
1614 : : [784] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1615 : : RTE_PTYPE_L4_IGMP,
1616 : : /* EIGRP */
1617 : : [785] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1618 : : RTE_PTYPE_L4_NONFRAG,
1619 : : /* PIM */
1620 : : [786] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1621 : : RTE_PTYPE_L4_NONFRAG,
1622 : : [787] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1623 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1624 : : [788] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1625 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1626 : : [789] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1627 : : RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP,
1628 : : /* [790] - [791] reserved */
1629 : : /* IPv4 L4(NETWORK CPU) */
1630 : : [792] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1631 : : RTE_PTYPE_L4_TCP,
1632 : : [793] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1633 : : RTE_PTYPE_L4_TCP,
1634 : : [794] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1635 : : RTE_PTYPE_L4_UDP,
1636 : : [795] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1637 : : RTE_PTYPE_L4_UDP,
1638 : : [796] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1639 : : RTE_PTYPE_L4_UDP,
1640 : : [797] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1641 : : RTE_PTYPE_L4_UDP,
1642 : : [798] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1643 : : RTE_PTYPE_L4_UDP,
1644 : : [799] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1645 : : RTE_PTYPE_L4_UDP,
1646 : : [800] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1647 : : RTE_PTYPE_L4_UDP,
1648 : : [801] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1649 : : RTE_PTYPE_L4_UDP,
1650 : : /* [802] - [807] reserved */
1651 : : /* IPv6 L4(NETWORK CPU) */
1652 : : [808] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1653 : : RTE_PTYPE_L4_TCP,
1654 : : [809] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1655 : : RTE_PTYPE_L4_TCP,
1656 : : [810] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1657 : : RTE_PTYPE_L4_UDP,
1658 : : [811] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1659 : : RTE_PTYPE_L4_UDP,
1660 : : [812] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1661 : : RTE_PTYPE_L4_UDP,
1662 : : [813] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1663 : : RTE_PTYPE_L4_UDP,
1664 : : [814] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1665 : : RTE_PTYPE_L4_UDP,
1666 : : [815] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1667 : : RTE_PTYPE_L4_UDP,
1668 : : [816] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1669 : : RTE_PTYPE_L4_UDP,
1670 : : [817] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1671 : : RTE_PTYPE_L4_UDP,
1672 : : /* [818] - [819] reserved */
1673 : : /* IPv6 -> MAC */
1674 : : [820] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1675 : : RTE_PTYPE_L4_NONFRAG,
1676 : : /* IPv6 -> MAC -> IPv4*/
1677 : : [821] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1678 : : RTE_PTYPE_L4_NONFRAG,
1679 : : [822] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1680 : : RTE_PTYPE_L4_NONFRAG,
1681 : : [823] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1682 : : RTE_PTYPE_L4_NONFRAG,
1683 : : [824] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1684 : : RTE_PTYPE_L4_NONFRAG,
1685 : : [825] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1686 : : RTE_PTYPE_L4_NONFRAG,
1687 : : [826] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1688 : : RTE_PTYPE_L4_NONFRAG,
1689 : : /* IPv6 -> MAC -> IPv4*/
1690 : : [827] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1691 : : RTE_PTYPE_L4_NONFRAG,
1692 : : [828] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1693 : : RTE_PTYPE_L4_NONFRAG,
1694 : : [829] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1695 : : RTE_PTYPE_L4_NONFRAG,
1696 : : [830] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1697 : : RTE_PTYPE_L4_NONFRAG,
1698 : : [831] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1699 : : RTE_PTYPE_L4_NONFRAG,
1700 : : [832] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1701 : : RTE_PTYPE_L4_NONFRAG,
1702 : : /* [833] - [834] reserved */
1703 : : /* IPv6 -> MAC/VLAN */
1704 : : [835] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1705 : : RTE_PTYPE_L4_NONFRAG,
1706 : : /* IPv6 -> MAC/VLAN -> IPv4 */
1707 : : [836] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1708 : : RTE_PTYPE_L4_NONFRAG,
1709 : : [837] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1710 : : RTE_PTYPE_L4_NONFRAG,
1711 : : [838] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1712 : : RTE_PTYPE_L4_NONFRAG,
1713 : : [839] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1714 : : RTE_PTYPE_L4_NONFRAG,
1715 : : [840] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1716 : : RTE_PTYPE_L4_NONFRAG,
1717 : : [841] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1718 : : RTE_PTYPE_L4_NONFRAG,
1719 : : /* IPv6 -> MAC/VLAN -> IPv6 */
1720 : : [842] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1721 : : RTE_PTYPE_L4_NONFRAG,
1722 : : [843] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1723 : : RTE_PTYPE_L4_NONFRAG,
1724 : : [844] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1725 : : RTE_PTYPE_L4_NONFRAG,
1726 : : [845] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1727 : : RTE_PTYPE_L4_NONFRAG,
1728 : : [846] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1729 : : RTE_PTYPE_L4_NONFRAG,
1730 : : [847] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1731 : : RTE_PTYPE_L4_NONFRAG,
1732 : :
1733 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> PAY */
1734 : : [878] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1735 : : RTE_PTYPE_TUNNEL_GRENAT,
1736 : :
1737 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> IPv4 */
1738 : : [877] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1739 : : RTE_PTYPE_TUNNEL_GRENAT |
1740 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1741 : : RTE_PTYPE_INNER_L4_FRAG,
1742 : : [876] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1743 : : RTE_PTYPE_TUNNEL_GRENAT |
1744 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1745 : : RTE_PTYPE_INNER_L4_NONFRAG,
1746 : : [879] = 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_UDP,
1750 : : [880] = 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_TCP,
1754 : : [875] = 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_SCTP,
1758 : : [874] = 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_ICMP,
1762 : :
1763 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> IPv6 */
1764 : : [871] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1765 : : RTE_PTYPE_TUNNEL_GRENAT |
1766 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1767 : : RTE_PTYPE_INNER_L4_FRAG,
1768 : : [870] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1769 : : RTE_PTYPE_TUNNEL_GRENAT |
1770 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1771 : : RTE_PTYPE_INNER_L4_NONFRAG,
1772 : : [872] = 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_UDP,
1776 : : [873] = 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_TCP,
1780 : : [869] = 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_SCTP,
1784 : : [868] = 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_ICMP,
1788 : :
1789 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> PAY */
1790 : : [891] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1791 : : RTE_PTYPE_TUNNEL_GRENAT,
1792 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> IPv4 */
1793 : : [890] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1794 : : RTE_PTYPE_TUNNEL_GRENAT |
1795 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1796 : : RTE_PTYPE_INNER_L4_FRAG,
1797 : : [889] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1798 : : RTE_PTYPE_TUNNEL_GRENAT |
1799 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1800 : : RTE_PTYPE_INNER_L4_NONFRAG,
1801 : : [892] = 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_UDP,
1805 : : [893] = 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_TCP,
1809 : : [888] = 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_SCTP,
1813 : : [887] = 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_ICMP,
1817 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> IPv6 */
1818 : : [884] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1819 : : RTE_PTYPE_TUNNEL_GRENAT |
1820 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1821 : : RTE_PTYPE_INNER_L4_FRAG,
1822 : : [883] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1823 : : RTE_PTYPE_TUNNEL_GRENAT |
1824 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1825 : : RTE_PTYPE_INNER_L4_NONFRAG,
1826 : : [885] = 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_UDP,
1830 : : [886] = 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_TCP,
1834 : : [882] = 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_SCTP,
1838 : : [881] = 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_ICMP,
1842 : :
1843 : : /* IPv6 -> UDP -> GRE -> PAY */
1844 : : [904] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1845 : : RTE_PTYPE_TUNNEL_GRENAT,
1846 : : /* IPv6 -> UDP -> GRE -> IPv4 */
1847 : : [903] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1848 : : RTE_PTYPE_TUNNEL_GRENAT |
1849 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1850 : : RTE_PTYPE_INNER_L4_FRAG,
1851 : : [902] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1852 : : RTE_PTYPE_TUNNEL_GRENAT |
1853 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1854 : : RTE_PTYPE_INNER_L4_NONFRAG,
1855 : : [905] = 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_UDP,
1859 : : [906] = 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_TCP,
1863 : : [901] = 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_SCTP,
1867 : : [900] = 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_ICMP,
1871 : : /* IPv6 -> UDP -> GRE -> IPv6 */
1872 : : [897] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1873 : : RTE_PTYPE_TUNNEL_GRENAT |
1874 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1875 : : RTE_PTYPE_INNER_L4_FRAG,
1876 : : [896] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1877 : : RTE_PTYPE_TUNNEL_GRENAT |
1878 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1879 : : RTE_PTYPE_INNER_L4_NONFRAG,
1880 : : [898] = 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_UDP,
1884 : : [899] = 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_TCP,
1888 : : [895] = 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_SCTP,
1892 : : [894] = 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_ICMP,
1896 : :
1897 : : /* IPv4 -> UDP -> GRE -> PAY */
1898 : : [917] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1899 : : RTE_PTYPE_TUNNEL_GRENAT,
1900 : : /* IPv4 -> UDP -> GRE -> IPv4 */
1901 : : [916] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1902 : : RTE_PTYPE_TUNNEL_GRENAT |
1903 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1904 : : RTE_PTYPE_INNER_L4_FRAG,
1905 : : [915] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1906 : : RTE_PTYPE_TUNNEL_GRENAT |
1907 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1908 : : RTE_PTYPE_INNER_L4_NONFRAG,
1909 : : [918] = 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_UDP,
1913 : : [919] = 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_TCP,
1917 : : [914] = 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_SCTP,
1921 : : [913] = 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_ICMP,
1925 : : /* IPv4 -> UDP -> GRE -> IPv6 */
1926 : : [910] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1927 : : RTE_PTYPE_TUNNEL_GRENAT |
1928 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1929 : : RTE_PTYPE_INNER_L4_FRAG,
1930 : : [909] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
1931 : : RTE_PTYPE_TUNNEL_GRENAT |
1932 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1933 : : RTE_PTYPE_INNER_L4_NONFRAG,
1934 : : [911] = 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_UDP,
1938 : : [912] = 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_TCP,
1942 : : [908] = 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_SCTP,
1946 : : [907] = 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_ICMP,
1950 : :
1951 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> PAY */
1952 : : [930] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1953 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
1954 : :
1955 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv4 */
1956 : : [929] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1957 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1958 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1959 : : RTE_PTYPE_INNER_L4_FRAG,
1960 : : [928] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1961 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1962 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
1963 : : RTE_PTYPE_INNER_L4_NONFRAG,
1964 : : [931] = 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_UDP,
1968 : : [932] = 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_TCP,
1972 : : [927] = 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_SCTP,
1976 : : [926] = 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_ICMP,
1980 : :
1981 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv6 */
1982 : : [923] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1983 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1984 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1985 : : RTE_PTYPE_INNER_L4_FRAG,
1986 : : [922] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
1987 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
1988 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
1989 : : RTE_PTYPE_INNER_L4_NONFRAG,
1990 : : [924] = 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_UDP,
1994 : : [925] = 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_TCP,
1998 : : [921] = 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_SCTP,
2002 : : [920] = 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_ICMP,
2006 : :
2007 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> PAY */
2008 : : [943] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2009 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
2010 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv4 */
2011 : : [942] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2012 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2013 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2014 : : RTE_PTYPE_INNER_L4_FRAG,
2015 : : [941] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2016 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2017 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2018 : : RTE_PTYPE_INNER_L4_NONFRAG,
2019 : : [944] = 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_UDP,
2023 : : [945] = 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_TCP,
2027 : : [940] = 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_SCTP,
2031 : : [939] = 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_ICMP,
2035 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv6 */
2036 : : [936] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2037 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2038 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2039 : : RTE_PTYPE_INNER_L4_FRAG,
2040 : : [935] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2041 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2042 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2043 : : RTE_PTYPE_INNER_L4_NONFRAG,
2044 : : [937] = 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_UDP,
2048 : : [938] = 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_TCP,
2052 : : [934] = 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_SCTP,
2056 : : [933] = 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_ICMP,
2060 : :
2061 : : /* IPv6 > UDP -> GRE -> MACVLAN -> PAY */
2062 : : [956] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2063 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
2064 : : /* IPv6 -> UDP -> GRE -> MACVLAN -> IPv4 */
2065 : : [955] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2066 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2067 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2068 : : RTE_PTYPE_INNER_L4_FRAG,
2069 : : [954] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2070 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2071 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2072 : : RTE_PTYPE_INNER_L4_NONFRAG,
2073 : : [957] = 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_UDP,
2077 : : [958] = 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_TCP,
2081 : : [953] = 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_SCTP,
2085 : : [952] = 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_ICMP,
2089 : : /* IPv6 -> UDP -> GRE -> MACVLAN -> IPv6 */
2090 : : [949] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2091 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2092 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2093 : : RTE_PTYPE_INNER_L4_FRAG,
2094 : : [948] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2095 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2096 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2097 : : RTE_PTYPE_INNER_L4_NONFRAG,
2098 : : [950] = 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_UDP,
2102 : : [951] = 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_TCP,
2106 : : [947] = 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_SCTP,
2110 : : [946] = 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_ICMP,
2114 : :
2115 : : /* IPv4 -> UDP -> GRE -> MACVLAN -> PAY */
2116 : : [969] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2117 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN,
2118 : : /* IPv4 -> UDP -> GRE -> MACVLAN -> IPv4 */
2119 : : [968] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2120 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2121 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2122 : : RTE_PTYPE_INNER_L4_FRAG,
2123 : : [967] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2124 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2125 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2126 : : RTE_PTYPE_INNER_L4_NONFRAG,
2127 : : [970] = 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_UDP,
2131 : : [971] = 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_TCP,
2135 : : [966] = 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_SCTP,
2139 : : [965] = 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_ICMP,
2143 : : /* IPv4 -> UDP -> GRE -> MACVLAN -> IPv6 */
2144 : : [962] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2145 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2146 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2147 : : RTE_PTYPE_INNER_L4_FRAG,
2148 : : [961] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2149 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER_VLAN |
2150 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2151 : : RTE_PTYPE_INNER_L4_NONFRAG,
2152 : : [963] = 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_UDP,
2156 : : [964] = 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_TCP,
2160 : : [960] = 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_SCTP,
2164 : : [959] = 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_ICMP,
2168 : :
2169 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> PAY */
2170 : : [982] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2171 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2172 : :
2173 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> IPv4 */
2174 : : [981] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2175 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2176 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2177 : : RTE_PTYPE_INNER_L4_FRAG,
2178 : : [980] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2179 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2180 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2181 : : RTE_PTYPE_INNER_L4_NONFRAG,
2182 : : [983] = 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_UDP,
2186 : : [984] = 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_TCP,
2190 : : [979] = 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_SCTP,
2194 : : [978] = 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_ICMP,
2198 : :
2199 : : /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> IPv6 */
2200 : : [975] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2201 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2202 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2203 : : RTE_PTYPE_INNER_L4_FRAG,
2204 : : [974] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2205 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2206 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2207 : : RTE_PTYPE_INNER_L4_NONFRAG,
2208 : : [976] = 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_UDP,
2212 : : [977] = 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_TCP,
2216 : : [973] = 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_SCTP,
2220 : : [972] = 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_ICMP,
2224 : :
2225 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> PAY */
2226 : : [995] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2227 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2228 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> IPv4 */
2229 : : [994] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2230 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2231 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2232 : : RTE_PTYPE_INNER_L4_FRAG,
2233 : : [993] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2234 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2235 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2236 : : RTE_PTYPE_INNER_L4_NONFRAG,
2237 : : [996] = 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_UDP,
2241 : : [997] = 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_TCP,
2245 : : [992] = 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_SCTP,
2249 : : [991] = 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_ICMP,
2253 : : /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> IPv6 */
2254 : : [988] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2255 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2256 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2257 : : RTE_PTYPE_INNER_L4_FRAG,
2258 : : [987] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2259 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2260 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2261 : : RTE_PTYPE_INNER_L4_NONFRAG,
2262 : : [989] = 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_UDP,
2266 : : [990] = 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_TCP,
2270 : : [986] = 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_SCTP,
2274 : : [985] = 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_ICMP,
2278 : :
2279 : : /* IPv6 > UDP -> GRE -> MAC -> PAY */
2280 : : [1008] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2281 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2282 : : /* IPv6 -> UDP -> GRE -> MAC -> IPv4 */
2283 : : [1007] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2284 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2285 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2286 : : RTE_PTYPE_INNER_L4_FRAG,
2287 : : [1006] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2288 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2289 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2290 : : RTE_PTYPE_INNER_L4_NONFRAG,
2291 : : [1009] = 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_UDP,
2295 : : [1010] = 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_TCP,
2299 : : [1005] = 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_SCTP,
2303 : : [1004] = 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_ICMP,
2307 : : /* IPv6 -> UDP -> GRE -> MAC -> IPv6 */
2308 : : [1001] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2309 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2310 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2311 : : RTE_PTYPE_INNER_L4_FRAG,
2312 : : [1000] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
2313 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2314 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2315 : : RTE_PTYPE_INNER_L4_NONFRAG,
2316 : : [1002] = 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_UDP,
2320 : : [1003] = 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_TCP,
2324 : : [999] = 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_SCTP,
2328 : : [998] = 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_ICMP,
2332 : :
2333 : : /* IPv4 -> UDP -> GRE -> MAC -> PAY */
2334 : : [1021] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2335 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
2336 : : /* IPv4 -> UDP -> GRE -> MAC -> IPv4 */
2337 : : [1020] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2338 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2339 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2340 : : RTE_PTYPE_INNER_L4_FRAG,
2341 : : [1019] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2342 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2343 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
2344 : : RTE_PTYPE_INNER_L4_NONFRAG,
2345 : : [1022] = 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_UDP,
2349 : : [1023] = 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_TCP,
2353 : : [1018] = 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_SCTP,
2357 : : [1017] = 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_ICMP,
2361 : : /* IPv4 -> UDP -> GRE -> MAC -> IPv6 */
2362 : : [1014] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2363 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2364 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2365 : : RTE_PTYPE_INNER_L4_FRAG,
2366 : : [1013] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
2367 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
2368 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
2369 : : RTE_PTYPE_INNER_L4_NONFRAG,
2370 : : [1015] = 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_UDP,
2374 : : [1016] = 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_TCP,
2378 : : [1012] = 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_SCTP,
2382 : : [1011] = 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_ICMP,
2386 : : };
2387 : : const uint32_t *
2388 : 0 : sxe2_dev_supported_ptypes_get(struct rte_eth_dev *dev, size_t *no_of_elements)
2389 : : {
2390 : 0 : const uint32_t *ret = NULL;
2391 : :
2392 : 0 : static const uint32_t ptypes[] = {
2393 : : RTE_PTYPE_L2_ETHER,
2394 : : RTE_PTYPE_L2_ETHER_TIMESYNC,
2395 : : RTE_PTYPE_L2_ETHER_LLDP,
2396 : : RTE_PTYPE_L2_ETHER_ARP,
2397 : : RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
2398 : : RTE_PTYPE_L3_IPV6_EXT_UNKNOWN,
2399 : : RTE_PTYPE_L4_FRAG,
2400 : : RTE_PTYPE_L4_ICMP,
2401 : : RTE_PTYPE_L4_NONFRAG,
2402 : : RTE_PTYPE_L4_SCTP,
2403 : : RTE_PTYPE_L4_TCP,
2404 : : RTE_PTYPE_L4_UDP,
2405 : : RTE_PTYPE_TUNNEL_GRENAT,
2406 : : RTE_PTYPE_TUNNEL_IP,
2407 : : RTE_PTYPE_INNER_L2_ETHER,
2408 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN,
2409 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN,
2410 : : RTE_PTYPE_INNER_L4_FRAG,
2411 : : RTE_PTYPE_INNER_L4_ICMP,
2412 : : RTE_PTYPE_INNER_L4_NONFRAG,
2413 : : RTE_PTYPE_INNER_L4_SCTP,
2414 : : RTE_PTYPE_INNER_L4_TCP,
2415 : : RTE_PTYPE_INNER_L4_UDP,
2416 : : RTE_PTYPE_UNKNOWN
2417 : : };
2418 : :
2419 [ # # ]: 0 : if (dev->rx_pkt_burst != NULL) {
2420 : 0 : *no_of_elements = RTE_DIM(ptypes);
2421 : 0 : ret = ptypes;
2422 : : } else {
2423 : : ret = NULL;
2424 : : }
2425 : :
2426 : 0 : return ret;
2427 : : }
|