Skip to content

Commit 38724a4

Browse files
aloktionanguy11
authored andcommitted
ice: add virtchnl definitions and static data for GTP RSS
Add virtchnl protocol header and field definitions for advanced RSS configuration including GTPC, GTPU, L2TPv2, ECPRI, PPP, GRE, and IP fragment headers. - Define new virtchnl protocol header types - Add RSS field selectors for tunnel protocols - Extend static mapping arrays for protocol field matching - Add L2TPv2 session ID and length+session ID field support This provides the foundational definitions needed for VF RSS configuration of tunnel protocols. Co-developed-by: Dan Nowlin <[email protected]> Signed-off-by: Dan Nowlin <[email protected]> Co-developed-by: Jie Wang <[email protected]> Signed-off-by: Jie Wang <[email protected]> Co-developed-by: Junfeng Guo <[email protected]> Signed-off-by: Junfeng Guo <[email protected]> Co-developed-by: Qi Zhang <[email protected]> Signed-off-by: Qi Zhang <[email protected]> Co-developed-by: Ting Xu <[email protected]> Signed-off-by: Ting Xu <[email protected]> Signed-off-by: Przemek Kitszel <[email protected]> Signed-off-by: Aleksandr Loktionov <[email protected]> Signed-off-by: Tony Nguyen <[email protected]>
1 parent 12ed3e5 commit 38724a4

File tree

3 files changed

+316
-1
lines changed

3 files changed

+316
-1
lines changed

drivers/net/ethernet/intel/ice/ice_vf_lib.h

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,46 @@ struct ice_mdd_vf_events {
5353
u16 last_printed;
5454
};
5555

