Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright(c) 2010-2015 Intel Corporation
3 : : */
4 : :
5 : : #ifndef _I40E_RXTX_H_
6 : : #define _I40E_RXTX_H_
7 : :
8 : : #include "../common/tx.h"
9 : : #include "../common/rx.h"
10 : :
11 : : #define I40E_RX_MAX_BURST CI_RX_MAX_BURST
12 : : #define I40E_TX_MAX_BURST 32
13 : :
14 : : #define I40E_VPMD_RX_BURST CI_VPMD_RX_BURST
15 : : #define I40E_VPMD_RXQ_REARM_THRESH CI_VPMD_RX_REARM_THRESH
16 : : #define I40E_TX_MAX_FREE_BUF_SZ 64
17 : : #define I40E_VPMD_DESCS_PER_LOOP CI_VPMD_DESCS_PER_LOOP
18 : : #define I40E_VPMD_DESCS_PER_LOOP_WIDE CI_VPMD_DESCS_PER_LOOP_WIDE
19 : :
20 : : #define I40E_RXBUF_SZ_1024 1024
21 : : #define I40E_RXBUF_SZ_2048 2048
22 : :
23 : : /* In none-PXE mode QLEN must be whole number of 32 descriptors. */
24 : : #define I40E_ALIGN_RING_DESC 32
25 : :
26 : : /* Max data buffer size must be 16K - 128 bytes */
27 : : #define I40E_RX_MAX_DATA_BUF_SIZE (16 * 1024 - 128)
28 : :
29 : : #define I40E_MIN_RING_DESC 64
30 : : #define I40E_MAX_RING_DESC 8160
31 : :
32 : : #define I40E_FDIR_NUM_TX_DESC (I40E_FDIR_PRG_PKT_CNT << 1)
33 : : #define I40E_FDIR_NUM_RX_DESC (I40E_FDIR_PRG_PKT_CNT << 1)
34 : :
35 : : #define I40E_MIN_TSO_MSS 256
36 : : #define I40E_MAX_TSO_MSS 9674
37 : :
38 : : #define I40E_TX_MAX_SEG UINT8_MAX
39 : : #define I40E_TX_MAX_MTU_SEG 8
40 : :
41 : : #define I40E_TX_MIN_PKT_LEN 17
42 : :
43 : : /* Shared FDIR masks between scalar / vector drivers */
44 : : #define I40E_RX_DESC_EXT_STATUS_FLEXBH_MASK 0x03
45 : : #define I40E_RX_DESC_EXT_STATUS_FLEXBH_FD_ID 0x01
46 : : #define I40E_RX_DESC_EXT_STATUS_FLEXBH_FLEX 0x02
47 : : #define I40E_RX_DESC_EXT_STATUS_FLEXBL_MASK 0x03
48 : : #define I40E_RX_DESC_EXT_STATUS_FLEXBL_FLEX 0x01
49 : :
50 : : enum i40e_header_split_mode {
51 : : i40e_header_split_none = 0,
52 : : i40e_header_split_enabled = 1,
53 : : i40e_header_split_always = 2,
54 : : i40e_header_split_reserved
55 : : };
56 : :
57 : : #define I40E_HEADER_SPLIT_NONE ((uint8_t)0)
58 : : #define I40E_HEADER_SPLIT_L2 ((uint8_t)(1 << 0))
59 : : #define I40E_HEADER_SPLIT_IP ((uint8_t)(1 << 1))
60 : : #define I40E_HEADER_SPLIT_UDP_TCP ((uint8_t)(1 << 2))
61 : : #define I40E_HEADER_SPLIT_SCTP ((uint8_t)(1 << 3))
62 : : #define I40E_HEADER_SPLIT_ALL (I40E_HEADER_SPLIT_L2 | \
63 : : I40E_HEADER_SPLIT_IP | \
64 : : I40E_HEADER_SPLIT_UDP_TCP | \
65 : : I40E_HEADER_SPLIT_SCTP)
66 : :
67 : : #define I40E_RX_SCALAR_OFFLOADS ( \
68 : : RTE_ETH_RX_OFFLOAD_VLAN_STRIP | \
69 : : RTE_ETH_RX_OFFLOAD_QINQ_STRIP | \
70 : : RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | \
71 : : RTE_ETH_RX_OFFLOAD_UDP_CKSUM | \
72 : : RTE_ETH_RX_OFFLOAD_TCP_CKSUM | \
73 : : RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
74 : : RTE_ETH_RX_OFFLOAD_KEEP_CRC | \
75 : : RTE_ETH_RX_OFFLOAD_SCATTER | \
76 : : RTE_ETH_RX_OFFLOAD_VLAN_EXTEND | \
77 : : RTE_ETH_RX_OFFLOAD_VLAN_FILTER | \
78 : : RTE_ETH_RX_OFFLOAD_RSS_HASH)
79 : :
80 : : #define I40E_RX_VECTOR_OFFLOADS ( \
81 : : RTE_ETH_RX_OFFLOAD_VLAN_STRIP | \
82 : : RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | \
83 : : RTE_ETH_RX_OFFLOAD_UDP_CKSUM | \
84 : : RTE_ETH_RX_OFFLOAD_TCP_CKSUM | \
85 : : RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
86 : : RTE_ETH_RX_OFFLOAD_KEEP_CRC | \
87 : : RTE_ETH_RX_OFFLOAD_SCATTER | \
88 : : RTE_ETH_RX_OFFLOAD_VLAN_FILTER | \
89 : : RTE_ETH_RX_OFFLOAD_RSS_HASH)
90 : :
91 : : #define I40E_TX_SCALAR_OFFLOADS ( \
92 : : RTE_ETH_TX_OFFLOAD_VLAN_INSERT | \
93 : : RTE_ETH_TX_OFFLOAD_QINQ_INSERT | \
94 : : RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | \
95 : : RTE_ETH_TX_OFFLOAD_UDP_CKSUM | \
96 : : RTE_ETH_TX_OFFLOAD_TCP_CKSUM | \
97 : : RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | \
98 : : RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | \
99 : : RTE_ETH_TX_OFFLOAD_TCP_TSO | \
100 : : RTE_ETH_TX_OFFLOAD_UDP_TSO | \
101 : : RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | \
102 : : RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | \
103 : : RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | \
104 : : RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | \
105 : : RTE_ETH_TX_OFFLOAD_MULTI_SEGS | \
106 : : RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM | \
107 : : RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)
108 : :
109 : : #define I40E_TX_VECTOR_OFFLOADS RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE
110 : :
111 : : int i40e_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id);
112 : : int i40e_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id);
113 : : int i40e_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id);
114 : : int i40e_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id);
115 : : const uint32_t *i40e_dev_supported_ptypes_get(struct rte_eth_dev *dev,
116 : : size_t *no_of_elements);
117 : : int i40e_dev_rx_queue_setup(struct rte_eth_dev *dev,
118 : : uint16_t queue_idx,
119 : : uint16_t nb_desc,
120 : : unsigned int socket_id,
121 : : const struct rte_eth_rxconf *rx_conf,
122 : : struct rte_mempool *mp);
123 : : int i40e_dev_tx_queue_setup(struct rte_eth_dev *dev,
124 : : uint16_t queue_idx,
125 : : uint16_t nb_desc,
126 : : unsigned int socket_id,
127 : : const struct rte_eth_txconf *tx_conf);
128 : : void i40e_rx_queue_release(void *rxq);
129 : : void i40e_tx_queue_release(void *txq);
130 : : void i40e_dev_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid);
131 : : void i40e_dev_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid);
132 : : uint16_t i40e_recv_pkts(void *rx_queue,
133 : : struct rte_mbuf **rx_pkts,
134 : : uint16_t nb_pkts);
135 : : uint16_t i40e_recv_scattered_pkts(void *rx_queue,
136 : : struct rte_mbuf **rx_pkts,
137 : : uint16_t nb_pkts);
138 : : uint16_t i40e_xmit_pkts(void *tx_queue,
139 : : struct rte_mbuf **tx_pkts,
140 : : uint16_t nb_pkts);
141 : : uint16_t i40e_simple_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
142 : : uint16_t nb_pkts);
143 : : uint16_t i40e_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
144 : : uint16_t nb_pkts);
145 : : int i40e_tx_queue_init(struct ci_tx_queue *txq);
146 : : int i40e_rx_queue_init(struct ci_rx_queue *rxq);
147 : : void i40e_free_tx_resources(struct ci_tx_queue *txq);
148 : : void i40e_free_rx_resources(struct ci_rx_queue *rxq);
149 : : void i40e_dev_clear_queues(struct rte_eth_dev *dev);
150 : : void i40e_dev_free_queues(struct rte_eth_dev *dev);
151 : : void i40e_reset_rx_queue(struct ci_rx_queue *rxq);
152 : : void i40e_reset_tx_queue(struct ci_tx_queue *txq);
153 : : int i40e_tx_done_cleanup(void *txq, uint32_t free_cnt);
154 : : int i40e_alloc_rx_queue_mbufs(struct ci_rx_queue *rxq);
155 : : void i40e_rx_queue_release_mbufs(struct ci_rx_queue *rxq);
156 : :
157 : : int i40e_dev_rx_queue_count(void *rx_queue);
158 : : int i40e_dev_rx_descriptor_status(void *rx_queue, uint16_t offset);
159 : : int i40e_dev_tx_descriptor_status(void *tx_queue, uint16_t offset);
160 : :
161 : : uint16_t i40e_recycle_tx_mbufs_reuse_vec(void *tx_queue,
162 : : struct rte_eth_recycle_rxq_info *recycle_rxq_info);
163 : : void i40e_recycle_rx_descriptors_refill_vec(void *rx_queue, uint16_t nb_mbufs);
164 : :
165 : : uint16_t i40e_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
166 : : uint16_t nb_pkts);
167 : : uint16_t i40e_recv_scattered_pkts_vec(void *rx_queue,
168 : : struct rte_mbuf **rx_pkts,
169 : : uint16_t nb_pkts);
170 : : int i40e_rx_vec_dev_conf_condition_check(struct rte_eth_dev *dev);
171 : : int i40e_rxq_vec_setup(struct ci_rx_queue *rxq);
172 : : void i40e_rx_queue_release_mbufs_vec(struct ci_rx_queue *rxq);
173 : : uint16_t i40e_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
174 : : uint16_t nb_pkts);
175 : : void i40e_set_rx_function(struct rte_eth_dev *dev);
176 : : void i40e_set_tx_function_flag(struct rte_eth_dev *dev,
177 : : struct ci_tx_queue *txq);
178 : : void i40e_set_tx_function(struct rte_eth_dev *dev);
179 : : void i40e_set_default_ptype_table(struct rte_eth_dev *dev);
180 : : void i40e_set_default_pctype_table(struct rte_eth_dev *dev);
181 : : uint16_t i40e_recv_pkts_vec_avx2(void *rx_queue, struct rte_mbuf **rx_pkts,
182 : : uint16_t nb_pkts);
183 : : uint16_t i40e_recv_scattered_pkts_vec_avx2(void *rx_queue,
184 : : struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
185 : : uint16_t i40e_xmit_pkts_vec_avx2(void *tx_queue, struct rte_mbuf **tx_pkts,
186 : : uint16_t nb_pkts);
187 : : int i40e_get_monitor_addr(void *rx_queue, struct rte_power_monitor_cond *pmc);
188 : : uint16_t i40e_recv_pkts_vec_avx512(void *rx_queue,
189 : : struct rte_mbuf **rx_pkts,
190 : : uint16_t nb_pkts);
191 : : uint16_t i40e_recv_scattered_pkts_vec_avx512(void *rx_queue,
192 : : struct rte_mbuf **rx_pkts,
193 : : uint16_t nb_pkts);
194 : : uint16_t i40e_xmit_pkts_vec_avx512(void *tx_queue,
195 : : struct rte_mbuf **tx_pkts,
196 : : uint16_t nb_pkts);
197 : : enum rte_vect_max_simd i40e_get_max_simd_bitwidth(void);
198 : :
199 : : /* For each value it means, datasheet of hardware can tell more details
200 : : *
201 : : * @note: fix i40e_dev_supported_ptypes_get() if any change here.
202 : : */
203 : : static inline uint32_t
204 : : i40e_get_default_pkt_type(uint8_t ptype)
205 : : {
206 : : static const alignas(RTE_CACHE_LINE_SIZE) uint32_t type_table[UINT8_MAX + 1] = {
207 : : /* L2 types */
208 : : /* [0] reserved */
209 : : [1] = RTE_PTYPE_L2_ETHER,
210 : : [2] = RTE_PTYPE_L2_ETHER_TIMESYNC,
211 : : /* [3] - [5] reserved */
212 : : [6] = RTE_PTYPE_L2_ETHER_LLDP,
213 : : /* [7] - [10] reserved */
214 : : [11] = RTE_PTYPE_L2_ETHER_ARP,
215 : : /* [12] - [21] reserved */
216 : :
217 : : /* Non tunneled IPv4 */
218 : : [22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
219 : : RTE_PTYPE_L4_FRAG,
220 : : [23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
221 : : RTE_PTYPE_L4_NONFRAG,
222 : : [24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
223 : : RTE_PTYPE_L4_UDP,
224 : : /* [25] reserved */
225 : : [26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
226 : : RTE_PTYPE_L4_TCP,
227 : : [27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
228 : : RTE_PTYPE_L4_SCTP,
229 : : [28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
230 : : RTE_PTYPE_L4_ICMP,
231 : :
232 : : /* IPv4 --> IPv4 */
233 : : [29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
234 : : RTE_PTYPE_TUNNEL_IP |
235 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
236 : : RTE_PTYPE_INNER_L4_FRAG,
237 : : [30] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
238 : : RTE_PTYPE_TUNNEL_IP |
239 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
240 : : RTE_PTYPE_INNER_L4_NONFRAG,
241 : : [31] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
242 : : RTE_PTYPE_TUNNEL_IP |
243 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
244 : : RTE_PTYPE_INNER_L4_UDP,
245 : : /* [32] reserved */
246 : : [33] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
247 : : RTE_PTYPE_TUNNEL_IP |
248 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
249 : : RTE_PTYPE_INNER_L4_TCP,
250 : : [34] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
251 : : RTE_PTYPE_TUNNEL_IP |
252 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
253 : : RTE_PTYPE_INNER_L4_SCTP,
254 : : [35] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
255 : : RTE_PTYPE_TUNNEL_IP |
256 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
257 : : RTE_PTYPE_INNER_L4_ICMP,
258 : :
259 : : /* IPv4 --> IPv6 */
260 : : [36] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
261 : : RTE_PTYPE_TUNNEL_IP |
262 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
263 : : RTE_PTYPE_INNER_L4_FRAG,
264 : : [37] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
265 : : RTE_PTYPE_TUNNEL_IP |
266 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
267 : : RTE_PTYPE_INNER_L4_NONFRAG,
268 : : [38] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
269 : : RTE_PTYPE_TUNNEL_IP |
270 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
271 : : RTE_PTYPE_INNER_L4_UDP,
272 : : /* [39] reserved */
273 : : [40] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
274 : : RTE_PTYPE_TUNNEL_IP |
275 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
276 : : RTE_PTYPE_INNER_L4_TCP,
277 : : [41] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
278 : : RTE_PTYPE_TUNNEL_IP |
279 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
280 : : RTE_PTYPE_INNER_L4_SCTP,
281 : : [42] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
282 : : RTE_PTYPE_TUNNEL_IP |
283 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
284 : : RTE_PTYPE_INNER_L4_ICMP,
285 : :
286 : : /* IPv4 --> GRE/Teredo/VXLAN */
287 : : [43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
288 : : RTE_PTYPE_TUNNEL_GRENAT,
289 : :
290 : : /* IPv4 --> GRE/Teredo/VXLAN --> IPv4 */
291 : : [44] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
292 : : RTE_PTYPE_TUNNEL_GRENAT |
293 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
294 : : RTE_PTYPE_INNER_L4_FRAG,
295 : : [45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
296 : : RTE_PTYPE_TUNNEL_GRENAT |
297 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
298 : : RTE_PTYPE_INNER_L4_NONFRAG,
299 : : [46] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
300 : : RTE_PTYPE_TUNNEL_GRENAT |
301 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
302 : : RTE_PTYPE_INNER_L4_UDP,
303 : : /* [47] reserved */
304 : : [48] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
305 : : RTE_PTYPE_TUNNEL_GRENAT |
306 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
307 : : RTE_PTYPE_INNER_L4_TCP,
308 : : [49] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
309 : : RTE_PTYPE_TUNNEL_GRENAT |
310 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
311 : : RTE_PTYPE_INNER_L4_SCTP,
312 : : [50] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
313 : : RTE_PTYPE_TUNNEL_GRENAT |
314 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
315 : : RTE_PTYPE_INNER_L4_ICMP,
316 : :
317 : : /* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */
318 : : [51] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
319 : : RTE_PTYPE_TUNNEL_GRENAT |
320 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
321 : : RTE_PTYPE_INNER_L4_FRAG,
322 : : [52] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
323 : : RTE_PTYPE_TUNNEL_GRENAT |
324 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
325 : : RTE_PTYPE_INNER_L4_NONFRAG,
326 : : [53] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
327 : : RTE_PTYPE_TUNNEL_GRENAT |
328 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
329 : : RTE_PTYPE_INNER_L4_UDP,
330 : : /* [54] reserved */
331 : : [55] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
332 : : RTE_PTYPE_TUNNEL_GRENAT |
333 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
334 : : RTE_PTYPE_INNER_L4_TCP,
335 : : [56] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
336 : : RTE_PTYPE_TUNNEL_GRENAT |
337 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
338 : : RTE_PTYPE_INNER_L4_SCTP,
339 : : [57] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
340 : : RTE_PTYPE_TUNNEL_GRENAT |
341 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
342 : : RTE_PTYPE_INNER_L4_ICMP,
343 : :
344 : : /* IPv4 --> GRE/Teredo/VXLAN --> MAC */
345 : : [58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
346 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
347 : :
348 : : /* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */
349 : : [59] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
350 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
351 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
352 : : RTE_PTYPE_INNER_L4_FRAG,
353 : : [60] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
354 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
355 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
356 : : RTE_PTYPE_INNER_L4_NONFRAG,
357 : : [61] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
358 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
359 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
360 : : RTE_PTYPE_INNER_L4_UDP,
361 : : /* [62] reserved */
362 : : [63] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
363 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
364 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
365 : : RTE_PTYPE_INNER_L4_TCP,
366 : : [64] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
367 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
368 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
369 : : RTE_PTYPE_INNER_L4_SCTP,
370 : : [65] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
371 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
372 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
373 : : RTE_PTYPE_INNER_L4_ICMP,
374 : :
375 : : /* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */
376 : : [66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
377 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
378 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
379 : : RTE_PTYPE_INNER_L4_FRAG,
380 : : [67] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
381 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
382 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
383 : : RTE_PTYPE_INNER_L4_NONFRAG,
384 : : [68] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
385 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
386 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
387 : : RTE_PTYPE_INNER_L4_UDP,
388 : : /* [69] reserved */
389 : : [70] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
390 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
391 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
392 : : RTE_PTYPE_INNER_L4_TCP,
393 : : [71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
394 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
395 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
396 : : RTE_PTYPE_INNER_L4_SCTP,
397 : : [72] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
398 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
399 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
400 : : RTE_PTYPE_INNER_L4_ICMP,
401 : :
402 : : /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */
403 : : [73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
404 : : RTE_PTYPE_TUNNEL_GRENAT |
405 : : RTE_PTYPE_INNER_L2_ETHER_VLAN,
406 : :
407 : : /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */
408 : : [74] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
409 : : RTE_PTYPE_TUNNEL_GRENAT |
410 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
411 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
412 : : RTE_PTYPE_INNER_L4_FRAG,
413 : : [75] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
414 : : RTE_PTYPE_TUNNEL_GRENAT |
415 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
416 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
417 : : RTE_PTYPE_INNER_L4_NONFRAG,
418 : : [76] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
419 : : RTE_PTYPE_TUNNEL_GRENAT |
420 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
421 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
422 : : RTE_PTYPE_INNER_L4_UDP,
423 : : /* [77] reserved */
424 : : [78] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
425 : : RTE_PTYPE_TUNNEL_GRENAT |
426 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
427 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
428 : : RTE_PTYPE_INNER_L4_TCP,
429 : : [79] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
430 : : RTE_PTYPE_TUNNEL_GRENAT |
431 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
432 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
433 : : RTE_PTYPE_INNER_L4_SCTP,
434 : : [80] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
435 : : RTE_PTYPE_TUNNEL_GRENAT |
436 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
437 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
438 : : RTE_PTYPE_INNER_L4_ICMP,
439 : :
440 : : /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */
441 : : [81] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
442 : : RTE_PTYPE_TUNNEL_GRENAT |
443 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
444 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
445 : : RTE_PTYPE_INNER_L4_FRAG,
446 : : [82] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
447 : : RTE_PTYPE_TUNNEL_GRENAT |
448 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
449 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
450 : : RTE_PTYPE_INNER_L4_NONFRAG,
451 : : [83] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
452 : : RTE_PTYPE_TUNNEL_GRENAT |
453 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
454 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
455 : : RTE_PTYPE_INNER_L4_UDP,
456 : : /* [84] reserved */
457 : : [85] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
458 : : RTE_PTYPE_TUNNEL_GRENAT |
459 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
460 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
461 : : RTE_PTYPE_INNER_L4_TCP,
462 : : [86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
463 : : RTE_PTYPE_TUNNEL_GRENAT |
464 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
465 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
466 : : RTE_PTYPE_INNER_L4_SCTP,
467 : : [87] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
468 : : RTE_PTYPE_TUNNEL_GRENAT |
469 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
470 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
471 : : RTE_PTYPE_INNER_L4_ICMP,
472 : :
473 : : /* Non tunneled IPv6 */
474 : : [88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
475 : : RTE_PTYPE_L4_FRAG,
476 : : [89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
477 : : RTE_PTYPE_L4_NONFRAG,
478 : : [90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
479 : : RTE_PTYPE_L4_UDP,
480 : : /* [91] reserved */
481 : : [92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
482 : : RTE_PTYPE_L4_TCP,
483 : : [93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
484 : : RTE_PTYPE_L4_SCTP,
485 : : [94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
486 : : RTE_PTYPE_L4_ICMP,
487 : :
488 : : /* IPv6 --> IPv4 */
489 : : [95] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
490 : : RTE_PTYPE_TUNNEL_IP |
491 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
492 : : RTE_PTYPE_INNER_L4_FRAG,
493 : : [96] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
494 : : RTE_PTYPE_TUNNEL_IP |
495 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
496 : : RTE_PTYPE_INNER_L4_NONFRAG,
497 : : [97] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
498 : : RTE_PTYPE_TUNNEL_IP |
499 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
500 : : RTE_PTYPE_INNER_L4_UDP,
501 : : /* [98] reserved */
502 : : [99] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
503 : : RTE_PTYPE_TUNNEL_IP |
504 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
505 : : RTE_PTYPE_INNER_L4_TCP,
506 : : [100] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
507 : : RTE_PTYPE_TUNNEL_IP |
508 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
509 : : RTE_PTYPE_INNER_L4_SCTP,
510 : : [101] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
511 : : RTE_PTYPE_TUNNEL_IP |
512 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
513 : : RTE_PTYPE_INNER_L4_ICMP,
514 : :
515 : : /* IPv6 --> IPv6 */
516 : : [102] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
517 : : RTE_PTYPE_TUNNEL_IP |
518 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
519 : : RTE_PTYPE_INNER_L4_FRAG,
520 : : [103] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
521 : : RTE_PTYPE_TUNNEL_IP |
522 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
523 : : RTE_PTYPE_INNER_L4_NONFRAG,
524 : : [104] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
525 : : RTE_PTYPE_TUNNEL_IP |
526 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
527 : : RTE_PTYPE_INNER_L4_UDP,
528 : : /* [105] reserved */
529 : : [106] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
530 : : RTE_PTYPE_TUNNEL_IP |
531 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
532 : : RTE_PTYPE_INNER_L4_TCP,
533 : : [107] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
534 : : RTE_PTYPE_TUNNEL_IP |
535 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
536 : : RTE_PTYPE_INNER_L4_SCTP,
537 : : [108] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
538 : : RTE_PTYPE_TUNNEL_IP |
539 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
540 : : RTE_PTYPE_INNER_L4_ICMP,
541 : :
542 : : /* IPv6 --> GRE/Teredo/VXLAN */
543 : : [109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
544 : : RTE_PTYPE_TUNNEL_GRENAT,
545 : :
546 : : /* IPv6 --> GRE/Teredo/VXLAN --> IPv4 */
547 : : [110] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
548 : : RTE_PTYPE_TUNNEL_GRENAT |
549 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
550 : : RTE_PTYPE_INNER_L4_FRAG,
551 : : [111] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
552 : : RTE_PTYPE_TUNNEL_GRENAT |
553 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
554 : : RTE_PTYPE_INNER_L4_NONFRAG,
555 : : [112] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
556 : : RTE_PTYPE_TUNNEL_GRENAT |
557 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
558 : : RTE_PTYPE_INNER_L4_UDP,
559 : : /* [113] reserved */
560 : : [114] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
561 : : RTE_PTYPE_TUNNEL_GRENAT |
562 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
563 : : RTE_PTYPE_INNER_L4_TCP,
564 : : [115] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
565 : : RTE_PTYPE_TUNNEL_GRENAT |
566 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
567 : : RTE_PTYPE_INNER_L4_SCTP,
568 : : [116] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
569 : : RTE_PTYPE_TUNNEL_GRENAT |
570 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
571 : : RTE_PTYPE_INNER_L4_ICMP,
572 : :
573 : : /* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */
574 : : [117] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
575 : : RTE_PTYPE_TUNNEL_GRENAT |
576 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
577 : : RTE_PTYPE_INNER_L4_FRAG,
578 : : [118] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
579 : : RTE_PTYPE_TUNNEL_GRENAT |
580 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
581 : : RTE_PTYPE_INNER_L4_NONFRAG,
582 : : [119] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
583 : : RTE_PTYPE_TUNNEL_GRENAT |
584 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
585 : : RTE_PTYPE_INNER_L4_UDP,
586 : : /* [120] reserved */
587 : : [121] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
588 : : RTE_PTYPE_TUNNEL_GRENAT |
589 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
590 : : RTE_PTYPE_INNER_L4_TCP,
591 : : [122] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
592 : : RTE_PTYPE_TUNNEL_GRENAT |
593 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
594 : : RTE_PTYPE_INNER_L4_SCTP,
595 : : [123] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
596 : : RTE_PTYPE_TUNNEL_GRENAT |
597 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
598 : : RTE_PTYPE_INNER_L4_ICMP,
599 : :
600 : : /* IPv6 --> GRE/Teredo/VXLAN --> MAC */
601 : : [124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
602 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
603 : :
604 : : /* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */
605 : : [125] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
606 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
607 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
608 : : RTE_PTYPE_INNER_L4_FRAG,
609 : : [126] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
610 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
611 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
612 : : RTE_PTYPE_INNER_L4_NONFRAG,
613 : : [127] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
614 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
615 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
616 : : RTE_PTYPE_INNER_L4_UDP,
617 : : /* [128] reserved */
618 : : [129] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
619 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
620 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
621 : : RTE_PTYPE_INNER_L4_TCP,
622 : : [130] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
623 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
624 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
625 : : RTE_PTYPE_INNER_L4_SCTP,
626 : : [131] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
627 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
628 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
629 : : RTE_PTYPE_INNER_L4_ICMP,
630 : :
631 : : /* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */
632 : : [132] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
633 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
634 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
635 : : RTE_PTYPE_INNER_L4_FRAG,
636 : : [133] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
637 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
638 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
639 : : RTE_PTYPE_INNER_L4_NONFRAG,
640 : : [134] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
641 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
642 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
643 : : RTE_PTYPE_INNER_L4_UDP,
644 : : /* [135] reserved */
645 : : [136] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
646 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
647 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
648 : : RTE_PTYPE_INNER_L4_TCP,
649 : : [137] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
650 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
651 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
652 : : RTE_PTYPE_INNER_L4_SCTP,
653 : : [138] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
654 : : RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
655 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
656 : : RTE_PTYPE_INNER_L4_ICMP,
657 : :
658 : : /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */
659 : : [139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
660 : : RTE_PTYPE_TUNNEL_GRENAT |
661 : : RTE_PTYPE_INNER_L2_ETHER_VLAN,
662 : :
663 : : /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */
664 : : [140] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
665 : : RTE_PTYPE_TUNNEL_GRENAT |
666 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
667 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
668 : : RTE_PTYPE_INNER_L4_FRAG,
669 : : [141] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
670 : : RTE_PTYPE_TUNNEL_GRENAT |
671 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
672 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
673 : : RTE_PTYPE_INNER_L4_NONFRAG,
674 : : [142] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
675 : : RTE_PTYPE_TUNNEL_GRENAT |
676 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
677 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
678 : : RTE_PTYPE_INNER_L4_UDP,
679 : : /* [143] reserved */
680 : : [144] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
681 : : RTE_PTYPE_TUNNEL_GRENAT |
682 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
683 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
684 : : RTE_PTYPE_INNER_L4_TCP,
685 : : [145] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
686 : : RTE_PTYPE_TUNNEL_GRENAT |
687 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
688 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
689 : : RTE_PTYPE_INNER_L4_SCTP,
690 : : [146] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
691 : : RTE_PTYPE_TUNNEL_GRENAT |
692 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
693 : : RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
694 : : RTE_PTYPE_INNER_L4_ICMP,
695 : :
696 : : /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */
697 : : [147] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
698 : : RTE_PTYPE_TUNNEL_GRENAT |
699 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
700 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
701 : : RTE_PTYPE_INNER_L4_FRAG,
702 : : [148] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
703 : : RTE_PTYPE_TUNNEL_GRENAT |
704 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
705 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
706 : : RTE_PTYPE_INNER_L4_NONFRAG,
707 : : [149] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
708 : : RTE_PTYPE_TUNNEL_GRENAT |
709 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
710 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
711 : : RTE_PTYPE_INNER_L4_UDP,
712 : : /* [150] reserved */
713 : : [151] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
714 : : RTE_PTYPE_TUNNEL_GRENAT |
715 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
716 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
717 : : RTE_PTYPE_INNER_L4_TCP,
718 : : [152] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
719 : : RTE_PTYPE_TUNNEL_GRENAT |
720 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
721 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
722 : : RTE_PTYPE_INNER_L4_SCTP,
723 : : [153] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
724 : : RTE_PTYPE_TUNNEL_GRENAT |
725 : : RTE_PTYPE_INNER_L2_ETHER_VLAN |
726 : : RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
727 : : RTE_PTYPE_INNER_L4_ICMP,
728 : :
729 : : /* L2 NSH packet type */
730 : : [154] = RTE_PTYPE_L2_ETHER_NSH,
731 : : [155] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
732 : : RTE_PTYPE_L4_FRAG,
733 : : [156] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
734 : : RTE_PTYPE_L4_NONFRAG,
735 : : [157] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
736 : : RTE_PTYPE_L4_UDP,
737 : : [158] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
738 : : RTE_PTYPE_L4_TCP,
739 : : [159] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
740 : : RTE_PTYPE_L4_SCTP,
741 : : [160] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
742 : : RTE_PTYPE_L4_ICMP,
743 : : [161] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
744 : : RTE_PTYPE_L4_FRAG,
745 : : [162] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
746 : : RTE_PTYPE_L4_NONFRAG,
747 : : [163] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
748 : : RTE_PTYPE_L4_UDP,
749 : : [164] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
750 : : RTE_PTYPE_L4_TCP,
751 : : [165] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
752 : : RTE_PTYPE_L4_SCTP,
753 : : [166] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
754 : : RTE_PTYPE_L4_ICMP,
755 : :
756 : : /* All others reserved */
757 : : };
758 : :
759 : 0 : return type_table[ptype];
760 : : }
761 : :
762 : : #endif /* _I40E_RXTX_H_ */
|