1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2020 Intel Corporation
13 #include <rte_debug.h>
14 #include <rte_ether.h>
15 #include <rte_ethdev_driver.h>
17 #include <rte_malloc.h>
18 #include <rte_eth_ctrl.h>
19 #include <rte_tailq.h>
20 #include <rte_flow_driver.h>
24 #include "iavf_generic_flow.h"
26 enum iavf_pattern_hint_type {
27 IAVF_PHINT_NONE = 0x00000000,
28 IAVF_PHINT_IPV4 = 0x00000001,
29 IAVF_PHINT_IPV4_UDP = 0x00000002,
30 IAVF_PHINT_IPV4_TCP = 0x00000004,
31 IAVF_PHINT_IPV4_SCTP = 0x00000008,
32 IAVF_PHINT_IPV6 = 0x00000010,
33 IAVF_PHINT_IPV6_UDP = 0x00000020,
34 IAVF_PHINT_IPV6_TCP = 0x00000040,
35 IAVF_PHINT_IPV6_SCTP = 0x00000080,
36 IAVF_PHINT_IPV4_GTPU_IP = 0x00000100,
37 IAVF_PHINT_IPV4_GTPU_EH = 0x00000200,
38 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK = 0x00000400,
39 IAVF_PHINT_IPV4_GTPU_EH_UPLINK = 0x00000800,
40 IAVF_PHINT_IPV6_GTPU_IP = 0x00001000,
41 IAVF_PHINT_IPV6_GTPU_EH = 0x00002000,
42 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK = 0x00004000,
43 IAVF_PHINT_IPV6_GTPU_EH_UPLINK = 0x00008000,
46 #define IAVF_GTPU_EH_DWNLINK 0
47 #define IAVF_GTPU_EH_UPLINK 1
49 struct iavf_pattern_match_type {
50 uint64_t pattern_hint;
53 struct iavf_hash_match_type {
55 struct virtchnl_proto_hdrs *proto_hdrs;
56 uint64_t pattern_hint;
59 struct iavf_rss_meta {
60 struct virtchnl_proto_hdrs *proto_hdrs;
61 enum virtchnl_rss_algorithm rss_algorithm;
64 struct iavf_hash_flow_cfg {
65 struct virtchnl_rss_cfg *rss_cfg;
70 iavf_hash_init(struct iavf_adapter *ad);
72 iavf_hash_create(struct iavf_adapter *ad, struct rte_flow *flow, void *meta,
73 struct rte_flow_error *error);
75 iavf_hash_destroy(struct iavf_adapter *ad, struct rte_flow *flow,
76 struct rte_flow_error *error);
78 iavf_hash_uninit(struct iavf_adapter *ad);
80 iavf_hash_free(struct rte_flow *flow);
82 iavf_hash_parse_pattern_action(struct iavf_adapter *ad,
83 struct iavf_pattern_match_item *array,
85 const struct rte_flow_item pattern[],
86 const struct rte_flow_action actions[],
88 struct rte_flow_error *error);
90 static struct iavf_pattern_match_type phint_empty = {
92 static struct iavf_pattern_match_type phint_eth_ipv4 = {
94 static struct iavf_pattern_match_type phint_eth_ipv4_udp = {
96 static struct iavf_pattern_match_type phint_eth_ipv4_tcp = {
98 static struct iavf_pattern_match_type phint_eth_ipv4_sctp = {
99 IAVF_PHINT_IPV4_SCTP};
100 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_ipv4 = {
102 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_ipv4_udp = {
103 IAVF_PHINT_IPV4_UDP};
104 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_ipv4_tcp = {
105 IAVF_PHINT_IPV4_TCP};
106 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_ipv6 = {
108 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_ipv6_udp = {
109 IAVF_PHINT_IPV6_UDP};
110 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_ipv6_tcp = {
111 IAVF_PHINT_IPV6_TCP};
112 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_ipv4 = {
114 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_ipv4_udp = {
115 IAVF_PHINT_IPV4_UDP};
116 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_ipv4_tcp = {
117 IAVF_PHINT_IPV4_TCP};
118 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_ipv6 = {
120 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_ipv6_udp = {
121 IAVF_PHINT_IPV6_UDP};
122 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_ipv6_tcp = {
123 IAVF_PHINT_IPV6_TCP};
124 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_eh_ipv4 = {
126 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_eh_ipv4_udp = {
127 IAVF_PHINT_IPV4_UDP};
128 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_eh_ipv4_tcp = {
129 IAVF_PHINT_IPV4_TCP};
130 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_eh_ipv6 = {
132 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_eh_ipv6_udp = {
133 IAVF_PHINT_IPV6_UDP};
134 static struct iavf_pattern_match_type phint_eth_ipv4_gtpu_eh_ipv6_tcp = {
135 IAVF_PHINT_IPV6_TCP};
136 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_eh_ipv4 = {
138 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_eh_ipv4_udp = {
139 IAVF_PHINT_IPV4_UDP};
140 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_eh_ipv4_tcp = {
141 IAVF_PHINT_IPV4_TCP};
142 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_eh_ipv6 = {
144 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_eh_ipv6_udp = {
145 IAVF_PHINT_IPV6_UDP};
146 static struct iavf_pattern_match_type phint_eth_ipv6_gtpu_eh_ipv6_tcp = {
147 IAVF_PHINT_IPV6_TCP};
148 static struct iavf_pattern_match_type phint_eth_ipv4_esp = {
150 static struct iavf_pattern_match_type phint_eth_ipv4_udp_esp = {
151 IAVF_PHINT_IPV4_UDP};
152 static struct iavf_pattern_match_type phint_eth_ipv4_ah = {
154 static struct iavf_pattern_match_type phint_eth_ipv4_l2tpv3 = {
156 static struct iavf_pattern_match_type phint_eth_ipv4_pfcp = {
157 IAVF_PHINT_IPV4_UDP};
158 static struct iavf_pattern_match_type phint_eth_vlan_ipv4 = {
160 static struct iavf_pattern_match_type phint_eth_vlan_ipv4_udp = {
161 IAVF_PHINT_IPV4_UDP};
162 static struct iavf_pattern_match_type phint_eth_vlan_ipv4_tcp = {
163 IAVF_PHINT_IPV4_TCP};
164 static struct iavf_pattern_match_type phint_eth_vlan_ipv4_sctp = {
165 IAVF_PHINT_IPV4_SCTP};
166 static struct iavf_pattern_match_type phint_eth_ipv6 = {
168 static struct iavf_pattern_match_type phint_eth_ipv6_udp = {
169 IAVF_PHINT_IPV6_UDP};
170 static struct iavf_pattern_match_type phint_eth_ipv6_tcp = {
171 IAVF_PHINT_IPV6_TCP};
172 static struct iavf_pattern_match_type phint_eth_ipv6_sctp = {
173 IAVF_PHINT_IPV6_SCTP};
174 static struct iavf_pattern_match_type phint_eth_ipv6_esp = {
176 static struct iavf_pattern_match_type phint_eth_ipv6_udp_esp = {
177 IAVF_PHINT_IPV6_UDP};
178 static struct iavf_pattern_match_type phint_eth_ipv6_ah = {
180 static struct iavf_pattern_match_type phint_eth_ipv6_l2tpv3 = {
182 static struct iavf_pattern_match_type phint_eth_ipv6_pfcp = {
183 IAVF_PHINT_IPV6_UDP};
184 static struct iavf_pattern_match_type phint_eth_vlan_ipv6 = {
186 static struct iavf_pattern_match_type phint_eth_vlan_ipv6_udp = {
187 IAVF_PHINT_IPV6_UDP};
188 static struct iavf_pattern_match_type phint_eth_vlan_ipv6_tcp = {
189 IAVF_PHINT_IPV6_TCP};
190 static struct iavf_pattern_match_type phint_eth_vlan_ipv6_sctp = {
191 IAVF_PHINT_IPV6_SCTP};
194 * Supported pattern for hash.
195 * The first member is pattern item type,
196 * the second member is input set mask,
197 * the third member is pattern hint for hash.
199 static struct iavf_pattern_match_item iavf_hash_pattern_list[] = {
200 {iavf_pattern_eth_ipv4, IAVF_INSET_NONE, &phint_eth_ipv4},
201 {iavf_pattern_eth_ipv4_udp, IAVF_INSET_NONE, &phint_eth_ipv4_udp},
202 {iavf_pattern_eth_ipv4_tcp, IAVF_INSET_NONE, &phint_eth_ipv4_tcp},
203 {iavf_pattern_eth_ipv4_sctp, IAVF_INSET_NONE, &phint_eth_ipv4_sctp},
204 {iavf_pattern_eth_ipv4_gtpu_ipv4, IAVF_INSET_NONE,
205 &phint_eth_ipv4_gtpu_ipv4},
206 {iavf_pattern_eth_ipv4_gtpu_ipv4_udp, IAVF_INSET_NONE,
207 &phint_eth_ipv4_gtpu_ipv4_udp},
208 {iavf_pattern_eth_ipv4_gtpu_ipv4_tcp, IAVF_INSET_NONE,
209 &phint_eth_ipv4_gtpu_ipv4_tcp},
210 {iavf_pattern_eth_ipv4_gtpu_ipv6, IAVF_INSET_NONE,
211 &phint_eth_ipv4_gtpu_ipv6},
212 {iavf_pattern_eth_ipv4_gtpu_ipv6_udp, IAVF_INSET_NONE,
213 &phint_eth_ipv4_gtpu_ipv6_udp},
214 {iavf_pattern_eth_ipv4_gtpu_ipv6_tcp, IAVF_INSET_NONE,
215 &phint_eth_ipv4_gtpu_ipv6_tcp},
216 {iavf_pattern_eth_ipv6_gtpu_ipv4, IAVF_INSET_NONE,
217 &phint_eth_ipv6_gtpu_ipv4},
218 {iavf_pattern_eth_ipv6_gtpu_ipv4_udp, IAVF_INSET_NONE,
219 &phint_eth_ipv6_gtpu_ipv4_udp},
220 {iavf_pattern_eth_ipv6_gtpu_ipv4_tcp, IAVF_INSET_NONE,
221 &phint_eth_ipv6_gtpu_ipv4_tcp},
222 {iavf_pattern_eth_ipv6_gtpu_ipv6, IAVF_INSET_NONE,
223 &phint_eth_ipv6_gtpu_ipv6},
224 {iavf_pattern_eth_ipv6_gtpu_ipv6_udp, IAVF_INSET_NONE,
225 &phint_eth_ipv6_gtpu_ipv6_udp},
226 {iavf_pattern_eth_ipv6_gtpu_ipv6_tcp, IAVF_INSET_NONE,
227 &phint_eth_ipv6_gtpu_ipv6_tcp},
228 {iavf_pattern_eth_ipv4_gtpu_eh_ipv4, IAVF_INSET_NONE,
229 &phint_eth_ipv4_gtpu_eh_ipv4},
230 {iavf_pattern_eth_ipv4_gtpu_eh_ipv4_udp, IAVF_INSET_NONE,
231 &phint_eth_ipv4_gtpu_eh_ipv4_udp},
232 {iavf_pattern_eth_ipv4_gtpu_eh_ipv4_tcp, IAVF_INSET_NONE,
233 &phint_eth_ipv4_gtpu_eh_ipv4_tcp},
234 {iavf_pattern_eth_ipv4_gtpu_eh_ipv6, IAVF_INSET_NONE,
235 &phint_eth_ipv4_gtpu_eh_ipv6},
236 {iavf_pattern_eth_ipv4_gtpu_eh_ipv6_udp, IAVF_INSET_NONE,
237 &phint_eth_ipv4_gtpu_eh_ipv6_udp},
238 {iavf_pattern_eth_ipv4_gtpu_eh_ipv6_tcp, IAVF_INSET_NONE,
239 &phint_eth_ipv4_gtpu_eh_ipv6_tcp},
240 {iavf_pattern_eth_ipv6_gtpu_eh_ipv4, IAVF_INSET_NONE,
241 &phint_eth_ipv6_gtpu_eh_ipv4},
242 {iavf_pattern_eth_ipv6_gtpu_eh_ipv4_udp, IAVF_INSET_NONE,
243 &phint_eth_ipv6_gtpu_eh_ipv4_udp},
244 {iavf_pattern_eth_ipv6_gtpu_eh_ipv4_tcp, IAVF_INSET_NONE,
245 &phint_eth_ipv6_gtpu_eh_ipv4_tcp},
246 {iavf_pattern_eth_ipv6_gtpu_eh_ipv6, IAVF_INSET_NONE,
247 &phint_eth_ipv6_gtpu_eh_ipv6},
248 {iavf_pattern_eth_ipv6_gtpu_eh_ipv6_udp, IAVF_INSET_NONE,
249 &phint_eth_ipv6_gtpu_eh_ipv6_udp},
250 {iavf_pattern_eth_ipv6_gtpu_eh_ipv6_tcp, IAVF_INSET_NONE,
251 &phint_eth_ipv6_gtpu_eh_ipv6_tcp},
252 {iavf_pattern_eth_ipv4_esp, IAVF_INSET_NONE, &phint_eth_ipv4_esp},
253 {iavf_pattern_eth_ipv4_udp_esp, IAVF_INSET_NONE,
254 &phint_eth_ipv4_udp_esp},
255 {iavf_pattern_eth_ipv4_ah, IAVF_INSET_NONE, &phint_eth_ipv4_ah},
256 {iavf_pattern_eth_ipv4_l2tpv3, IAVF_INSET_NONE,
257 &phint_eth_ipv4_l2tpv3},
258 {iavf_pattern_eth_ipv4_pfcp, IAVF_INSET_NONE, &phint_eth_ipv4_pfcp},
259 {iavf_pattern_eth_vlan_ipv4, IAVF_INSET_NONE, &phint_eth_vlan_ipv4},
260 {iavf_pattern_eth_vlan_ipv4_udp, IAVF_INSET_NONE,
261 &phint_eth_vlan_ipv4_udp},
262 {iavf_pattern_eth_vlan_ipv4_tcp, IAVF_INSET_NONE,
263 &phint_eth_vlan_ipv4_tcp},
264 {iavf_pattern_eth_vlan_ipv4_sctp, IAVF_INSET_NONE,
265 &phint_eth_vlan_ipv4_sctp},
266 {iavf_pattern_eth_ipv6, IAVF_INSET_NONE, &phint_eth_ipv6},
267 {iavf_pattern_eth_ipv6_udp, IAVF_INSET_NONE, &phint_eth_ipv6_udp},
268 {iavf_pattern_eth_ipv6_tcp, IAVF_INSET_NONE, &phint_eth_ipv6_tcp},
269 {iavf_pattern_eth_ipv6_sctp, IAVF_INSET_NONE, &phint_eth_ipv6_sctp},
270 {iavf_pattern_eth_ipv6_esp, IAVF_INSET_NONE, &phint_eth_ipv6_esp},
271 {iavf_pattern_eth_ipv6_udp_esp, IAVF_INSET_NONE,
272 &phint_eth_ipv6_udp_esp},
273 {iavf_pattern_eth_ipv6_ah, IAVF_INSET_NONE, &phint_eth_ipv6_ah},
274 {iavf_pattern_eth_ipv6_l2tpv3, IAVF_INSET_NONE,
275 &phint_eth_ipv6_l2tpv3},
276 {iavf_pattern_eth_ipv6_pfcp, IAVF_INSET_NONE, &phint_eth_ipv6_pfcp},
277 {iavf_pattern_eth_vlan_ipv6, IAVF_INSET_NONE, &phint_eth_vlan_ipv6},
278 {iavf_pattern_eth_vlan_ipv6_udp, IAVF_INSET_NONE,
279 &phint_eth_vlan_ipv6_udp},
280 {iavf_pattern_eth_vlan_ipv6_tcp, IAVF_INSET_NONE,
281 &phint_eth_vlan_ipv6_tcp},
282 {iavf_pattern_eth_vlan_ipv6_sctp, IAVF_INSET_NONE,
283 &phint_eth_vlan_ipv6_sctp},
284 {iavf_pattern_empty, IAVF_INSET_NONE, &phint_empty},
287 #define TUNNEL_LEVEL_OUTER 0
288 #define TUNNEL_LEVEL_FIRST_INNER 1
290 #define PROTO_COUNT_ONE 1
291 #define PROTO_COUNT_TWO 2
292 #define PROTO_COUNT_THREE 3
294 #define BUFF_NOUSED 0
295 #define FIELD_FOR_PROTO_ONLY 0
297 #define FIELD_SELECTOR(proto_hdr_field) \
298 (1UL << ((proto_hdr_field) & PROTO_HDR_FIELD_MASK))
300 #define proto_hint_eth_src { \
301 VIRTCHNL_PROTO_HDR_ETH, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_ETH_SRC), \
304 #define proto_hint_eth_dst { \
305 VIRTCHNL_PROTO_HDR_ETH, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_ETH_DST), \
308 #define proto_hint_eth_only { \
309 VIRTCHNL_PROTO_HDR_ETH, FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
311 #define proto_hint_eth { \
312 VIRTCHNL_PROTO_HDR_ETH, \
313 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_ETH_SRC) | \
314 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_ETH_DST), {BUFF_NOUSED } }
316 #define proto_hint_svlan { \
317 VIRTCHNL_PROTO_HDR_S_VLAN, \
318 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_S_VLAN_ID), {BUFF_NOUSED } }
320 #define proto_hint_cvlan { \
321 VIRTCHNL_PROTO_HDR_C_VLAN, \
322 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_C_VLAN_ID), {BUFF_NOUSED } }
324 #define proto_hint_ipv4_src { \
325 VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC), \
328 #define proto_hint_ipv4_dst { \
329 VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST), \
332 #define proto_hint_ipv4_only { \
333 VIRTCHNL_PROTO_HDR_IPV4, FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
335 #define proto_hint_ipv4 { \
336 VIRTCHNL_PROTO_HDR_IPV4, \
337 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \
338 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST), {BUFF_NOUSED } }
340 #define proto_hint_ipv4_src_prot { \
341 VIRTCHNL_PROTO_HDR_IPV4, \
342 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \
343 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), \
346 #define proto_hint_ipv4_dst_prot { \
347 VIRTCHNL_PROTO_HDR_IPV4, \
348 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | \
349 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), \
352 #define proto_hint_ipv4_only_prot { \
353 VIRTCHNL_PROTO_HDR_IPV4, \
354 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), {BUFF_NOUSED } }
356 #define proto_hint_ipv4_prot { \
357 VIRTCHNL_PROTO_HDR_IPV4, \
358 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \
359 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | \
360 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), {BUFF_NOUSED } }
362 #define proto_hint_udp_src_port { \
363 VIRTCHNL_PROTO_HDR_UDP, \
364 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT), {BUFF_NOUSED } }
366 #define proto_hint_udp_dst_port { \
367 VIRTCHNL_PROTO_HDR_UDP, \
368 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT), {BUFF_NOUSED } }
370 #define proto_hint_udp_only { \
371 VIRTCHNL_PROTO_HDR_UDP, FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
373 #define proto_hint_udp { \
374 VIRTCHNL_PROTO_HDR_UDP, \
375 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT) | \
376 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT), {BUFF_NOUSED } }
378 #define proto_hint_tcp_src_port { \
379 VIRTCHNL_PROTO_HDR_TCP, \
380 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT), {BUFF_NOUSED } }
382 #define proto_hint_tcp_dst_port { \
383 VIRTCHNL_PROTO_HDR_TCP, \
384 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT), {BUFF_NOUSED } }
386 #define proto_hint_tcp_only { \
387 VIRTCHNL_PROTO_HDR_TCP, FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
389 #define proto_hint_tcp { \
390 VIRTCHNL_PROTO_HDR_TCP, \
391 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT) | \
392 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT), {BUFF_NOUSED } }
394 #define proto_hint_sctp_src_port { \
395 VIRTCHNL_PROTO_HDR_SCTP, \
396 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT), {BUFF_NOUSED } }
398 #define proto_hint_sctp_dst_port { \
399 VIRTCHNL_PROTO_HDR_SCTP, \
400 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT), {BUFF_NOUSED } }
402 #define proto_hint_sctp_only { \
403 VIRTCHNL_PROTO_HDR_SCTP, FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
405 #define proto_hint_sctp { \
406 VIRTCHNL_PROTO_HDR_SCTP, \
407 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT) | \
408 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT), {BUFF_NOUSED } }
410 #define proto_hint_ipv6_src { \
411 VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC), \
414 #define proto_hint_ipv6_dst { \
415 VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST), \
418 #define proto_hint_ipv6_only { \
419 VIRTCHNL_PROTO_HDR_IPV6, FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
421 #define proto_hint_ipv6 { \
422 VIRTCHNL_PROTO_HDR_IPV6, \
423 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \
424 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST), {BUFF_NOUSED } }
426 #define proto_hint_ipv6_src_prot { \
427 VIRTCHNL_PROTO_HDR_IPV6, \
428 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \
429 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), \
432 #define proto_hint_ipv6_dst_prot { \
433 VIRTCHNL_PROTO_HDR_IPV6, \
434 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST) | \
435 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), \
438 #define proto_hint_ipv6_only_prot { \
439 VIRTCHNL_PROTO_HDR_IPV6, \
440 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), {BUFF_NOUSED } }
442 #define proto_hint_ipv6_prot { \
443 VIRTCHNL_PROTO_HDR_IPV6, \
444 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \
445 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST) | \
446 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), {BUFF_NOUSED } }
448 #define proto_hint_gtpu_ip_teid { \
449 VIRTCHNL_PROTO_HDR_GTPU_IP, \
450 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_GTPU_IP_TEID), {BUFF_NOUSED } }
452 #define proto_hint_gtpu_eh_only { \
453 VIRTCHNL_PROTO_HDR_GTPU_EH, \
454 FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
456 #define proto_hint_gtpu_ip_only { \
457 VIRTCHNL_PROTO_HDR_GTPU_IP, \
458 FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
460 #define proto_hint_gtpu_up_only { \
461 VIRTCHNL_PROTO_HDR_GTPU_EH_PDU_UP, \
462 FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
464 #define proto_hint_gtpu_dwn_only { \
465 VIRTCHNL_PROTO_HDR_GTPU_EH_PDU_DWN, \
466 FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
468 #define proto_hint_esp { \
469 VIRTCHNL_PROTO_HDR_ESP, \
470 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_ESP_SPI), {BUFF_NOUSED } }
472 #define proto_hint_ah { \
473 VIRTCHNL_PROTO_HDR_AH, \
474 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_AH_SPI), {BUFF_NOUSED } }
476 #define proto_hint_l2tpv3 { \
477 VIRTCHNL_PROTO_HDR_L2TPV3, \
478 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_L2TPV3_SESS_ID), {BUFF_NOUSED } }
480 #define proto_hint_pfcp { \
481 VIRTCHNL_PROTO_HDR_PFCP, \
482 FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_PFCP_SEID), {BUFF_NOUSED } }
486 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv4 = {
487 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth_src,
488 proto_hint_ipv4_only }
491 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv4_udp = {
492 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
493 proto_hint_ipv4_only, proto_hint_udp_only }
496 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv4_tcp = {
497 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
498 proto_hint_ipv4_only, proto_hint_tcp_only }
501 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv4_sctp = {
502 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
503 proto_hint_ipv4_only, proto_hint_sctp_only }
506 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv4 = {
507 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth_dst,
508 proto_hint_ipv4_only }
511 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv4_udp = {
512 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
513 proto_hint_ipv4_only, proto_hint_udp_only }
516 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv4_tcp = {
517 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
518 proto_hint_ipv4_only, proto_hint_tcp_only }
521 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv4_sctp = {
522 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
523 proto_hint_ipv4_only, proto_hint_sctp_only }
526 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv4 = {
527 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth,
528 proto_hint_ipv4_only }
531 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv4_udp = {
532 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
533 proto_hint_ipv4_only, proto_hint_udp_only }
536 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv4_tcp = {
537 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
538 proto_hint_ipv4_only, proto_hint_tcp_only }
541 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv4_sctp = {
542 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
543 proto_hint_ipv4_only, proto_hint_sctp_only }
546 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv4 = {
547 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_svlan,
548 proto_hint_ipv4_only}
551 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv4_udp = {
552 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
553 proto_hint_ipv4_only, proto_hint_udp_only}
556 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv4_tcp = {
557 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
558 proto_hint_ipv4_only, proto_hint_tcp_only}
561 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv4_sctp = {
562 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
563 proto_hint_ipv4_only, proto_hint_sctp_only}
566 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv4 = {
567 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_cvlan,
568 proto_hint_ipv4_only}
571 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv4_udp = {
572 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
573 proto_hint_ipv4_only, proto_hint_udp_only}
576 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv4_tcp = {
577 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
578 proto_hint_ipv4_only, proto_hint_tcp_only}
581 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv4_sctp = {
582 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
583 proto_hint_ipv4_only, proto_hint_sctp_only}
586 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src = {
587 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv4_src }
590 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst = {
591 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv4_dst }
594 struct virtchnl_proto_hdrs hdrs_hint_ipv4 = {
595 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv4 }
598 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp = {
599 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
600 proto_hint_udp_only }
603 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp = {
604 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
605 proto_hint_udp_only }
608 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_only = {
609 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
610 proto_hint_udp_only }
613 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp = {
614 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
615 proto_hint_tcp_only }
618 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp = {
619 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
620 proto_hint_tcp_only }
623 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_only = {
624 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
625 proto_hint_tcp_only }
628 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_sctp = {
629 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
630 proto_hint_sctp_only }
633 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_sctp = {
634 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
635 proto_hint_sctp_only }
638 struct virtchnl_proto_hdrs hdrs_hint_ipv4_sctp_only = {
639 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
640 proto_hint_sctp_only }
643 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_port = {
644 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
645 proto_hint_udp_src_port }
648 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_port = {
649 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
650 proto_hint_udp_dst_port }
653 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_port = {
654 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
655 proto_hint_udp_src_port }
658 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_port = {
659 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
660 proto_hint_udp_dst_port }
663 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_port = {
664 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
665 proto_hint_udp_src_port }
668 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_port = {
669 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
670 proto_hint_udp_dst_port }
673 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp = {
674 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
678 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_port = {
679 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
680 proto_hint_tcp_src_port }
683 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_port = {
684 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
685 proto_hint_tcp_dst_port }
688 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_port = {
689 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
690 proto_hint_tcp_src_port }
693 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_port = {
694 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
695 proto_hint_tcp_dst_port }
698 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_port = {
699 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
700 proto_hint_tcp_src_port }
703 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_port = {
704 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
705 proto_hint_tcp_dst_port }
708 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp = {
709 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
713 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_sctp_src_port = {
714 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
715 proto_hint_sctp_src_port }
718 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_sctp_dst_port = {
719 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
720 proto_hint_sctp_dst_port }
723 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_sctp_src_port = {
724 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
725 proto_hint_sctp_src_port }
728 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_sctp_dst_port = {
729 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
730 proto_hint_sctp_dst_port }
733 struct virtchnl_proto_hdrs hdrs_hint_ipv4_sctp_src_port = {
734 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
735 proto_hint_sctp_src_port }
738 struct virtchnl_proto_hdrs hdrs_hint_ipv4_sctp_dst_port = {
739 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
740 proto_hint_sctp_dst_port }
743 struct virtchnl_proto_hdrs hdrs_hint_ipv4_sctp = {
744 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4,
748 struct virtchnl_proto_hdrs hdrs_hint_ipv4_esp = {
749 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
753 struct virtchnl_proto_hdrs hdrs_hint_ipv4_ah = {
754 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
758 struct virtchnl_proto_hdrs hdrs_hint_ipv4_l2tpv3 = {
759 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
763 struct virtchnl_proto_hdrs hdrs_hint_ipv4_pfcp = {
764 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
768 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_esp = {
769 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_ipv4_only,
770 proto_hint_udp_only, proto_hint_esp }
775 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_ip = {
776 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
777 proto_hint_ipv4_src }
780 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_ip = {
781 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
782 proto_hint_ipv4_dst }
785 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_ip = {
786 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
790 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_gtpu_ip = {
791 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
792 proto_hint_ipv4_src_prot, proto_hint_udp_only }
795 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_gtpu_ip = {
796 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
797 proto_hint_ipv4_dst_prot, proto_hint_udp_only }
800 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_udp_ip = {
801 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
802 proto_hint_ipv4_prot, proto_hint_udp_only }
805 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_gtpu_ip = {
806 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
807 proto_hint_ipv4_src_prot, proto_hint_tcp_only }
810 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_gtpu_ip = {
811 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
812 proto_hint_ipv4_dst_prot, proto_hint_tcp_only }
815 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_tcp_ip = {
816 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
817 proto_hint_ipv4_prot, proto_hint_tcp_only }
820 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_ip = {
821 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
822 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
825 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_ip = {
826 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
827 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
830 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_ip = {
831 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
832 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
835 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_ip = {
836 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
837 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
840 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_ip = {
841 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
842 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
845 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_ip = {
846 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
847 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
850 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_ip = {
851 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
852 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
855 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_ip = {
856 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
857 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
860 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_ip = {
861 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
862 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
865 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_ip = {
866 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
867 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
870 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_ip = {
871 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
872 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
875 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip = {
876 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
877 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
880 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_ip = {
881 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
882 proto_hint_ipv4_prot, proto_hint_udp}
885 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_ip = {
886 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
887 proto_hint_ipv4_prot, proto_hint_tcp}
890 struct virtchnl_proto_hdrs hdrs_hint_teid_gtpu_ip = {
891 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_teid}
896 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_ip = {
897 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
898 proto_hint_ipv6_src }
901 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_ip = {
902 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
903 proto_hint_ipv6_dst }
906 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_ip = {
907 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
911 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_gtpu_ip = {
912 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
913 proto_hint_ipv6_src_prot, proto_hint_udp_only }
916 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_gtpu_ip = {
917 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
918 proto_hint_ipv6_dst_prot, proto_hint_udp_only }
921 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_udp_ip = {
922 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
923 proto_hint_ipv6_prot, proto_hint_udp_only }
926 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_gtpu_ip = {
927 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
928 proto_hint_ipv6_src_prot, proto_hint_tcp_only }
931 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_gtpu_ip = {
932 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
933 proto_hint_ipv6_dst_prot, proto_hint_tcp_only }
936 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_tcp_ip = {
937 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
938 proto_hint_ipv6_prot, proto_hint_tcp_only }
941 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_ip = {
942 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
943 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
946 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_ip = {
947 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
948 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
951 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_ip = {
952 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
953 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
956 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_ip = {
957 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
958 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
961 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_ip = {
962 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
963 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
966 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_ip = {
967 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
968 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
971 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_ip = {
972 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
973 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
976 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_ip = {
977 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
978 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
981 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_ip = {
982 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
983 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
986 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_ip = {
987 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
988 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
991 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_ip = {
992 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
993 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
996 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_ip = {
997 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
998 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
1001 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_ip = {
1002 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
1003 proto_hint_ipv6_prot, proto_hint_udp}
1006 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_ip = {
1007 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
1008 proto_hint_ipv6_prot, proto_hint_tcp}
1013 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_gtpu_eh = {
1014 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1015 proto_hint_ipv4_src_prot, proto_hint_udp_only }
1018 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_gtpu_eh = {
1019 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1020 proto_hint_ipv4_dst_prot, proto_hint_udp_only }
1023 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_udp_eh = {
1024 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1025 proto_hint_ipv4_prot, proto_hint_udp_only }
1028 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_gtpu_eh = {
1029 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1030 proto_hint_ipv4_src_prot, proto_hint_tcp_only }
1033 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_gtpu_eh = {
1034 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1035 proto_hint_ipv4_dst_prot, proto_hint_tcp_only }
1038 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_tcp_eh = {
1039 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1040 proto_hint_ipv4_prot, proto_hint_tcp_only }
1043 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_eh = {
1044 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1045 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
1048 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_eh = {
1049 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1050 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
1053 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_eh = {
1054 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1055 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
1058 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_eh = {
1059 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1060 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
1063 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_eh = {
1064 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1065 proto_hint_ipv4_src }
1068 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_eh = {
1069 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1070 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
1073 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_eh = {
1074 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1075 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
1078 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_eh = {
1079 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1080 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
1083 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_eh = {
1084 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1085 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
1088 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_eh = {
1089 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1090 proto_hint_ipv4_dst }
1093 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_eh = {
1094 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1098 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_eh = {
1099 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1100 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
1103 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_eh = {
1104 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1105 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
1108 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_eh = {
1109 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1110 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
1113 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh = {
1114 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1115 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
1118 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_eh = {
1119 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1120 proto_hint_ipv4_prot, proto_hint_udp}
1123 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_eh = {
1124 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1125 proto_hint_ipv4_prot, proto_hint_tcp}
1130 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_gtpu_eh = {
1131 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1132 proto_hint_ipv6_src_prot, proto_hint_udp_only }
1135 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_gtpu_eh = {
1136 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1137 proto_hint_ipv6_dst_prot, proto_hint_udp_only }
1140 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_udp_eh = {
1141 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1142 proto_hint_ipv6_prot, proto_hint_udp_only }
1145 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_gtpu_eh = {
1146 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1147 proto_hint_ipv6_src_prot, proto_hint_tcp_only }
1150 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_gtpu_eh = {
1151 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1152 proto_hint_ipv6_dst_prot, proto_hint_tcp_only }
1155 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_tcp_eh = {
1156 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1157 proto_hint_ipv6_prot, proto_hint_tcp_only }
1160 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_eh = {
1161 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1162 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
1165 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_eh = {
1166 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1167 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
1170 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_eh = {
1171 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1172 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
1175 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_eh = {
1176 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1177 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
1180 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_eh = {
1181 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1182 proto_hint_ipv6_src }
1185 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_eh = {
1186 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1187 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
1190 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_eh = {
1191 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1192 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
1195 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_eh = {
1196 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1197 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
1200 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_eh = {
1201 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1202 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
1205 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_eh = {
1206 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1207 proto_hint_ipv6_dst }
1210 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_eh = {
1211 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1215 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_eh = {
1216 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1217 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
1220 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_eh = {
1221 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1222 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
1225 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_eh = {
1226 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1227 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
1230 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_eh = {
1231 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1232 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
1235 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_eh = {
1236 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1237 proto_hint_ipv6_prot, proto_hint_udp}
1240 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_eh = {
1241 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1242 proto_hint_ipv6_prot, proto_hint_tcp}
1247 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_gtpu_up = {
1248 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1249 proto_hint_ipv4_src_prot, proto_hint_udp_only }
1252 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_gtpu_up = {
1253 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1254 proto_hint_ipv4_dst_prot, proto_hint_udp_only }
1257 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_udp_up = {
1258 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1259 proto_hint_ipv4_prot, proto_hint_udp_only }
1262 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_gtpu_up = {
1263 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1264 proto_hint_ipv4_src_prot, proto_hint_tcp_only }
1267 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_gtpu_up = {
1268 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1269 proto_hint_ipv4_dst_prot, proto_hint_tcp_only }
1272 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_tcp_up = {
1273 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1274 proto_hint_ipv4_prot, proto_hint_tcp_only }
1277 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_up = {
1278 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1279 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
1282 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_up = {
1283 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1284 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
1287 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_up = {
1288 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1289 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
1292 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_up = {
1293 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1294 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
1297 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_up = {
1298 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1299 proto_hint_ipv4_src }
1302 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_up = {
1303 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1304 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
1307 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_up = {
1308 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1309 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
1312 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_up = {
1313 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1314 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
1317 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_up = {
1318 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1319 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
1322 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_up = {
1323 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1324 proto_hint_ipv4_dst }
1327 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_up = {
1328 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1332 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_up = {
1333 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1334 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
1337 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_up = {
1338 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1339 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
1342 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_up = {
1343 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1344 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
1347 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_up = {
1348 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1349 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
1352 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_up = {
1353 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1354 proto_hint_ipv4_prot, proto_hint_udp}
1357 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_up = {
1358 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1359 proto_hint_ipv4_prot, proto_hint_tcp}
1364 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_gtpu_up = {
1365 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1366 proto_hint_ipv6_src_prot, proto_hint_udp_only }
1369 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_gtpu_up = {
1370 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1371 proto_hint_ipv6_dst_prot, proto_hint_udp_only }
1374 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_udp_up = {
1375 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1376 proto_hint_ipv6_prot, proto_hint_udp_only }
1379 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_gtpu_up = {
1380 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1381 proto_hint_ipv6_src_prot, proto_hint_tcp_only }
1384 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_gtpu_up = {
1385 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1386 proto_hint_ipv6_dst_prot, proto_hint_tcp_only }
1389 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_tcp_up = {
1390 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1391 proto_hint_ipv6_prot, proto_hint_tcp_only }
1394 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_up = {
1395 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1396 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
1399 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_up = {
1400 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1401 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
1404 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_up = {
1405 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1406 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
1409 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_up = {
1410 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1411 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
1414 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_up = {
1415 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1416 proto_hint_ipv6_src }
1419 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_up = {
1420 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1421 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
1424 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_up = {
1425 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1426 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
1429 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_up = {
1430 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1431 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
1434 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_up = {
1435 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1436 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
1439 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_up = {
1440 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1441 proto_hint_ipv6_dst }
1444 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_up = {
1445 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1449 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_up = {
1450 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1451 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
1454 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_up = {
1455 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1456 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
1459 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_up = {
1460 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1461 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
1464 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_up = {
1465 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1466 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
1469 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_up = {
1470 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1471 proto_hint_ipv6_prot, proto_hint_udp}
1474 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_up = {
1475 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1476 proto_hint_ipv6_prot, proto_hint_tcp}
1481 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_gtpu_dwn = {
1482 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1483 proto_hint_ipv4_src_prot, proto_hint_udp_only }
1486 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_gtpu_dwn = {
1487 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1488 proto_hint_ipv4_dst_prot, proto_hint_udp_only }
1491 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_udp_dwn = {
1492 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1493 proto_hint_ipv4_prot, proto_hint_udp_only }
1496 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_gtpu_dwn = {
1497 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1498 proto_hint_ipv4_src_prot, proto_hint_tcp_only }
1501 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_gtpu_dwn = {
1502 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1503 proto_hint_ipv4_dst_prot, proto_hint_tcp_only }
1506 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_tcp_dwn = {
1507 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1508 proto_hint_ipv4_prot, proto_hint_tcp_only }
1511 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_dwn = {
1512 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1513 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
1516 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_dwn = {
1517 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1518 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
1521 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_dwn = {
1522 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1523 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
1526 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_dwn = {
1527 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1528 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
1531 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_dwn = {
1532 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1533 proto_hint_ipv4_src }
1536 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_dwn = {
1537 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1538 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
1541 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_dwn = {
1542 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1543 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
1546 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_dwn = {
1547 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1548 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
1551 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn = {
1552 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1553 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
1556 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_dwn = {
1557 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1558 proto_hint_ipv4_dst }
1561 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_dwn = {
1562 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1566 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_dwn = {
1567 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1568 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
1571 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn = {
1572 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1573 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
1576 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn = {
1577 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1578 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
1581 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn = {
1582 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1583 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
1586 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_dwn = {
1587 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1588 proto_hint_ipv4_prot, proto_hint_udp}
1591 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_dwn = {
1592 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1593 proto_hint_ipv4_prot, proto_hint_tcp}
1598 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_gtpu_dwn = {
1599 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1600 proto_hint_ipv6_src_prot, proto_hint_udp_only }
1603 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_gtpu_dwn = {
1604 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1605 proto_hint_ipv6_dst_prot, proto_hint_udp_only }
1608 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_udp_dwn = {
1609 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1610 proto_hint_ipv6_prot, proto_hint_udp_only }
1613 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_gtpu_dwn = {
1614 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1615 proto_hint_ipv6_src_prot, proto_hint_tcp_only }
1618 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_gtpu_dwn = {
1619 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1620 proto_hint_ipv6_dst_prot, proto_hint_tcp_only }
1623 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_tcp_dwn = {
1624 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1625 proto_hint_ipv6_prot, proto_hint_tcp_only }
1628 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_dwn = {
1629 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1630 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
1633 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_dwn = {
1634 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1635 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
1638 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_dwn = {
1639 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1640 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
1643 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_dwn = {
1644 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1645 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
1648 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_dwn = {
1649 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1650 proto_hint_ipv6_src }
1653 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_dwn = {
1654 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1655 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
1658 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_dwn = {
1659 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1660 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
1663 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_dwn = {
1664 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1665 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
1668 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_dwn = {
1669 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1670 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
1673 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_dwn = {
1674 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1675 proto_hint_ipv6_dst }
1678 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_dwn = {
1679 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1683 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_dwn = {
1684 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1685 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
1688 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_dwn = {
1689 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1690 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
1693 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_dwn = {
1694 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1695 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
1698 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_dwn = {
1699 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1700 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
1703 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_dwn = {
1704 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1705 proto_hint_ipv6_prot, proto_hint_udp}
1708 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_dwn = {
1709 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1710 proto_hint_ipv6_prot, proto_hint_tcp}
1715 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6 = {
1716 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth_src,
1717 proto_hint_ipv6_only }
1720 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6_udp = {
1721 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
1722 proto_hint_ipv6_only, proto_hint_udp_only }
1725 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6_tcp = {
1726 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
1727 proto_hint_ipv6_only, proto_hint_tcp_only }
1730 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6_sctp = {
1731 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
1732 proto_hint_ipv6_only, proto_hint_sctp_only }
1735 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6 = {
1736 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth_dst,
1737 proto_hint_ipv6_only }
1740 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6_udp = {
1741 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
1742 proto_hint_ipv6_only, proto_hint_udp_only }
1745 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6_tcp = {
1746 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
1747 proto_hint_ipv6_only, proto_hint_tcp_only }
1750 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6_sctp = {
1751 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
1752 proto_hint_ipv6_only, proto_hint_sctp_only }
1755 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6 = {
1756 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth,
1757 proto_hint_ipv6_only }
1760 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6_udp = {
1761 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
1762 proto_hint_ipv6_only, proto_hint_udp_only }
1765 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6_tcp = {
1766 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
1767 proto_hint_ipv6_only, proto_hint_tcp_only }
1770 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6_sctp = {
1771 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
1772 proto_hint_ipv6_only, proto_hint_sctp_only }
1775 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6 = {
1776 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_svlan,
1777 proto_hint_ipv6_only}
1780 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6_udp = {
1781 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
1782 proto_hint_ipv6_only, proto_hint_udp_only}
1785 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6_tcp = {
1786 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
1787 proto_hint_ipv6_only, proto_hint_tcp_only}
1790 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6_sctp = {
1791 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
1792 proto_hint_ipv6_only, proto_hint_sctp_only}
1795 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6 = {
1796 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_cvlan,
1797 proto_hint_ipv6_only}
1800 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6_udp = {
1801 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
1802 proto_hint_ipv6_only, proto_hint_udp_only}
1805 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6_tcp = {
1806 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
1807 proto_hint_ipv6_only, proto_hint_tcp_only}
1810 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6_sctp = {
1811 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
1812 proto_hint_ipv6_only, proto_hint_sctp_only}
1815 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src = {
1816 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv6_src }
1819 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst = {
1820 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv6_dst }
1823 struct virtchnl_proto_hdrs hdrs_hint_ipv6 = {
1824 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv6 }
1827 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp = {
1828 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1829 proto_hint_udp_only }
1832 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp = {
1833 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1834 proto_hint_udp_only }
1837 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_only = {
1838 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
1839 proto_hint_udp_only }
1842 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp = {
1843 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1844 proto_hint_tcp_only }
1847 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp = {
1848 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1849 proto_hint_tcp_only }
1852 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_only = {
1853 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
1854 proto_hint_tcp_only }
1857 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_sctp = {
1858 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1859 proto_hint_sctp_only }
1862 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_sctp = {
1863 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1864 proto_hint_sctp_only }
1867 struct virtchnl_proto_hdrs hdrs_hint_ipv6_sctp_only = {
1868 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
1869 proto_hint_sctp_only }
1872 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_port = {
1873 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1874 proto_hint_udp_src_port }
1877 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_port = {
1878 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1879 proto_hint_udp_dst_port }
1882 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_port = {
1883 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1884 proto_hint_udp_src_port }
1887 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_port = {
1888 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1889 proto_hint_udp_dst_port }
1892 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_port = {
1893 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1894 proto_hint_udp_src_port }
1897 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_port = {
1898 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1899 proto_hint_udp_dst_port }
1902 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp = {
1903 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
1907 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_port = {
1908 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1909 proto_hint_tcp_src_port }
1912 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_port = {
1913 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1914 proto_hint_tcp_dst_port }
1917 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_port = {
1918 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1919 proto_hint_tcp_src_port }
1922 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_port = {
1923 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1924 proto_hint_tcp_dst_port }
1927 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_port = {
1928 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1929 proto_hint_tcp_src_port }
1932 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_port = {
1933 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1934 proto_hint_tcp_dst_port }
1937 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp = {
1938 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
1942 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_sctp_src_port = {
1943 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
1944 proto_hint_sctp_src_port }
1947 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_sctp_dst_port = {
1948 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
1949 proto_hint_sctp_dst_port }
1952 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_sctp_src_port = {
1953 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
1954 proto_hint_sctp_src_port }
1957 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_sctp_dst_port = {
1958 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
1959 proto_hint_sctp_dst_port }
1962 struct virtchnl_proto_hdrs hdrs_hint_ipv6_sctp_src_port = {
1963 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1964 proto_hint_sctp_src_port }
1967 struct virtchnl_proto_hdrs hdrs_hint_ipv6_sctp_dst_port = {
1968 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1969 proto_hint_sctp_dst_port }
1972 struct virtchnl_proto_hdrs hdrs_hint_ipv6_sctp = {
1973 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6,
1977 struct virtchnl_proto_hdrs hdrs_hint_ipv6_esp = {
1978 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1982 struct virtchnl_proto_hdrs hdrs_hint_ipv6_ah = {
1983 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1987 struct virtchnl_proto_hdrs hdrs_hint_ipv6_l2tpv3 = {
1988 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1992 struct virtchnl_proto_hdrs hdrs_hint_ipv6_pfcp = {
1993 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1997 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_esp = {
1998 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_ipv6_only,
1999 proto_hint_udp_only, proto_hint_esp }
2002 struct iavf_hash_match_type iavf_hash_map_list[] = {
2004 {ETH_RSS_L2_SRC_ONLY,
2005 &hdrs_hint_eth_src_ipv4, IAVF_PHINT_IPV4},
2006 {ETH_RSS_L2_DST_ONLY,
2007 &hdrs_hint_eth_dst_ipv4, IAVF_PHINT_IPV4},
2009 &hdrs_hint_eth_ipv4, IAVF_PHINT_IPV4},
2010 {ETH_RSS_L3_SRC_ONLY,
2011 &hdrs_hint_ipv4_src, IAVF_PHINT_IPV4},
2012 {ETH_RSS_L3_DST_ONLY,
2013 &hdrs_hint_ipv4_dst, IAVF_PHINT_IPV4},
2014 {ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY,
2015 &hdrs_hint_ipv4_src, IAVF_PHINT_IPV4},
2016 {ETH_RSS_IPV4 | ETH_RSS_L3_DST_ONLY,
2017 &hdrs_hint_ipv4_dst, IAVF_PHINT_IPV4},
2019 &hdrs_hint_ipv4, IAVF_PHINT_IPV4},
2021 &hdrs_hint_ipv4_esp, IAVF_PHINT_IPV4},
2023 &hdrs_hint_ipv4_ah, IAVF_PHINT_IPV4},
2025 &hdrs_hint_ipv4_l2tpv3, IAVF_PHINT_IPV4},
2027 &hdrs_hint_svlan_ipv4, IAVF_PHINT_IPV4},
2029 &hdrs_hint_svlan_ipv4_udp, IAVF_PHINT_IPV4_UDP},
2031 &hdrs_hint_svlan_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
2033 &hdrs_hint_svlan_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
2035 &hdrs_hint_cvlan_ipv4, IAVF_PHINT_IPV4},
2037 &hdrs_hint_cvlan_ipv4_udp, IAVF_PHINT_IPV4_UDP},
2039 &hdrs_hint_cvlan_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
2041 &hdrs_hint_cvlan_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
2043 {ETH_RSS_L2_SRC_ONLY,
2044 &hdrs_hint_eth_src_ipv4_udp, IAVF_PHINT_IPV4_UDP},
2045 {ETH_RSS_L2_DST_ONLY,
2046 &hdrs_hint_eth_dst_ipv4_udp, IAVF_PHINT_IPV4_UDP},
2048 &hdrs_hint_eth_ipv4_udp, IAVF_PHINT_IPV4_UDP},
2049 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2050 &hdrs_hint_ipv4_src_udp_src_port, IAVF_PHINT_IPV4_UDP},
2051 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2052 &hdrs_hint_ipv4_src_udp_dst_port, IAVF_PHINT_IPV4_UDP},
2053 {ETH_RSS_L3_SRC_ONLY,
2054 &hdrs_hint_ipv4_src_udp, IAVF_PHINT_IPV4_UDP},
2055 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2056 &hdrs_hint_ipv4_dst_udp_src_port, IAVF_PHINT_IPV4_UDP},
2057 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2058 &hdrs_hint_ipv4_dst_udp_dst_port, IAVF_PHINT_IPV4_UDP},
2059 {ETH_RSS_L3_DST_ONLY,
2060 &hdrs_hint_ipv4_dst_udp, IAVF_PHINT_IPV4_UDP},
2061 {ETH_RSS_NONFRAG_IPV4_UDP |
2062 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2063 &hdrs_hint_ipv4_src_udp_src_port, IAVF_PHINT_IPV4_UDP},
2064 {ETH_RSS_NONFRAG_IPV4_UDP |
2065 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2066 &hdrs_hint_ipv4_src_udp_dst_port, IAVF_PHINT_IPV4_UDP},
2067 {ETH_RSS_NONFRAG_IPV4_UDP |
2068 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src_udp,
2069 IAVF_PHINT_IPV4_UDP},
2070 {ETH_RSS_NONFRAG_IPV4_UDP |
2071 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2072 &hdrs_hint_ipv4_dst_udp_src_port, IAVF_PHINT_IPV4_UDP},
2073 {ETH_RSS_NONFRAG_IPV4_UDP |
2074 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2075 &hdrs_hint_ipv4_dst_udp_dst_port, IAVF_PHINT_IPV4_UDP},
2076 {ETH_RSS_NONFRAG_IPV4_UDP |
2077 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv4_dst_udp,
2078 IAVF_PHINT_IPV4_UDP},
2079 {ETH_RSS_L4_SRC_ONLY,
2080 &hdrs_hint_ipv4_udp_src_port, IAVF_PHINT_IPV4_UDP},
2081 {ETH_RSS_L4_DST_ONLY,
2082 &hdrs_hint_ipv4_udp_dst_port, IAVF_PHINT_IPV4_UDP},
2083 {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L4_SRC_ONLY,
2084 &hdrs_hint_ipv4_udp_src_port, IAVF_PHINT_IPV4_UDP},
2085 {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L4_DST_ONLY,
2086 &hdrs_hint_ipv4_udp_dst_port, IAVF_PHINT_IPV4_UDP},
2088 &hdrs_hint_ipv4_pfcp, IAVF_PHINT_IPV4_UDP},
2090 &hdrs_hint_ipv4_udp_esp, IAVF_PHINT_IPV4_UDP},
2091 {ETH_RSS_NONFRAG_IPV4_UDP,
2092 &hdrs_hint_ipv4_udp, IAVF_PHINT_IPV4_UDP},
2094 {ETH_RSS_L2_SRC_ONLY,
2095 &hdrs_hint_eth_src_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
2096 {ETH_RSS_L2_DST_ONLY,
2097 &hdrs_hint_eth_dst_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
2099 &hdrs_hint_eth_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
2100 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2101 &hdrs_hint_ipv4_src_tcp_src_port, IAVF_PHINT_IPV4_TCP},
2102 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2103 &hdrs_hint_ipv4_src_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
2104 {ETH_RSS_L3_SRC_ONLY,
2105 &hdrs_hint_ipv4_src_tcp, IAVF_PHINT_IPV4_TCP},
2106 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2107 &hdrs_hint_ipv4_dst_tcp_src_port, IAVF_PHINT_IPV4_TCP},
2108 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2109 &hdrs_hint_ipv4_dst_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
2110 {ETH_RSS_L3_DST_ONLY,
2111 &hdrs_hint_ipv4_dst_tcp, IAVF_PHINT_IPV4_TCP},
2112 {ETH_RSS_NONFRAG_IPV4_TCP |
2113 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2114 &hdrs_hint_ipv4_src_tcp_src_port, IAVF_PHINT_IPV4_TCP},
2115 {ETH_RSS_NONFRAG_IPV4_TCP |
2116 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2117 &hdrs_hint_ipv4_src_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
2118 {ETH_RSS_NONFRAG_IPV4_TCP |
2119 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src_tcp,
2120 IAVF_PHINT_IPV4_TCP},
2121 {ETH_RSS_NONFRAG_IPV4_TCP |
2122 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2123 &hdrs_hint_ipv4_dst_tcp_src_port, IAVF_PHINT_IPV4_TCP},
2124 {ETH_RSS_NONFRAG_IPV4_TCP |
2125 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2126 &hdrs_hint_ipv4_dst_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
2127 {ETH_RSS_NONFRAG_IPV4_TCP |
2128 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv4_dst_tcp,
2129 IAVF_PHINT_IPV4_TCP},
2130 {ETH_RSS_L4_SRC_ONLY,
2131 &hdrs_hint_ipv4_tcp_src_port, IAVF_PHINT_IPV4_TCP},
2132 {ETH_RSS_L4_DST_ONLY,
2133 &hdrs_hint_ipv4_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
2134 {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L4_SRC_ONLY,
2135 &hdrs_hint_ipv4_tcp_src_port, IAVF_PHINT_IPV4_TCP},
2136 {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L4_DST_ONLY,
2137 &hdrs_hint_ipv4_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
2138 {ETH_RSS_NONFRAG_IPV4_TCP,
2139 &hdrs_hint_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
2141 {ETH_RSS_L2_SRC_ONLY,
2142 &hdrs_hint_eth_src_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
2143 {ETH_RSS_L2_DST_ONLY,
2144 &hdrs_hint_eth_dst_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
2146 &hdrs_hint_eth_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
2147 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2148 &hdrs_hint_ipv4_src_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
2149 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2150 &hdrs_hint_ipv4_src_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
2151 {ETH_RSS_L3_SRC_ONLY,
2152 &hdrs_hint_ipv4_src_sctp, IAVF_PHINT_IPV4_SCTP},
2153 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2154 &hdrs_hint_ipv4_dst_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
2155 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2156 &hdrs_hint_ipv4_dst_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
2157 {ETH_RSS_L3_DST_ONLY,
2158 &hdrs_hint_ipv4_dst_sctp, IAVF_PHINT_IPV4_SCTP},
2159 {ETH_RSS_NONFRAG_IPV4_SCTP |
2160 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2161 &hdrs_hint_ipv4_src_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
2162 {ETH_RSS_NONFRAG_IPV4_SCTP |
2163 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2164 &hdrs_hint_ipv4_src_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
2165 {ETH_RSS_NONFRAG_IPV4_SCTP |
2166 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src_sctp,
2167 IAVF_PHINT_IPV4_SCTP},
2168 {ETH_RSS_NONFRAG_IPV4_SCTP |
2169 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2170 &hdrs_hint_ipv4_dst_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
2171 {ETH_RSS_NONFRAG_IPV4_SCTP |
2172 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2173 &hdrs_hint_ipv4_dst_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
2174 {ETH_RSS_NONFRAG_IPV4_SCTP |
2175 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv4_dst_sctp,
2176 IAVF_PHINT_IPV4_SCTP},
2177 {ETH_RSS_L4_SRC_ONLY,
2178 &hdrs_hint_ipv4_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
2179 {ETH_RSS_L4_DST_ONLY,
2180 &hdrs_hint_ipv4_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
2181 {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L4_SRC_ONLY,
2182 &hdrs_hint_ipv4_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
2183 {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L4_DST_ONLY,
2184 &hdrs_hint_ipv4_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
2185 {ETH_RSS_NONFRAG_IPV4_SCTP,
2186 &hdrs_hint_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
2188 {ETH_RSS_L2_SRC_ONLY,
2189 &hdrs_hint_eth_src_ipv6, IAVF_PHINT_IPV6},
2190 {ETH_RSS_L2_DST_ONLY,
2191 &hdrs_hint_eth_dst_ipv6, IAVF_PHINT_IPV6},
2193 &hdrs_hint_eth_ipv6, IAVF_PHINT_IPV6},
2194 {ETH_RSS_L3_SRC_ONLY,
2195 &hdrs_hint_ipv6_src, IAVF_PHINT_IPV6},
2196 {ETH_RSS_L3_DST_ONLY,
2197 &hdrs_hint_ipv6_dst, IAVF_PHINT_IPV6},
2198 {ETH_RSS_IPV6 | ETH_RSS_L3_SRC_ONLY,
2199 &hdrs_hint_ipv6_src, IAVF_PHINT_IPV6},
2200 {ETH_RSS_IPV6 | ETH_RSS_L3_DST_ONLY,
2201 &hdrs_hint_ipv6_dst, IAVF_PHINT_IPV6},
2203 &hdrs_hint_ipv6, IAVF_PHINT_IPV6},
2205 &hdrs_hint_ipv6_esp, IAVF_PHINT_IPV6},
2207 &hdrs_hint_ipv6_ah, IAVF_PHINT_IPV6},
2209 &hdrs_hint_ipv6_l2tpv3, IAVF_PHINT_IPV6},
2211 {ETH_RSS_L2_SRC_ONLY,
2212 &hdrs_hint_eth_src_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2213 {ETH_RSS_L2_DST_ONLY,
2214 &hdrs_hint_eth_dst_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2216 &hdrs_hint_eth_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2217 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2218 &hdrs_hint_ipv6_src_udp_src_port, IAVF_PHINT_IPV6_UDP},
2219 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2220 &hdrs_hint_ipv6_src_udp_dst_port, IAVF_PHINT_IPV6_UDP},
2221 {ETH_RSS_L3_SRC_ONLY,
2222 &hdrs_hint_ipv6_src_udp, IAVF_PHINT_IPV6_UDP},
2223 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2224 &hdrs_hint_ipv6_dst_udp_src_port, IAVF_PHINT_IPV6_UDP},
2225 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2226 &hdrs_hint_ipv6_dst_udp_dst_port, IAVF_PHINT_IPV6_UDP},
2227 {ETH_RSS_L3_DST_ONLY,
2228 &hdrs_hint_ipv6_dst_udp, IAVF_PHINT_IPV6_UDP},
2229 {ETH_RSS_NONFRAG_IPV6_UDP |
2230 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2231 &hdrs_hint_ipv6_src_udp_src_port, IAVF_PHINT_IPV6_UDP},
2232 {ETH_RSS_NONFRAG_IPV6_UDP |
2233 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2234 &hdrs_hint_ipv6_src_udp_dst_port, IAVF_PHINT_IPV6_UDP},
2235 {ETH_RSS_NONFRAG_IPV6_UDP |
2236 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src_udp,
2237 IAVF_PHINT_IPV6_UDP},
2238 {ETH_RSS_NONFRAG_IPV6_UDP |
2239 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2240 &hdrs_hint_ipv6_dst_udp_src_port, IAVF_PHINT_IPV6_UDP},
2241 {ETH_RSS_NONFRAG_IPV6_UDP |
2242 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2243 &hdrs_hint_ipv6_dst_udp_dst_port, IAVF_PHINT_IPV6_UDP},
2244 {ETH_RSS_NONFRAG_IPV6_UDP |
2245 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv6_dst_udp,
2246 IAVF_PHINT_IPV6_UDP},
2247 {ETH_RSS_L4_SRC_ONLY,
2248 &hdrs_hint_ipv6_udp_src_port, IAVF_PHINT_IPV6_UDP},
2249 {ETH_RSS_L4_DST_ONLY,
2250 &hdrs_hint_ipv6_udp_dst_port, IAVF_PHINT_IPV6_UDP},
2251 {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L4_SRC_ONLY,
2252 &hdrs_hint_ipv6_udp_src_port, IAVF_PHINT_IPV6_UDP},
2253 {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L4_DST_ONLY,
2254 &hdrs_hint_ipv6_udp_dst_port, IAVF_PHINT_IPV6_UDP},
2256 &hdrs_hint_ipv6_pfcp, IAVF_PHINT_IPV6_UDP},
2258 &hdrs_hint_ipv6_udp_esp, IAVF_PHINT_IPV6_UDP},
2259 {ETH_RSS_NONFRAG_IPV6_UDP,
2260 &hdrs_hint_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2262 {ETH_RSS_L2_SRC_ONLY,
2263 &hdrs_hint_eth_src_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2264 {ETH_RSS_L2_DST_ONLY,
2265 &hdrs_hint_eth_dst_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2267 &hdrs_hint_eth_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2268 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2269 &hdrs_hint_ipv6_src_tcp_src_port, IAVF_PHINT_IPV6_TCP},
2270 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2271 &hdrs_hint_ipv6_src_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
2272 {ETH_RSS_L3_SRC_ONLY,
2273 &hdrs_hint_ipv6_src_tcp, IAVF_PHINT_IPV6_TCP},
2274 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2275 &hdrs_hint_ipv6_dst_tcp_src_port, IAVF_PHINT_IPV6_TCP},
2276 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2277 &hdrs_hint_ipv6_dst_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
2278 {ETH_RSS_L3_DST_ONLY,
2279 &hdrs_hint_ipv6_dst_tcp, IAVF_PHINT_IPV6_TCP},
2280 {ETH_RSS_NONFRAG_IPV6_TCP |
2281 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2282 &hdrs_hint_ipv6_src_tcp_src_port, IAVF_PHINT_IPV6_TCP},
2283 {ETH_RSS_NONFRAG_IPV6_TCP |
2284 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2285 &hdrs_hint_ipv6_src_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
2286 {ETH_RSS_NONFRAG_IPV6_TCP |
2287 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src_tcp,
2288 IAVF_PHINT_IPV6_TCP},
2289 {ETH_RSS_NONFRAG_IPV6_TCP |
2290 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2291 &hdrs_hint_ipv6_dst_tcp_src_port, IAVF_PHINT_IPV6_TCP},
2292 {ETH_RSS_NONFRAG_IPV6_TCP |
2293 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2294 &hdrs_hint_ipv6_dst_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
2295 {ETH_RSS_NONFRAG_IPV6_TCP |
2296 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv6_dst_tcp,
2297 IAVF_PHINT_IPV6_TCP},
2298 {ETH_RSS_L4_SRC_ONLY,
2299 &hdrs_hint_ipv6_tcp_src_port, IAVF_PHINT_IPV6_TCP},
2300 {ETH_RSS_L4_DST_ONLY,
2301 &hdrs_hint_ipv6_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
2302 {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L4_SRC_ONLY,
2303 &hdrs_hint_ipv6_tcp_src_port, IAVF_PHINT_IPV6_TCP},
2304 {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L4_DST_ONLY,
2305 &hdrs_hint_ipv6_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
2306 {ETH_RSS_NONFRAG_IPV6_TCP,
2307 &hdrs_hint_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2309 {ETH_RSS_L2_SRC_ONLY,
2310 &hdrs_hint_eth_src_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2311 {ETH_RSS_L2_DST_ONLY,
2312 &hdrs_hint_eth_dst_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2314 &hdrs_hint_eth_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2315 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2316 &hdrs_hint_ipv6_src_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2317 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2318 &hdrs_hint_ipv6_src_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2319 {ETH_RSS_L3_SRC_ONLY,
2320 &hdrs_hint_ipv6_src_sctp, IAVF_PHINT_IPV6_SCTP},
2321 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2322 &hdrs_hint_ipv6_dst_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2323 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2324 &hdrs_hint_ipv6_dst_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2325 {ETH_RSS_L3_DST_ONLY,
2326 &hdrs_hint_ipv6_dst_sctp, IAVF_PHINT_IPV6_SCTP},
2327 {ETH_RSS_NONFRAG_IPV6_SCTP |
2328 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2329 &hdrs_hint_ipv6_src_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2330 {ETH_RSS_NONFRAG_IPV6_SCTP |
2331 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2332 &hdrs_hint_ipv6_src_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2333 {ETH_RSS_NONFRAG_IPV6_SCTP |
2334 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src_sctp,
2335 IAVF_PHINT_IPV6_SCTP},
2336 {ETH_RSS_NONFRAG_IPV6_SCTP |
2337 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2338 &hdrs_hint_ipv6_dst_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2339 {ETH_RSS_NONFRAG_IPV6_SCTP |
2340 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2341 &hdrs_hint_ipv6_dst_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2342 {ETH_RSS_NONFRAG_IPV6_SCTP |
2343 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv6_dst_sctp,
2344 IAVF_PHINT_IPV6_SCTP},
2345 {ETH_RSS_L4_SRC_ONLY,
2346 &hdrs_hint_ipv6_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2347 {ETH_RSS_L4_DST_ONLY,
2348 &hdrs_hint_ipv6_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2349 {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_SRC_ONLY,
2350 &hdrs_hint_ipv6_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2351 {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_DST_ONLY,
2352 &hdrs_hint_ipv6_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2353 {ETH_RSS_NONFRAG_IPV6_SCTP,
2354 &hdrs_hint_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2356 &hdrs_hint_svlan_ipv6, IAVF_PHINT_IPV6},
2358 &hdrs_hint_svlan_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2360 &hdrs_hint_svlan_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2362 &hdrs_hint_svlan_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2364 &hdrs_hint_cvlan_ipv6, IAVF_PHINT_IPV6},
2366 &hdrs_hint_cvlan_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2368 &hdrs_hint_cvlan_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2370 &hdrs_hint_cvlan_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2373 struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = {
2376 /* IPv4 GTPU IP IPv4*/
2377 {ETH_RSS_L3_SRC_ONLY,
2378 &hdrs_hint_ipv4_src_gtpu_ip,
2379 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2380 {ETH_RSS_L3_DST_ONLY,
2381 &hdrs_hint_ipv4_dst_gtpu_ip,
2382 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2384 ETH_RSS_L3_SRC_ONLY,
2385 &hdrs_hint_ipv4_src_gtpu_ip,
2386 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2388 ETH_RSS_L3_DST_ONLY,
2389 &hdrs_hint_ipv4_dst_gtpu_ip,
2390 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2392 &hdrs_hint_ipv4_gtpu_ip,
2393 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2395 &hdrs_hint_teid_gtpu_ip,
2396 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2397 /* IPv4 GTPU IP IPv6*/
2399 ETH_RSS_L3_SRC_ONLY,
2400 &hdrs_hint_ipv6_src_gtpu_ip,
2401 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2403 ETH_RSS_L3_DST_ONLY,
2404 &hdrs_hint_ipv6_dst_gtpu_ip,
2405 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2407 &hdrs_hint_ipv6_gtpu_ip,
2408 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2410 &hdrs_hint_teid_gtpu_ip,
2411 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2412 /* IPv6 GTPU IP IPv4*/
2414 ETH_RSS_L3_SRC_ONLY,
2415 &hdrs_hint_ipv4_src_gtpu_ip,
2416 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2418 ETH_RSS_L3_DST_ONLY,
2419 &hdrs_hint_ipv4_dst_gtpu_ip,
2420 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2422 &hdrs_hint_ipv4_gtpu_ip,
2423 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2425 &hdrs_hint_teid_gtpu_ip,
2426 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2427 /* IPv6 GTPU IP IPv6*/
2429 ETH_RSS_L3_SRC_ONLY,
2430 &hdrs_hint_ipv6_src_gtpu_ip,
2431 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2433 ETH_RSS_L3_DST_ONLY,
2434 &hdrs_hint_ipv6_dst_gtpu_ip,
2435 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2437 &hdrs_hint_ipv6_gtpu_ip,
2438 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2440 &hdrs_hint_teid_gtpu_ip,
2441 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2442 /* IPv4 GTPU IP IPv4 UDP */
2443 {ETH_RSS_L3_SRC_ONLY |
2444 ETH_RSS_L4_SRC_ONLY,
2445 &hdrs_hint_ipv4_src_udp_src_gtpu_ip,
2446 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2447 {ETH_RSS_L3_SRC_ONLY |
2448 ETH_RSS_L4_DST_ONLY,
2449 &hdrs_hint_ipv4_src_udp_dst_gtpu_ip,
2450 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2451 {ETH_RSS_L3_SRC_ONLY,
2452 &hdrs_hint_ipv4_src_udp_gtpu_ip,
2453 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2454 {ETH_RSS_L4_SRC_ONLY,
2455 &hdrs_hint_ipv4_udp_src_gtpu_ip,
2456 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2457 {ETH_RSS_L3_DST_ONLY |
2458 ETH_RSS_L4_SRC_ONLY,
2459 &hdrs_hint_ipv4_dst_udp_src_gtpu_ip,
2460 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2461 {ETH_RSS_L3_DST_ONLY |
2462 ETH_RSS_L4_DST_ONLY,
2463 &hdrs_hint_ipv4_dst_udp_dst_gtpu_ip,
2464 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2465 {ETH_RSS_L3_DST_ONLY,
2466 &hdrs_hint_ipv4_dst_udp_gtpu_ip,
2467 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2468 {ETH_RSS_L4_DST_ONLY,
2469 &hdrs_hint_ipv4_udp_dst_gtpu_ip,
2470 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2471 {ETH_RSS_NONFRAG_IPV4_UDP |
2472 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2473 &hdrs_hint_ipv4_src_udp_src_gtpu_ip,
2474 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2475 {ETH_RSS_NONFRAG_IPV4_UDP |
2476 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2477 &hdrs_hint_ipv4_src_udp_dst_gtpu_ip,
2478 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2479 {ETH_RSS_NONFRAG_IPV4_UDP |
2480 ETH_RSS_L3_SRC_ONLY,
2481 &hdrs_hint_ipv4_src_udp_gtpu_ip,
2482 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2483 {ETH_RSS_NONFRAG_IPV4_UDP |
2484 ETH_RSS_L4_SRC_ONLY,
2485 &hdrs_hint_ipv4_udp_src_gtpu_ip,
2486 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2487 {ETH_RSS_NONFRAG_IPV4_UDP |
2488 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2489 &hdrs_hint_ipv4_dst_udp_src_gtpu_ip,
2490 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2491 {ETH_RSS_NONFRAG_IPV4_UDP |
2492 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2493 &hdrs_hint_ipv4_dst_udp_dst_gtpu_ip,
2494 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2495 {ETH_RSS_NONFRAG_IPV4_UDP |
2496 ETH_RSS_L3_DST_ONLY,
2497 &hdrs_hint_ipv4_dst_udp_gtpu_ip,
2498 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2499 {ETH_RSS_NONFRAG_IPV4_UDP |
2500 ETH_RSS_L4_DST_ONLY,
2501 &hdrs_hint_ipv4_udp_dst_gtpu_ip,
2502 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2503 {ETH_RSS_NONFRAG_IPV4_UDP,
2504 &hdrs_hint_ipv4_udp_gtpu_ip,
2505 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2506 /* IPv4 GTPU IP IPv6 UDP */
2507 {ETH_RSS_NONFRAG_IPV6_UDP |
2508 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2509 &hdrs_hint_ipv6_src_udp_src_gtpu_ip,
2510 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2511 {ETH_RSS_NONFRAG_IPV6_UDP |
2512 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2513 &hdrs_hint_ipv6_src_udp_dst_gtpu_ip,
2514 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2515 {ETH_RSS_NONFRAG_IPV6_UDP |
2516 ETH_RSS_L3_SRC_ONLY,
2517 &hdrs_hint_ipv6_src_udp_gtpu_ip,
2518 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2519 {ETH_RSS_NONFRAG_IPV6_UDP |
2520 ETH_RSS_L4_SRC_ONLY,
2521 &hdrs_hint_ipv6_udp_src_gtpu_ip,
2522 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2523 {ETH_RSS_NONFRAG_IPV6_UDP |
2524 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2525 &hdrs_hint_ipv6_dst_udp_src_gtpu_ip,
2526 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2527 {ETH_RSS_NONFRAG_IPV6_UDP |
2528 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2529 &hdrs_hint_ipv6_dst_udp_dst_gtpu_ip,
2530 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2531 {ETH_RSS_NONFRAG_IPV6_UDP |
2532 ETH_RSS_L3_DST_ONLY,
2533 &hdrs_hint_ipv6_dst_udp_gtpu_ip,
2534 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2535 {ETH_RSS_NONFRAG_IPV6_UDP |
2536 ETH_RSS_L4_DST_ONLY,
2537 &hdrs_hint_ipv6_udp_dst_gtpu_ip,
2538 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2539 {ETH_RSS_NONFRAG_IPV6_UDP,
2540 &hdrs_hint_ipv6_udp_gtpu_ip,
2541 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2542 /* IPv6 GTPU IP IPv4 UDP */
2543 {ETH_RSS_NONFRAG_IPV4_UDP |
2544 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2545 &hdrs_hint_ipv4_src_udp_src_gtpu_ip,
2546 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2547 {ETH_RSS_NONFRAG_IPV4_UDP |
2548 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2549 &hdrs_hint_ipv4_src_udp_dst_gtpu_ip,
2550 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2551 {ETH_RSS_NONFRAG_IPV4_UDP |
2552 ETH_RSS_L3_SRC_ONLY,
2553 &hdrs_hint_ipv4_src_udp_gtpu_ip,
2554 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2555 {ETH_RSS_NONFRAG_IPV4_UDP |
2556 ETH_RSS_L4_SRC_ONLY,
2557 &hdrs_hint_ipv4_udp_src_gtpu_ip,
2558 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2559 {ETH_RSS_NONFRAG_IPV4_UDP |
2560 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2561 &hdrs_hint_ipv4_dst_udp_src_gtpu_ip,
2562 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2563 {ETH_RSS_NONFRAG_IPV4_UDP |
2564 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2565 &hdrs_hint_ipv4_dst_udp_dst_gtpu_ip,
2566 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2567 {ETH_RSS_NONFRAG_IPV4_UDP |
2568 ETH_RSS_L3_DST_ONLY,
2569 &hdrs_hint_ipv4_dst_udp_gtpu_ip,
2570 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2571 {ETH_RSS_NONFRAG_IPV4_UDP |
2572 ETH_RSS_L4_DST_ONLY,
2573 &hdrs_hint_ipv4_udp_dst_gtpu_ip,
2574 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2575 {ETH_RSS_NONFRAG_IPV4_UDP,
2576 &hdrs_hint_ipv4_udp_gtpu_ip,
2577 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2578 /* IPv6 GTPU IP IPv6 UDP */
2579 {ETH_RSS_NONFRAG_IPV6_UDP |
2580 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2581 &hdrs_hint_ipv6_src_udp_src_gtpu_ip,
2582 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2583 {ETH_RSS_NONFRAG_IPV6_UDP |
2584 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2585 &hdrs_hint_ipv6_src_udp_dst_gtpu_ip,
2586 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2587 {ETH_RSS_NONFRAG_IPV6_UDP |
2588 ETH_RSS_L3_SRC_ONLY,
2589 &hdrs_hint_ipv6_src_udp_gtpu_ip,
2590 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2591 {ETH_RSS_NONFRAG_IPV6_UDP |
2592 ETH_RSS_L4_SRC_ONLY,
2593 &hdrs_hint_ipv6_udp_src_gtpu_ip,
2594 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2595 {ETH_RSS_NONFRAG_IPV6_UDP |
2596 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2597 &hdrs_hint_ipv6_dst_udp_src_gtpu_ip,
2598 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2599 {ETH_RSS_NONFRAG_IPV6_UDP |
2600 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2601 &hdrs_hint_ipv6_dst_udp_dst_gtpu_ip,
2602 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2603 {ETH_RSS_NONFRAG_IPV6_UDP |
2604 ETH_RSS_L3_DST_ONLY,
2605 &hdrs_hint_ipv6_dst_udp_gtpu_ip,
2606 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2607 {ETH_RSS_NONFRAG_IPV6_UDP |
2608 ETH_RSS_L4_DST_ONLY,
2609 &hdrs_hint_ipv6_udp_dst_gtpu_ip,
2610 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2611 {ETH_RSS_NONFRAG_IPV6_UDP,
2612 &hdrs_hint_ipv6_udp_gtpu_ip,
2613 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2614 /* IPv4 GTPU IP IPv4 TCP */
2615 {ETH_RSS_L3_SRC_ONLY |
2616 ETH_RSS_L4_SRC_ONLY,
2617 &hdrs_hint_ipv4_src_tcp_src_gtpu_ip,
2618 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2619 {ETH_RSS_L3_SRC_ONLY |
2620 ETH_RSS_L4_DST_ONLY,
2621 &hdrs_hint_ipv4_src_tcp_dst_gtpu_ip,
2622 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2623 {ETH_RSS_L3_SRC_ONLY,
2624 &hdrs_hint_ipv4_src_tcp_gtpu_ip,
2625 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2626 {ETH_RSS_L4_SRC_ONLY,
2627 &hdrs_hint_ipv4_tcp_src_gtpu_ip,
2628 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2629 {ETH_RSS_L3_DST_ONLY |
2630 ETH_RSS_L4_SRC_ONLY,
2631 &hdrs_hint_ipv4_dst_tcp_src_gtpu_ip,
2632 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2633 {ETH_RSS_L3_DST_ONLY |
2634 ETH_RSS_L4_DST_ONLY,
2635 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip,
2636 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2637 {ETH_RSS_L3_DST_ONLY,
2638 &hdrs_hint_ipv4_dst_tcp_gtpu_ip,
2639 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2640 {ETH_RSS_L4_DST_ONLY,
2641 &hdrs_hint_ipv4_tcp_dst_gtpu_ip,
2642 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2643 {ETH_RSS_NONFRAG_IPV4_TCP |
2644 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2645 &hdrs_hint_ipv4_src_tcp_src_gtpu_ip,
2646 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2647 {ETH_RSS_NONFRAG_IPV4_TCP |
2648 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2649 &hdrs_hint_ipv4_src_tcp_dst_gtpu_ip,
2650 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2651 {ETH_RSS_NONFRAG_IPV4_TCP |
2652 ETH_RSS_L3_SRC_ONLY,
2653 &hdrs_hint_ipv4_src_tcp_gtpu_ip,
2654 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2655 {ETH_RSS_NONFRAG_IPV4_TCP |
2656 ETH_RSS_L4_SRC_ONLY,
2657 &hdrs_hint_ipv4_tcp_src_gtpu_ip,
2658 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2659 {ETH_RSS_NONFRAG_IPV4_TCP |
2660 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2661 &hdrs_hint_ipv4_dst_tcp_src_gtpu_ip,
2662 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2663 {ETH_RSS_NONFRAG_IPV4_TCP |
2664 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2665 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip,
2666 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2667 {ETH_RSS_NONFRAG_IPV4_TCP |
2668 ETH_RSS_L3_DST_ONLY,
2669 &hdrs_hint_ipv4_dst_tcp_gtpu_ip,
2670 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2671 {ETH_RSS_NONFRAG_IPV4_TCP |
2672 ETH_RSS_L4_DST_ONLY,
2673 &hdrs_hint_ipv4_tcp_dst_gtpu_ip,
2674 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2675 {ETH_RSS_NONFRAG_IPV4_TCP,
2676 &hdrs_hint_ipv4_tcp_gtpu_ip,
2677 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2678 /* IPv4 GTPU IP IPv6 TCP */
2679 {ETH_RSS_NONFRAG_IPV6_TCP |
2680 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2681 &hdrs_hint_ipv6_src_tcp_src_gtpu_ip,
2682 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2683 {ETH_RSS_NONFRAG_IPV6_TCP |
2684 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2685 &hdrs_hint_ipv6_src_tcp_dst_gtpu_ip,
2686 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2687 {ETH_RSS_NONFRAG_IPV6_TCP |
2688 ETH_RSS_L3_SRC_ONLY,
2689 &hdrs_hint_ipv6_src_tcp_gtpu_ip,
2690 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2691 {ETH_RSS_NONFRAG_IPV6_TCP |
2692 ETH_RSS_L4_SRC_ONLY,
2693 &hdrs_hint_ipv6_tcp_src_gtpu_ip,
2694 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2695 {ETH_RSS_NONFRAG_IPV6_TCP |
2696 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2697 &hdrs_hint_ipv6_dst_tcp_src_gtpu_ip,
2698 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2699 {ETH_RSS_NONFRAG_IPV6_TCP |
2700 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2701 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_ip,
2702 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2703 {ETH_RSS_NONFRAG_IPV6_TCP |
2704 ETH_RSS_L3_DST_ONLY,
2705 &hdrs_hint_ipv6_dst_tcp_gtpu_ip,
2706 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2707 {ETH_RSS_NONFRAG_IPV6_TCP |
2708 ETH_RSS_L4_DST_ONLY,
2709 &hdrs_hint_ipv6_tcp_dst_gtpu_ip,
2710 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2711 {ETH_RSS_NONFRAG_IPV6_TCP,
2712 &hdrs_hint_ipv6_tcp_gtpu_ip,
2713 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2714 /* IPv6 GTPU IP IPv4 TCP */
2715 {ETH_RSS_NONFRAG_IPV4_TCP |
2716 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2717 &hdrs_hint_ipv4_src_tcp_src_gtpu_ip,
2718 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2719 {ETH_RSS_NONFRAG_IPV4_TCP |
2720 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2721 &hdrs_hint_ipv4_src_tcp_dst_gtpu_ip,
2722 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2723 {ETH_RSS_NONFRAG_IPV4_TCP |
2724 ETH_RSS_L3_SRC_ONLY,
2725 &hdrs_hint_ipv4_src_tcp_gtpu_ip,
2726 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2727 {ETH_RSS_NONFRAG_IPV4_TCP |
2728 ETH_RSS_L4_SRC_ONLY,
2729 &hdrs_hint_ipv4_tcp_src_gtpu_ip,
2730 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2731 {ETH_RSS_NONFRAG_IPV4_TCP |
2732 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2733 &hdrs_hint_ipv4_dst_tcp_src_gtpu_ip,
2734 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2735 {ETH_RSS_NONFRAG_IPV4_TCP |
2736 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2737 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip,
2738 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2739 {ETH_RSS_NONFRAG_IPV4_TCP |
2740 ETH_RSS_L3_DST_ONLY,
2741 &hdrs_hint_ipv4_dst_tcp_gtpu_ip,
2742 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2743 {ETH_RSS_NONFRAG_IPV4_TCP |
2744 ETH_RSS_L4_DST_ONLY,
2745 &hdrs_hint_ipv4_tcp_dst_gtpu_ip,
2746 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2747 {ETH_RSS_NONFRAG_IPV4_TCP,
2748 &hdrs_hint_ipv4_tcp_gtpu_ip,
2749 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2750 /* IPv6 GTPU IP IPv6 TCP */
2751 {ETH_RSS_NONFRAG_IPV6_TCP |
2752 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2753 &hdrs_hint_ipv6_src_tcp_src_gtpu_ip,
2754 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2755 {ETH_RSS_NONFRAG_IPV6_TCP |
2756 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2757 &hdrs_hint_ipv6_src_tcp_dst_gtpu_ip,
2758 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2759 {ETH_RSS_NONFRAG_IPV6_TCP |
2760 ETH_RSS_L3_SRC_ONLY,
2761 &hdrs_hint_ipv6_src_tcp_gtpu_ip,
2762 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2763 {ETH_RSS_NONFRAG_IPV6_TCP |
2764 ETH_RSS_L4_SRC_ONLY,
2765 &hdrs_hint_ipv6_tcp_src_gtpu_ip,
2766 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2767 {ETH_RSS_NONFRAG_IPV6_TCP |
2768 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2769 &hdrs_hint_ipv6_dst_tcp_src_gtpu_ip,
2770 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2771 {ETH_RSS_NONFRAG_IPV6_TCP |
2772 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2773 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_ip,
2774 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2775 {ETH_RSS_NONFRAG_IPV6_TCP |
2776 ETH_RSS_L3_DST_ONLY,
2777 &hdrs_hint_ipv6_dst_tcp_gtpu_ip,
2778 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2779 {ETH_RSS_NONFRAG_IPV6_TCP |
2780 ETH_RSS_L4_DST_ONLY,
2781 &hdrs_hint_ipv6_tcp_dst_gtpu_ip,
2782 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2783 {ETH_RSS_NONFRAG_IPV6_TCP,
2784 &hdrs_hint_ipv6_tcp_gtpu_ip,
2785 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2787 /* IPv4 GTPU EH IPv4 */
2788 {ETH_RSS_L3_SRC_ONLY,
2789 &hdrs_hint_ipv4_src_gtpu_eh,
2790 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2791 {ETH_RSS_L3_DST_ONLY,
2792 &hdrs_hint_ipv4_dst_gtpu_eh,
2793 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2795 ETH_RSS_L3_SRC_ONLY,
2796 &hdrs_hint_ipv4_src_gtpu_eh,
2797 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2799 ETH_RSS_L3_DST_ONLY,
2800 &hdrs_hint_ipv4_dst_gtpu_eh,
2801 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2803 &hdrs_hint_ipv4_gtpu_eh,
2804 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2805 /* IPv4 GTPU EH IPv6 */
2807 ETH_RSS_L3_SRC_ONLY,
2808 &hdrs_hint_ipv6_src_gtpu_eh,
2809 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6},
2811 ETH_RSS_L3_DST_ONLY,
2812 &hdrs_hint_ipv6_dst_gtpu_eh,
2813 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6},
2815 &hdrs_hint_ipv6_gtpu_eh,
2816 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6},
2817 /* IPv6 GTPU EH IPv4 */
2819 ETH_RSS_L3_SRC_ONLY,
2820 &hdrs_hint_ipv4_src_gtpu_eh,
2821 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4},
2823 ETH_RSS_L3_DST_ONLY,
2824 &hdrs_hint_ipv4_dst_gtpu_eh,
2825 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4},
2827 &hdrs_hint_ipv4_gtpu_eh,
2828 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4},
2829 /* IPv6 GTPU EH IPv6 */
2831 ETH_RSS_L3_SRC_ONLY,
2832 &hdrs_hint_ipv6_src_gtpu_eh,
2833 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6},
2835 ETH_RSS_L3_DST_ONLY,
2836 &hdrs_hint_ipv6_dst_gtpu_eh,
2837 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6},
2839 &hdrs_hint_ipv6_gtpu_eh,
2840 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6},
2841 /* IPv4 GTPU EH IPv4 UDP */
2842 {ETH_RSS_L3_SRC_ONLY |
2843 ETH_RSS_L4_SRC_ONLY,
2844 &hdrs_hint_ipv4_src_udp_src_gtpu_eh,
2845 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2846 {ETH_RSS_L3_SRC_ONLY |
2847 ETH_RSS_L4_DST_ONLY,
2848 &hdrs_hint_ipv4_src_udp_dst_gtpu_eh,
2849 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2850 {ETH_RSS_L3_SRC_ONLY,
2851 &hdrs_hint_ipv4_src_udp_gtpu_eh,
2852 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2853 {ETH_RSS_L4_SRC_ONLY,
2854 &hdrs_hint_ipv4_udp_src_gtpu_eh,
2855 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2856 {ETH_RSS_L3_DST_ONLY |
2857 ETH_RSS_L4_SRC_ONLY,
2858 &hdrs_hint_ipv4_dst_udp_src_gtpu_eh,
2859 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2860 {ETH_RSS_L3_DST_ONLY |
2861 ETH_RSS_L4_DST_ONLY,
2862 &hdrs_hint_ipv4_dst_udp_dst_gtpu_eh,
2863 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2864 {ETH_RSS_L3_DST_ONLY,
2865 &hdrs_hint_ipv4_dst_udp_gtpu_eh,
2866 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2867 {ETH_RSS_L4_DST_ONLY,
2868 &hdrs_hint_ipv4_udp_dst_gtpu_eh,
2869 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2870 {ETH_RSS_NONFRAG_IPV4_UDP |
2871 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2872 &hdrs_hint_ipv4_src_udp_src_gtpu_eh,
2873 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2874 {ETH_RSS_NONFRAG_IPV4_UDP |
2875 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2876 &hdrs_hint_ipv4_src_udp_dst_gtpu_eh,
2877 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2878 {ETH_RSS_NONFRAG_IPV4_UDP |
2879 ETH_RSS_L3_SRC_ONLY,
2880 &hdrs_hint_ipv4_src_udp_gtpu_eh,
2881 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2882 {ETH_RSS_NONFRAG_IPV4_UDP |
2883 ETH_RSS_L4_SRC_ONLY,
2884 &hdrs_hint_ipv4_udp_src_gtpu_eh,
2885 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2886 {ETH_RSS_NONFRAG_IPV4_UDP |
2887 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2888 &hdrs_hint_ipv4_dst_udp_src_gtpu_eh,
2889 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2890 {ETH_RSS_NONFRAG_IPV4_UDP |
2891 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2892 &hdrs_hint_ipv4_dst_udp_dst_gtpu_eh,
2893 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2894 {ETH_RSS_NONFRAG_IPV4_UDP |
2895 ETH_RSS_L3_DST_ONLY,
2896 &hdrs_hint_ipv4_dst_udp_gtpu_eh,
2897 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2898 {ETH_RSS_NONFRAG_IPV4_UDP |
2899 ETH_RSS_L4_DST_ONLY,
2900 &hdrs_hint_ipv4_udp_dst_gtpu_eh,
2901 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2902 {ETH_RSS_NONFRAG_IPV4_UDP,
2903 &hdrs_hint_ipv4_udp_gtpu_eh,
2904 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2905 /* IPv4 GTPU EH IPv6 UDP */
2906 {ETH_RSS_NONFRAG_IPV6_UDP |
2907 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2908 &hdrs_hint_ipv6_src_udp_src_gtpu_eh,
2909 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2910 {ETH_RSS_NONFRAG_IPV6_UDP |
2911 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2912 &hdrs_hint_ipv6_src_udp_dst_gtpu_eh,
2913 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2914 {ETH_RSS_NONFRAG_IPV6_UDP |
2915 ETH_RSS_L3_SRC_ONLY,
2916 &hdrs_hint_ipv6_src_udp_gtpu_eh,
2917 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2918 {ETH_RSS_NONFRAG_IPV6_UDP |
2919 ETH_RSS_L4_SRC_ONLY,
2920 &hdrs_hint_ipv6_udp_src_gtpu_eh,
2921 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2922 {ETH_RSS_NONFRAG_IPV6_UDP |
2923 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2924 &hdrs_hint_ipv6_dst_udp_src_gtpu_eh,
2925 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2926 {ETH_RSS_NONFRAG_IPV6_UDP |
2927 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2928 &hdrs_hint_ipv6_dst_udp_dst_gtpu_eh,
2929 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2930 {ETH_RSS_NONFRAG_IPV6_UDP |
2931 ETH_RSS_L3_DST_ONLY,
2932 &hdrs_hint_ipv6_dst_udp_gtpu_eh,
2933 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2934 {ETH_RSS_NONFRAG_IPV6_UDP |
2935 ETH_RSS_L4_DST_ONLY,
2936 &hdrs_hint_ipv6_udp_dst_gtpu_eh,
2937 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2938 {ETH_RSS_NONFRAG_IPV6_UDP,
2939 &hdrs_hint_ipv6_udp_gtpu_eh,
2940 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2941 /* IPv6 GTPU EH IPv4 UDP */
2942 {ETH_RSS_NONFRAG_IPV4_UDP |
2943 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2944 &hdrs_hint_ipv4_src_udp_src_gtpu_eh,
2945 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2946 {ETH_RSS_NONFRAG_IPV4_UDP |
2947 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2948 &hdrs_hint_ipv4_src_udp_dst_gtpu_eh,
2949 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2950 {ETH_RSS_NONFRAG_IPV4_UDP |
2951 ETH_RSS_L3_SRC_ONLY,
2952 &hdrs_hint_ipv4_src_udp_gtpu_eh,
2953 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2954 {ETH_RSS_NONFRAG_IPV4_UDP |
2955 ETH_RSS_L4_SRC_ONLY,
2956 &hdrs_hint_ipv4_udp_src_gtpu_eh,
2957 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2958 {ETH_RSS_NONFRAG_IPV4_UDP |
2959 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2960 &hdrs_hint_ipv4_dst_udp_src_gtpu_eh,
2961 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2962 {ETH_RSS_NONFRAG_IPV4_UDP |
2963 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2964 &hdrs_hint_ipv4_dst_udp_dst_gtpu_eh,
2965 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2966 {ETH_RSS_NONFRAG_IPV4_UDP |
2967 ETH_RSS_L3_DST_ONLY,
2968 &hdrs_hint_ipv4_dst_udp_gtpu_eh,
2969 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2970 {ETH_RSS_NONFRAG_IPV4_UDP |
2971 ETH_RSS_L4_DST_ONLY,
2972 &hdrs_hint_ipv4_udp_dst_gtpu_eh,
2973 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2974 {ETH_RSS_NONFRAG_IPV4_UDP,
2975 &hdrs_hint_ipv4_udp_gtpu_eh,
2976 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2977 /* IPv6 GTPU EH IPv6 UDP */
2978 {ETH_RSS_NONFRAG_IPV6_UDP |
2979 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2980 &hdrs_hint_ipv6_src_udp_src_gtpu_eh,
2981 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2982 {ETH_RSS_NONFRAG_IPV6_UDP |
2983 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2984 &hdrs_hint_ipv6_src_udp_dst_gtpu_eh,
2985 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2986 {ETH_RSS_NONFRAG_IPV6_UDP |
2987 ETH_RSS_L3_SRC_ONLY,
2988 &hdrs_hint_ipv6_src_udp_gtpu_eh,
2989 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2990 {ETH_RSS_NONFRAG_IPV6_UDP |
2991 ETH_RSS_L4_SRC_ONLY,
2992 &hdrs_hint_ipv6_udp_src_gtpu_eh,
2993 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2994 {ETH_RSS_NONFRAG_IPV6_UDP |
2995 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2996 &hdrs_hint_ipv6_dst_udp_src_gtpu_eh,
2997 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2998 {ETH_RSS_NONFRAG_IPV6_UDP |
2999 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3000 &hdrs_hint_ipv6_dst_udp_dst_gtpu_eh,
3001 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
3002 {ETH_RSS_NONFRAG_IPV6_UDP |
3003 ETH_RSS_L3_DST_ONLY,
3004 &hdrs_hint_ipv6_dst_udp_gtpu_eh,
3005 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
3006 {ETH_RSS_NONFRAG_IPV6_UDP |
3007 ETH_RSS_L4_DST_ONLY,
3008 &hdrs_hint_ipv6_udp_dst_gtpu_eh,
3009 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
3010 {ETH_RSS_NONFRAG_IPV6_UDP,
3011 &hdrs_hint_ipv6_udp_gtpu_eh,
3012 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
3013 /* IPv4 GTPU EH IPv4 TCP */
3014 {ETH_RSS_L3_SRC_ONLY |
3015 ETH_RSS_L4_SRC_ONLY,
3016 &hdrs_hint_ipv4_src_tcp_src_gtpu_eh,
3017 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3018 {ETH_RSS_L3_SRC_ONLY |
3019 ETH_RSS_L4_DST_ONLY,
3020 &hdrs_hint_ipv4_src_tcp_dst_gtpu_eh,
3021 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3022 {ETH_RSS_L3_SRC_ONLY,
3023 &hdrs_hint_ipv4_src_tcp_gtpu_eh,
3024 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3025 {ETH_RSS_L4_SRC_ONLY,
3026 &hdrs_hint_ipv4_tcp_src_gtpu_eh,
3027 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3028 {ETH_RSS_L3_DST_ONLY |
3029 ETH_RSS_L4_SRC_ONLY,
3030 &hdrs_hint_ipv4_dst_tcp_src_gtpu_eh,
3031 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3032 {ETH_RSS_L3_DST_ONLY |
3033 ETH_RSS_L4_DST_ONLY,
3034 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh,
3035 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3036 {ETH_RSS_L3_DST_ONLY,
3037 &hdrs_hint_ipv4_dst_tcp_gtpu_eh,
3038 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3039 {ETH_RSS_L4_DST_ONLY,
3040 &hdrs_hint_ipv4_tcp_dst_gtpu_eh,
3041 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3042 {ETH_RSS_NONFRAG_IPV4_TCP |
3043 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3044 &hdrs_hint_ipv4_src_tcp_src_gtpu_eh,
3045 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3046 {ETH_RSS_NONFRAG_IPV4_TCP |
3047 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3048 &hdrs_hint_ipv4_src_tcp_dst_gtpu_eh,
3049 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3050 {ETH_RSS_NONFRAG_IPV4_TCP |
3051 ETH_RSS_L3_SRC_ONLY,
3052 &hdrs_hint_ipv4_src_tcp_gtpu_eh,
3053 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3054 {ETH_RSS_NONFRAG_IPV4_TCP |
3055 ETH_RSS_L4_SRC_ONLY,
3056 &hdrs_hint_ipv4_tcp_src_gtpu_eh,
3057 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3058 {ETH_RSS_NONFRAG_IPV4_TCP |
3059 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3060 &hdrs_hint_ipv4_dst_tcp_src_gtpu_eh,
3061 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3062 {ETH_RSS_NONFRAG_IPV4_TCP |
3063 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3064 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh,
3065 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3066 {ETH_RSS_NONFRAG_IPV4_TCP |
3067 ETH_RSS_L3_DST_ONLY,
3068 &hdrs_hint_ipv4_dst_tcp_gtpu_eh,
3069 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3070 {ETH_RSS_NONFRAG_IPV4_TCP |
3071 ETH_RSS_L4_DST_ONLY,
3072 &hdrs_hint_ipv4_tcp_dst_gtpu_eh,
3073 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3074 {ETH_RSS_NONFRAG_IPV4_TCP,
3075 &hdrs_hint_ipv4_tcp_gtpu_eh,
3076 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3077 /* IPv4 GTPU EH IPv6 TCP */
3078 {ETH_RSS_NONFRAG_IPV6_TCP |
3079 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3080 &hdrs_hint_ipv6_src_tcp_src_gtpu_eh,
3081 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3082 {ETH_RSS_NONFRAG_IPV6_TCP |
3083 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3084 &hdrs_hint_ipv6_src_tcp_dst_gtpu_eh,
3085 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3086 {ETH_RSS_NONFRAG_IPV6_TCP |
3087 ETH_RSS_L3_SRC_ONLY,
3088 &hdrs_hint_ipv6_src_tcp_gtpu_eh,
3089 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3090 {ETH_RSS_NONFRAG_IPV6_TCP |
3091 ETH_RSS_L4_SRC_ONLY,
3092 &hdrs_hint_ipv6_tcp_src_gtpu_eh,
3093 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3094 {ETH_RSS_NONFRAG_IPV6_TCP |
3095 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3096 &hdrs_hint_ipv6_dst_tcp_src_gtpu_eh,
3097 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3098 {ETH_RSS_NONFRAG_IPV6_TCP |
3099 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3100 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_eh,
3101 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3102 {ETH_RSS_NONFRAG_IPV6_TCP |
3103 ETH_RSS_L3_DST_ONLY,
3104 &hdrs_hint_ipv6_dst_tcp_gtpu_eh,
3105 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3106 {ETH_RSS_NONFRAG_IPV6_TCP |
3107 ETH_RSS_L4_DST_ONLY,
3108 &hdrs_hint_ipv6_tcp_dst_gtpu_eh,
3109 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3110 {ETH_RSS_NONFRAG_IPV6_TCP,
3111 &hdrs_hint_ipv6_tcp_gtpu_eh,
3112 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3113 /* IPv6 GTPU EH IPv4 TCP */
3114 {ETH_RSS_NONFRAG_IPV4_TCP |
3115 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3116 &hdrs_hint_ipv4_src_tcp_src_gtpu_eh,
3117 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3118 {ETH_RSS_NONFRAG_IPV4_TCP |
3119 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3120 &hdrs_hint_ipv4_src_tcp_dst_gtpu_eh,
3121 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3122 {ETH_RSS_NONFRAG_IPV4_TCP |
3123 ETH_RSS_L3_SRC_ONLY,
3124 &hdrs_hint_ipv4_src_tcp_gtpu_eh,
3125 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3126 {ETH_RSS_NONFRAG_IPV4_TCP |
3127 ETH_RSS_L4_SRC_ONLY,
3128 &hdrs_hint_ipv4_tcp_src_gtpu_eh,
3129 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3130 {ETH_RSS_NONFRAG_IPV4_TCP |
3131 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3132 &hdrs_hint_ipv4_dst_tcp_src_gtpu_eh,
3133 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3134 {ETH_RSS_NONFRAG_IPV4_TCP |
3135 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3136 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh,
3137 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3138 {ETH_RSS_NONFRAG_IPV4_TCP |
3139 ETH_RSS_L3_DST_ONLY,
3140 &hdrs_hint_ipv4_dst_tcp_gtpu_eh,
3141 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3142 {ETH_RSS_NONFRAG_IPV4_TCP |
3143 ETH_RSS_L4_DST_ONLY,
3144 &hdrs_hint_ipv4_tcp_dst_gtpu_eh,
3145 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3146 {ETH_RSS_NONFRAG_IPV4_TCP,
3147 &hdrs_hint_ipv4_tcp_gtpu_eh,
3148 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
3149 /* IPv6 GTPU EH IPv6 TCP */
3150 {ETH_RSS_NONFRAG_IPV6_TCP |
3151 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3152 &hdrs_hint_ipv6_src_tcp_src_gtpu_eh,
3153 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3154 {ETH_RSS_NONFRAG_IPV6_TCP |
3155 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3156 &hdrs_hint_ipv6_src_tcp_dst_gtpu_eh,
3157 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3158 {ETH_RSS_NONFRAG_IPV6_TCP |
3159 ETH_RSS_L3_SRC_ONLY,
3160 &hdrs_hint_ipv6_src_tcp_gtpu_eh,
3161 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3162 {ETH_RSS_NONFRAG_IPV6_TCP |
3163 ETH_RSS_L4_SRC_ONLY,
3164 &hdrs_hint_ipv6_tcp_src_gtpu_eh,
3165 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3166 {ETH_RSS_NONFRAG_IPV6_TCP |
3167 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3168 &hdrs_hint_ipv6_dst_tcp_src_gtpu_eh,
3169 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3170 {ETH_RSS_NONFRAG_IPV6_TCP |
3171 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3172 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_eh,
3173 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3174 {ETH_RSS_NONFRAG_IPV6_TCP |
3175 ETH_RSS_L3_DST_ONLY,
3176 &hdrs_hint_ipv6_dst_tcp_gtpu_eh,
3177 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3178 {ETH_RSS_NONFRAG_IPV6_TCP |
3179 ETH_RSS_L4_DST_ONLY,
3180 &hdrs_hint_ipv6_tcp_dst_gtpu_eh,
3181 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3182 {ETH_RSS_NONFRAG_IPV6_TCP,
3183 &hdrs_hint_ipv6_tcp_gtpu_eh,
3184 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
3186 /* IPv4 GTPU EH UP IPv4 */
3187 {ETH_RSS_L3_SRC_ONLY,
3188 &hdrs_hint_ipv4_src_gtpu_up,
3189 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3190 {ETH_RSS_L3_DST_ONLY,
3191 &hdrs_hint_ipv4_dst_gtpu_up,
3192 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3194 ETH_RSS_L3_SRC_ONLY,
3195 &hdrs_hint_ipv4_src_gtpu_up,
3196 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3198 ETH_RSS_L3_DST_ONLY,
3199 &hdrs_hint_ipv4_dst_gtpu_up,
3200 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3202 &hdrs_hint_ipv4_gtpu_up,
3203 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3204 /* IPv4 GTPU EH UP IPv6 */
3206 ETH_RSS_L3_SRC_ONLY,
3207 &hdrs_hint_ipv6_src_gtpu_up,
3208 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
3210 ETH_RSS_L3_DST_ONLY,
3211 &hdrs_hint_ipv6_dst_gtpu_up,
3212 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
3214 &hdrs_hint_ipv6_gtpu_up,
3215 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
3216 /* IPv6 GTPU EH UP IPv4 */
3218 ETH_RSS_L3_SRC_ONLY,
3219 &hdrs_hint_ipv4_src_gtpu_up,
3220 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3222 ETH_RSS_L3_DST_ONLY,
3223 &hdrs_hint_ipv4_dst_gtpu_up,
3224 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3226 &hdrs_hint_ipv4_gtpu_up,
3227 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
3228 /* IPv6 GTPU EH UP IPv6 */
3230 ETH_RSS_L3_SRC_ONLY,
3231 &hdrs_hint_ipv6_src_gtpu_up,
3232 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
3234 ETH_RSS_L3_DST_ONLY,
3235 &hdrs_hint_ipv6_dst_gtpu_up,
3236 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
3238 &hdrs_hint_ipv6_gtpu_up,
3239 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
3240 /* IPv4 GTPU EH UP IPv4 UDP */
3241 {ETH_RSS_L3_SRC_ONLY |
3242 ETH_RSS_L4_SRC_ONLY,
3243 &hdrs_hint_ipv4_src_udp_src_gtpu_up,
3244 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3245 {ETH_RSS_L3_SRC_ONLY |
3246 ETH_RSS_L4_DST_ONLY,
3247 &hdrs_hint_ipv4_src_udp_dst_gtpu_up,
3248 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3249 {ETH_RSS_L3_SRC_ONLY,
3250 &hdrs_hint_ipv4_src_udp_gtpu_up,
3251 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3252 {ETH_RSS_L4_SRC_ONLY,
3253 &hdrs_hint_ipv4_udp_src_gtpu_up,
3254 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3255 {ETH_RSS_L3_DST_ONLY |
3256 ETH_RSS_L4_SRC_ONLY,
3257 &hdrs_hint_ipv4_dst_udp_src_gtpu_up,
3258 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3259 {ETH_RSS_L3_DST_ONLY |
3260 ETH_RSS_L4_DST_ONLY,
3261 &hdrs_hint_ipv4_dst_udp_dst_gtpu_up,
3262 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3263 {ETH_RSS_L3_DST_ONLY,
3264 &hdrs_hint_ipv4_dst_udp_gtpu_up,
3265 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3266 {ETH_RSS_L4_DST_ONLY,
3267 &hdrs_hint_ipv4_udp_dst_gtpu_up,
3268 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3269 {ETH_RSS_NONFRAG_IPV4_UDP |
3270 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3271 &hdrs_hint_ipv4_src_udp_src_gtpu_up,
3272 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3273 {ETH_RSS_NONFRAG_IPV4_UDP |
3274 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3275 &hdrs_hint_ipv4_src_udp_dst_gtpu_up,
3276 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3277 {ETH_RSS_NONFRAG_IPV4_UDP |
3278 ETH_RSS_L3_SRC_ONLY,
3279 &hdrs_hint_ipv4_src_udp_gtpu_up,
3280 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3281 {ETH_RSS_NONFRAG_IPV4_UDP |
3282 ETH_RSS_L4_SRC_ONLY,
3283 &hdrs_hint_ipv4_udp_src_gtpu_up,
3284 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3285 {ETH_RSS_NONFRAG_IPV4_UDP |
3286 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3287 &hdrs_hint_ipv4_dst_udp_src_gtpu_up,
3288 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3289 {ETH_RSS_NONFRAG_IPV4_UDP |
3290 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3291 &hdrs_hint_ipv4_dst_udp_dst_gtpu_up,
3292 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3293 {ETH_RSS_NONFRAG_IPV4_UDP |
3294 ETH_RSS_L3_DST_ONLY,
3295 &hdrs_hint_ipv4_dst_udp_gtpu_up,
3296 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3297 {ETH_RSS_NONFRAG_IPV4_UDP |
3298 ETH_RSS_L4_DST_ONLY,
3299 &hdrs_hint_ipv4_udp_dst_gtpu_up,
3300 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3301 {ETH_RSS_NONFRAG_IPV4_UDP,
3302 &hdrs_hint_ipv4_udp_gtpu_up,
3303 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3304 /* IPv4 GTPU EH UP IPv6 UDP */
3305 {ETH_RSS_NONFRAG_IPV6_UDP |
3306 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3307 &hdrs_hint_ipv6_src_udp_src_gtpu_up,
3308 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3309 {ETH_RSS_NONFRAG_IPV6_UDP |
3310 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3311 &hdrs_hint_ipv6_src_udp_dst_gtpu_up,
3312 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3313 {ETH_RSS_NONFRAG_IPV6_UDP |
3314 ETH_RSS_L3_SRC_ONLY,
3315 &hdrs_hint_ipv6_src_udp_gtpu_up,
3316 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3317 {ETH_RSS_NONFRAG_IPV6_UDP |
3318 ETH_RSS_L4_SRC_ONLY,
3319 &hdrs_hint_ipv6_udp_src_gtpu_up,
3320 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3321 {ETH_RSS_NONFRAG_IPV6_UDP |
3322 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3323 &hdrs_hint_ipv6_dst_udp_src_gtpu_up,
3324 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3325 {ETH_RSS_NONFRAG_IPV6_UDP |
3326 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3327 &hdrs_hint_ipv6_dst_udp_dst_gtpu_up,
3328 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3329 {ETH_RSS_NONFRAG_IPV6_UDP |
3330 ETH_RSS_L3_DST_ONLY,
3331 &hdrs_hint_ipv6_dst_udp_gtpu_up,
3332 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3333 {ETH_RSS_NONFRAG_IPV6_UDP |
3334 ETH_RSS_L4_DST_ONLY,
3335 &hdrs_hint_ipv6_udp_dst_gtpu_up,
3336 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3337 {ETH_RSS_NONFRAG_IPV6_UDP,
3338 &hdrs_hint_ipv6_udp_gtpu_up,
3339 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3340 /* IPv6 GTPU EH UP IPv4 UDP */
3341 {ETH_RSS_NONFRAG_IPV4_UDP |
3342 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3343 &hdrs_hint_ipv4_src_udp_src_gtpu_up,
3344 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3345 {ETH_RSS_NONFRAG_IPV4_UDP |
3346 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3347 &hdrs_hint_ipv4_src_udp_dst_gtpu_up,
3348 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3349 {ETH_RSS_NONFRAG_IPV4_UDP |
3350 ETH_RSS_L3_SRC_ONLY,
3351 &hdrs_hint_ipv4_src_udp_gtpu_up,
3352 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3353 {ETH_RSS_NONFRAG_IPV4_UDP |
3354 ETH_RSS_L4_SRC_ONLY,
3355 &hdrs_hint_ipv4_udp_src_gtpu_up,
3356 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3357 {ETH_RSS_NONFRAG_IPV4_UDP |
3358 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3359 &hdrs_hint_ipv4_dst_udp_src_gtpu_up,
3360 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3361 {ETH_RSS_NONFRAG_IPV4_UDP |
3362 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3363 &hdrs_hint_ipv4_dst_udp_dst_gtpu_up,
3364 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3365 {ETH_RSS_NONFRAG_IPV4_UDP |
3366 ETH_RSS_L3_DST_ONLY,
3367 &hdrs_hint_ipv4_dst_udp_gtpu_up,
3368 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3369 {ETH_RSS_NONFRAG_IPV4_UDP |
3370 ETH_RSS_L4_DST_ONLY,
3371 &hdrs_hint_ipv4_udp_dst_gtpu_up,
3372 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3373 {ETH_RSS_NONFRAG_IPV4_UDP,
3374 &hdrs_hint_ipv4_udp_gtpu_up,
3375 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3376 /* IPv6 GTPU EH UP IPv6 UDP */
3377 {ETH_RSS_NONFRAG_IPV6_UDP |
3378 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3379 &hdrs_hint_ipv6_src_udp_src_gtpu_up,
3380 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3381 {ETH_RSS_NONFRAG_IPV6_UDP |
3382 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3383 &hdrs_hint_ipv6_src_udp_dst_gtpu_up,
3384 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3385 {ETH_RSS_NONFRAG_IPV6_UDP |
3386 ETH_RSS_L3_SRC_ONLY,
3387 &hdrs_hint_ipv6_src_udp_gtpu_up,
3388 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3389 {ETH_RSS_NONFRAG_IPV6_UDP |
3390 ETH_RSS_L4_SRC_ONLY,
3391 &hdrs_hint_ipv6_udp_src_gtpu_up,
3392 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3393 {ETH_RSS_NONFRAG_IPV6_UDP |
3394 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3395 &hdrs_hint_ipv6_dst_udp_src_gtpu_up,
3396 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3397 {ETH_RSS_NONFRAG_IPV6_UDP |
3398 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3399 &hdrs_hint_ipv6_dst_udp_dst_gtpu_up,
3400 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3401 {ETH_RSS_NONFRAG_IPV6_UDP |
3402 ETH_RSS_L3_DST_ONLY,
3403 &hdrs_hint_ipv6_dst_udp_gtpu_up,
3404 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3405 {ETH_RSS_NONFRAG_IPV6_UDP |
3406 ETH_RSS_L4_DST_ONLY,
3407 &hdrs_hint_ipv6_udp_dst_gtpu_up,
3408 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3409 {ETH_RSS_NONFRAG_IPV6_UDP,
3410 &hdrs_hint_ipv6_udp_gtpu_up,
3411 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3412 /* IPv4 GTPU EH UP IPv4 TCP */
3413 {ETH_RSS_L3_SRC_ONLY |
3414 ETH_RSS_L4_SRC_ONLY,
3415 &hdrs_hint_ipv4_src_tcp_src_gtpu_up,
3416 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3417 {ETH_RSS_L3_SRC_ONLY |
3418 ETH_RSS_L4_DST_ONLY,
3419 &hdrs_hint_ipv4_src_tcp_dst_gtpu_up,
3420 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3421 {ETH_RSS_L3_SRC_ONLY,
3422 &hdrs_hint_ipv4_src_tcp_gtpu_up,
3423 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3424 {ETH_RSS_L4_SRC_ONLY,
3425 &hdrs_hint_ipv4_tcp_src_gtpu_up,
3426 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3427 {ETH_RSS_L3_DST_ONLY |
3428 ETH_RSS_L4_SRC_ONLY,
3429 &hdrs_hint_ipv4_dst_tcp_src_gtpu_up,
3430 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3431 {ETH_RSS_L3_DST_ONLY |
3432 ETH_RSS_L4_DST_ONLY,
3433 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_up,
3434 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3435 {ETH_RSS_L3_DST_ONLY,
3436 &hdrs_hint_ipv4_dst_tcp_gtpu_up,
3437 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3438 {ETH_RSS_L4_DST_ONLY,
3439 &hdrs_hint_ipv4_tcp_dst_gtpu_up,
3440 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3441 {ETH_RSS_NONFRAG_IPV4_TCP |
3442 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3443 &hdrs_hint_ipv4_src_tcp_src_gtpu_up,
3444 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3445 {ETH_RSS_NONFRAG_IPV4_TCP |
3446 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3447 &hdrs_hint_ipv4_src_tcp_dst_gtpu_up,
3448 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3449 {ETH_RSS_NONFRAG_IPV4_TCP |
3450 ETH_RSS_L3_SRC_ONLY,
3451 &hdrs_hint_ipv4_src_tcp_gtpu_up,
3452 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3453 {ETH_RSS_NONFRAG_IPV4_TCP |
3454 ETH_RSS_L4_SRC_ONLY,
3455 &hdrs_hint_ipv4_tcp_src_gtpu_up,
3456 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3457 {ETH_RSS_NONFRAG_IPV4_TCP |
3458 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3459 &hdrs_hint_ipv4_dst_tcp_src_gtpu_up,
3460 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3461 {ETH_RSS_NONFRAG_IPV4_TCP |
3462 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3463 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_up,
3464 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3465 {ETH_RSS_NONFRAG_IPV4_TCP |
3466 ETH_RSS_L3_DST_ONLY,
3467 &hdrs_hint_ipv4_dst_tcp_gtpu_up,
3468 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3469 {ETH_RSS_NONFRAG_IPV4_TCP |
3470 ETH_RSS_L4_DST_ONLY,
3471 &hdrs_hint_ipv4_tcp_dst_gtpu_up,
3472 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3473 {ETH_RSS_NONFRAG_IPV4_TCP,
3474 &hdrs_hint_ipv4_tcp_gtpu_up,
3475 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3476 /* IPv4 GTPU EH UP IPv6 TCP */
3477 {ETH_RSS_NONFRAG_IPV6_TCP |
3478 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3479 &hdrs_hint_ipv6_src_tcp_src_gtpu_up,
3480 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3481 {ETH_RSS_NONFRAG_IPV6_TCP |
3482 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3483 &hdrs_hint_ipv6_src_tcp_dst_gtpu_up,
3484 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3485 {ETH_RSS_NONFRAG_IPV6_TCP |
3486 ETH_RSS_L3_SRC_ONLY,
3487 &hdrs_hint_ipv6_src_tcp_gtpu_up,
3488 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3489 {ETH_RSS_NONFRAG_IPV6_TCP |
3490 ETH_RSS_L4_SRC_ONLY,
3491 &hdrs_hint_ipv6_tcp_src_gtpu_up,
3492 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3493 {ETH_RSS_NONFRAG_IPV6_TCP |
3494 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3495 &hdrs_hint_ipv6_dst_tcp_src_gtpu_up,
3496 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3497 {ETH_RSS_NONFRAG_IPV6_TCP |
3498 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3499 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_up,
3500 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3501 {ETH_RSS_NONFRAG_IPV6_TCP |
3502 ETH_RSS_L3_DST_ONLY,
3503 &hdrs_hint_ipv6_dst_tcp_gtpu_up,
3504 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3505 {ETH_RSS_NONFRAG_IPV6_TCP |
3506 ETH_RSS_L4_DST_ONLY,
3507 &hdrs_hint_ipv6_tcp_dst_gtpu_up,
3508 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3509 {ETH_RSS_NONFRAG_IPV6_TCP,
3510 &hdrs_hint_ipv6_tcp_gtpu_up,
3511 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3512 /* IPv6 GTPU EH UP IPv4 TCP */
3513 {ETH_RSS_NONFRAG_IPV4_TCP |
3514 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3515 &hdrs_hint_ipv4_src_tcp_src_gtpu_up,
3516 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3517 {ETH_RSS_NONFRAG_IPV4_TCP |
3518 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3519 &hdrs_hint_ipv4_src_tcp_dst_gtpu_up,
3520 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3521 {ETH_RSS_NONFRAG_IPV4_TCP |
3522 ETH_RSS_L3_SRC_ONLY,
3523 &hdrs_hint_ipv4_src_tcp_gtpu_up,
3524 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3525 {ETH_RSS_NONFRAG_IPV4_TCP |
3526 ETH_RSS_L4_SRC_ONLY,
3527 &hdrs_hint_ipv4_tcp_src_gtpu_up,
3528 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3529 {ETH_RSS_NONFRAG_IPV4_TCP |
3530 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3531 &hdrs_hint_ipv4_dst_tcp_src_gtpu_up,
3532 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3533 {ETH_RSS_NONFRAG_IPV4_TCP |
3534 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3535 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_up,
3536 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3537 {ETH_RSS_NONFRAG_IPV4_TCP |
3538 ETH_RSS_L3_DST_ONLY,
3539 &hdrs_hint_ipv4_dst_tcp_gtpu_up,
3540 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3541 {ETH_RSS_NONFRAG_IPV4_TCP |
3542 ETH_RSS_L4_DST_ONLY,
3543 &hdrs_hint_ipv4_tcp_dst_gtpu_up,
3544 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3545 {ETH_RSS_NONFRAG_IPV4_TCP,
3546 &hdrs_hint_ipv4_tcp_gtpu_up,
3547 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3548 /* IPv6 GTPU EH UP IPv6 TCP */
3549 {ETH_RSS_NONFRAG_IPV6_TCP |
3550 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3551 &hdrs_hint_ipv6_src_tcp_src_gtpu_up,
3552 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3553 {ETH_RSS_NONFRAG_IPV6_TCP |
3554 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3555 &hdrs_hint_ipv6_src_tcp_dst_gtpu_up,
3556 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3557 {ETH_RSS_NONFRAG_IPV6_TCP |
3558 ETH_RSS_L3_SRC_ONLY,
3559 &hdrs_hint_ipv6_src_tcp_gtpu_up,
3560 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3561 {ETH_RSS_NONFRAG_IPV6_TCP |
3562 ETH_RSS_L4_SRC_ONLY,
3563 &hdrs_hint_ipv6_tcp_src_gtpu_up,
3564 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3565 {ETH_RSS_NONFRAG_IPV6_TCP |
3566 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3567 &hdrs_hint_ipv6_dst_tcp_src_gtpu_up,
3568 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3569 {ETH_RSS_NONFRAG_IPV6_TCP |
3570 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3571 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_up,
3572 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3573 {ETH_RSS_NONFRAG_IPV6_TCP |
3574 ETH_RSS_L3_DST_ONLY,
3575 &hdrs_hint_ipv6_dst_tcp_gtpu_up,
3576 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3577 {ETH_RSS_NONFRAG_IPV6_TCP |
3578 ETH_RSS_L4_DST_ONLY,
3579 &hdrs_hint_ipv6_tcp_dst_gtpu_up,
3580 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3581 {ETH_RSS_NONFRAG_IPV6_TCP,
3582 &hdrs_hint_ipv6_tcp_gtpu_up,
3583 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3585 /* IPv4 GTPU EH DWN IPv4 */
3586 {ETH_RSS_L3_SRC_ONLY,
3587 &hdrs_hint_ipv4_src_gtpu_dwn,
3588 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3589 {ETH_RSS_L3_DST_ONLY,
3590 &hdrs_hint_ipv4_dst_gtpu_dwn,
3591 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3593 ETH_RSS_L3_SRC_ONLY,
3594 &hdrs_hint_ipv4_src_gtpu_dwn,
3595 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3597 ETH_RSS_L3_DST_ONLY,
3598 &hdrs_hint_ipv4_dst_gtpu_dwn,
3599 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3601 &hdrs_hint_ipv4_gtpu_dwn,
3602 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3603 /* IPv4 GTPU EH DWN IPv6 */
3605 ETH_RSS_L3_SRC_ONLY,
3606 &hdrs_hint_ipv6_src_gtpu_dwn,
3607 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3609 ETH_RSS_L3_DST_ONLY,
3610 &hdrs_hint_ipv6_dst_gtpu_dwn,
3611 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3613 &hdrs_hint_ipv6_gtpu_dwn,
3614 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3615 /* IPv6 GTPU EH DWN IPv4 */
3617 ETH_RSS_L3_SRC_ONLY,
3618 &hdrs_hint_ipv4_src_gtpu_dwn,
3619 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3621 ETH_RSS_L3_DST_ONLY,
3622 &hdrs_hint_ipv4_dst_gtpu_dwn,
3623 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3625 &hdrs_hint_ipv4_gtpu_dwn,
3626 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3627 /* IPv6 GTPU EH DWN IPv6 */
3629 ETH_RSS_L3_SRC_ONLY,
3630 &hdrs_hint_ipv6_src_gtpu_dwn,
3631 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3633 ETH_RSS_L3_DST_ONLY,
3634 &hdrs_hint_ipv6_dst_gtpu_dwn,
3635 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3637 &hdrs_hint_ipv6_gtpu_dwn,
3638 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3639 /* IPv4 GTPU EH DWN IPv4 UDP */
3640 {ETH_RSS_L3_SRC_ONLY |
3641 ETH_RSS_L4_SRC_ONLY,
3642 &hdrs_hint_ipv4_src_udp_src_gtpu_dwn,
3643 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3644 {ETH_RSS_L3_SRC_ONLY |
3645 ETH_RSS_L4_DST_ONLY,
3646 &hdrs_hint_ipv4_src_udp_dst_gtpu_dwn,
3647 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3648 {ETH_RSS_L3_SRC_ONLY,
3649 &hdrs_hint_ipv4_src_udp_gtpu_dwn,
3650 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3651 {ETH_RSS_L4_SRC_ONLY,
3652 &hdrs_hint_ipv4_udp_src_gtpu_dwn,
3653 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3654 {ETH_RSS_L3_DST_ONLY |
3655 ETH_RSS_L4_SRC_ONLY,
3656 &hdrs_hint_ipv4_dst_udp_src_gtpu_dwn,
3657 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3658 {ETH_RSS_L3_DST_ONLY |
3659 ETH_RSS_L4_DST_ONLY,
3660 &hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn,
3661 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3662 {ETH_RSS_L3_DST_ONLY,
3663 &hdrs_hint_ipv4_dst_udp_gtpu_dwn,
3664 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3665 {ETH_RSS_L4_DST_ONLY,
3666 &hdrs_hint_ipv4_udp_dst_gtpu_dwn,
3667 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3668 {ETH_RSS_NONFRAG_IPV4_UDP |
3669 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3670 &hdrs_hint_ipv4_src_udp_src_gtpu_dwn,
3671 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3672 {ETH_RSS_NONFRAG_IPV4_UDP |
3673 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3674 &hdrs_hint_ipv4_src_udp_dst_gtpu_dwn,
3675 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3676 {ETH_RSS_NONFRAG_IPV4_UDP |
3677 ETH_RSS_L3_SRC_ONLY,
3678 &hdrs_hint_ipv4_src_udp_gtpu_dwn,
3679 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3680 {ETH_RSS_NONFRAG_IPV4_UDP |
3681 ETH_RSS_L4_SRC_ONLY,
3682 &hdrs_hint_ipv4_udp_src_gtpu_dwn,
3683 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3684 {ETH_RSS_NONFRAG_IPV4_UDP |
3685 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3686 &hdrs_hint_ipv4_dst_udp_src_gtpu_dwn,
3687 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3688 {ETH_RSS_NONFRAG_IPV4_UDP |
3689 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3690 &hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn,
3691 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3692 {ETH_RSS_NONFRAG_IPV4_UDP |
3693 ETH_RSS_L3_DST_ONLY,
3694 &hdrs_hint_ipv4_dst_udp_gtpu_dwn,
3695 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3696 {ETH_RSS_NONFRAG_IPV4_UDP |
3697 ETH_RSS_L4_DST_ONLY,
3698 &hdrs_hint_ipv4_udp_dst_gtpu_dwn,
3699 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3700 {ETH_RSS_NONFRAG_IPV4_UDP,
3701 &hdrs_hint_ipv4_udp_gtpu_dwn,
3702 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3703 /* IPv4 GTPU EH DWN IPv6 UDP */
3704 {ETH_RSS_NONFRAG_IPV6_UDP |
3705 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3706 &hdrs_hint_ipv6_src_udp_src_gtpu_dwn,
3707 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3708 {ETH_RSS_NONFRAG_IPV6_UDP |
3709 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3710 &hdrs_hint_ipv6_src_udp_dst_gtpu_dwn,
3711 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3712 {ETH_RSS_NONFRAG_IPV6_UDP |
3713 ETH_RSS_L3_SRC_ONLY,
3714 &hdrs_hint_ipv6_src_udp_gtpu_dwn,
3715 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3716 {ETH_RSS_NONFRAG_IPV6_UDP |
3717 ETH_RSS_L4_SRC_ONLY,
3718 &hdrs_hint_ipv6_udp_src_gtpu_dwn,
3719 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3720 {ETH_RSS_NONFRAG_IPV6_UDP |
3721 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3722 &hdrs_hint_ipv6_dst_udp_src_gtpu_dwn,
3723 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3724 {ETH_RSS_NONFRAG_IPV6_UDP |
3725 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3726 &hdrs_hint_ipv6_dst_udp_dst_gtpu_dwn,
3727 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3728 {ETH_RSS_NONFRAG_IPV6_UDP |
3729 ETH_RSS_L3_DST_ONLY,
3730 &hdrs_hint_ipv6_dst_udp_gtpu_dwn,
3731 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3732 {ETH_RSS_NONFRAG_IPV6_UDP |
3733 ETH_RSS_L4_DST_ONLY,
3734 &hdrs_hint_ipv6_udp_dst_gtpu_dwn,
3735 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3736 {ETH_RSS_NONFRAG_IPV6_UDP,
3737 &hdrs_hint_ipv6_udp_gtpu_dwn,
3738 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3739 /* IPv6 GTPU EH DWN IPv4 UDP */
3740 {ETH_RSS_NONFRAG_IPV4_UDP |
3741 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3742 &hdrs_hint_ipv4_src_udp_src_gtpu_dwn,
3743 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3744 {ETH_RSS_NONFRAG_IPV4_UDP |
3745 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3746 &hdrs_hint_ipv4_src_udp_dst_gtpu_dwn,
3747 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3748 {ETH_RSS_NONFRAG_IPV4_UDP |
3749 ETH_RSS_L3_SRC_ONLY,
3750 &hdrs_hint_ipv4_src_udp_gtpu_dwn,
3751 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3752 {ETH_RSS_NONFRAG_IPV4_UDP |
3753 ETH_RSS_L4_SRC_ONLY,
3754 &hdrs_hint_ipv4_udp_src_gtpu_dwn,
3755 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3756 {ETH_RSS_NONFRAG_IPV4_UDP |
3757 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3758 &hdrs_hint_ipv4_dst_udp_src_gtpu_dwn,
3759 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3760 {ETH_RSS_NONFRAG_IPV4_UDP |
3761 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3762 &hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn,
3763 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3764 {ETH_RSS_NONFRAG_IPV4_UDP |
3765 ETH_RSS_L3_DST_ONLY,
3766 &hdrs_hint_ipv4_dst_udp_gtpu_dwn,
3767 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3768 {ETH_RSS_NONFRAG_IPV4_UDP |
3769 ETH_RSS_L4_DST_ONLY,
3770 &hdrs_hint_ipv4_udp_dst_gtpu_dwn,
3771 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3772 {ETH_RSS_NONFRAG_IPV4_UDP,
3773 &hdrs_hint_ipv4_udp_gtpu_dwn,
3774 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3775 /* IPv6 GTPU EH DWN IPv6 UDP */
3776 {ETH_RSS_NONFRAG_IPV6_UDP |
3777 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3778 &hdrs_hint_ipv6_src_udp_src_gtpu_dwn,
3779 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3780 {ETH_RSS_NONFRAG_IPV6_UDP |
3781 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3782 &hdrs_hint_ipv6_src_udp_dst_gtpu_dwn,
3783 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3784 {ETH_RSS_NONFRAG_IPV6_UDP |
3785 ETH_RSS_L3_SRC_ONLY,
3786 &hdrs_hint_ipv6_src_udp_gtpu_dwn,
3787 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3788 {ETH_RSS_NONFRAG_IPV6_UDP |
3789 ETH_RSS_L4_SRC_ONLY,
3790 &hdrs_hint_ipv6_udp_src_gtpu_dwn,
3791 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3792 {ETH_RSS_NONFRAG_IPV6_UDP |
3793 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3794 &hdrs_hint_ipv6_dst_udp_src_gtpu_dwn,
3795 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3796 {ETH_RSS_NONFRAG_IPV6_UDP |
3797 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3798 &hdrs_hint_ipv6_dst_udp_dst_gtpu_dwn,
3799 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3800 {ETH_RSS_NONFRAG_IPV6_UDP |
3801 ETH_RSS_L3_DST_ONLY,
3802 &hdrs_hint_ipv6_dst_udp_gtpu_dwn,
3803 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3804 {ETH_RSS_NONFRAG_IPV6_UDP |
3805 ETH_RSS_L4_DST_ONLY,
3806 &hdrs_hint_ipv6_udp_dst_gtpu_dwn,
3807 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3808 {ETH_RSS_NONFRAG_IPV6_UDP,
3809 &hdrs_hint_ipv6_udp_gtpu_dwn,
3810 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3811 /* IPv4 GTPU EH DWN IPv4 TCP */
3812 {ETH_RSS_L3_SRC_ONLY |
3813 ETH_RSS_L4_SRC_ONLY,
3814 &hdrs_hint_ipv4_src_tcp_src_gtpu_dwn,
3815 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3816 {ETH_RSS_L3_SRC_ONLY |
3817 ETH_RSS_L4_DST_ONLY,
3818 &hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn,
3819 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3820 {ETH_RSS_L3_SRC_ONLY,
3821 &hdrs_hint_ipv4_src_tcp_gtpu_dwn,
3822 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3823 {ETH_RSS_L4_SRC_ONLY,
3824 &hdrs_hint_ipv4_tcp_src_gtpu_dwn,
3825 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3826 {ETH_RSS_L3_DST_ONLY |
3827 ETH_RSS_L4_SRC_ONLY,
3828 &hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn,
3829 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3830 {ETH_RSS_L3_DST_ONLY |
3831 ETH_RSS_L4_DST_ONLY,
3832 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn,
3833 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3834 {ETH_RSS_L3_DST_ONLY,
3835 &hdrs_hint_ipv4_dst_tcp_gtpu_dwn,
3836 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3837 {ETH_RSS_L4_DST_ONLY,
3838 &hdrs_hint_ipv4_tcp_dst_gtpu_dwn,
3839 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3840 {ETH_RSS_NONFRAG_IPV4_TCP |
3841 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3842 &hdrs_hint_ipv4_src_tcp_src_gtpu_dwn,
3843 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3844 {ETH_RSS_NONFRAG_IPV4_TCP |
3845 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3846 &hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn,
3847 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3848 {ETH_RSS_NONFRAG_IPV4_TCP |
3849 ETH_RSS_L3_SRC_ONLY,
3850 &hdrs_hint_ipv4_src_tcp_gtpu_dwn,
3851 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3852 {ETH_RSS_NONFRAG_IPV4_TCP |
3853 ETH_RSS_L4_SRC_ONLY,
3854 &hdrs_hint_ipv4_tcp_src_gtpu_dwn,
3855 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3856 {ETH_RSS_NONFRAG_IPV4_TCP |
3857 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3858 &hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn,
3859 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3860 {ETH_RSS_NONFRAG_IPV4_TCP |
3861 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3862 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn,
3863 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3864 {ETH_RSS_NONFRAG_IPV4_TCP |
3865 ETH_RSS_L3_DST_ONLY,
3866 &hdrs_hint_ipv4_dst_tcp_gtpu_dwn,
3867 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3868 {ETH_RSS_NONFRAG_IPV4_TCP |
3869 ETH_RSS_L4_DST_ONLY,
3870 &hdrs_hint_ipv4_tcp_dst_gtpu_dwn,
3871 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3872 {ETH_RSS_NONFRAG_IPV4_TCP,
3873 &hdrs_hint_ipv4_tcp_gtpu_dwn,
3874 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3875 /* IPv4 GTPU EH DWN IPv6 TCP */
3876 {ETH_RSS_NONFRAG_IPV6_TCP |
3877 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3878 &hdrs_hint_ipv6_src_tcp_src_gtpu_dwn,
3879 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3880 {ETH_RSS_NONFRAG_IPV6_TCP |
3881 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3882 &hdrs_hint_ipv6_src_tcp_dst_gtpu_dwn,
3883 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3884 {ETH_RSS_NONFRAG_IPV6_TCP |
3885 ETH_RSS_L3_SRC_ONLY,
3886 &hdrs_hint_ipv6_src_tcp_gtpu_dwn,
3887 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3888 {ETH_RSS_NONFRAG_IPV6_TCP |
3889 ETH_RSS_L4_SRC_ONLY,
3890 &hdrs_hint_ipv6_tcp_src_gtpu_dwn,
3891 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3892 {ETH_RSS_NONFRAG_IPV6_TCP |
3893 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3894 &hdrs_hint_ipv6_dst_tcp_src_gtpu_dwn,
3895 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3896 {ETH_RSS_NONFRAG_IPV6_TCP |
3897 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3898 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_dwn,
3899 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3900 {ETH_RSS_NONFRAG_IPV6_TCP |
3901 ETH_RSS_L3_DST_ONLY,
3902 &hdrs_hint_ipv6_dst_tcp_gtpu_dwn,
3903 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3904 {ETH_RSS_NONFRAG_IPV6_TCP |
3905 ETH_RSS_L4_DST_ONLY,
3906 &hdrs_hint_ipv6_tcp_dst_gtpu_dwn,
3907 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3908 {ETH_RSS_NONFRAG_IPV6_TCP,
3909 &hdrs_hint_ipv6_tcp_gtpu_dwn,
3910 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3911 /* IPv6 GTPU EH DWN IPv4 TCP */
3912 {ETH_RSS_NONFRAG_IPV4_TCP |
3913 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3914 &hdrs_hint_ipv4_src_tcp_src_gtpu_dwn,
3915 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3916 {ETH_RSS_NONFRAG_IPV4_TCP |
3917 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3918 &hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn,
3919 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3920 {ETH_RSS_NONFRAG_IPV4_TCP |
3921 ETH_RSS_L3_SRC_ONLY,
3922 &hdrs_hint_ipv4_src_tcp_gtpu_dwn,
3923 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3924 {ETH_RSS_NONFRAG_IPV4_TCP |
3925 ETH_RSS_L4_SRC_ONLY,
3926 &hdrs_hint_ipv4_tcp_src_gtpu_dwn,
3927 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3928 {ETH_RSS_NONFRAG_IPV4_TCP |
3929 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3930 &hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn,
3931 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3932 {ETH_RSS_NONFRAG_IPV4_TCP |
3933 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3934 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn,
3935 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3936 {ETH_RSS_NONFRAG_IPV4_TCP |
3937 ETH_RSS_L3_DST_ONLY,
3938 &hdrs_hint_ipv4_dst_tcp_gtpu_dwn,
3939 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3940 {ETH_RSS_NONFRAG_IPV4_TCP |
3941 ETH_RSS_L4_DST_ONLY,
3942 &hdrs_hint_ipv4_tcp_dst_gtpu_dwn,
3943 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3944 {ETH_RSS_NONFRAG_IPV4_TCP,
3945 &hdrs_hint_ipv4_tcp_gtpu_dwn,
3946 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3947 /* IPv6 GTPU EH DWN IPv6 TCP */
3948 {ETH_RSS_NONFRAG_IPV6_TCP |
3949 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3950 &hdrs_hint_ipv6_src_tcp_src_gtpu_dwn,
3951 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3952 {ETH_RSS_NONFRAG_IPV6_TCP |
3953 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3954 &hdrs_hint_ipv6_src_tcp_dst_gtpu_dwn,
3955 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3956 {ETH_RSS_NONFRAG_IPV6_TCP |
3957 ETH_RSS_L3_SRC_ONLY,
3958 &hdrs_hint_ipv6_src_tcp_gtpu_dwn,
3959 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3960 {ETH_RSS_NONFRAG_IPV6_TCP |
3961 ETH_RSS_L4_SRC_ONLY,
3962 &hdrs_hint_ipv6_tcp_src_gtpu_dwn,
3963 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3964 {ETH_RSS_NONFRAG_IPV6_TCP |
3965 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3966 &hdrs_hint_ipv6_dst_tcp_src_gtpu_dwn,
3967 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3968 {ETH_RSS_NONFRAG_IPV6_TCP |
3969 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3970 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_dwn,
3971 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3972 {ETH_RSS_NONFRAG_IPV6_TCP |
3973 ETH_RSS_L3_DST_ONLY,
3974 &hdrs_hint_ipv6_dst_tcp_gtpu_dwn,
3975 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3976 {ETH_RSS_NONFRAG_IPV6_TCP |
3977 ETH_RSS_L4_DST_ONLY,
3978 &hdrs_hint_ipv6_tcp_dst_gtpu_dwn,
3979 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3980 {ETH_RSS_NONFRAG_IPV6_TCP,
3981 &hdrs_hint_ipv6_tcp_gtpu_dwn,
3982 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3985 struct virtchnl_proto_hdrs *iavf_hash_default_hdrs[] = {
3987 &hdrs_hint_ipv4_udp,
3988 &hdrs_hint_ipv4_tcp,
3989 &hdrs_hint_ipv4_sctp,
3991 &hdrs_hint_ipv6_udp,
3992 &hdrs_hint_ipv6_tcp,
3993 &hdrs_hint_ipv6_sctp,
3996 static struct iavf_flow_engine iavf_hash_engine = {
3997 .init = iavf_hash_init,
3998 .create = iavf_hash_create,
3999 .destroy = iavf_hash_destroy,
4000 .uninit = iavf_hash_uninit,
4001 .free = iavf_hash_free,
4002 .type = IAVF_FLOW_ENGINE_HASH,
4005 /* Register parser for comms package. */
4006 static struct iavf_flow_parser iavf_hash_parser = {
4007 .engine = &iavf_hash_engine,
4008 .array = iavf_hash_pattern_list,
4009 .array_len = RTE_DIM(iavf_hash_pattern_list),
4010 .parse_pattern_action = iavf_hash_parse_pattern_action,
4011 .stage = IAVF_FLOW_STAGE_RSS,
4015 iavf_hash_default_set(struct iavf_adapter *ad, bool add)
4017 struct virtchnl_rss_cfg *rss_cfg;
4021 rss_cfg = rte_zmalloc("iavf rss rule",
4022 sizeof(struct virtchnl_rss_cfg), 0);
4026 for (i = 0; i < RTE_DIM(iavf_hash_default_hdrs); i++) {
4027 rss_cfg->proto_hdrs = *iavf_hash_default_hdrs[i];
4028 rss_cfg->rss_algorithm = VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC;
4030 ret = iavf_add_del_rss_cfg(ad, rss_cfg, add);
4032 PMD_DRV_LOG(ERR, "fail to %s RSS configure",
4033 add ? "add" : "delete");
4042 RTE_INIT(iavf_hash_engine_init)
4044 struct iavf_flow_engine *engine = &iavf_hash_engine;
4046 iavf_register_flow_engine(engine);
4050 iavf_hash_init(struct iavf_adapter *ad)
4052 struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(ad);
4053 struct iavf_flow_parser *parser;
4059 if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_ADV_RSS_PF))
4062 parser = &iavf_hash_parser;
4064 ret = iavf_register_parser(parser, ad);
4066 PMD_DRV_LOG(ERR, "fail to register hash parser");
4070 ret = iavf_hash_default_set(ad, true);
4072 PMD_DRV_LOG(ERR, "fail to set default RSS");
4073 iavf_unregister_parser(parser, ad);
4080 iavf_hash_parse_pattern(struct iavf_pattern_match_item *pattern_match_item,
4081 const struct rte_flow_item pattern[], uint64_t *phint,
4082 struct rte_flow_error *error)
4084 const struct rte_flow_item *item = pattern;
4085 const struct rte_flow_item_gtp_psc *psc;
4088 for (item = pattern; item->type != RTE_FLOW_ITEM_TYPE_END; item++) {
4090 rte_flow_error_set(error, EINVAL,
4091 RTE_FLOW_ERROR_TYPE_ITEM, item,
4092 "Not support range");
4096 switch (item->type) {
4097 case RTE_FLOW_ITEM_TYPE_IPV6:
4100 case RTE_FLOW_ITEM_TYPE_GTPU:
4101 *phint |= (outer_ipv6) ?
4102 IAVF_PHINT_IPV6_GTPU_IP :
4103 IAVF_PHINT_IPV4_GTPU_IP;
4105 case RTE_FLOW_ITEM_TYPE_GTP_PSC:
4107 *phint &= (outer_ipv6) ?
4108 ~IAVF_PHINT_IPV6_GTPU_IP :
4109 ~IAVF_PHINT_IPV4_GTPU_IP;
4111 *phint |= (outer_ipv6) ?
4112 IAVF_PHINT_IPV6_GTPU_EH :
4113 IAVF_PHINT_IPV4_GTPU_EH;
4114 else if (psc->pdu_type == IAVF_GTPU_EH_UPLINK)
4115 *phint |= (outer_ipv6) ?
4116 IAVF_PHINT_IPV6_GTPU_EH_UPLINK :
4117 IAVF_PHINT_IPV4_GTPU_EH_UPLINK;
4118 else if (psc->pdu_type == IAVF_GTPU_EH_DWNLINK)
4119 *phint |= (outer_ipv6) ?
4120 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK :
4121 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK;
4128 /* update and restore pattern hint */
4129 *phint |= ((struct iavf_pattern_match_type *)
4130 (pattern_match_item->meta))->pattern_hint;
4136 iavf_hash_parse_action(const struct rte_flow_action actions[],
4137 uint64_t pattern_hint, void **meta,
4138 struct rte_flow_error *error)
4140 struct iavf_rss_meta *rss_meta = (struct iavf_rss_meta *)*meta;
4141 struct iavf_hash_match_type *hash_map_list;
4142 enum rte_flow_action_type action_type;
4143 const struct rte_flow_action_rss *rss;
4144 const struct rte_flow_action *action;
4146 bool item_found = false;
4150 /* Supported action is RSS. */
4151 for (action = actions; action->type !=
4152 RTE_FLOW_ACTION_TYPE_END; action++) {
4153 action_type = action->type;
4154 switch (action_type) {
4155 case RTE_FLOW_ACTION_TYPE_RSS:
4157 rss_type = rss->types;
4160 RTE_ETH_HASH_FUNCTION_SIMPLE_XOR){
4161 rss_meta->rss_algorithm =
4162 VIRTCHNL_RSS_ALG_XOR_ASYMMETRIC;
4163 } else if (rss->func ==
4164 RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) {
4165 rss_meta->rss_algorithm =
4166 VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC;
4168 rss_meta->rss_algorithm =
4169 VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC;
4173 return rte_flow_error_set(error, ENOTSUP,
4174 RTE_FLOW_ERROR_TYPE_ACTION, action,
4175 "a nonzero RSS encapsulation level is not supported");
4178 return rte_flow_error_set(error, ENOTSUP,
4179 RTE_FLOW_ERROR_TYPE_ACTION, action,
4180 "a nonzero RSS key_len is not supported");
4183 return rte_flow_error_set(error, ENOTSUP,
4184 RTE_FLOW_ERROR_TYPE_ACTION, action,
4185 "a non-NULL RSS queue is not supported");
4188 * Check simultaneous use of SRC_ONLY and DST_ONLY
4189 * of the same level.
4191 rss_type = rte_eth_rss_hf_refine(rss_type);
4193 if ((pattern_hint & IAVF_PHINT_IPV4_GTPU_IP) ||
4194 (pattern_hint & IAVF_PHINT_IPV4_GTPU_EH) ||
4195 (pattern_hint & IAVF_PHINT_IPV4_GTPU_EH_UPLINK) ||
4196 (pattern_hint & IAVF_PHINT_IPV4_GTPU_EH_DWNLINK) ||
4197 (pattern_hint & IAVF_PHINT_IPV6_GTPU_IP) ||
4198 (pattern_hint & IAVF_PHINT_IPV6_GTPU_EH) ||
4199 (pattern_hint & IAVF_PHINT_IPV6_GTPU_EH_UPLINK) ||
4200 (pattern_hint & IAVF_PHINT_IPV6_GTPU_EH_DWNLINK)) {
4201 hash_map_list = iavf_gtpu_hash_map_list;
4202 mlist_len = RTE_DIM(iavf_gtpu_hash_map_list);
4204 hash_map_list = iavf_hash_map_list;
4205 mlist_len = RTE_DIM(iavf_hash_map_list);
4208 /* Find matched proto hdrs according to hash type. */
4209 for (i = 0; i < mlist_len; i++) {
4210 struct iavf_hash_match_type *ht_map =
4212 if (rss_type == ht_map->hash_type &&
4213 pattern_hint == ht_map->pattern_hint) {
4214 rss_meta->proto_hdrs =
4222 return rte_flow_error_set(error, ENOTSUP,
4223 RTE_FLOW_ERROR_TYPE_ACTION, action,
4224 "Not supported flow");
4227 case RTE_FLOW_ACTION_TYPE_END:
4231 rte_flow_error_set(error, EINVAL,
4232 RTE_FLOW_ERROR_TYPE_ACTION, action,
4242 iavf_hash_parse_pattern_action(__rte_unused struct iavf_adapter *ad,
4243 struct iavf_pattern_match_item *array,
4245 const struct rte_flow_item pattern[],
4246 const struct rte_flow_action actions[],
4248 struct rte_flow_error *error)
4250 struct iavf_pattern_match_item *pattern_match_item;
4251 struct iavf_rss_meta *rss_meta_ptr;
4252 uint64_t phint = IAVF_PHINT_NONE;
4255 rss_meta_ptr = rte_zmalloc(NULL, sizeof(*rss_meta_ptr), 0);
4256 if (!rss_meta_ptr) {
4257 rte_flow_error_set(error, EINVAL,
4258 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
4259 "No memory for rss_meta_ptr");
4263 /* Check rss supported pattern and find matched pattern. */
4264 pattern_match_item =
4265 iavf_search_pattern_match_item(pattern, array, array_len,
4267 if (!pattern_match_item) {
4272 ret = iavf_hash_parse_pattern(pattern_match_item, pattern, &phint,
4277 ret = iavf_hash_parse_action(actions, phint,
4278 (void **)&rss_meta_ptr, error);
4282 *meta = rss_meta_ptr;
4284 rte_free(rss_meta_ptr);
4286 rte_free(pattern_match_item);
4292 iavf_hash_create(__rte_unused struct iavf_adapter *ad,
4293 __rte_unused struct rte_flow *flow, void *meta,
4294 __rte_unused struct rte_flow_error *error)
4296 struct iavf_rss_meta *rss_meta = (struct iavf_rss_meta *)meta;
4297 struct virtchnl_rss_cfg *rss_cfg;
4300 rss_cfg = rte_zmalloc("iavf rss rule",
4301 sizeof(struct virtchnl_rss_cfg), 0);
4303 rte_flow_error_set(error, EINVAL,
4304 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
4305 "No memory for rss rule");
4309 rss_cfg->proto_hdrs = *rss_meta->proto_hdrs;
4310 rss_cfg->rss_algorithm = rss_meta->rss_algorithm;
4312 ret = iavf_add_del_rss_cfg(ad, rss_cfg, true);
4314 flow->rule = rss_cfg;
4316 PMD_DRV_LOG(ERR, "fail to add RSS configure");
4317 rte_flow_error_set(error, -ret,
4318 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
4319 "Failed to add rss rule.");
4330 iavf_hash_destroy(__rte_unused struct iavf_adapter *ad,
4331 struct rte_flow *flow,
4332 __rte_unused struct rte_flow_error *error)
4334 struct virtchnl_rss_cfg *rss_cfg;
4337 rss_cfg = (struct virtchnl_rss_cfg *)flow->rule;
4339 ret = iavf_add_del_rss_cfg(ad, rss_cfg, false);
4341 PMD_DRV_LOG(ERR, "fail to del RSS configure");
4342 rte_flow_error_set(error, -ret,
4343 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
4344 "Failed to delete rss rule.");
4351 iavf_hash_uninit(struct iavf_adapter *ad)
4353 if (iavf_hash_default_set(ad, false))
4354 PMD_DRV_LOG(ERR, "fail to delete default RSS");
4356 iavf_unregister_parser(&iavf_hash_parser, ad);
4360 iavf_hash_free(struct rte_flow *flow)
4362 rte_free(flow->rule);