1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2001-2021 Intel Corporation
5 #include "ice_common.h"
8 /* These are training packet headers used to program flow director filters. */
9 static const u8 ice_fdir_tcpv4_pkt[] = {
10 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
11 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
12 0x00, 0x28, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
13 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00,
16 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
19 static const u8 ice_fdir_udpv4_pkt[] = {
20 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
21 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
22 0x00, 0x1C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
23 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
24 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28 static const u8 ice_fdir_sctpv4_pkt[] = {
29 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
31 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x40, 0x84,
32 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37 static const u8 ice_fdir_ipv4_pkt[] = {
38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
40 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x10,
41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
45 static const u8 ice_fdir_udp4_vxlan_pkt[] = {
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
47 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
48 0x00, 0x4e, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
49 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
54 0x45, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x40, 0x00,
55 0x40, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 0x00, 0x00, 0x00, 0x00,
60 static const u8 ice_fdir_ipv4_gtpu4_pkt[] = {
61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
62 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
63 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
64 0x7c, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x24,
66 0xbf, 0xc0, 0x30, 0xff, 0x00, 0x14, 0x00, 0x00,
67 0x00, 0x00, 0x45, 0x00, 0x00, 0x14, 0x00, 0x01,
68 0x00, 0x00, 0x40, 0x00, 0x3a, 0x3d, 0x00, 0x00,
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
72 static const u8 ice_fdir_udp4_gtpu4_pkt[] = {
73 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
74 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
75 0x00, 0x40, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
76 0x7c, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
77 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2c,
78 0x00, 0x6f, 0x30, 0xff, 0x00, 0x1c, 0x00, 0x00,
79 0x00, 0x00, 0x45, 0x00, 0x00, 0x1c, 0x00, 0x01,
80 0x00, 0x00, 0x40, 0x11, 0x3a, 0x24, 0x00, 0x00,
81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82 0x00, 0x00, 0x00, 0x08, 0xbe, 0xc7, 0x00, 0x00,
85 static const u8 ice_fdir_tcp4_gtpu4_pkt[] = {
86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
87 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
88 0x00, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
89 0x7c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
90 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x38,
91 0x00, 0x4c, 0x30, 0xff, 0x00, 0x28, 0x00, 0x00,
92 0x00, 0x00, 0x45, 0x00, 0x00, 0x28, 0x00, 0x01,
93 0x00, 0x00, 0x40, 0x06, 0x3a, 0x23, 0x00, 0x00,
94 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
95 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
96 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x4e, 0xd2,
97 0x00, 0x00, 0x00, 0x00,
100 static const u8 ice_fdir_ipv6_gtpu4_pkt[] = {
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
102 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
103 0x00, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
104 0x7c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
105 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x38,
106 0x24, 0x42, 0x30, 0xff, 0x00, 0x28, 0x00, 0x00,
107 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
108 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
109 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
110 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
111 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
112 0x00, 0x00, 0x00, 0x00,
115 static const u8 ice_fdir_udp6_gtpu4_pkt[] = {
116 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
117 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
118 0x00, 0x54, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
119 0x7c, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
120 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x40,
121 0x4e, 0x3d, 0x30, 0xff, 0x00, 0x30, 0x00, 0x00,
122 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08,
123 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
124 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
125 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
126 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
127 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
128 0xff, 0xdc, 0x00, 0x00,
131 static const u8 ice_fdir_tcp6_gtpu4_pkt[] = {
132 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
133 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
134 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
135 0x7c, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
136 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4e,
137 0x59, 0x08, 0x30, 0xff, 0x00, 0x3e, 0x00, 0x00,
138 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
139 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
142 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
143 0x00, 0x00, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
145 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
148 static const u8 ice_fdir_ipv4_gtpu4_eh_pkt[] = {
149 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
150 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
151 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
152 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
153 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
154 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
155 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
156 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
157 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
158 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
161 static const u8 ice_fdir_udp4_gtpu4_eh_pkt[] = {
162 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
164 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
165 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
166 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
167 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
168 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
169 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
170 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
171 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
172 0x00, 0x00, 0x00, 0x0a, 0x01, 0xd8, 0x00, 0x00,
175 static const u8 ice_fdir_tcp4_gtpu4_eh_pkt[] = {
176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
177 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
178 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
179 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
180 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
181 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
182 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
183 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
184 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
185 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
186 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0xde,
188 0x00, 0x00, 0x00, 0x00,
191 static const u8 ice_fdir_ipv6_gtpu4_eh_pkt[] = {
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
194 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
195 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
196 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
197 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
199 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
200 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
203 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
204 0x00, 0x01, 0x00, 0x00,
207 static const u8 ice_fdir_udp6_gtpu4_eh_pkt[] = {
208 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
210 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
211 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
212 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
213 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
214 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
215 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
216 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
218 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
221 0xff, 0xd8, 0x00, 0x00,
224 static const u8 ice_fdir_tcp6_gtpu4_eh_pkt[] = {
225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
227 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
228 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
229 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
230 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
231 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
232 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
233 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
239 0x20, 0x00, 0x8f, 0xdf, 0x00, 0x00, 0x00, 0x00,
242 static const u8 ice_fdir_ipv4_gtpu4_eh_dw_pkt[] = {
243 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
245 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
246 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
247 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
248 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
249 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
250 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
251 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
252 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
255 static const u8 ice_fdir_udp4_gtpu4_eh_dw_pkt[] = {
256 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
257 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
258 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
259 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
260 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
261 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
262 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
263 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
264 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
265 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
266 0x00, 0x00, 0x00, 0x0a, 0x01, 0xd8, 0x00, 0x00,
269 static const u8 ice_fdir_tcp4_gtpu4_eh_dw_pkt[] = {
270 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
271 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
272 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
273 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
274 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
275 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
276 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
277 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
278 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
279 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
280 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
281 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0xde,
282 0x00, 0x00, 0x00, 0x00,
285 static const u8 ice_fdir_ipv6_gtpu4_eh_dw_pkt[] = {
286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
287 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
288 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
289 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
290 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
291 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
292 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
293 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
294 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
297 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
298 0x00, 0x01, 0x00, 0x00,
301 static const u8 ice_fdir_udp6_gtpu4_eh_dw_pkt[] = {
302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
304 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
305 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
306 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
307 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
308 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
309 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
310 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
311 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
312 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
313 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
314 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
315 0xff, 0xd8, 0x00, 0x00,
318 static const u8 ice_fdir_tcp6_gtpu4_eh_dw_pkt[] = {
319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
320 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
321 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
322 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
323 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
324 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
325 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
326 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
327 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
329 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
331 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
332 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
333 0x20, 0x00, 0x8f, 0xdf, 0x00, 0x00, 0x00, 0x00,
336 static const u8 ice_fdir_ipv4_gtpu4_eh_up_pkt[] = {
337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
338 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
339 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
340 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
341 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
342 0xba, 0x0d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
343 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
344 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
345 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
346 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
349 static const u8 ice_fdir_udp4_gtpu4_eh_up_pkt[] = {
350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
351 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
352 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
353 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
354 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
355 0xb8, 0x13, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
356 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
357 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
358 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
359 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
360 0x00, 0x00, 0x00, 0x0a, 0x01, 0xd8, 0x00, 0x00,
363 static const u8 ice_fdir_tcp4_gtpu4_eh_up_pkt[] = {
364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
366 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
367 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
368 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
369 0xb7, 0xf0, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
370 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
371 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
372 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
373 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
374 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
375 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0xde,
376 0x00, 0x00, 0x00, 0x00,
379 static const u8 ice_fdir_ipv6_gtpu4_eh_up_pkt[] = {
380 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
381 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
382 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
383 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
384 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
385 0x1e, 0x8d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
386 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
387 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
388 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
389 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
390 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
391 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
392 0x00, 0x01, 0x00, 0x00,
395 static const u8 ice_fdir_udp6_gtpu4_eh_up_pkt[] = {
396 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
397 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
398 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
399 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
400 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
401 0x48, 0x8a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
402 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
403 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
404 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
405 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
406 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
407 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
408 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
409 0xff, 0xd8, 0x00, 0x00,
412 static const u8 ice_fdir_tcp6_gtpu4_eh_up_pkt[] = {
413 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
414 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
415 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
416 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
417 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
418 0x53, 0x5b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
419 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
420 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
421 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
422 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
423 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
424 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
425 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
426 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
427 0x20, 0x00, 0x8f, 0xdf, 0x00, 0x00, 0x00, 0x00,
430 static const u8 ice_fdir_icmp4_gtpu4_pkt[] = {
431 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
432 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
433 0x00, 0x4c, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
434 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
435 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x00,
436 0x00, 0x00, 0x34, 0xff, 0x00, 0x28, 0x00, 0x00,
437 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x02, 0x00,
438 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
439 0x00, 0x1c, 0x00, 0x00, 0x40, 0x00, 0x40, 0x01,
440 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
441 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
445 static const u8 ice_fdir_ipv6_gtpu6_pkt[] = {
446 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
447 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
448 0x00, 0x00, 0x00, 0x38, 0x11, 0x40, 0x00, 0x00,
449 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
450 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
451 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
452 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
453 0x08, 0x68, 0x00, 0x38, 0x22, 0x43, 0x30, 0xff,
454 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
455 0x00, 0x00, 0x00, 0x00, 0x3b, 0x40, 0x00, 0x00,
456 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
457 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
458 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
459 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
462 static const u8 ice_fdir_ipv6_gtpu6_eh_pkt[] = {
463 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
464 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
465 0x00, 0x00, 0x00, 0x44, 0x11, 0x40, 0x00, 0x00,
466 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
467 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
468 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
469 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
470 0x08, 0x68, 0x00, 0x44, 0x1b, 0x9a, 0x34, 0xff,
471 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
472 0x00, 0x85, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
473 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
474 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
475 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
476 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
477 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
478 0x00, 0x00, 0x00, 0x00,
481 static const u8 ice_fdir_ipv6_gtpu6_eh_dw_pkt[] = {
482 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
483 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
484 0x00, 0x00, 0x00, 0x44, 0x11, 0x40, 0x00, 0x00,
485 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
486 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
487 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
488 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
489 0x08, 0x68, 0x00, 0x44, 0x1b, 0x9a, 0x34, 0xff,
490 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
491 0x00, 0x85, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
492 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
493 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
494 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
495 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
496 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
497 0x00, 0x00, 0x00, 0x00,
500 static const u8 ice_fdir_ipv6_gtpu6_eh_up_pkt[] = {
501 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
502 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
503 0x00, 0x00, 0x00, 0x44, 0x11, 0x40, 0x00, 0x00,
504 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
505 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
506 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
507 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
508 0x08, 0x68, 0x00, 0x44, 0x1b, 0x8a, 0x34, 0xff,
509 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
510 0x00, 0x85, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00,
511 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
512 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
513 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
514 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
515 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
516 0x00, 0x00, 0x00, 0x00,
519 static const u8 ice_fdir_ipv4_l2tpv3_pkt[] = {
520 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
521 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
522 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x73,
523 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
524 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
525 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
528 static const u8 ice_fdir_ipv6_l2tpv3_pkt[] = {
529 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
530 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
531 0x00, 0x00, 0x00, 0x00, 0x73, 0x40, 0x00, 0x00,
532 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
533 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
534 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
535 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
536 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
540 static const u8 ice_fdir_ipv4_esp_pkt[] = {
541 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
542 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
543 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x32,
544 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
545 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
549 static const u8 ice_fdir_ipv6_esp_pkt[] = {
550 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
551 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
552 0x00, 0x00, 0x00, 0x00, 0x32, 0x40, 0x00, 0x00,
553 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
554 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
555 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
556 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
557 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
560 static const u8 ice_fdir_ipv4_ah_pkt[] = {
561 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
562 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
563 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x33,
564 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
565 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
566 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
570 static const u8 ice_fdir_ipv6_ah_pkt[] = {
571 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
572 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
573 0x00, 0x00, 0x00, 0x00, 0x33, 0x40, 0x00, 0x00,
574 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
575 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
576 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
577 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
578 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
579 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
582 static const u8 ice_fdir_ipv4_nat_t_esp_pkt[] = {
583 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
584 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
585 0x00, 0x1C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
586 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
587 0x00, 0x00, 0x00, 0x00, 0x11, 0x94, 0x00, 0x00,
588 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
592 static const u8 ice_fdir_ipv6_nat_t_esp_pkt[] = {
593 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
594 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
595 0x00, 0x00, 0x00, 0x08, 0x11, 0x40, 0x00, 0x00,
596 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
597 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
598 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
599 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
600 0x11, 0x94, 0x00, 0x00, 0x00, 0x08,
603 static const u8 ice_fdir_ipv4_pfcp_node_pkt[] = {
604 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
605 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
606 0x00, 0x2C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
607 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
608 0x00, 0x00, 0x22, 0x65, 0x22, 0x65, 0x00, 0x00,
609 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00,
610 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
614 static const u8 ice_fdir_ipv4_pfcp_session_pkt[] = {
615 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
616 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
617 0x00, 0x2C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
618 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
619 0x00, 0x00, 0x22, 0x65, 0x22, 0x65, 0x00, 0x00,
620 0x00, 0x00, 0x21, 0x00, 0x00, 0x10, 0x00, 0x00,
621 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
625 static const u8 ice_fdir_ipv6_pfcp_node_pkt[] = {
626 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
627 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
628 0x00, 0x00, 0x00, 0x18, 0x11, 0x40, 0x00, 0x00,
629 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
630 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
631 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
632 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x65,
633 0x22, 0x65, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
634 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
635 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
638 static const u8 ice_fdir_ipv6_pfcp_session_pkt[] = {
639 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
640 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
641 0x00, 0x00, 0x00, 0x18, 0x11, 0x40, 0x00, 0x00,
642 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
643 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
644 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
645 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x65,
646 0x22, 0x65, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00,
647 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
648 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
651 static const u8 ice_fdir_non_ip_l2_pkt[] = {
652 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
653 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
654 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
657 static const u8 ice_fdir_ecpri_tp0_pkt[] = {
658 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
659 0x00, 0x00, 0x00, 0x00, 0xAE, 0xFE, 0x10, 0x00,
660 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
661 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
664 static const u8 ice_fdir_ipv4_udp_ecpri_tp0_pkt[] = {
665 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
666 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
667 0x00, 0x1C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
668 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
669 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
670 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
671 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
674 static const u8 ice_fdir_ipv6_frag_pkt[] = {
675 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
676 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
677 0x00, 0x00, 0x00, 0x00, 0x2C, 0x40, 0x00, 0x00,
678 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
679 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
680 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
681 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x00,
682 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
685 static const u8 ice_fdir_ipv4_frag_pkt[] = {
686 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
687 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
688 0x00, 0x14, 0x00, 0x00, 0x20, 0x00, 0x40, 0x10,
689 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
693 /* IPV4 GRE INNER IPV4 */
694 static const u8 ice_fdir_ipv4_gre4_pkt[] = {
695 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
696 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
697 0x00, 0x2e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
698 0x7c, 0x9e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
699 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
700 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
701 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
702 0x00, 0x01, 0x00, 0x00,
705 static const u8 ice_fdir_udp4_gre4_pkt[] = {
706 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
707 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
708 0x00, 0x36, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
709 0x7c, 0x96, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
710 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
711 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
712 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
713 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
714 0x01, 0xd8, 0x00, 0x00,
717 static const u8 ice_fdir_tcp4_gre4_pkt[] = {
718 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
719 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
720 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
721 0x7c, 0x8a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
722 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
723 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
724 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
725 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
726 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
727 0x20, 0x00, 0x91, 0xde, 0x00, 0x00, 0x00, 0x00,
730 /* IPV4 GRE INNER IPV6 */
731 static const u8 ice_fdir_ipv6_gre4_pkt[] = {
732 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
733 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
734 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
735 0x7c, 0x8a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
736 0x00, 0x01, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
737 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
738 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
739 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
740 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
741 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
744 static const u8 ice_fdir_udp6_gre4_pkt[] = {
745 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
746 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
747 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
748 0x7c, 0x82, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
749 0x00, 0x01, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
750 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
751 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
752 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
753 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
754 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
755 0x00, 0x00, 0x00, 0x0a, 0xff, 0xd8, 0x00, 0x00,
758 static const u8 ice_fdir_tcp6_gre4_pkt[] = {
759 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
760 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
761 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
762 0x7c, 0x76, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
763 0x00, 0x01, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
764 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
765 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
766 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
767 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
768 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
769 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
770 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0xdf,
771 0x00, 0x00, 0x00, 0x00,
774 /* IPV6 GRE INNER IPV4 */
775 static const u8 ice_fdir_ipv4_gre6_pkt[] = {
776 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
777 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
778 0x00, 0x00, 0x00, 0x18, 0x2F, 0x40, 0x00, 0x00,
779 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
780 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
781 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
782 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
783 0x08, 0x00, 0x45, 0x00, 0x00, 0x14, 0x00, 0x01,
784 0x00, 0x00, 0x40, 0x00, 0x7A, 0xEA, 0x00, 0x00,
785 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
788 static const u8 ice_fdir_udp4_gre6_pkt[] = {
789 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
790 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
791 0x00, 0x00, 0x00, 0x20, 0x2F, 0x40, 0x00, 0x00,
792 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
793 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
794 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
795 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
796 0x08, 0x00, 0x45, 0x00, 0x00, 0x1C, 0x00, 0x01,
797 0x00, 0x00, 0x40, 0x11, 0x7A, 0xD1, 0x00, 0x00,
798 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
799 0x00, 0x00, 0x00, 0x08, 0xFF, 0xDE, 0x00, 0x00,
802 static const u8 ice_fdir_tcp4_gre6_pkt[] = {
803 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
804 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
805 0x00, 0x00, 0x00, 0x2C, 0x2F, 0x40, 0x00, 0x00,
806 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
807 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
808 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
809 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
810 0x08, 0x00, 0x45, 0x00, 0x00, 0x28, 0x00, 0x01,
811 0x00, 0x00, 0x40, 0x06, 0x7A, 0xD0, 0x00, 0x00,
812 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
813 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
814 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8F, 0xE3,
815 0x00, 0x00, 0x00, 0x00,
818 /* IPV6 GRE INNER IPV6 */
819 static const u8 ice_fdir_ipv6_gre6_pkt[] = {
820 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
821 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
822 0x00, 0x00, 0x00, 0x2C, 0x2F, 0x40, 0x00, 0x00,
823 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
824 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
825 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
826 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
827 0x86, 0xDD, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
828 0x3B, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
829 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
830 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
831 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
832 0x00, 0x01, 0x00, 0x00,
835 static const u8 ice_fdir_udp6_gre6_pkt[] = {
836 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
837 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
838 0x00, 0x00, 0x00, 0x34, 0x2F, 0x40, 0x00, 0x00,
839 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
840 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
841 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
842 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
843 0x86, 0xDD, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08,
844 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
845 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
846 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
847 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
848 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x08,
849 0xFF, 0x72, 0x00, 0x00,
852 static const u8 ice_fdir_tcp6_gre6_pkt[] = {
853 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
854 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
855 0x00, 0x00, 0x00, 0x40, 0x2F, 0x40, 0x00, 0x00,
856 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
857 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
858 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
859 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
860 0x86, 0xDD, 0x60, 0x00, 0x00, 0x00, 0x00, 0x14,
861 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
862 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
863 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
864 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
865 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
866 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
867 0x20, 0x00, 0x8F, 0xE1, 0x00, 0x00, 0x00, 0x00,
870 /* IPV4 GRE IPV4 GTPU IPV4 */
871 static const u8 ice_fdir_ipv4_gtpu4_gre4_pkt[] = {
872 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
873 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
874 0x00, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
875 0x7c, 0x7a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
876 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
877 0x00, 0x3a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
878 0x7c, 0xb0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
879 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x26,
880 0xbf, 0xba, 0x30, 0xff, 0x00, 0x16, 0x00, 0x00,
881 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
882 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
883 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
886 static const u8 ice_fdir_udp4_gtpu4_gre4_pkt[] = {
887 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
888 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
889 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
890 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
891 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
892 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
893 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
894 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
895 0xbd, 0xc0, 0x30, 0xff, 0x00, 0x1e, 0x00, 0x00,
896 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
897 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
898 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
899 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
902 static const u8 ice_fdir_tcp4_gtpu4_gre4_pkt[] = {
903 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
904 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
905 0x00, 0x66, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
906 0x7c, 0x66, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
907 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
908 0x00, 0x4e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
909 0x7c, 0x9c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
910 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x3a,
911 0xbd, 0x9d, 0x30, 0xff, 0x00, 0x2a, 0x00, 0x00,
912 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
913 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
914 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
915 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
916 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
917 0x00, 0x00, 0x00, 0x00,
920 /* IPV4 GRE IPV4 GTPU IPV6 */
921 static const u8 ice_fdir_ipv6_gtpu4_gre4_pkt[] = {
922 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
923 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
924 0x00, 0x66, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
925 0x7c, 0x66, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
926 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
927 0x00, 0x4e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
928 0x7c, 0x9c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
929 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x3a,
930 0x24, 0x3a, 0x30, 0xff, 0x00, 0x2a, 0x00, 0x00,
931 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
932 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
933 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
934 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
935 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
936 0x00, 0x01, 0x00, 0x00,
939 static const u8 ice_fdir_udp6_gtpu4_gre4_pkt[] = {
940 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
941 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
942 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
943 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
944 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
945 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
946 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
947 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
948 0x4e, 0x37, 0x30, 0xff, 0x00, 0x32, 0x00, 0x00,
949 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
950 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
951 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
952 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
953 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
954 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
955 0xff, 0x6e, 0x00, 0x00,
958 static const u8 ice_fdir_tcp6_gtpu4_gre4_pkt[] = {
959 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
960 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
961 0x00, 0x7a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
962 0x7c, 0x52, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
963 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
964 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
965 0x7c, 0x88, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
966 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4e,
967 0x59, 0x08, 0x30, 0xff, 0x00, 0x3e, 0x00, 0x00,
968 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
969 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
970 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
971 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
972 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
973 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
974 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
975 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
978 /* IPV6 GRE IPV4 GTPU IPV4 */
979 static const u8 ice_fdir_ipv4_gtpu4_gre6_pkt[] = {
980 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
981 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
982 0x00, 0x00, 0x00, 0x3e, 0x2f, 0x40, 0x00, 0x00,
983 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
984 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
985 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
986 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
987 0x08, 0x00, 0x45, 0x00, 0x00, 0x3a, 0x00, 0x01,
988 0x00, 0x00, 0x40, 0x11, 0x7c, 0xb0, 0x7f, 0x00,
989 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
990 0x08, 0x68, 0x00, 0x26, 0xbf, 0xba, 0x30, 0xff,
991 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
992 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
993 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
994 0x00, 0x01, 0x00, 0x00,
997 static const u8 ice_fdir_udp4_gtpu4_gre6_pkt[] = {
998 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
999 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1000 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1001 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1002 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1003 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1004 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1005 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1006 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1007 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1008 0x08, 0x68, 0x00, 0x2e, 0xbd, 0xc0, 0x30, 0xff,
1009 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
1010 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1011 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1012 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1013 0x01, 0x6e, 0x00, 0x00,
1016 static const u8 ice_fdir_tcp4_gtpu4_gre6_pkt[] = {
1017 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1018 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1019 0x00, 0x00, 0x00, 0x52, 0x2f, 0x40, 0x00, 0x00,
1020 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1021 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1022 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1023 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1024 0x08, 0x00, 0x45, 0x00, 0x00, 0x4e, 0x00, 0x01,
1025 0x00, 0x00, 0x40, 0x11, 0x7c, 0x9c, 0x7f, 0x00,
1026 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1027 0x08, 0x68, 0x00, 0x3a, 0xbd, 0x9d, 0x30, 0xff,
1028 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
1029 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1030 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1031 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1032 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1033 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1036 /* IPV6 GRE IPV4 GTPU IPV6 */
1037 static const u8 ice_fdir_ipv6_gtpu4_gre6_pkt[] = {
1038 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1039 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1040 0x00, 0x00, 0x00, 0x52, 0x2f, 0x40, 0x00, 0x00,
1041 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1042 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1043 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1044 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1045 0x08, 0x00, 0x45, 0x00, 0x00, 0x4e, 0x00, 0x01,
1046 0x00, 0x00, 0x40, 0x11, 0x7c, 0x9c, 0x7f, 0x00,
1047 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1048 0x08, 0x68, 0x00, 0x3a, 0x24, 0x3a, 0x30, 0xff,
1049 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
1050 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1051 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1052 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1053 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1054 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1057 static const u8 ice_fdir_udp6_gtpu4_gre6_pkt[] = {
1058 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1059 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1060 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1061 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1062 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1063 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1064 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1065 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1066 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1067 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1068 0x08, 0x68, 0x00, 0x42, 0x4e, 0x37, 0x30, 0xff,
1069 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
1070 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1071 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1072 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1073 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1074 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1075 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1078 static const u8 ice_fdir_tcp6_gtpu4_gre6_pkt[] = {
1079 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1080 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1081 0x00, 0x00, 0x00, 0x66, 0x2f, 0x40, 0x00, 0x00,
1082 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1083 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1084 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1085 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1086 0x08, 0x00, 0x45, 0x00, 0x00, 0x62, 0x00, 0x01,
1087 0x00, 0x00, 0x40, 0x11, 0x7c, 0x88, 0x7f, 0x00,
1088 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1089 0x08, 0x68, 0x00, 0x4e, 0x59, 0x08, 0x30, 0xff,
1090 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
1091 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1092 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1093 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1094 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1095 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1096 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1097 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1098 0x00, 0x00, 0x00, 0x00,
1101 /* IPV4 GRE IPV4 GTPU EH IPV4 */
1102 static const u8 ice_fdir_ipv4_gtpu4_eh_gre4_pkt[] = {
1103 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1104 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1105 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1106 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1107 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1108 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1109 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1110 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
1111 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
1112 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1113 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
1114 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
1115 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
1118 static const u8 ice_fdir_udp4_gtpu4_eh_gre4_pkt[] = {
1119 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1120 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1121 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1122 0x7c, 0x6a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1123 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1124 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1125 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1126 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
1127 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
1128 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1129 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
1130 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
1131 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
1132 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
1135 static const u8 ice_fdir_tcp4_gtpu4_eh_gre4_pkt[] = {
1136 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1137 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1138 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1139 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1140 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1141 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1142 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1143 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1144 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1145 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1146 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
1147 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
1148 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
1149 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1150 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
1151 0x00, 0x00, 0x00, 0x00,
1154 /* IPV4 GRE IPV4 GTPU EH IPV6 */
1155 static const u8 ice_fdir_ipv6_gtpu4_eh_gre4_pkt[] = {
1156 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1157 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1158 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1159 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1160 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1161 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1162 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1163 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1164 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1165 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1166 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
1167 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1168 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1169 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1170 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1171 0x00, 0x01, 0x00, 0x00,
1174 static const u8 ice_fdir_udp6_gtpu4_eh_gre4_pkt[] = {
1175 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1176 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1177 0x00, 0x76, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1178 0x7c, 0x56, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1179 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1180 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1181 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1182 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
1183 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
1184 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1185 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
1186 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1188 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1189 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1190 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1191 0xff, 0x6e, 0x00, 0x00,
1194 static const u8 ice_fdir_tcp6_gtpu4_eh_gre4_pkt[] = {
1195 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1196 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1197 0x00, 0x82, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1198 0x7c, 0x4a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1199 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1200 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1201 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1202 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
1203 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
1204 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1205 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
1206 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1208 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1210 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1212 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
1215 /* IPV6 GRE IPV4 GTPU EH IPV4 */
1216 static const u8 ice_fdir_ipv4_gtpu4_eh_gre6_pkt[] = {
1217 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1218 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1219 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1221 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1223 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1224 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1225 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1226 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1227 0x08, 0x68, 0x00, 0x2e, 0xba, 0x1d, 0x34, 0xff,
1228 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1229 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1230 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
1231 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1232 0x00, 0x01, 0x00, 0x00,
1235 static const u8 ice_fdir_udp4_gtpu4_eh_gre6_pkt[] = {
1236 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1237 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1238 0x00, 0x00, 0x00, 0x4e, 0x2f, 0x40, 0x00, 0x00,
1239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1240 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1242 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1243 0x08, 0x00, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x01,
1244 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa0, 0x7f, 0x00,
1245 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1246 0x08, 0x68, 0x00, 0x36, 0xb8, 0x23, 0x34, 0xff,
1247 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1248 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1249 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1250 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1251 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1252 0x01, 0x6e, 0x00, 0x00,
1255 static const u8 ice_fdir_tcp4_gtpu4_eh_gre6_pkt[] = {
1256 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1257 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1258 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1259 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1260 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1262 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1263 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1264 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1265 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1266 0x08, 0x68, 0x00, 0x42, 0xb8, 0x00, 0x34, 0xff,
1267 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1268 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1269 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1270 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1271 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1272 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1273 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1276 /* IPV6 GRE IPV4 GTPU EH IPV6 */
1277 static const u8 ice_fdir_ipv6_gtpu4_eh_gre6_pkt[] = {
1278 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1279 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1280 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1281 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1282 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1283 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1284 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1285 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1286 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1287 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1288 0x08, 0x68, 0x00, 0x42, 0x1e, 0x9d, 0x34, 0xff,
1289 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1290 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1291 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1292 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1293 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1295 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1298 static const u8 ice_fdir_udp6_gtpu4_eh_gre6_pkt[] = {
1299 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1300 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1301 0x00, 0x00, 0x00, 0x62, 0x2f, 0x40, 0x00, 0x00,
1302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1303 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1305 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1306 0x08, 0x00, 0x45, 0x00, 0x00, 0x5e, 0x00, 0x01,
1307 0x00, 0x00, 0x40, 0x11, 0x7c, 0x8c, 0x7f, 0x00,
1308 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1309 0x08, 0x68, 0x00, 0x4a, 0x48, 0x9a, 0x34, 0xff,
1310 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1311 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1312 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1313 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1314 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1315 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1316 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1317 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1320 static const u8 ice_fdir_tcp6_gtpu4_eh_gre6_pkt[] = {
1321 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1322 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1323 0x00, 0x00, 0x00, 0x6e, 0x2f, 0x40, 0x00, 0x00,
1324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1325 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1327 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1328 0x08, 0x00, 0x45, 0x00, 0x00, 0x6a, 0x00, 0x01,
1329 0x00, 0x00, 0x40, 0x11, 0x7c, 0x80, 0x7f, 0x00,
1330 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1331 0x08, 0x68, 0x00, 0x56, 0x53, 0x6b, 0x34, 0xff,
1332 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1333 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1334 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1336 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1338 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1339 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1340 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1341 0x00, 0x00, 0x00, 0x00,
1344 /* IPV4 GRE IPV4 GTPU DW IPV4 */
1345 static const u8 ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt[] = {
1346 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1347 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1348 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1349 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1350 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1351 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1352 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1353 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
1354 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
1355 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1356 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
1357 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
1358 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
1361 static const u8 ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt[] = {
1362 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1363 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1364 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1365 0x7c, 0x6a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1366 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1367 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1368 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1369 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
1370 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
1371 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1372 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
1373 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
1374 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
1375 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
1378 static const u8 ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt[] = {
1379 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1380 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1381 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1382 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1383 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1384 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1385 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1386 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1387 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1388 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1389 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
1390 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
1391 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
1392 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1393 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
1394 0x00, 0x00, 0x00, 0x00,
1397 /* IPV4 GRE IPV4 GTPU DW IPV6 */
1398 static const u8 ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt[] = {
1399 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1400 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1401 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1402 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1403 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1404 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1405 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1406 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1407 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1408 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1409 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
1410 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1411 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1412 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1413 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1414 0x00, 0x01, 0x00, 0x00,
1417 static const u8 ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt[] = {
1418 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1419 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1420 0x00, 0x76, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1421 0x7c, 0x56, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1422 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1423 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1424 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1425 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
1426 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
1427 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1428 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
1429 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1430 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1431 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1432 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1433 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1434 0xff, 0x6e, 0x00, 0x00,
1437 static const u8 ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt[] = {
1438 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1439 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1440 0x00, 0x82, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1441 0x7c, 0x4a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1442 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1443 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1444 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1445 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
1446 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
1447 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1448 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
1449 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1450 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1451 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1452 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1453 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1454 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1455 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
1458 /* IPV6 GRE IPV4 GTPU DW IPV4 */
1459 static const u8 ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt[] = {
1460 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1461 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1462 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1463 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1464 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1465 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1466 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1467 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1468 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1469 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1470 0x08, 0x68, 0x00, 0x2e, 0xba, 0x1d, 0x34, 0xff,
1471 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1472 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1473 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
1474 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1475 0x00, 0x01, 0x00, 0x00,
1478 static const u8 ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt[] = {
1479 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1480 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1481 0x00, 0x00, 0x00, 0x4e, 0x2f, 0x40, 0x00, 0x00,
1482 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1483 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1484 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1485 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1486 0x08, 0x00, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x01,
1487 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa0, 0x7f, 0x00,
1488 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1489 0x08, 0x68, 0x00, 0x36, 0xb8, 0x23, 0x34, 0xff,
1490 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1491 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1492 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1493 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1494 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1495 0x01, 0x6e, 0x00, 0x00,
1498 static const u8 ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt[] = {
1499 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1500 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1501 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1502 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1503 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1504 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1505 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1506 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1507 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1508 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1509 0x08, 0x68, 0x00, 0x42, 0xb8, 0x00, 0x34, 0xff,
1510 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1511 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1512 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1513 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1514 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1515 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1516 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1519 /* IPV6 GRE IPV4 GTPU DW IPV6 */
1520 static const u8 ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt[] = {
1521 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1522 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1523 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1524 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1525 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1526 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1527 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1528 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1529 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1530 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1531 0x08, 0x68, 0x00, 0x42, 0x1e, 0x9d, 0x34, 0xff,
1532 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1533 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1534 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1535 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1536 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1537 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1538 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1541 static const u8 ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt[] = {
1542 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1543 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1544 0x00, 0x00, 0x00, 0x62, 0x2f, 0x40, 0x00, 0x00,
1545 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1546 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1547 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1548 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1549 0x08, 0x00, 0x45, 0x00, 0x00, 0x5e, 0x00, 0x01,
1550 0x00, 0x00, 0x40, 0x11, 0x7c, 0x8c, 0x7f, 0x00,
1551 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1552 0x08, 0x68, 0x00, 0x4a, 0x48, 0x9a, 0x34, 0xff,
1553 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1554 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1555 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1556 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1557 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1558 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1559 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1560 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1563 static const u8 ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt[] = {
1564 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1565 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1566 0x00, 0x00, 0x00, 0x6e, 0x2f, 0x40, 0x00, 0x00,
1567 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1568 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1569 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1570 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1571 0x08, 0x00, 0x45, 0x00, 0x00, 0x6a, 0x00, 0x01,
1572 0x00, 0x00, 0x40, 0x11, 0x7c, 0x80, 0x7f, 0x00,
1573 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1574 0x08, 0x68, 0x00, 0x56, 0x53, 0x6b, 0x34, 0xff,
1575 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1576 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1577 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1578 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1579 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1580 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1581 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1582 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1583 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1584 0x00, 0x00, 0x00, 0x00,
1587 /* IPV4 GRE IPV4 GTPU UP IPV4 */
1588 static const u8 ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt[] = {
1589 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1590 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1591 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1592 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1593 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1594 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1595 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1596 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
1597 0xba, 0x0d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
1598 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1599 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
1600 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
1601 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
1604 static const u8 ice_fdir_udp4_gtpu4_eh_up_gre4_pkt[] = {
1605 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1606 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1607 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1608 0x7c, 0x6a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1609 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1610 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1611 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1612 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
1613 0xb8, 0x13, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
1614 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1615 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
1616 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
1617 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
1618 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
1621 static const u8 ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt[] = {
1622 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1623 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1624 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1625 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1626 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1627 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1628 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1629 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1630 0xb7, 0xf0, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1631 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1632 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
1633 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
1634 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
1635 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1636 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
1637 0x00, 0x00, 0x00, 0x00,
1640 /* IPV4 GRE IPV4 GTPU UP IPV6 */
1641 static const u8 ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt[] = {
1642 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1643 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1644 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1645 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1646 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1647 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1648 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1649 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1650 0x1e, 0x8d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1651 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1652 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
1653 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1654 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1655 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1656 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1657 0x00, 0x01, 0x00, 0x00,
1660 static const u8 ice_fdir_udp6_gtpu4_eh_up_gre4_pkt[] = {
1661 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1662 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1663 0x00, 0x76, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1664 0x7c, 0x56, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1665 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1666 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1667 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1668 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
1669 0x48, 0x8a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
1670 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1671 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
1672 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1673 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1674 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1675 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1676 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1677 0xff, 0x6e, 0x00, 0x00,
1680 static const u8 ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt[] = {
1681 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1682 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1683 0x00, 0x82, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1684 0x7c, 0x4a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1685 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1686 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1687 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1688 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
1689 0x53, 0x5b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
1690 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1691 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
1692 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1693 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1694 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1695 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1696 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1697 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1698 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
1701 /* IPV6 GRE IPV4 GTPU UP IPV4 */
1702 static const u8 ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt[] = {
1703 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1704 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1705 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1706 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1707 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1708 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1709 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1710 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1711 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1712 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1713 0x08, 0x68, 0x00, 0x2e, 0xba, 0x0d, 0x34, 0xff,
1714 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1715 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x45, 0x00,
1716 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
1717 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1718 0x00, 0x01, 0x00, 0x00,
1721 static const u8 ice_fdir_udp4_gtpu4_eh_up_gre6_pkt[] = {
1722 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1723 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1724 0x00, 0x00, 0x00, 0x4e, 0x2f, 0x40, 0x00, 0x00,
1725 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1726 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1727 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1728 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1729 0x08, 0x00, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x01,
1730 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa0, 0x7f, 0x00,
1731 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1732 0x08, 0x68, 0x00, 0x36, 0xb8, 0x13, 0x34, 0xff,
1733 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1734 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x45, 0x00,
1735 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1736 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1737 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1738 0x01, 0x6e, 0x00, 0x00,
1741 static const u8 ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt[] = {
1742 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1743 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1744 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1745 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1746 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1747 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1748 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1749 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1750 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1751 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1752 0x08, 0x68, 0x00, 0x42, 0xb7, 0xf0, 0x34, 0xff,
1753 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1754 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x45, 0x00,
1755 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1756 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1757 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1758 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1759 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1762 /* IPV6 GRE IPV4 GTPU UP IPV6 */
1763 static const u8 ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt[] = {
1764 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1765 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1766 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1767 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1768 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1769 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1770 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1771 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1772 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1773 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1774 0x08, 0x68, 0x00, 0x42, 0x1e, 0x8d, 0x34, 0xff,
1775 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1776 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00,
1777 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1778 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1779 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1780 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1781 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1784 static const u8 ice_fdir_udp6_gtpu4_eh_up_gre6_pkt[] = {
1785 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1786 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1787 0x00, 0x00, 0x00, 0x62, 0x2f, 0x40, 0x00, 0x00,
1788 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1789 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1790 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1791 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1792 0x08, 0x00, 0x45, 0x00, 0x00, 0x5e, 0x00, 0x01,
1793 0x00, 0x00, 0x40, 0x11, 0x7c, 0x8c, 0x7f, 0x00,
1794 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1795 0x08, 0x68, 0x00, 0x4a, 0x48, 0x8a, 0x34, 0xff,
1796 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1797 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00,
1798 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1799 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1800 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1801 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1802 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1803 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1806 static const u8 ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt[] = {
1807 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1808 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1809 0x00, 0x00, 0x00, 0x6e, 0x2f, 0x40, 0x00, 0x00,
1810 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1811 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1812 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1813 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1814 0x08, 0x00, 0x45, 0x00, 0x00, 0x6a, 0x00, 0x01,
1815 0x00, 0x00, 0x40, 0x11, 0x7c, 0x80, 0x7f, 0x00,
1816 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1817 0x08, 0x68, 0x00, 0x56, 0x53, 0x5b, 0x34, 0xff,
1818 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1819 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00,
1820 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1821 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1822 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1823 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1824 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1825 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1826 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1827 0x00, 0x00, 0x00, 0x00,
1830 static const u8 ice_fdir_tcpv6_pkt[] = {
1831 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1832 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
1833 0x00, 0x00, 0x00, 0x14, 0x06, 0x40, 0x00, 0x00,
1834 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1835 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1836 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1837 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1838 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1839 0x00, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00,
1843 static const u8 ice_fdir_udpv6_pkt[] = {
1844 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1845 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
1846 0x00, 0x00, 0x00, 0x08, 0x11, 0x40, 0x00, 0x00,
1847 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1848 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1849 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1850 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1851 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
1854 static const u8 ice_fdir_sctpv6_pkt[] = {
1855 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1856 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
1857 0x00, 0x00, 0x00, 0x0C, 0x84, 0x40, 0x00, 0x00,
1858 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1859 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1860 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1861 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1862 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1866 static const u8 ice_fdir_ipv6_pkt[] = {
1867 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1868 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
1869 0x00, 0x00, 0x00, 0x00, 0x3B, 0x40, 0x00, 0x00,
1870 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1871 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1872 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1873 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1876 static const u8 ice_fdir_tcp4_tun_pkt[] = {
1877 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1878 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1879 0x00, 0x5a, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1880 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1881 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1882 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1883 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1884 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
1885 0x45, 0x00, 0x00, 0x28, 0x00, 0x00, 0x40, 0x00,
1886 0x40, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1887 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1888 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1889 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
1892 static const u8 ice_fdir_udp4_tun_pkt[] = {
1893 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1894 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1895 0x00, 0x4e, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1896 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1897 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1898 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1899 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1900 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
1901 0x45, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x40, 0x00,
1902 0x40, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1903 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1904 0x00, 0x00, 0x00, 0x00,
1907 static const u8 ice_fdir_sctp4_tun_pkt[] = {
1908 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1909 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1910 0x00, 0x52, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1911 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1912 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1913 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1914 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1915 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
1916 0x45, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x00,
1917 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1918 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1919 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1922 static const u8 ice_fdir_ip4_tun_pkt[] = {
1923 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1924 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1925 0x00, 0x46, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1926 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1927 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1928 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1929 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1930 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
1931 0x45, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00,
1932 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1933 0x00, 0x00, 0x00, 0x00,
1936 static const u8 ice_fdir_tcp6_tun_pkt[] = {
1937 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1938 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1939 0x00, 0x6e, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1940 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1941 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1942 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1943 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1944 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
1945 0x60, 0x00, 0x00, 0x00, 0x00, 0x14, 0x06, 0x40,
1946 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1947 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1948 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1949 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1950 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1951 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x20, 0x00,
1952 0x00, 0x00, 0x00, 0x00,
1955 static const u8 ice_fdir_udp6_tun_pkt[] = {
1956 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1957 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1958 0x00, 0x62, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1959 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1960 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1961 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1962 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1963 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
1964 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, 0x40,
1965 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1966 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1967 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1968 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1969 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1972 static const u8 ice_fdir_sctp6_tun_pkt[] = {
1973 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1974 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1975 0x00, 0x66, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1976 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1977 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1978 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1979 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1980 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
1981 0x60, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x84, 0x40,
1982 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1983 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1984 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1985 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1986 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1987 0x00, 0x00, 0x00, 0x00,
1990 static const u8 ice_fdir_ip6_tun_pkt[] = {
1991 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1992 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1993 0x00, 0x5a, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
1994 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1995 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1996 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
1997 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1998 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
1999 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x40,
2000 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2001 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2002 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2003 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2006 /* Flow Director no-op training packet table */
2007 static const struct ice_fdir_base_pkt ice_fdir_pkt[] = {
2009 ICE_FLTR_PTYPE_NONF_IPV4_TCP,
2010 sizeof(ice_fdir_tcpv4_pkt), ice_fdir_tcpv4_pkt,
2011 sizeof(ice_fdir_tcp4_tun_pkt), ice_fdir_tcp4_tun_pkt,
2014 ICE_FLTR_PTYPE_NONF_IPV4_UDP,
2015 sizeof(ice_fdir_udpv4_pkt), ice_fdir_udpv4_pkt,
2016 sizeof(ice_fdir_udp4_tun_pkt), ice_fdir_udp4_tun_pkt,
2019 ICE_FLTR_PTYPE_NONF_IPV4_SCTP,
2020 sizeof(ice_fdir_sctpv4_pkt), ice_fdir_sctpv4_pkt,
2021 sizeof(ice_fdir_sctp4_tun_pkt), ice_fdir_sctp4_tun_pkt,
2024 ICE_FLTR_PTYPE_NONF_IPV4_OTHER,
2025 sizeof(ice_fdir_ipv4_pkt), ice_fdir_ipv4_pkt,
2026 sizeof(ice_fdir_ip4_tun_pkt), ice_fdir_ip4_tun_pkt,
2029 ICE_FLTR_PTYPE_FRAG_IPV4,
2030 sizeof(ice_fdir_ipv4_frag_pkt), ice_fdir_ipv4_frag_pkt,
2031 sizeof(ice_fdir_ipv4_frag_pkt), ice_fdir_ipv4_frag_pkt,
2034 ICE_FLTR_PTYPE_FRAG_IPV6,
2035 sizeof(ice_fdir_ipv6_frag_pkt), ice_fdir_ipv6_frag_pkt,
2036 sizeof(ice_fdir_ipv6_frag_pkt), ice_fdir_ipv6_frag_pkt,
2039 ICE_FLTR_PTYPE_NONF_IPV4_GTPU,
2040 sizeof(ice_fdir_ipv4_gtpu4_pkt),
2041 ice_fdir_ipv4_gtpu4_pkt,
2042 sizeof(ice_fdir_ipv4_gtpu4_pkt),
2043 ice_fdir_ipv4_gtpu4_pkt,
2046 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH,
2047 sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2048 ice_fdir_ipv4_gtpu4_eh_pkt,
2049 sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2050 ice_fdir_ipv4_gtpu4_eh_pkt,
2053 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW,
2054 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2055 ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2056 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2057 ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2060 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP,
2061 sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2062 ice_fdir_ipv4_gtpu4_eh_up_pkt,
2063 sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2064 ice_fdir_ipv4_gtpu4_eh_up_pkt,
2066 /* IPV4 GRE IPV4 GTPU */
2068 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU,
2069 sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2070 ice_fdir_ipv4_gtpu4_gre4_pkt,
2071 sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2072 ice_fdir_ipv4_gtpu4_gre4_pkt,
2074 /* IPV4 GRE IPV4 GTPU EH */
2076 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH,
2077 sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2078 ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2079 sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2080 ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2082 /* IPV4 GRE IPV4 GTPU DW */
2084 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW,
2085 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
2086 ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
2087 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
2088 ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
2090 /* IPV4 GRE IPV4 GTPU UP */
2092 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP,
2093 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
2094 ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
2095 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
2096 ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
2098 /* IPV6 GRE IPV4 GTPU */
2100 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU,
2101 sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2102 ice_fdir_ipv4_gtpu4_gre6_pkt,
2103 sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2104 ice_fdir_ipv4_gtpu4_gre6_pkt,
2106 /* IPV6 GRE IPV4 GTPU EH */
2108 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH,
2109 sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2110 ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2111 sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2112 ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2114 /* IPV6 GRE IPV4 GTPU DW */
2116 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW,
2117 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
2118 ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
2119 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
2120 ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
2122 /* IPV6 GRE IPV4 GTPU UP */
2124 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP,
2125 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
2126 ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
2127 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
2128 ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
2131 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4,
2132 sizeof(ice_fdir_ipv4_gtpu4_pkt),
2133 ice_fdir_ipv4_gtpu4_pkt,
2134 sizeof(ice_fdir_ipv4_gtpu4_pkt),
2135 ice_fdir_ipv4_gtpu4_pkt,
2138 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_UDP,
2139 sizeof(ice_fdir_udp4_gtpu4_pkt),
2140 ice_fdir_udp4_gtpu4_pkt,
2141 sizeof(ice_fdir_udp4_gtpu4_pkt),
2142 ice_fdir_udp4_gtpu4_pkt,
2145 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP,
2146 sizeof(ice_fdir_tcp4_gtpu4_pkt),
2147 ice_fdir_tcp4_gtpu4_pkt,
2148 sizeof(ice_fdir_tcp4_gtpu4_pkt),
2149 ice_fdir_tcp4_gtpu4_pkt,
2152 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6,
2153 sizeof(ice_fdir_ipv6_gtpu4_pkt),
2154 ice_fdir_ipv6_gtpu4_pkt,
2155 sizeof(ice_fdir_ipv6_gtpu4_pkt),
2156 ice_fdir_ipv6_gtpu4_pkt,
2159 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_UDP,
2160 sizeof(ice_fdir_udp6_gtpu4_pkt),
2161 ice_fdir_udp6_gtpu4_pkt,
2162 sizeof(ice_fdir_udp6_gtpu4_pkt),
2163 ice_fdir_udp6_gtpu4_pkt,
2166 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_TCP,
2167 sizeof(ice_fdir_tcp6_gtpu4_pkt),
2168 ice_fdir_tcp6_gtpu4_pkt,
2169 sizeof(ice_fdir_tcp6_gtpu4_pkt),
2170 ice_fdir_tcp6_gtpu4_pkt,
2173 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4,
2174 sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2175 ice_fdir_ipv4_gtpu4_eh_pkt,
2176 sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2177 ice_fdir_ipv4_gtpu4_eh_pkt,
2180 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_UDP,
2181 sizeof(ice_fdir_udp4_gtpu4_eh_pkt),
2182 ice_fdir_udp4_gtpu4_eh_pkt,
2183 sizeof(ice_fdir_udp4_gtpu4_eh_pkt),
2184 ice_fdir_udp4_gtpu4_eh_pkt,
2187 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_TCP,
2188 sizeof(ice_fdir_tcp4_gtpu4_eh_pkt),
2189 ice_fdir_tcp4_gtpu4_eh_pkt,
2190 sizeof(ice_fdir_tcp4_gtpu4_eh_pkt),
2191 ice_fdir_tcp4_gtpu4_eh_pkt,
2194 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6,
2195 sizeof(ice_fdir_ipv6_gtpu4_eh_pkt),
2196 ice_fdir_ipv6_gtpu4_eh_pkt,
2197 sizeof(ice_fdir_ipv6_gtpu4_eh_pkt),
2198 ice_fdir_ipv6_gtpu4_eh_pkt,
2201 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_UDP,
2202 sizeof(ice_fdir_udp6_gtpu4_eh_pkt),
2203 ice_fdir_udp6_gtpu4_eh_pkt,
2204 sizeof(ice_fdir_udp6_gtpu4_eh_pkt),
2205 ice_fdir_udp6_gtpu4_eh_pkt,
2208 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_TCP,
2209 sizeof(ice_fdir_tcp6_gtpu4_eh_pkt),
2210 ice_fdir_tcp6_gtpu4_eh_pkt,
2211 sizeof(ice_fdir_tcp6_gtpu4_eh_pkt),
2212 ice_fdir_tcp6_gtpu4_eh_pkt,
2215 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4,
2216 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2217 ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2218 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2219 ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2222 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_UDP,
2223 sizeof(ice_fdir_udp4_gtpu4_eh_dw_pkt),
2224 ice_fdir_udp4_gtpu4_eh_dw_pkt,
2225 sizeof(ice_fdir_udp4_gtpu4_eh_dw_pkt),
2226 ice_fdir_udp4_gtpu4_eh_dw_pkt,
2229 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_TCP,
2230 sizeof(ice_fdir_tcp4_gtpu4_eh_dw_pkt),
2231 ice_fdir_tcp4_gtpu4_eh_dw_pkt,
2232 sizeof(ice_fdir_tcp4_gtpu4_eh_dw_pkt),
2233 ice_fdir_tcp4_gtpu4_eh_dw_pkt,
2236 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6,
2237 sizeof(ice_fdir_ipv6_gtpu4_eh_dw_pkt),
2238 ice_fdir_ipv6_gtpu4_eh_dw_pkt,
2239 sizeof(ice_fdir_ipv6_gtpu4_eh_dw_pkt),
2240 ice_fdir_ipv6_gtpu4_eh_dw_pkt,
2243 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_UDP,
2244 sizeof(ice_fdir_udp6_gtpu4_eh_dw_pkt),
2245 ice_fdir_udp6_gtpu4_eh_dw_pkt,
2246 sizeof(ice_fdir_udp6_gtpu4_eh_dw_pkt),
2247 ice_fdir_udp6_gtpu4_eh_dw_pkt,
2250 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_TCP,
2251 sizeof(ice_fdir_tcp6_gtpu4_eh_dw_pkt),
2252 ice_fdir_tcp6_gtpu4_eh_dw_pkt,
2253 sizeof(ice_fdir_tcp6_gtpu4_eh_dw_pkt),
2254 ice_fdir_tcp6_gtpu4_eh_dw_pkt,
2257 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4,
2258 sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2259 ice_fdir_ipv4_gtpu4_eh_up_pkt,
2260 sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2261 ice_fdir_ipv4_gtpu4_eh_up_pkt,
2264 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_UDP,
2265 sizeof(ice_fdir_udp4_gtpu4_eh_up_pkt),
2266 ice_fdir_udp4_gtpu4_eh_up_pkt,
2267 sizeof(ice_fdir_udp4_gtpu4_eh_up_pkt),
2268 ice_fdir_udp4_gtpu4_eh_up_pkt,
2271 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_TCP,
2272 sizeof(ice_fdir_tcp4_gtpu4_eh_up_pkt),
2273 ice_fdir_tcp4_gtpu4_eh_up_pkt,
2274 sizeof(ice_fdir_tcp4_gtpu4_eh_up_pkt),
2275 ice_fdir_tcp4_gtpu4_eh_up_pkt,
2278 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6,
2279 sizeof(ice_fdir_ipv6_gtpu4_eh_up_pkt),
2280 ice_fdir_ipv6_gtpu4_eh_up_pkt,
2281 sizeof(ice_fdir_ipv6_gtpu4_eh_up_pkt),
2282 ice_fdir_ipv6_gtpu4_eh_up_pkt,
2285 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_UDP,
2286 sizeof(ice_fdir_udp6_gtpu4_eh_up_pkt),
2287 ice_fdir_udp6_gtpu4_eh_up_pkt,
2288 sizeof(ice_fdir_udp6_gtpu4_eh_up_pkt),
2289 ice_fdir_udp6_gtpu4_eh_up_pkt,
2292 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_TCP,
2293 sizeof(ice_fdir_tcp6_gtpu4_eh_up_pkt),
2294 ice_fdir_tcp6_gtpu4_eh_up_pkt,
2295 sizeof(ice_fdir_tcp6_gtpu4_eh_up_pkt),
2296 ice_fdir_tcp6_gtpu4_eh_up_pkt,
2299 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_ICMP,
2300 sizeof(ice_fdir_icmp4_gtpu4_pkt),
2301 ice_fdir_icmp4_gtpu4_pkt,
2302 sizeof(ice_fdir_icmp4_gtpu4_pkt),
2303 ice_fdir_icmp4_gtpu4_pkt,
2306 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_OTHER,
2307 sizeof(ice_fdir_ipv4_gtpu4_pkt),
2308 ice_fdir_ipv4_gtpu4_pkt,
2309 sizeof(ice_fdir_ipv4_gtpu4_pkt),
2310 ice_fdir_ipv4_gtpu4_pkt,
2313 ICE_FLTR_PTYPE_NONF_IPV6_GTPU,
2314 sizeof(ice_fdir_ipv6_gtpu6_pkt),
2315 ice_fdir_ipv6_gtpu6_pkt,
2316 sizeof(ice_fdir_ipv6_gtpu6_pkt),
2317 ice_fdir_ipv6_gtpu6_pkt,
2320 ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH,
2321 sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2322 ice_fdir_ipv6_gtpu6_eh_pkt,
2323 sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2324 ice_fdir_ipv6_gtpu6_eh_pkt,
2327 ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_DW,
2328 sizeof(ice_fdir_ipv6_gtpu6_eh_dw_pkt),
2329 ice_fdir_ipv6_gtpu6_eh_dw_pkt,
2330 sizeof(ice_fdir_ipv6_gtpu6_eh_dw_pkt),
2331 ice_fdir_ipv6_gtpu6_eh_dw_pkt,
2334 ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_UP,
2335 sizeof(ice_fdir_ipv6_gtpu6_eh_up_pkt),
2336 ice_fdir_ipv6_gtpu6_eh_up_pkt,
2337 sizeof(ice_fdir_ipv6_gtpu6_eh_up_pkt),
2338 ice_fdir_ipv6_gtpu6_eh_up_pkt,
2341 ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER,
2342 sizeof(ice_fdir_ipv6_gtpu6_pkt),
2343 ice_fdir_ipv6_gtpu6_pkt,
2344 sizeof(ice_fdir_ipv6_gtpu6_pkt),
2345 ice_fdir_ipv6_gtpu6_pkt,
2348 ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_OTHER,
2349 sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2350 ice_fdir_ipv4_gtpu4_eh_pkt,
2351 sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2352 ice_fdir_ipv4_gtpu4_eh_pkt,
2355 ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_IPV6_OTHER,
2356 sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2357 ice_fdir_ipv6_gtpu6_eh_pkt,
2358 sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2359 ice_fdir_ipv6_gtpu6_eh_pkt,
2362 ICE_FLTR_PTYPE_NONF_IPV4_L2TPV3,
2363 sizeof(ice_fdir_ipv4_l2tpv3_pkt), ice_fdir_ipv4_l2tpv3_pkt,
2364 sizeof(ice_fdir_ipv4_l2tpv3_pkt), ice_fdir_ipv4_l2tpv3_pkt,
2367 ICE_FLTR_PTYPE_NONF_IPV6_L2TPV3,
2368 sizeof(ice_fdir_ipv6_l2tpv3_pkt), ice_fdir_ipv6_l2tpv3_pkt,
2369 sizeof(ice_fdir_ipv6_l2tpv3_pkt), ice_fdir_ipv6_l2tpv3_pkt,
2372 ICE_FLTR_PTYPE_NONF_IPV4_ESP,
2373 sizeof(ice_fdir_ipv4_esp_pkt), ice_fdir_ipv4_esp_pkt,
2374 sizeof(ice_fdir_ipv4_esp_pkt), ice_fdir_ipv4_esp_pkt,
2377 ICE_FLTR_PTYPE_NONF_IPV6_ESP,
2378 sizeof(ice_fdir_ipv6_esp_pkt), ice_fdir_ipv6_esp_pkt,
2379 sizeof(ice_fdir_ipv6_esp_pkt), ice_fdir_ipv6_esp_pkt,
2382 ICE_FLTR_PTYPE_NONF_IPV4_AH,
2383 sizeof(ice_fdir_ipv4_ah_pkt), ice_fdir_ipv4_ah_pkt,
2384 sizeof(ice_fdir_ipv4_ah_pkt), ice_fdir_ipv4_ah_pkt,
2387 ICE_FLTR_PTYPE_NONF_IPV6_AH,
2388 sizeof(ice_fdir_ipv6_ah_pkt), ice_fdir_ipv6_ah_pkt,
2389 sizeof(ice_fdir_ipv6_ah_pkt), ice_fdir_ipv6_ah_pkt,
2392 ICE_FLTR_PTYPE_NONF_IPV4_NAT_T_ESP,
2393 sizeof(ice_fdir_ipv4_nat_t_esp_pkt),
2394 ice_fdir_ipv4_nat_t_esp_pkt,
2395 sizeof(ice_fdir_ipv4_nat_t_esp_pkt),
2396 ice_fdir_ipv4_nat_t_esp_pkt,
2399 ICE_FLTR_PTYPE_NONF_IPV6_NAT_T_ESP,
2400 sizeof(ice_fdir_ipv6_nat_t_esp_pkt),
2401 ice_fdir_ipv6_nat_t_esp_pkt,
2402 sizeof(ice_fdir_ipv6_nat_t_esp_pkt),
2403 ice_fdir_ipv6_nat_t_esp_pkt,
2406 ICE_FLTR_PTYPE_NONF_IPV4_PFCP_NODE,
2407 sizeof(ice_fdir_ipv4_pfcp_node_pkt),
2408 ice_fdir_ipv4_pfcp_node_pkt,
2409 sizeof(ice_fdir_ipv4_pfcp_node_pkt),
2410 ice_fdir_ipv4_pfcp_node_pkt,
2413 ICE_FLTR_PTYPE_NONF_IPV4_PFCP_SESSION,
2414 sizeof(ice_fdir_ipv4_pfcp_session_pkt),
2415 ice_fdir_ipv4_pfcp_session_pkt,
2416 sizeof(ice_fdir_ipv4_pfcp_session_pkt),
2417 ice_fdir_ipv4_pfcp_session_pkt,
2420 ICE_FLTR_PTYPE_NONF_IPV6_PFCP_NODE,
2421 sizeof(ice_fdir_ipv6_pfcp_node_pkt),
2422 ice_fdir_ipv6_pfcp_node_pkt,
2423 sizeof(ice_fdir_ipv6_pfcp_node_pkt),
2424 ice_fdir_ipv6_pfcp_node_pkt,
2427 ICE_FLTR_PTYPE_NONF_IPV6_PFCP_SESSION,
2428 sizeof(ice_fdir_ipv6_pfcp_session_pkt),
2429 ice_fdir_ipv6_pfcp_session_pkt,
2430 sizeof(ice_fdir_ipv6_pfcp_session_pkt),
2431 ice_fdir_ipv6_pfcp_session_pkt,
2434 ICE_FLTR_PTYPE_NON_IP_L2,
2435 sizeof(ice_fdir_non_ip_l2_pkt), ice_fdir_non_ip_l2_pkt,
2436 sizeof(ice_fdir_non_ip_l2_pkt), ice_fdir_non_ip_l2_pkt,
2439 ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN,
2440 sizeof(ice_fdir_udp4_vxlan_pkt), ice_fdir_udp4_vxlan_pkt,
2441 sizeof(ice_fdir_udp4_vxlan_pkt), ice_fdir_udp4_vxlan_pkt,
2444 ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_UDP,
2445 sizeof(ice_fdir_udp4_tun_pkt), ice_fdir_udp4_tun_pkt,
2446 sizeof(ice_fdir_udp4_tun_pkt), ice_fdir_udp4_tun_pkt,
2449 ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_TCP,
2450 sizeof(ice_fdir_tcp4_tun_pkt), ice_fdir_tcp4_tun_pkt,
2451 sizeof(ice_fdir_tcp4_tun_pkt), ice_fdir_tcp4_tun_pkt,
2454 ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_SCTP,
2455 sizeof(ice_fdir_sctp4_tun_pkt), ice_fdir_sctp4_tun_pkt,
2456 sizeof(ice_fdir_sctp4_tun_pkt), ice_fdir_sctp4_tun_pkt,
2459 ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_OTHER,
2460 sizeof(ice_fdir_ip4_tun_pkt), ice_fdir_ip4_tun_pkt,
2461 sizeof(ice_fdir_ip4_tun_pkt), ice_fdir_ip4_tun_pkt,
2464 ICE_FLTR_PTYPE_NONF_ECPRI_TP0,
2465 sizeof(ice_fdir_ecpri_tp0_pkt), ice_fdir_ecpri_tp0_pkt,
2466 sizeof(ice_fdir_ecpri_tp0_pkt), ice_fdir_ecpri_tp0_pkt,
2469 ICE_FLTR_PTYPE_NONF_IPV4_UDP_ECPRI_TP0,
2470 sizeof(ice_fdir_ipv4_udp_ecpri_tp0_pkt),
2471 ice_fdir_ipv4_udp_ecpri_tp0_pkt,
2472 sizeof(ice_fdir_ipv4_udp_ecpri_tp0_pkt),
2473 ice_fdir_ipv4_udp_ecpri_tp0_pkt,
2475 /* IPV4 GRE INNER IPV4 */
2477 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4,
2478 sizeof(ice_fdir_ipv4_gre4_pkt),
2479 ice_fdir_ipv4_gre4_pkt,
2480 sizeof(ice_fdir_ipv4_gre4_pkt),
2481 ice_fdir_ipv4_gre4_pkt,
2484 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_UDP,
2485 sizeof(ice_fdir_udp4_gre4_pkt),
2486 ice_fdir_udp4_gre4_pkt,
2487 sizeof(ice_fdir_udp4_gre4_pkt),
2488 ice_fdir_udp4_gre4_pkt,
2491 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_TCP,
2492 sizeof(ice_fdir_tcp4_gre4_pkt),
2493 ice_fdir_tcp4_gre4_pkt,
2494 sizeof(ice_fdir_tcp4_gre4_pkt),
2495 ice_fdir_tcp4_gre4_pkt,
2497 /* IPV4 GRE INNER IPV6 */
2499 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6,
2500 sizeof(ice_fdir_ipv6_gre4_pkt),
2501 ice_fdir_ipv6_gre4_pkt,
2502 sizeof(ice_fdir_ipv6_gre4_pkt),
2503 ice_fdir_ipv6_gre4_pkt,
2506 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_UDP,
2507 sizeof(ice_fdir_udp6_gre4_pkt),
2508 ice_fdir_udp6_gre4_pkt,
2509 sizeof(ice_fdir_udp6_gre4_pkt),
2510 ice_fdir_udp6_gre4_pkt,
2513 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_TCP,
2514 sizeof(ice_fdir_tcp6_gre4_pkt),
2515 ice_fdir_tcp6_gre4_pkt,
2516 sizeof(ice_fdir_tcp6_gre4_pkt),
2517 ice_fdir_tcp6_gre4_pkt,
2519 /* IPV6 GRE INNER IPV4 */
2521 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4,
2522 sizeof(ice_fdir_ipv4_gre6_pkt),
2523 ice_fdir_ipv4_gre6_pkt,
2524 sizeof(ice_fdir_ipv4_gre6_pkt),
2525 ice_fdir_ipv4_gre6_pkt,
2528 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_UDP,
2529 sizeof(ice_fdir_udp4_gre6_pkt),
2530 ice_fdir_udp4_gre6_pkt,
2531 sizeof(ice_fdir_udp4_gre6_pkt),
2532 ice_fdir_udp4_gre6_pkt,
2535 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_TCP,
2536 sizeof(ice_fdir_tcp4_gre6_pkt),
2537 ice_fdir_tcp4_gre6_pkt,
2538 sizeof(ice_fdir_tcp4_gre6_pkt),
2539 ice_fdir_tcp4_gre6_pkt,
2541 /* IPV4 GRE INNER IPV6 */
2543 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6,
2544 sizeof(ice_fdir_ipv6_gre6_pkt),
2545 ice_fdir_ipv6_gre6_pkt,
2546 sizeof(ice_fdir_ipv6_gre6_pkt),
2547 ice_fdir_ipv6_gre6_pkt,
2550 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_UDP,
2551 sizeof(ice_fdir_udp6_gre6_pkt),
2552 ice_fdir_udp6_gre6_pkt,
2553 sizeof(ice_fdir_udp6_gre6_pkt),
2554 ice_fdir_udp6_gre6_pkt,
2557 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_TCP,
2558 sizeof(ice_fdir_tcp6_gre6_pkt),
2559 ice_fdir_tcp6_gre6_pkt,
2560 sizeof(ice_fdir_tcp6_gre6_pkt),
2561 ice_fdir_tcp6_gre6_pkt,
2563 /* IPV4 GRE IPV4 GTPU IPV4 */
2565 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4,
2566 sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2567 ice_fdir_ipv4_gtpu4_gre4_pkt,
2568 sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2569 ice_fdir_ipv4_gtpu4_gre4_pkt,
2572 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_UDP,
2573 sizeof(ice_fdir_udp4_gtpu4_gre4_pkt),
2574 ice_fdir_udp4_gtpu4_gre4_pkt,
2575 sizeof(ice_fdir_udp4_gtpu4_gre4_pkt),
2576 ice_fdir_udp4_gtpu4_gre4_pkt,
2579 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_TCP,
2580 sizeof(ice_fdir_tcp4_gtpu4_gre4_pkt),
2581 ice_fdir_tcp4_gtpu4_gre4_pkt,
2582 sizeof(ice_fdir_tcp4_gtpu4_gre4_pkt),
2583 ice_fdir_tcp4_gtpu4_gre4_pkt,
2585 /* IPV4 GRE IPV4 GTPU IPV6 */
2587 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6,
2588 sizeof(ice_fdir_ipv6_gtpu4_gre4_pkt),
2589 ice_fdir_ipv6_gtpu4_gre4_pkt,
2590 sizeof(ice_fdir_ipv6_gtpu4_gre4_pkt),
2591 ice_fdir_ipv6_gtpu4_gre4_pkt,
2594 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_UDP,
2595 sizeof(ice_fdir_udp6_gtpu4_gre4_pkt),
2596 ice_fdir_udp6_gtpu4_gre4_pkt,
2597 sizeof(ice_fdir_udp6_gtpu4_gre4_pkt),
2598 ice_fdir_udp6_gtpu4_gre4_pkt,
2601 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_TCP,
2602 sizeof(ice_fdir_tcp6_gtpu4_gre4_pkt),
2603 ice_fdir_tcp6_gtpu4_gre4_pkt,
2604 sizeof(ice_fdir_tcp6_gtpu4_gre4_pkt),
2605 ice_fdir_tcp6_gtpu4_gre4_pkt,
2607 /* IPV6 GRE IPV4 GTPU IPV4 */
2609 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4,
2610 sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2611 ice_fdir_ipv4_gtpu4_gre6_pkt,
2612 sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2613 ice_fdir_ipv4_gtpu4_gre6_pkt,
2616 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_UDP,
2617 sizeof(ice_fdir_udp4_gtpu4_gre6_pkt),
2618 ice_fdir_udp4_gtpu4_gre6_pkt,
2619 sizeof(ice_fdir_udp4_gtpu4_gre6_pkt),
2620 ice_fdir_udp4_gtpu4_gre6_pkt,
2623 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_TCP,
2624 sizeof(ice_fdir_tcp4_gtpu4_gre6_pkt),
2625 ice_fdir_tcp4_gtpu4_gre6_pkt,
2626 sizeof(ice_fdir_tcp4_gtpu4_gre6_pkt),
2627 ice_fdir_tcp4_gtpu4_gre6_pkt,
2629 /* IPV6 GRE IPV4 GTPU IPV6 */
2631 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6,
2632 sizeof(ice_fdir_ipv6_gtpu4_gre6_pkt),
2633 ice_fdir_ipv6_gtpu4_gre6_pkt,
2634 sizeof(ice_fdir_ipv6_gtpu4_gre6_pkt),
2635 ice_fdir_ipv6_gtpu4_gre6_pkt,
2638 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_UDP,
2639 sizeof(ice_fdir_udp6_gtpu4_gre6_pkt),
2640 ice_fdir_udp6_gtpu4_gre6_pkt,
2641 sizeof(ice_fdir_udp6_gtpu4_gre6_pkt),
2642 ice_fdir_udp6_gtpu4_gre6_pkt,
2645 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_TCP,
2646 sizeof(ice_fdir_tcp6_gtpu4_gre6_pkt),
2647 ice_fdir_tcp6_gtpu4_gre6_pkt,
2648 sizeof(ice_fdir_tcp6_gtpu4_gre6_pkt),
2649 ice_fdir_tcp6_gtpu4_gre6_pkt,
2651 /* IPV4 GRE IPV4 GTPU EH IPV4 */
2653 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4,
2654 sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2655 ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2656 sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2657 ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2660 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP,
2661 sizeof(ice_fdir_udp4_gtpu4_eh_gre4_pkt),
2662 ice_fdir_udp4_gtpu4_eh_gre4_pkt,
2663 sizeof(ice_fdir_udp4_gtpu4_eh_gre4_pkt),
2664 ice_fdir_udp4_gtpu4_eh_gre4_pkt,
2667 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP,
2668 sizeof(ice_fdir_tcp4_gtpu4_eh_gre4_pkt),
2669 ice_fdir_tcp4_gtpu4_eh_gre4_pkt,
2670 sizeof(ice_fdir_tcp4_gtpu4_eh_gre4_pkt),
2671 ice_fdir_tcp4_gtpu4_eh_gre4_pkt,
2673 /* IPV4 GRE IPV4 GTPU EH IPV6 */
2675 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6,
2676 sizeof(ice_fdir_ipv6_gtpu4_eh_gre4_pkt),
2677 ice_fdir_ipv6_gtpu4_eh_gre4_pkt,
2678 sizeof(ice_fdir_ipv6_gtpu4_eh_gre4_pkt),
2679 ice_fdir_ipv6_gtpu4_eh_gre4_pkt,
2682 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_UDP,
2683 sizeof(ice_fdir_udp6_gtpu4_eh_gre4_pkt),
2684 ice_fdir_udp6_gtpu4_eh_gre4_pkt,
2685 sizeof(ice_fdir_udp6_gtpu4_eh_gre4_pkt),
2686 ice_fdir_udp6_gtpu4_eh_gre4_pkt,
2689 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_TCP,
2690 sizeof(ice_fdir_tcp6_gtpu4_eh_gre4_pkt),
2691 ice_fdir_tcp6_gtpu4_eh_gre4_pkt,
2692 sizeof(ice_fdir_tcp6_gtpu4_eh_gre4_pkt),
2693 ice_fdir_tcp6_gtpu4_eh_gre4_pkt,
2695 /* IPV6 GRE IPV4 GTPU EH IPV4 */
2697 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4,
2698 sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2699 ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2700 sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2701 ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2704 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_UDP,
2705 sizeof(ice_fdir_udp4_gtpu4_eh_gre6_pkt),
2706 ice_fdir_udp4_gtpu4_eh_gre6_pkt,
2707 sizeof(ice_fdir_udp4_gtpu4_eh_gre6_pkt),
2708 ice_fdir_udp4_gtpu4_eh_gre6_pkt,
2711 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_TCP,
2712 sizeof(ice_fdir_tcp4_gtpu4_eh_gre6_pkt),
2713 ice_fdir_tcp4_gtpu4_eh_gre6_pkt,
2714 sizeof(ice_fdir_tcp4_gtpu4_eh_gre6_pkt),
2715 ice_fdir_tcp4_gtpu4_eh_gre6_pkt,
2717 /* IPV6 GRE IPV4 GTPU EH IPV6 */
2719 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6,
2720 sizeof(ice_fdir_ipv6_gtpu4_eh_gre6_pkt),
2721 ice_fdir_ipv6_gtpu4_eh_gre6_pkt,
2722 sizeof(ice_fdir_ipv6_gtpu4_eh_gre6_pkt),
2723 ice_fdir_ipv6_gtpu4_eh_gre6_pkt,
2726 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_UDP,
2727 sizeof(ice_fdir_udp6_gtpu4_eh_gre6_pkt),
2728 ice_fdir_udp6_gtpu4_eh_gre6_pkt,
2729 sizeof(ice_fdir_udp6_gtpu4_eh_gre6_pkt),
2730 ice_fdir_udp6_gtpu4_eh_gre6_pkt,
2733 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_TCP,
2734 sizeof(ice_fdir_tcp6_gtpu4_eh_gre6_pkt),
2735 ice_fdir_tcp6_gtpu4_eh_gre6_pkt,
2736 sizeof(ice_fdir_tcp6_gtpu4_eh_gre6_pkt),
2737 ice_fdir_tcp6_gtpu4_eh_gre6_pkt,
2739 /* IPV4 GRE IPV4 GTPU DW IPV4 */
2741 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4,
2742 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
2743 ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
2744 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
2745 ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
2748 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_UDP,
2749 sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt),
2750 ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt,
2751 sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt),
2752 ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt,
2755 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_TCP,
2756 sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt),
2757 ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt,
2758 sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt),
2759 ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt,
2761 /* IPV4 GRE IPV4 GTPU DW IPV6 */
2763 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6,
2764 sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt),
2765 ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt,
2766 sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt),
2767 ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt,
2770 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_UDP,
2771 sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt),
2772 ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt,
2773 sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt),
2774 ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt,
2777 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_TCP,
2778 sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt),
2779 ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt,
2780 sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt),
2781 ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt,
2783 /* IPV6 GRE IPV4 GTPU DW IPV4 */
2785 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4,
2786 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
2787 ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
2788 sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
2789 ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
2792 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_UDP,
2793 sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt),
2794 ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt,
2795 sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt),
2796 ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt,
2799 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_TCP,
2800 sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt),
2801 ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt,
2802 sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt),
2803 ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt,
2805 /* IPV6 GRE IPV4 GTPU DW IPV6 */
2807 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6,
2808 sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt),
2809 ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt,
2810 sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt),
2811 ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt,
2814 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_UDP,
2815 sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt),
2816 ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt,
2817 sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt),
2818 ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt,
2821 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_TCP,
2822 sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt),
2823 ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt,
2824 sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt),
2825 ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt,
2827 /* IPV4 GRE IPV4 GTPU UP IPV4 */
2829 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4,
2830 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
2831 ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
2832 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
2833 ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
2836 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_UDP,
2837 sizeof(ice_fdir_udp4_gtpu4_eh_up_gre4_pkt),
2838 ice_fdir_udp4_gtpu4_eh_up_gre4_pkt,
2839 sizeof(ice_fdir_udp4_gtpu4_eh_up_gre4_pkt),
2840 ice_fdir_udp4_gtpu4_eh_up_gre4_pkt,
2843 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_TCP,
2844 sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt),
2845 ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt,
2846 sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt),
2847 ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt,
2849 /* IPV4 GRE IPV4 GTPU UP IPV6 */
2851 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6,
2852 sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt),
2853 ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt,
2854 sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt),
2855 ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt,
2858 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_UDP,
2859 sizeof(ice_fdir_udp6_gtpu4_eh_up_gre4_pkt),
2860 ice_fdir_udp6_gtpu4_eh_up_gre4_pkt,
2861 sizeof(ice_fdir_udp6_gtpu4_eh_up_gre4_pkt),
2862 ice_fdir_udp6_gtpu4_eh_up_gre4_pkt,
2865 ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_TCP,
2866 sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt),
2867 ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt,
2868 sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt),
2869 ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt,
2871 /* IPV6 GRE IPV4 GTPU UP IPV4 */
2873 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4,
2874 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
2875 ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
2876 sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
2877 ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
2880 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_UDP,
2881 sizeof(ice_fdir_udp4_gtpu4_eh_up_gre6_pkt),
2882 ice_fdir_udp4_gtpu4_eh_up_gre6_pkt,
2883 sizeof(ice_fdir_udp4_gtpu4_eh_up_gre6_pkt),
2884 ice_fdir_udp4_gtpu4_eh_up_gre6_pkt,
2887 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_TCP,
2888 sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt),
2889 ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt,
2890 sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt),
2891 ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt,
2893 /* IPV6 GRE IPV4 GTPU UP IPV6 */
2895 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6,
2896 sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt),
2897 ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt,
2898 sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt),
2899 ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt,
2902 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_UDP,
2903 sizeof(ice_fdir_udp6_gtpu4_eh_up_gre6_pkt),
2904 ice_fdir_udp6_gtpu4_eh_up_gre6_pkt,
2905 sizeof(ice_fdir_udp6_gtpu4_eh_up_gre6_pkt),
2906 ice_fdir_udp6_gtpu4_eh_up_gre6_pkt,
2909 ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_TCP,
2910 sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt),
2911 ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt,
2912 sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt),
2913 ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt,
2916 ICE_FLTR_PTYPE_NONF_IPV6_TCP,
2917 sizeof(ice_fdir_tcpv6_pkt), ice_fdir_tcpv6_pkt,
2918 sizeof(ice_fdir_tcp6_tun_pkt), ice_fdir_tcp6_tun_pkt,
2921 ICE_FLTR_PTYPE_NONF_IPV6_UDP,
2922 sizeof(ice_fdir_udpv6_pkt), ice_fdir_udpv6_pkt,
2923 sizeof(ice_fdir_udp6_tun_pkt), ice_fdir_udp6_tun_pkt,
2926 ICE_FLTR_PTYPE_NONF_IPV6_SCTP,
2927 sizeof(ice_fdir_sctpv6_pkt), ice_fdir_sctpv6_pkt,
2928 sizeof(ice_fdir_sctp6_tun_pkt), ice_fdir_sctp6_tun_pkt,
2931 ICE_FLTR_PTYPE_NONF_IPV6_OTHER,
2932 sizeof(ice_fdir_ipv6_pkt), ice_fdir_ipv6_pkt,
2933 sizeof(ice_fdir_ip6_tun_pkt), ice_fdir_ip6_tun_pkt,
2937 #define ICE_FDIR_NUM_PKT ARRAY_SIZE(ice_fdir_pkt)
2940 * ice_set_dflt_val_fd_desc
2941 * @fd_fltr_ctx: pointer to fd filter descriptor
2943 static void ice_set_dflt_val_fd_desc(struct ice_fd_fltr_desc_ctx *fd_fltr_ctx)
2945 fd_fltr_ctx->comp_q = ICE_FXD_FLTR_QW0_COMP_Q_ZERO;
2946 fd_fltr_ctx->comp_report = ICE_FXD_FLTR_QW0_COMP_REPORT_SW_FAIL;
2947 fd_fltr_ctx->fd_space = ICE_FXD_FLTR_QW0_FD_SPACE_GUAR_BEST;
2948 fd_fltr_ctx->cnt_ena = ICE_FXD_FLTR_QW0_STAT_ENA_PKTS;
2949 fd_fltr_ctx->evict_ena = ICE_FXD_FLTR_QW0_EVICT_ENA_TRUE;
2950 fd_fltr_ctx->toq = ICE_FXD_FLTR_QW0_TO_Q_EQUALS_QINDEX;
2951 fd_fltr_ctx->toq_prio = ICE_FXD_FLTR_QW0_TO_Q_PRIO1;
2952 fd_fltr_ctx->dpu_recipe = ICE_FXD_FLTR_QW0_DPU_RECIPE_DFLT;
2953 fd_fltr_ctx->drop = ICE_FXD_FLTR_QW0_DROP_NO;
2954 fd_fltr_ctx->flex_prio = ICE_FXD_FLTR_QW0_FLEX_PRI_NONE;
2955 fd_fltr_ctx->flex_mdid = ICE_FXD_FLTR_QW0_FLEX_MDID0;
2956 fd_fltr_ctx->flex_val = ICE_FXD_FLTR_QW0_FLEX_VAL0;
2957 fd_fltr_ctx->dtype = ICE_TX_DESC_DTYPE_FLTR_PROG;
2958 fd_fltr_ctx->desc_prof_prio = ICE_FXD_FLTR_QW1_PROF_PRIO_ZERO;
2959 fd_fltr_ctx->desc_prof = ICE_FXD_FLTR_QW1_PROF_ZERO;
2960 fd_fltr_ctx->swap = ICE_FXD_FLTR_QW1_SWAP_SET;
2961 fd_fltr_ctx->fdid_prio = ICE_FXD_FLTR_QW1_FDID_PRI_ONE;
2962 fd_fltr_ctx->fdid_mdid = ICE_FXD_FLTR_QW1_FDID_MDID_FD;
2963 fd_fltr_ctx->fdid = ICE_FXD_FLTR_QW1_FDID_ZERO;
2967 * ice_set_fd_desc_val
2968 * @ctx: pointer to fd filter descriptor context
2969 * @fdir_desc: populated with fd filter descriptor values
2972 ice_set_fd_desc_val(struct ice_fd_fltr_desc_ctx *ctx,
2973 struct ice_fltr_desc *fdir_desc)
2977 /* prep QW0 of FD filter programming desc */
2978 qword = ((u64)ctx->qindex << ICE_FXD_FLTR_QW0_QINDEX_S) &
2979 ICE_FXD_FLTR_QW0_QINDEX_M;
2980 qword |= ((u64)ctx->comp_q << ICE_FXD_FLTR_QW0_COMP_Q_S) &
2981 ICE_FXD_FLTR_QW0_COMP_Q_M;
2982 qword |= ((u64)ctx->comp_report << ICE_FXD_FLTR_QW0_COMP_REPORT_S) &
2983 ICE_FXD_FLTR_QW0_COMP_REPORT_M;
2984 qword |= ((u64)ctx->fd_space << ICE_FXD_FLTR_QW0_FD_SPACE_S) &
2985 ICE_FXD_FLTR_QW0_FD_SPACE_M;
2986 qword |= ((u64)ctx->cnt_index << ICE_FXD_FLTR_QW0_STAT_CNT_S) &
2987 ICE_FXD_FLTR_QW0_STAT_CNT_M;
2988 qword |= ((u64)ctx->cnt_ena << ICE_FXD_FLTR_QW0_STAT_ENA_S) &
2989 ICE_FXD_FLTR_QW0_STAT_ENA_M;
2990 qword |= ((u64)ctx->evict_ena << ICE_FXD_FLTR_QW0_EVICT_ENA_S) &
2991 ICE_FXD_FLTR_QW0_EVICT_ENA_M;
2992 qword |= ((u64)ctx->toq << ICE_FXD_FLTR_QW0_TO_Q_S) &
2993 ICE_FXD_FLTR_QW0_TO_Q_M;
2994 qword |= ((u64)ctx->toq_prio << ICE_FXD_FLTR_QW0_TO_Q_PRI_S) &
2995 ICE_FXD_FLTR_QW0_TO_Q_PRI_M;
2996 qword |= ((u64)ctx->dpu_recipe << ICE_FXD_FLTR_QW0_DPU_RECIPE_S) &
2997 ICE_FXD_FLTR_QW0_DPU_RECIPE_M;
2998 qword |= ((u64)ctx->drop << ICE_FXD_FLTR_QW0_DROP_S) &
2999 ICE_FXD_FLTR_QW0_DROP_M;
3000 qword |= ((u64)ctx->flex_prio << ICE_FXD_FLTR_QW0_FLEX_PRI_S) &
3001 ICE_FXD_FLTR_QW0_FLEX_PRI_M;
3002 qword |= ((u64)ctx->flex_mdid << ICE_FXD_FLTR_QW0_FLEX_MDID_S) &
3003 ICE_FXD_FLTR_QW0_FLEX_MDID_M;
3004 qword |= ((u64)ctx->flex_val << ICE_FXD_FLTR_QW0_FLEX_VAL_S) &
3005 ICE_FXD_FLTR_QW0_FLEX_VAL_M;
3006 fdir_desc->qidx_compq_space_stat = CPU_TO_LE64(qword);
3008 /* prep QW1 of FD filter programming desc */
3009 qword = ((u64)ctx->dtype << ICE_FXD_FLTR_QW1_DTYPE_S) &
3010 ICE_FXD_FLTR_QW1_DTYPE_M;
3011 qword |= ((u64)ctx->pcmd << ICE_FXD_FLTR_QW1_PCMD_S) &
3012 ICE_FXD_FLTR_QW1_PCMD_M;
3013 qword |= ((u64)ctx->desc_prof_prio << ICE_FXD_FLTR_QW1_PROF_PRI_S) &
3014 ICE_FXD_FLTR_QW1_PROF_PRI_M;
3015 qword |= ((u64)ctx->desc_prof << ICE_FXD_FLTR_QW1_PROF_S) &
3016 ICE_FXD_FLTR_QW1_PROF_M;
3017 qword |= ((u64)ctx->fd_vsi << ICE_FXD_FLTR_QW1_FD_VSI_S) &
3018 ICE_FXD_FLTR_QW1_FD_VSI_M;
3019 qword |= ((u64)ctx->swap << ICE_FXD_FLTR_QW1_SWAP_S) &
3020 ICE_FXD_FLTR_QW1_SWAP_M;
3021 qword |= ((u64)ctx->fdid_prio << ICE_FXD_FLTR_QW1_FDID_PRI_S) &
3022 ICE_FXD_FLTR_QW1_FDID_PRI_M;
3023 qword |= ((u64)ctx->fdid_mdid << ICE_FXD_FLTR_QW1_FDID_MDID_S) &
3024 ICE_FXD_FLTR_QW1_FDID_MDID_M;
3025 qword |= ((u64)ctx->fdid << ICE_FXD_FLTR_QW1_FDID_S) &
3026 ICE_FXD_FLTR_QW1_FDID_M;
3027 fdir_desc->dtype_cmd_vsi_fdid = CPU_TO_LE64(qword);
3031 * ice_fdir_get_prgm_desc - set a fdir descriptor from a fdir filter struct
3032 * @hw: pointer to the hardware structure
3034 * @fdesc: filter descriptor
3035 * @add: if add is true, this is an add operation, false implies delete
3038 ice_fdir_get_prgm_desc(struct ice_hw *hw, struct ice_fdir_fltr *input,
3039 struct ice_fltr_desc *fdesc, bool add)
3041 struct ice_fd_fltr_desc_ctx fdir_fltr_ctx = { 0 };
3043 /* set default context info */
3044 ice_set_dflt_val_fd_desc(&fdir_fltr_ctx);
3046 /* change sideband filtering values */
3047 fdir_fltr_ctx.fdid = input->fltr_id;
3048 if (input->dest_ctl == ICE_FLTR_PRGM_DESC_DEST_DROP_PKT) {
3049 fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_YES;
3050 fdir_fltr_ctx.qindex = 0;
3051 } else if (input->dest_ctl ==
3052 ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER) {
3053 fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_NO;
3054 fdir_fltr_ctx.qindex = 0;
3056 if (input->dest_ctl ==
3057 ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_QGROUP)
3058 fdir_fltr_ctx.toq = input->q_region;
3059 fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_NO;
3060 fdir_fltr_ctx.qindex = input->q_index;
3062 fdir_fltr_ctx.cnt_ena = input->cnt_ena;
3063 fdir_fltr_ctx.cnt_index = input->cnt_index;
3064 fdir_fltr_ctx.fd_vsi = ice_get_hw_vsi_num(hw, input->dest_vsi);
3065 fdir_fltr_ctx.evict_ena = ICE_FXD_FLTR_QW0_EVICT_ENA_FALSE;
3066 if (input->dest_ctl == ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER)
3067 fdir_fltr_ctx.toq_prio = 0;
3069 fdir_fltr_ctx.toq_prio = 3;
3070 fdir_fltr_ctx.pcmd = add ? ICE_FXD_FLTR_QW1_PCMD_ADD :
3071 ICE_FXD_FLTR_QW1_PCMD_REMOVE;
3072 fdir_fltr_ctx.swap = ICE_FXD_FLTR_QW1_SWAP_NOT_SET;
3073 fdir_fltr_ctx.comp_q = ICE_FXD_FLTR_QW0_COMP_Q_ZERO;
3074 fdir_fltr_ctx.comp_report = input->comp_report;
3075 fdir_fltr_ctx.fdid_prio = input->fdid_prio;
3076 fdir_fltr_ctx.desc_prof = 1;
3077 fdir_fltr_ctx.desc_prof_prio = 3;
3078 ice_set_fd_desc_val(&fdir_fltr_ctx, fdesc);
3082 * ice_alloc_fd_res_cntr - obtain counter resource for FD type
3083 * @hw: pointer to the hardware structure
3084 * @cntr_id: returns counter index
3086 enum ice_status ice_alloc_fd_res_cntr(struct ice_hw *hw, u16 *cntr_id)
3088 return ice_alloc_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_COUNTER_BLOCK,
3089 ICE_AQC_RES_TYPE_FLAG_DEDICATED, 1, cntr_id);
3093 * ice_free_fd_res_cntr - Free counter resource for FD type
3094 * @hw: pointer to the hardware structure
3095 * @cntr_id: counter index to be freed
3097 enum ice_status ice_free_fd_res_cntr(struct ice_hw *hw, u16 cntr_id)
3099 return ice_free_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_COUNTER_BLOCK,
3100 ICE_AQC_RES_TYPE_FLAG_DEDICATED, 1, cntr_id);
3104 * ice_alloc_fd_guar_item - allocate resource for FD guaranteed entries
3105 * @hw: pointer to the hardware structure
3106 * @cntr_id: returns counter index
3107 * @num_fltr: number of filter entries to be allocated
3110 ice_alloc_fd_guar_item(struct ice_hw *hw, u16 *cntr_id, u16 num_fltr)
3112 return ice_alloc_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_GUARANTEED_ENTRIES,
3113 ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3118 * ice_free_fd_guar_item - Free flow director guaranteed entries
3119 * @hw: pointer to the hardware structure
3120 * @cntr_id: counter index that needs to be freed
3121 * @num_fltr: number of filters to be freed
3124 ice_free_fd_guar_item(struct ice_hw *hw, u16 cntr_id, u16 num_fltr)
3126 return ice_free_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_GUARANTEED_ENTRIES,
3127 ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3132 * ice_alloc_fd_shrd_item - allocate resource for flow director shared entries
3133 * @hw: pointer to the hardware structure
3134 * @cntr_id: returns counter index
3135 * @num_fltr: number of filter entries to be allocated
3138 ice_alloc_fd_shrd_item(struct ice_hw *hw, u16 *cntr_id, u16 num_fltr)
3140 return ice_alloc_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_SHARED_ENTRIES,
3141 ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3146 * ice_free_fd_shrd_item - Free flow director shared entries
3147 * @hw: pointer to the hardware structure
3148 * @cntr_id: counter index that needs to be freed
3149 * @num_fltr: number of filters to be freed
3152 ice_free_fd_shrd_item(struct ice_hw *hw, u16 cntr_id, u16 num_fltr)
3154 return ice_free_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_SHARED_ENTRIES,
3155 ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3160 * ice_get_fdir_cnt_all - get the number of Flow Director filters
3161 * @hw: hardware data structure
3163 * Returns the number of filters available on device
3165 int ice_get_fdir_cnt_all(struct ice_hw *hw)
3167 return hw->func_caps.fd_fltr_guar + hw->func_caps.fd_fltr_best_effort;
3171 * ice_pkt_insert_ipv6_addr - insert a be32 IPv6 address into a memory buffer.
3172 * @pkt: packet buffer
3173 * @offset: offset into buffer
3174 * @addr: IPv6 address to convert and insert into pkt at offset
3176 static void ice_pkt_insert_ipv6_addr(u8 *pkt, int offset, __be32 *addr)
3180 for (idx = 0; idx < ICE_IPV6_ADDR_LEN_AS_U32; idx++)
3181 ice_memcpy(pkt + offset + idx * sizeof(*addr), &addr[idx],
3182 sizeof(*addr), ICE_NONDMA_TO_NONDMA);
3186 * ice_pkt_insert_u6_qfi - insert a u6 value qfi into a memory buffer for gtpu
3187 * @pkt: packet buffer
3188 * @offset: offset into buffer
3189 * @data: 8 bit value to convert and insert into pkt at offset
3191 * This function is designed for inserting qfi (6 bits) for gtpu.
3193 static void ice_pkt_insert_u6_qfi(u8 *pkt, int offset, u8 data)
3197 ret = (data & 0x3F) + (*(pkt + offset) & 0xC0);
3198 ice_memcpy(pkt + offset, &ret, sizeof(ret), ICE_NONDMA_TO_NONDMA);
3202 * ice_pkt_insert_u8 - insert a u8 value into a memory buffer.
3203 * @pkt: packet buffer
3204 * @offset: offset into buffer
3205 * @data: 8 bit value to convert and insert into pkt at offset
3207 static void ice_pkt_insert_u8(u8 *pkt, int offset, u8 data)
3209 ice_memcpy(pkt + offset, &data, sizeof(data), ICE_NONDMA_TO_NONDMA);
3213 * ice_pkt_insert_u8_tc - insert a u8 value into a memory buffer for TC ipv6.
3214 * @pkt: packet buffer
3215 * @offset: offset into buffer
3216 * @data: 8 bit value to convert and insert into pkt at offset
3218 * This function is designed for inserting Traffic Class (TC) for IPv6,
3219 * since that TC is not aligned in number of bytes. Here we split it out
3220 * into two part and fill each byte with data copy from pkt, then insert
3221 * the two bytes data one by one.
3223 static void ice_pkt_insert_u8_tc(u8 *pkt, int offset, u8 data)
3227 high = (data >> 4) + (*(pkt + offset) & 0xF0);
3228 ice_memcpy(pkt + offset, &high, sizeof(high), ICE_NONDMA_TO_NONDMA);
3230 low = (*(pkt + offset + 1) & 0x0F) + ((data & 0x0F) << 4);
3231 ice_memcpy(pkt + offset + 1, &low, sizeof(low), ICE_NONDMA_TO_NONDMA);
3235 * ice_pkt_insert_u16 - insert a be16 value into a memory buffer.
3236 * @pkt: packet buffer
3237 * @offset: offset into buffer
3238 * @data: 16 bit value to convert and insert into pkt at offset
3240 static void ice_pkt_insert_u16(u8 *pkt, int offset, __be16 data)
3242 ice_memcpy(pkt + offset, &data, sizeof(data), ICE_NONDMA_TO_NONDMA);
3246 * ice_pkt_insert_u32 - insert a be32 value into a memory buffer.
3247 * @pkt: packet buffer
3248 * @offset: offset into buffer
3249 * @data: 32 bit value to convert and insert into pkt at offset
3251 static void ice_pkt_insert_u32(u8 *pkt, int offset, __be32 data)
3253 ice_memcpy(pkt + offset, &data, sizeof(data), ICE_NONDMA_TO_NONDMA);
3257 * ice_pkt_insert_mac_addr - insert a MAC addr into a memory buffer.
3258 * @pkt: packet buffer
3259 * @addr: MAC address to convert and insert into pkt at offset
3261 static void ice_pkt_insert_mac_addr(u8 *pkt, u8 *addr)
3263 ice_memcpy(pkt, addr, ETH_ALEN, ICE_NONDMA_TO_NONDMA);
3267 * ice_fdir_get_open_tunnel_port
3268 * @hw: pointer to the hardware structure
3270 * @port: returns open port
3272 * returns an open tunnel port specified for this flow type
3274 static enum ice_status
3275 ice_fdir_get_open_tunnel_port(struct ice_hw *hw, enum ice_fltr_ptype flow,
3279 case ICE_FLTR_PTYPE_NONF_IPV4_UDP_ECPRI_TP0:
3281 if (!ice_get_open_tunnel_port(hw, TNL_ECPRI, port))
3282 return ICE_ERR_DOES_NOT_EXIST;
3285 if (!ice_get_open_tunnel_port(hw, TNL_VXLAN, port) &&
3286 !ice_get_open_tunnel_port(hw, TNL_GENEVE, port))
3287 return ICE_ERR_DOES_NOT_EXIST;
3294 * ice_fdir_get_gen_prgm_pkt - generate a training packet
3295 * @hw: pointer to the hardware structure
3296 * @input: flow director filter data structure
3297 * @pkt: pointer to return filter packet
3298 * @frag: generate a fragment packet
3299 * @tun: true implies generate a tunnel packet
3302 ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,
3303 u8 *pkt, bool frag, bool tun)
3305 enum ice_fltr_ptype flow;
3310 if (input->flow_type == ICE_FLTR_PTYPE_NONF_IPV4_OTHER) {
3311 switch (input->ip.v4.proto) {
3312 case ICE_IP_PROTO_TCP:
3313 flow = ICE_FLTR_PTYPE_NONF_IPV4_TCP;
3315 case ICE_IP_PROTO_UDP:
3316 flow = ICE_FLTR_PTYPE_NONF_IPV4_UDP;
3318 case ICE_IP_PROTO_SCTP:
3319 flow = ICE_FLTR_PTYPE_NONF_IPV4_SCTP;
3322 flow = ICE_FLTR_PTYPE_NONF_IPV4_OTHER;
3325 } else if (input->flow_type == ICE_FLTR_PTYPE_NONF_IPV6_OTHER) {
3326 switch (input->ip.v6.proto) {
3327 case ICE_IP_PROTO_TCP:
3328 flow = ICE_FLTR_PTYPE_NONF_IPV6_TCP;
3330 case ICE_IP_PROTO_UDP:
3331 flow = ICE_FLTR_PTYPE_NONF_IPV6_UDP;
3333 case ICE_IP_PROTO_SCTP:
3334 flow = ICE_FLTR_PTYPE_NONF_IPV6_SCTP;
3337 flow = ICE_FLTR_PTYPE_NONF_IPV6_OTHER;
3341 flow = input->flow_type;
3344 for (idx = 0; idx < ICE_FDIR_NUM_PKT; idx++)
3345 if (ice_fdir_pkt[idx].flow == flow)
3347 if (idx == ICE_FDIR_NUM_PKT)
3348 return ICE_ERR_PARAM;
3350 ice_memcpy(pkt, ice_fdir_pkt[idx].pkt,
3351 ice_fdir_pkt[idx].pkt_len, ICE_NONDMA_TO_NONDMA);
3354 if (!ice_fdir_pkt[idx].tun_pkt)
3355 return ICE_ERR_PARAM;
3358 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4:
3359 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_UDP:
3360 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP:
3361 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6:
3362 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_UDP:
3363 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_TCP:
3364 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3365 ice_fdir_pkt[idx].tun_pkt_len,
3366 ICE_NONDMA_TO_NONDMA);
3367 loc = &pkt[ICE_FDIR_GTPU_IP_INNER_PKT_OFF];
3369 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4:
3370 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_UDP:
3371 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_TCP:
3372 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6:
3373 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_UDP:
3374 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_TCP:
3375 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4:
3376 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_UDP:
3377 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_TCP:
3378 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6:
3379 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_UDP:
3380 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_TCP:
3381 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4:
3382 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_UDP:
3383 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_TCP:
3384 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6:
3385 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_UDP:
3386 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_TCP:
3387 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3388 ice_fdir_pkt[idx].tun_pkt_len,
3389 ICE_NONDMA_TO_NONDMA);
3390 loc = &pkt[ICE_FDIR_GTPU_EH_INNER_PKT_OFF];
3392 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4:
3393 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_UDP:
3394 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_TCP:
3395 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6:
3396 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_UDP:
3397 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_TCP:
3398 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3399 ice_fdir_pkt[idx].tun_pkt_len,
3400 ICE_NONDMA_TO_NONDMA);
3401 loc = &pkt[ICE_FDIR_IPV4_GRE_INNER_PKT_OFF];
3403 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4:
3404 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_UDP:
3405 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_TCP:
3406 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6:
3407 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_UDP:
3408 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_TCP:
3409 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3410 ice_fdir_pkt[idx].tun_pkt_len,
3411 ICE_NONDMA_TO_NONDMA);
3412 loc = &pkt[ICE_FDIR_IPV6_GRE_INNER_PKT_OFF];
3414 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4:
3415 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_UDP:
3416 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_TCP:
3417 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6:
3418 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_UDP:
3419 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_TCP:
3420 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3421 ice_fdir_pkt[idx].tun_pkt_len,
3422 ICE_NONDMA_TO_NONDMA);
3423 loc = &pkt[ICE_FDIR_V4_V4_GTPOGRE_PKT_OFF];
3425 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4:
3426 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_UDP:
3427 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_TCP:
3428 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6:
3429 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_UDP:
3430 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_TCP:
3431 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3432 ice_fdir_pkt[idx].tun_pkt_len,
3433 ICE_NONDMA_TO_NONDMA);
3434 loc = &pkt[ICE_FDIR_V6_V4_GTPOGRE_PKT_OFF];
3436 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4:
3437 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP:
3438 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP:
3439 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6:
3440 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_UDP:
3441 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_TCP:
3442 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4:
3443 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
3444 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
3445 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6:
3446 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
3447 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
3448 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4:
3449 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
3450 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
3451 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6:
3452 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
3453 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
3454 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3455 ice_fdir_pkt[idx].tun_pkt_len,
3456 ICE_NONDMA_TO_NONDMA);
3457 loc = &pkt[ICE_FDIR_V4_V4_GTPOGRE_EH_PKT_OFF];
3459 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4:
3460 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_UDP:
3461 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_TCP:
3462 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6:
3463 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_UDP:
3464 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_TCP:
3465 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4:
3466 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
3467 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
3468 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6:
3469 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
3470 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
3471 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4:
3472 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
3473 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
3474 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6:
3475 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
3476 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
3477 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3478 ice_fdir_pkt[idx].tun_pkt_len,
3479 ICE_NONDMA_TO_NONDMA);
3480 loc = &pkt[ICE_FDIR_V6_V4_GTPOGRE_EH_PKT_OFF];
3483 if (ice_fdir_get_open_tunnel_port(hw, flow, &tnl_port))
3484 return ICE_ERR_DOES_NOT_EXIST;
3486 ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3487 ice_fdir_pkt[idx].tun_pkt_len,
3488 ICE_NONDMA_TO_NONDMA);
3489 ice_pkt_insert_u16(pkt, ICE_IPV4_UDP_DST_PORT_OFFSET,
3491 loc = &pkt[ICE_FDIR_TUN_PKT_OFF];
3496 /* Reverse the src and dst, since the HW expects them to be from Tx
3497 * perspective. The input from user is from Rx filter perspective.
3500 case ICE_FLTR_PTYPE_NONF_IPV4_TCP:
3501 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3502 input->ip.v4.src_ip);
3503 ice_pkt_insert_u16(loc, ICE_IPV4_TCP_DST_PORT_OFFSET,
3504 input->ip.v4.src_port);
3505 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3506 input->ip.v4.dst_ip);
3507 ice_pkt_insert_u16(loc, ICE_IPV4_TCP_SRC_PORT_OFFSET,
3508 input->ip.v4.dst_port);
3509 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3510 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3511 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3513 loc[20] = ICE_FDIR_IPV4_PKT_FLAG_MF;
3515 case ICE_FLTR_PTYPE_NONF_IPV4_UDP:
3516 ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
3517 ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
3518 input->ext_data_outer.src_mac);
3519 ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
3520 input->ip_outer.v4.dst_ip);
3521 ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
3522 input->ip_outer.v4.src_ip);
3523 ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET, input->ip_outer.v4.tos);
3524 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3525 input->ip.v4.src_ip);
3526 ice_pkt_insert_u16(loc, ICE_IPV4_UDP_DST_PORT_OFFSET,
3527 input->ip.v4.src_port);
3528 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3529 input->ip.v4.dst_ip);
3530 ice_pkt_insert_u16(loc, ICE_IPV4_UDP_SRC_PORT_OFFSET,
3531 input->ip.v4.dst_port);
3532 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3533 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3534 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3535 ice_pkt_insert_mac_addr(loc + ETH_ALEN, input->ext_data.src_mac);
3537 case ICE_FLTR_PTYPE_NONF_IPV4_SCTP:
3538 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3539 input->ip.v4.src_ip);
3540 ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_DST_PORT_OFFSET,
3541 input->ip.v4.src_port);
3542 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3543 input->ip.v4.dst_ip);
3544 ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_SRC_PORT_OFFSET,
3545 input->ip.v4.dst_port);
3546 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3547 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3548 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3550 case ICE_FLTR_PTYPE_NONF_IPV4_OTHER:
3551 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3552 input->ip.v4.src_ip);
3553 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3554 input->ip.v4.dst_ip);
3555 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3556 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3557 ice_pkt_insert_u8(loc, ICE_IPV4_PROTO_OFFSET,
3558 input->ip.v4.proto);
3559 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3561 case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN:
3562 case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_UDP:
3563 ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
3564 ice_pkt_insert_mac_addr(pkt + ETH_ALEN, input->ext_data_outer.src_mac);
3565 ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
3566 input->ip_outer.v4.dst_ip);
3567 ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
3568 input->ip_outer.v4.src_ip);
3569 ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET, input->ip_outer.v4.tos);
3570 ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
3571 input->vxlan_data.vni);
3572 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3573 input->ip.v4.src_ip);
3574 ice_pkt_insert_u16(loc, ICE_IPV4_UDP_DST_PORT_OFFSET,
3575 input->ip.v4.src_port);
3576 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3577 input->ip.v4.dst_ip);
3578 ice_pkt_insert_u16(loc, ICE_IPV4_UDP_SRC_PORT_OFFSET,
3579 input->ip.v4.dst_port);
3580 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3581 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3582 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3583 ice_pkt_insert_mac_addr(loc + ETH_ALEN, input->ext_data.src_mac);
3585 case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_TCP:
3586 ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
3587 ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
3588 input->ext_data_outer.src_mac);
3589 ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
3590 input->ip_outer.v4.dst_ip);
3591 ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
3592 input->ip_outer.v4.src_ip);
3593 ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET,
3594 input->ip_outer.v4.tos);
3595 ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
3596 input->vxlan_data.vni);
3597 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3598 input->ip.v4.src_ip);
3599 ice_pkt_insert_u16(loc, ICE_IPV4_TCP_DST_PORT_OFFSET,
3600 input->ip.v4.src_port);
3601 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3602 input->ip.v4.dst_ip);
3603 ice_pkt_insert_u16(loc, ICE_IPV4_TCP_SRC_PORT_OFFSET,
3604 input->ip.v4.dst_port);
3605 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3606 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3607 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3608 ice_pkt_insert_mac_addr(loc + ETH_ALEN,
3609 input->ext_data.src_mac);
3611 loc[20] = ICE_FDIR_IPV4_PKT_FLAG_MF;
3613 case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_SCTP:
3614 ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
3615 ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
3616 input->ext_data_outer.src_mac);
3617 ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
3618 input->ip_outer.v4.dst_ip);
3619 ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
3620 input->ip_outer.v4.src_ip);
3621 ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET,
3622 input->ip_outer.v4.tos);
3623 ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
3624 input->vxlan_data.vni);
3625 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3626 input->ip.v4.src_ip);
3627 ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_DST_PORT_OFFSET,
3628 input->ip.v4.src_port);
3629 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3630 input->ip.v4.dst_ip);
3631 ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_SRC_PORT_OFFSET,
3632 input->ip.v4.dst_port);
3633 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3634 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3635 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3636 ice_pkt_insert_mac_addr(loc + ETH_ALEN,
3637 input->ext_data.src_mac);
3639 case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_OTHER:
3640 ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
3641 ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
3642 input->ext_data_outer.src_mac);
3643 ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
3644 input->ip_outer.v4.dst_ip);
3645 ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
3646 input->ip_outer.v4.src_ip);
3647 ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET,
3648 input->ip_outer.v4.tos);
3649 ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
3650 input->vxlan_data.vni);
3651 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3652 input->ip.v4.src_ip);
3653 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3654 input->ip.v4.dst_ip);
3655 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
3656 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
3657 ice_pkt_insert_u8(loc, ICE_IPV4_PROTO_OFFSET,
3658 input->ip.v4.proto);
3659 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
3660 ice_pkt_insert_mac_addr(loc + ETH_ALEN,
3661 input->ext_data.src_mac);
3663 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU:
3664 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3665 input->ip.v4.src_ip);
3666 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3667 input->ip.v4.dst_ip);
3668 ice_pkt_insert_u32(loc, ICE_IPV4_GTPU_TEID_OFFSET,
3669 input->gtpu_data.teid);
3671 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4:
3672 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4:
3673 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4:
3674 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4:
3675 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4:
3676 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4:
3677 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4:
3678 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4:
3679 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4:
3680 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4:
3681 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4:
3682 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4:
3683 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
3684 input->ip.v4.src_ip);
3685 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
3686 input->ip.v4.dst_ip);
3687 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET, input->ip.v4.tos);
3688 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET, input->ip.v4.ttl);
3689 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_PROTO_OFFSET,
3690 input->ip.v4.proto);
3692 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH:
3693 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW:
3694 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP:
3695 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3696 input->ip.v4.src_ip);
3697 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3698 input->ip.v4.dst_ip);
3699 ice_pkt_insert_u32(loc, ICE_IPV4_GTPU_TEID_OFFSET,
3700 input->gtpu_data.teid);
3701 ice_pkt_insert_u6_qfi(loc, ICE_IPV4_GTPU_QFI_OFFSET,
3702 input->gtpu_data.qfi);
3704 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU:
3705 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3706 input->ip.v4.src_ip);
3707 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3708 input->ip.v4.dst_ip);
3709 ice_pkt_insert_u32(loc, ICE_IPV4_GTPOGRE_TEID_OFFSET,
3710 input->gtpu_data.teid);
3712 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH:
3713 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW:
3714 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP:
3715 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3716 input->ip.v4.src_ip);
3717 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3718 input->ip.v4.dst_ip);
3719 ice_pkt_insert_u32(loc, ICE_IPV4_GTPOGRE_TEID_OFFSET,
3720 input->gtpu_data.teid);
3721 ice_pkt_insert_u6_qfi(loc, ICE_IPV4_GTPOGRE_QFI_OFFSET,
3722 input->gtpu_data.qfi);
3724 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_UDP:
3725 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_UDP:
3726 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_UDP:
3727 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_UDP:
3728 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_UDP:
3729 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_UDP:
3730 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP:
3731 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
3732 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
3733 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_UDP:
3734 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
3735 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
3736 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
3737 input->ip.v4.src_ip);
3738 ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_DST_PORT_OFFSET,
3739 input->ip.v4.src_port);
3740 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
3741 input->ip.v4.dst_ip);
3742 ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_SRC_PORT_OFFSET,
3743 input->ip.v4.dst_port);
3744 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET, input->ip.v4.tos);
3745 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET, input->ip.v4.ttl);
3747 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP:
3748 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_TCP:
3749 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_TCP:
3750 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_TCP:
3751 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_TCP:
3752 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_TCP:
3753 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP:
3754 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
3755 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
3756 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_TCP:
3757 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
3758 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
3759 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
3760 input->ip.v4.src_ip);
3761 ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_DST_PORT_OFFSET,
3762 input->ip.v4.src_port);
3763 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
3764 input->ip.v4.dst_ip);
3765 ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_SRC_PORT_OFFSET,
3766 input->ip.v4.dst_port);
3767 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET, input->ip.v4.tos);
3768 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET, input->ip.v4.ttl);
3770 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6:
3771 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6:
3772 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6:
3773 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6:
3774 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6:
3775 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6:
3776 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6:
3777 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6:
3778 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6:
3779 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6:
3780 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6:
3781 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6:
3782 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
3783 input->ip.v6.src_ip);
3784 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
3785 input->ip.v6.dst_ip);
3786 ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET, input->ip.v6.tc);
3787 ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET, input->ip.v6.hlim);
3788 ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_PROTO_OFFSET,
3789 input->ip.v6.proto);
3791 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_UDP:
3792 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_UDP:
3793 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_UDP:
3794 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_UDP:
3795 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_UDP:
3796 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_UDP:
3797 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_UDP:
3798 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
3799 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
3800 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_UDP:
3801 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
3802 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
3803 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
3804 input->ip.v6.src_ip);
3805 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
3806 input->ip.v6.dst_ip);
3807 ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_DST_PORT_OFFSET,
3808 input->ip.v6.src_port);
3809 ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_SRC_PORT_OFFSET,
3810 input->ip.v6.dst_port);
3811 ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET, input->ip.v6.tc);
3812 ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET, input->ip.v6.hlim);
3814 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_TCP:
3815 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_TCP:
3816 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_TCP:
3817 case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_TCP:
3818 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_TCP:
3819 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_TCP:
3820 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_TCP:
3821 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
3822 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
3823 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_TCP:
3824 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
3825 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
3826 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
3827 input->ip.v6.src_ip);
3828 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
3829 input->ip.v6.dst_ip);
3830 ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_DST_PORT_OFFSET,
3831 input->ip.v6.src_port);
3832 ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_SRC_PORT_OFFSET,
3833 input->ip.v6.dst_port);
3834 ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET, input->ip.v6.tc);
3835 ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET, input->ip.v6.hlim);
3837 case ICE_FLTR_PTYPE_NONF_IPV6_GTPU:
3838 case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER:
3839 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
3840 input->ip.v6.src_ip);
3841 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
3842 input->ip.v6.dst_ip);
3843 ice_pkt_insert_u32(loc, ICE_IPV6_GTPU_TEID_OFFSET,
3844 input->gtpu_data.teid);
3846 case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH:
3847 case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_DW:
3848 case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_UP:
3849 case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_IPV6_OTHER:
3850 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
3851 input->ip.v6.src_ip);
3852 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
3853 input->ip.v6.dst_ip);
3854 ice_pkt_insert_u32(loc, ICE_IPV6_GTPU_TEID_OFFSET,
3855 input->gtpu_data.teid);
3856 ice_pkt_insert_u6_qfi(loc, ICE_IPV6_GTPU_QFI_OFFSET,
3857 input->gtpu_data.qfi);
3859 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU:
3860 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
3861 input->ip.v6.src_ip);
3862 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
3863 input->ip.v6.dst_ip);
3864 ice_pkt_insert_u32(loc, ICE_IPV6_GTPOGRE_TEID_OFFSET,
3865 input->gtpu_data.teid);
3867 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH:
3868 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW:
3869 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP:
3870 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
3871 input->ip.v6.src_ip);
3872 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
3873 input->ip.v6.dst_ip);
3874 ice_pkt_insert_u32(loc, ICE_IPV6_GTPOGRE_TEID_OFFSET,
3875 input->gtpu_data.teid);
3876 ice_pkt_insert_u6_qfi(loc, ICE_IPV6_GTPOGRE_QFI_OFFSET,
3877 input->gtpu_data.qfi);
3879 case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV3:
3880 ice_pkt_insert_u32(loc, ICE_IPV4_L2TPV3_SESS_ID_OFFSET,
3881 input->l2tpv3_data.session_id);
3883 case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV3:
3884 ice_pkt_insert_u32(loc, ICE_IPV6_L2TPV3_SESS_ID_OFFSET,
3885 input->l2tpv3_data.session_id);
3887 case ICE_FLTR_PTYPE_NONF_IPV4_ESP:
3888 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3889 input->ip.v4.src_ip);
3890 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3891 input->ip.v4.dst_ip);
3892 ice_pkt_insert_u32(loc, ICE_IPV4_ESP_SPI_OFFSET,
3893 input->ip.v4.sec_parm_idx);
3895 case ICE_FLTR_PTYPE_NONF_IPV6_ESP:
3896 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
3897 input->ip.v6.src_ip);
3898 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
3899 input->ip.v6.dst_ip);
3900 ice_pkt_insert_u32(loc, ICE_IPV6_ESP_SPI_OFFSET,
3901 input->ip.v6.sec_parm_idx);
3903 case ICE_FLTR_PTYPE_NONF_IPV4_AH:
3904 ice_pkt_insert_u32(loc, ICE_IPV4_AH_SPI_OFFSET,
3905 input->ip.v4.sec_parm_idx);
3907 case ICE_FLTR_PTYPE_NONF_IPV6_AH:
3908 ice_pkt_insert_u32(loc, ICE_IPV6_AH_SPI_OFFSET,
3909 input->ip.v6.sec_parm_idx);
3911 case ICE_FLTR_PTYPE_NONF_IPV4_NAT_T_ESP:
3912 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
3913 input->ip.v4.src_ip);
3914 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
3915 input->ip.v4.dst_ip);
3916 ice_pkt_insert_u32(loc, ICE_IPV4_NAT_T_ESP_SPI_OFFSET,
3917 input->ip.v4.sec_parm_idx);
3919 case ICE_FLTR_PTYPE_NONF_IPV6_NAT_T_ESP:
3920 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
3921 input->ip.v6.src_ip);
3922 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
3923 input->ip.v6.dst_ip);
3924 ice_pkt_insert_u32(loc, ICE_IPV6_NAT_T_ESP_SPI_OFFSET,
3925 input->ip.v6.sec_parm_idx);
3927 case ICE_FLTR_PTYPE_NONF_IPV4_PFCP_NODE:
3928 case ICE_FLTR_PTYPE_NONF_IPV4_PFCP_SESSION:
3929 ice_pkt_insert_u16(loc, ICE_IPV4_UDP_SRC_PORT_OFFSET,
3930 input->ip.v4.dst_port);
3932 case ICE_FLTR_PTYPE_NONF_IPV6_PFCP_NODE:
3933 case ICE_FLTR_PTYPE_NONF_IPV6_PFCP_SESSION:
3934 ice_pkt_insert_u16(loc, ICE_IPV6_UDP_SRC_PORT_OFFSET,
3935 input->ip.v6.dst_port);
3937 case ICE_FLTR_PTYPE_NON_IP_L2:
3938 ice_pkt_insert_u16(loc, ICE_MAC_ETHTYPE_OFFSET,
3939 input->ext_data.ether_type);
3941 case ICE_FLTR_PTYPE_NONF_ECPRI_TP0:
3942 ice_pkt_insert_u16(loc, ICE_ECPRI_TP0_PC_ID_OFFSET,
3943 input->ecpri_data.pc_id);
3945 case ICE_FLTR_PTYPE_NONF_IPV4_UDP_ECPRI_TP0:
3946 /* Use pkt instead of loc, since PC_ID is in outer part */
3947 ice_pkt_insert_u16(pkt, ICE_IPV4_UDP_ECPRI_TP0_PC_ID_OFFSET,
3948 input->ecpri_data.pc_id);
3950 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4:
3951 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4:
3952 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
3953 input->ip.v4.src_ip);
3954 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
3955 input->ip.v4.dst_ip);
3956 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
3958 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_PROTO_OFFSET,
3959 input->ip.v4.proto);
3961 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_TCP:
3962 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_TCP:
3963 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
3964 input->ip.v4.src_ip);
3965 ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_DST_PORT_OFFSET,
3966 input->ip.v4.src_port);
3967 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
3968 input->ip.v4.dst_ip);
3969 ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_SRC_PORT_OFFSET,
3970 input->ip.v4.dst_port);
3971 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
3974 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_UDP:
3975 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_UDP:
3976 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
3977 input->ip.v4.src_ip);
3978 ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_DST_PORT_OFFSET,
3979 input->ip.v4.src_port);
3980 ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
3981 input->ip.v4.dst_ip);
3982 ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_SRC_PORT_OFFSET,
3983 input->ip.v4.dst_port);
3984 ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
3987 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6:
3988 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6:
3989 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
3990 input->ip.v6.src_ip);
3991 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
3992 input->ip.v6.dst_ip);
3993 ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
3995 ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_PROTO_OFFSET,
3996 input->ip.v6.proto);
3998 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_TCP:
3999 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_TCP:
4000 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4001 input->ip.v6.src_ip);
4002 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4003 input->ip.v6.dst_ip);
4004 ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_DST_PORT_OFFSET,
4005 input->ip.v6.src_port);
4006 ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_SRC_PORT_OFFSET,
4007 input->ip.v6.dst_port);
4008 ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4011 case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_UDP:
4012 case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_UDP:
4013 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4014 input->ip.v6.src_ip);
4015 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4016 input->ip.v6.dst_ip);
4017 ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_DST_PORT_OFFSET,
4018 input->ip.v6.src_port);
4019 ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_SRC_PORT_OFFSET,
4020 input->ip.v6.dst_port);
4021 ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4024 case ICE_FLTR_PTYPE_NONF_IPV6_TCP:
4025 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4026 input->ip.v6.src_ip);
4027 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4028 input->ip.v6.dst_ip);
4029 ice_pkt_insert_u16(loc, ICE_IPV6_TCP_DST_PORT_OFFSET,
4030 input->ip.v6.src_port);
4031 ice_pkt_insert_u16(loc, ICE_IPV6_TCP_SRC_PORT_OFFSET,
4032 input->ip.v6.dst_port);
4033 ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4034 ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4035 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4037 case ICE_FLTR_PTYPE_NONF_IPV6_UDP:
4038 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4039 input->ip.v6.src_ip);
4040 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4041 input->ip.v6.dst_ip);
4042 ice_pkt_insert_u16(loc, ICE_IPV6_UDP_DST_PORT_OFFSET,
4043 input->ip.v6.src_port);
4044 ice_pkt_insert_u16(loc, ICE_IPV6_UDP_SRC_PORT_OFFSET,
4045 input->ip.v6.dst_port);
4046 ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4047 ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4048 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4050 case ICE_FLTR_PTYPE_NONF_IPV6_SCTP:
4051 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4052 input->ip.v6.src_ip);
4053 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4054 input->ip.v6.dst_ip);
4055 ice_pkt_insert_u16(loc, ICE_IPV6_SCTP_DST_PORT_OFFSET,
4056 input->ip.v6.src_port);
4057 ice_pkt_insert_u16(loc, ICE_IPV6_SCTP_SRC_PORT_OFFSET,
4058 input->ip.v6.dst_port);
4059 ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4060 ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4061 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4063 case ICE_FLTR_PTYPE_NONF_IPV6_OTHER:
4064 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4065 input->ip.v6.src_ip);
4066 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4067 input->ip.v6.dst_ip);
4068 ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4069 ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4070 ice_pkt_insert_u8(loc, ICE_IPV6_PROTO_OFFSET,
4071 input->ip.v6.proto);
4072 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4074 case ICE_FLTR_PTYPE_FRAG_IPV4:
4075 ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4076 input->ip.v4.src_ip);
4077 ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4078 input->ip.v4.dst_ip);
4079 ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4080 ice_pkt_insert_u16(loc, ICE_IPV4_ID_OFFSET,
4081 input->ip.v4.packet_id);
4082 ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4083 ice_pkt_insert_u8(loc, ICE_IPV4_PROTO_OFFSET,
4084 input->ip.v4.proto);
4085 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4087 case ICE_FLTR_PTYPE_FRAG_IPV6:
4088 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4089 input->ip.v6.src_ip);
4090 ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4091 input->ip.v6.dst_ip);
4092 ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4093 ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4094 ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4095 ice_pkt_insert_u32(loc, ICE_IPV6_ID_OFFSET,
4096 input->ip.v6.packet_id);
4099 return ICE_ERR_PARAM;
4102 if (input->flex_fltr)
4103 ice_pkt_insert_u16(loc, input->flex_offset, input->flex_word);
4109 * ice_fdir_get_prgm_pkt - generate a training packet
4110 * @input: flow director filter data structure
4111 * @pkt: pointer to return filter packet
4112 * @frag: generate a fragment packet
4115 ice_fdir_get_prgm_pkt(struct ice_fdir_fltr *input, u8 *pkt, bool frag)
4117 return ice_fdir_get_gen_prgm_pkt(NULL, input, pkt, frag, false);
4121 * ice_fdir_has_frag - does flow type have 2 ptypes
4124 * returns true is there is a fragment packet for this ptype
4126 bool ice_fdir_has_frag(enum ice_fltr_ptype flow)
4128 if (flow == ICE_FLTR_PTYPE_FRAG_IPV4 ||
4129 flow == ICE_FLTR_PTYPE_FRAG_IPV6)
4136 * ice_fdir_find_fltr_by_idx - find filter with idx
4137 * @hw: pointer to hardware structure
4138 * @fltr_idx: index to find.
4140 * Returns pointer to filter if found or null
4142 struct ice_fdir_fltr *
4143 ice_fdir_find_fltr_by_idx(struct ice_hw *hw, u32 fltr_idx)
4145 struct ice_fdir_fltr *rule;
4147 LIST_FOR_EACH_ENTRY(rule, &hw->fdir_list_head, ice_fdir_fltr,
4149 /* rule ID found in the list */
4150 if (fltr_idx == rule->fltr_id)
4152 if (fltr_idx < rule->fltr_id)
4159 * ice_fdir_list_add_fltr - add a new node to the flow director filter list
4160 * @hw: hardware structure
4161 * @fltr: filter node to add to structure
4163 void ice_fdir_list_add_fltr(struct ice_hw *hw, struct ice_fdir_fltr *fltr)
4165 struct ice_fdir_fltr *rule, *parent = NULL;
4167 LIST_FOR_EACH_ENTRY(rule, &hw->fdir_list_head, ice_fdir_fltr,
4169 /* rule ID found or pass its spot in the list */
4170 if (rule->fltr_id >= fltr->fltr_id)
4176 LIST_ADD_AFTER(&fltr->fltr_node, &parent->fltr_node);
4178 LIST_ADD(&fltr->fltr_node, &hw->fdir_list_head);
4182 * ice_fdir_update_cntrs - increment / decrement filter counter
4183 * @hw: pointer to hardware structure
4184 * @flow: filter flow type
4185 * @acl_fltr: true indicates an ACL filter
4186 * @add: true implies filters added
4189 ice_fdir_update_cntrs(struct ice_hw *hw, enum ice_fltr_ptype flow,
4190 bool acl_fltr, bool add)
4194 incr = add ? 1 : -1;
4195 hw->fdir_active_fltr += incr;
4196 if (flow == ICE_FLTR_PTYPE_NONF_NONE || flow >= ICE_FLTR_PTYPE_MAX) {
4197 ice_debug(hw, ICE_DBG_SW, "Unknown filter type %d\n", flow);
4200 hw->acl_fltr_cnt[flow] += incr;
4202 hw->fdir_fltr_cnt[flow] += incr;
4207 * ice_cmp_ipv6_addr - compare 2 IP v6 addresses
4211 * Returns 0 on equal, returns non-0 if different
4213 static int ice_cmp_ipv6_addr(__be32 *a, __be32 *b)
4215 return memcmp(a, b, 4 * sizeof(__be32));
4219 * ice_fdir_comp_rules - compare 2 filters
4220 * @a: a Flow Director filter data structure
4221 * @b: a Flow Director filter data structure
4222 * @v6: bool true if v6 filter
4224 * Returns true if the filters match
4227 ice_fdir_comp_rules(struct ice_fdir_fltr *a, struct ice_fdir_fltr *b, bool v6)
4229 enum ice_fltr_ptype flow_type = a->flow_type;
4231 /* The calling function already checks that the two filters have the
4235 if (flow_type == ICE_FLTR_PTYPE_NONF_IPV4_TCP ||
4236 flow_type == ICE_FLTR_PTYPE_NONF_IPV4_UDP ||
4237 flow_type == ICE_FLTR_PTYPE_NONF_IPV4_SCTP) {
4238 if (a->ip.v4.dst_ip == b->ip.v4.dst_ip &&
4239 a->ip.v4.src_ip == b->ip.v4.src_ip &&
4240 a->ip.v4.dst_port == b->ip.v4.dst_port &&
4241 a->ip.v4.src_port == b->ip.v4.src_port)
4243 } else if (flow_type == ICE_FLTR_PTYPE_NONF_IPV4_OTHER) {
4244 if (a->ip.v4.dst_ip == b->ip.v4.dst_ip &&
4245 a->ip.v4.src_ip == b->ip.v4.src_ip &&
4246 a->ip.v4.l4_header == b->ip.v4.l4_header &&
4247 a->ip.v4.proto == b->ip.v4.proto &&
4248 a->ip.v4.ip_ver == b->ip.v4.ip_ver &&
4249 a->ip.v4.tos == b->ip.v4.tos)
4253 if (flow_type == ICE_FLTR_PTYPE_NONF_IPV6_UDP ||
4254 flow_type == ICE_FLTR_PTYPE_NONF_IPV6_TCP ||
4255 flow_type == ICE_FLTR_PTYPE_NONF_IPV6_SCTP) {
4256 if (a->ip.v6.dst_port == b->ip.v6.dst_port &&
4257 a->ip.v6.src_port == b->ip.v6.src_port &&
4258 !ice_cmp_ipv6_addr(a->ip.v6.dst_ip,
4260 !ice_cmp_ipv6_addr(a->ip.v6.src_ip,
4263 } else if (flow_type == ICE_FLTR_PTYPE_NONF_IPV6_OTHER) {
4264 if (a->ip.v6.dst_port == b->ip.v6.dst_port &&
4265 a->ip.v6.src_port == b->ip.v6.src_port)
4274 * ice_fdir_is_dup_fltr - test if filter is already in list for PF
4275 * @hw: hardware data structure
4276 * @input: Flow Director filter data structure
4278 * Returns true if the filter is found in the list
4280 bool ice_fdir_is_dup_fltr(struct ice_hw *hw, struct ice_fdir_fltr *input)
4282 struct ice_fdir_fltr *rule;
4285 LIST_FOR_EACH_ENTRY(rule, &hw->fdir_list_head, ice_fdir_fltr,
4287 enum ice_fltr_ptype flow_type;
4289 if (rule->flow_type != input->flow_type)
4292 flow_type = input->flow_type;
4293 if (flow_type == ICE_FLTR_PTYPE_NONF_IPV4_TCP ||
4294 flow_type == ICE_FLTR_PTYPE_NONF_IPV4_UDP ||
4295 flow_type == ICE_FLTR_PTYPE_NONF_IPV4_SCTP ||
4296 flow_type == ICE_FLTR_PTYPE_NONF_IPV4_OTHER)
4297 ret = ice_fdir_comp_rules(rule, input, false);
4299 ret = ice_fdir_comp_rules(rule, input, true);
4301 if (rule->fltr_id == input->fltr_id &&
4302 rule->q_index != input->q_index)
4313 * ice_clear_pf_fd_table - admin command to clear FD table for PF
4314 * @hw: hardware data structure
4316 * Clears FD table entries for a PF by issuing admin command (direct, 0x0B06)
4318 enum ice_status ice_clear_pf_fd_table(struct ice_hw *hw)
4320 struct ice_aqc_clear_fd_table *cmd;
4321 struct ice_aq_desc desc;
4323 cmd = &desc.params.clear_fd_table;
4324 ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_clear_fd_table);
4325 cmd->clear_type = CL_FD_VM_VF_TYPE_PF_IDX;
4326 /* vsi_index must be 0 to clear FD table for a PF */
4327 cmd->vsi_index = CPU_TO_LE16(0);
4329 return ice_aq_send_cmd(hw, &desc, NULL, 0, NULL);