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_src_port = {
599 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
600 proto_hint_udp_src_port }
603 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_port = {
604 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
605 proto_hint_udp_dst_port }
608 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_port = {
609 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
610 proto_hint_udp_src_port }
613 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_port = {
614 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
615 proto_hint_udp_dst_port }
618 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_port = {
619 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
620 proto_hint_udp_src_port }
623 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_port = {
624 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
625 proto_hint_udp_dst_port }
628 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp = {
629 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
633 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_port = {
634 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
635 proto_hint_tcp_src_port }
638 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_port = {
639 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
640 proto_hint_tcp_dst_port }
643 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_port = {
644 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
645 proto_hint_tcp_src_port }
648 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_port = {
649 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
650 proto_hint_tcp_dst_port }
653 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_port = {
654 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
655 proto_hint_tcp_src_port }
658 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_port = {
659 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
660 proto_hint_tcp_dst_port }
663 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp = {
664 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
668 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_sctp_src_port = {
669 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
670 proto_hint_sctp_src_port }
673 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_sctp_dst_port = {
674 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
675 proto_hint_sctp_dst_port }
678 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_sctp_src_port = {
679 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
680 proto_hint_sctp_src_port }
683 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_sctp_dst_port = {
684 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
685 proto_hint_sctp_dst_port }
688 struct virtchnl_proto_hdrs hdrs_hint_ipv4_sctp_src_port = {
689 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
690 proto_hint_sctp_src_port }
693 struct virtchnl_proto_hdrs hdrs_hint_ipv4_sctp_dst_port = {
694 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
695 proto_hint_sctp_dst_port }
698 struct virtchnl_proto_hdrs hdrs_hint_ipv4_sctp = {
699 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4,
703 struct virtchnl_proto_hdrs hdrs_hint_ipv4_esp = {
704 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
708 struct virtchnl_proto_hdrs hdrs_hint_ipv4_ah = {
709 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
713 struct virtchnl_proto_hdrs hdrs_hint_ipv4_l2tpv3 = {
714 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
718 struct virtchnl_proto_hdrs hdrs_hint_ipv4_pfcp = {
719 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
723 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_esp = {
724 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_ipv4_only,
725 proto_hint_udp_only, proto_hint_esp }
730 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_ip = {
731 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
732 proto_hint_ipv4_src }
735 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_ip = {
736 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
737 proto_hint_ipv4_dst }
740 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_ip = {
741 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
745 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_ip = {
746 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
747 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
750 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_ip = {
751 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
752 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
755 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_ip = {
756 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
757 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
760 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_ip = {
761 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
762 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
765 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_ip = {
766 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
767 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
770 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_ip = {
771 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
772 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
775 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_ip = {
776 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
777 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
780 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_ip = {
781 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
782 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
785 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_ip = {
786 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
787 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
790 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_ip = {
791 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
792 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
795 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_ip = {
796 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
797 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
800 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip = {
801 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
802 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
805 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_ip = {
806 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
807 proto_hint_ipv4_prot, proto_hint_udp}
810 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_ip = {
811 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
812 proto_hint_ipv4_prot, proto_hint_tcp}
815 struct virtchnl_proto_hdrs hdrs_hint_teid_gtpu_ip = {
816 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_teid}
821 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_ip = {
822 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
823 proto_hint_ipv6_src }
826 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_ip = {
827 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
828 proto_hint_ipv6_dst }
831 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_ip = {
832 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only,
836 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_ip = {
837 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
838 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
841 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_ip = {
842 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
843 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
846 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_ip = {
847 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
848 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
851 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_ip = {
852 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
853 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
856 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_ip = {
857 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
858 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
861 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_ip = {
862 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
863 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
866 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_ip = {
867 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
868 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
871 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_ip = {
872 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
873 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
876 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_ip = {
877 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
878 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
881 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_ip = {
882 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
883 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
886 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_ip = {
887 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
888 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
891 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_ip = {
892 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
893 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
896 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_ip = {
897 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
898 proto_hint_ipv6_prot, proto_hint_udp}
901 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_ip = {
902 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only,
903 proto_hint_ipv6_prot, proto_hint_tcp}
908 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_eh = {
909 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
910 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
913 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_eh = {
914 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
915 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
918 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_eh = {
919 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
920 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
923 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_eh = {
924 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
925 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
928 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_eh = {
929 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
930 proto_hint_ipv4_src }
933 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_eh = {
934 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
935 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
938 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_eh = {
939 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
940 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
943 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_eh = {
944 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
945 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
948 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_eh = {
949 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
950 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
953 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_eh = {
954 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
955 proto_hint_ipv4_dst }
958 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_eh = {
959 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
963 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_eh = {
964 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
965 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
968 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_eh = {
969 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
970 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
973 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_eh = {
974 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
975 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
978 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh = {
979 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
980 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
983 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_eh = {
984 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
985 proto_hint_ipv4_prot, proto_hint_udp}
988 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_eh = {
989 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
990 proto_hint_ipv4_prot, proto_hint_tcp}
995 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_eh = {
996 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
997 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
1000 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_eh = {
1001 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1002 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
1005 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_eh = {
1006 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1007 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
1010 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_eh = {
1011 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1012 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
1015 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_eh = {
1016 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1017 proto_hint_ipv6_src }
1020 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_eh = {
1021 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1022 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
1025 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_eh = {
1026 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1027 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
1030 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_eh = {
1031 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1032 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
1035 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_eh = {
1036 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1037 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
1040 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_eh = {
1041 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1042 proto_hint_ipv6_dst }
1045 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_eh = {
1046 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
1050 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_eh = {
1051 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1052 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
1055 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_eh = {
1056 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1057 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
1060 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_eh = {
1061 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1062 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
1065 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_eh = {
1066 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1067 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
1070 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_eh = {
1071 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1072 proto_hint_ipv6_prot, proto_hint_udp}
1075 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_eh = {
1076 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
1077 proto_hint_ipv6_prot, proto_hint_tcp}
1082 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_up = {
1083 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1084 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
1087 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_up = {
1088 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1089 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
1092 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_up = {
1093 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1094 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
1097 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_up = {
1098 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1099 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
1102 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_up = {
1103 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1104 proto_hint_ipv4_src }
1107 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_up = {
1108 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1109 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
1112 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_up = {
1113 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1114 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
1117 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_up = {
1118 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1119 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
1122 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_up = {
1123 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1124 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
1127 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_up = {
1128 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1129 proto_hint_ipv4_dst }
1132 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_up = {
1133 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1137 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_up = {
1138 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1139 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
1142 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_up = {
1143 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1144 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
1147 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_up = {
1148 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1149 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
1152 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_up = {
1153 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1154 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
1157 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_up = {
1158 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1159 proto_hint_ipv4_prot, proto_hint_udp}
1162 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_up = {
1163 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1164 proto_hint_ipv4_prot, proto_hint_tcp}
1169 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_up = {
1170 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1171 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
1174 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_up = {
1175 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1176 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
1179 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_up = {
1180 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1181 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
1184 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_up = {
1185 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1186 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
1189 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_up = {
1190 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1191 proto_hint_ipv6_src }
1194 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_up = {
1195 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1196 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
1199 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_up = {
1200 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1201 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
1204 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_up = {
1205 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1206 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
1209 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_up = {
1210 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1211 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
1214 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_up = {
1215 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1216 proto_hint_ipv6_dst }
1219 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_up = {
1220 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
1224 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_up = {
1225 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1226 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
1229 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_up = {
1230 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1231 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
1234 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_up = {
1235 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1236 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
1239 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_up = {
1240 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1241 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
1244 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_up = {
1245 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1246 proto_hint_ipv6_prot, proto_hint_udp}
1249 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_up = {
1250 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
1251 proto_hint_ipv6_prot, proto_hint_tcp}
1256 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_dwn = {
1257 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1258 proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
1261 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_dwn = {
1262 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1263 proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
1266 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_dwn = {
1267 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1268 proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
1271 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_dwn = {
1272 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1273 proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
1276 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_dwn = {
1277 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1278 proto_hint_ipv4_src }
1281 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_dwn = {
1282 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1283 proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
1286 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_dwn = {
1287 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1288 proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
1291 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_dwn = {
1292 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1293 proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
1296 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn = {
1297 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1298 proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
1301 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_dwn = {
1302 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1303 proto_hint_ipv4_dst }
1306 struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_dwn = {
1307 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1311 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_dwn = {
1312 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1313 proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
1316 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn = {
1317 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1318 proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
1321 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn = {
1322 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1323 proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
1326 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn = {
1327 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1328 proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
1331 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_dwn = {
1332 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1333 proto_hint_ipv4_prot, proto_hint_udp}
1336 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_dwn = {
1337 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1338 proto_hint_ipv4_prot, proto_hint_tcp}
1343 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_gtpu_dwn = {
1344 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1345 proto_hint_ipv6_only_prot, proto_hint_udp_src_port}
1348 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_gtpu_dwn = {
1349 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1350 proto_hint_ipv6_only_prot, proto_hint_udp_dst_port}
1353 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_gtpu_dwn = {
1354 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1355 proto_hint_ipv6_only_prot, proto_hint_tcp_src_port}
1358 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_gtpu_dwn = {
1359 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1360 proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port}
1363 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_gtpu_dwn = {
1364 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1365 proto_hint_ipv6_src }
1368 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_gtpu_dwn = {
1369 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1370 proto_hint_ipv6_src_prot, proto_hint_udp_src_port}
1373 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_gtpu_dwn = {
1374 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1375 proto_hint_ipv6_src_prot, proto_hint_udp_dst_port}
1378 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_gtpu_dwn = {
1379 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1380 proto_hint_ipv6_src_prot, proto_hint_tcp_src_port}
1383 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_gtpu_dwn = {
1384 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1385 proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port}
1388 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_gtpu_dwn = {
1389 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1390 proto_hint_ipv6_dst }
1393 struct virtchnl_proto_hdrs hdrs_hint_ipv6_gtpu_dwn = {
1394 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
1398 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_gtpu_dwn = {
1399 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1400 proto_hint_ipv6_dst_prot, proto_hint_udp_src_port}
1403 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_gtpu_dwn = {
1404 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1405 proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port}
1408 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_gtpu_dwn = {
1409 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1410 proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port}
1413 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_gtpu_dwn = {
1414 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1415 proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port}
1418 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_gtpu_dwn = {
1419 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1420 proto_hint_ipv6_prot, proto_hint_udp}
1423 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_gtpu_dwn = {
1424 TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
1425 proto_hint_ipv6_prot, proto_hint_tcp}
1430 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6 = {
1431 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth_src,
1432 proto_hint_ipv6_only }
1435 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6_udp = {
1436 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
1437 proto_hint_ipv6_only, proto_hint_udp_only }
1440 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6_tcp = {
1441 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
1442 proto_hint_ipv6_only, proto_hint_tcp_only }
1445 struct virtchnl_proto_hdrs hdrs_hint_eth_src_ipv6_sctp = {
1446 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_src,
1447 proto_hint_ipv6_only, proto_hint_sctp_only }
1450 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6 = {
1451 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth_dst,
1452 proto_hint_ipv6_only }
1455 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6_udp = {
1456 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
1457 proto_hint_ipv6_only, proto_hint_udp_only }
1460 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6_tcp = {
1461 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
1462 proto_hint_ipv6_only, proto_hint_tcp_only }
1465 struct virtchnl_proto_hdrs hdrs_hint_eth_dst_ipv6_sctp = {
1466 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth_dst,
1467 proto_hint_ipv6_only, proto_hint_sctp_only }
1470 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6 = {
1471 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_eth,
1472 proto_hint_ipv6_only }
1475 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6_udp = {
1476 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
1477 proto_hint_ipv6_only, proto_hint_udp_only }
1480 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6_tcp = {
1481 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
1482 proto_hint_ipv6_only, proto_hint_tcp_only }
1485 struct virtchnl_proto_hdrs hdrs_hint_eth_ipv6_sctp = {
1486 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_eth,
1487 proto_hint_ipv6_only, proto_hint_sctp_only }
1490 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6 = {
1491 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_svlan,
1492 proto_hint_ipv6_only}
1495 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6_udp = {
1496 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
1497 proto_hint_ipv6_only, proto_hint_udp_only}
1500 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6_tcp = {
1501 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
1502 proto_hint_ipv6_only, proto_hint_tcp_only}
1505 struct virtchnl_proto_hdrs hdrs_hint_svlan_ipv6_sctp = {
1506 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_svlan,
1507 proto_hint_ipv6_only, proto_hint_sctp_only}
1510 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6 = {
1511 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_cvlan,
1512 proto_hint_ipv6_only}
1515 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6_udp = {
1516 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
1517 proto_hint_ipv6_only, proto_hint_udp_only}
1520 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6_tcp = {
1521 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
1522 proto_hint_ipv6_only, proto_hint_tcp_only}
1525 struct virtchnl_proto_hdrs hdrs_hint_cvlan_ipv6_sctp = {
1526 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_cvlan,
1527 proto_hint_ipv6_only, proto_hint_sctp_only}
1530 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src = {
1531 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv6_src }
1534 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst = {
1535 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv6_dst }
1538 struct virtchnl_proto_hdrs hdrs_hint_ipv6 = {
1539 TUNNEL_LEVEL_OUTER, PROTO_COUNT_ONE, {proto_hint_ipv6 }
1542 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_port = {
1543 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1544 proto_hint_udp_src_port }
1547 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_port = {
1548 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1549 proto_hint_udp_dst_port }
1552 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_port = {
1553 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1554 proto_hint_udp_src_port }
1557 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_port = {
1558 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1559 proto_hint_udp_dst_port }
1562 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_port = {
1563 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1564 proto_hint_udp_src_port }
1567 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_port = {
1568 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1569 proto_hint_udp_dst_port }
1572 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp = {
1573 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
1577 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_port = {
1578 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1579 proto_hint_tcp_src_port }
1582 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_port = {
1583 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
1584 proto_hint_tcp_dst_port }
1587 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_port = {
1588 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1589 proto_hint_tcp_src_port }
1592 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_port = {
1593 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
1594 proto_hint_tcp_dst_port }
1597 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_port = {
1598 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1599 proto_hint_tcp_src_port }
1602 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_port = {
1603 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
1604 proto_hint_tcp_dst_port }
1607 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp = {
1608 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
1612 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_sctp_src_port = {
1613 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
1614 proto_hint_sctp_src_port }
1617 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_sctp_dst_port = {
1618 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
1619 proto_hint_sctp_dst_port }
1622 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_sctp_src_port = {
1623 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
1624 proto_hint_sctp_src_port }
1627 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_sctp_dst_port = {
1628 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
1629 proto_hint_sctp_dst_port }
1632 struct virtchnl_proto_hdrs hdrs_hint_ipv6_sctp_src_port = {
1633 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1634 proto_hint_sctp_src_port }
1637 struct virtchnl_proto_hdrs hdrs_hint_ipv6_sctp_dst_port = {
1638 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1639 proto_hint_sctp_dst_port }
1642 struct virtchnl_proto_hdrs hdrs_hint_ipv6_sctp = {
1643 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6,
1647 struct virtchnl_proto_hdrs hdrs_hint_ipv6_esp = {
1648 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1652 struct virtchnl_proto_hdrs hdrs_hint_ipv6_ah = {
1653 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1657 struct virtchnl_proto_hdrs hdrs_hint_ipv6_l2tpv3 = {
1658 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1662 struct virtchnl_proto_hdrs hdrs_hint_ipv6_pfcp = {
1663 TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
1667 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_esp = {
1668 TUNNEL_LEVEL_OUTER, PROTO_COUNT_THREE, {proto_hint_ipv6_only,
1669 proto_hint_udp_only, proto_hint_esp }
1672 struct iavf_hash_match_type iavf_hash_map_list[] = {
1674 {ETH_RSS_L2_SRC_ONLY,
1675 &hdrs_hint_eth_src_ipv4, IAVF_PHINT_IPV4},
1676 {ETH_RSS_L2_DST_ONLY,
1677 &hdrs_hint_eth_dst_ipv4, IAVF_PHINT_IPV4},
1679 &hdrs_hint_eth_ipv4, IAVF_PHINT_IPV4},
1680 {ETH_RSS_L3_SRC_ONLY,
1681 &hdrs_hint_ipv4_src, IAVF_PHINT_IPV4},
1682 {ETH_RSS_L3_DST_ONLY,
1683 &hdrs_hint_ipv4_dst, IAVF_PHINT_IPV4},
1684 {ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY,
1685 &hdrs_hint_ipv4_src, IAVF_PHINT_IPV4},
1686 {ETH_RSS_IPV4 | ETH_RSS_L3_DST_ONLY,
1687 &hdrs_hint_ipv4_dst, IAVF_PHINT_IPV4},
1689 &hdrs_hint_ipv4, IAVF_PHINT_IPV4},
1691 &hdrs_hint_ipv4_esp, IAVF_PHINT_IPV4},
1693 &hdrs_hint_ipv4_ah, IAVF_PHINT_IPV4},
1695 &hdrs_hint_ipv4_l2tpv3, IAVF_PHINT_IPV4},
1697 &hdrs_hint_svlan_ipv4, IAVF_PHINT_IPV4},
1699 &hdrs_hint_svlan_ipv4_udp, IAVF_PHINT_IPV4_UDP},
1701 &hdrs_hint_svlan_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
1703 &hdrs_hint_svlan_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
1705 &hdrs_hint_cvlan_ipv4, IAVF_PHINT_IPV4},
1707 &hdrs_hint_cvlan_ipv4_udp, IAVF_PHINT_IPV4_UDP},
1709 &hdrs_hint_cvlan_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
1711 &hdrs_hint_cvlan_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
1713 {ETH_RSS_L2_SRC_ONLY,
1714 &hdrs_hint_eth_src_ipv4_udp, IAVF_PHINT_IPV4_UDP},
1715 {ETH_RSS_L2_DST_ONLY,
1716 &hdrs_hint_eth_dst_ipv4_udp, IAVF_PHINT_IPV4_UDP},
1718 &hdrs_hint_eth_ipv4_udp, IAVF_PHINT_IPV4_UDP},
1719 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1720 &hdrs_hint_ipv4_src_udp_src_port, IAVF_PHINT_IPV4_UDP},
1721 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1722 &hdrs_hint_ipv4_src_udp_dst_port, IAVF_PHINT_IPV4_UDP},
1723 {ETH_RSS_L3_SRC_ONLY,
1724 &hdrs_hint_ipv4_src, IAVF_PHINT_IPV4_UDP},
1725 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1726 &hdrs_hint_ipv4_dst_udp_src_port, IAVF_PHINT_IPV4_UDP},
1727 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1728 &hdrs_hint_ipv4_dst_udp_dst_port, IAVF_PHINT_IPV4_UDP},
1729 {ETH_RSS_L3_DST_ONLY,
1730 &hdrs_hint_ipv4_dst, IAVF_PHINT_IPV4_UDP},
1731 {ETH_RSS_NONFRAG_IPV4_UDP |
1732 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1733 &hdrs_hint_ipv4_src_udp_src_port, IAVF_PHINT_IPV4_UDP},
1734 {ETH_RSS_NONFRAG_IPV4_UDP |
1735 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1736 &hdrs_hint_ipv4_src_udp_dst_port, IAVF_PHINT_IPV4_UDP},
1737 {ETH_RSS_NONFRAG_IPV4_UDP |
1738 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src,
1739 IAVF_PHINT_IPV4_UDP},
1740 {ETH_RSS_NONFRAG_IPV4_UDP |
1741 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1742 &hdrs_hint_ipv4_dst_udp_src_port, IAVF_PHINT_IPV4_UDP},
1743 {ETH_RSS_NONFRAG_IPV4_UDP |
1744 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1745 &hdrs_hint_ipv4_dst_udp_dst_port, IAVF_PHINT_IPV4_UDP},
1746 {ETH_RSS_NONFRAG_IPV4_UDP |
1747 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv4_dst,
1748 IAVF_PHINT_IPV4_UDP},
1749 {ETH_RSS_L4_SRC_ONLY,
1750 &hdrs_hint_ipv4_udp_src_port, IAVF_PHINT_IPV4_UDP},
1751 {ETH_RSS_L4_DST_ONLY,
1752 &hdrs_hint_ipv4_udp_dst_port, IAVF_PHINT_IPV4_UDP},
1753 {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L4_SRC_ONLY,
1754 &hdrs_hint_ipv4_udp_src_port, IAVF_PHINT_IPV4_UDP},
1755 {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L4_DST_ONLY,
1756 &hdrs_hint_ipv4_udp_dst_port, IAVF_PHINT_IPV4_UDP},
1758 &hdrs_hint_ipv4_pfcp, IAVF_PHINT_IPV4_UDP},
1760 &hdrs_hint_ipv4_udp_esp, IAVF_PHINT_IPV4_UDP},
1761 {ETH_RSS_NONFRAG_IPV4_UDP,
1762 &hdrs_hint_ipv4_udp, IAVF_PHINT_IPV4_UDP},
1764 {ETH_RSS_L2_SRC_ONLY,
1765 &hdrs_hint_eth_src_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
1766 {ETH_RSS_L2_DST_ONLY,
1767 &hdrs_hint_eth_dst_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
1769 &hdrs_hint_eth_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
1770 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1771 &hdrs_hint_ipv4_src_tcp_src_port, IAVF_PHINT_IPV4_TCP},
1772 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1773 &hdrs_hint_ipv4_src_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
1774 {ETH_RSS_L3_SRC_ONLY,
1775 &hdrs_hint_ipv4_src, IAVF_PHINT_IPV4_TCP},
1776 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1777 &hdrs_hint_ipv4_dst_tcp_src_port, IAVF_PHINT_IPV4_TCP},
1778 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1779 &hdrs_hint_ipv4_dst_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
1780 {ETH_RSS_L3_DST_ONLY,
1781 &hdrs_hint_ipv4_dst, IAVF_PHINT_IPV4_TCP},
1782 {ETH_RSS_NONFRAG_IPV4_TCP |
1783 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1784 &hdrs_hint_ipv4_src_tcp_src_port, IAVF_PHINT_IPV4_TCP},
1785 {ETH_RSS_NONFRAG_IPV4_TCP |
1786 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1787 &hdrs_hint_ipv4_src_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
1788 {ETH_RSS_NONFRAG_IPV4_TCP |
1789 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src,
1790 IAVF_PHINT_IPV4_TCP},
1791 {ETH_RSS_NONFRAG_IPV4_TCP |
1792 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1793 &hdrs_hint_ipv4_dst_tcp_src_port, IAVF_PHINT_IPV4_TCP},
1794 {ETH_RSS_NONFRAG_IPV4_TCP |
1795 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1796 &hdrs_hint_ipv4_dst_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
1797 {ETH_RSS_NONFRAG_IPV4_TCP |
1798 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv4_dst,
1799 IAVF_PHINT_IPV4_TCP},
1800 {ETH_RSS_L4_SRC_ONLY,
1801 &hdrs_hint_ipv4_tcp_src_port, IAVF_PHINT_IPV4_TCP},
1802 {ETH_RSS_L4_DST_ONLY,
1803 &hdrs_hint_ipv4_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
1804 {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L4_SRC_ONLY,
1805 &hdrs_hint_ipv4_tcp_src_port, IAVF_PHINT_IPV4_TCP},
1806 {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L4_DST_ONLY,
1807 &hdrs_hint_ipv4_tcp_dst_port, IAVF_PHINT_IPV4_TCP},
1808 {ETH_RSS_NONFRAG_IPV4_TCP,
1809 &hdrs_hint_ipv4_tcp, IAVF_PHINT_IPV4_TCP},
1811 {ETH_RSS_L2_SRC_ONLY,
1812 &hdrs_hint_eth_src_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
1813 {ETH_RSS_L2_DST_ONLY,
1814 &hdrs_hint_eth_dst_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
1816 &hdrs_hint_eth_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
1817 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1818 &hdrs_hint_ipv4_src_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
1819 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1820 &hdrs_hint_ipv4_src_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
1821 {ETH_RSS_L3_SRC_ONLY,
1822 &hdrs_hint_ipv4_src, IAVF_PHINT_IPV4_SCTP},
1823 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1824 &hdrs_hint_ipv4_dst_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
1825 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1826 &hdrs_hint_ipv4_dst_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
1827 {ETH_RSS_L3_DST_ONLY,
1828 &hdrs_hint_ipv4_dst, IAVF_PHINT_IPV4_SCTP},
1829 {ETH_RSS_NONFRAG_IPV4_SCTP |
1830 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1831 &hdrs_hint_ipv4_src_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
1832 {ETH_RSS_NONFRAG_IPV4_SCTP |
1833 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1834 &hdrs_hint_ipv4_src_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
1835 {ETH_RSS_NONFRAG_IPV4_SCTP |
1836 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src,
1837 IAVF_PHINT_IPV4_SCTP},
1838 {ETH_RSS_NONFRAG_IPV4_SCTP |
1839 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1840 &hdrs_hint_ipv4_dst_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
1841 {ETH_RSS_NONFRAG_IPV4_SCTP |
1842 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1843 &hdrs_hint_ipv4_dst_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
1844 {ETH_RSS_NONFRAG_IPV4_SCTP |
1845 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv4_dst,
1846 IAVF_PHINT_IPV4_SCTP},
1847 {ETH_RSS_L4_SRC_ONLY,
1848 &hdrs_hint_ipv4_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
1849 {ETH_RSS_L4_DST_ONLY,
1850 &hdrs_hint_ipv4_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
1851 {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L4_SRC_ONLY,
1852 &hdrs_hint_ipv4_sctp_src_port, IAVF_PHINT_IPV4_SCTP},
1853 {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L4_DST_ONLY,
1854 &hdrs_hint_ipv4_sctp_dst_port, IAVF_PHINT_IPV4_SCTP},
1855 {ETH_RSS_NONFRAG_IPV4_SCTP,
1856 &hdrs_hint_ipv4_sctp, IAVF_PHINT_IPV4_SCTP},
1858 {ETH_RSS_L2_SRC_ONLY,
1859 &hdrs_hint_eth_src_ipv6, IAVF_PHINT_IPV6},
1860 {ETH_RSS_L2_DST_ONLY,
1861 &hdrs_hint_eth_dst_ipv6, IAVF_PHINT_IPV6},
1863 &hdrs_hint_eth_ipv6, IAVF_PHINT_IPV6},
1864 {ETH_RSS_L3_SRC_ONLY,
1865 &hdrs_hint_ipv6_src, IAVF_PHINT_IPV6},
1866 {ETH_RSS_L3_DST_ONLY,
1867 &hdrs_hint_ipv6_dst, IAVF_PHINT_IPV6},
1868 {ETH_RSS_IPV6 | ETH_RSS_L3_SRC_ONLY,
1869 &hdrs_hint_ipv6_src, IAVF_PHINT_IPV6},
1870 {ETH_RSS_IPV6 | ETH_RSS_L3_DST_ONLY,
1871 &hdrs_hint_ipv6_dst, IAVF_PHINT_IPV6},
1873 &hdrs_hint_ipv6, IAVF_PHINT_IPV6},
1875 &hdrs_hint_ipv6_esp, IAVF_PHINT_IPV6},
1877 &hdrs_hint_ipv6_ah, IAVF_PHINT_IPV6},
1879 &hdrs_hint_ipv6_l2tpv3, IAVF_PHINT_IPV6},
1881 {ETH_RSS_L2_SRC_ONLY,
1882 &hdrs_hint_eth_src_ipv6_udp, IAVF_PHINT_IPV6_UDP},
1883 {ETH_RSS_L2_DST_ONLY,
1884 &hdrs_hint_eth_dst_ipv6_udp, IAVF_PHINT_IPV6_UDP},
1886 &hdrs_hint_eth_ipv6_udp, IAVF_PHINT_IPV6_UDP},
1887 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1888 &hdrs_hint_ipv6_src_udp_src_port, IAVF_PHINT_IPV6_UDP},
1889 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1890 &hdrs_hint_ipv6_src_udp_dst_port, IAVF_PHINT_IPV6_UDP},
1891 {ETH_RSS_L3_SRC_ONLY,
1892 &hdrs_hint_ipv6_src, IAVF_PHINT_IPV6_UDP},
1893 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1894 &hdrs_hint_ipv6_dst_udp_src_port, IAVF_PHINT_IPV6_UDP},
1895 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1896 &hdrs_hint_ipv6_dst_udp_dst_port, IAVF_PHINT_IPV6_UDP},
1897 {ETH_RSS_L3_DST_ONLY,
1898 &hdrs_hint_ipv6_dst, IAVF_PHINT_IPV6_UDP},
1899 {ETH_RSS_NONFRAG_IPV6_UDP |
1900 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1901 &hdrs_hint_ipv6_src_udp_src_port, IAVF_PHINT_IPV6_UDP},
1902 {ETH_RSS_NONFRAG_IPV6_UDP |
1903 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1904 &hdrs_hint_ipv6_src_udp_dst_port, IAVF_PHINT_IPV6_UDP},
1905 {ETH_RSS_NONFRAG_IPV6_UDP |
1906 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src,
1907 IAVF_PHINT_IPV6_UDP},
1908 {ETH_RSS_NONFRAG_IPV6_UDP |
1909 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1910 &hdrs_hint_ipv6_dst_udp_src_port, IAVF_PHINT_IPV6_UDP},
1911 {ETH_RSS_NONFRAG_IPV6_UDP |
1912 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1913 &hdrs_hint_ipv6_dst_udp_dst_port, IAVF_PHINT_IPV6_UDP},
1914 {ETH_RSS_NONFRAG_IPV6_UDP |
1915 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv6_dst,
1916 IAVF_PHINT_IPV6_UDP},
1917 {ETH_RSS_L4_SRC_ONLY,
1918 &hdrs_hint_ipv6_udp_src_port, IAVF_PHINT_IPV6_UDP},
1919 {ETH_RSS_L4_DST_ONLY,
1920 &hdrs_hint_ipv6_udp_dst_port, IAVF_PHINT_IPV6_UDP},
1921 {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L4_SRC_ONLY,
1922 &hdrs_hint_ipv6_udp_src_port, IAVF_PHINT_IPV6_UDP},
1923 {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L4_DST_ONLY,
1924 &hdrs_hint_ipv6_udp_dst_port, IAVF_PHINT_IPV6_UDP},
1926 &hdrs_hint_ipv6_pfcp, IAVF_PHINT_IPV6_UDP},
1928 &hdrs_hint_ipv6_udp_esp, IAVF_PHINT_IPV6_UDP},
1929 {ETH_RSS_NONFRAG_IPV6_UDP,
1930 &hdrs_hint_ipv6_udp, IAVF_PHINT_IPV6_UDP},
1932 {ETH_RSS_L2_SRC_ONLY,
1933 &hdrs_hint_eth_src_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
1934 {ETH_RSS_L2_DST_ONLY,
1935 &hdrs_hint_eth_dst_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
1937 &hdrs_hint_eth_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
1938 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1939 &hdrs_hint_ipv6_src_tcp_src_port, IAVF_PHINT_IPV6_TCP},
1940 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1941 &hdrs_hint_ipv6_src_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
1942 {ETH_RSS_L3_SRC_ONLY,
1943 &hdrs_hint_ipv6_src, IAVF_PHINT_IPV6_TCP},
1944 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1945 &hdrs_hint_ipv6_dst_tcp_src_port, IAVF_PHINT_IPV6_TCP},
1946 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1947 &hdrs_hint_ipv6_dst_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
1948 {ETH_RSS_L3_DST_ONLY,
1949 &hdrs_hint_ipv6_dst, IAVF_PHINT_IPV6_TCP},
1950 {ETH_RSS_NONFRAG_IPV6_TCP |
1951 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1952 &hdrs_hint_ipv6_src_tcp_src_port, IAVF_PHINT_IPV6_TCP},
1953 {ETH_RSS_NONFRAG_IPV6_TCP |
1954 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1955 &hdrs_hint_ipv6_src_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
1956 {ETH_RSS_NONFRAG_IPV6_TCP |
1957 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src,
1958 IAVF_PHINT_IPV6_TCP},
1959 {ETH_RSS_NONFRAG_IPV6_TCP |
1960 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1961 &hdrs_hint_ipv6_dst_tcp_src_port, IAVF_PHINT_IPV6_TCP},
1962 {ETH_RSS_NONFRAG_IPV6_TCP |
1963 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1964 &hdrs_hint_ipv6_dst_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
1965 {ETH_RSS_NONFRAG_IPV6_TCP |
1966 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv6_dst,
1967 IAVF_PHINT_IPV6_TCP},
1968 {ETH_RSS_L4_SRC_ONLY,
1969 &hdrs_hint_ipv6_tcp_src_port, IAVF_PHINT_IPV6_TCP},
1970 {ETH_RSS_L4_DST_ONLY,
1971 &hdrs_hint_ipv6_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
1972 {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L4_SRC_ONLY,
1973 &hdrs_hint_ipv6_tcp_src_port, IAVF_PHINT_IPV6_TCP},
1974 {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L4_DST_ONLY,
1975 &hdrs_hint_ipv6_tcp_dst_port, IAVF_PHINT_IPV6_TCP},
1976 {ETH_RSS_NONFRAG_IPV6_TCP,
1977 &hdrs_hint_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
1979 {ETH_RSS_L2_SRC_ONLY,
1980 &hdrs_hint_eth_src_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
1981 {ETH_RSS_L2_DST_ONLY,
1982 &hdrs_hint_eth_dst_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
1984 &hdrs_hint_eth_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
1985 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1986 &hdrs_hint_ipv6_src_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
1987 {ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
1988 &hdrs_hint_ipv6_src_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
1989 {ETH_RSS_L3_SRC_ONLY,
1990 &hdrs_hint_ipv6_src, IAVF_PHINT_IPV6_SCTP},
1991 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
1992 &hdrs_hint_ipv6_dst_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
1993 {ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
1994 &hdrs_hint_ipv6_dst_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
1995 {ETH_RSS_L3_DST_ONLY,
1996 &hdrs_hint_ipv6_dst, IAVF_PHINT_IPV6_SCTP},
1997 {ETH_RSS_NONFRAG_IPV6_SCTP |
1998 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
1999 &hdrs_hint_ipv6_src_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2000 {ETH_RSS_NONFRAG_IPV6_SCTP |
2001 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2002 &hdrs_hint_ipv6_src_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2003 {ETH_RSS_NONFRAG_IPV6_SCTP |
2004 ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src,
2005 IAVF_PHINT_IPV6_SCTP},
2006 {ETH_RSS_NONFRAG_IPV6_SCTP |
2007 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2008 &hdrs_hint_ipv6_dst_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2009 {ETH_RSS_NONFRAG_IPV6_SCTP |
2010 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2011 &hdrs_hint_ipv6_dst_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2012 {ETH_RSS_NONFRAG_IPV6_SCTP |
2013 ETH_RSS_L3_DST_ONLY, &hdrs_hint_ipv6_dst,
2014 IAVF_PHINT_IPV6_SCTP},
2015 {ETH_RSS_L4_SRC_ONLY,
2016 &hdrs_hint_ipv6_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2017 {ETH_RSS_L4_DST_ONLY,
2018 &hdrs_hint_ipv6_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2019 {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_SRC_ONLY,
2020 &hdrs_hint_ipv6_sctp_src_port, IAVF_PHINT_IPV6_SCTP},
2021 {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_DST_ONLY,
2022 &hdrs_hint_ipv6_sctp_dst_port, IAVF_PHINT_IPV6_SCTP},
2023 {ETH_RSS_NONFRAG_IPV6_SCTP,
2024 &hdrs_hint_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2026 &hdrs_hint_svlan_ipv6, IAVF_PHINT_IPV6},
2028 &hdrs_hint_svlan_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2030 &hdrs_hint_svlan_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2032 &hdrs_hint_svlan_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2034 &hdrs_hint_cvlan_ipv6, IAVF_PHINT_IPV6},
2036 &hdrs_hint_cvlan_ipv6_udp, IAVF_PHINT_IPV6_UDP},
2038 &hdrs_hint_cvlan_ipv6_tcp, IAVF_PHINT_IPV6_TCP},
2040 &hdrs_hint_cvlan_ipv6_sctp, IAVF_PHINT_IPV6_SCTP},
2043 struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = {
2046 /* IPv4 GTPU IP IPv4*/
2047 {ETH_RSS_L3_SRC_ONLY,
2048 &hdrs_hint_ipv4_src_gtpu_ip,
2049 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2050 {ETH_RSS_L3_DST_ONLY,
2051 &hdrs_hint_ipv4_dst_gtpu_ip,
2052 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2054 ETH_RSS_L3_SRC_ONLY,
2055 &hdrs_hint_ipv4_src_gtpu_ip,
2056 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2058 ETH_RSS_L3_DST_ONLY,
2059 &hdrs_hint_ipv4_dst_gtpu_ip,
2060 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2062 &hdrs_hint_ipv4_gtpu_ip,
2063 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2065 &hdrs_hint_teid_gtpu_ip,
2066 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4},
2067 /* IPv4 GTPU IP IPv6*/
2069 ETH_RSS_L3_SRC_ONLY,
2070 &hdrs_hint_ipv6_src_gtpu_ip,
2071 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2073 ETH_RSS_L3_DST_ONLY,
2074 &hdrs_hint_ipv6_dst_gtpu_ip,
2075 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2077 &hdrs_hint_ipv6_gtpu_ip,
2078 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2080 &hdrs_hint_teid_gtpu_ip,
2081 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6},
2082 /* IPv6 GTPU IP IPv4*/
2084 ETH_RSS_L3_SRC_ONLY,
2085 &hdrs_hint_ipv4_src_gtpu_ip,
2086 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2088 ETH_RSS_L3_DST_ONLY,
2089 &hdrs_hint_ipv4_dst_gtpu_ip,
2090 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2092 &hdrs_hint_ipv4_gtpu_ip,
2093 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2095 &hdrs_hint_teid_gtpu_ip,
2096 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4},
2097 /* IPv6 GTPU IP IPv6*/
2099 ETH_RSS_L3_SRC_ONLY,
2100 &hdrs_hint_ipv6_src_gtpu_ip,
2101 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2103 ETH_RSS_L3_DST_ONLY,
2104 &hdrs_hint_ipv6_dst_gtpu_ip,
2105 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2107 &hdrs_hint_ipv6_gtpu_ip,
2108 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2110 &hdrs_hint_teid_gtpu_ip,
2111 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6},
2112 /* IPv4 GTPU IP IPv4 UDP */
2113 {ETH_RSS_L3_SRC_ONLY |
2114 ETH_RSS_L4_SRC_ONLY,
2115 &hdrs_hint_ipv4_src_udp_src_gtpu_ip,
2116 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2117 {ETH_RSS_L3_SRC_ONLY |
2118 ETH_RSS_L4_DST_ONLY,
2119 &hdrs_hint_ipv4_src_udp_dst_gtpu_ip,
2120 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2121 {ETH_RSS_L3_SRC_ONLY,
2122 &hdrs_hint_ipv4_src_gtpu_ip,
2123 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2124 {ETH_RSS_L4_SRC_ONLY,
2125 &hdrs_hint_ipv4_udp_src_gtpu_ip,
2126 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2127 {ETH_RSS_L3_DST_ONLY |
2128 ETH_RSS_L4_SRC_ONLY,
2129 &hdrs_hint_ipv4_dst_udp_src_gtpu_ip,
2130 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2131 {ETH_RSS_L3_DST_ONLY |
2132 ETH_RSS_L4_DST_ONLY,
2133 &hdrs_hint_ipv4_dst_udp_dst_gtpu_ip,
2134 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2135 {ETH_RSS_L3_DST_ONLY,
2136 &hdrs_hint_ipv4_dst_gtpu_ip,
2137 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2138 {ETH_RSS_L4_DST_ONLY,
2139 &hdrs_hint_ipv4_udp_dst_gtpu_ip,
2140 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2141 {ETH_RSS_NONFRAG_IPV4_UDP |
2142 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2143 &hdrs_hint_ipv4_src_udp_src_gtpu_ip,
2144 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2145 {ETH_RSS_NONFRAG_IPV4_UDP |
2146 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2147 &hdrs_hint_ipv4_src_udp_dst_gtpu_ip,
2148 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2149 {ETH_RSS_NONFRAG_IPV4_UDP |
2150 ETH_RSS_L3_SRC_ONLY,
2151 &hdrs_hint_ipv4_src_gtpu_ip,
2152 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2153 {ETH_RSS_NONFRAG_IPV4_UDP |
2154 ETH_RSS_L4_SRC_ONLY,
2155 &hdrs_hint_ipv4_udp_src_gtpu_ip,
2156 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2157 {ETH_RSS_NONFRAG_IPV4_UDP |
2158 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2159 &hdrs_hint_ipv4_dst_udp_src_gtpu_ip,
2160 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2161 {ETH_RSS_NONFRAG_IPV4_UDP |
2162 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2163 &hdrs_hint_ipv4_dst_udp_dst_gtpu_ip,
2164 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2165 {ETH_RSS_NONFRAG_IPV4_UDP |
2166 ETH_RSS_L3_DST_ONLY,
2167 &hdrs_hint_ipv4_dst_gtpu_ip,
2168 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2169 {ETH_RSS_NONFRAG_IPV4_UDP |
2170 ETH_RSS_L4_DST_ONLY,
2171 &hdrs_hint_ipv4_udp_dst_gtpu_ip,
2172 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2173 {ETH_RSS_NONFRAG_IPV4_UDP,
2174 &hdrs_hint_ipv4_udp_gtpu_ip,
2175 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2176 /* IPv4 GTPU IP IPv6 UDP */
2177 {ETH_RSS_NONFRAG_IPV6_UDP |
2178 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2179 &hdrs_hint_ipv6_src_udp_src_gtpu_ip,
2180 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2181 {ETH_RSS_NONFRAG_IPV6_UDP |
2182 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2183 &hdrs_hint_ipv6_src_udp_dst_gtpu_ip,
2184 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2185 {ETH_RSS_NONFRAG_IPV6_UDP |
2186 ETH_RSS_L3_SRC_ONLY,
2187 &hdrs_hint_ipv6_src_gtpu_ip,
2188 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2189 {ETH_RSS_NONFRAG_IPV6_UDP |
2190 ETH_RSS_L4_SRC_ONLY,
2191 &hdrs_hint_ipv6_udp_src_gtpu_ip,
2192 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2193 {ETH_RSS_NONFRAG_IPV6_UDP |
2194 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2195 &hdrs_hint_ipv6_dst_udp_src_gtpu_ip,
2196 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2197 {ETH_RSS_NONFRAG_IPV6_UDP |
2198 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2199 &hdrs_hint_ipv6_dst_udp_dst_gtpu_ip,
2200 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2201 {ETH_RSS_NONFRAG_IPV6_UDP |
2202 ETH_RSS_L3_DST_ONLY,
2203 &hdrs_hint_ipv6_dst_gtpu_ip,
2204 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2205 {ETH_RSS_NONFRAG_IPV6_UDP |
2206 ETH_RSS_L4_DST_ONLY,
2207 &hdrs_hint_ipv6_udp_dst_gtpu_ip,
2208 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2209 {ETH_RSS_NONFRAG_IPV6_UDP,
2210 &hdrs_hint_ipv6_udp_gtpu_ip,
2211 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2212 /* IPv6 GTPU IP IPv4 UDP */
2213 {ETH_RSS_NONFRAG_IPV4_UDP |
2214 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2215 &hdrs_hint_ipv4_src_udp_src_gtpu_ip,
2216 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2217 {ETH_RSS_NONFRAG_IPV4_UDP |
2218 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2219 &hdrs_hint_ipv4_src_udp_dst_gtpu_ip,
2220 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2221 {ETH_RSS_NONFRAG_IPV4_UDP |
2222 ETH_RSS_L3_SRC_ONLY,
2223 &hdrs_hint_ipv4_src_gtpu_ip,
2224 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2225 {ETH_RSS_NONFRAG_IPV4_UDP |
2226 ETH_RSS_L4_SRC_ONLY,
2227 &hdrs_hint_ipv4_udp_src_gtpu_ip,
2228 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2229 {ETH_RSS_NONFRAG_IPV4_UDP |
2230 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2231 &hdrs_hint_ipv4_dst_udp_src_gtpu_ip,
2232 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2233 {ETH_RSS_NONFRAG_IPV4_UDP |
2234 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2235 &hdrs_hint_ipv4_dst_udp_dst_gtpu_ip,
2236 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2237 {ETH_RSS_NONFRAG_IPV4_UDP |
2238 ETH_RSS_L3_DST_ONLY,
2239 &hdrs_hint_ipv4_dst_gtpu_ip,
2240 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2241 {ETH_RSS_NONFRAG_IPV4_UDP |
2242 ETH_RSS_L4_DST_ONLY,
2243 &hdrs_hint_ipv4_udp_dst_gtpu_ip,
2244 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2245 {ETH_RSS_NONFRAG_IPV4_UDP,
2246 &hdrs_hint_ipv4_udp_gtpu_ip,
2247 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_UDP},
2248 /* IPv6 GTPU IP IPv6 UDP */
2249 {ETH_RSS_NONFRAG_IPV6_UDP |
2250 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2251 &hdrs_hint_ipv6_src_udp_src_gtpu_ip,
2252 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2253 {ETH_RSS_NONFRAG_IPV6_UDP |
2254 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2255 &hdrs_hint_ipv6_src_udp_dst_gtpu_ip,
2256 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2257 {ETH_RSS_NONFRAG_IPV6_UDP |
2258 ETH_RSS_L3_SRC_ONLY,
2259 &hdrs_hint_ipv6_src_gtpu_ip,
2260 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2261 {ETH_RSS_NONFRAG_IPV6_UDP |
2262 ETH_RSS_L4_SRC_ONLY,
2263 &hdrs_hint_ipv6_udp_src_gtpu_ip,
2264 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2265 {ETH_RSS_NONFRAG_IPV6_UDP |
2266 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2267 &hdrs_hint_ipv6_dst_udp_src_gtpu_ip,
2268 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2269 {ETH_RSS_NONFRAG_IPV6_UDP |
2270 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2271 &hdrs_hint_ipv6_dst_udp_dst_gtpu_ip,
2272 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2273 {ETH_RSS_NONFRAG_IPV6_UDP |
2274 ETH_RSS_L3_DST_ONLY,
2275 &hdrs_hint_ipv6_dst_gtpu_ip,
2276 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2277 {ETH_RSS_NONFRAG_IPV6_UDP |
2278 ETH_RSS_L4_DST_ONLY,
2279 &hdrs_hint_ipv6_udp_dst_gtpu_ip,
2280 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2281 {ETH_RSS_NONFRAG_IPV6_UDP,
2282 &hdrs_hint_ipv6_udp_gtpu_ip,
2283 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP},
2284 /* IPv4 GTPU IP IPv4 TCP */
2285 {ETH_RSS_L3_SRC_ONLY |
2286 ETH_RSS_L4_SRC_ONLY,
2287 &hdrs_hint_ipv4_src_tcp_src_gtpu_ip,
2288 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2289 {ETH_RSS_L3_SRC_ONLY |
2290 ETH_RSS_L4_DST_ONLY,
2291 &hdrs_hint_ipv4_src_tcp_dst_gtpu_ip,
2292 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2293 {ETH_RSS_L3_SRC_ONLY,
2294 &hdrs_hint_ipv4_src_gtpu_ip,
2295 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2296 {ETH_RSS_L4_SRC_ONLY,
2297 &hdrs_hint_ipv4_tcp_src_gtpu_ip,
2298 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2299 {ETH_RSS_L3_DST_ONLY |
2300 ETH_RSS_L4_SRC_ONLY,
2301 &hdrs_hint_ipv4_dst_tcp_src_gtpu_ip,
2302 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2303 {ETH_RSS_L3_DST_ONLY |
2304 ETH_RSS_L4_DST_ONLY,
2305 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip,
2306 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2307 {ETH_RSS_L3_DST_ONLY,
2308 &hdrs_hint_ipv4_dst_gtpu_ip,
2309 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2310 {ETH_RSS_L4_DST_ONLY,
2311 &hdrs_hint_ipv4_tcp_dst_gtpu_ip,
2312 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2313 {ETH_RSS_NONFRAG_IPV4_TCP |
2314 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2315 &hdrs_hint_ipv4_src_tcp_src_gtpu_ip,
2316 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2317 {ETH_RSS_NONFRAG_IPV4_TCP |
2318 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2319 &hdrs_hint_ipv4_src_tcp_dst_gtpu_ip,
2320 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2321 {ETH_RSS_NONFRAG_IPV4_TCP |
2322 ETH_RSS_L3_SRC_ONLY,
2323 &hdrs_hint_ipv4_src_gtpu_ip,
2324 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2325 {ETH_RSS_NONFRAG_IPV4_TCP |
2326 ETH_RSS_L4_SRC_ONLY,
2327 &hdrs_hint_ipv4_tcp_src_gtpu_ip,
2328 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2329 {ETH_RSS_NONFRAG_IPV4_TCP |
2330 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2331 &hdrs_hint_ipv4_dst_tcp_src_gtpu_ip,
2332 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2333 {ETH_RSS_NONFRAG_IPV4_TCP |
2334 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2335 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip,
2336 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2337 {ETH_RSS_NONFRAG_IPV4_TCP |
2338 ETH_RSS_L3_DST_ONLY,
2339 &hdrs_hint_ipv4_dst_gtpu_ip,
2340 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2341 {ETH_RSS_NONFRAG_IPV4_TCP |
2342 ETH_RSS_L4_DST_ONLY,
2343 &hdrs_hint_ipv4_tcp_dst_gtpu_ip,
2344 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2345 {ETH_RSS_NONFRAG_IPV4_TCP,
2346 &hdrs_hint_ipv4_tcp_gtpu_ip,
2347 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2348 /* IPv4 GTPU IP IPv6 TCP */
2349 {ETH_RSS_NONFRAG_IPV6_TCP |
2350 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2351 &hdrs_hint_ipv6_src_tcp_src_gtpu_ip,
2352 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2353 {ETH_RSS_NONFRAG_IPV6_TCP |
2354 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2355 &hdrs_hint_ipv6_src_tcp_dst_gtpu_ip,
2356 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2357 {ETH_RSS_NONFRAG_IPV6_TCP |
2358 ETH_RSS_L3_SRC_ONLY,
2359 &hdrs_hint_ipv6_src_gtpu_ip,
2360 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2361 {ETH_RSS_NONFRAG_IPV6_TCP |
2362 ETH_RSS_L4_SRC_ONLY,
2363 &hdrs_hint_ipv6_tcp_src_gtpu_ip,
2364 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2365 {ETH_RSS_NONFRAG_IPV6_TCP |
2366 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2367 &hdrs_hint_ipv6_dst_tcp_src_gtpu_ip,
2368 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2369 {ETH_RSS_NONFRAG_IPV6_TCP |
2370 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2371 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_ip,
2372 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2373 {ETH_RSS_NONFRAG_IPV6_TCP |
2374 ETH_RSS_L3_DST_ONLY,
2375 &hdrs_hint_ipv6_dst_gtpu_ip,
2376 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2377 {ETH_RSS_NONFRAG_IPV6_TCP |
2378 ETH_RSS_L4_DST_ONLY,
2379 &hdrs_hint_ipv6_tcp_dst_gtpu_ip,
2380 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2381 {ETH_RSS_NONFRAG_IPV6_TCP,
2382 &hdrs_hint_ipv6_tcp_gtpu_ip,
2383 IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2384 /* IPv6 GTPU IP IPv4 TCP */
2385 {ETH_RSS_NONFRAG_IPV4_TCP |
2386 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2387 &hdrs_hint_ipv4_src_tcp_src_gtpu_ip,
2388 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2389 {ETH_RSS_NONFRAG_IPV4_TCP |
2390 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2391 &hdrs_hint_ipv4_src_tcp_dst_gtpu_ip,
2392 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2393 {ETH_RSS_NONFRAG_IPV4_TCP |
2394 ETH_RSS_L3_SRC_ONLY,
2395 &hdrs_hint_ipv4_src_gtpu_ip,
2396 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2397 {ETH_RSS_NONFRAG_IPV4_TCP |
2398 ETH_RSS_L4_SRC_ONLY,
2399 &hdrs_hint_ipv4_tcp_src_gtpu_ip,
2400 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2401 {ETH_RSS_NONFRAG_IPV4_TCP |
2402 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2403 &hdrs_hint_ipv4_dst_tcp_src_gtpu_ip,
2404 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2405 {ETH_RSS_NONFRAG_IPV4_TCP |
2406 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2407 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_ip,
2408 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2409 {ETH_RSS_NONFRAG_IPV4_TCP |
2410 ETH_RSS_L3_DST_ONLY,
2411 &hdrs_hint_ipv4_dst_gtpu_ip,
2412 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2413 {ETH_RSS_NONFRAG_IPV4_TCP |
2414 ETH_RSS_L4_DST_ONLY,
2415 &hdrs_hint_ipv4_tcp_dst_gtpu_ip,
2416 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2417 {ETH_RSS_NONFRAG_IPV4_TCP,
2418 &hdrs_hint_ipv4_tcp_gtpu_ip,
2419 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4_TCP},
2420 /* IPv6 GTPU IP IPv6 TCP */
2421 {ETH_RSS_NONFRAG_IPV6_TCP |
2422 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2423 &hdrs_hint_ipv6_src_tcp_src_gtpu_ip,
2424 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2425 {ETH_RSS_NONFRAG_IPV6_TCP |
2426 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2427 &hdrs_hint_ipv6_src_tcp_dst_gtpu_ip,
2428 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2429 {ETH_RSS_NONFRAG_IPV6_TCP |
2430 ETH_RSS_L3_SRC_ONLY,
2431 &hdrs_hint_ipv6_src_gtpu_ip,
2432 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2433 {ETH_RSS_NONFRAG_IPV6_TCP |
2434 ETH_RSS_L4_SRC_ONLY,
2435 &hdrs_hint_ipv6_tcp_src_gtpu_ip,
2436 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2437 {ETH_RSS_NONFRAG_IPV6_TCP |
2438 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2439 &hdrs_hint_ipv6_dst_tcp_src_gtpu_ip,
2440 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2441 {ETH_RSS_NONFRAG_IPV6_TCP |
2442 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2443 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_ip,
2444 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2445 {ETH_RSS_NONFRAG_IPV6_TCP |
2446 ETH_RSS_L3_DST_ONLY,
2447 &hdrs_hint_ipv6_dst_gtpu_ip,
2448 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2449 {ETH_RSS_NONFRAG_IPV6_TCP |
2450 ETH_RSS_L4_DST_ONLY,
2451 &hdrs_hint_ipv6_tcp_dst_gtpu_ip,
2452 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2453 {ETH_RSS_NONFRAG_IPV6_TCP,
2454 &hdrs_hint_ipv6_tcp_gtpu_ip,
2455 IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP},
2457 /* IPv4 GTPU EH IPv4 */
2458 {ETH_RSS_L3_SRC_ONLY,
2459 &hdrs_hint_ipv4_src_gtpu_eh,
2460 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2461 {ETH_RSS_L3_DST_ONLY,
2462 &hdrs_hint_ipv4_dst_gtpu_eh,
2463 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2465 ETH_RSS_L3_SRC_ONLY,
2466 &hdrs_hint_ipv4_src_gtpu_eh,
2467 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2469 ETH_RSS_L3_DST_ONLY,
2470 &hdrs_hint_ipv4_dst_gtpu_eh,
2471 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2473 &hdrs_hint_ipv4_gtpu_eh,
2474 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4},
2475 /* IPv4 GTPU EH IPv6 */
2477 ETH_RSS_L3_SRC_ONLY,
2478 &hdrs_hint_ipv6_src_gtpu_eh,
2479 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6},
2481 ETH_RSS_L3_DST_ONLY,
2482 &hdrs_hint_ipv6_dst_gtpu_eh,
2483 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6},
2485 &hdrs_hint_ipv6_gtpu_eh,
2486 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6},
2487 /* IPv6 GTPU EH IPv4 */
2489 ETH_RSS_L3_SRC_ONLY,
2490 &hdrs_hint_ipv4_src_gtpu_eh,
2491 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4},
2493 ETH_RSS_L3_DST_ONLY,
2494 &hdrs_hint_ipv4_dst_gtpu_eh,
2495 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4},
2497 &hdrs_hint_ipv4_gtpu_eh,
2498 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4},
2499 /* IPv6 GTPU EH IPv6 */
2501 ETH_RSS_L3_SRC_ONLY,
2502 &hdrs_hint_ipv6_src_gtpu_eh,
2503 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6},
2505 ETH_RSS_L3_DST_ONLY,
2506 &hdrs_hint_ipv6_dst_gtpu_eh,
2507 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6},
2509 &hdrs_hint_ipv6_gtpu_eh,
2510 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6},
2511 /* IPv4 GTPU EH IPv4 UDP */
2512 {ETH_RSS_L3_SRC_ONLY |
2513 ETH_RSS_L4_SRC_ONLY,
2514 &hdrs_hint_ipv4_src_udp_src_gtpu_eh,
2515 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2516 {ETH_RSS_L3_SRC_ONLY |
2517 ETH_RSS_L4_DST_ONLY,
2518 &hdrs_hint_ipv4_src_udp_dst_gtpu_eh,
2519 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2520 {ETH_RSS_L3_SRC_ONLY,
2521 &hdrs_hint_ipv4_src_gtpu_eh,
2522 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2523 {ETH_RSS_L4_SRC_ONLY,
2524 &hdrs_hint_ipv4_udp_src_gtpu_eh,
2525 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2526 {ETH_RSS_L3_DST_ONLY |
2527 ETH_RSS_L4_SRC_ONLY,
2528 &hdrs_hint_ipv4_dst_udp_src_gtpu_eh,
2529 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2530 {ETH_RSS_L3_DST_ONLY |
2531 ETH_RSS_L4_DST_ONLY,
2532 &hdrs_hint_ipv4_dst_udp_dst_gtpu_eh,
2533 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2534 {ETH_RSS_L3_DST_ONLY,
2535 &hdrs_hint_ipv4_dst_gtpu_eh,
2536 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2537 {ETH_RSS_L4_DST_ONLY,
2538 &hdrs_hint_ipv4_udp_dst_gtpu_eh,
2539 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2540 {ETH_RSS_NONFRAG_IPV4_UDP |
2541 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2542 &hdrs_hint_ipv4_src_udp_src_gtpu_eh,
2543 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2544 {ETH_RSS_NONFRAG_IPV4_UDP |
2545 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2546 &hdrs_hint_ipv4_src_udp_dst_gtpu_eh,
2547 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2548 {ETH_RSS_NONFRAG_IPV4_UDP |
2549 ETH_RSS_L3_SRC_ONLY,
2550 &hdrs_hint_ipv4_src_gtpu_eh,
2551 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2552 {ETH_RSS_NONFRAG_IPV4_UDP |
2553 ETH_RSS_L4_SRC_ONLY,
2554 &hdrs_hint_ipv4_udp_src_gtpu_eh,
2555 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2556 {ETH_RSS_NONFRAG_IPV4_UDP |
2557 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2558 &hdrs_hint_ipv4_dst_udp_src_gtpu_eh,
2559 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2560 {ETH_RSS_NONFRAG_IPV4_UDP |
2561 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2562 &hdrs_hint_ipv4_dst_udp_dst_gtpu_eh,
2563 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2564 {ETH_RSS_NONFRAG_IPV4_UDP |
2565 ETH_RSS_L3_DST_ONLY,
2566 &hdrs_hint_ipv4_dst_gtpu_eh,
2567 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2568 {ETH_RSS_NONFRAG_IPV4_UDP |
2569 ETH_RSS_L4_DST_ONLY,
2570 &hdrs_hint_ipv4_udp_dst_gtpu_eh,
2571 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2572 {ETH_RSS_NONFRAG_IPV4_UDP,
2573 &hdrs_hint_ipv4_udp_gtpu_eh,
2574 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2575 /* IPv4 GTPU EH IPv6 UDP */
2576 {ETH_RSS_NONFRAG_IPV6_UDP |
2577 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2578 &hdrs_hint_ipv6_src_udp_src_gtpu_eh,
2579 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2580 {ETH_RSS_NONFRAG_IPV6_UDP |
2581 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2582 &hdrs_hint_ipv6_src_udp_dst_gtpu_eh,
2583 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2584 {ETH_RSS_NONFRAG_IPV6_UDP |
2585 ETH_RSS_L3_SRC_ONLY,
2586 &hdrs_hint_ipv6_src_gtpu_eh,
2587 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2588 {ETH_RSS_NONFRAG_IPV6_UDP |
2589 ETH_RSS_L4_SRC_ONLY,
2590 &hdrs_hint_ipv6_udp_src_gtpu_eh,
2591 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2592 {ETH_RSS_NONFRAG_IPV6_UDP |
2593 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2594 &hdrs_hint_ipv6_dst_udp_src_gtpu_eh,
2595 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2596 {ETH_RSS_NONFRAG_IPV6_UDP |
2597 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2598 &hdrs_hint_ipv6_dst_udp_dst_gtpu_eh,
2599 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2600 {ETH_RSS_NONFRAG_IPV6_UDP |
2601 ETH_RSS_L3_DST_ONLY,
2602 &hdrs_hint_ipv6_dst_gtpu_eh,
2603 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2604 {ETH_RSS_NONFRAG_IPV6_UDP |
2605 ETH_RSS_L4_DST_ONLY,
2606 &hdrs_hint_ipv6_udp_dst_gtpu_eh,
2607 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2608 {ETH_RSS_NONFRAG_IPV6_UDP,
2609 &hdrs_hint_ipv6_udp_gtpu_eh,
2610 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2611 /* IPv6 GTPU EH IPv4 UDP */
2612 {ETH_RSS_NONFRAG_IPV4_UDP |
2613 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2614 &hdrs_hint_ipv4_src_udp_src_gtpu_eh,
2615 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2616 {ETH_RSS_NONFRAG_IPV4_UDP |
2617 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2618 &hdrs_hint_ipv4_src_udp_dst_gtpu_eh,
2619 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2620 {ETH_RSS_NONFRAG_IPV4_UDP |
2621 ETH_RSS_L3_SRC_ONLY,
2622 &hdrs_hint_ipv4_src_gtpu_eh,
2623 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2624 {ETH_RSS_NONFRAG_IPV4_UDP |
2625 ETH_RSS_L4_SRC_ONLY,
2626 &hdrs_hint_ipv4_udp_src_gtpu_eh,
2627 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2628 {ETH_RSS_NONFRAG_IPV4_UDP |
2629 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2630 &hdrs_hint_ipv4_dst_udp_src_gtpu_eh,
2631 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2632 {ETH_RSS_NONFRAG_IPV4_UDP |
2633 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2634 &hdrs_hint_ipv4_dst_udp_dst_gtpu_eh,
2635 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2636 {ETH_RSS_NONFRAG_IPV4_UDP |
2637 ETH_RSS_L3_DST_ONLY,
2638 &hdrs_hint_ipv4_dst_gtpu_eh,
2639 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2640 {ETH_RSS_NONFRAG_IPV4_UDP |
2641 ETH_RSS_L4_DST_ONLY,
2642 &hdrs_hint_ipv4_udp_dst_gtpu_eh,
2643 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2644 {ETH_RSS_NONFRAG_IPV4_UDP,
2645 &hdrs_hint_ipv4_udp_gtpu_eh,
2646 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_UDP},
2647 /* IPv6 GTPU EH IPv6 UDP */
2648 {ETH_RSS_NONFRAG_IPV6_UDP |
2649 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2650 &hdrs_hint_ipv6_src_udp_src_gtpu_eh,
2651 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2652 {ETH_RSS_NONFRAG_IPV6_UDP |
2653 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2654 &hdrs_hint_ipv6_src_udp_dst_gtpu_eh,
2655 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2656 {ETH_RSS_NONFRAG_IPV6_UDP |
2657 ETH_RSS_L3_SRC_ONLY,
2658 &hdrs_hint_ipv6_src_gtpu_eh,
2659 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2660 {ETH_RSS_NONFRAG_IPV6_UDP |
2661 ETH_RSS_L4_SRC_ONLY,
2662 &hdrs_hint_ipv6_udp_src_gtpu_eh,
2663 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2664 {ETH_RSS_NONFRAG_IPV6_UDP |
2665 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2666 &hdrs_hint_ipv6_dst_udp_src_gtpu_eh,
2667 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2668 {ETH_RSS_NONFRAG_IPV6_UDP |
2669 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2670 &hdrs_hint_ipv6_dst_udp_dst_gtpu_eh,
2671 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2672 {ETH_RSS_NONFRAG_IPV6_UDP |
2673 ETH_RSS_L3_DST_ONLY,
2674 &hdrs_hint_ipv6_dst_gtpu_eh,
2675 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2676 {ETH_RSS_NONFRAG_IPV6_UDP |
2677 ETH_RSS_L4_DST_ONLY,
2678 &hdrs_hint_ipv6_udp_dst_gtpu_eh,
2679 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2680 {ETH_RSS_NONFRAG_IPV6_UDP,
2681 &hdrs_hint_ipv6_udp_gtpu_eh,
2682 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP},
2683 /* IPv4 GTPU EH IPv4 TCP */
2684 {ETH_RSS_L3_SRC_ONLY |
2685 ETH_RSS_L4_SRC_ONLY,
2686 &hdrs_hint_ipv4_src_tcp_src_gtpu_eh,
2687 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2688 {ETH_RSS_L3_SRC_ONLY |
2689 ETH_RSS_L4_DST_ONLY,
2690 &hdrs_hint_ipv4_src_tcp_dst_gtpu_eh,
2691 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2692 {ETH_RSS_L3_SRC_ONLY,
2693 &hdrs_hint_ipv4_src_gtpu_eh,
2694 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2695 {ETH_RSS_L4_SRC_ONLY,
2696 &hdrs_hint_ipv4_tcp_src_gtpu_eh,
2697 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2698 {ETH_RSS_L3_DST_ONLY |
2699 ETH_RSS_L4_SRC_ONLY,
2700 &hdrs_hint_ipv4_dst_tcp_src_gtpu_eh,
2701 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2702 {ETH_RSS_L3_DST_ONLY |
2703 ETH_RSS_L4_DST_ONLY,
2704 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh,
2705 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2706 {ETH_RSS_L3_DST_ONLY,
2707 &hdrs_hint_ipv4_dst_gtpu_eh,
2708 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2709 {ETH_RSS_L4_DST_ONLY,
2710 &hdrs_hint_ipv4_tcp_dst_gtpu_eh,
2711 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2712 {ETH_RSS_NONFRAG_IPV4_TCP |
2713 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2714 &hdrs_hint_ipv4_src_tcp_src_gtpu_eh,
2715 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2716 {ETH_RSS_NONFRAG_IPV4_TCP |
2717 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2718 &hdrs_hint_ipv4_src_tcp_dst_gtpu_eh,
2719 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2720 {ETH_RSS_NONFRAG_IPV4_TCP |
2721 ETH_RSS_L3_SRC_ONLY,
2722 &hdrs_hint_ipv4_src_gtpu_eh,
2723 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2724 {ETH_RSS_NONFRAG_IPV4_TCP |
2725 ETH_RSS_L4_SRC_ONLY,
2726 &hdrs_hint_ipv4_tcp_src_gtpu_eh,
2727 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2728 {ETH_RSS_NONFRAG_IPV4_TCP |
2729 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2730 &hdrs_hint_ipv4_dst_tcp_src_gtpu_eh,
2731 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2732 {ETH_RSS_NONFRAG_IPV4_TCP |
2733 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2734 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh,
2735 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2736 {ETH_RSS_NONFRAG_IPV4_TCP |
2737 ETH_RSS_L3_DST_ONLY,
2738 &hdrs_hint_ipv4_dst_gtpu_eh,
2739 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2740 {ETH_RSS_NONFRAG_IPV4_TCP |
2741 ETH_RSS_L4_DST_ONLY,
2742 &hdrs_hint_ipv4_tcp_dst_gtpu_eh,
2743 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2744 {ETH_RSS_NONFRAG_IPV4_TCP,
2745 &hdrs_hint_ipv4_tcp_gtpu_eh,
2746 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2747 /* IPv4 GTPU EH IPv6 TCP */
2748 {ETH_RSS_NONFRAG_IPV6_TCP |
2749 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2750 &hdrs_hint_ipv6_src_tcp_src_gtpu_eh,
2751 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2752 {ETH_RSS_NONFRAG_IPV6_TCP |
2753 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2754 &hdrs_hint_ipv6_src_tcp_dst_gtpu_eh,
2755 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2756 {ETH_RSS_NONFRAG_IPV6_TCP |
2757 ETH_RSS_L3_SRC_ONLY,
2758 &hdrs_hint_ipv6_src_gtpu_eh,
2759 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2760 {ETH_RSS_NONFRAG_IPV6_TCP |
2761 ETH_RSS_L4_SRC_ONLY,
2762 &hdrs_hint_ipv6_tcp_src_gtpu_eh,
2763 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2764 {ETH_RSS_NONFRAG_IPV6_TCP |
2765 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2766 &hdrs_hint_ipv6_dst_tcp_src_gtpu_eh,
2767 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2768 {ETH_RSS_NONFRAG_IPV6_TCP |
2769 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2770 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_eh,
2771 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2772 {ETH_RSS_NONFRAG_IPV6_TCP |
2773 ETH_RSS_L3_DST_ONLY,
2774 &hdrs_hint_ipv6_dst_gtpu_eh,
2775 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2776 {ETH_RSS_NONFRAG_IPV6_TCP |
2777 ETH_RSS_L4_DST_ONLY,
2778 &hdrs_hint_ipv6_tcp_dst_gtpu_eh,
2779 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2780 {ETH_RSS_NONFRAG_IPV6_TCP,
2781 &hdrs_hint_ipv6_tcp_gtpu_eh,
2782 IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2783 /* IPv6 GTPU EH IPv4 TCP */
2784 {ETH_RSS_NONFRAG_IPV4_TCP |
2785 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2786 &hdrs_hint_ipv4_src_tcp_src_gtpu_eh,
2787 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2788 {ETH_RSS_NONFRAG_IPV4_TCP |
2789 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2790 &hdrs_hint_ipv4_src_tcp_dst_gtpu_eh,
2791 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2792 {ETH_RSS_NONFRAG_IPV4_TCP |
2793 ETH_RSS_L3_SRC_ONLY,
2794 &hdrs_hint_ipv4_src_gtpu_eh,
2795 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2796 {ETH_RSS_NONFRAG_IPV4_TCP |
2797 ETH_RSS_L4_SRC_ONLY,
2798 &hdrs_hint_ipv4_tcp_src_gtpu_eh,
2799 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2800 {ETH_RSS_NONFRAG_IPV4_TCP |
2801 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2802 &hdrs_hint_ipv4_dst_tcp_src_gtpu_eh,
2803 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2804 {ETH_RSS_NONFRAG_IPV4_TCP |
2805 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2806 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh,
2807 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2808 {ETH_RSS_NONFRAG_IPV4_TCP |
2809 ETH_RSS_L3_DST_ONLY,
2810 &hdrs_hint_ipv4_dst_gtpu_eh,
2811 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2812 {ETH_RSS_NONFRAG_IPV4_TCP |
2813 ETH_RSS_L4_DST_ONLY,
2814 &hdrs_hint_ipv4_tcp_dst_gtpu_eh,
2815 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2816 {ETH_RSS_NONFRAG_IPV4_TCP,
2817 &hdrs_hint_ipv4_tcp_gtpu_eh,
2818 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV4_TCP},
2819 /* IPv6 GTPU EH IPv6 TCP */
2820 {ETH_RSS_NONFRAG_IPV6_TCP |
2821 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2822 &hdrs_hint_ipv6_src_tcp_src_gtpu_eh,
2823 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2824 {ETH_RSS_NONFRAG_IPV6_TCP |
2825 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2826 &hdrs_hint_ipv6_src_tcp_dst_gtpu_eh,
2827 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2828 {ETH_RSS_NONFRAG_IPV6_TCP |
2829 ETH_RSS_L3_SRC_ONLY,
2830 &hdrs_hint_ipv6_src_gtpu_eh,
2831 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2832 {ETH_RSS_NONFRAG_IPV6_TCP |
2833 ETH_RSS_L4_SRC_ONLY,
2834 &hdrs_hint_ipv6_tcp_src_gtpu_eh,
2835 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2836 {ETH_RSS_NONFRAG_IPV6_TCP |
2837 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2838 &hdrs_hint_ipv6_dst_tcp_src_gtpu_eh,
2839 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2840 {ETH_RSS_NONFRAG_IPV6_TCP |
2841 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2842 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_eh,
2843 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2844 {ETH_RSS_NONFRAG_IPV6_TCP |
2845 ETH_RSS_L3_DST_ONLY,
2846 &hdrs_hint_ipv6_dst_gtpu_eh,
2847 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2848 {ETH_RSS_NONFRAG_IPV6_TCP |
2849 ETH_RSS_L4_DST_ONLY,
2850 &hdrs_hint_ipv6_tcp_dst_gtpu_eh,
2851 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2852 {ETH_RSS_NONFRAG_IPV6_TCP,
2853 &hdrs_hint_ipv6_tcp_gtpu_eh,
2854 IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP},
2856 /* IPv4 GTPU EH UP IPv4 */
2857 {ETH_RSS_L3_SRC_ONLY,
2858 &hdrs_hint_ipv4_src_gtpu_up,
2859 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2860 {ETH_RSS_L3_DST_ONLY,
2861 &hdrs_hint_ipv4_dst_gtpu_up,
2862 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2864 ETH_RSS_L3_SRC_ONLY,
2865 &hdrs_hint_ipv4_src_gtpu_up,
2866 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2868 ETH_RSS_L3_DST_ONLY,
2869 &hdrs_hint_ipv4_dst_gtpu_up,
2870 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2872 &hdrs_hint_ipv4_gtpu_up,
2873 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2874 /* IPv4 GTPU EH UP IPv6 */
2876 ETH_RSS_L3_SRC_ONLY,
2877 &hdrs_hint_ipv6_src_gtpu_up,
2878 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
2880 ETH_RSS_L3_DST_ONLY,
2881 &hdrs_hint_ipv6_dst_gtpu_up,
2882 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
2884 &hdrs_hint_ipv6_gtpu_up,
2885 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
2886 /* IPv6 GTPU EH UP IPv4 */
2888 ETH_RSS_L3_SRC_ONLY,
2889 &hdrs_hint_ipv4_src_gtpu_up,
2890 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2892 ETH_RSS_L3_DST_ONLY,
2893 &hdrs_hint_ipv4_dst_gtpu_up,
2894 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2896 &hdrs_hint_ipv4_gtpu_up,
2897 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4},
2898 /* IPv6 GTPU EH UP IPv6 */
2900 ETH_RSS_L3_SRC_ONLY,
2901 &hdrs_hint_ipv6_src_gtpu_up,
2902 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
2904 ETH_RSS_L3_DST_ONLY,
2905 &hdrs_hint_ipv6_dst_gtpu_up,
2906 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
2908 &hdrs_hint_ipv6_gtpu_up,
2909 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6},
2910 /* IPv4 GTPU EH UP IPv4 UDP */
2911 {ETH_RSS_L3_SRC_ONLY |
2912 ETH_RSS_L4_SRC_ONLY,
2913 &hdrs_hint_ipv4_src_udp_src_gtpu_up,
2914 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2915 {ETH_RSS_L3_SRC_ONLY |
2916 ETH_RSS_L4_DST_ONLY,
2917 &hdrs_hint_ipv4_src_udp_dst_gtpu_up,
2918 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2919 {ETH_RSS_L3_SRC_ONLY,
2920 &hdrs_hint_ipv4_src_gtpu_up,
2921 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2922 {ETH_RSS_L4_SRC_ONLY,
2923 &hdrs_hint_ipv4_udp_src_gtpu_up,
2924 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2925 {ETH_RSS_L3_DST_ONLY |
2926 ETH_RSS_L4_SRC_ONLY,
2927 &hdrs_hint_ipv4_dst_udp_src_gtpu_up,
2928 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2929 {ETH_RSS_L3_DST_ONLY |
2930 ETH_RSS_L4_DST_ONLY,
2931 &hdrs_hint_ipv4_dst_udp_dst_gtpu_up,
2932 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2933 {ETH_RSS_L3_DST_ONLY,
2934 &hdrs_hint_ipv4_dst_gtpu_up,
2935 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2936 {ETH_RSS_L4_DST_ONLY,
2937 &hdrs_hint_ipv4_udp_dst_gtpu_up,
2938 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2939 {ETH_RSS_NONFRAG_IPV4_UDP |
2940 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2941 &hdrs_hint_ipv4_src_udp_src_gtpu_up,
2942 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2943 {ETH_RSS_NONFRAG_IPV4_UDP |
2944 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2945 &hdrs_hint_ipv4_src_udp_dst_gtpu_up,
2946 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2947 {ETH_RSS_NONFRAG_IPV4_UDP |
2948 ETH_RSS_L3_SRC_ONLY,
2949 &hdrs_hint_ipv4_src_gtpu_up,
2950 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2951 {ETH_RSS_NONFRAG_IPV4_UDP |
2952 ETH_RSS_L4_SRC_ONLY,
2953 &hdrs_hint_ipv4_udp_src_gtpu_up,
2954 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2955 {ETH_RSS_NONFRAG_IPV4_UDP |
2956 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2957 &hdrs_hint_ipv4_dst_udp_src_gtpu_up,
2958 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2959 {ETH_RSS_NONFRAG_IPV4_UDP |
2960 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2961 &hdrs_hint_ipv4_dst_udp_dst_gtpu_up,
2962 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2963 {ETH_RSS_NONFRAG_IPV4_UDP |
2964 ETH_RSS_L3_DST_ONLY,
2965 &hdrs_hint_ipv4_dst_gtpu_up,
2966 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2967 {ETH_RSS_NONFRAG_IPV4_UDP |
2968 ETH_RSS_L4_DST_ONLY,
2969 &hdrs_hint_ipv4_udp_dst_gtpu_up,
2970 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2971 {ETH_RSS_NONFRAG_IPV4_UDP,
2972 &hdrs_hint_ipv4_udp_gtpu_up,
2973 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
2974 /* IPv4 GTPU EH UP IPv6 UDP */
2975 {ETH_RSS_NONFRAG_IPV6_UDP |
2976 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
2977 &hdrs_hint_ipv6_src_udp_src_gtpu_up,
2978 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
2979 {ETH_RSS_NONFRAG_IPV6_UDP |
2980 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
2981 &hdrs_hint_ipv6_src_udp_dst_gtpu_up,
2982 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
2983 {ETH_RSS_NONFRAG_IPV6_UDP |
2984 ETH_RSS_L3_SRC_ONLY,
2985 &hdrs_hint_ipv6_src_gtpu_up,
2986 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
2987 {ETH_RSS_NONFRAG_IPV6_UDP |
2988 ETH_RSS_L4_SRC_ONLY,
2989 &hdrs_hint_ipv6_udp_src_gtpu_up,
2990 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
2991 {ETH_RSS_NONFRAG_IPV6_UDP |
2992 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
2993 &hdrs_hint_ipv6_dst_udp_src_gtpu_up,
2994 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
2995 {ETH_RSS_NONFRAG_IPV6_UDP |
2996 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
2997 &hdrs_hint_ipv6_dst_udp_dst_gtpu_up,
2998 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
2999 {ETH_RSS_NONFRAG_IPV6_UDP |
3000 ETH_RSS_L3_DST_ONLY,
3001 &hdrs_hint_ipv6_dst_gtpu_up,
3002 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3003 {ETH_RSS_NONFRAG_IPV6_UDP |
3004 ETH_RSS_L4_DST_ONLY,
3005 &hdrs_hint_ipv6_udp_dst_gtpu_up,
3006 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3007 {ETH_RSS_NONFRAG_IPV6_UDP,
3008 &hdrs_hint_ipv6_udp_gtpu_up,
3009 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3010 /* IPv6 GTPU EH UP IPv4 UDP */
3011 {ETH_RSS_NONFRAG_IPV4_UDP |
3012 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3013 &hdrs_hint_ipv4_src_udp_src_gtpu_up,
3014 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3015 {ETH_RSS_NONFRAG_IPV4_UDP |
3016 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3017 &hdrs_hint_ipv4_src_udp_dst_gtpu_up,
3018 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3019 {ETH_RSS_NONFRAG_IPV4_UDP |
3020 ETH_RSS_L3_SRC_ONLY,
3021 &hdrs_hint_ipv4_src_gtpu_up,
3022 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3023 {ETH_RSS_NONFRAG_IPV4_UDP |
3024 ETH_RSS_L4_SRC_ONLY,
3025 &hdrs_hint_ipv4_udp_src_gtpu_up,
3026 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3027 {ETH_RSS_NONFRAG_IPV4_UDP |
3028 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3029 &hdrs_hint_ipv4_dst_udp_src_gtpu_up,
3030 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3031 {ETH_RSS_NONFRAG_IPV4_UDP |
3032 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3033 &hdrs_hint_ipv4_dst_udp_dst_gtpu_up,
3034 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3035 {ETH_RSS_NONFRAG_IPV4_UDP |
3036 ETH_RSS_L3_DST_ONLY,
3037 &hdrs_hint_ipv4_dst_gtpu_up,
3038 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3039 {ETH_RSS_NONFRAG_IPV4_UDP |
3040 ETH_RSS_L4_DST_ONLY,
3041 &hdrs_hint_ipv4_udp_dst_gtpu_up,
3042 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3043 {ETH_RSS_NONFRAG_IPV4_UDP,
3044 &hdrs_hint_ipv4_udp_gtpu_up,
3045 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_UDP},
3046 /* IPv6 GTPU EH UP IPv6 UDP */
3047 {ETH_RSS_NONFRAG_IPV6_UDP |
3048 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3049 &hdrs_hint_ipv6_src_udp_src_gtpu_up,
3050 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3051 {ETH_RSS_NONFRAG_IPV6_UDP |
3052 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3053 &hdrs_hint_ipv6_src_udp_dst_gtpu_up,
3054 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3055 {ETH_RSS_NONFRAG_IPV6_UDP |
3056 ETH_RSS_L3_SRC_ONLY,
3057 &hdrs_hint_ipv6_src_gtpu_up,
3058 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3059 {ETH_RSS_NONFRAG_IPV6_UDP |
3060 ETH_RSS_L4_SRC_ONLY,
3061 &hdrs_hint_ipv6_udp_src_gtpu_up,
3062 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3063 {ETH_RSS_NONFRAG_IPV6_UDP |
3064 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3065 &hdrs_hint_ipv6_dst_udp_src_gtpu_up,
3066 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3067 {ETH_RSS_NONFRAG_IPV6_UDP |
3068 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3069 &hdrs_hint_ipv6_dst_udp_dst_gtpu_up,
3070 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3071 {ETH_RSS_NONFRAG_IPV6_UDP |
3072 ETH_RSS_L3_DST_ONLY,
3073 &hdrs_hint_ipv6_dst_gtpu_up,
3074 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3075 {ETH_RSS_NONFRAG_IPV6_UDP |
3076 ETH_RSS_L4_DST_ONLY,
3077 &hdrs_hint_ipv6_udp_dst_gtpu_up,
3078 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3079 {ETH_RSS_NONFRAG_IPV6_UDP,
3080 &hdrs_hint_ipv6_udp_gtpu_up,
3081 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP},
3082 /* IPv4 GTPU EH UP IPv4 TCP */
3083 {ETH_RSS_L3_SRC_ONLY |
3084 ETH_RSS_L4_SRC_ONLY,
3085 &hdrs_hint_ipv4_src_tcp_src_gtpu_up,
3086 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3087 {ETH_RSS_L3_SRC_ONLY |
3088 ETH_RSS_L4_DST_ONLY,
3089 &hdrs_hint_ipv4_src_tcp_dst_gtpu_up,
3090 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3091 {ETH_RSS_L3_SRC_ONLY,
3092 &hdrs_hint_ipv4_src_gtpu_up,
3093 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3094 {ETH_RSS_L4_SRC_ONLY,
3095 &hdrs_hint_ipv4_tcp_src_gtpu_up,
3096 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3097 {ETH_RSS_L3_DST_ONLY |
3098 ETH_RSS_L4_SRC_ONLY,
3099 &hdrs_hint_ipv4_dst_tcp_src_gtpu_up,
3100 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3101 {ETH_RSS_L3_DST_ONLY |
3102 ETH_RSS_L4_DST_ONLY,
3103 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_up,
3104 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3105 {ETH_RSS_L3_DST_ONLY,
3106 &hdrs_hint_ipv4_dst_gtpu_up,
3107 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3108 {ETH_RSS_L4_DST_ONLY,
3109 &hdrs_hint_ipv4_tcp_dst_gtpu_up,
3110 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3111 {ETH_RSS_NONFRAG_IPV4_TCP |
3112 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3113 &hdrs_hint_ipv4_src_tcp_src_gtpu_up,
3114 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3115 {ETH_RSS_NONFRAG_IPV4_TCP |
3116 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3117 &hdrs_hint_ipv4_src_tcp_dst_gtpu_up,
3118 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3119 {ETH_RSS_NONFRAG_IPV4_TCP |
3120 ETH_RSS_L3_SRC_ONLY,
3121 &hdrs_hint_ipv4_src_gtpu_up,
3122 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3123 {ETH_RSS_NONFRAG_IPV4_TCP |
3124 ETH_RSS_L4_SRC_ONLY,
3125 &hdrs_hint_ipv4_tcp_src_gtpu_up,
3126 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3127 {ETH_RSS_NONFRAG_IPV4_TCP |
3128 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3129 &hdrs_hint_ipv4_dst_tcp_src_gtpu_up,
3130 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3131 {ETH_RSS_NONFRAG_IPV4_TCP |
3132 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3133 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_up,
3134 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3135 {ETH_RSS_NONFRAG_IPV4_TCP |
3136 ETH_RSS_L3_DST_ONLY,
3137 &hdrs_hint_ipv4_dst_gtpu_up,
3138 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3139 {ETH_RSS_NONFRAG_IPV4_TCP |
3140 ETH_RSS_L4_DST_ONLY,
3141 &hdrs_hint_ipv4_tcp_dst_gtpu_up,
3142 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3143 {ETH_RSS_NONFRAG_IPV4_TCP,
3144 &hdrs_hint_ipv4_tcp_gtpu_up,
3145 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3146 /* IPv4 GTPU EH UP IPv6 TCP */
3147 {ETH_RSS_NONFRAG_IPV6_TCP |
3148 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3149 &hdrs_hint_ipv6_src_tcp_src_gtpu_up,
3150 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3151 {ETH_RSS_NONFRAG_IPV6_TCP |
3152 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3153 &hdrs_hint_ipv6_src_tcp_dst_gtpu_up,
3154 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3155 {ETH_RSS_NONFRAG_IPV6_TCP |
3156 ETH_RSS_L3_SRC_ONLY,
3157 &hdrs_hint_ipv6_src_gtpu_up,
3158 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3159 {ETH_RSS_NONFRAG_IPV6_TCP |
3160 ETH_RSS_L4_SRC_ONLY,
3161 &hdrs_hint_ipv6_tcp_src_gtpu_up,
3162 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3163 {ETH_RSS_NONFRAG_IPV6_TCP |
3164 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3165 &hdrs_hint_ipv6_dst_tcp_src_gtpu_up,
3166 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3167 {ETH_RSS_NONFRAG_IPV6_TCP |
3168 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3169 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_up,
3170 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3171 {ETH_RSS_NONFRAG_IPV6_TCP |
3172 ETH_RSS_L3_DST_ONLY,
3173 &hdrs_hint_ipv6_dst_gtpu_up,
3174 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3175 {ETH_RSS_NONFRAG_IPV6_TCP |
3176 ETH_RSS_L4_DST_ONLY,
3177 &hdrs_hint_ipv6_tcp_dst_gtpu_up,
3178 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3179 {ETH_RSS_NONFRAG_IPV6_TCP,
3180 &hdrs_hint_ipv6_tcp_gtpu_up,
3181 IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3182 /* IPv6 GTPU EH UP IPv4 TCP */
3183 {ETH_RSS_NONFRAG_IPV4_TCP |
3184 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3185 &hdrs_hint_ipv4_src_tcp_src_gtpu_up,
3186 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3187 {ETH_RSS_NONFRAG_IPV4_TCP |
3188 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3189 &hdrs_hint_ipv4_src_tcp_dst_gtpu_up,
3190 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3191 {ETH_RSS_NONFRAG_IPV4_TCP |
3192 ETH_RSS_L3_SRC_ONLY,
3193 &hdrs_hint_ipv4_src_gtpu_up,
3194 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3195 {ETH_RSS_NONFRAG_IPV4_TCP |
3196 ETH_RSS_L4_SRC_ONLY,
3197 &hdrs_hint_ipv4_tcp_src_gtpu_up,
3198 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3199 {ETH_RSS_NONFRAG_IPV4_TCP |
3200 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3201 &hdrs_hint_ipv4_dst_tcp_src_gtpu_up,
3202 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3203 {ETH_RSS_NONFRAG_IPV4_TCP |
3204 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3205 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_up,
3206 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3207 {ETH_RSS_NONFRAG_IPV4_TCP |
3208 ETH_RSS_L3_DST_ONLY,
3209 &hdrs_hint_ipv4_dst_gtpu_up,
3210 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3211 {ETH_RSS_NONFRAG_IPV4_TCP |
3212 ETH_RSS_L4_DST_ONLY,
3213 &hdrs_hint_ipv4_tcp_dst_gtpu_up,
3214 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3215 {ETH_RSS_NONFRAG_IPV4_TCP,
3216 &hdrs_hint_ipv4_tcp_gtpu_up,
3217 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV4_TCP},
3218 /* IPv6 GTPU EH UP IPv6 TCP */
3219 {ETH_RSS_NONFRAG_IPV6_TCP |
3220 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3221 &hdrs_hint_ipv6_src_tcp_src_gtpu_up,
3222 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3223 {ETH_RSS_NONFRAG_IPV6_TCP |
3224 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3225 &hdrs_hint_ipv6_src_tcp_dst_gtpu_up,
3226 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3227 {ETH_RSS_NONFRAG_IPV6_TCP |
3228 ETH_RSS_L3_SRC_ONLY,
3229 &hdrs_hint_ipv6_src_gtpu_up,
3230 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3231 {ETH_RSS_NONFRAG_IPV6_TCP |
3232 ETH_RSS_L4_SRC_ONLY,
3233 &hdrs_hint_ipv6_tcp_src_gtpu_up,
3234 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3235 {ETH_RSS_NONFRAG_IPV6_TCP |
3236 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3237 &hdrs_hint_ipv6_dst_tcp_src_gtpu_up,
3238 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3239 {ETH_RSS_NONFRAG_IPV6_TCP |
3240 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3241 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_up,
3242 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3243 {ETH_RSS_NONFRAG_IPV6_TCP |
3244 ETH_RSS_L3_DST_ONLY,
3245 &hdrs_hint_ipv6_dst_gtpu_up,
3246 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3247 {ETH_RSS_NONFRAG_IPV6_TCP |
3248 ETH_RSS_L4_DST_ONLY,
3249 &hdrs_hint_ipv6_tcp_dst_gtpu_up,
3250 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3251 {ETH_RSS_NONFRAG_IPV6_TCP,
3252 &hdrs_hint_ipv6_tcp_gtpu_up,
3253 IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP},
3255 /* IPv4 GTPU EH DWN IPv4 */
3256 {ETH_RSS_L3_SRC_ONLY,
3257 &hdrs_hint_ipv4_src_gtpu_dwn,
3258 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3259 {ETH_RSS_L3_DST_ONLY,
3260 &hdrs_hint_ipv4_dst_gtpu_dwn,
3261 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3263 ETH_RSS_L3_SRC_ONLY,
3264 &hdrs_hint_ipv4_src_gtpu_dwn,
3265 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3267 ETH_RSS_L3_DST_ONLY,
3268 &hdrs_hint_ipv4_dst_gtpu_dwn,
3269 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3271 &hdrs_hint_ipv4_gtpu_dwn,
3272 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3273 /* IPv4 GTPU EH DWN IPv6 */
3275 ETH_RSS_L3_SRC_ONLY,
3276 &hdrs_hint_ipv6_src_gtpu_dwn,
3277 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3279 ETH_RSS_L3_DST_ONLY,
3280 &hdrs_hint_ipv6_dst_gtpu_dwn,
3281 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3283 &hdrs_hint_ipv6_gtpu_dwn,
3284 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3285 /* IPv6 GTPU EH DWN IPv4 */
3287 ETH_RSS_L3_SRC_ONLY,
3288 &hdrs_hint_ipv4_src_gtpu_dwn,
3289 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3291 ETH_RSS_L3_DST_ONLY,
3292 &hdrs_hint_ipv4_dst_gtpu_dwn,
3293 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3295 &hdrs_hint_ipv4_gtpu_dwn,
3296 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4},
3297 /* IPv6 GTPU EH DWN IPv6 */
3299 ETH_RSS_L3_SRC_ONLY,
3300 &hdrs_hint_ipv6_src_gtpu_dwn,
3301 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3303 ETH_RSS_L3_DST_ONLY,
3304 &hdrs_hint_ipv6_dst_gtpu_dwn,
3305 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3307 &hdrs_hint_ipv6_gtpu_dwn,
3308 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6},
3309 /* IPv4 GTPU EH DWN IPv4 UDP */
3310 {ETH_RSS_L3_SRC_ONLY |
3311 ETH_RSS_L4_SRC_ONLY,
3312 &hdrs_hint_ipv4_src_udp_src_gtpu_dwn,
3313 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3314 {ETH_RSS_L3_SRC_ONLY |
3315 ETH_RSS_L4_DST_ONLY,
3316 &hdrs_hint_ipv4_src_udp_dst_gtpu_dwn,
3317 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3318 {ETH_RSS_L3_SRC_ONLY,
3319 &hdrs_hint_ipv4_src_gtpu_dwn,
3320 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3321 {ETH_RSS_L4_SRC_ONLY,
3322 &hdrs_hint_ipv4_udp_src_gtpu_dwn,
3323 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3324 {ETH_RSS_L3_DST_ONLY |
3325 ETH_RSS_L4_SRC_ONLY,
3326 &hdrs_hint_ipv4_dst_udp_src_gtpu_dwn,
3327 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3328 {ETH_RSS_L3_DST_ONLY |
3329 ETH_RSS_L4_DST_ONLY,
3330 &hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn,
3331 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3332 {ETH_RSS_L3_DST_ONLY,
3333 &hdrs_hint_ipv4_dst_gtpu_dwn,
3334 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3335 {ETH_RSS_L4_DST_ONLY,
3336 &hdrs_hint_ipv4_udp_dst_gtpu_dwn,
3337 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3338 {ETH_RSS_NONFRAG_IPV4_UDP |
3339 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3340 &hdrs_hint_ipv4_src_udp_src_gtpu_dwn,
3341 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3342 {ETH_RSS_NONFRAG_IPV4_UDP |
3343 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3344 &hdrs_hint_ipv4_src_udp_dst_gtpu_dwn,
3345 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3346 {ETH_RSS_NONFRAG_IPV4_UDP |
3347 ETH_RSS_L3_SRC_ONLY,
3348 &hdrs_hint_ipv4_src_gtpu_dwn,
3349 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3350 {ETH_RSS_NONFRAG_IPV4_UDP |
3351 ETH_RSS_L4_SRC_ONLY,
3352 &hdrs_hint_ipv4_udp_src_gtpu_dwn,
3353 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3354 {ETH_RSS_NONFRAG_IPV4_UDP |
3355 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3356 &hdrs_hint_ipv4_dst_udp_src_gtpu_dwn,
3357 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3358 {ETH_RSS_NONFRAG_IPV4_UDP |
3359 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3360 &hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn,
3361 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3362 {ETH_RSS_NONFRAG_IPV4_UDP |
3363 ETH_RSS_L3_DST_ONLY,
3364 &hdrs_hint_ipv4_dst_gtpu_dwn,
3365 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3366 {ETH_RSS_NONFRAG_IPV4_UDP |
3367 ETH_RSS_L4_DST_ONLY,
3368 &hdrs_hint_ipv4_udp_dst_gtpu_dwn,
3369 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3370 {ETH_RSS_NONFRAG_IPV4_UDP,
3371 &hdrs_hint_ipv4_udp_gtpu_dwn,
3372 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3373 /* IPv4 GTPU EH DWN IPv6 UDP */
3374 {ETH_RSS_NONFRAG_IPV6_UDP |
3375 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3376 &hdrs_hint_ipv6_src_udp_src_gtpu_dwn,
3377 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3378 {ETH_RSS_NONFRAG_IPV6_UDP |
3379 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3380 &hdrs_hint_ipv6_src_udp_dst_gtpu_dwn,
3381 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3382 {ETH_RSS_NONFRAG_IPV6_UDP |
3383 ETH_RSS_L3_SRC_ONLY,
3384 &hdrs_hint_ipv6_src_gtpu_dwn,
3385 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3386 {ETH_RSS_NONFRAG_IPV6_UDP |
3387 ETH_RSS_L4_SRC_ONLY,
3388 &hdrs_hint_ipv6_udp_src_gtpu_dwn,
3389 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3390 {ETH_RSS_NONFRAG_IPV6_UDP |
3391 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3392 &hdrs_hint_ipv6_dst_udp_src_gtpu_dwn,
3393 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3394 {ETH_RSS_NONFRAG_IPV6_UDP |
3395 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3396 &hdrs_hint_ipv6_dst_udp_dst_gtpu_dwn,
3397 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3398 {ETH_RSS_NONFRAG_IPV6_UDP |
3399 ETH_RSS_L3_DST_ONLY,
3400 &hdrs_hint_ipv6_dst_gtpu_dwn,
3401 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3402 {ETH_RSS_NONFRAG_IPV6_UDP |
3403 ETH_RSS_L4_DST_ONLY,
3404 &hdrs_hint_ipv6_udp_dst_gtpu_dwn,
3405 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3406 {ETH_RSS_NONFRAG_IPV6_UDP,
3407 &hdrs_hint_ipv6_udp_gtpu_dwn,
3408 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3409 /* IPv6 GTPU EH DWN IPv4 UDP */
3410 {ETH_RSS_NONFRAG_IPV4_UDP |
3411 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3412 &hdrs_hint_ipv4_src_udp_src_gtpu_dwn,
3413 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3414 {ETH_RSS_NONFRAG_IPV4_UDP |
3415 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3416 &hdrs_hint_ipv4_src_udp_dst_gtpu_dwn,
3417 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3418 {ETH_RSS_NONFRAG_IPV4_UDP |
3419 ETH_RSS_L3_SRC_ONLY,
3420 &hdrs_hint_ipv4_src_gtpu_dwn,
3421 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3422 {ETH_RSS_NONFRAG_IPV4_UDP |
3423 ETH_RSS_L4_SRC_ONLY,
3424 &hdrs_hint_ipv4_udp_src_gtpu_dwn,
3425 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3426 {ETH_RSS_NONFRAG_IPV4_UDP |
3427 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3428 &hdrs_hint_ipv4_dst_udp_src_gtpu_dwn,
3429 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3430 {ETH_RSS_NONFRAG_IPV4_UDP |
3431 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3432 &hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn,
3433 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3434 {ETH_RSS_NONFRAG_IPV4_UDP |
3435 ETH_RSS_L3_DST_ONLY,
3436 &hdrs_hint_ipv4_dst_gtpu_dwn,
3437 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3438 {ETH_RSS_NONFRAG_IPV4_UDP |
3439 ETH_RSS_L4_DST_ONLY,
3440 &hdrs_hint_ipv4_udp_dst_gtpu_dwn,
3441 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3442 {ETH_RSS_NONFRAG_IPV4_UDP,
3443 &hdrs_hint_ipv4_udp_gtpu_dwn,
3444 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_UDP},
3445 /* IPv6 GTPU EH DWN IPv6 UDP */
3446 {ETH_RSS_NONFRAG_IPV6_UDP |
3447 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3448 &hdrs_hint_ipv6_src_udp_src_gtpu_dwn,
3449 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3450 {ETH_RSS_NONFRAG_IPV6_UDP |
3451 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3452 &hdrs_hint_ipv6_src_udp_dst_gtpu_dwn,
3453 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3454 {ETH_RSS_NONFRAG_IPV6_UDP |
3455 ETH_RSS_L3_SRC_ONLY,
3456 &hdrs_hint_ipv6_src_gtpu_dwn,
3457 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3458 {ETH_RSS_NONFRAG_IPV6_UDP |
3459 ETH_RSS_L4_SRC_ONLY,
3460 &hdrs_hint_ipv6_udp_src_gtpu_dwn,
3461 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3462 {ETH_RSS_NONFRAG_IPV6_UDP |
3463 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3464 &hdrs_hint_ipv6_dst_udp_src_gtpu_dwn,
3465 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3466 {ETH_RSS_NONFRAG_IPV6_UDP |
3467 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3468 &hdrs_hint_ipv6_dst_udp_dst_gtpu_dwn,
3469 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3470 {ETH_RSS_NONFRAG_IPV6_UDP |
3471 ETH_RSS_L3_DST_ONLY,
3472 &hdrs_hint_ipv6_dst_gtpu_dwn,
3473 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3474 {ETH_RSS_NONFRAG_IPV6_UDP |
3475 ETH_RSS_L4_DST_ONLY,
3476 &hdrs_hint_ipv6_udp_dst_gtpu_dwn,
3477 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3478 {ETH_RSS_NONFRAG_IPV6_UDP,
3479 &hdrs_hint_ipv6_udp_gtpu_dwn,
3480 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP},
3481 /* IPv4 GTPU EH DWN IPv4 TCP */
3482 {ETH_RSS_L3_SRC_ONLY |
3483 ETH_RSS_L4_SRC_ONLY,
3484 &hdrs_hint_ipv4_src_tcp_src_gtpu_dwn,
3485 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3486 {ETH_RSS_L3_SRC_ONLY |
3487 ETH_RSS_L4_DST_ONLY,
3488 &hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn,
3489 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3490 {ETH_RSS_L3_SRC_ONLY,
3491 &hdrs_hint_ipv4_src_gtpu_dwn,
3492 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3493 {ETH_RSS_L4_SRC_ONLY,
3494 &hdrs_hint_ipv4_tcp_src_gtpu_dwn,
3495 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3496 {ETH_RSS_L3_DST_ONLY |
3497 ETH_RSS_L4_SRC_ONLY,
3498 &hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn,
3499 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3500 {ETH_RSS_L3_DST_ONLY |
3501 ETH_RSS_L4_DST_ONLY,
3502 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn,
3503 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3504 {ETH_RSS_L3_DST_ONLY,
3505 &hdrs_hint_ipv4_dst_gtpu_dwn,
3506 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3507 {ETH_RSS_L4_DST_ONLY,
3508 &hdrs_hint_ipv4_tcp_dst_gtpu_dwn,
3509 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3510 {ETH_RSS_NONFRAG_IPV4_TCP |
3511 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3512 &hdrs_hint_ipv4_src_tcp_src_gtpu_dwn,
3513 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3514 {ETH_RSS_NONFRAG_IPV4_TCP |
3515 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3516 &hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn,
3517 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3518 {ETH_RSS_NONFRAG_IPV4_TCP |
3519 ETH_RSS_L3_SRC_ONLY,
3520 &hdrs_hint_ipv4_src_gtpu_dwn,
3521 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3522 {ETH_RSS_NONFRAG_IPV4_TCP |
3523 ETH_RSS_L4_SRC_ONLY,
3524 &hdrs_hint_ipv4_tcp_src_gtpu_dwn,
3525 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3526 {ETH_RSS_NONFRAG_IPV4_TCP |
3527 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3528 &hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn,
3529 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3530 {ETH_RSS_NONFRAG_IPV4_TCP |
3531 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3532 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn,
3533 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3534 {ETH_RSS_NONFRAG_IPV4_TCP |
3535 ETH_RSS_L3_DST_ONLY,
3536 &hdrs_hint_ipv4_dst_gtpu_dwn,
3537 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3538 {ETH_RSS_NONFRAG_IPV4_TCP |
3539 ETH_RSS_L4_DST_ONLY,
3540 &hdrs_hint_ipv4_tcp_dst_gtpu_dwn,
3541 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3542 {ETH_RSS_NONFRAG_IPV4_TCP,
3543 &hdrs_hint_ipv4_tcp_gtpu_dwn,
3544 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3545 /* IPv4 GTPU EH DWN IPv6 TCP */
3546 {ETH_RSS_NONFRAG_IPV6_TCP |
3547 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3548 &hdrs_hint_ipv6_src_tcp_src_gtpu_dwn,
3549 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3550 {ETH_RSS_NONFRAG_IPV6_TCP |
3551 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3552 &hdrs_hint_ipv6_src_tcp_dst_gtpu_dwn,
3553 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3554 {ETH_RSS_NONFRAG_IPV6_TCP |
3555 ETH_RSS_L3_SRC_ONLY,
3556 &hdrs_hint_ipv6_src_gtpu_dwn,
3557 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3558 {ETH_RSS_NONFRAG_IPV6_TCP |
3559 ETH_RSS_L4_SRC_ONLY,
3560 &hdrs_hint_ipv6_tcp_src_gtpu_dwn,
3561 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3562 {ETH_RSS_NONFRAG_IPV6_TCP |
3563 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3564 &hdrs_hint_ipv6_dst_tcp_src_gtpu_dwn,
3565 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3566 {ETH_RSS_NONFRAG_IPV6_TCP |
3567 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3568 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_dwn,
3569 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3570 {ETH_RSS_NONFRAG_IPV6_TCP |
3571 ETH_RSS_L3_DST_ONLY,
3572 &hdrs_hint_ipv6_dst_gtpu_dwn,
3573 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3574 {ETH_RSS_NONFRAG_IPV6_TCP |
3575 ETH_RSS_L4_DST_ONLY,
3576 &hdrs_hint_ipv6_tcp_dst_gtpu_dwn,
3577 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3578 {ETH_RSS_NONFRAG_IPV6_TCP,
3579 &hdrs_hint_ipv6_tcp_gtpu_dwn,
3580 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3581 /* IPv6 GTPU EH DWN IPv4 TCP */
3582 {ETH_RSS_NONFRAG_IPV4_TCP |
3583 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3584 &hdrs_hint_ipv4_src_tcp_src_gtpu_dwn,
3585 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3586 {ETH_RSS_NONFRAG_IPV4_TCP |
3587 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3588 &hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn,
3589 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3590 {ETH_RSS_NONFRAG_IPV4_TCP |
3591 ETH_RSS_L3_SRC_ONLY,
3592 &hdrs_hint_ipv4_src_gtpu_dwn,
3593 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3594 {ETH_RSS_NONFRAG_IPV4_TCP |
3595 ETH_RSS_L4_SRC_ONLY,
3596 &hdrs_hint_ipv4_tcp_src_gtpu_dwn,
3597 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3598 {ETH_RSS_NONFRAG_IPV4_TCP |
3599 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3600 &hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn,
3601 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3602 {ETH_RSS_NONFRAG_IPV4_TCP |
3603 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3604 &hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn,
3605 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3606 {ETH_RSS_NONFRAG_IPV4_TCP |
3607 ETH_RSS_L3_DST_ONLY,
3608 &hdrs_hint_ipv4_dst_gtpu_dwn,
3609 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3610 {ETH_RSS_NONFRAG_IPV4_TCP |
3611 ETH_RSS_L4_DST_ONLY,
3612 &hdrs_hint_ipv4_tcp_dst_gtpu_dwn,
3613 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3614 {ETH_RSS_NONFRAG_IPV4_TCP,
3615 &hdrs_hint_ipv4_tcp_gtpu_dwn,
3616 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV4_TCP},
3617 /* IPv6 GTPU EH DWN IPv6 TCP */
3618 {ETH_RSS_NONFRAG_IPV6_TCP |
3619 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
3620 &hdrs_hint_ipv6_src_tcp_src_gtpu_dwn,
3621 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3622 {ETH_RSS_NONFRAG_IPV6_TCP |
3623 ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY,
3624 &hdrs_hint_ipv6_src_tcp_dst_gtpu_dwn,
3625 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3626 {ETH_RSS_NONFRAG_IPV6_TCP |
3627 ETH_RSS_L3_SRC_ONLY,
3628 &hdrs_hint_ipv6_src_gtpu_dwn,
3629 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3630 {ETH_RSS_NONFRAG_IPV6_TCP |
3631 ETH_RSS_L4_SRC_ONLY,
3632 &hdrs_hint_ipv6_tcp_src_gtpu_dwn,
3633 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3634 {ETH_RSS_NONFRAG_IPV6_TCP |
3635 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
3636 &hdrs_hint_ipv6_dst_tcp_src_gtpu_dwn,
3637 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3638 {ETH_RSS_NONFRAG_IPV6_TCP |
3639 ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY,
3640 &hdrs_hint_ipv6_dst_tcp_dst_gtpu_dwn,
3641 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3642 {ETH_RSS_NONFRAG_IPV6_TCP |
3643 ETH_RSS_L3_DST_ONLY,
3644 &hdrs_hint_ipv6_dst_gtpu_dwn,
3645 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3646 {ETH_RSS_NONFRAG_IPV6_TCP |
3647 ETH_RSS_L4_DST_ONLY,
3648 &hdrs_hint_ipv6_tcp_dst_gtpu_dwn,
3649 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3650 {ETH_RSS_NONFRAG_IPV6_TCP,
3651 &hdrs_hint_ipv6_tcp_gtpu_dwn,
3652 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP},
3655 struct virtchnl_proto_hdrs *iavf_hash_default_hdrs[] = {
3657 &hdrs_hint_ipv4_udp,
3658 &hdrs_hint_ipv4_tcp,
3659 &hdrs_hint_ipv4_sctp,
3661 &hdrs_hint_ipv6_udp,
3662 &hdrs_hint_ipv6_tcp,
3663 &hdrs_hint_ipv6_sctp,
3666 static struct iavf_flow_engine iavf_hash_engine = {
3667 .init = iavf_hash_init,
3668 .create = iavf_hash_create,
3669 .destroy = iavf_hash_destroy,
3670 .uninit = iavf_hash_uninit,
3671 .free = iavf_hash_free,
3672 .type = IAVF_FLOW_ENGINE_HASH,
3675 /* Register parser for comms package. */
3676 static struct iavf_flow_parser iavf_hash_parser = {
3677 .engine = &iavf_hash_engine,
3678 .array = iavf_hash_pattern_list,
3679 .array_len = RTE_DIM(iavf_hash_pattern_list),
3680 .parse_pattern_action = iavf_hash_parse_pattern_action,
3681 .stage = IAVF_FLOW_STAGE_RSS,
3685 iavf_hash_default_set(struct iavf_adapter *ad, bool add)
3687 struct virtchnl_rss_cfg *rss_cfg;
3691 rss_cfg = rte_zmalloc("iavf rss rule",
3692 sizeof(struct virtchnl_rss_cfg), 0);
3696 for (i = 0; i < RTE_DIM(iavf_hash_default_hdrs); i++) {
3697 rss_cfg->proto_hdrs = *iavf_hash_default_hdrs[i];
3698 rss_cfg->rss_algorithm = VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC;
3700 ret = iavf_add_del_rss_cfg(ad, rss_cfg, add);
3702 PMD_DRV_LOG(ERR, "fail to %s RSS configure",
3703 add ? "add" : "delete");
3712 RTE_INIT(iavf_hash_engine_init)
3714 struct iavf_flow_engine *engine = &iavf_hash_engine;
3716 iavf_register_flow_engine(engine);
3720 iavf_hash_init(struct iavf_adapter *ad)
3722 struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(ad);
3723 struct iavf_flow_parser *parser;
3729 if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_ADV_RSS_PF))
3732 parser = &iavf_hash_parser;
3734 ret = iavf_register_parser(parser, ad);
3736 PMD_DRV_LOG(ERR, "fail to register hash parser");
3740 ret = iavf_hash_default_set(ad, true);
3742 PMD_DRV_LOG(ERR, "fail to set default RSS");
3743 iavf_unregister_parser(parser, ad);
3750 iavf_hash_parse_pattern(struct iavf_pattern_match_item *pattern_match_item,
3751 const struct rte_flow_item pattern[], uint64_t *phint,
3752 struct rte_flow_error *error)
3754 const struct rte_flow_item *item = pattern;
3755 const struct rte_flow_item_gtp_psc *psc;
3758 for (item = pattern; item->type != RTE_FLOW_ITEM_TYPE_END; item++) {
3760 rte_flow_error_set(error, EINVAL,
3761 RTE_FLOW_ERROR_TYPE_ITEM, item,
3762 "Not support range");
3766 switch (item->type) {
3767 case RTE_FLOW_ITEM_TYPE_IPV6:
3770 case RTE_FLOW_ITEM_TYPE_GTPU:
3771 *phint |= (outer_ipv6) ?
3772 IAVF_PHINT_IPV6_GTPU_IP :
3773 IAVF_PHINT_IPV4_GTPU_IP;
3775 case RTE_FLOW_ITEM_TYPE_GTP_PSC:
3777 *phint &= (outer_ipv6) ?
3778 ~IAVF_PHINT_IPV6_GTPU_IP :
3779 ~IAVF_PHINT_IPV4_GTPU_IP;
3781 *phint |= (outer_ipv6) ?
3782 IAVF_PHINT_IPV6_GTPU_EH :
3783 IAVF_PHINT_IPV4_GTPU_EH;
3784 else if (psc->pdu_type == IAVF_GTPU_EH_UPLINK)
3785 *phint |= (outer_ipv6) ?
3786 IAVF_PHINT_IPV6_GTPU_EH_UPLINK :
3787 IAVF_PHINT_IPV4_GTPU_EH_UPLINK;
3788 else if (psc->pdu_type == IAVF_GTPU_EH_DWNLINK)
3789 *phint |= (outer_ipv6) ?
3790 IAVF_PHINT_IPV6_GTPU_EH_DWNLINK :
3791 IAVF_PHINT_IPV4_GTPU_EH_DWNLINK;
3798 /* update and restore pattern hint */
3799 *phint |= ((struct iavf_pattern_match_type *)
3800 (pattern_match_item->meta))->pattern_hint;
3806 iavf_hash_parse_action(const struct rte_flow_action actions[],
3807 uint64_t pattern_hint, void **meta,
3808 struct rte_flow_error *error)
3810 struct iavf_rss_meta *rss_meta = (struct iavf_rss_meta *)*meta;
3811 struct iavf_hash_match_type *hash_map_list;
3812 enum rte_flow_action_type action_type;
3813 const struct rte_flow_action_rss *rss;
3814 const struct rte_flow_action *action;
3816 bool item_found = false;
3820 /* Supported action is RSS. */
3821 for (action = actions; action->type !=
3822 RTE_FLOW_ACTION_TYPE_END; action++) {
3823 action_type = action->type;
3824 switch (action_type) {
3825 case RTE_FLOW_ACTION_TYPE_RSS:
3827 rss_type = rss->types;
3830 RTE_ETH_HASH_FUNCTION_SIMPLE_XOR){
3831 rss_meta->rss_algorithm =
3832 VIRTCHNL_RSS_ALG_XOR_ASYMMETRIC;
3833 } else if (rss->func ==
3834 RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) {
3835 rss_meta->rss_algorithm =
3836 VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC;
3838 rss_meta->rss_algorithm =
3839 VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC;
3843 return rte_flow_error_set(error, ENOTSUP,
3844 RTE_FLOW_ERROR_TYPE_ACTION, action,
3845 "a nonzero RSS encapsulation level is not supported");
3848 return rte_flow_error_set(error, ENOTSUP,
3849 RTE_FLOW_ERROR_TYPE_ACTION, action,
3850 "a nonzero RSS key_len is not supported");
3853 return rte_flow_error_set(error, ENOTSUP,
3854 RTE_FLOW_ERROR_TYPE_ACTION, action,
3855 "a non-NULL RSS queue is not supported");
3858 * Check simultaneous use of SRC_ONLY and DST_ONLY
3859 * of the same level.
3861 rss_type = rte_eth_rss_hf_refine(rss_type);
3863 if ((pattern_hint & IAVF_PHINT_IPV4_GTPU_IP) ||
3864 (pattern_hint & IAVF_PHINT_IPV4_GTPU_EH) ||
3865 (pattern_hint & IAVF_PHINT_IPV4_GTPU_EH_UPLINK) ||
3866 (pattern_hint & IAVF_PHINT_IPV4_GTPU_EH_DWNLINK) ||
3867 (pattern_hint & IAVF_PHINT_IPV6_GTPU_IP) ||
3868 (pattern_hint & IAVF_PHINT_IPV6_GTPU_EH) ||
3869 (pattern_hint & IAVF_PHINT_IPV6_GTPU_EH_UPLINK) ||
3870 (pattern_hint & IAVF_PHINT_IPV6_GTPU_EH_DWNLINK)) {
3871 hash_map_list = iavf_gtpu_hash_map_list;
3872 mlist_len = RTE_DIM(iavf_gtpu_hash_map_list);
3874 hash_map_list = iavf_hash_map_list;
3875 mlist_len = RTE_DIM(iavf_hash_map_list);
3878 /* Find matched proto hdrs according to hash type. */
3879 for (i = 0; i < mlist_len; i++) {
3880 struct iavf_hash_match_type *ht_map =
3882 if (rss_type == ht_map->hash_type &&
3883 pattern_hint == ht_map->pattern_hint) {
3884 rss_meta->proto_hdrs =
3892 return rte_flow_error_set(error, ENOTSUP,
3893 RTE_FLOW_ERROR_TYPE_ACTION, action,
3894 "Not supported flow");
3897 case RTE_FLOW_ACTION_TYPE_END:
3901 rte_flow_error_set(error, EINVAL,
3902 RTE_FLOW_ERROR_TYPE_ACTION, action,
3912 iavf_hash_parse_pattern_action(__rte_unused struct iavf_adapter *ad,
3913 struct iavf_pattern_match_item *array,
3915 const struct rte_flow_item pattern[],
3916 const struct rte_flow_action actions[],
3918 struct rte_flow_error *error)
3920 struct iavf_pattern_match_item *pattern_match_item;
3921 struct iavf_rss_meta *rss_meta_ptr;
3922 uint64_t phint = IAVF_PHINT_NONE;
3925 rss_meta_ptr = rte_zmalloc(NULL, sizeof(*rss_meta_ptr), 0);
3926 if (!rss_meta_ptr) {
3927 rte_flow_error_set(error, EINVAL,
3928 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
3929 "No memory for rss_meta_ptr");
3933 /* Check rss supported pattern and find matched pattern. */
3934 pattern_match_item =
3935 iavf_search_pattern_match_item(pattern, array, array_len,
3937 if (!pattern_match_item) {
3942 ret = iavf_hash_parse_pattern(pattern_match_item, pattern, &phint,
3947 ret = iavf_hash_parse_action(actions, phint,
3948 (void **)&rss_meta_ptr, error);
3952 *meta = rss_meta_ptr;
3954 rte_free(rss_meta_ptr);
3956 rte_free(pattern_match_item);
3962 iavf_hash_create(__rte_unused struct iavf_adapter *ad,
3963 __rte_unused struct rte_flow *flow, void *meta,
3964 __rte_unused struct rte_flow_error *error)
3966 struct iavf_rss_meta *rss_meta = (struct iavf_rss_meta *)meta;
3967 struct virtchnl_rss_cfg *rss_cfg;
3970 rss_cfg = rte_zmalloc("iavf rss rule",
3971 sizeof(struct virtchnl_rss_cfg), 0);
3973 rte_flow_error_set(error, EINVAL,
3974 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
3975 "No memory for rss rule");
3979 rss_cfg->proto_hdrs = *rss_meta->proto_hdrs;
3980 rss_cfg->rss_algorithm = rss_meta->rss_algorithm;
3982 ret = iavf_add_del_rss_cfg(ad, rss_cfg, true);
3984 flow->rule = rss_cfg;
3986 PMD_DRV_LOG(ERR, "fail to add RSS configure");
3987 rte_flow_error_set(error, -ret,
3988 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
3989 "Failed to add rss rule.");
4000 iavf_hash_destroy(__rte_unused struct iavf_adapter *ad,
4001 struct rte_flow *flow,
4002 __rte_unused struct rte_flow_error *error)
4004 struct virtchnl_rss_cfg *rss_cfg;
4007 rss_cfg = (struct virtchnl_rss_cfg *)flow->rule;
4009 ret = iavf_add_del_rss_cfg(ad, rss_cfg, false);
4011 PMD_DRV_LOG(ERR, "fail to del RSS configure");
4012 rte_flow_error_set(error, -ret,
4013 RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
4014 "Failed to delete rss rule.");
4021 iavf_hash_uninit(struct iavf_adapter *ad)
4023 if (iavf_hash_default_set(ad, false))
4024 PMD_DRV_LOG(ERR, "fail to delete default RSS");
4026 iavf_unregister_parser(&iavf_hash_parser, ad);
4030 iavf_hash_free(struct rte_flow *flow)
4032 rte_free(flow->rule);