56+
enum ice_hash_ip_ctx_type {
57+
ICE_HASH_IP_CTX_IP = 0,
58+
ICE_HASH_IP_CTX_IP_ESP,
59+
ICE_HASH_IP_CTX_IP_UDP_ESP,
60+
ICE_HASH_IP_CTX_IP_AH,
61+
ICE_HASH_IP_CTX_IP_PFCP,
62+
ICE_HASH_IP_CTX_IP_UDP,
63+
ICE_HASH_IP_CTX_IP_TCP,
64+
ICE_HASH_IP_CTX_IP_SCTP,
65+
ICE_HASH_IP_CTX_MAX,
66+
};
67+
68+
struct ice_vf_hash_ip_ctx {
69+
struct ice_rss_hash_cfg ctx[ICE_HASH_IP_CTX_MAX];
70+
};
71+
72+
enum ice_hash_gtpu_ctx_type {
73+
ICE_HASH_GTPU_CTX_EH_IP = 0,
74+
ICE_HASH_GTPU_CTX_EH_IP_UDP,
75+
ICE_HASH_GTPU_CTX_EH_IP_TCP,
76+
ICE_HASH_GTPU_CTX_UP_IP,
77+
ICE_HASH_GTPU_CTX_UP_IP_UDP,
78+
ICE_HASH_GTPU_CTX_UP_IP_TCP,
79+
ICE_HASH_GTPU_CTX_DW_IP,
80+
ICE_HASH_GTPU_CTX_DW_IP_UDP,
81+
ICE_HASH_GTPU_CTX_DW_IP_TCP,
82+
ICE_HASH_GTPU_CTX_MAX,
83+
};
84+
85+
struct ice_vf_hash_gtpu_ctx {
86+
struct ice_rss_hash_cfg ctx[ICE_HASH_GTPU_CTX_MAX];
87+
};
88+
89+
struct ice_vf_hash_ctx {
90+
struct ice_vf_hash_ip_ctx v4;
91+
struct ice_vf_hash_ip_ctx v6;
92+
struct ice_vf_hash_gtpu_ctx ipv4;
93+
struct ice_vf_hash_gtpu_ctx ipv6;
94+
};
95+
5696
/* Structure to store fdir fv entry */
5797
struct ice_fdir_prof_info {
5898
struct ice_parser_profile prof;
@@ -66,6 +106,12 @@ struct ice_vf_qs_bw {
66106
u8 tc;
67107
};
68108

109+
/* Structure to store RSS field vector entry */
110+
struct ice_rss_prof_info {
111+
struct ice_parser_profile prof;
112+
bool symm;
113+
};
114+
69115
/* VF operations */
70116
struct ice_vf_ops {
71117
enum ice_disq_rst_src reset_type;
@@ -106,6 +152,8 @@ struct ice_vf {
106152
u16 ctrl_vsi_idx;
107153
struct ice_vf_fdir fdir;
108154
struct ice_fdir_prof_info fdir_prof_info[ICE_MAX_PTGS];
155+
struct ice_rss_prof_info rss_prof_info[ICE_MAX_PTGS];
156+
struct ice_vf_hash_ctx hash_ctx;
109157
u64 rss_hashcfg; /* RSS hash configuration */
110158
struct ice_sw *vf_sw_id; /* switch ID the VF VSIs connect to */
111159
struct virtchnl_version_info vf_ver;

drivers/net/ethernet/intel/ice/virt/rss.c

Lines changed: 218 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ static const struct ice_vc_hdr_match_type ice_vc_hdr_list[] = {
3636
{VIRTCHNL_PROTO_HDR_ESP, ICE_FLOW_SEG_HDR_ESP},
3737
{VIRTCHNL_PROTO_HDR_AH, ICE_FLOW_SEG_HDR_AH},
3838
{VIRTCHNL_PROTO_HDR_PFCP, ICE_FLOW_SEG_HDR_PFCP_SESSION},
39+
{VIRTCHNL_PROTO_HDR_GTPC, ICE_FLOW_SEG_HDR_GTPC},
40+
{VIRTCHNL_PROTO_HDR_L2TPV2, ICE_FLOW_SEG_HDR_L2TPV2},
41+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG, ICE_FLOW_SEG_HDR_IPV_FRAG},
42+
{VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG, ICE_FLOW_SEG_HDR_IPV_FRAG},
43+
{VIRTCHNL_PROTO_HDR_GRE, ICE_FLOW_SEG_HDR_GRE},
3944
};
4045

4146
struct ice_vc_hash_field_match_type {
@@ -87,8 +92,125 @@ ice_vc_hash_field_match_type ice_vc_hash_field_list[] = {
8792
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
8893
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT),
8994
ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
90-
{VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT),
95+
{VIRTCHNL_PROTO_HDR_IPV4,
96+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID),
97+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_ID)},
98+
{VIRTCHNL_PROTO_HDR_IPV4,
99+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
100+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
101+
{VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
102+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
103+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) |
104+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
105+
{VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
106+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
107+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
108+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
109+
{VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
110+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
111+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
112+
ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
113+
{VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
114+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
115+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
116+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) |
117+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
118+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
119+
{VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
120+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
121+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
122+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
123+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
124+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
125+
{VIRTCHNL_PROTO_HDR_IPV4, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
126+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
127+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
128+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
129+
ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
130+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
131+
{VIRTCHNL_PROTO_HDR_IPV4,
132+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
133+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
134+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
135+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
136+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
137+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT),
91138
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
139+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
140+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC),
141+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)},
142+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
143+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST),
144+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
145+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
146+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
147+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST),
148+
ICE_FLOW_HASH_IPV4},
149+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
150+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
151+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT),
152+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) |
153+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
154+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
155+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
156+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT),
157+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
158+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
159+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
160+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
161+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
162+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT),
163+
ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
164+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
165+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT),
166+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
167+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
168+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID),
169+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_ID)},
170+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
171+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
172+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
173+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
174+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
175+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
176+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) |
177+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
178+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
179+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
180+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
181+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
182+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
183+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
184+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
185+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
186+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
187+
ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
188+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
189+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
190+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
191+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
192+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) |
193+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
194+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
195+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
196+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
197+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
198+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
199+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
200+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
201+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
202+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
203+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) |
204+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) |
205+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
206+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
207+
ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
208+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
209+
{VIRTCHNL_PROTO_HDR_IPV4_FRAG,
210+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT) |
211+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_CHKSUM),
212+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
213+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_CHKSUM)},
92214
{VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC),
93215
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},
94216
{VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST),
@@ -110,6 +232,35 @@ ice_vc_hash_field_match_type ice_vc_hash_field_list[] = {
110232
ICE_FLOW_HASH_IPV6 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)},
111233
{VIRTCHNL_PROTO_HDR_IPV6, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT),
112234
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)},
235+
{VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG,
236+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG_PKID),
237+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_ID)},
238+
{VIRTCHNL_PROTO_HDR_IPV6,
239+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC) |
240+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST),
241+
ICE_FLOW_HASH_IPV6_PRE64},
242+
{VIRTCHNL_PROTO_HDR_IPV6,
243+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC),
244+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)},
245+
{VIRTCHNL_PROTO_HDR_IPV6,
246+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST),
247+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)},
248+
{VIRTCHNL_PROTO_HDR_IPV6,
249+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC) |
250+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST) |
251+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT),
252+
ICE_FLOW_HASH_IPV6_PRE64 |
253+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)},
254+
{VIRTCHNL_PROTO_HDR_IPV6,
255+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_SRC) |
256+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT),
257+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) |
258+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)},
259+
{VIRTCHNL_PROTO_HDR_IPV6,
260+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST) |
261+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT),
262+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
263+
BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)},
113264
{VIRTCHNL_PROTO_HDR_TCP,
114265
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT),
115266
BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)},
@@ -120,6 +271,25 @@ ice_vc_hash_field_match_type ice_vc_hash_field_list[] = {
120271
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT) |
121272
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT),
122273
ICE_FLOW_HASH_TCP_PORT},
274+
{VIRTCHNL_PROTO_HDR_TCP,
275+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM),
276+
BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)},
277+
{VIRTCHNL_PROTO_HDR_TCP,
278+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT) |
279+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM),
280+
BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT) |
281+
BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)},
282+
{VIRTCHNL_PROTO_HDR_TCP,
283+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT) |
284+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM),
285+
BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT) |
286+
BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)},
287+
{VIRTCHNL_PROTO_HDR_TCP,
288+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_SRC_PORT) |
289+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_DST_PORT) |
290+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_TCP_CHKSUM),
291+
ICE_FLOW_HASH_TCP_PORT |
292+
BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_CHKSUM)},
123293
{VIRTCHNL_PROTO_HDR_UDP,
124294
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT),
125295
BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)},
@@ -130,6 +300,25 @@ ice_vc_hash_field_match_type ice_vc_hash_field_list[] = {
130300
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT) |
131301
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT),
132302
ICE_FLOW_HASH_UDP_PORT},
303+
{VIRTCHNL_PROTO_HDR_UDP,
304+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM),
305+
BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)},
306+
{VIRTCHNL_PROTO_HDR_UDP,
307+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT) |
308+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM),
309+
BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT) |
310+
BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)},
311+
{VIRTCHNL_PROTO_HDR_UDP,
312+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT) |
313+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM),
314+
BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT) |
315+
BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)},
316+
{VIRTCHNL_PROTO_HDR_UDP,
317+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT) |
318+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_DST_PORT) |
319+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_CHKSUM),
320+
ICE_FLOW_HASH_UDP_PORT |
321+
BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_CHKSUM)},
133322
{VIRTCHNL_PROTO_HDR_SCTP,
134323
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT),
135324
BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)},
@@ -140,6 +329,25 @@ ice_vc_hash_field_match_type ice_vc_hash_field_list[] = {
140329
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT) |
141330
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT),
142331
ICE_FLOW_HASH_SCTP_PORT},
332+
{VIRTCHNL_PROTO_HDR_SCTP,
333+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM),
334+
BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)},
335+
{VIRTCHNL_PROTO_HDR_SCTP,
336+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT) |
337+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM),
338+
BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT) |
339+
BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)},
340+
{VIRTCHNL_PROTO_HDR_SCTP,
341+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT) |
342+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM),
343+
BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT) |
344+
BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)},
345+
{VIRTCHNL_PROTO_HDR_SCTP,
346+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT) |
347+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_DST_PORT) |
348+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_SCTP_CHKSUM),
349+
ICE_FLOW_HASH_SCTP_PORT |
350+
BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_CHKSUM)},
143351
{VIRTCHNL_PROTO_HDR_PPPOE,
144352
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_PPPOE_SESS_ID),
145353
BIT_ULL(ICE_FLOW_FIELD_IDX_PPPOE_SESS_ID)},
@@ -155,6 +363,15 @@ ice_vc_hash_field_match_type ice_vc_hash_field_list[] = {
155363
BIT_ULL(ICE_FLOW_FIELD_IDX_AH_SPI)},
156364
{VIRTCHNL_PROTO_HDR_PFCP, FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_PFCP_SEID),
157365
BIT_ULL(ICE_FLOW_FIELD_IDX_PFCP_SEID)},
366+
{VIRTCHNL_PROTO_HDR_GTPC,
367+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_GTPC_TEID),
368+
BIT_ULL(ICE_FLOW_FIELD_IDX_GTPC_TEID)},
369+
{VIRTCHNL_PROTO_HDR_L2TPV2,
370+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_L2TPV2_SESS_ID),
371+
BIT_ULL(ICE_FLOW_FIELD_IDX_L2TPV2_SESS_ID)},
372+
{VIRTCHNL_PROTO_HDR_L2TPV2,
373+
FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_L2TPV2_LEN_SESS_ID),
374+
BIT_ULL(ICE_FLOW_FIELD_IDX_L2TPV2_LEN_SESS_ID)},
158375
};
159376

160377
/**

0 commit comments

Comments
 (0)