Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright(c) 2001-2023 Intel Corporation
3 : : */
4 : :
5 : : #include "ice_common.h"
6 : : #include "ice_fdir.h"
7 : :
8 : : /* These are training packet headers used to program flow director filters. */
9 : :
10 : : static const u8 ice_fdir_tcpv4_pkt[] = {
11 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
12 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
13 : : 0x00, 0x28, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
14 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
16 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00,
17 : : 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
18 : : };
19 : :
20 : : static const u8 ice_fdir_udpv4_pkt[] = {
21 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
22 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
23 : : 0x00, 0x1C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
24 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26 : : 0x00, 0x00,
27 : : };
28 : :
29 : : static const u8 ice_fdir_sctpv4_pkt[] = {
30 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
31 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
32 : : 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x40, 0x84,
33 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
35 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
36 : : };
37 : :
38 : : static const u8 ice_fdir_ipv4_pkt[] = {
39 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
40 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
41 : : 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x10,
42 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
43 : : 0x00, 0x00
44 : : };
45 : :
46 : : static const u8 ice_fdir_udp4_vxlan_pkt[] = {
47 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
48 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
49 : : 0x00, 0x4e, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
50 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
53 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
54 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
55 : : 0x45, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x40, 0x00,
56 : : 0x40, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58 : : 0x00, 0x00, 0x00, 0x00,
59 : : };
60 : :
61 : : static const u8 ice_fdir_ipv4_gtpu4_pkt[] = {
62 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
64 : : 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
65 : : 0x7c, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66 : : 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x24,
67 : : 0xbf, 0xc0, 0x30, 0xff, 0x00, 0x14, 0x00, 0x00,
68 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x14, 0x00, 0x01,
69 : : 0x00, 0x00, 0x40, 0x00, 0x3a, 0x3d, 0x00, 0x00,
70 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
71 : : };
72 : :
73 : : static const u8 ice_fdir_udp4_gtpu4_pkt[] = {
74 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
76 : : 0x00, 0x40, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
77 : : 0x7c, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
78 : : 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2c,
79 : : 0x00, 0x6f, 0x30, 0xff, 0x00, 0x1c, 0x00, 0x00,
80 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1c, 0x00, 0x01,
81 : : 0x00, 0x00, 0x40, 0x11, 0x3a, 0x24, 0x00, 0x00,
82 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 : : 0x00, 0x00, 0x00, 0x08, 0xbe, 0xc7, 0x00, 0x00,
84 : : };
85 : :
86 : : static const u8 ice_fdir_tcp4_gtpu4_pkt[] = {
87 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
88 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
89 : : 0x00, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
90 : : 0x7c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91 : : 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x38,
92 : : 0x00, 0x4c, 0x30, 0xff, 0x00, 0x28, 0x00, 0x00,
93 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x28, 0x00, 0x01,
94 : : 0x00, 0x00, 0x40, 0x06, 0x3a, 0x23, 0x00, 0x00,
95 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
96 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
97 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x4e, 0xd2,
98 : : 0x00, 0x00, 0x00, 0x00,
99 : : };
100 : :
101 : : static const u8 ice_fdir_ipv6_gtpu4_pkt[] = {
102 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
103 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
104 : : 0x00, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
105 : : 0x7c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
106 : : 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x38,
107 : : 0x24, 0x42, 0x30, 0xff, 0x00, 0x28, 0x00, 0x00,
108 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
109 : : 0x3b, 0x40, 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, 0x00, 0x00, 0x00, 0x00,
113 : : 0x00, 0x00, 0x00, 0x00,
114 : : };
115 : :
116 : : static const u8 ice_fdir_udp6_gtpu4_pkt[] = {
117 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
118 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
119 : : 0x00, 0x54, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
120 : : 0x7c, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
121 : : 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x40,
122 : : 0x4e, 0x3d, 0x30, 0xff, 0x00, 0x30, 0x00, 0x00,
123 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08,
124 : : 0x11, 0x40, 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, 0x00,
128 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
129 : : 0xff, 0xdc, 0x00, 0x00,
130 : : };
131 : :
132 : : static const u8 ice_fdir_tcp6_gtpu4_pkt[] = {
133 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
134 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
135 : : 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
136 : : 0x7c, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
137 : : 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4e,
138 : : 0x59, 0x08, 0x30, 0xff, 0x00, 0x3e, 0x00, 0x00,
139 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
140 : : 0x06, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00,
144 : : 0x00, 0x00, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
145 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
146 : : 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
147 : : };
148 : :
149 : : static const u8 ice_fdir_ipv4_gtpu4_eh_pkt[] = {
150 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
151 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
152 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
153 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
154 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
155 : : 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
156 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
157 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
158 : : 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
159 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
160 : : };
161 : :
162 : : static const u8 ice_fdir_udp4_gtpu4_eh_pkt[] = {
163 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
164 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
165 : : 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
166 : : 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
167 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
168 : : 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
169 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
170 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
171 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
172 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
173 : : 0x00, 0x00, 0x00, 0x0a, 0x01, 0xd8, 0x00, 0x00,
174 : : };
175 : :
176 : : static const u8 ice_fdir_tcp4_gtpu4_eh_pkt[] = {
177 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
179 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
180 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
181 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
182 : : 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
183 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
184 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
185 : : 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
186 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
187 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0xde,
189 : : 0x00, 0x00, 0x00, 0x00,
190 : : };
191 : :
192 : : static const u8 ice_fdir_ipv6_gtpu4_eh_pkt[] = {
193 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
195 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
196 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
197 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
198 : : 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
199 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
200 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
201 : : 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
203 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
204 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205 : : 0x00, 0x01, 0x00, 0x00,
206 : : };
207 : :
208 : : static const u8 ice_fdir_udp6_gtpu4_eh_pkt[] = {
209 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
211 : : 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
212 : : 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
213 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
214 : : 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
215 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
216 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
217 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
218 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
219 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
222 : : 0xff, 0xd8, 0x00, 0x00,
223 : : };
224 : :
225 : : static const u8 ice_fdir_tcp6_gtpu4_eh_pkt[] = {
226 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
228 : : 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
229 : : 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
230 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
231 : : 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
232 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
233 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
234 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
240 : : 0x20, 0x00, 0x8f, 0xdf, 0x00, 0x00, 0x00, 0x00,
241 : : };
242 : :
243 : : static const u8 ice_fdir_ipv4_gtpu4_eh_dw_pkt[] = {
244 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
245 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
246 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
247 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
248 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
249 : : 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
250 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
251 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
252 : : 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
253 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
254 : : };
255 : :
256 : : static const u8 ice_fdir_udp4_gtpu4_eh_dw_pkt[] = {
257 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
258 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
259 : : 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
260 : : 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
261 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
262 : : 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
263 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
264 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
265 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
266 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
267 : : 0x00, 0x00, 0x00, 0x0a, 0x01, 0xd8, 0x00, 0x00,
268 : : };
269 : :
270 : : static const u8 ice_fdir_tcp4_gtpu4_eh_dw_pkt[] = {
271 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
272 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
273 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
274 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
275 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
276 : : 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
277 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
278 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
279 : : 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
280 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
281 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
282 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0xde,
283 : : 0x00, 0x00, 0x00, 0x00,
284 : : };
285 : :
286 : : static const u8 ice_fdir_ipv6_gtpu4_eh_dw_pkt[] = {
287 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
289 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
290 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
291 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
292 : : 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
293 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
294 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
295 : : 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
297 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
298 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
299 : : 0x00, 0x01, 0x00, 0x00,
300 : : };
301 : :
302 : : static const u8 ice_fdir_udp6_gtpu4_eh_dw_pkt[] = {
303 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
304 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
305 : : 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
306 : : 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
307 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
308 : : 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
309 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
310 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
311 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
312 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
313 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
314 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
315 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
316 : : 0xff, 0xd8, 0x00, 0x00,
317 : : };
318 : :
319 : : static const u8 ice_fdir_tcp6_gtpu4_eh_dw_pkt[] = {
320 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
321 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
322 : : 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
323 : : 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
324 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
325 : : 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
326 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
327 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
328 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
329 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
330 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
331 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
332 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
333 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
334 : : 0x20, 0x00, 0x8f, 0xdf, 0x00, 0x00, 0x00, 0x00,
335 : : };
336 : :
337 : : static const u8 ice_fdir_ipv4_gtpu4_eh_up_pkt[] = {
338 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
339 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
340 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
341 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
342 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
343 : : 0xba, 0x0d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
344 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
345 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
346 : : 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
347 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
348 : : };
349 : :
350 : : static const u8 ice_fdir_udp4_gtpu4_eh_up_pkt[] = {
351 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
352 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
353 : : 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
354 : : 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
355 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
356 : : 0xb8, 0x13, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
357 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
358 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
359 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
360 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
361 : : 0x00, 0x00, 0x00, 0x0a, 0x01, 0xd8, 0x00, 0x00,
362 : : };
363 : :
364 : : static const u8 ice_fdir_tcp4_gtpu4_eh_up_pkt[] = {
365 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
366 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
367 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
368 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
369 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
370 : : 0xb7, 0xf0, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
371 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
372 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
373 : : 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
374 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
375 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
376 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0xde,
377 : : 0x00, 0x00, 0x00, 0x00,
378 : : };
379 : :
380 : : static const u8 ice_fdir_ipv6_gtpu4_eh_up_pkt[] = {
381 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
382 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
383 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
384 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
385 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
386 : : 0x1e, 0x8d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
387 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
388 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
389 : : 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
390 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
391 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
392 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
393 : : 0x00, 0x01, 0x00, 0x00,
394 : : };
395 : :
396 : : static const u8 ice_fdir_udp6_gtpu4_eh_up_pkt[] = {
397 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
398 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
399 : : 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
400 : : 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
401 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
402 : : 0x48, 0x8a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
403 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
404 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
405 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
406 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
407 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
408 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
409 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
410 : : 0xff, 0xd8, 0x00, 0x00,
411 : : };
412 : :
413 : : static const u8 ice_fdir_tcp6_gtpu4_eh_up_pkt[] = {
414 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
415 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
416 : : 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
417 : : 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
418 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
419 : : 0x53, 0x5b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
420 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
421 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
422 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
423 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
424 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
425 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
426 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
427 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
428 : : 0x20, 0x00, 0x8f, 0xdf, 0x00, 0x00, 0x00, 0x00,
429 : : };
430 : :
431 : : static const u8 ice_fdir_icmp4_gtpu4_pkt[] = {
432 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
433 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
434 : : 0x00, 0x4c, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
435 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
436 : : 0x00, 0x00, 0x08, 0x68, 0x08, 0x68, 0x00, 0x00,
437 : : 0x00, 0x00, 0x34, 0xff, 0x00, 0x28, 0x00, 0x00,
438 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x02, 0x00,
439 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
440 : : 0x00, 0x1c, 0x00, 0x00, 0x40, 0x00, 0x40, 0x01,
441 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
442 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
443 : : 0x00, 0x00,
444 : : };
445 : :
446 : : static const u8 ice_fdir_ipv6_gtpu6_pkt[] = {
447 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
448 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
449 : : 0x00, 0x00, 0x00, 0x38, 0x11, 0x40, 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, 0x00, 0x00,
453 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
454 : : 0x08, 0x68, 0x00, 0x38, 0x22, 0x43, 0x30, 0xff,
455 : : 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
456 : : 0x00, 0x00, 0x00, 0x00, 0x3b, 0x40, 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,
460 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
461 : : };
462 : :
463 : : static const u8 ice_fdir_ipv6_gtpu6_eh_pkt[] = {
464 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
465 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
466 : : 0x00, 0x00, 0x00, 0x44, 0x11, 0x40, 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, 0x00, 0x00,
470 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
471 : : 0x08, 0x68, 0x00, 0x44, 0x1b, 0x9a, 0x34, 0xff,
472 : : 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
473 : : 0x00, 0x85, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
474 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
475 : : 0x3b, 0x40, 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, 0x00, 0x00, 0x00, 0x00,
479 : : 0x00, 0x00, 0x00, 0x00,
480 : : };
481 : :
482 : : static const u8 ice_fdir_ipv6_gtpu6_eh_dw_pkt[] = {
483 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
484 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
485 : : 0x00, 0x00, 0x00, 0x44, 0x11, 0x40, 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, 0x00, 0x00,
489 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
490 : : 0x08, 0x68, 0x00, 0x44, 0x1b, 0x9a, 0x34, 0xff,
491 : : 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
492 : : 0x00, 0x85, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
493 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
494 : : 0x3b, 0x40, 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, 0x00, 0x00, 0x00, 0x00,
498 : : 0x00, 0x00, 0x00, 0x00,
499 : : };
500 : :
501 : : static const u8 ice_fdir_ipv6_gtpu6_eh_up_pkt[] = {
502 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
503 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
504 : : 0x00, 0x00, 0x00, 0x44, 0x11, 0x40, 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, 0x00, 0x00,
508 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x68,
509 : : 0x08, 0x68, 0x00, 0x44, 0x1b, 0x8a, 0x34, 0xff,
510 : : 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
511 : : 0x00, 0x85, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00,
512 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
513 : : 0x3b, 0x40, 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, 0x00, 0x00, 0x00, 0x00,
517 : : 0x00, 0x00, 0x00, 0x00,
518 : : };
519 : :
520 : : static const u8 ice_fdir_ipv4_l2tpv3_pkt[] = {
521 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
522 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
523 : : 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x73,
524 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
525 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
526 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
527 : : };
528 : :
529 : : static const u8 ice_fdir_ipv6_l2tpv3_pkt[] = {
530 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
531 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
532 : : 0x00, 0x00, 0x00, 0x00, 0x73, 0x40, 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,
537 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
538 : : 0x00, 0x00,
539 : : };
540 : :
541 : : static const u8 ice_fdir_ipv4_esp_pkt[] = {
542 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
543 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
544 : : 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x32,
545 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
546 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
547 : : 0x00, 0x00
548 : : };
549 : :
550 : : static const u8 ice_fdir_ipv6_esp_pkt[] = {
551 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
552 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
553 : : 0x00, 0x00, 0x00, 0x00, 0x32, 0x40, 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, 0x00, 0x00,
558 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
559 : : };
560 : :
561 : : static const u8 ice_fdir_ipv4_ah_pkt[] = {
562 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
563 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
564 : : 0x00, 0x14, 0x00, 0x00, 0x40, 0x00, 0x40, 0x33,
565 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
566 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
567 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
568 : : 0x00, 0x00
569 : : };
570 : :
571 : : static const u8 ice_fdir_ipv6_ah_pkt[] = {
572 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
573 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
574 : : 0x00, 0x00, 0x00, 0x00, 0x33, 0x40, 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, 0x00, 0x00,
580 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
581 : : };
582 : :
583 : : static const u8 ice_fdir_ipv4_nat_t_esp_pkt[] = {
584 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
585 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
586 : : 0x00, 0x1C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
587 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
588 : : 0x00, 0x00, 0x00, 0x00, 0x11, 0x94, 0x00, 0x00,
589 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
590 : : 0x00, 0x00,
591 : : };
592 : :
593 : : static const u8 ice_fdir_ipv6_nat_t_esp_pkt[] = {
594 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
595 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
596 : : 0x00, 0x00, 0x00, 0x08, 0x11, 0x40, 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 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
601 : : 0x11, 0x94, 0x00, 0x00, 0x00, 0x08,
602 : : };
603 : :
604 : : static const u8 ice_fdir_ipv4_pfcp_node_pkt[] = {
605 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
606 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
607 : : 0x00, 0x2C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
608 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
609 : : 0x00, 0x00, 0x22, 0x65, 0x22, 0x65, 0x00, 0x00,
610 : : 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00,
611 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
612 : : 0x00, 0x00,
613 : : };
614 : :
615 : : static const u8 ice_fdir_ipv4_pfcp_session_pkt[] = {
616 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
617 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
618 : : 0x00, 0x2C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
619 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
620 : : 0x00, 0x00, 0x22, 0x65, 0x22, 0x65, 0x00, 0x00,
621 : : 0x00, 0x00, 0x21, 0x00, 0x00, 0x10, 0x00, 0x00,
622 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
623 : : 0x00, 0x00,
624 : : };
625 : :
626 : : static const u8 ice_fdir_ipv6_pfcp_node_pkt[] = {
627 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
628 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
629 : : 0x00, 0x00, 0x00, 0x18, 0x11, 0x40, 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, 0x00, 0x00,
633 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x65,
634 : : 0x22, 0x65, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
635 : : 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
636 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
637 : : };
638 : :
639 : : static const u8 ice_fdir_ipv6_pfcp_session_pkt[] = {
640 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
641 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
642 : : 0x00, 0x00, 0x00, 0x18, 0x11, 0x40, 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, 0x00, 0x00,
646 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x65,
647 : : 0x22, 0x65, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00,
648 : : 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
649 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
650 : : };
651 : :
652 : : static const u8 ice_fdir_non_ip_l2_pkt[] = {
653 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
654 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
655 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
656 : : };
657 : :
658 : : static const u8 ice_fdir_ecpri_tp0_pkt[] = {
659 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
660 : : 0x00, 0x00, 0x00, 0x00, 0xAE, 0xFE, 0x10, 0x00,
661 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
662 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
663 : : };
664 : :
665 : : static const u8 ice_fdir_ipv4_udp_ecpri_tp0_pkt[] = {
666 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
667 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
668 : : 0x00, 0x1C, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
669 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
670 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
671 : : 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
672 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
673 : : };
674 : :
675 : : static const u8 ice_fdir_ipv6_frag_pkt[] = {
676 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
677 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
678 : : 0x00, 0x00, 0x00, 0x00, 0x2C, 0x40, 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, 0x00, 0x00,
682 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x00,
683 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
684 : : };
685 : :
686 : : static const u8 ice_fdir_ipv4_frag_pkt[] = {
687 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
688 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
689 : : 0x00, 0x14, 0x00, 0x00, 0x20, 0x00, 0x40, 0x10,
690 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
691 : : 0x00, 0x00
692 : : };
693 : :
694 : : /* IPV4 GRE INNER IPV4 */
695 : : static const u8 ice_fdir_ipv4_gre4_pkt[] = {
696 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
697 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
698 : : 0x00, 0x2e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
699 : : 0x7c, 0x9e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
700 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
701 : : 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
702 : : 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
703 : : 0x00, 0x01, 0x00, 0x00,
704 : : };
705 : :
706 : : static const u8 ice_fdir_udp4_gre4_pkt[] = {
707 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
708 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
709 : : 0x00, 0x36, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
710 : : 0x7c, 0x96, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
711 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
712 : : 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
713 : : 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
714 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
715 : : 0x01, 0xd8, 0x00, 0x00,
716 : : };
717 : :
718 : : static const u8 ice_fdir_tcp4_gre4_pkt[] = {
719 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
720 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
721 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
722 : : 0x7c, 0x8a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
723 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
724 : : 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
725 : : 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
726 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
727 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
728 : : 0x20, 0x00, 0x91, 0xde, 0x00, 0x00, 0x00, 0x00,
729 : : };
730 : :
731 : : /* IPV4 GRE INNER IPV6 */
732 : : static const u8 ice_fdir_ipv6_gre4_pkt[] = {
733 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
734 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
735 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
736 : : 0x7c, 0x8a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
737 : : 0x00, 0x01, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
738 : : 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
739 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
740 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
741 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
742 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
743 : : };
744 : :
745 : : static const u8 ice_fdir_udp6_gre4_pkt[] = {
746 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
747 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
748 : : 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
749 : : 0x7c, 0x82, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
750 : : 0x00, 0x01, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
751 : : 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
752 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
753 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
754 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
755 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
756 : : 0x00, 0x00, 0x00, 0x0a, 0xff, 0xd8, 0x00, 0x00,
757 : : };
758 : :
759 : : static const u8 ice_fdir_tcp6_gre4_pkt[] = {
760 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
761 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
762 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
763 : : 0x7c, 0x76, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
764 : : 0x00, 0x01, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
765 : : 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
766 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
767 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
768 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
769 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
770 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
771 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0xdf,
772 : : 0x00, 0x00, 0x00, 0x00,
773 : : };
774 : :
775 : : /* IPV6 GRE INNER IPV4 */
776 : : static const u8 ice_fdir_ipv4_gre6_pkt[] = {
777 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
778 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
779 : : 0x00, 0x00, 0x00, 0x18, 0x2F, 0x40, 0x00, 0x00,
780 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
781 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
782 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
783 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
784 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x14, 0x00, 0x01,
785 : : 0x00, 0x00, 0x40, 0x00, 0x7A, 0xEA, 0x00, 0x00,
786 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
787 : : };
788 : :
789 : : static const u8 ice_fdir_udp4_gre6_pkt[] = {
790 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
791 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
792 : : 0x00, 0x00, 0x00, 0x20, 0x2F, 0x40, 0x00, 0x00,
793 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
794 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
795 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
796 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
797 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x1C, 0x00, 0x01,
798 : : 0x00, 0x00, 0x40, 0x11, 0x7A, 0xD1, 0x00, 0x00,
799 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
800 : : 0x00, 0x00, 0x00, 0x08, 0xFF, 0xDE, 0x00, 0x00,
801 : : };
802 : :
803 : : static const u8 ice_fdir_tcp4_gre6_pkt[] = {
804 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
805 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
806 : : 0x00, 0x00, 0x00, 0x2C, 0x2F, 0x40, 0x00, 0x00,
807 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
808 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
809 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
810 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
811 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x28, 0x00, 0x01,
812 : : 0x00, 0x00, 0x40, 0x06, 0x7A, 0xD0, 0x00, 0x00,
813 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
814 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
815 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8F, 0xE3,
816 : : 0x00, 0x00, 0x00, 0x00,
817 : : };
818 : :
819 : : /* IPV6 GRE INNER IPV6 */
820 : : static const u8 ice_fdir_ipv6_gre6_pkt[] = {
821 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
822 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
823 : : 0x00, 0x00, 0x00, 0x2C, 0x2F, 0x40, 0x00, 0x00,
824 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
825 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
826 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
827 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
828 : : 0x86, 0xDD, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
829 : : 0x3B, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
830 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
831 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
832 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
833 : : 0x00, 0x01, 0x00, 0x00,
834 : : };
835 : :
836 : : static const u8 ice_fdir_udp6_gre6_pkt[] = {
837 : : 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
838 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
839 : : 0x00, 0x00, 0x00, 0x34, 0x2F, 0x40, 0x00, 0x00,
840 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
841 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
842 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
843 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
844 : : 0x86, 0xDD, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08,
845 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
846 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
847 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
848 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
849 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x08,
850 : : 0xFF, 0x72, 0x00, 0x00,
851 : : };
852 : :
853 : : static const u8 ice_fdir_tcp6_gre6_pkt[] = {
854 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
855 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
856 : : 0x00, 0x00, 0x00, 0x40, 0x2F, 0x40, 0x00, 0x00,
857 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
858 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
859 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
860 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
861 : : 0x86, 0xDD, 0x60, 0x00, 0x00, 0x00, 0x00, 0x14,
862 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
863 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
864 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
865 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
866 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
867 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
868 : : 0x20, 0x00, 0x8F, 0xE1, 0x00, 0x00, 0x00, 0x00,
869 : : };
870 : :
871 : : /* IPV4 GRE IPV4 GTPU IPV4 */
872 : : static const u8 ice_fdir_ipv4_gtpu4_gre4_pkt[] = {
873 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
874 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
875 : : 0x00, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
876 : : 0x7c, 0x7a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
877 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
878 : : 0x00, 0x3a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
879 : : 0x7c, 0xb0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
880 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x26,
881 : : 0xbf, 0xba, 0x30, 0xff, 0x00, 0x16, 0x00, 0x00,
882 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
883 : : 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
884 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
885 : : };
886 : :
887 : : static const u8 ice_fdir_udp4_gtpu4_gre4_pkt[] = {
888 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
889 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
890 : : 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
891 : : 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
892 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
893 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
894 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
895 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
896 : : 0xbd, 0xc0, 0x30, 0xff, 0x00, 0x1e, 0x00, 0x00,
897 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
898 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
899 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
900 : : 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
901 : : };
902 : :
903 : : static const u8 ice_fdir_tcp4_gtpu4_gre4_pkt[] = {
904 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
905 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
906 : : 0x00, 0x66, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
907 : : 0x7c, 0x66, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
908 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
909 : : 0x00, 0x4e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
910 : : 0x7c, 0x9c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
911 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x3a,
912 : : 0xbd, 0x9d, 0x30, 0xff, 0x00, 0x2a, 0x00, 0x00,
913 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
914 : : 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
915 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
916 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
917 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
918 : : 0x00, 0x00, 0x00, 0x00,
919 : : };
920 : :
921 : : /* IPV4 GRE IPV4 GTPU IPV6 */
922 : : static const u8 ice_fdir_ipv6_gtpu4_gre4_pkt[] = {
923 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
924 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
925 : : 0x00, 0x66, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
926 : : 0x7c, 0x66, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
927 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
928 : : 0x00, 0x4e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
929 : : 0x7c, 0x9c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
930 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x3a,
931 : : 0x24, 0x3a, 0x30, 0xff, 0x00, 0x2a, 0x00, 0x00,
932 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
933 : : 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
934 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
935 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
936 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
937 : : 0x00, 0x01, 0x00, 0x00,
938 : : };
939 : :
940 : : static const u8 ice_fdir_udp6_gtpu4_gre4_pkt[] = {
941 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
942 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
943 : : 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
944 : : 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
945 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
946 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
947 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
948 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
949 : : 0x4e, 0x37, 0x30, 0xff, 0x00, 0x32, 0x00, 0x00,
950 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
951 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
952 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
953 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
954 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
955 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
956 : : 0xff, 0x6e, 0x00, 0x00,
957 : : };
958 : :
959 : : static const u8 ice_fdir_tcp6_gtpu4_gre4_pkt[] = {
960 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
961 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
962 : : 0x00, 0x7a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
963 : : 0x7c, 0x52, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
964 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
965 : : 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
966 : : 0x7c, 0x88, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
967 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4e,
968 : : 0x59, 0x08, 0x30, 0xff, 0x00, 0x3e, 0x00, 0x00,
969 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
970 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
971 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
972 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
973 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
974 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
975 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
976 : : 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
977 : : };
978 : :
979 : : /* IPV6 GRE IPV4 GTPU IPV4 */
980 : : static const u8 ice_fdir_ipv4_gtpu4_gre6_pkt[] = {
981 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
982 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
983 : : 0x00, 0x00, 0x00, 0x3e, 0x2f, 0x40, 0x00, 0x00,
984 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
985 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
986 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
987 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
988 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x3a, 0x00, 0x01,
989 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xb0, 0x7f, 0x00,
990 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
991 : : 0x08, 0x68, 0x00, 0x26, 0xbf, 0xba, 0x30, 0xff,
992 : : 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
993 : : 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
994 : : 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
995 : : 0x00, 0x01, 0x00, 0x00,
996 : : };
997 : :
998 : : static const u8 ice_fdir_udp4_gtpu4_gre6_pkt[] = {
999 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1000 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1001 : : 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1002 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1003 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1004 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1005 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1006 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1007 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1008 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1009 : : 0x08, 0x68, 0x00, 0x2e, 0xbd, 0xc0, 0x30, 0xff,
1010 : : 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
1011 : : 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1012 : : 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1013 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1014 : : 0x01, 0x6e, 0x00, 0x00,
1015 : : };
1016 : :
1017 : : static const u8 ice_fdir_tcp4_gtpu4_gre6_pkt[] = {
1018 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1019 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1020 : : 0x00, 0x00, 0x00, 0x52, 0x2f, 0x40, 0x00, 0x00,
1021 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1022 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1023 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1024 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1025 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x4e, 0x00, 0x01,
1026 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x9c, 0x7f, 0x00,
1027 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1028 : : 0x08, 0x68, 0x00, 0x3a, 0xbd, 0x9d, 0x30, 0xff,
1029 : : 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
1030 : : 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1031 : : 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1032 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1033 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1034 : : 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1035 : : };
1036 : :
1037 : : /* IPV6 GRE IPV4 GTPU IPV6 */
1038 : : static const u8 ice_fdir_ipv6_gtpu4_gre6_pkt[] = {
1039 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1040 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1041 : : 0x00, 0x00, 0x00, 0x52, 0x2f, 0x40, 0x00, 0x00,
1042 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1043 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1044 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1045 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1046 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x4e, 0x00, 0x01,
1047 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x9c, 0x7f, 0x00,
1048 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1049 : : 0x08, 0x68, 0x00, 0x3a, 0x24, 0x3a, 0x30, 0xff,
1050 : : 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
1051 : : 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1052 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1053 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1054 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1055 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1056 : : };
1057 : :
1058 : : static const u8 ice_fdir_udp6_gtpu4_gre6_pkt[] = {
1059 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1060 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1061 : : 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1062 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1063 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1064 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1065 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1066 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1067 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1068 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1069 : : 0x08, 0x68, 0x00, 0x42, 0x4e, 0x37, 0x30, 0xff,
1070 : : 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
1071 : : 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1072 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1073 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1074 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1075 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1076 : : 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1077 : : };
1078 : :
1079 : : static const u8 ice_fdir_tcp6_gtpu4_gre6_pkt[] = {
1080 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1081 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1082 : : 0x00, 0x00, 0x00, 0x66, 0x2f, 0x40, 0x00, 0x00,
1083 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1084 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1085 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1086 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1087 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x62, 0x00, 0x01,
1088 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x88, 0x7f, 0x00,
1089 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1090 : : 0x08, 0x68, 0x00, 0x4e, 0x59, 0x08, 0x30, 0xff,
1091 : : 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00,
1092 : : 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1093 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1094 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1095 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1096 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1097 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1098 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1099 : : 0x00, 0x00, 0x00, 0x00,
1100 : : };
1101 : :
1102 : : /* IPV4 GRE IPV4 GTPU EH IPV4 */
1103 : : static const u8 ice_fdir_ipv4_gtpu4_eh_gre4_pkt[] = {
1104 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1105 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1106 : : 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1107 : : 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1108 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1109 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1110 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1111 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
1112 : : 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
1113 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1114 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
1115 : : 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
1116 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
1117 : : };
1118 : :
1119 : : static const u8 ice_fdir_udp4_gtpu4_eh_gre4_pkt[] = {
1120 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1121 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1122 : : 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1123 : : 0x7c, 0x6a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1124 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1125 : : 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1126 : : 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1127 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
1128 : : 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
1129 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1130 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
1131 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
1132 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
1133 : : 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
1134 : : };
1135 : :
1136 : : static const u8 ice_fdir_tcp4_gtpu4_eh_gre4_pkt[] = {
1137 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1138 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1139 : : 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1140 : : 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1141 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1142 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1143 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1144 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1145 : : 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1146 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1147 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
1148 : : 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
1149 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
1150 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1151 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
1152 : : 0x00, 0x00, 0x00, 0x00,
1153 : : };
1154 : :
1155 : : /* IPV4 GRE IPV4 GTPU EH IPV6 */
1156 : : static const u8 ice_fdir_ipv6_gtpu4_eh_gre4_pkt[] = {
1157 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1158 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1159 : : 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1160 : : 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1161 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1162 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1163 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1164 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1165 : : 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1166 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1167 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
1168 : : 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1169 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1170 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1171 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1172 : : 0x00, 0x01, 0x00, 0x00,
1173 : : };
1174 : :
1175 : : static const u8 ice_fdir_udp6_gtpu4_eh_gre4_pkt[] = {
1176 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1177 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1178 : : 0x00, 0x76, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1179 : : 0x7c, 0x56, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1180 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1181 : : 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1182 : : 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1183 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
1184 : : 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
1185 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1186 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
1187 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1188 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1189 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1190 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1191 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1192 : : 0xff, 0x6e, 0x00, 0x00,
1193 : : };
1194 : :
1195 : : static const u8 ice_fdir_tcp6_gtpu4_eh_gre4_pkt[] = {
1196 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1197 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1198 : : 0x00, 0x82, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1199 : : 0x7c, 0x4a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1200 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1201 : : 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1202 : : 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1203 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
1204 : : 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
1205 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1206 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
1207 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1208 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1209 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1210 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1211 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1212 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1213 : : 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
1214 : : };
1215 : :
1216 : : /* IPV6 GRE IPV4 GTPU EH IPV4 */
1217 : : static const u8 ice_fdir_ipv4_gtpu4_eh_gre6_pkt[] = {
1218 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1219 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1220 : : 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1221 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1222 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1223 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1224 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1225 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1226 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1227 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1228 : : 0x08, 0x68, 0x00, 0x2e, 0xba, 0x1d, 0x34, 0xff,
1229 : : 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1230 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1231 : : 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
1232 : : 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1233 : : 0x00, 0x01, 0x00, 0x00,
1234 : : };
1235 : :
1236 : : static const u8 ice_fdir_udp4_gtpu4_eh_gre6_pkt[] = {
1237 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1238 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1239 : : 0x00, 0x00, 0x00, 0x4e, 0x2f, 0x40, 0x00, 0x00,
1240 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1241 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1242 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1243 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1244 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x01,
1245 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa0, 0x7f, 0x00,
1246 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1247 : : 0x08, 0x68, 0x00, 0x36, 0xb8, 0x23, 0x34, 0xff,
1248 : : 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1249 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1250 : : 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1251 : : 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1252 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1253 : : 0x01, 0x6e, 0x00, 0x00,
1254 : : };
1255 : :
1256 : : static const u8 ice_fdir_tcp4_gtpu4_eh_gre6_pkt[] = {
1257 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1258 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1259 : : 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1260 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1261 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1262 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1263 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1264 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1265 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1266 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1267 : : 0x08, 0x68, 0x00, 0x42, 0xb8, 0x00, 0x34, 0xff,
1268 : : 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1269 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1270 : : 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1271 : : 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1272 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1273 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1274 : : 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1275 : : };
1276 : :
1277 : : /* IPV6 GRE IPV4 GTPU EH IPV6 */
1278 : : static const u8 ice_fdir_ipv6_gtpu4_eh_gre6_pkt[] = {
1279 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1280 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1281 : : 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1282 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1283 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1284 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1285 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1286 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1287 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1288 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1289 : : 0x08, 0x68, 0x00, 0x42, 0x1e, 0x9d, 0x34, 0xff,
1290 : : 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1291 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1292 : : 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1293 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1294 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1295 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1296 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1297 : : };
1298 : :
1299 : : static const u8 ice_fdir_udp6_gtpu4_eh_gre6_pkt[] = {
1300 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1301 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1302 : : 0x00, 0x00, 0x00, 0x62, 0x2f, 0x40, 0x00, 0x00,
1303 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1304 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1305 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1306 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1307 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x5e, 0x00, 0x01,
1308 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x8c, 0x7f, 0x00,
1309 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1310 : : 0x08, 0x68, 0x00, 0x4a, 0x48, 0x9a, 0x34, 0xff,
1311 : : 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1312 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1313 : : 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1314 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1315 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1316 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1317 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1318 : : 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1319 : : };
1320 : :
1321 : : static const u8 ice_fdir_tcp6_gtpu4_eh_gre6_pkt[] = {
1322 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1323 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1324 : : 0x00, 0x00, 0x00, 0x6e, 0x2f, 0x40, 0x00, 0x00,
1325 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1326 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1327 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1328 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1329 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x6a, 0x00, 0x01,
1330 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x80, 0x7f, 0x00,
1331 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1332 : : 0x08, 0x68, 0x00, 0x56, 0x53, 0x6b, 0x34, 0xff,
1333 : : 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1334 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1335 : : 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1336 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1337 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1338 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1339 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1340 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1341 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1342 : : 0x00, 0x00, 0x00, 0x00,
1343 : : };
1344 : :
1345 : : /* IPV4 GRE IPV4 GTPU DW IPV4 */
1346 : : static const u8 ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt[] = {
1347 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1348 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1349 : : 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1350 : : 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1351 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1352 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1353 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1354 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
1355 : : 0xba, 0x1d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
1356 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1357 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
1358 : : 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
1359 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
1360 : : };
1361 : :
1362 : : static const u8 ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt[] = {
1363 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1364 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1365 : : 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1366 : : 0x7c, 0x6a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1367 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1368 : : 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1369 : : 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1370 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
1371 : : 0xb8, 0x23, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
1372 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1373 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
1374 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
1375 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
1376 : : 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
1377 : : };
1378 : :
1379 : : static const u8 ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt[] = {
1380 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1381 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1382 : : 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1383 : : 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1384 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1385 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1386 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1387 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1388 : : 0xb8, 0x00, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1389 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1390 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
1391 : : 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
1392 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
1393 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1394 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
1395 : : 0x00, 0x00, 0x00, 0x00,
1396 : : };
1397 : :
1398 : : /* IPV4 GRE IPV4 GTPU DW IPV6 */
1399 : : static const u8 ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt[] = {
1400 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1401 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1402 : : 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1403 : : 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1404 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1405 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1406 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1407 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1408 : : 0x1e, 0x9d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1409 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1410 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
1411 : : 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1412 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1413 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1414 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1415 : : 0x00, 0x01, 0x00, 0x00,
1416 : : };
1417 : :
1418 : : static const u8 ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt[] = {
1419 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1420 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1421 : : 0x00, 0x76, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1422 : : 0x7c, 0x56, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1423 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1424 : : 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1425 : : 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1426 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
1427 : : 0x48, 0x9a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
1428 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1429 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
1430 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1431 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1432 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1433 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1434 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1435 : : 0xff, 0x6e, 0x00, 0x00,
1436 : : };
1437 : :
1438 : : static const u8 ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt[] = {
1439 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1440 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1441 : : 0x00, 0x82, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1442 : : 0x7c, 0x4a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1443 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1444 : : 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1445 : : 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1446 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
1447 : : 0x53, 0x6b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
1448 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00,
1449 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
1450 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1451 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1452 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1453 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1454 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1455 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1456 : : 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
1457 : : };
1458 : :
1459 : : /* IPV6 GRE IPV4 GTPU DW IPV4 */
1460 : : static const u8 ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt[] = {
1461 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1462 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1463 : : 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1464 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1465 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1466 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1467 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1468 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1469 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1470 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1471 : : 0x08, 0x68, 0x00, 0x2e, 0xba, 0x1d, 0x34, 0xff,
1472 : : 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1473 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1474 : : 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
1475 : : 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1476 : : 0x00, 0x01, 0x00, 0x00,
1477 : : };
1478 : :
1479 : : static const u8 ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt[] = {
1480 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1481 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1482 : : 0x00, 0x00, 0x00, 0x4e, 0x2f, 0x40, 0x00, 0x00,
1483 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1484 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1485 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1486 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1487 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x01,
1488 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa0, 0x7f, 0x00,
1489 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1490 : : 0x08, 0x68, 0x00, 0x36, 0xb8, 0x23, 0x34, 0xff,
1491 : : 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1492 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1493 : : 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1494 : : 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1495 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1496 : : 0x01, 0x6e, 0x00, 0x00,
1497 : : };
1498 : :
1499 : : static const u8 ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt[] = {
1500 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1501 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1502 : : 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1503 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1504 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1505 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1506 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1507 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1508 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1509 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1510 : : 0x08, 0x68, 0x00, 0x42, 0xb8, 0x00, 0x34, 0xff,
1511 : : 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1512 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00,
1513 : : 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1514 : : 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1515 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1516 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1517 : : 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1518 : : };
1519 : :
1520 : : /* IPV6 GRE IPV4 GTPU DW IPV6 */
1521 : : static const u8 ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt[] = {
1522 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1523 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1524 : : 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1525 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1526 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1527 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1528 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1529 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1530 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1531 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1532 : : 0x08, 0x68, 0x00, 0x42, 0x1e, 0x9d, 0x34, 0xff,
1533 : : 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1534 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1535 : : 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1536 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1537 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1538 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1539 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1540 : : };
1541 : :
1542 : : static const u8 ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt[] = {
1543 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1544 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1545 : : 0x00, 0x00, 0x00, 0x62, 0x2f, 0x40, 0x00, 0x00,
1546 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1547 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1548 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1549 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1550 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x5e, 0x00, 0x01,
1551 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x8c, 0x7f, 0x00,
1552 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1553 : : 0x08, 0x68, 0x00, 0x4a, 0x48, 0x9a, 0x34, 0xff,
1554 : : 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1555 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1556 : : 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1557 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1558 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1559 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1560 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1561 : : 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1562 : : };
1563 : :
1564 : : static const u8 ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt[] = {
1565 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1566 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1567 : : 0x00, 0x00, 0x00, 0x6e, 0x2f, 0x40, 0x00, 0x00,
1568 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1569 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1570 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1571 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1572 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x6a, 0x00, 0x01,
1573 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x80, 0x7f, 0x00,
1574 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1575 : : 0x08, 0x68, 0x00, 0x56, 0x53, 0x6b, 0x34, 0xff,
1576 : : 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1577 : : 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00,
1578 : : 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1579 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1580 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1581 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1582 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1583 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1584 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1585 : : 0x00, 0x00, 0x00, 0x00,
1586 : : };
1587 : :
1588 : : /* IPV4 GRE IPV4 GTPU UP IPV4 */
1589 : : static const u8 ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt[] = {
1590 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1591 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1592 : : 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1593 : : 0x7c, 0x72, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1594 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1595 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1596 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1597 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x2e,
1598 : : 0xba, 0x0d, 0x34, 0xff, 0x00, 0x1e, 0x00, 0x00,
1599 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1600 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x16, 0x00, 0x01,
1601 : : 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe5, 0x7f, 0x00,
1602 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
1603 : : };
1604 : :
1605 : : static const u8 ice_fdir_udp4_gtpu4_eh_up_gre4_pkt[] = {
1606 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1607 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1608 : : 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1609 : : 0x7c, 0x6a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1610 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1611 : : 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1612 : : 0x7c, 0xa0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1613 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x36,
1614 : : 0xb8, 0x13, 0x34, 0xff, 0x00, 0x26, 0x00, 0x00,
1615 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1616 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x1e, 0x00, 0x01,
1617 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xcc, 0x7f, 0x00,
1618 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35,
1619 : : 0x00, 0x35, 0x00, 0x0a, 0x01, 0x6e, 0x00, 0x00,
1620 : : };
1621 : :
1622 : : static const u8 ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt[] = {
1623 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1624 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1625 : : 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1626 : : 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1627 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1628 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1629 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1630 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1631 : : 0xb7, 0xf0, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1632 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1633 : : 0x00, 0x00, 0x45, 0x00, 0x00, 0x2a, 0x00, 0x01,
1634 : : 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcb, 0x7f, 0x00,
1635 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14,
1636 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1637 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x91, 0x7a,
1638 : : 0x00, 0x00, 0x00, 0x00,
1639 : : };
1640 : :
1641 : : /* IPV4 GRE IPV4 GTPU UP IPV6 */
1642 : : static const u8 ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt[] = {
1643 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1644 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1645 : : 0x00, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1646 : : 0x7c, 0x5e, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1647 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1648 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1649 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1650 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x42,
1651 : : 0x1e, 0x8d, 0x34, 0xff, 0x00, 0x32, 0x00, 0x00,
1652 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1653 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02,
1654 : : 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1655 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1656 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1657 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1658 : : 0x00, 0x01, 0x00, 0x00,
1659 : : };
1660 : :
1661 : : static const u8 ice_fdir_udp6_gtpu4_eh_up_gre4_pkt[] = {
1662 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1663 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1664 : : 0x00, 0x76, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1665 : : 0x7c, 0x56, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1666 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1667 : : 0x00, 0x5e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1668 : : 0x7c, 0x8c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1669 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x4a,
1670 : : 0x48, 0x8a, 0x34, 0xff, 0x00, 0x3a, 0x00, 0x00,
1671 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1672 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0a,
1673 : : 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1674 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1675 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1676 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1677 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1678 : : 0xff, 0x6e, 0x00, 0x00,
1679 : : };
1680 : :
1681 : : static const u8 ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt[] = {
1682 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1683 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1684 : : 0x00, 0x82, 0x00, 0x01, 0x00, 0x00, 0x40, 0x2f,
1685 : : 0x7c, 0x4a, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1686 : : 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1687 : : 0x00, 0x6a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1688 : : 0x7c, 0x80, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1689 : : 0x00, 0x01, 0x08, 0x68, 0x08, 0x68, 0x00, 0x56,
1690 : : 0x53, 0x5b, 0x34, 0xff, 0x00, 0x46, 0x00, 0x00,
1691 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x01, 0x10,
1692 : : 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x16,
1693 : : 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1694 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1695 : : 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1696 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1697 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1698 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1699 : : 0x20, 0x00, 0x8f, 0x7b, 0x00, 0x00, 0x00, 0x00,
1700 : : };
1701 : :
1702 : : /* IPV6 GRE IPV4 GTPU UP IPV4 */
1703 : : static const u8 ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt[] = {
1704 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1705 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1706 : : 0x00, 0x00, 0x00, 0x46, 0x2f, 0x40, 0x00, 0x00,
1707 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1708 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1709 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1710 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1711 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x42, 0x00, 0x01,
1712 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa8, 0x7f, 0x00,
1713 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1714 : : 0x08, 0x68, 0x00, 0x2e, 0xba, 0x0d, 0x34, 0xff,
1715 : : 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1716 : : 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x45, 0x00,
1717 : : 0x00, 0x16, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00,
1718 : : 0x7c, 0xe5, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1719 : : 0x00, 0x01, 0x00, 0x00,
1720 : : };
1721 : :
1722 : : static const u8 ice_fdir_udp4_gtpu4_eh_up_gre6_pkt[] = {
1723 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1724 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1725 : : 0x00, 0x00, 0x00, 0x4e, 0x2f, 0x40, 0x00, 0x00,
1726 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1727 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1728 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1729 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1730 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x01,
1731 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0xa0, 0x7f, 0x00,
1732 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1733 : : 0x08, 0x68, 0x00, 0x36, 0xb8, 0x13, 0x34, 0xff,
1734 : : 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1735 : : 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x45, 0x00,
1736 : : 0x00, 0x1e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1737 : : 0x7c, 0xcc, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1738 : : 0x00, 0x01, 0x00, 0x35, 0x00, 0x35, 0x00, 0x0a,
1739 : : 0x01, 0x6e, 0x00, 0x00,
1740 : : };
1741 : :
1742 : : static const u8 ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt[] = {
1743 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1744 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1745 : : 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1746 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1747 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1748 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1749 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1750 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1751 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1752 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1753 : : 0x08, 0x68, 0x00, 0x42, 0xb7, 0xf0, 0x34, 0xff,
1754 : : 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1755 : : 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x45, 0x00,
1756 : : 0x00, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
1757 : : 0x7c, 0xcb, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1758 : : 0x00, 0x01, 0x00, 0x14, 0x00, 0x50, 0x00, 0x00,
1759 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02,
1760 : : 0x20, 0x00, 0x91, 0x7a, 0x00, 0x00, 0x00, 0x00,
1761 : : };
1762 : :
1763 : : /* IPV6 GRE IPV4 GTPU UP IPV6 */
1764 : : static const u8 ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt[] = {
1765 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1766 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1767 : : 0x00, 0x00, 0x00, 0x5a, 0x2f, 0x40, 0x00, 0x00,
1768 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1769 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1770 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1771 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1772 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x56, 0x00, 0x01,
1773 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x94, 0x7f, 0x00,
1774 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1775 : : 0x08, 0x68, 0x00, 0x42, 0x1e, 0x8d, 0x34, 0xff,
1776 : : 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1777 : : 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00,
1778 : : 0x00, 0x00, 0x00, 0x02, 0x3b, 0x40, 0x00, 0x00,
1779 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1780 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1781 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1782 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1783 : : };
1784 : :
1785 : : static const u8 ice_fdir_udp6_gtpu4_eh_up_gre6_pkt[] = {
1786 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1787 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1788 : : 0x00, 0x00, 0x00, 0x62, 0x2f, 0x40, 0x00, 0x00,
1789 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1790 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1791 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1792 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1793 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x5e, 0x00, 0x01,
1794 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x8c, 0x7f, 0x00,
1795 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1796 : : 0x08, 0x68, 0x00, 0x4a, 0x48, 0x8a, 0x34, 0xff,
1797 : : 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1798 : : 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00,
1799 : : 0x00, 0x00, 0x00, 0x0a, 0x11, 0x40, 0x00, 0x00,
1800 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1801 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1802 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1803 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
1804 : : 0x00, 0x35, 0x00, 0x0a, 0xff, 0x6e, 0x00, 0x00,
1805 : : };
1806 : :
1807 : : static const u8 ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt[] = {
1808 : : 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1809 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1810 : : 0x00, 0x00, 0x00, 0x6e, 0x2f, 0x40, 0x00, 0x00,
1811 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1812 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1813 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1814 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1815 : : 0x08, 0x00, 0x45, 0x00, 0x00, 0x6a, 0x00, 0x01,
1816 : : 0x00, 0x00, 0x40, 0x11, 0x7c, 0x80, 0x7f, 0x00,
1817 : : 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01, 0x08, 0x68,
1818 : : 0x08, 0x68, 0x00, 0x56, 0x53, 0x5b, 0x34, 0xff,
1819 : : 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1820 : : 0x00, 0x85, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00,
1821 : : 0x00, 0x00, 0x00, 0x16, 0x06, 0x40, 0x00, 0x00,
1822 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1823 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1824 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1825 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14,
1826 : : 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1827 : : 0x00, 0x00, 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7b,
1828 : : 0x00, 0x00, 0x00, 0x00,
1829 : : };
1830 : :
1831 : : /* IPV4 L2TPV2 control */
1832 : : static const u8 ice_fdir_ipv4_l2tpv2_ctrl_pkt[] = {
1833 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1834 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1835 : : 0x00, 0x28, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1836 : : 0x7c, 0xc2, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1837 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x14,
1838 : : 0x2c, 0x6b, 0xc8, 0x02, 0x00, 0x0c, 0x00, 0x00,
1839 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1840 : : };
1841 : :
1842 : : /* IPV4 L2TPV2 */
1843 : : static const u8 ice_fdir_ipv4_l2tpv2_pkt[] = {
1844 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1845 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1846 : : 0x00, 0x28, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1847 : : 0x7c, 0xc2, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1848 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x14,
1849 : : 0x2c, 0x6b, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1850 : : 0x00, 0x00,
1851 : : };
1852 : :
1853 : : /* IPV4 PPPOL2TPV2 */
1854 : : static const u8 ice_fdir_ipv4_l2tpv2_ppp_pkt[] = {
1855 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1856 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1857 : : 0x00, 0x26, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1858 : : 0x7c, 0xc4, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1859 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x12,
1860 : : 0xf5, 0x77, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1861 : : 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
1862 : : };
1863 : :
1864 : : /* IPV4 PPPOL2TPV2 IPV4 */
1865 : : static const u8 ice_fdir_ipv4_l2tpv2_ppp4_pkt[] = {
1866 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1867 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1868 : : 0x00, 0x3a, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1869 : : 0x7c, 0xb0, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1870 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x26,
1871 : : 0xf5, 0x2e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1872 : : 0xff, 0x03, 0x00, 0x21, 0x45, 0x00, 0x00, 0x14,
1873 : : 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x7c, 0xe7,
1874 : : 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01,
1875 : : 0x00, 0x00,
1876 : : };
1877 : :
1878 : : /* IPV4 PPPOL2TPV2 IPV4 UDP */
1879 : : static const u8 ice_fdir_udp4_l2tpv2_ppp4_pkt[] = {
1880 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1881 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1882 : : 0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1883 : : 0x7c, 0xa8, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1884 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x2e,
1885 : : 0xf3, 0x3a, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1886 : : 0xff, 0x03, 0x00, 0x21, 0x45, 0x00, 0x00, 0x1c,
1887 : : 0x00, 0x01, 0x00, 0x00, 0x40, 0x11, 0x7c, 0xce,
1888 : : 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01,
1889 : : 0x00, 0x35, 0x00, 0x35, 0x00, 0x08, 0x01, 0x72,
1890 : : 0x00, 0x00,
1891 : : };
1892 : :
1893 : : /* IPV4 PPPOL2TPV2 IPV4 TCP */
1894 : : static const u8 ice_fdir_tcp4_l2tpv2_ppp4_pkt[] = {
1895 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1896 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1897 : : 0x00, 0x4e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1898 : : 0x7c, 0x9c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1899 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x3a,
1900 : : 0xf3, 0x23, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1901 : : 0xff, 0x03, 0x00, 0x21, 0x45, 0x00, 0x00, 0x28,
1902 : : 0x00, 0x01, 0x00, 0x00, 0x40, 0x06, 0x7c, 0xcd,
1903 : : 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00, 0x00, 0x01,
1904 : : 0x00, 0x14, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00,
1905 : : 0x00, 0x00, 0x00, 0x00, 0x50, 0x02, 0x20, 0x00,
1906 : : 0x91, 0x7c, 0x00, 0x00, 0x00, 0x00,
1907 : : };
1908 : :
1909 : : /* IPV4 PPPOL2TPV2 IPV6 */
1910 : : static const u8 ice_fdir_ipv6_l2tpv2_ppp4_pkt[] = {
1911 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1912 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1913 : : 0x00, 0x4e, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1914 : : 0x7c, 0x9c, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1915 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x3a,
1916 : : 0x59, 0x8e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1917 : : 0xff, 0x03, 0x00, 0x57, 0x60, 0x00, 0x00, 0x00,
1918 : : 0x00, 0x00, 0x3b, 0x40, 0x00, 0x00, 0x00, 0x00,
1919 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1920 : : 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1921 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1922 : : 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1923 : : };
1924 : :
1925 : : /* IPV4 PPPOL2TPV2 IPV6 UDP */
1926 : : static const u8 ice_fdir_udp6_l2tpv2_ppp4_pkt[] = {
1927 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1928 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1929 : : 0x00, 0x56, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1930 : : 0x7c, 0x94, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1931 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x42,
1932 : : 0x83, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1933 : : 0xff, 0x03, 0x00, 0x57, 0x60, 0x00, 0x00, 0x00,
1934 : : 0x00, 0x08, 0x11, 0x40, 0x00, 0x00, 0x00, 0x00,
1935 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1936 : : 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1937 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1938 : : 0x00, 0x00, 0x00, 0x01, 0x00, 0x35, 0x00, 0x35,
1939 : : 0x00, 0x08, 0xff, 0x72, 0x00, 0x00,
1940 : : };
1941 : :
1942 : : /* IPV4 PPPOL2TPV2 IPV6 TCP */
1943 : : static const u8 ice_fdir_tcp6_l2tpv2_ppp4_pkt[] = {
1944 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1945 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
1946 : : 0x00, 0x62, 0x00, 0x01, 0x00, 0x00, 0x40, 0x11,
1947 : : 0x7c, 0x88, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00,
1948 : : 0x00, 0x01, 0x06, 0xa5, 0x06, 0xa5, 0x00, 0x4e,
1949 : : 0x8e, 0x6e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1950 : : 0xff, 0x03, 0x00, 0x57, 0x60, 0x00, 0x00, 0x00,
1951 : : 0x00, 0x14, 0x06, 0x40, 0x00, 0x00, 0x00, 0x00,
1952 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1953 : : 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1954 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1955 : : 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x50,
1956 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1957 : : 0x50, 0x02, 0x20, 0x00, 0x8f, 0x7d, 0x00, 0x00,
1958 : : 0x00, 0x00,
1959 : : };
1960 : :
1961 : : /* IPV6 L2TPV2 control */
1962 : : static const u8 ice_fdir_ipv6_l2tpv2_ctrl_pkt[] = {
1963 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1964 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1965 : : 0x00, 0x00, 0x00, 0x14, 0x11, 0x40, 0x00, 0x00,
1966 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1967 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1968 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1969 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
1970 : : 0x06, 0xa5, 0x00, 0x14, 0x2a, 0x6c, 0xc8, 0x02,
1971 : : 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1972 : : 0x00, 0x00, 0x00, 0x00,
1973 : : };
1974 : :
1975 : : /* IPV6 L2TPV2 */
1976 : : static const u8 ice_fdir_ipv6_l2tpv2_pkt[] = {
1977 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1978 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1979 : : 0x00, 0x00, 0x00, 0x14, 0x11, 0x40, 0x00, 0x00,
1980 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1981 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1982 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1983 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
1984 : : 0x06, 0xa5, 0x00, 0x14, 0x2a, 0x6c, 0x00, 0x02,
1985 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1986 : : };
1987 : :
1988 : : /* IPV6 PPPOL2TPV2 */
1989 : : static const u8 ice_fdir_ipv6_l2tpv2_ppp_pkt[] = {
1990 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1991 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
1992 : : 0x00, 0x00, 0x00, 0x12, 0x11, 0x40, 0x00, 0x00,
1993 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1994 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
1995 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1996 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
1997 : : 0x06, 0xa5, 0x00, 0x12, 0xf3, 0x78, 0x00, 0x02,
1998 : : 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00,
1999 : : 0x00, 0x00,
2000 : : };
2001 : :
2002 : : /* IPV6 PPPOL2TPV2 IPV4 */
2003 : : static const u8 ice_fdir_ipv4_l2tpv2_ppp6_pkt[] = {
2004 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2005 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
2006 : : 0x00, 0x00, 0x00, 0x26, 0x11, 0x40, 0x00, 0x00,
2007 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2008 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
2009 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2010 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
2011 : : 0x06, 0xa5, 0x00, 0x26, 0xf3, 0x2f, 0x00, 0x02,
2012 : : 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x21,
2013 : : 0x45, 0x00, 0x00, 0x14, 0x00, 0x01, 0x00, 0x00,
2014 : : 0x40, 0x00, 0x7c, 0xe7, 0x7f, 0x00, 0x00, 0x01,
2015 : : 0x7f, 0x00, 0x00, 0x01, 0x00, 0x00,
2016 : : };
2017 : :
2018 : : /* IPV6 PPPOL2TPV2 IPV4 UDP */
2019 : : static const u8 ice_fdir_udp4_l2tpv2_ppp6_pkt[] = {
2020 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2021 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
2022 : : 0x00, 0x00, 0x00, 0x2e, 0x11, 0x40, 0x00, 0x00,
2023 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2024 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
2025 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2026 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
2027 : : 0x06, 0xa5, 0x00, 0x2e, 0xf1, 0x3b, 0x00, 0x02,
2028 : : 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x21,
2029 : : 0x45, 0x00, 0x00, 0x1c, 0x00, 0x01, 0x00, 0x00,
2030 : : 0x40, 0x11, 0x7c, 0xce, 0x7f, 0x00, 0x00, 0x01,
2031 : : 0x7f, 0x00, 0x00, 0x01, 0x00, 0x35, 0x00, 0x35,
2032 : : 0x00, 0x08, 0x01, 0x72, 0x00, 0x00,
2033 : : };
2034 : :
2035 : : /* IPV6 PPPOL2TPV2 IPV4 TCP */
2036 : : static const u8 ice_fdir_tcp4_l2tpv2_ppp6_pkt[] = {
2037 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2038 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
2039 : : 0x00, 0x00, 0x00, 0x3a, 0x11, 0x40, 0x00, 0x00,
2040 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2041 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
2042 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2043 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
2044 : : 0x06, 0xa5, 0x00, 0x3a, 0xf1, 0x24, 0x00, 0x02,
2045 : : 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x21,
2046 : : 0x45, 0x00, 0x00, 0x28, 0x00, 0x01, 0x00, 0x00,
2047 : : 0x40, 0x06, 0x7c, 0xcd, 0x7f, 0x00, 0x00, 0x01,
2048 : : 0x7f, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x50,
2049 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2050 : : 0x50, 0x02, 0x20, 0x00, 0x91, 0x7c, 0x00, 0x00,
2051 : : 0x00, 0x00,
2052 : : };
2053 : :
2054 : : /* IPV6 PPPOL2TPV2 IPV6 */
2055 : : static const u8 ice_fdir_ipv6_l2tpv2_ppp6_pkt[] = {
2056 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2057 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
2058 : : 0x00, 0x00, 0x00, 0x3a, 0x11, 0x40, 0x00, 0x00,
2059 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2060 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
2061 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2062 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
2063 : : 0x06, 0xa5, 0x00, 0x3a, 0x57, 0x8f, 0x00, 0x02,
2064 : : 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x57,
2065 : : 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x40,
2066 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2067 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
2068 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2069 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
2070 : : 0x00, 0x00,
2071 : : };
2072 : :
2073 : : /* IPV6 PPPOL2TPV2 IPV6 UDP */
2074 : : static const u8 ice_fdir_udp6_l2tpv2_ppp6_pkt[] = {
2075 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2076 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
2077 : : 0x00, 0x00, 0x00, 0x42, 0x11, 0x40, 0x00, 0x00,
2078 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2079 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
2080 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2081 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
2082 : : 0x06, 0xa5, 0x00, 0x42, 0x81, 0x92, 0x00, 0x02,
2083 : : 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x57,
2084 : : 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, 0x40,
2085 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2086 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
2087 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2088 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
2089 : : 0x00, 0x35, 0x00, 0x35, 0x00, 0x08, 0xff, 0x72,
2090 : : 0x00, 0x00,
2091 : : };
2092 : :
2093 : : /* IPV6 PPPOL2TPV2 IPV6 TCP */
2094 : : static const u8 ice_fdir_tcp6_l2tpv2_ppp6_pkt[] = {
2095 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2096 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd, 0x60, 0x00,
2097 : : 0x00, 0x00, 0x00, 0x4e, 0x11, 0x40, 0x00, 0x00,
2098 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2099 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
2100 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2101 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xa5,
2102 : : 0x06, 0xa5, 0x00, 0x4e, 0x8c, 0x6f, 0x00, 0x02,
2103 : : 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x57,
2104 : : 0x60, 0x00, 0x00, 0x00, 0x00, 0x14, 0x06, 0x40,
2105 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2106 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
2107 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2108 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
2109 : : 0x00, 0x14, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00,
2110 : : 0x00, 0x00, 0x00, 0x00, 0x50, 0x02, 0x20, 0x00,
2111 : : 0x8f, 0x7d, 0x00, 0x00, 0x00, 0x00,
2112 : : };
2113 : :
2114 : : static const u8 ice_fdir_tcpv6_pkt[] = {
2115 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2116 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
2117 : : 0x00, 0x00, 0x00, 0x14, 0x06, 0x40, 0x00, 0x00,
2118 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2119 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2120 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2121 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2122 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2123 : : 0x00, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00,
2124 : : 0x00, 0x00,
2125 : : };
2126 : :
2127 : : static const u8 ice_fdir_udpv6_pkt[] = {
2128 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2129 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
2130 : : 0x00, 0x00, 0x00, 0x08, 0x11, 0x40, 0x00, 0x00,
2131 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2132 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2133 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2134 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2135 : : 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
2136 : : };
2137 : :
2138 : : static const u8 ice_fdir_sctpv6_pkt[] = {
2139 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2140 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
2141 : : 0x00, 0x00, 0x00, 0x0C, 0x84, 0x40, 0x00, 0x00,
2142 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2143 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2144 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2145 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2146 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2147 : : 0x00, 0x00,
2148 : : };
2149 : :
2150 : : static const u8 ice_fdir_ipv6_pkt[] = {
2151 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2152 : : 0x00, 0x00, 0x00, 0x00, 0x86, 0xDD, 0x60, 0x00,
2153 : : 0x00, 0x00, 0x00, 0x00, 0x3B, 0x40, 0x00, 0x00,
2154 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2155 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2156 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2157 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2158 : : };
2159 : :
2160 : : static const u8 ice_fdir_tcp4_tun_pkt[] = {
2161 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2162 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2163 : : 0x00, 0x5a, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2164 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2165 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2166 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2167 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2168 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
2169 : : 0x45, 0x00, 0x00, 0x28, 0x00, 0x00, 0x40, 0x00,
2170 : : 0x40, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2171 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2172 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2173 : : 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
2174 : : };
2175 : :
2176 : : static const u8 ice_fdir_udp4_tun_pkt[] = {
2177 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2178 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2179 : : 0x00, 0x4e, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2180 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2181 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2182 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2183 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2184 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
2185 : : 0x45, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x40, 0x00,
2186 : : 0x40, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2187 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2188 : : 0x00, 0x00, 0x00, 0x00,
2189 : : };
2190 : :
2191 : : static const u8 ice_fdir_sctp4_tun_pkt[] = {
2192 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2193 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2194 : : 0x00, 0x52, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2195 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2196 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2197 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2198 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2199 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
2200 : : 0x45, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x00,
2201 : : 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2202 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2203 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2204 : : };
2205 : :
2206 : : static const u8 ice_fdir_ip4_tun_pkt[] = {
2207 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2208 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2209 : : 0x00, 0x46, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2210 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2211 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2212 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2213 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2214 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
2215 : : 0x45, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00,
2216 : : 0x40, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2217 : : 0x00, 0x00, 0x00, 0x00,
2218 : : };
2219 : :
2220 : : static const u8 ice_fdir_tcp6_tun_pkt[] = {
2221 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2222 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2223 : : 0x00, 0x6e, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2224 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2225 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2226 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2227 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2228 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
2229 : : 0x60, 0x00, 0x00, 0x00, 0x00, 0x14, 0x06, 0x40,
2230 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2231 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2232 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2233 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2234 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2235 : : 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x20, 0x00,
2236 : : 0x00, 0x00, 0x00, 0x00,
2237 : : };
2238 : :
2239 : : static const u8 ice_fdir_udp6_tun_pkt[] = {
2240 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2241 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2242 : : 0x00, 0x62, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2243 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2244 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2245 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2246 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2247 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
2248 : : 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, 0x40,
2249 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2250 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2251 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2252 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2253 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2254 : : };
2255 : :
2256 : : static const u8 ice_fdir_sctp6_tun_pkt[] = {
2257 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2258 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2259 : : 0x00, 0x66, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2260 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2261 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2262 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2263 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2264 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
2265 : : 0x60, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x84, 0x40,
2266 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2267 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2268 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2269 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2270 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2271 : : 0x00, 0x00, 0x00, 0x00,
2272 : : };
2273 : :
2274 : : static const u8 ice_fdir_ip6_tun_pkt[] = {
2275 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2276 : : 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x00,
2277 : : 0x00, 0x5a, 0x00, 0x00, 0x40, 0x00, 0x40, 0x11,
2278 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2279 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2280 : : 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00,
2281 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2282 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xdd,
2283 : : 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x40,
2284 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2285 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2286 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2287 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2288 : : };
2289 : :
2290 : : /* Flow Director no-op training packet table */
2291 : : static const struct ice_fdir_base_pkt ice_fdir_pkt[] = {
2292 : : {
2293 : : ICE_FLTR_PTYPE_NONF_IPV4_TCP,
2294 : : sizeof(ice_fdir_tcpv4_pkt), ice_fdir_tcpv4_pkt,
2295 : : sizeof(ice_fdir_tcp4_tun_pkt), ice_fdir_tcp4_tun_pkt,
2296 : : },
2297 : : {
2298 : : ICE_FLTR_PTYPE_NONF_IPV4_UDP,
2299 : : sizeof(ice_fdir_udpv4_pkt), ice_fdir_udpv4_pkt,
2300 : : sizeof(ice_fdir_udp4_tun_pkt), ice_fdir_udp4_tun_pkt,
2301 : : },
2302 : : {
2303 : : ICE_FLTR_PTYPE_NONF_IPV4_SCTP,
2304 : : sizeof(ice_fdir_sctpv4_pkt), ice_fdir_sctpv4_pkt,
2305 : : sizeof(ice_fdir_sctp4_tun_pkt), ice_fdir_sctp4_tun_pkt,
2306 : : },
2307 : : {
2308 : : ICE_FLTR_PTYPE_NONF_IPV4_OTHER,
2309 : : sizeof(ice_fdir_ipv4_pkt), ice_fdir_ipv4_pkt,
2310 : : sizeof(ice_fdir_ip4_tun_pkt), ice_fdir_ip4_tun_pkt,
2311 : : },
2312 : : {
2313 : : ICE_FLTR_PTYPE_FRAG_IPV4,
2314 : : sizeof(ice_fdir_ipv4_frag_pkt), ice_fdir_ipv4_frag_pkt,
2315 : : sizeof(ice_fdir_ipv4_frag_pkt), ice_fdir_ipv4_frag_pkt,
2316 : : },
2317 : : {
2318 : : ICE_FLTR_PTYPE_FRAG_IPV6,
2319 : : sizeof(ice_fdir_ipv6_frag_pkt), ice_fdir_ipv6_frag_pkt,
2320 : : sizeof(ice_fdir_ipv6_frag_pkt), ice_fdir_ipv6_frag_pkt,
2321 : : },
2322 : : {
2323 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU,
2324 : : sizeof(ice_fdir_ipv4_gtpu4_pkt),
2325 : : ice_fdir_ipv4_gtpu4_pkt,
2326 : : sizeof(ice_fdir_ipv4_gtpu4_pkt),
2327 : : ice_fdir_ipv4_gtpu4_pkt,
2328 : : },
2329 : : {
2330 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH,
2331 : : sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2332 : : ice_fdir_ipv4_gtpu4_eh_pkt,
2333 : : sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2334 : : ice_fdir_ipv4_gtpu4_eh_pkt,
2335 : : },
2336 : : {
2337 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW,
2338 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2339 : : ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2340 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2341 : : ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2342 : : },
2343 : : {
2344 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP,
2345 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2346 : : ice_fdir_ipv4_gtpu4_eh_up_pkt,
2347 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2348 : : ice_fdir_ipv4_gtpu4_eh_up_pkt,
2349 : : },
2350 : : /* IPV4 GRE IPV4 GTPU */
2351 : : {
2352 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU,
2353 : : sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2354 : : ice_fdir_ipv4_gtpu4_gre4_pkt,
2355 : : sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2356 : : ice_fdir_ipv4_gtpu4_gre4_pkt,
2357 : : },
2358 : : /* IPV4 GRE IPV4 GTPU EH */
2359 : : {
2360 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH,
2361 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2362 : : ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2363 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2364 : : ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2365 : : },
2366 : : /* IPV4 GRE IPV4 GTPU DW */
2367 : : {
2368 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW,
2369 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
2370 : : ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
2371 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
2372 : : ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
2373 : : },
2374 : : /* IPV4 GRE IPV4 GTPU UP */
2375 : : {
2376 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP,
2377 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
2378 : : ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
2379 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
2380 : : ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
2381 : : },
2382 : : /* IPV6 GRE IPV4 GTPU */
2383 : : {
2384 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU,
2385 : : sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2386 : : ice_fdir_ipv4_gtpu4_gre6_pkt,
2387 : : sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2388 : : ice_fdir_ipv4_gtpu4_gre6_pkt,
2389 : : },
2390 : : /* IPV6 GRE IPV4 GTPU EH */
2391 : : {
2392 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH,
2393 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2394 : : ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2395 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2396 : : ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2397 : : },
2398 : : /* IPV6 GRE IPV4 GTPU DW */
2399 : : {
2400 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW,
2401 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
2402 : : ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
2403 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
2404 : : ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
2405 : : },
2406 : : /* IPV6 GRE IPV4 GTPU UP */
2407 : : {
2408 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP,
2409 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
2410 : : ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
2411 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
2412 : : ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
2413 : : },
2414 : : {
2415 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4,
2416 : : sizeof(ice_fdir_ipv4_gtpu4_pkt),
2417 : : ice_fdir_ipv4_gtpu4_pkt,
2418 : : sizeof(ice_fdir_ipv4_gtpu4_pkt),
2419 : : ice_fdir_ipv4_gtpu4_pkt,
2420 : : },
2421 : : {
2422 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_UDP,
2423 : : sizeof(ice_fdir_udp4_gtpu4_pkt),
2424 : : ice_fdir_udp4_gtpu4_pkt,
2425 : : sizeof(ice_fdir_udp4_gtpu4_pkt),
2426 : : ice_fdir_udp4_gtpu4_pkt,
2427 : : },
2428 : : {
2429 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP,
2430 : : sizeof(ice_fdir_tcp4_gtpu4_pkt),
2431 : : ice_fdir_tcp4_gtpu4_pkt,
2432 : : sizeof(ice_fdir_tcp4_gtpu4_pkt),
2433 : : ice_fdir_tcp4_gtpu4_pkt,
2434 : : },
2435 : : {
2436 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6,
2437 : : sizeof(ice_fdir_ipv6_gtpu4_pkt),
2438 : : ice_fdir_ipv6_gtpu4_pkt,
2439 : : sizeof(ice_fdir_ipv6_gtpu4_pkt),
2440 : : ice_fdir_ipv6_gtpu4_pkt,
2441 : : },
2442 : : {
2443 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_UDP,
2444 : : sizeof(ice_fdir_udp6_gtpu4_pkt),
2445 : : ice_fdir_udp6_gtpu4_pkt,
2446 : : sizeof(ice_fdir_udp6_gtpu4_pkt),
2447 : : ice_fdir_udp6_gtpu4_pkt,
2448 : : },
2449 : : {
2450 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_TCP,
2451 : : sizeof(ice_fdir_tcp6_gtpu4_pkt),
2452 : : ice_fdir_tcp6_gtpu4_pkt,
2453 : : sizeof(ice_fdir_tcp6_gtpu4_pkt),
2454 : : ice_fdir_tcp6_gtpu4_pkt,
2455 : : },
2456 : : {
2457 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4,
2458 : : sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2459 : : ice_fdir_ipv4_gtpu4_eh_pkt,
2460 : : sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2461 : : ice_fdir_ipv4_gtpu4_eh_pkt,
2462 : : },
2463 : : {
2464 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_UDP,
2465 : : sizeof(ice_fdir_udp4_gtpu4_eh_pkt),
2466 : : ice_fdir_udp4_gtpu4_eh_pkt,
2467 : : sizeof(ice_fdir_udp4_gtpu4_eh_pkt),
2468 : : ice_fdir_udp4_gtpu4_eh_pkt,
2469 : : },
2470 : : {
2471 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_TCP,
2472 : : sizeof(ice_fdir_tcp4_gtpu4_eh_pkt),
2473 : : ice_fdir_tcp4_gtpu4_eh_pkt,
2474 : : sizeof(ice_fdir_tcp4_gtpu4_eh_pkt),
2475 : : ice_fdir_tcp4_gtpu4_eh_pkt,
2476 : : },
2477 : : {
2478 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6,
2479 : : sizeof(ice_fdir_ipv6_gtpu4_eh_pkt),
2480 : : ice_fdir_ipv6_gtpu4_eh_pkt,
2481 : : sizeof(ice_fdir_ipv6_gtpu4_eh_pkt),
2482 : : ice_fdir_ipv6_gtpu4_eh_pkt,
2483 : : },
2484 : : {
2485 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_UDP,
2486 : : sizeof(ice_fdir_udp6_gtpu4_eh_pkt),
2487 : : ice_fdir_udp6_gtpu4_eh_pkt,
2488 : : sizeof(ice_fdir_udp6_gtpu4_eh_pkt),
2489 : : ice_fdir_udp6_gtpu4_eh_pkt,
2490 : : },
2491 : : {
2492 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_TCP,
2493 : : sizeof(ice_fdir_tcp6_gtpu4_eh_pkt),
2494 : : ice_fdir_tcp6_gtpu4_eh_pkt,
2495 : : sizeof(ice_fdir_tcp6_gtpu4_eh_pkt),
2496 : : ice_fdir_tcp6_gtpu4_eh_pkt,
2497 : : },
2498 : : {
2499 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4,
2500 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2501 : : ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2502 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_pkt),
2503 : : ice_fdir_ipv4_gtpu4_eh_dw_pkt,
2504 : : },
2505 : : {
2506 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_UDP,
2507 : : sizeof(ice_fdir_udp4_gtpu4_eh_dw_pkt),
2508 : : ice_fdir_udp4_gtpu4_eh_dw_pkt,
2509 : : sizeof(ice_fdir_udp4_gtpu4_eh_dw_pkt),
2510 : : ice_fdir_udp4_gtpu4_eh_dw_pkt,
2511 : : },
2512 : : {
2513 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_TCP,
2514 : : sizeof(ice_fdir_tcp4_gtpu4_eh_dw_pkt),
2515 : : ice_fdir_tcp4_gtpu4_eh_dw_pkt,
2516 : : sizeof(ice_fdir_tcp4_gtpu4_eh_dw_pkt),
2517 : : ice_fdir_tcp4_gtpu4_eh_dw_pkt,
2518 : : },
2519 : : {
2520 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6,
2521 : : sizeof(ice_fdir_ipv6_gtpu4_eh_dw_pkt),
2522 : : ice_fdir_ipv6_gtpu4_eh_dw_pkt,
2523 : : sizeof(ice_fdir_ipv6_gtpu4_eh_dw_pkt),
2524 : : ice_fdir_ipv6_gtpu4_eh_dw_pkt,
2525 : : },
2526 : : {
2527 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_UDP,
2528 : : sizeof(ice_fdir_udp6_gtpu4_eh_dw_pkt),
2529 : : ice_fdir_udp6_gtpu4_eh_dw_pkt,
2530 : : sizeof(ice_fdir_udp6_gtpu4_eh_dw_pkt),
2531 : : ice_fdir_udp6_gtpu4_eh_dw_pkt,
2532 : : },
2533 : : {
2534 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_TCP,
2535 : : sizeof(ice_fdir_tcp6_gtpu4_eh_dw_pkt),
2536 : : ice_fdir_tcp6_gtpu4_eh_dw_pkt,
2537 : : sizeof(ice_fdir_tcp6_gtpu4_eh_dw_pkt),
2538 : : ice_fdir_tcp6_gtpu4_eh_dw_pkt,
2539 : : },
2540 : : {
2541 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4,
2542 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2543 : : ice_fdir_ipv4_gtpu4_eh_up_pkt,
2544 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_pkt),
2545 : : ice_fdir_ipv4_gtpu4_eh_up_pkt,
2546 : : },
2547 : : {
2548 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_UDP,
2549 : : sizeof(ice_fdir_udp4_gtpu4_eh_up_pkt),
2550 : : ice_fdir_udp4_gtpu4_eh_up_pkt,
2551 : : sizeof(ice_fdir_udp4_gtpu4_eh_up_pkt),
2552 : : ice_fdir_udp4_gtpu4_eh_up_pkt,
2553 : : },
2554 : : {
2555 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_TCP,
2556 : : sizeof(ice_fdir_tcp4_gtpu4_eh_up_pkt),
2557 : : ice_fdir_tcp4_gtpu4_eh_up_pkt,
2558 : : sizeof(ice_fdir_tcp4_gtpu4_eh_up_pkt),
2559 : : ice_fdir_tcp4_gtpu4_eh_up_pkt,
2560 : : },
2561 : : {
2562 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6,
2563 : : sizeof(ice_fdir_ipv6_gtpu4_eh_up_pkt),
2564 : : ice_fdir_ipv6_gtpu4_eh_up_pkt,
2565 : : sizeof(ice_fdir_ipv6_gtpu4_eh_up_pkt),
2566 : : ice_fdir_ipv6_gtpu4_eh_up_pkt,
2567 : : },
2568 : : {
2569 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_UDP,
2570 : : sizeof(ice_fdir_udp6_gtpu4_eh_up_pkt),
2571 : : ice_fdir_udp6_gtpu4_eh_up_pkt,
2572 : : sizeof(ice_fdir_udp6_gtpu4_eh_up_pkt),
2573 : : ice_fdir_udp6_gtpu4_eh_up_pkt,
2574 : : },
2575 : : {
2576 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_TCP,
2577 : : sizeof(ice_fdir_tcp6_gtpu4_eh_up_pkt),
2578 : : ice_fdir_tcp6_gtpu4_eh_up_pkt,
2579 : : sizeof(ice_fdir_tcp6_gtpu4_eh_up_pkt),
2580 : : ice_fdir_tcp6_gtpu4_eh_up_pkt,
2581 : : },
2582 : : {
2583 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_ICMP,
2584 : : sizeof(ice_fdir_icmp4_gtpu4_pkt),
2585 : : ice_fdir_icmp4_gtpu4_pkt,
2586 : : sizeof(ice_fdir_icmp4_gtpu4_pkt),
2587 : : ice_fdir_icmp4_gtpu4_pkt,
2588 : : },
2589 : : {
2590 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_OTHER,
2591 : : sizeof(ice_fdir_ipv4_gtpu4_pkt),
2592 : : ice_fdir_ipv4_gtpu4_pkt,
2593 : : sizeof(ice_fdir_ipv4_gtpu4_pkt),
2594 : : ice_fdir_ipv4_gtpu4_pkt,
2595 : : },
2596 : : {
2597 : : ICE_FLTR_PTYPE_NONF_IPV6_GTPU,
2598 : : sizeof(ice_fdir_ipv6_gtpu6_pkt),
2599 : : ice_fdir_ipv6_gtpu6_pkt,
2600 : : sizeof(ice_fdir_ipv6_gtpu6_pkt),
2601 : : ice_fdir_ipv6_gtpu6_pkt,
2602 : : },
2603 : : {
2604 : : ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH,
2605 : : sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2606 : : ice_fdir_ipv6_gtpu6_eh_pkt,
2607 : : sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2608 : : ice_fdir_ipv6_gtpu6_eh_pkt,
2609 : : },
2610 : : {
2611 : : ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_DW,
2612 : : sizeof(ice_fdir_ipv6_gtpu6_eh_dw_pkt),
2613 : : ice_fdir_ipv6_gtpu6_eh_dw_pkt,
2614 : : sizeof(ice_fdir_ipv6_gtpu6_eh_dw_pkt),
2615 : : ice_fdir_ipv6_gtpu6_eh_dw_pkt,
2616 : : },
2617 : : {
2618 : : ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_UP,
2619 : : sizeof(ice_fdir_ipv6_gtpu6_eh_up_pkt),
2620 : : ice_fdir_ipv6_gtpu6_eh_up_pkt,
2621 : : sizeof(ice_fdir_ipv6_gtpu6_eh_up_pkt),
2622 : : ice_fdir_ipv6_gtpu6_eh_up_pkt,
2623 : : },
2624 : : {
2625 : : ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER,
2626 : : sizeof(ice_fdir_ipv6_gtpu6_pkt),
2627 : : ice_fdir_ipv6_gtpu6_pkt,
2628 : : sizeof(ice_fdir_ipv6_gtpu6_pkt),
2629 : : ice_fdir_ipv6_gtpu6_pkt,
2630 : : },
2631 : : {
2632 : : ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_OTHER,
2633 : : sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2634 : : ice_fdir_ipv4_gtpu4_eh_pkt,
2635 : : sizeof(ice_fdir_ipv4_gtpu4_eh_pkt),
2636 : : ice_fdir_ipv4_gtpu4_eh_pkt,
2637 : : },
2638 : : {
2639 : : ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_IPV6_OTHER,
2640 : : sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2641 : : ice_fdir_ipv6_gtpu6_eh_pkt,
2642 : : sizeof(ice_fdir_ipv6_gtpu6_eh_pkt),
2643 : : ice_fdir_ipv6_gtpu6_eh_pkt,
2644 : : },
2645 : : {
2646 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV3,
2647 : : sizeof(ice_fdir_ipv4_l2tpv3_pkt), ice_fdir_ipv4_l2tpv3_pkt,
2648 : : sizeof(ice_fdir_ipv4_l2tpv3_pkt), ice_fdir_ipv4_l2tpv3_pkt,
2649 : : },
2650 : : {
2651 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV3,
2652 : : sizeof(ice_fdir_ipv6_l2tpv3_pkt), ice_fdir_ipv6_l2tpv3_pkt,
2653 : : sizeof(ice_fdir_ipv6_l2tpv3_pkt), ice_fdir_ipv6_l2tpv3_pkt,
2654 : : },
2655 : : {
2656 : : ICE_FLTR_PTYPE_NONF_IPV4_ESP,
2657 : : sizeof(ice_fdir_ipv4_esp_pkt), ice_fdir_ipv4_esp_pkt,
2658 : : sizeof(ice_fdir_ipv4_esp_pkt), ice_fdir_ipv4_esp_pkt,
2659 : : },
2660 : : {
2661 : : ICE_FLTR_PTYPE_NONF_IPV6_ESP,
2662 : : sizeof(ice_fdir_ipv6_esp_pkt), ice_fdir_ipv6_esp_pkt,
2663 : : sizeof(ice_fdir_ipv6_esp_pkt), ice_fdir_ipv6_esp_pkt,
2664 : : },
2665 : : {
2666 : : ICE_FLTR_PTYPE_NONF_IPV4_AH,
2667 : : sizeof(ice_fdir_ipv4_ah_pkt), ice_fdir_ipv4_ah_pkt,
2668 : : sizeof(ice_fdir_ipv4_ah_pkt), ice_fdir_ipv4_ah_pkt,
2669 : : },
2670 : : {
2671 : : ICE_FLTR_PTYPE_NONF_IPV6_AH,
2672 : : sizeof(ice_fdir_ipv6_ah_pkt), ice_fdir_ipv6_ah_pkt,
2673 : : sizeof(ice_fdir_ipv6_ah_pkt), ice_fdir_ipv6_ah_pkt,
2674 : : },
2675 : : {
2676 : : ICE_FLTR_PTYPE_NONF_IPV4_NAT_T_ESP,
2677 : : sizeof(ice_fdir_ipv4_nat_t_esp_pkt),
2678 : : ice_fdir_ipv4_nat_t_esp_pkt,
2679 : : sizeof(ice_fdir_ipv4_nat_t_esp_pkt),
2680 : : ice_fdir_ipv4_nat_t_esp_pkt,
2681 : : },
2682 : : {
2683 : : ICE_FLTR_PTYPE_NONF_IPV6_NAT_T_ESP,
2684 : : sizeof(ice_fdir_ipv6_nat_t_esp_pkt),
2685 : : ice_fdir_ipv6_nat_t_esp_pkt,
2686 : : sizeof(ice_fdir_ipv6_nat_t_esp_pkt),
2687 : : ice_fdir_ipv6_nat_t_esp_pkt,
2688 : : },
2689 : : {
2690 : : ICE_FLTR_PTYPE_NONF_IPV4_PFCP_NODE,
2691 : : sizeof(ice_fdir_ipv4_pfcp_node_pkt),
2692 : : ice_fdir_ipv4_pfcp_node_pkt,
2693 : : sizeof(ice_fdir_ipv4_pfcp_node_pkt),
2694 : : ice_fdir_ipv4_pfcp_node_pkt,
2695 : : },
2696 : : {
2697 : : ICE_FLTR_PTYPE_NONF_IPV4_PFCP_SESSION,
2698 : : sizeof(ice_fdir_ipv4_pfcp_session_pkt),
2699 : : ice_fdir_ipv4_pfcp_session_pkt,
2700 : : sizeof(ice_fdir_ipv4_pfcp_session_pkt),
2701 : : ice_fdir_ipv4_pfcp_session_pkt,
2702 : : },
2703 : : {
2704 : : ICE_FLTR_PTYPE_NONF_IPV6_PFCP_NODE,
2705 : : sizeof(ice_fdir_ipv6_pfcp_node_pkt),
2706 : : ice_fdir_ipv6_pfcp_node_pkt,
2707 : : sizeof(ice_fdir_ipv6_pfcp_node_pkt),
2708 : : ice_fdir_ipv6_pfcp_node_pkt,
2709 : : },
2710 : : {
2711 : : ICE_FLTR_PTYPE_NONF_IPV6_PFCP_SESSION,
2712 : : sizeof(ice_fdir_ipv6_pfcp_session_pkt),
2713 : : ice_fdir_ipv6_pfcp_session_pkt,
2714 : : sizeof(ice_fdir_ipv6_pfcp_session_pkt),
2715 : : ice_fdir_ipv6_pfcp_session_pkt,
2716 : : },
2717 : : {
2718 : : ICE_FLTR_PTYPE_NON_IP_L2,
2719 : : sizeof(ice_fdir_non_ip_l2_pkt), ice_fdir_non_ip_l2_pkt,
2720 : : sizeof(ice_fdir_non_ip_l2_pkt), ice_fdir_non_ip_l2_pkt,
2721 : : },
2722 : : {
2723 : : ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN,
2724 : : sizeof(ice_fdir_udp4_vxlan_pkt), ice_fdir_udp4_vxlan_pkt,
2725 : : sizeof(ice_fdir_udp4_vxlan_pkt), ice_fdir_udp4_vxlan_pkt,
2726 : : },
2727 : : {
2728 : : ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_UDP,
2729 : : sizeof(ice_fdir_udp4_tun_pkt), ice_fdir_udp4_tun_pkt,
2730 : : sizeof(ice_fdir_udp4_tun_pkt), ice_fdir_udp4_tun_pkt,
2731 : : },
2732 : : {
2733 : : ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_TCP,
2734 : : sizeof(ice_fdir_tcp4_tun_pkt), ice_fdir_tcp4_tun_pkt,
2735 : : sizeof(ice_fdir_tcp4_tun_pkt), ice_fdir_tcp4_tun_pkt,
2736 : : },
2737 : : {
2738 : : ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_SCTP,
2739 : : sizeof(ice_fdir_sctp4_tun_pkt), ice_fdir_sctp4_tun_pkt,
2740 : : sizeof(ice_fdir_sctp4_tun_pkt), ice_fdir_sctp4_tun_pkt,
2741 : : },
2742 : : {
2743 : : ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_OTHER,
2744 : : sizeof(ice_fdir_ip4_tun_pkt), ice_fdir_ip4_tun_pkt,
2745 : : sizeof(ice_fdir_ip4_tun_pkt), ice_fdir_ip4_tun_pkt,
2746 : : },
2747 : : {
2748 : : ICE_FLTR_PTYPE_NONF_ECPRI_TP0,
2749 : : sizeof(ice_fdir_ecpri_tp0_pkt), ice_fdir_ecpri_tp0_pkt,
2750 : : sizeof(ice_fdir_ecpri_tp0_pkt), ice_fdir_ecpri_tp0_pkt,
2751 : : },
2752 : : {
2753 : : ICE_FLTR_PTYPE_NONF_IPV4_UDP_ECPRI_TP0,
2754 : : sizeof(ice_fdir_ipv4_udp_ecpri_tp0_pkt),
2755 : : ice_fdir_ipv4_udp_ecpri_tp0_pkt,
2756 : : sizeof(ice_fdir_ipv4_udp_ecpri_tp0_pkt),
2757 : : ice_fdir_ipv4_udp_ecpri_tp0_pkt,
2758 : : },
2759 : : /* IPV4 GRE INNER IPV4 */
2760 : : {
2761 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4,
2762 : : sizeof(ice_fdir_ipv4_gre4_pkt),
2763 : : ice_fdir_ipv4_gre4_pkt,
2764 : : sizeof(ice_fdir_ipv4_gre4_pkt),
2765 : : ice_fdir_ipv4_gre4_pkt,
2766 : : },
2767 : : {
2768 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_UDP,
2769 : : sizeof(ice_fdir_udp4_gre4_pkt),
2770 : : ice_fdir_udp4_gre4_pkt,
2771 : : sizeof(ice_fdir_udp4_gre4_pkt),
2772 : : ice_fdir_udp4_gre4_pkt,
2773 : : },
2774 : : {
2775 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_TCP,
2776 : : sizeof(ice_fdir_tcp4_gre4_pkt),
2777 : : ice_fdir_tcp4_gre4_pkt,
2778 : : sizeof(ice_fdir_tcp4_gre4_pkt),
2779 : : ice_fdir_tcp4_gre4_pkt,
2780 : : },
2781 : : /* IPV4 GRE INNER IPV6 */
2782 : : {
2783 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6,
2784 : : sizeof(ice_fdir_ipv6_gre4_pkt),
2785 : : ice_fdir_ipv6_gre4_pkt,
2786 : : sizeof(ice_fdir_ipv6_gre4_pkt),
2787 : : ice_fdir_ipv6_gre4_pkt,
2788 : : },
2789 : : {
2790 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_UDP,
2791 : : sizeof(ice_fdir_udp6_gre4_pkt),
2792 : : ice_fdir_udp6_gre4_pkt,
2793 : : sizeof(ice_fdir_udp6_gre4_pkt),
2794 : : ice_fdir_udp6_gre4_pkt,
2795 : : },
2796 : : {
2797 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_TCP,
2798 : : sizeof(ice_fdir_tcp6_gre4_pkt),
2799 : : ice_fdir_tcp6_gre4_pkt,
2800 : : sizeof(ice_fdir_tcp6_gre4_pkt),
2801 : : ice_fdir_tcp6_gre4_pkt,
2802 : : },
2803 : : /* IPV6 GRE INNER IPV4 */
2804 : : {
2805 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4,
2806 : : sizeof(ice_fdir_ipv4_gre6_pkt),
2807 : : ice_fdir_ipv4_gre6_pkt,
2808 : : sizeof(ice_fdir_ipv4_gre6_pkt),
2809 : : ice_fdir_ipv4_gre6_pkt,
2810 : : },
2811 : : {
2812 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_UDP,
2813 : : sizeof(ice_fdir_udp4_gre6_pkt),
2814 : : ice_fdir_udp4_gre6_pkt,
2815 : : sizeof(ice_fdir_udp4_gre6_pkt),
2816 : : ice_fdir_udp4_gre6_pkt,
2817 : : },
2818 : : {
2819 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_TCP,
2820 : : sizeof(ice_fdir_tcp4_gre6_pkt),
2821 : : ice_fdir_tcp4_gre6_pkt,
2822 : : sizeof(ice_fdir_tcp4_gre6_pkt),
2823 : : ice_fdir_tcp4_gre6_pkt,
2824 : : },
2825 : : /* IPV4 GRE INNER IPV6 */
2826 : : {
2827 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6,
2828 : : sizeof(ice_fdir_ipv6_gre6_pkt),
2829 : : ice_fdir_ipv6_gre6_pkt,
2830 : : sizeof(ice_fdir_ipv6_gre6_pkt),
2831 : : ice_fdir_ipv6_gre6_pkt,
2832 : : },
2833 : : {
2834 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_UDP,
2835 : : sizeof(ice_fdir_udp6_gre6_pkt),
2836 : : ice_fdir_udp6_gre6_pkt,
2837 : : sizeof(ice_fdir_udp6_gre6_pkt),
2838 : : ice_fdir_udp6_gre6_pkt,
2839 : : },
2840 : : {
2841 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_TCP,
2842 : : sizeof(ice_fdir_tcp6_gre6_pkt),
2843 : : ice_fdir_tcp6_gre6_pkt,
2844 : : sizeof(ice_fdir_tcp6_gre6_pkt),
2845 : : ice_fdir_tcp6_gre6_pkt,
2846 : : },
2847 : : /* IPV4 GRE IPV4 GTPU IPV4 */
2848 : : {
2849 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4,
2850 : : sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2851 : : ice_fdir_ipv4_gtpu4_gre4_pkt,
2852 : : sizeof(ice_fdir_ipv4_gtpu4_gre4_pkt),
2853 : : ice_fdir_ipv4_gtpu4_gre4_pkt,
2854 : : },
2855 : : {
2856 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_UDP,
2857 : : sizeof(ice_fdir_udp4_gtpu4_gre4_pkt),
2858 : : ice_fdir_udp4_gtpu4_gre4_pkt,
2859 : : sizeof(ice_fdir_udp4_gtpu4_gre4_pkt),
2860 : : ice_fdir_udp4_gtpu4_gre4_pkt,
2861 : : },
2862 : : {
2863 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_TCP,
2864 : : sizeof(ice_fdir_tcp4_gtpu4_gre4_pkt),
2865 : : ice_fdir_tcp4_gtpu4_gre4_pkt,
2866 : : sizeof(ice_fdir_tcp4_gtpu4_gre4_pkt),
2867 : : ice_fdir_tcp4_gtpu4_gre4_pkt,
2868 : : },
2869 : : /* IPV4 GRE IPV4 GTPU IPV6 */
2870 : : {
2871 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6,
2872 : : sizeof(ice_fdir_ipv6_gtpu4_gre4_pkt),
2873 : : ice_fdir_ipv6_gtpu4_gre4_pkt,
2874 : : sizeof(ice_fdir_ipv6_gtpu4_gre4_pkt),
2875 : : ice_fdir_ipv6_gtpu4_gre4_pkt,
2876 : : },
2877 : : {
2878 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_UDP,
2879 : : sizeof(ice_fdir_udp6_gtpu4_gre4_pkt),
2880 : : ice_fdir_udp6_gtpu4_gre4_pkt,
2881 : : sizeof(ice_fdir_udp6_gtpu4_gre4_pkt),
2882 : : ice_fdir_udp6_gtpu4_gre4_pkt,
2883 : : },
2884 : : {
2885 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_TCP,
2886 : : sizeof(ice_fdir_tcp6_gtpu4_gre4_pkt),
2887 : : ice_fdir_tcp6_gtpu4_gre4_pkt,
2888 : : sizeof(ice_fdir_tcp6_gtpu4_gre4_pkt),
2889 : : ice_fdir_tcp6_gtpu4_gre4_pkt,
2890 : : },
2891 : : /* IPV6 GRE IPV4 GTPU IPV4 */
2892 : : {
2893 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4,
2894 : : sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2895 : : ice_fdir_ipv4_gtpu4_gre6_pkt,
2896 : : sizeof(ice_fdir_ipv4_gtpu4_gre6_pkt),
2897 : : ice_fdir_ipv4_gtpu4_gre6_pkt,
2898 : : },
2899 : : {
2900 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_UDP,
2901 : : sizeof(ice_fdir_udp4_gtpu4_gre6_pkt),
2902 : : ice_fdir_udp4_gtpu4_gre6_pkt,
2903 : : sizeof(ice_fdir_udp4_gtpu4_gre6_pkt),
2904 : : ice_fdir_udp4_gtpu4_gre6_pkt,
2905 : : },
2906 : : {
2907 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_TCP,
2908 : : sizeof(ice_fdir_tcp4_gtpu4_gre6_pkt),
2909 : : ice_fdir_tcp4_gtpu4_gre6_pkt,
2910 : : sizeof(ice_fdir_tcp4_gtpu4_gre6_pkt),
2911 : : ice_fdir_tcp4_gtpu4_gre6_pkt,
2912 : : },
2913 : : /* IPV6 GRE IPV4 GTPU IPV6 */
2914 : : {
2915 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6,
2916 : : sizeof(ice_fdir_ipv6_gtpu4_gre6_pkt),
2917 : : ice_fdir_ipv6_gtpu4_gre6_pkt,
2918 : : sizeof(ice_fdir_ipv6_gtpu4_gre6_pkt),
2919 : : ice_fdir_ipv6_gtpu4_gre6_pkt,
2920 : : },
2921 : : {
2922 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_UDP,
2923 : : sizeof(ice_fdir_udp6_gtpu4_gre6_pkt),
2924 : : ice_fdir_udp6_gtpu4_gre6_pkt,
2925 : : sizeof(ice_fdir_udp6_gtpu4_gre6_pkt),
2926 : : ice_fdir_udp6_gtpu4_gre6_pkt,
2927 : : },
2928 : : {
2929 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_TCP,
2930 : : sizeof(ice_fdir_tcp6_gtpu4_gre6_pkt),
2931 : : ice_fdir_tcp6_gtpu4_gre6_pkt,
2932 : : sizeof(ice_fdir_tcp6_gtpu4_gre6_pkt),
2933 : : ice_fdir_tcp6_gtpu4_gre6_pkt,
2934 : : },
2935 : : /* IPV4 GRE IPV4 GTPU EH IPV4 */
2936 : : {
2937 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4,
2938 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2939 : : ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2940 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre4_pkt),
2941 : : ice_fdir_ipv4_gtpu4_eh_gre4_pkt,
2942 : : },
2943 : : {
2944 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP,
2945 : : sizeof(ice_fdir_udp4_gtpu4_eh_gre4_pkt),
2946 : : ice_fdir_udp4_gtpu4_eh_gre4_pkt,
2947 : : sizeof(ice_fdir_udp4_gtpu4_eh_gre4_pkt),
2948 : : ice_fdir_udp4_gtpu4_eh_gre4_pkt,
2949 : : },
2950 : : {
2951 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP,
2952 : : sizeof(ice_fdir_tcp4_gtpu4_eh_gre4_pkt),
2953 : : ice_fdir_tcp4_gtpu4_eh_gre4_pkt,
2954 : : sizeof(ice_fdir_tcp4_gtpu4_eh_gre4_pkt),
2955 : : ice_fdir_tcp4_gtpu4_eh_gre4_pkt,
2956 : : },
2957 : : /* IPV4 GRE IPV4 GTPU EH IPV6 */
2958 : : {
2959 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6,
2960 : : sizeof(ice_fdir_ipv6_gtpu4_eh_gre4_pkt),
2961 : : ice_fdir_ipv6_gtpu4_eh_gre4_pkt,
2962 : : sizeof(ice_fdir_ipv6_gtpu4_eh_gre4_pkt),
2963 : : ice_fdir_ipv6_gtpu4_eh_gre4_pkt,
2964 : : },
2965 : : {
2966 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_UDP,
2967 : : sizeof(ice_fdir_udp6_gtpu4_eh_gre4_pkt),
2968 : : ice_fdir_udp6_gtpu4_eh_gre4_pkt,
2969 : : sizeof(ice_fdir_udp6_gtpu4_eh_gre4_pkt),
2970 : : ice_fdir_udp6_gtpu4_eh_gre4_pkt,
2971 : : },
2972 : : {
2973 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_TCP,
2974 : : sizeof(ice_fdir_tcp6_gtpu4_eh_gre4_pkt),
2975 : : ice_fdir_tcp6_gtpu4_eh_gre4_pkt,
2976 : : sizeof(ice_fdir_tcp6_gtpu4_eh_gre4_pkt),
2977 : : ice_fdir_tcp6_gtpu4_eh_gre4_pkt,
2978 : : },
2979 : : /* IPV6 GRE IPV4 GTPU EH IPV4 */
2980 : : {
2981 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4,
2982 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2983 : : ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2984 : : sizeof(ice_fdir_ipv4_gtpu4_eh_gre6_pkt),
2985 : : ice_fdir_ipv4_gtpu4_eh_gre6_pkt,
2986 : : },
2987 : : {
2988 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_UDP,
2989 : : sizeof(ice_fdir_udp4_gtpu4_eh_gre6_pkt),
2990 : : ice_fdir_udp4_gtpu4_eh_gre6_pkt,
2991 : : sizeof(ice_fdir_udp4_gtpu4_eh_gre6_pkt),
2992 : : ice_fdir_udp4_gtpu4_eh_gre6_pkt,
2993 : : },
2994 : : {
2995 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_TCP,
2996 : : sizeof(ice_fdir_tcp4_gtpu4_eh_gre6_pkt),
2997 : : ice_fdir_tcp4_gtpu4_eh_gre6_pkt,
2998 : : sizeof(ice_fdir_tcp4_gtpu4_eh_gre6_pkt),
2999 : : ice_fdir_tcp4_gtpu4_eh_gre6_pkt,
3000 : : },
3001 : : /* IPV6 GRE IPV4 GTPU EH IPV6 */
3002 : : {
3003 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6,
3004 : : sizeof(ice_fdir_ipv6_gtpu4_eh_gre6_pkt),
3005 : : ice_fdir_ipv6_gtpu4_eh_gre6_pkt,
3006 : : sizeof(ice_fdir_ipv6_gtpu4_eh_gre6_pkt),
3007 : : ice_fdir_ipv6_gtpu4_eh_gre6_pkt,
3008 : : },
3009 : : {
3010 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_UDP,
3011 : : sizeof(ice_fdir_udp6_gtpu4_eh_gre6_pkt),
3012 : : ice_fdir_udp6_gtpu4_eh_gre6_pkt,
3013 : : sizeof(ice_fdir_udp6_gtpu4_eh_gre6_pkt),
3014 : : ice_fdir_udp6_gtpu4_eh_gre6_pkt,
3015 : : },
3016 : : {
3017 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_TCP,
3018 : : sizeof(ice_fdir_tcp6_gtpu4_eh_gre6_pkt),
3019 : : ice_fdir_tcp6_gtpu4_eh_gre6_pkt,
3020 : : sizeof(ice_fdir_tcp6_gtpu4_eh_gre6_pkt),
3021 : : ice_fdir_tcp6_gtpu4_eh_gre6_pkt,
3022 : : },
3023 : : /* IPV4 GRE IPV4 GTPU DW IPV4 */
3024 : : {
3025 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4,
3026 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
3027 : : ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
3028 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt),
3029 : : ice_fdir_ipv4_gtpu4_eh_dw_gre4_pkt,
3030 : : },
3031 : : {
3032 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_UDP,
3033 : : sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt),
3034 : : ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt,
3035 : : sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt),
3036 : : ice_fdir_udp4_gtpu4_eh_dw_gre4_pkt,
3037 : : },
3038 : : {
3039 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_TCP,
3040 : : sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt),
3041 : : ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt,
3042 : : sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt),
3043 : : ice_fdir_tcp4_gtpu4_eh_dw_gre4_pkt,
3044 : : },
3045 : : /* IPV4 GRE IPV4 GTPU DW IPV6 */
3046 : : {
3047 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6,
3048 : : sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt),
3049 : : ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt,
3050 : : sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt),
3051 : : ice_fdir_ipv6_gtpu4_eh_dw_gre4_pkt,
3052 : : },
3053 : : {
3054 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_UDP,
3055 : : sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt),
3056 : : ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt,
3057 : : sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt),
3058 : : ice_fdir_udp6_gtpu4_eh_dw_gre4_pkt,
3059 : : },
3060 : : {
3061 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_TCP,
3062 : : sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt),
3063 : : ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt,
3064 : : sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt),
3065 : : ice_fdir_tcp6_gtpu4_eh_dw_gre4_pkt,
3066 : : },
3067 : : /* IPV6 GRE IPV4 GTPU DW IPV4 */
3068 : : {
3069 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4,
3070 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
3071 : : ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
3072 : : sizeof(ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt),
3073 : : ice_fdir_ipv4_gtpu4_eh_dw_gre6_pkt,
3074 : : },
3075 : : {
3076 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_UDP,
3077 : : sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt),
3078 : : ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt,
3079 : : sizeof(ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt),
3080 : : ice_fdir_udp4_gtpu4_eh_dw_gre6_pkt,
3081 : : },
3082 : : {
3083 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_TCP,
3084 : : sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt),
3085 : : ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt,
3086 : : sizeof(ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt),
3087 : : ice_fdir_tcp4_gtpu4_eh_dw_gre6_pkt,
3088 : : },
3089 : : /* IPV6 GRE IPV4 GTPU DW IPV6 */
3090 : : {
3091 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6,
3092 : : sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt),
3093 : : ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt,
3094 : : sizeof(ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt),
3095 : : ice_fdir_ipv6_gtpu4_eh_dw_gre6_pkt,
3096 : : },
3097 : : {
3098 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_UDP,
3099 : : sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt),
3100 : : ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt,
3101 : : sizeof(ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt),
3102 : : ice_fdir_udp6_gtpu4_eh_dw_gre6_pkt,
3103 : : },
3104 : : {
3105 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_TCP,
3106 : : sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt),
3107 : : ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt,
3108 : : sizeof(ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt),
3109 : : ice_fdir_tcp6_gtpu4_eh_dw_gre6_pkt,
3110 : : },
3111 : : /* IPV4 GRE IPV4 GTPU UP IPV4 */
3112 : : {
3113 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4,
3114 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
3115 : : ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
3116 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt),
3117 : : ice_fdir_ipv4_gtpu4_eh_up_gre4_pkt,
3118 : : },
3119 : : {
3120 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_UDP,
3121 : : sizeof(ice_fdir_udp4_gtpu4_eh_up_gre4_pkt),
3122 : : ice_fdir_udp4_gtpu4_eh_up_gre4_pkt,
3123 : : sizeof(ice_fdir_udp4_gtpu4_eh_up_gre4_pkt),
3124 : : ice_fdir_udp4_gtpu4_eh_up_gre4_pkt,
3125 : : },
3126 : : {
3127 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_TCP,
3128 : : sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt),
3129 : : ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt,
3130 : : sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt),
3131 : : ice_fdir_tcp4_gtpu4_eh_up_gre4_pkt,
3132 : : },
3133 : : /* IPV4 GRE IPV4 GTPU UP IPV6 */
3134 : : {
3135 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6,
3136 : : sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt),
3137 : : ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt,
3138 : : sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt),
3139 : : ice_fdir_ipv6_gtpu4_eh_up_gre4_pkt,
3140 : : },
3141 : : {
3142 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_UDP,
3143 : : sizeof(ice_fdir_udp6_gtpu4_eh_up_gre4_pkt),
3144 : : ice_fdir_udp6_gtpu4_eh_up_gre4_pkt,
3145 : : sizeof(ice_fdir_udp6_gtpu4_eh_up_gre4_pkt),
3146 : : ice_fdir_udp6_gtpu4_eh_up_gre4_pkt,
3147 : : },
3148 : : {
3149 : : ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_TCP,
3150 : : sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt),
3151 : : ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt,
3152 : : sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt),
3153 : : ice_fdir_tcp6_gtpu4_eh_up_gre4_pkt,
3154 : : },
3155 : : /* IPV6 GRE IPV4 GTPU UP IPV4 */
3156 : : {
3157 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4,
3158 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
3159 : : ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
3160 : : sizeof(ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt),
3161 : : ice_fdir_ipv4_gtpu4_eh_up_gre6_pkt,
3162 : : },
3163 : : {
3164 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_UDP,
3165 : : sizeof(ice_fdir_udp4_gtpu4_eh_up_gre6_pkt),
3166 : : ice_fdir_udp4_gtpu4_eh_up_gre6_pkt,
3167 : : sizeof(ice_fdir_udp4_gtpu4_eh_up_gre6_pkt),
3168 : : ice_fdir_udp4_gtpu4_eh_up_gre6_pkt,
3169 : : },
3170 : : {
3171 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_TCP,
3172 : : sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt),
3173 : : ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt,
3174 : : sizeof(ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt),
3175 : : ice_fdir_tcp4_gtpu4_eh_up_gre6_pkt,
3176 : : },
3177 : : /* IPV6 GRE IPV4 GTPU UP IPV6 */
3178 : : {
3179 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6,
3180 : : sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt),
3181 : : ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt,
3182 : : sizeof(ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt),
3183 : : ice_fdir_ipv6_gtpu4_eh_up_gre6_pkt,
3184 : : },
3185 : : {
3186 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_UDP,
3187 : : sizeof(ice_fdir_udp6_gtpu4_eh_up_gre6_pkt),
3188 : : ice_fdir_udp6_gtpu4_eh_up_gre6_pkt,
3189 : : sizeof(ice_fdir_udp6_gtpu4_eh_up_gre6_pkt),
3190 : : ice_fdir_udp6_gtpu4_eh_up_gre6_pkt,
3191 : : },
3192 : : {
3193 : : ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_TCP,
3194 : : sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt),
3195 : : ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt,
3196 : : sizeof(ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt),
3197 : : ice_fdir_tcp6_gtpu4_eh_up_gre6_pkt,
3198 : : },
3199 : : /* IPV4 L2TPV2 CONTROL */
3200 : : {
3201 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_CONTROL,
3202 : : sizeof(ice_fdir_ipv4_l2tpv2_ctrl_pkt),
3203 : : ice_fdir_ipv4_l2tpv2_ctrl_pkt,
3204 : : sizeof(ice_fdir_ipv4_l2tpv2_ctrl_pkt),
3205 : : ice_fdir_ipv4_l2tpv2_ctrl_pkt,
3206 : : },
3207 : : /* IPV4 L2TPV2 */
3208 : : {
3209 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2,
3210 : : sizeof(ice_fdir_ipv4_l2tpv2_pkt),
3211 : : ice_fdir_ipv4_l2tpv2_pkt,
3212 : : sizeof(ice_fdir_ipv4_l2tpv2_pkt),
3213 : : ice_fdir_ipv4_l2tpv2_pkt,
3214 : : },
3215 : : /* IPV4 L2TPV2 PPP */
3216 : : {
3217 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP,
3218 : : sizeof(ice_fdir_ipv4_l2tpv2_ppp_pkt),
3219 : : ice_fdir_ipv4_l2tpv2_ppp_pkt,
3220 : : sizeof(ice_fdir_ipv4_l2tpv2_ppp_pkt),
3221 : : ice_fdir_ipv4_l2tpv2_ppp_pkt,
3222 : : },
3223 : : /* IPV4 L2TPV2 PPP IPV4 */
3224 : : {
3225 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4,
3226 : : sizeof(ice_fdir_ipv4_l2tpv2_ppp4_pkt),
3227 : : ice_fdir_ipv4_l2tpv2_ppp4_pkt,
3228 : : sizeof(ice_fdir_ipv4_l2tpv2_ppp4_pkt),
3229 : : ice_fdir_ipv4_l2tpv2_ppp4_pkt,
3230 : : },
3231 : : {
3232 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4_UDP,
3233 : : sizeof(ice_fdir_udp4_l2tpv2_ppp4_pkt),
3234 : : ice_fdir_udp4_l2tpv2_ppp4_pkt,
3235 : : sizeof(ice_fdir_udp4_l2tpv2_ppp4_pkt),
3236 : : ice_fdir_udp4_l2tpv2_ppp4_pkt,
3237 : : },
3238 : : {
3239 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4_TCP,
3240 : : sizeof(ice_fdir_tcp4_l2tpv2_ppp4_pkt),
3241 : : ice_fdir_tcp4_l2tpv2_ppp4_pkt,
3242 : : sizeof(ice_fdir_tcp4_l2tpv2_ppp4_pkt),
3243 : : ice_fdir_tcp4_l2tpv2_ppp4_pkt,
3244 : : },
3245 : : /* IPV4 L2TPV2 PPP IPV6 */
3246 : : {
3247 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6,
3248 : : sizeof(ice_fdir_ipv6_l2tpv2_ppp4_pkt),
3249 : : ice_fdir_ipv6_l2tpv2_ppp4_pkt,
3250 : : sizeof(ice_fdir_ipv6_l2tpv2_ppp4_pkt),
3251 : : ice_fdir_ipv6_l2tpv2_ppp4_pkt,
3252 : : },
3253 : : {
3254 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6_UDP,
3255 : : sizeof(ice_fdir_udp6_l2tpv2_ppp4_pkt),
3256 : : ice_fdir_udp6_l2tpv2_ppp4_pkt,
3257 : : sizeof(ice_fdir_udp6_l2tpv2_ppp4_pkt),
3258 : : ice_fdir_udp6_l2tpv2_ppp4_pkt,
3259 : : },
3260 : : {
3261 : : ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6_TCP,
3262 : : sizeof(ice_fdir_tcp6_l2tpv2_ppp4_pkt),
3263 : : ice_fdir_tcp6_l2tpv2_ppp4_pkt,
3264 : : sizeof(ice_fdir_tcp6_l2tpv2_ppp4_pkt),
3265 : : ice_fdir_tcp6_l2tpv2_ppp4_pkt,
3266 : : },
3267 : : /* IPV6 L2TPV2 CONTROL */
3268 : : {
3269 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_CONTROL,
3270 : : sizeof(ice_fdir_ipv6_l2tpv2_ctrl_pkt),
3271 : : ice_fdir_ipv6_l2tpv2_ctrl_pkt,
3272 : : sizeof(ice_fdir_ipv6_l2tpv2_ctrl_pkt),
3273 : : ice_fdir_ipv6_l2tpv2_ctrl_pkt,
3274 : : },
3275 : : /* IPV6 L2TPV2 */
3276 : : {
3277 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2,
3278 : : sizeof(ice_fdir_ipv6_l2tpv2_pkt),
3279 : : ice_fdir_ipv6_l2tpv2_pkt,
3280 : : sizeof(ice_fdir_ipv6_l2tpv2_pkt),
3281 : : ice_fdir_ipv6_l2tpv2_pkt,
3282 : : },
3283 : : /* IPV6 L2TPV2 PPP */
3284 : : {
3285 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP,
3286 : : sizeof(ice_fdir_ipv6_l2tpv2_ppp_pkt),
3287 : : ice_fdir_ipv6_l2tpv2_ppp_pkt,
3288 : : sizeof(ice_fdir_ipv6_l2tpv2_ppp_pkt),
3289 : : ice_fdir_ipv6_l2tpv2_ppp_pkt,
3290 : : },
3291 : : /* IPV6 L2TPV2 PPP IPV4 */
3292 : : {
3293 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4,
3294 : : sizeof(ice_fdir_ipv4_l2tpv2_ppp6_pkt),
3295 : : ice_fdir_ipv4_l2tpv2_ppp6_pkt,
3296 : : sizeof(ice_fdir_ipv4_l2tpv2_ppp6_pkt),
3297 : : ice_fdir_ipv4_l2tpv2_ppp6_pkt,
3298 : : },
3299 : : {
3300 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4_UDP,
3301 : : sizeof(ice_fdir_udp4_l2tpv2_ppp6_pkt),
3302 : : ice_fdir_udp4_l2tpv2_ppp6_pkt,
3303 : : sizeof(ice_fdir_udp4_l2tpv2_ppp6_pkt),
3304 : : ice_fdir_udp4_l2tpv2_ppp6_pkt,
3305 : : },
3306 : : {
3307 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4_TCP,
3308 : : sizeof(ice_fdir_tcp4_l2tpv2_ppp6_pkt),
3309 : : ice_fdir_tcp4_l2tpv2_ppp6_pkt,
3310 : : sizeof(ice_fdir_tcp4_l2tpv2_ppp6_pkt),
3311 : : ice_fdir_tcp4_l2tpv2_ppp6_pkt,
3312 : : },
3313 : : /* IPV6 L2TPV2 PPP IPV6 */
3314 : : {
3315 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6,
3316 : : sizeof(ice_fdir_ipv6_l2tpv2_ppp6_pkt),
3317 : : ice_fdir_ipv6_l2tpv2_ppp6_pkt,
3318 : : sizeof(ice_fdir_ipv6_l2tpv2_ppp6_pkt),
3319 : : ice_fdir_ipv6_l2tpv2_ppp6_pkt,
3320 : : },
3321 : : {
3322 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6_UDP,
3323 : : sizeof(ice_fdir_udp6_l2tpv2_ppp6_pkt),
3324 : : ice_fdir_udp6_l2tpv2_ppp6_pkt,
3325 : : sizeof(ice_fdir_udp6_l2tpv2_ppp6_pkt),
3326 : : ice_fdir_udp6_l2tpv2_ppp6_pkt,
3327 : : },
3328 : : {
3329 : : ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6_TCP,
3330 : : sizeof(ice_fdir_tcp6_l2tpv2_ppp6_pkt),
3331 : : ice_fdir_tcp6_l2tpv2_ppp6_pkt,
3332 : : sizeof(ice_fdir_tcp6_l2tpv2_ppp6_pkt),
3333 : : ice_fdir_tcp6_l2tpv2_ppp6_pkt,
3334 : : },
3335 : : {
3336 : : ICE_FLTR_PTYPE_NONF_IPV6_TCP,
3337 : : sizeof(ice_fdir_tcpv6_pkt), ice_fdir_tcpv6_pkt,
3338 : : sizeof(ice_fdir_tcp6_tun_pkt), ice_fdir_tcp6_tun_pkt,
3339 : : },
3340 : : {
3341 : : ICE_FLTR_PTYPE_NONF_IPV6_UDP,
3342 : : sizeof(ice_fdir_udpv6_pkt), ice_fdir_udpv6_pkt,
3343 : : sizeof(ice_fdir_udp6_tun_pkt), ice_fdir_udp6_tun_pkt,
3344 : : },
3345 : : {
3346 : : ICE_FLTR_PTYPE_NONF_IPV6_SCTP,
3347 : : sizeof(ice_fdir_sctpv6_pkt), ice_fdir_sctpv6_pkt,
3348 : : sizeof(ice_fdir_sctp6_tun_pkt), ice_fdir_sctp6_tun_pkt,
3349 : : },
3350 : : {
3351 : : ICE_FLTR_PTYPE_NONF_IPV6_OTHER,
3352 : : sizeof(ice_fdir_ipv6_pkt), ice_fdir_ipv6_pkt,
3353 : : sizeof(ice_fdir_ip6_tun_pkt), ice_fdir_ip6_tun_pkt,
3354 : : },
3355 : : };
3356 : :
3357 : : #define ICE_FDIR_NUM_PKT ARRAY_SIZE(ice_fdir_pkt)
3358 : :
3359 : : /**
3360 : : * ice_set_dflt_val_fd_desc
3361 : : * @fd_fltr_ctx: pointer to fd filter descriptor
3362 : : */
3363 : : static void ice_set_dflt_val_fd_desc(struct ice_fd_fltr_desc_ctx *fd_fltr_ctx)
3364 : : {
3365 : : fd_fltr_ctx->comp_q = ICE_FXD_FLTR_QW0_COMP_Q_ZERO;
3366 : 0 : fd_fltr_ctx->comp_report = ICE_FXD_FLTR_QW0_COMP_REPORT_SW_FAIL;
3367 : 0 : fd_fltr_ctx->fd_space = ICE_FXD_FLTR_QW0_FD_SPACE_GUAR_BEST;
3368 : 0 : fd_fltr_ctx->cnt_ena = ICE_FXD_FLTR_QW0_STAT_ENA_PKTS;
3369 : 0 : fd_fltr_ctx->evict_ena = ICE_FXD_FLTR_QW0_EVICT_ENA_TRUE;
3370 : : fd_fltr_ctx->toq = ICE_FXD_FLTR_QW0_TO_Q_EQUALS_QINDEX;
3371 : 0 : fd_fltr_ctx->toq_prio = ICE_FXD_FLTR_QW0_TO_Q_PRIO1;
3372 : : fd_fltr_ctx->dpu_recipe = ICE_FXD_FLTR_QW0_DPU_RECIPE_DFLT;
3373 : : fd_fltr_ctx->drop = ICE_FXD_FLTR_QW0_DROP_NO;
3374 : : fd_fltr_ctx->flex_prio = ICE_FXD_FLTR_QW0_FLEX_PRI_NONE;
3375 : : fd_fltr_ctx->flex_mdid = ICE_FXD_FLTR_QW0_FLEX_MDID0;
3376 : : fd_fltr_ctx->flex_val = ICE_FXD_FLTR_QW0_FLEX_VAL0;
3377 : 0 : fd_fltr_ctx->dtype = ICE_TX_DESC_DTYPE_FLTR_PROG;
3378 : : fd_fltr_ctx->desc_prof_prio = ICE_FXD_FLTR_QW1_PROF_PRIO_ZERO;
3379 : : fd_fltr_ctx->desc_prof = ICE_FXD_FLTR_QW1_PROF_ZERO;
3380 : 0 : fd_fltr_ctx->swap = ICE_FXD_FLTR_QW1_SWAP_SET;
3381 : 0 : fd_fltr_ctx->fdid_prio = ICE_FXD_FLTR_QW1_FDID_PRI_ONE;
3382 : 0 : fd_fltr_ctx->fdid_mdid = ICE_FXD_FLTR_QW1_FDID_MDID_FD;
3383 : : fd_fltr_ctx->fdid = ICE_FXD_FLTR_QW1_FDID_ZERO;
3384 : : }
3385 : :
3386 : : /**
3387 : : * ice_set_fd_desc_val
3388 : : * @ctx: pointer to fd filter descriptor context
3389 : : * @fdir_desc: populated with fd filter descriptor values
3390 : : */
3391 : : static void
3392 : 0 : ice_set_fd_desc_val(struct ice_fd_fltr_desc_ctx *ctx,
3393 : : struct ice_fltr_desc *fdir_desc)
3394 : : {
3395 : : u64 qword;
3396 : :
3397 : : /* prep QW0 of FD filter programming desc */
3398 : 0 : qword = ((u64)ctx->qindex << ICE_FXD_FLTR_QW0_QINDEX_S) &
3399 : : ICE_FXD_FLTR_QW0_QINDEX_M;
3400 : 0 : qword |= ((u64)ctx->comp_q << ICE_FXD_FLTR_QW0_COMP_Q_S) &
3401 : : ICE_FXD_FLTR_QW0_COMP_Q_M;
3402 : 0 : qword |= ((u64)ctx->comp_report << ICE_FXD_FLTR_QW0_COMP_REPORT_S) &
3403 : : ICE_FXD_FLTR_QW0_COMP_REPORT_M;
3404 : 0 : qword |= ((u64)ctx->fd_space << ICE_FXD_FLTR_QW0_FD_SPACE_S) &
3405 : : ICE_FXD_FLTR_QW0_FD_SPACE_M;
3406 : 0 : qword |= ((u64)ctx->cnt_index << ICE_FXD_FLTR_QW0_STAT_CNT_S) &
3407 : : ICE_FXD_FLTR_QW0_STAT_CNT_M;
3408 : 0 : qword |= ((u64)ctx->cnt_ena << ICE_FXD_FLTR_QW0_STAT_ENA_S) &
3409 : : ICE_FXD_FLTR_QW0_STAT_ENA_M;
3410 : 0 : qword |= ((u64)ctx->evict_ena << ICE_FXD_FLTR_QW0_EVICT_ENA_S) &
3411 : : ICE_FXD_FLTR_QW0_EVICT_ENA_M;
3412 : 0 : qword |= ((u64)ctx->toq << ICE_FXD_FLTR_QW0_TO_Q_S) &
3413 : : ICE_FXD_FLTR_QW0_TO_Q_M;
3414 : 0 : qword |= ((u64)ctx->toq_prio << ICE_FXD_FLTR_QW0_TO_Q_PRI_S) &
3415 : : ICE_FXD_FLTR_QW0_TO_Q_PRI_M;
3416 : 0 : qword |= ((u64)ctx->dpu_recipe << ICE_FXD_FLTR_QW0_DPU_RECIPE_S) &
3417 : : ICE_FXD_FLTR_QW0_DPU_RECIPE_M;
3418 : 0 : qword |= ((u64)ctx->drop << ICE_FXD_FLTR_QW0_DROP_S) &
3419 : : ICE_FXD_FLTR_QW0_DROP_M;
3420 : 0 : qword |= ((u64)ctx->flex_prio << ICE_FXD_FLTR_QW0_FLEX_PRI_S) &
3421 : : ICE_FXD_FLTR_QW0_FLEX_PRI_M;
3422 : 0 : qword |= ((u64)ctx->flex_mdid << ICE_FXD_FLTR_QW0_FLEX_MDID_S) &
3423 : : ICE_FXD_FLTR_QW0_FLEX_MDID_M;
3424 : 0 : qword |= ((u64)ctx->flex_val << ICE_FXD_FLTR_QW0_FLEX_VAL_S) &
3425 : : ICE_FXD_FLTR_QW0_FLEX_VAL_M;
3426 : 0 : fdir_desc->qidx_compq_space_stat = CPU_TO_LE64(qword);
3427 : :
3428 : : /* prep QW1 of FD filter programming desc */
3429 : 0 : qword = ((u64)ctx->dtype << ICE_FXD_FLTR_QW1_DTYPE_S) &
3430 : : ICE_FXD_FLTR_QW1_DTYPE_M;
3431 : 0 : qword |= ((u64)ctx->pcmd << ICE_FXD_FLTR_QW1_PCMD_S) &
3432 : : ICE_FXD_FLTR_QW1_PCMD_M;
3433 : 0 : qword |= ((u64)ctx->desc_prof_prio << ICE_FXD_FLTR_QW1_PROF_PRI_S) &
3434 : : ICE_FXD_FLTR_QW1_PROF_PRI_M;
3435 : 0 : qword |= ((u64)ctx->desc_prof << ICE_FXD_FLTR_QW1_PROF_S) &
3436 : : ICE_FXD_FLTR_QW1_PROF_M;
3437 : 0 : qword |= ((u64)ctx->fd_vsi << ICE_FXD_FLTR_QW1_FD_VSI_S) &
3438 : : ICE_FXD_FLTR_QW1_FD_VSI_M;
3439 : 0 : qword |= ((u64)ctx->swap << ICE_FXD_FLTR_QW1_SWAP_S) &
3440 : : ICE_FXD_FLTR_QW1_SWAP_M;
3441 : 0 : qword |= ((u64)ctx->fdid_prio << ICE_FXD_FLTR_QW1_FDID_PRI_S) &
3442 : : ICE_FXD_FLTR_QW1_FDID_PRI_M;
3443 : 0 : qword |= ((u64)ctx->fdid_mdid << ICE_FXD_FLTR_QW1_FDID_MDID_S) &
3444 : : ICE_FXD_FLTR_QW1_FDID_MDID_M;
3445 : 0 : qword |= ((u64)ctx->fdid << ICE_FXD_FLTR_QW1_FDID_S) &
3446 : : ICE_FXD_FLTR_QW1_FDID_M;
3447 : 0 : fdir_desc->dtype_cmd_vsi_fdid = CPU_TO_LE64(qword);
3448 : 0 : }
3449 : :
3450 : : /**
3451 : : * ice_fdir_get_prgm_desc - set a fdir descriptor from a fdir filter struct
3452 : : * @hw: pointer to the hardware structure
3453 : : * @input: filter
3454 : : * @fdesc: filter descriptor
3455 : : * @add: if add is true, this is an add operation, false implies delete
3456 : : */
3457 : : void
3458 : 0 : ice_fdir_get_prgm_desc(struct ice_hw *hw, struct ice_fdir_fltr *input,
3459 : : struct ice_fltr_desc *fdesc, bool add)
3460 : : {
3461 : 0 : struct ice_fd_fltr_desc_ctx fdir_fltr_ctx = { 0 };
3462 : :
3463 : : /* set default context info */
3464 : : ice_set_dflt_val_fd_desc(&fdir_fltr_ctx);
3465 : :
3466 : : /* change sideband filtering values */
3467 : 0 : fdir_fltr_ctx.fdid = input->fltr_id;
3468 [ # # ]: 0 : if (input->dest_ctl == ICE_FLTR_PRGM_DESC_DEST_DROP_PKT) {
3469 : 0 : fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_YES;
3470 : : fdir_fltr_ctx.qindex = 0;
3471 [ # # ]: 0 : } else if (input->dest_ctl ==
3472 : : ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER) {
3473 : : fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_NO;
3474 : : fdir_fltr_ctx.qindex = 0;
3475 : : } else {
3476 [ # # ]: 0 : if (input->dest_ctl ==
3477 : : ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_QGROUP)
3478 : 0 : fdir_fltr_ctx.toq = input->q_region;
3479 : : fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_NO;
3480 : 0 : fdir_fltr_ctx.qindex = input->q_index;
3481 : : }
3482 : 0 : fdir_fltr_ctx.cnt_ena = input->cnt_ena;
3483 : 0 : fdir_fltr_ctx.cnt_index = input->cnt_index;
3484 : 0 : fdir_fltr_ctx.fd_vsi = ice_get_hw_vsi_num(hw, input->dest_vsi);
3485 : 0 : fdir_fltr_ctx.evict_ena = ICE_FXD_FLTR_QW0_EVICT_ENA_FALSE;
3486 [ # # ]: 0 : if (input->dest_ctl == ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER)
3487 : 0 : fdir_fltr_ctx.toq_prio = 0;
3488 : : else
3489 : 0 : fdir_fltr_ctx.toq_prio = 3;
3490 : 0 : fdir_fltr_ctx.pcmd = add ? ICE_FXD_FLTR_QW1_PCMD_ADD :
3491 : : ICE_FXD_FLTR_QW1_PCMD_REMOVE;
3492 : 0 : fdir_fltr_ctx.swap = ICE_FXD_FLTR_QW1_SWAP_NOT_SET;
3493 : : fdir_fltr_ctx.comp_q = ICE_FXD_FLTR_QW0_COMP_Q_ZERO;
3494 : 0 : fdir_fltr_ctx.comp_report = input->comp_report;
3495 : 0 : fdir_fltr_ctx.fdid_prio = input->fdid_prio;
3496 : 0 : fdir_fltr_ctx.desc_prof = 1;
3497 : 0 : fdir_fltr_ctx.desc_prof_prio = 3;
3498 : 0 : ice_set_fd_desc_val(&fdir_fltr_ctx, fdesc);
3499 : 0 : }
3500 : :
3501 : : /**
3502 : : * ice_alloc_fd_res_cntr - obtain counter resource for FD type
3503 : : * @hw: pointer to the hardware structure
3504 : : * @cntr_id: returns counter index
3505 : : */
3506 : 0 : int ice_alloc_fd_res_cntr(struct ice_hw *hw, u16 *cntr_id)
3507 : : {
3508 : 0 : return ice_alloc_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_COUNTER_BLOCK,
3509 : : ICE_AQC_RES_TYPE_FLAG_DEDICATED, 1, cntr_id);
3510 : : }
3511 : :
3512 : : /**
3513 : : * ice_free_fd_res_cntr - Free counter resource for FD type
3514 : : * @hw: pointer to the hardware structure
3515 : : * @cntr_id: counter index to be freed
3516 : : */
3517 : 0 : int ice_free_fd_res_cntr(struct ice_hw *hw, u16 cntr_id)
3518 : : {
3519 : 0 : return ice_free_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_COUNTER_BLOCK,
3520 : : ICE_AQC_RES_TYPE_FLAG_DEDICATED, 1, cntr_id);
3521 : : }
3522 : :
3523 : : /**
3524 : : * ice_alloc_fd_guar_item - allocate resource for FD guaranteed entries
3525 : : * @hw: pointer to the hardware structure
3526 : : * @cntr_id: returns counter index
3527 : : * @num_fltr: number of filter entries to be allocated
3528 : : */
3529 : : int
3530 : 0 : ice_alloc_fd_guar_item(struct ice_hw *hw, u16 *cntr_id, u16 num_fltr)
3531 : : {
3532 : 0 : return ice_alloc_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_GUARANTEED_ENTRIES,
3533 : : ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3534 : : cntr_id);
3535 : : }
3536 : :
3537 : : /**
3538 : : * ice_free_fd_guar_item - Free flow director guaranteed entries
3539 : : * @hw: pointer to the hardware structure
3540 : : * @cntr_id: counter index that needs to be freed
3541 : : * @num_fltr: number of filters to be freed
3542 : : */
3543 : : int
3544 : 0 : ice_free_fd_guar_item(struct ice_hw *hw, u16 cntr_id, u16 num_fltr)
3545 : : {
3546 : 0 : return ice_free_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_GUARANTEED_ENTRIES,
3547 : : ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3548 : : cntr_id);
3549 : : }
3550 : :
3551 : : /**
3552 : : * ice_alloc_fd_shrd_item - allocate resource for flow director shared entries
3553 : : * @hw: pointer to the hardware structure
3554 : : * @cntr_id: returns counter index
3555 : : * @num_fltr: number of filter entries to be allocated
3556 : : */
3557 : : int
3558 : 0 : ice_alloc_fd_shrd_item(struct ice_hw *hw, u16 *cntr_id, u16 num_fltr)
3559 : : {
3560 : 0 : return ice_alloc_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_SHARED_ENTRIES,
3561 : : ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3562 : : cntr_id);
3563 : : }
3564 : :
3565 : : /**
3566 : : * ice_free_fd_shrd_item - Free flow director shared entries
3567 : : * @hw: pointer to the hardware structure
3568 : : * @cntr_id: counter index that needs to be freed
3569 : : * @num_fltr: number of filters to be freed
3570 : : */
3571 : : int
3572 : 0 : ice_free_fd_shrd_item(struct ice_hw *hw, u16 cntr_id, u16 num_fltr)
3573 : : {
3574 : 0 : return ice_free_res_cntr(hw, ICE_AQC_RES_TYPE_FDIR_SHARED_ENTRIES,
3575 : : ICE_AQC_RES_TYPE_FLAG_DEDICATED, num_fltr,
3576 : : cntr_id);
3577 : : }
3578 : :
3579 : : /**
3580 : : * ice_get_fdir_cnt_all - get the number of Flow Director filters
3581 : : * @hw: hardware data structure
3582 : : *
3583 : : * Returns the number of filters available on device
3584 : : */
3585 : 0 : int ice_get_fdir_cnt_all(struct ice_hw *hw)
3586 : : {
3587 : 0 : return hw->func_caps.fd_fltr_guar + hw->func_caps.fd_fltr_best_effort;
3588 : : }
3589 : :
3590 : : /**
3591 : : * ice_pkt_insert_ipv6_addr - insert a be32 IPv6 address into a memory buffer
3592 : : * @pkt: packet buffer
3593 : : * @offset: offset into buffer
3594 : : * @addr: IPv6 address to convert and insert into pkt at offset
3595 : : */
3596 : 0 : static void ice_pkt_insert_ipv6_addr(u8 *pkt, int offset, __be32 *addr)
3597 : : {
3598 : : int idx;
3599 : :
3600 [ # # ]: 0 : for (idx = 0; idx < ICE_IPV6_ADDR_LEN_AS_U32; idx++)
3601 [ # # ]: 0 : ice_memcpy(pkt + offset + idx * sizeof(*addr), &addr[idx],
3602 : : sizeof(*addr), ICE_NONDMA_TO_NONDMA);
3603 : 0 : }
3604 : :
3605 : : /**
3606 : : * ice_pkt_insert_u6_qfi - insert a u6 value QFI into a memory buffer for GTPU
3607 : : * @pkt: packet buffer
3608 : : * @offset: offset into buffer
3609 : : * @data: 8 bit value to convert and insert into pkt at offset
3610 : : *
3611 : : * This function is designed for inserting QFI (6 bits) for GTPU.
3612 : : */
3613 : 0 : static void ice_pkt_insert_u6_qfi(u8 *pkt, int offset, u8 data)
3614 : : {
3615 : : u8 ret;
3616 : :
3617 [ # # ]: 0 : ret = (data & 0x3F) + (*(pkt + offset) & 0xC0);
3618 : : ice_memcpy(pkt + offset, &ret, sizeof(ret), ICE_NONDMA_TO_NONDMA);
3619 : 0 : }
3620 : :
3621 : : /**
3622 : : * ice_pkt_insert_u8 - insert a u8 value into a memory buffer
3623 : : * @pkt: packet buffer
3624 : : * @offset: offset into buffer
3625 : : * @data: 8 bit value to convert and insert into pkt at offset
3626 : : */
3627 : 0 : static void ice_pkt_insert_u8(u8 *pkt, int offset, u8 data)
3628 : : {
3629 [ # # ]: 0 : ice_memcpy(pkt + offset, &data, sizeof(data), ICE_NONDMA_TO_NONDMA);
3630 : 0 : }
3631 : :
3632 : : /**
3633 : : * ice_pkt_insert_u8_tc - insert a u8 value into a memory buffer for TC IPv6
3634 : : * @pkt: packet buffer
3635 : : * @offset: offset into buffer
3636 : : * @data: 8 bit value to convert and insert into pkt at offset
3637 : : *
3638 : : * This function is designed for inserting Traffic Class (TC) for IPv6,
3639 : : * since that TC is not aligned in number of bytes. Here we split it out
3640 : : * into two part and fill each byte with data copy from pkt, then insert
3641 : : * the two bytes data one by one.
3642 : : */
3643 : 0 : static void ice_pkt_insert_u8_tc(u8 *pkt, int offset, u8 data)
3644 : : {
3645 : : u8 high, low;
3646 : :
3647 [ # # ]: 0 : high = (data >> 4) + (*(pkt + offset) & 0xF0);
3648 : : ice_memcpy(pkt + offset, &high, sizeof(high), ICE_NONDMA_TO_NONDMA);
3649 : :
3650 [ # # ]: 0 : low = (*(pkt + offset + 1) & 0x0F) + ((data & 0x0F) << 4);
3651 : : ice_memcpy(pkt + offset + 1, &low, sizeof(low), ICE_NONDMA_TO_NONDMA);
3652 : 0 : }
3653 : :
3654 : : /**
3655 : : * ice_pkt_insert_u16 - insert a be16 value into a memory buffer
3656 : : * @pkt: packet buffer
3657 : : * @offset: offset into buffer
3658 : : * @data: 16 bit value to convert and insert into pkt at offset
3659 : : */
3660 : 0 : static void ice_pkt_insert_u16(u8 *pkt, int offset, __be16 data)
3661 : : {
3662 [ # # ]: 0 : ice_memcpy(pkt + offset, &data, sizeof(data), ICE_NONDMA_TO_NONDMA);
3663 : 0 : }
3664 : :
3665 : : /**
3666 : : * ice_pkt_insert_u32 - insert a be32 value into a memory buffer
3667 : : * @pkt: packet buffer
3668 : : * @offset: offset into buffer
3669 : : * @data: 32 bit value to convert and insert into pkt at offset
3670 : : */
3671 : 0 : static void ice_pkt_insert_u32(u8 *pkt, int offset, __be32 data)
3672 : : {
3673 [ # # ]: 0 : ice_memcpy(pkt + offset, &data, sizeof(data), ICE_NONDMA_TO_NONDMA);
3674 : 0 : }
3675 : :
3676 : : /**
3677 : : * ice_pkt_insert_mac_addr - insert a MAC addr into a memory buffer
3678 : : * @pkt: packet buffer
3679 : : * @addr: MAC address to convert and insert into pkt at offset
3680 : : */
3681 [ # # ]: 0 : static void ice_pkt_insert_mac_addr(u8 *pkt, u8 *addr)
3682 : : {
3683 : : ice_memcpy(pkt, addr, ETH_ALEN, ICE_NONDMA_TO_NONDMA);
3684 : 0 : }
3685 : :
3686 : : /**
3687 : : * ice_fdir_get_open_tunnel_port
3688 : : * @hw: pointer to the hardware structure
3689 : : * @flow: flow ptype
3690 : : * @port: returns open port
3691 : : *
3692 : : * returns an open tunnel port specified for this flow type
3693 : : */
3694 : : static int
3695 : 0 : ice_fdir_get_open_tunnel_port(struct ice_hw *hw, enum ice_fltr_ptype flow,
3696 : : u16 *port)
3697 : : {
3698 [ # # ]: 0 : switch (flow) {
3699 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_UDP_ECPRI_TP0:
3700 : : /* eCPRI tunnel */
3701 [ # # ]: 0 : if (!ice_get_open_tunnel_port(hw, TNL_ECPRI, port))
3702 : 0 : return ICE_ERR_DOES_NOT_EXIST;
3703 : : break;
3704 : 0 : default:
3705 [ # # # # ]: 0 : if (!ice_get_open_tunnel_port(hw, TNL_VXLAN, port) &&
3706 : 0 : !ice_get_open_tunnel_port(hw, TNL_GENEVE, port))
3707 : 0 : return ICE_ERR_DOES_NOT_EXIST;
3708 : : }
3709 : :
3710 : : return 0;
3711 : : }
3712 : :
3713 : : /**
3714 : : * ice_fdir_gen_l2tpv2_pkt - generate L2TPv2 training packet
3715 : : * @pkt: pointer to return filter packet
3716 : : * @l2tpv2_data: pointer to ice_fdir_l2tpv2 data structure
3717 : : * @idx: the matched packet index of FDIR training packet table
3718 : : * @offset: position of end byte for PPPoL2TPv2 packet
3719 : : * @tun: true implies generate a tunnel packet
3720 : : */
3721 : : static u16
3722 : 0 : ice_fdir_gen_l2tpv2_pkt(u8 *pkt, struct ice_fdir_l2tpv2 *l2tpv2_data,
3723 : : u16 idx, u16 offset, bool tun)
3724 : : {
3725 : : u16 flags_version;
3726 : : u16 offset_size;
3727 : : u16 pos;
3728 : :
3729 : : /* get outer packet end pos, 10 = l2tpv2 default len 6 + ppp len 4 */
3730 : 0 : pos = offset - ICE_L2TPV2_PKT_LENGTH - ICE_PPP_PKT_LENGTH;
3731 : :
3732 : : /* copy outer packet */
3733 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt, pos, ICE_NONDMA_TO_NONDMA);
3734 : :
3735 : : /* copy l2tpv2 packet common header */
3736 [ # # ]: 0 : ice_memcpy(pkt + pos, &l2tpv2_data->flags_version,
3737 : : sizeof(l2tpv2_data->flags_version),
3738 : : ICE_NONDMA_TO_NONDMA);
3739 : 0 : pos += sizeof(l2tpv2_data->flags_version);
3740 : :
3741 [ # # ]: 0 : flags_version = BE16_TO_CPU(l2tpv2_data->flags_version);
3742 [ # # ]: 0 : if (flags_version == 0) {
3743 : 0 : l2tpv2_data->flags_version = CPU_TO_BE16(ICE_L2TPV2_FLAGS_VER);
3744 : : flags_version = ICE_L2TPV2_FLAGS_VER;
3745 : : }
3746 : :
3747 : : /* copy l2tpv2 length */
3748 [ # # ]: 0 : if (flags_version & ICE_L2TPV2_FLAGS_LEN) {
3749 [ # # ]: 0 : ice_memcpy(pkt + pos, &l2tpv2_data->length,
3750 : : sizeof(l2tpv2_data->length),
3751 : : ICE_NONDMA_TO_NONDMA);
3752 : 0 : pos += sizeof(l2tpv2_data->length);
3753 : : }
3754 : :
3755 : : /* copy l2tpv2 tunnel id */
3756 [ # # ]: 0 : ice_memcpy(pkt + pos, &l2tpv2_data->tunnel_id,
3757 : : sizeof(l2tpv2_data->tunnel_id),
3758 : : ICE_NONDMA_TO_NONDMA);
3759 : 0 : pos += sizeof(l2tpv2_data->tunnel_id);
3760 : :
3761 : : /* copy l2tpv2 session id */
3762 [ # # ]: 0 : ice_memcpy(pkt + pos, &l2tpv2_data->session_id,
3763 : : sizeof(l2tpv2_data->session_id),
3764 : : ICE_NONDMA_TO_NONDMA);
3765 : 0 : pos += sizeof(l2tpv2_data->session_id);
3766 : :
3767 : : /* copy l2tpv2 ns + nr */
3768 [ # # ]: 0 : if (flags_version & ICE_L2TPV2_FLAGS_SEQ) {
3769 [ # # ]: 0 : ice_memcpy(pkt + pos, &l2tpv2_data->ns,
3770 : : sizeof(l2tpv2_data->ns),
3771 : : ICE_NONDMA_TO_NONDMA);
3772 : 0 : pos += sizeof(l2tpv2_data->ns);
3773 : :
3774 [ # # ]: 0 : ice_memcpy(pkt + pos, &l2tpv2_data->nr,
3775 : : sizeof(l2tpv2_data->nr),
3776 : : ICE_NONDMA_TO_NONDMA);
3777 : 0 : pos += sizeof(l2tpv2_data->nr);
3778 : : }
3779 : :
3780 : : /* copy l2tpv2 offset size + offset padding */
3781 [ # # ]: 0 : if (flags_version & ICE_L2TPV2_FLAGS_OFF) {
3782 [ # # ]: 0 : ice_memcpy(pkt + pos, &l2tpv2_data->offset_size,
3783 : : sizeof(l2tpv2_data->offset_size),
3784 : : ICE_NONDMA_TO_NONDMA);
3785 : 0 : pos += sizeof(l2tpv2_data->offset_size);
3786 : : /* insert 0 into offset padding */
3787 [ # # ]: 0 : offset_size = BE16_TO_CPU(l2tpv2_data->offset_size);
3788 : 0 : if (offset_size > ICE_FDIR_MAX_RAW_PKT_SIZE -
3789 [ # # ]: 0 : ice_fdir_pkt[idx].tun_pkt_len) {
3790 : 0 : offset_size = ICE_FDIR_MAX_RAW_PKT_SIZE -
3791 : : ice_fdir_pkt[idx].tun_pkt_len;
3792 : : }
3793 : 0 : ice_memset(pkt + pos, 0, offset_size, ICE_NONDMA_MEM);
3794 : 0 : pos += offset_size;
3795 : : }
3796 : :
3797 [ # # ]: 0 : if (ice_fdir_pkt[idx].tun_pkt_len > offset) {
3798 : : /* copy ppp packet */
3799 [ # # ]: 0 : ice_memcpy(pkt + pos,
3800 : : ice_fdir_pkt[idx].tun_pkt + offset -
3801 : : ICE_PPP_PKT_LENGTH,
3802 : : ICE_PPP_PKT_LENGTH,
3803 : : ICE_NONDMA_TO_NONDMA);
3804 : 0 : pos += ICE_PPP_PKT_LENGTH;
3805 : :
3806 : : /* copy inner packets */
3807 [ # # ]: 0 : if (tun) {
3808 [ # # ]: 0 : ice_memcpy(pkt + pos,
3809 : : ice_fdir_pkt[idx].tun_pkt + offset,
3810 : : ice_fdir_pkt[idx].tun_pkt_len - offset,
3811 : : ICE_NONDMA_TO_NONDMA);
3812 : : }
3813 : : }
3814 : :
3815 : 0 : return pos;
3816 : : }
3817 : :
3818 : : /**
3819 : : * ice_fdir_get_gen_prgm_pkt - generate a training packet
3820 : : * @hw: pointer to the hardware structure
3821 : : * @input: flow director filter data structure
3822 : : * @pkt: pointer to return filter packet
3823 : : * @frag: generate a fragment packet
3824 : : * @tun: true implies generate a tunnel packet
3825 : : */
3826 : : int
3827 : 0 : ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,
3828 : : u8 *pkt, bool frag, bool tun)
3829 : : {
3830 : : enum ice_fltr_ptype flow;
3831 : : u16 tnl_port;
3832 : : u8 *loc;
3833 : : u16 idx;
3834 : : u16 flags_version;
3835 : : u16 pos;
3836 : : u16 offset;
3837 : :
3838 [ # # ]: 0 : if (input->flow_type == ICE_FLTR_PTYPE_NONF_IPV4_OTHER) {
3839 [ # # # # ]: 0 : switch (input->ip.v4.proto) {
3840 : : case ICE_IP_PROTO_TCP:
3841 : : flow = ICE_FLTR_PTYPE_NONF_IPV4_TCP;
3842 : : break;
3843 : 0 : case ICE_IP_PROTO_UDP:
3844 : : flow = ICE_FLTR_PTYPE_NONF_IPV4_UDP;
3845 : 0 : break;
3846 : 0 : case ICE_IP_PROTO_SCTP:
3847 : : flow = ICE_FLTR_PTYPE_NONF_IPV4_SCTP;
3848 : 0 : break;
3849 : 0 : default:
3850 : : flow = ICE_FLTR_PTYPE_NONF_IPV4_OTHER;
3851 : 0 : break;
3852 : : }
3853 [ # # ]: 0 : } else if (input->flow_type == ICE_FLTR_PTYPE_NONF_IPV6_OTHER) {
3854 [ # # # # ]: 0 : switch (input->ip.v6.proto) {
3855 : : case ICE_IP_PROTO_TCP:
3856 : : flow = ICE_FLTR_PTYPE_NONF_IPV6_TCP;
3857 : : break;
3858 : 0 : case ICE_IP_PROTO_UDP:
3859 : : flow = ICE_FLTR_PTYPE_NONF_IPV6_UDP;
3860 : 0 : break;
3861 : 0 : case ICE_IP_PROTO_SCTP:
3862 : : flow = ICE_FLTR_PTYPE_NONF_IPV6_SCTP;
3863 : 0 : break;
3864 : 0 : default:
3865 : : flow = ICE_FLTR_PTYPE_NONF_IPV6_OTHER;
3866 : 0 : break;
3867 : : }
3868 : : } else {
3869 : : flow = input->flow_type;
3870 : : }
3871 : :
3872 [ # # ]: 0 : for (idx = 0; idx < ICE_FDIR_NUM_PKT; idx++)
3873 [ # # ]: 0 : if (ice_fdir_pkt[idx].flow == flow)
3874 : : break;
3875 [ # # ]: 0 : if (idx == ICE_FDIR_NUM_PKT)
3876 : : return ICE_ERR_PARAM;
3877 : :
3878 [ # # ]: 0 : if (!tun) {
3879 [ # # # ]: 0 : switch (flow) {
3880 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_CONTROL:
3881 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2:
3882 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP:
3883 : : offset = ICE_FDIR_IPV4_L2TPV2_PPP_PKT_OFF;
3884 : 0 : ice_fdir_gen_l2tpv2_pkt(pkt, &input->l2tpv2_data,
3885 : : idx, offset, tun);
3886 : 0 : break;
3887 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_CONTROL:
3888 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2:
3889 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP:
3890 : : offset = ICE_FDIR_IPV6_L2TPV2_PPP_PKT_OFF;
3891 : 0 : ice_fdir_gen_l2tpv2_pkt(pkt, &input->l2tpv2_data,
3892 : : idx, offset, tun);
3893 : 0 : break;
3894 : 0 : default:
3895 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].pkt,
3896 : : ice_fdir_pkt[idx].pkt_len,
3897 : : ICE_NONDMA_TO_NONDMA);
3898 : : break;
3899 : : }
3900 : : loc = pkt;
3901 : : } else {
3902 [ # # ]: 0 : if (!ice_fdir_pkt[idx].tun_pkt)
3903 : : return ICE_ERR_PARAM;
3904 : :
3905 [ # # # # : 0 : switch (flow) {
# # # # #
# # ]
3906 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4:
3907 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_UDP:
3908 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP:
3909 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6:
3910 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_UDP:
3911 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_TCP:
3912 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3913 : : ice_fdir_pkt[idx].tun_pkt_len,
3914 : : ICE_NONDMA_TO_NONDMA);
3915 : 0 : loc = &pkt[ICE_FDIR_GTPU_IP_INNER_PKT_OFF];
3916 : 0 : break;
3917 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4:
3918 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_UDP:
3919 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_TCP:
3920 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6:
3921 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_UDP:
3922 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_TCP:
3923 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4:
3924 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_UDP:
3925 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_TCP:
3926 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6:
3927 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_UDP:
3928 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_TCP:
3929 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4:
3930 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_UDP:
3931 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_TCP:
3932 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6:
3933 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_UDP:
3934 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_TCP:
3935 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3936 : : ice_fdir_pkt[idx].tun_pkt_len,
3937 : : ICE_NONDMA_TO_NONDMA);
3938 : 0 : loc = &pkt[ICE_FDIR_GTPU_EH_INNER_PKT_OFF];
3939 : 0 : break;
3940 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4:
3941 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_UDP:
3942 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_TCP:
3943 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6:
3944 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_UDP:
3945 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_TCP:
3946 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3947 : : ice_fdir_pkt[idx].tun_pkt_len,
3948 : : ICE_NONDMA_TO_NONDMA);
3949 : 0 : loc = &pkt[ICE_FDIR_IPV4_GRE_INNER_PKT_OFF];
3950 : 0 : break;
3951 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4:
3952 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_UDP:
3953 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_TCP:
3954 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6:
3955 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_UDP:
3956 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_TCP:
3957 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3958 : : ice_fdir_pkt[idx].tun_pkt_len,
3959 : : ICE_NONDMA_TO_NONDMA);
3960 : 0 : loc = &pkt[ICE_FDIR_IPV6_GRE_INNER_PKT_OFF];
3961 : 0 : break;
3962 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4:
3963 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_UDP:
3964 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_TCP:
3965 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6:
3966 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_UDP:
3967 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_TCP:
3968 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3969 : : ice_fdir_pkt[idx].tun_pkt_len,
3970 : : ICE_NONDMA_TO_NONDMA);
3971 : 0 : loc = &pkt[ICE_FDIR_V4_V4_GTPOGRE_PKT_OFF];
3972 : 0 : break;
3973 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4:
3974 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_UDP:
3975 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_TCP:
3976 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6:
3977 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_UDP:
3978 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_TCP:
3979 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
3980 : : ice_fdir_pkt[idx].tun_pkt_len,
3981 : : ICE_NONDMA_TO_NONDMA);
3982 : 0 : loc = &pkt[ICE_FDIR_V6_V4_GTPOGRE_PKT_OFF];
3983 : 0 : break;
3984 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4:
3985 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP:
3986 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP:
3987 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6:
3988 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_UDP:
3989 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_TCP:
3990 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4:
3991 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
3992 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
3993 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6:
3994 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
3995 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
3996 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4:
3997 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
3998 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
3999 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6:
4000 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
4001 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
4002 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
4003 : : ice_fdir_pkt[idx].tun_pkt_len,
4004 : : ICE_NONDMA_TO_NONDMA);
4005 : 0 : loc = &pkt[ICE_FDIR_V4_V4_GTPOGRE_EH_PKT_OFF];
4006 : 0 : break;
4007 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4:
4008 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_UDP:
4009 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_TCP:
4010 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6:
4011 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_UDP:
4012 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_TCP:
4013 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4:
4014 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
4015 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
4016 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6:
4017 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
4018 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
4019 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4:
4020 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
4021 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
4022 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6:
4023 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
4024 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
4025 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
4026 : : ice_fdir_pkt[idx].tun_pkt_len,
4027 : : ICE_NONDMA_TO_NONDMA);
4028 : 0 : loc = &pkt[ICE_FDIR_V6_V4_GTPOGRE_EH_PKT_OFF];
4029 : 0 : break;
4030 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4:
4031 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4_UDP:
4032 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4_TCP:
4033 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6:
4034 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6_UDP:
4035 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6_TCP:
4036 : : offset = ICE_FDIR_IPV4_L2TPV2_PPP_PKT_OFF;
4037 : 0 : pos = ice_fdir_gen_l2tpv2_pkt(pkt, &input->l2tpv2_data,
4038 : : idx, offset, tun);
4039 : 0 : loc = &pkt[pos];
4040 : 0 : break;
4041 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4:
4042 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4_UDP:
4043 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4_TCP:
4044 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6:
4045 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6_UDP:
4046 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6_TCP:
4047 : : offset = ICE_FDIR_IPV6_L2TPV2_PPP_PKT_OFF;
4048 : 0 : pos = ice_fdir_gen_l2tpv2_pkt(pkt, &input->l2tpv2_data,
4049 : : idx, offset, tun);
4050 : 0 : loc = &pkt[pos];
4051 : 0 : break;
4052 : 0 : default:
4053 [ # # ]: 0 : if (ice_fdir_get_open_tunnel_port(hw, flow, &tnl_port))
4054 : : return ICE_ERR_DOES_NOT_EXIST;
4055 : :
4056 [ # # ]: 0 : ice_memcpy(pkt, ice_fdir_pkt[idx].tun_pkt,
4057 : : ice_fdir_pkt[idx].tun_pkt_len,
4058 : : ICE_NONDMA_TO_NONDMA);
4059 : 0 : ice_pkt_insert_u16(pkt, ICE_IPV4_UDP_DST_PORT_OFFSET,
4060 [ # # ]: 0 : HTONS(tnl_port));
4061 : 0 : loc = &pkt[ICE_FDIR_TUN_PKT_OFF];
4062 : 0 : break;
4063 : : }
4064 : : }
4065 : :
4066 : : /* Reverse the src and dst, since the HW expects them to be from Tx
4067 : : * perspective. The input from user is from Rx filter perspective.
4068 : : */
4069 [ # # # # : 0 : switch (flow) {
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # ]
4070 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_TCP:
4071 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4072 : : input->ip.v4.src_ip);
4073 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_TCP_DST_PORT_OFFSET,
4074 : 0 : input->ip.v4.src_port);
4075 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4076 : : input->ip.v4.dst_ip);
4077 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_TCP_SRC_PORT_OFFSET,
4078 : 0 : input->ip.v4.dst_port);
4079 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4080 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4081 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4082 [ # # ]: 0 : if (frag)
4083 : 0 : loc[20] = ICE_FDIR_IPV4_PKT_FLAG_MF;
4084 : : break;
4085 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_UDP:
4086 : 0 : ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
4087 : 0 : ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
4088 : 0 : input->ext_data_outer.src_mac);
4089 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
4090 : : input->ip_outer.v4.dst_ip);
4091 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
4092 : : input->ip_outer.v4.src_ip);
4093 : 0 : ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET, input->ip_outer.v4.tos);
4094 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4095 : : input->ip.v4.src_ip);
4096 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_UDP_DST_PORT_OFFSET,
4097 : 0 : input->ip.v4.src_port);
4098 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4099 : : input->ip.v4.dst_ip);
4100 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_UDP_SRC_PORT_OFFSET,
4101 : 0 : input->ip.v4.dst_port);
4102 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4103 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4104 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4105 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4106 : 0 : input->ext_data.src_mac);
4107 : 0 : break;
4108 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_SCTP:
4109 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4110 : : input->ip.v4.src_ip);
4111 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_DST_PORT_OFFSET,
4112 : 0 : input->ip.v4.src_port);
4113 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4114 : : input->ip.v4.dst_ip);
4115 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_SRC_PORT_OFFSET,
4116 : 0 : input->ip.v4.dst_port);
4117 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4118 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4119 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4120 : 0 : break;
4121 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_OTHER:
4122 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4123 : : input->ip.v4.src_ip);
4124 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4125 : : input->ip.v4.dst_ip);
4126 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4127 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4128 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_PROTO_OFFSET,
4129 : 0 : input->ip.v4.proto);
4130 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4131 : 0 : break;
4132 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN:
4133 : : case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_UDP:
4134 : 0 : ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
4135 : 0 : ice_pkt_insert_mac_addr(pkt + ETH_ALEN, input->ext_data_outer.src_mac);
4136 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
4137 : : input->ip_outer.v4.dst_ip);
4138 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
4139 : : input->ip_outer.v4.src_ip);
4140 : 0 : ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET, input->ip_outer.v4.tos);
4141 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
4142 : : input->vxlan_data.vni);
4143 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4144 : : input->ip.v4.src_ip);
4145 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_UDP_DST_PORT_OFFSET,
4146 : 0 : input->ip.v4.src_port);
4147 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4148 : : input->ip.v4.dst_ip);
4149 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_UDP_SRC_PORT_OFFSET,
4150 : 0 : input->ip.v4.dst_port);
4151 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4152 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4153 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4154 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN, input->ext_data.src_mac);
4155 : 0 : break;
4156 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_TCP:
4157 : 0 : ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
4158 : 0 : ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
4159 : 0 : input->ext_data_outer.src_mac);
4160 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
4161 : : input->ip_outer.v4.dst_ip);
4162 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
4163 : : input->ip_outer.v4.src_ip);
4164 : 0 : ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET,
4165 : 0 : input->ip_outer.v4.tos);
4166 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
4167 : : input->vxlan_data.vni);
4168 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4169 : : input->ip.v4.src_ip);
4170 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_TCP_DST_PORT_OFFSET,
4171 : 0 : input->ip.v4.src_port);
4172 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4173 : : input->ip.v4.dst_ip);
4174 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_TCP_SRC_PORT_OFFSET,
4175 : 0 : input->ip.v4.dst_port);
4176 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4177 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4178 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4179 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4180 : 0 : input->ext_data.src_mac);
4181 [ # # ]: 0 : if (frag)
4182 : 0 : loc[20] = ICE_FDIR_IPV4_PKT_FLAG_MF;
4183 : : break;
4184 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_SCTP:
4185 : 0 : ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
4186 : 0 : ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
4187 : 0 : input->ext_data_outer.src_mac);
4188 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
4189 : : input->ip_outer.v4.dst_ip);
4190 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
4191 : : input->ip_outer.v4.src_ip);
4192 : 0 : ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET,
4193 : 0 : input->ip_outer.v4.tos);
4194 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
4195 : : input->vxlan_data.vni);
4196 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4197 : : input->ip.v4.src_ip);
4198 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_DST_PORT_OFFSET,
4199 : 0 : input->ip.v4.src_port);
4200 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4201 : : input->ip.v4.dst_ip);
4202 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_SCTP_SRC_PORT_OFFSET,
4203 : 0 : input->ip.v4.dst_port);
4204 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4205 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4206 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4207 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4208 : 0 : input->ext_data.src_mac);
4209 : 0 : break;
4210 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_UDP_VXLAN_IPV4_OTHER:
4211 : 0 : ice_pkt_insert_mac_addr(pkt, input->ext_data_outer.dst_mac);
4212 : 0 : ice_pkt_insert_mac_addr(pkt + ETH_ALEN,
4213 : 0 : input->ext_data_outer.src_mac);
4214 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_SRC_ADDR_OFFSET,
4215 : : input->ip_outer.v4.dst_ip);
4216 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_DST_ADDR_OFFSET,
4217 : : input->ip_outer.v4.src_ip);
4218 : 0 : ice_pkt_insert_u8(pkt, ICE_IPV4_TOS_OFFSET,
4219 : 0 : input->ip_outer.v4.tos);
4220 : 0 : ice_pkt_insert_u32(pkt, ICE_IPV4_VXLAN_VNI_OFFSET,
4221 : : input->vxlan_data.vni);
4222 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4223 : : input->ip.v4.src_ip);
4224 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4225 : : input->ip.v4.dst_ip);
4226 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4227 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4228 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_PROTO_OFFSET,
4229 : 0 : input->ip.v4.proto);
4230 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4231 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4232 : 0 : input->ext_data.src_mac);
4233 : 0 : break;
4234 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU:
4235 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4236 : : input->ip.v4.src_ip);
4237 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4238 : : input->ip.v4.dst_ip);
4239 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_GTPU_TEID_OFFSET,
4240 : : input->gtpu_data.teid);
4241 : 0 : break;
4242 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4:
4243 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4:
4244 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4:
4245 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4:
4246 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4:
4247 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4:
4248 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4:
4249 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4:
4250 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4:
4251 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4:
4252 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4:
4253 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4:
4254 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4255 : : input->ip.v4.src_ip);
4256 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4257 : : input->ip.v4.dst_ip);
4258 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET, input->ip.v4.tos);
4259 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET, input->ip.v4.ttl);
4260 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_PROTO_OFFSET,
4261 : 0 : input->ip.v4.proto);
4262 : 0 : break;
4263 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH:
4264 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW:
4265 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP:
4266 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4267 : : input->ip.v4.src_ip);
4268 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4269 : : input->ip.v4.dst_ip);
4270 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_GTPU_TEID_OFFSET,
4271 : : input->gtpu_data.teid);
4272 : 0 : ice_pkt_insert_u6_qfi(loc, ICE_IPV4_GTPU_QFI_OFFSET,
4273 : 0 : input->gtpu_data.qfi);
4274 : 0 : break;
4275 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU:
4276 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4277 : : input->ip.v4.src_ip);
4278 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4279 : : input->ip.v4.dst_ip);
4280 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_GTPOGRE_TEID_OFFSET,
4281 : : input->gtpu_data.teid);
4282 : 0 : break;
4283 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH:
4284 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW:
4285 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP:
4286 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4287 : : input->ip.v4.src_ip);
4288 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4289 : : input->ip.v4.dst_ip);
4290 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_GTPOGRE_TEID_OFFSET,
4291 : : input->gtpu_data.teid);
4292 : 0 : ice_pkt_insert_u6_qfi(loc, ICE_IPV4_GTPOGRE_QFI_OFFSET,
4293 : 0 : input->gtpu_data.qfi);
4294 : 0 : break;
4295 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_UDP:
4296 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_UDP:
4297 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_UDP:
4298 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_UDP:
4299 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_UDP:
4300 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_UDP:
4301 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP:
4302 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
4303 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
4304 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_UDP:
4305 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_UDP:
4306 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_UDP:
4307 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4308 : : input->ip.v4.src_ip);
4309 : 0 : ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_DST_PORT_OFFSET,
4310 : 0 : input->ip.v4.src_port);
4311 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4312 : : input->ip.v4.dst_ip);
4313 : 0 : ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_SRC_PORT_OFFSET,
4314 : 0 : input->ip.v4.dst_port);
4315 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET, input->ip.v4.tos);
4316 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET, input->ip.v4.ttl);
4317 : 0 : break;
4318 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP:
4319 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_TCP:
4320 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV4_TCP:
4321 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV4_TCP:
4322 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV4_TCP:
4323 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV4_TCP:
4324 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP:
4325 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
4326 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
4327 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV4_TCP:
4328 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV4_TCP:
4329 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV4_TCP:
4330 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4331 : : input->ip.v4.src_ip);
4332 : 0 : ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_DST_PORT_OFFSET,
4333 : 0 : input->ip.v4.src_port);
4334 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4335 : : input->ip.v4.dst_ip);
4336 : 0 : ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_SRC_PORT_OFFSET,
4337 : 0 : input->ip.v4.dst_port);
4338 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET, input->ip.v4.tos);
4339 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET, input->ip.v4.ttl);
4340 : 0 : break;
4341 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6:
4342 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6:
4343 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6:
4344 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6:
4345 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6:
4346 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6:
4347 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6:
4348 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6:
4349 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6:
4350 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6:
4351 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6:
4352 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6:
4353 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4354 : 0 : input->ip.v6.src_ip);
4355 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4356 : 0 : input->ip.v6.dst_ip);
4357 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET, input->ip.v6.tc);
4358 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET, input->ip.v6.hlim);
4359 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_PROTO_OFFSET,
4360 : 0 : input->ip.v6.proto);
4361 : 0 : break;
4362 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_UDP:
4363 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_UDP:
4364 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_UDP:
4365 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_UDP:
4366 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_UDP:
4367 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_UDP:
4368 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_UDP:
4369 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
4370 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
4371 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_UDP:
4372 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_UDP:
4373 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_UDP:
4374 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4375 : 0 : input->ip.v6.src_ip);
4376 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4377 : 0 : input->ip.v6.dst_ip);
4378 : 0 : ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_DST_PORT_OFFSET,
4379 : 0 : input->ip.v6.src_port);
4380 : 0 : ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_SRC_PORT_OFFSET,
4381 : 0 : input->ip.v6.dst_port);
4382 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET, input->ip.v6.tc);
4383 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET, input->ip.v6.hlim);
4384 : 0 : break;
4385 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV6_TCP:
4386 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV6_TCP:
4387 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_DW_IPV6_TCP:
4388 : : case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_UP_IPV6_TCP:
4389 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_IPV6_TCP:
4390 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_IPV6_TCP:
4391 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_IPV6_TCP:
4392 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
4393 : : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
4394 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_IPV6_TCP:
4395 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW_IPV6_TCP:
4396 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP_IPV6_TCP:
4397 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4398 : 0 : input->ip.v6.src_ip);
4399 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4400 : 0 : input->ip.v6.dst_ip);
4401 : 0 : ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_DST_PORT_OFFSET,
4402 : 0 : input->ip.v6.src_port);
4403 : 0 : ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_SRC_PORT_OFFSET,
4404 : 0 : input->ip.v6.dst_port);
4405 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET, input->ip.v6.tc);
4406 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET, input->ip.v6.hlim);
4407 : 0 : break;
4408 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_GTPU:
4409 : : case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER:
4410 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4411 : 0 : input->ip.v6.src_ip);
4412 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4413 : 0 : input->ip.v6.dst_ip);
4414 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_GTPU_TEID_OFFSET,
4415 : : input->gtpu_data.teid);
4416 : 0 : break;
4417 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH:
4418 : : case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_DW:
4419 : : case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_UP:
4420 : : case ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_IPV6_OTHER:
4421 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4422 : 0 : input->ip.v6.src_ip);
4423 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4424 : 0 : input->ip.v6.dst_ip);
4425 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_GTPU_TEID_OFFSET,
4426 : : input->gtpu_data.teid);
4427 : 0 : ice_pkt_insert_u6_qfi(loc, ICE_IPV6_GTPU_QFI_OFFSET,
4428 : 0 : input->gtpu_data.qfi);
4429 : 0 : break;
4430 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU:
4431 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4432 : 0 : input->ip.v6.src_ip);
4433 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4434 : 0 : input->ip.v6.dst_ip);
4435 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_GTPOGRE_TEID_OFFSET,
4436 : : input->gtpu_data.teid);
4437 : 0 : break;
4438 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH:
4439 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_DW:
4440 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_GTPU_EH_UP:
4441 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4442 : 0 : input->ip.v6.src_ip);
4443 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4444 : 0 : input->ip.v6.dst_ip);
4445 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_GTPOGRE_TEID_OFFSET,
4446 : : input->gtpu_data.teid);
4447 : 0 : ice_pkt_insert_u6_qfi(loc, ICE_IPV6_GTPOGRE_QFI_OFFSET,
4448 : 0 : input->gtpu_data.qfi);
4449 : 0 : break;
4450 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV3:
4451 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_L2TPV3_SESS_ID_OFFSET,
4452 : : input->l2tpv3_data.session_id);
4453 : 0 : break;
4454 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV3:
4455 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_L2TPV3_SESS_ID_OFFSET,
4456 : : input->l2tpv3_data.session_id);
4457 : 0 : break;
4458 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_ESP:
4459 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4460 : : input->ip.v4.src_ip);
4461 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4462 : : input->ip.v4.dst_ip);
4463 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_ESP_SPI_OFFSET,
4464 : : input->ip.v4.sec_parm_idx);
4465 : 0 : break;
4466 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_ESP:
4467 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4468 : 0 : input->ip.v6.src_ip);
4469 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4470 : 0 : input->ip.v6.dst_ip);
4471 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_ESP_SPI_OFFSET,
4472 : : input->ip.v6.sec_parm_idx);
4473 : 0 : break;
4474 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_AH:
4475 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_AH_SPI_OFFSET,
4476 : : input->ip.v4.sec_parm_idx);
4477 : 0 : break;
4478 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_AH:
4479 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_AH_SPI_OFFSET,
4480 : : input->ip.v6.sec_parm_idx);
4481 : 0 : break;
4482 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_NAT_T_ESP:
4483 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4484 : : input->ip.v4.src_ip);
4485 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4486 : : input->ip.v4.dst_ip);
4487 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NAT_T_ESP_SPI_OFFSET,
4488 : : input->ip.v4.sec_parm_idx);
4489 : 0 : break;
4490 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_NAT_T_ESP:
4491 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4492 : 0 : input->ip.v6.src_ip);
4493 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4494 : 0 : input->ip.v6.dst_ip);
4495 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_NAT_T_ESP_SPI_OFFSET,
4496 : : input->ip.v6.sec_parm_idx);
4497 : 0 : break;
4498 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_PFCP_NODE:
4499 : : case ICE_FLTR_PTYPE_NONF_IPV4_PFCP_SESSION:
4500 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_UDP_SRC_PORT_OFFSET,
4501 : 0 : input->ip.v4.dst_port);
4502 : 0 : break;
4503 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_PFCP_NODE:
4504 : : case ICE_FLTR_PTYPE_NONF_IPV6_PFCP_SESSION:
4505 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_UDP_SRC_PORT_OFFSET,
4506 : 0 : input->ip.v6.dst_port);
4507 : 0 : break;
4508 : 0 : case ICE_FLTR_PTYPE_NON_IP_L2:
4509 : 0 : ice_pkt_insert_u16(loc, ICE_MAC_ETHTYPE_OFFSET,
4510 : 0 : input->ext_data.ether_type);
4511 : 0 : break;
4512 : 0 : case ICE_FLTR_PTYPE_NONF_ECPRI_TP0:
4513 : 0 : ice_pkt_insert_u16(loc, ICE_ECPRI_TP0_PC_ID_OFFSET,
4514 : 0 : input->ecpri_data.pc_id);
4515 : 0 : break;
4516 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_UDP_ECPRI_TP0:
4517 : : /* Use pkt instead of loc, since PC_ID is in outer part */
4518 : 0 : ice_pkt_insert_u16(pkt, ICE_IPV4_UDP_ECPRI_TP0_PC_ID_OFFSET,
4519 : 0 : input->ecpri_data.pc_id);
4520 : 0 : break;
4521 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4:
4522 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4:
4523 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4524 : : input->ip.v4.src_ip);
4525 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4526 : : input->ip.v4.dst_ip);
4527 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
4528 : 0 : input->ip.v4.tos);
4529 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_PROTO_OFFSET,
4530 : 0 : input->ip.v4.proto);
4531 : 0 : break;
4532 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_TCP:
4533 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_TCP:
4534 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4535 : : input->ip.v4.src_ip);
4536 : 0 : ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_DST_PORT_OFFSET,
4537 : 0 : input->ip.v4.src_port);
4538 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4539 : : input->ip.v4.dst_ip);
4540 : 0 : ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_SRC_PORT_OFFSET,
4541 : 0 : input->ip.v4.dst_port);
4542 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
4543 : 0 : input->ip.v4.tos);
4544 : 0 : break;
4545 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV4_UDP:
4546 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV4_UDP:
4547 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4548 : : input->ip.v4.src_ip);
4549 : 0 : ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_DST_PORT_OFFSET,
4550 : 0 : input->ip.v4.src_port);
4551 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4552 : : input->ip.v4.dst_ip);
4553 : 0 : ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_SRC_PORT_OFFSET,
4554 : 0 : input->ip.v4.dst_port);
4555 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
4556 : 0 : input->ip.v4.tos);
4557 : 0 : break;
4558 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6:
4559 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6:
4560 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4561 : 0 : input->ip.v6.src_ip);
4562 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4563 : 0 : input->ip.v6.dst_ip);
4564 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4565 : 0 : input->ip.v6.tc);
4566 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_PROTO_OFFSET,
4567 : 0 : input->ip.v6.proto);
4568 : 0 : break;
4569 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_TCP:
4570 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_TCP:
4571 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4572 : 0 : input->ip.v6.src_ip);
4573 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4574 : 0 : input->ip.v6.dst_ip);
4575 : 0 : ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_DST_PORT_OFFSET,
4576 : 0 : input->ip.v6.src_port);
4577 : 0 : ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_SRC_PORT_OFFSET,
4578 : 0 : input->ip.v6.dst_port);
4579 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4580 : 0 : input->ip.v6.tc);
4581 : 0 : break;
4582 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_GRE_IPV6_UDP:
4583 : : case ICE_FLTR_PTYPE_NONF_IPV6_GRE_IPV6_UDP:
4584 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4585 : 0 : input->ip.v6.src_ip);
4586 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4587 : 0 : input->ip.v6.dst_ip);
4588 : 0 : ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_DST_PORT_OFFSET,
4589 : 0 : input->ip.v6.src_port);
4590 : 0 : ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_SRC_PORT_OFFSET,
4591 : 0 : input->ip.v6.dst_port);
4592 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4593 : 0 : input->ip.v6.tc);
4594 : 0 : break;
4595 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_CONTROL:
4596 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data_outer.dst_mac);
4597 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4598 : 0 : input->ext_data_outer.src_mac);
4599 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_L2TPV2_LEN_SESS_ID_OFFSET,
4600 [ # # ]: 0 : input->l2tpv2_data.session_id);
4601 : 0 : break;
4602 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2:
4603 : : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP:
4604 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data_outer.dst_mac);
4605 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4606 : 0 : input->ext_data_outer.src_mac);
4607 [ # # ]: 0 : flags_version = BE16_TO_CPU(input->l2tpv2_data.flags_version);
4608 [ # # ]: 0 : if (flags_version & ICE_L2TPV2_FLAGS_LEN) {
4609 : 0 : ice_pkt_insert_u16(loc,
4610 : : ICE_IPV4_L2TPV2_LEN_SESS_ID_OFFSET,
4611 : 0 : input->l2tpv2_data.session_id);
4612 : : } else {
4613 : 0 : ice_pkt_insert_u16(loc,
4614 : : ICE_IPV4_L2TPV2_SESS_ID_OFFSET,
4615 : 0 : input->l2tpv2_data.session_id);
4616 : : }
4617 : : break;
4618 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_CONTROL:
4619 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data_outer.dst_mac);
4620 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4621 : 0 : input->ext_data_outer.src_mac);
4622 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_L2TPV2_LEN_SESS_ID_OFFSET,
4623 [ # # ]: 0 : input->l2tpv2_data.session_id);
4624 : 0 : break;
4625 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2:
4626 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP:
4627 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data_outer.dst_mac);
4628 : 0 : ice_pkt_insert_mac_addr(loc + ETH_ALEN,
4629 : 0 : input->ext_data_outer.src_mac);
4630 [ # # ]: 0 : flags_version = BE16_TO_CPU(input->l2tpv2_data.flags_version);
4631 [ # # ]: 0 : if (flags_version & ICE_L2TPV2_FLAGS_LEN) {
4632 : 0 : ice_pkt_insert_u16(loc,
4633 : : ICE_IPV6_L2TPV2_LEN_SESS_ID_OFFSET,
4634 : 0 : input->l2tpv2_data.session_id);
4635 : : } else {
4636 : 0 : ice_pkt_insert_u16(loc,
4637 : : ICE_IPV6_L2TPV2_SESS_ID_OFFSET,
4638 : 0 : input->l2tpv2_data.session_id);
4639 : : }
4640 : : break;
4641 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4:
4642 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4:
4643 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4644 : : input->ip.v4.src_ip);
4645 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4646 : : input->ip.v4.dst_ip);
4647 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
4648 : 0 : input->ip.v4.tos);
4649 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET,
4650 : 0 : input->ip.v4.ttl);
4651 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_PROTO_OFFSET,
4652 : 0 : input->ip.v4.proto);
4653 : 0 : break;
4654 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4_UDP:
4655 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4_UDP:
4656 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4657 : : input->ip.v4.src_ip);
4658 : 0 : ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_DST_PORT_OFFSET,
4659 : 0 : input->ip.v4.src_port);
4660 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4661 : : input->ip.v4.dst_ip);
4662 : 0 : ice_pkt_insert_u16(loc, ICE_UDP4_NO_MAC_SRC_PORT_OFFSET,
4663 : 0 : input->ip.v4.dst_port);
4664 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
4665 : 0 : input->ip.v4.tos);
4666 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET,
4667 : 0 : input->ip.v4.ttl);
4668 : 0 : break;
4669 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV4_TCP:
4670 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV4_TCP:
4671 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_DST_ADDR_OFFSET,
4672 : : input->ip.v4.src_ip);
4673 : 0 : ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_DST_PORT_OFFSET,
4674 : 0 : input->ip.v4.src_port);
4675 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_NO_MAC_SRC_ADDR_OFFSET,
4676 : : input->ip.v4.dst_ip);
4677 : 0 : ice_pkt_insert_u16(loc, ICE_TCP4_NO_MAC_SRC_PORT_OFFSET,
4678 : 0 : input->ip.v4.dst_port);
4679 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TOS_OFFSET,
4680 : 0 : input->ip.v4.tos);
4681 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_NO_MAC_TTL_OFFSET,
4682 : 0 : input->ip.v4.ttl);
4683 : 0 : break;
4684 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6:
4685 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6:
4686 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4687 : 0 : input->ip.v6.src_ip);
4688 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4689 : 0 : input->ip.v6.dst_ip);
4690 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4691 : 0 : input->ip.v6.tc);
4692 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET,
4693 : 0 : input->ip.v6.hlim);
4694 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_PROTO_OFFSET,
4695 : 0 : input->ip.v6.proto);
4696 : 0 : break;
4697 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6_UDP:
4698 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6_UDP:
4699 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4700 : 0 : input->ip.v6.src_ip);
4701 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4702 : 0 : input->ip.v6.dst_ip);
4703 : 0 : ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_DST_PORT_OFFSET,
4704 : 0 : input->ip.v6.src_port);
4705 : 0 : ice_pkt_insert_u16(loc, ICE_UDP6_NO_MAC_SRC_PORT_OFFSET,
4706 : 0 : input->ip.v6.dst_port);
4707 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4708 : 0 : input->ip.v6.tc);
4709 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET,
4710 : 0 : input->ip.v6.hlim);
4711 : 0 : break;
4712 : 0 : case ICE_FLTR_PTYPE_NONF_IPV4_L2TPV2_PPP_IPV6_TCP:
4713 : : case ICE_FLTR_PTYPE_NONF_IPV6_L2TPV2_PPP_IPV6_TCP:
4714 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_DST_ADDR_OFFSET,
4715 : 0 : input->ip.v6.src_ip);
4716 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_NO_MAC_SRC_ADDR_OFFSET,
4717 : 0 : input->ip.v6.dst_ip);
4718 : 0 : ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_DST_PORT_OFFSET,
4719 : 0 : input->ip.v6.src_port);
4720 : 0 : ice_pkt_insert_u16(loc, ICE_TCP6_NO_MAC_SRC_PORT_OFFSET,
4721 : 0 : input->ip.v6.dst_port);
4722 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_NO_MAC_TC_OFFSET,
4723 : 0 : input->ip.v6.tc);
4724 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_NO_MAC_HLIM_OFFSET,
4725 : 0 : input->ip.v6.hlim);
4726 : 0 : break;
4727 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_TCP:
4728 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4729 : 0 : input->ip.v6.src_ip);
4730 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4731 : 0 : input->ip.v6.dst_ip);
4732 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_TCP_DST_PORT_OFFSET,
4733 : 0 : input->ip.v6.src_port);
4734 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_TCP_SRC_PORT_OFFSET,
4735 : 0 : input->ip.v6.dst_port);
4736 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4737 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4738 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4739 : 0 : break;
4740 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_UDP:
4741 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4742 : 0 : input->ip.v6.src_ip);
4743 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4744 : 0 : input->ip.v6.dst_ip);
4745 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_UDP_DST_PORT_OFFSET,
4746 : 0 : input->ip.v6.src_port);
4747 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_UDP_SRC_PORT_OFFSET,
4748 : 0 : input->ip.v6.dst_port);
4749 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4750 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4751 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4752 : 0 : break;
4753 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_SCTP:
4754 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4755 : 0 : input->ip.v6.src_ip);
4756 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4757 : 0 : input->ip.v6.dst_ip);
4758 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_SCTP_DST_PORT_OFFSET,
4759 : 0 : input->ip.v6.src_port);
4760 : 0 : ice_pkt_insert_u16(loc, ICE_IPV6_SCTP_SRC_PORT_OFFSET,
4761 : 0 : input->ip.v6.dst_port);
4762 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4763 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4764 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4765 : 0 : break;
4766 : 0 : case ICE_FLTR_PTYPE_NONF_IPV6_OTHER:
4767 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4768 : 0 : input->ip.v6.src_ip);
4769 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4770 : 0 : input->ip.v6.dst_ip);
4771 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4772 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4773 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_PROTO_OFFSET,
4774 : 0 : input->ip.v6.proto);
4775 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4776 : 0 : break;
4777 : 0 : case ICE_FLTR_PTYPE_FRAG_IPV4:
4778 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
4779 : : input->ip.v4.src_ip);
4780 : 0 : ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
4781 : : input->ip.v4.dst_ip);
4782 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);
4783 : 0 : ice_pkt_insert_u16(loc, ICE_IPV4_ID_OFFSET,
4784 : 0 : input->ip.v4.packet_id);
4785 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);
4786 : 0 : ice_pkt_insert_u8(loc, ICE_IPV4_PROTO_OFFSET,
4787 : 0 : input->ip.v4.proto);
4788 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4789 : 0 : break;
4790 : 0 : case ICE_FLTR_PTYPE_FRAG_IPV6:
4791 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
4792 : 0 : input->ip.v6.src_ip);
4793 : 0 : ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
4794 : 0 : input->ip.v6.dst_ip);
4795 : 0 : ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
4796 : 0 : ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
4797 : 0 : ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
4798 : 0 : ice_pkt_insert_u32(loc, ICE_IPV6_ID_OFFSET,
4799 : : input->ip.v6.packet_id);
4800 : 0 : break;
4801 : : default:
4802 : : return ICE_ERR_PARAM;
4803 : : }
4804 : :
4805 [ # # ]: 0 : if (input->flex_fltr)
4806 [ # # ]: 0 : ice_pkt_insert_u16(loc, input->flex_offset, input->flex_word);
4807 : :
4808 : : return 0;
4809 : : }
4810 : :
4811 : : /**
4812 : : * ice_fdir_get_prgm_pkt - generate a training packet
4813 : : * @input: flow director filter data structure
4814 : : * @pkt: pointer to return filter packet
4815 : : * @frag: generate a fragment packet
4816 : : */
4817 : : int
4818 : 0 : ice_fdir_get_prgm_pkt(struct ice_fdir_fltr *input, u8 *pkt, bool frag)
4819 : : {
4820 : 0 : return ice_fdir_get_gen_prgm_pkt(NULL, input, pkt, frag, false);
4821 : : }
4822 : :
4823 : : /**
4824 : : * ice_fdir_has_frag - does flow type have 2 ptypes
4825 : : * @flow: flow ptype
4826 : : *
4827 : : * returns true is there is a fragment packet for this ptype
4828 : : */
4829 : 0 : bool ice_fdir_has_frag(enum ice_fltr_ptype flow)
4830 : : {
4831 [ # # ]: 0 : if (flow == ICE_FLTR_PTYPE_FRAG_IPV4 ||
4832 : : flow == ICE_FLTR_PTYPE_FRAG_IPV6)
4833 : : return true;
4834 : : else
4835 : 0 : return false;
4836 : : }
4837 : :
4838 : : /**
4839 : : * ice_fdir_find_fltr_by_idx - find filter with idx
4840 : : * @hw: pointer to hardware structure
4841 : : * @fltr_idx: index to find.
4842 : : *
4843 : : * Returns pointer to filter if found or null
4844 : : */
4845 : : struct ice_fdir_fltr *
4846 : 0 : ice_fdir_find_fltr_by_idx(struct ice_hw *hw, u32 fltr_idx)
4847 : : {
4848 : : struct ice_fdir_fltr *rule;
4849 : :
4850 [ # # # # : 0 : LIST_FOR_EACH_ENTRY(rule, &hw->fdir_list_head, ice_fdir_fltr,
# # ]
4851 : : fltr_node) {
4852 : : /* rule ID found in the list */
4853 [ # # ]: 0 : if (fltr_idx == rule->fltr_id)
4854 : 0 : return rule;
4855 [ # # ]: 0 : if (fltr_idx < rule->fltr_id)
4856 : : break;
4857 : : }
4858 : : return NULL;
4859 : : }
4860 : :
4861 : : /**
4862 : : * ice_fdir_list_add_fltr - add a new node to the flow director filter list
4863 : : * @hw: hardware structure
4864 : : * @fltr: filter node to add to structure
4865 : : */
4866 : 0 : void ice_fdir_list_add_fltr(struct ice_hw *hw, struct ice_fdir_fltr *fltr)
4867 : : {
4868 : : struct ice_fdir_fltr *rule, *parent = NULL;
4869 : :
4870 [ # # # # : 0 : LIST_FOR_EACH_ENTRY(rule, &hw->fdir_list_head, ice_fdir_fltr,
# # ]
4871 : : fltr_node) {
4872 : : /* rule ID found or pass its spot in the list */
4873 [ # # ]: 0 : if (rule->fltr_id >= fltr->fltr_id)
4874 : : break;
4875 : : parent = rule;
4876 : : }
4877 : :
4878 [ # # ]: 0 : if (parent)
4879 [ # # ]: 0 : LIST_ADD_AFTER(&fltr->fltr_node, &parent->fltr_node);
4880 : : else
4881 [ # # ]: 0 : LIST_ADD(&fltr->fltr_node, &hw->fdir_list_head);
4882 : 0 : }
4883 : :
4884 : : /**
4885 : : * ice_fdir_update_cntrs - increment / decrement filter counter
4886 : : * @hw: pointer to hardware structure
4887 : : * @flow: filter flow type
4888 : : * @acl_fltr: true indicates an ACL filter
4889 : : * @add: true implies filters added
4890 : : */
4891 : : void
4892 : 0 : ice_fdir_update_cntrs(struct ice_hw *hw, enum ice_fltr_ptype flow,
4893 : : bool acl_fltr, bool add)
4894 : : {
4895 : : int incr;
4896 : :
4897 [ # # ]: 0 : incr = add ? 1 : -1;
4898 : 0 : hw->fdir_active_fltr += incr;
4899 [ # # ]: 0 : if (flow == ICE_FLTR_PTYPE_NONF_NONE || flow >= ICE_FLTR_PTYPE_MAX) {
4900 [ # # ]: 0 : ice_debug(hw, ICE_DBG_SW, "Unknown filter type %d\n", flow);
4901 : : } else {
4902 [ # # ]: 0 : if (acl_fltr)
4903 : 0 : hw->acl_fltr_cnt[flow] += incr;
4904 : : else
4905 : 0 : hw->fdir_fltr_cnt[flow] += incr;
4906 : : }
4907 : 0 : }
4908 : :
4909 : : /**
4910 : : * ice_fdir_comp_rules_basic - compare 2 filters
4911 : : * @a: a Flow Director filter data structure
4912 : : * @b: a Flow Director filter data structure
4913 : : *
4914 : : * Returns true if the filters match
4915 : : */
4916 : : bool
4917 : 0 : ice_fdir_comp_rules_basic(struct ice_fdir_fltr *a, struct ice_fdir_fltr *b)
4918 : : {
4919 [ # # ]: 0 : if (a->flow_type != b->flow_type)
4920 : : return false;
4921 [ # # ]: 0 : if (memcmp(&a->ip, &b->ip, sizeof(a->ip)))
4922 : : return false;
4923 [ # # ]: 0 : if (memcmp(&a->mask, &b->mask, sizeof(a->mask)))
4924 : 0 : return false;
4925 : :
4926 : : return true;
4927 : : }
4928 : :
4929 : : /**
4930 : : * ice_fdir_comp_rules_extended - compare 2 filters
4931 : : * @a: a Flow Director filter data structure
4932 : : * @b: a Flow Director filter data structure
4933 : : *
4934 : : * Returns true if the filters match
4935 : : */
4936 : : bool
4937 : 0 : ice_fdir_comp_rules_extended(struct ice_fdir_fltr *a, struct ice_fdir_fltr *b)
4938 : : {
4939 [ # # ]: 0 : if (!ice_fdir_comp_rules_basic(a, b))
4940 : : return false;
4941 : :
4942 [ # # ]: 0 : if (memcmp(&a->gtpu_data, &b->gtpu_data, sizeof(a->gtpu_data)))
4943 : : return false;
4944 [ # # ]: 0 : if (memcmp(&a->gtpu_mask, &b->gtpu_mask, sizeof(a->gtpu_mask)))
4945 : : return false;
4946 [ # # ]: 0 : if (memcmp(&a->l2tpv3_data, &b->l2tpv3_data, sizeof(a->l2tpv3_data)))
4947 : : return false;
4948 [ # # ]: 0 : if (memcmp(&a->l2tpv3_mask, &b->l2tpv3_mask, sizeof(a->l2tpv3_mask)))
4949 : : return false;
4950 [ # # ]: 0 : if (memcmp(&a->ext_data, &b->ext_data, sizeof(a->ext_data)))
4951 : : return false;
4952 [ # # ]: 0 : if (memcmp(&a->ext_mask, &b->ext_mask, sizeof(a->ext_mask)))
4953 : : return false;
4954 [ # # ]: 0 : if (memcmp(&a->ecpri_data, &b->ecpri_data, sizeof(a->ecpri_data)))
4955 : : return false;
4956 [ # # ]: 0 : if (memcmp(&a->ecpri_mask, &b->ecpri_mask, sizeof(a->ecpri_mask)))
4957 : : return false;
4958 [ # # ]: 0 : if (memcmp(&a->l2tpv2_data.session_id, &b->l2tpv2_data.session_id,
4959 : : sizeof(a->l2tpv2_data.session_id)))
4960 : : return false;
4961 [ # # ]: 0 : if (memcmp(&a->l2tpv2_mask.session_id, &b->l2tpv2_mask.session_id,
4962 : : sizeof(a->l2tpv2_mask.session_id)))
4963 : 0 : return false;
4964 : :
4965 : : return true;
4966 : : }
4967 : :
4968 : : /**
4969 : : * ice_fdir_is_dup_fltr - test if filter is already in list for PF
4970 : : * @hw: hardware data structure
4971 : : * @input: Flow Director filter data structure
4972 : : *
4973 : : * Returns true if the filter is found in the list
4974 : : */
4975 : 0 : bool ice_fdir_is_dup_fltr(struct ice_hw *hw, struct ice_fdir_fltr *input)
4976 : : {
4977 : : struct ice_fdir_fltr *rule;
4978 : : bool ret = false;
4979 : :
4980 [ # # # # : 0 : LIST_FOR_EACH_ENTRY(rule, &hw->fdir_list_head, ice_fdir_fltr,
# # ]
4981 : : fltr_node) {
4982 : 0 : ret = ice_fdir_comp_rules_basic(rule, input);
4983 : :
4984 [ # # ]: 0 : if (ret) {
4985 [ # # ]: 0 : if (rule->fltr_id == input->fltr_id &&
4986 [ # # ]: 0 : rule->q_index != input->q_index)
4987 : : ret = false;
4988 : : else
4989 : : break;
4990 : : }
4991 : : }
4992 : :
4993 : 0 : return ret;
4994 : : }
4995 : :
4996 : : /**
4997 : : * ice_clear_pf_fd_table - admin command to clear FD table for PF
4998 : : * @hw: hardware data structure
4999 : : *
5000 : : * Clears FD table entries for a PF by issuing admin command (direct, 0x0B06)
5001 : : */
5002 : 0 : int ice_clear_pf_fd_table(struct ice_hw *hw)
5003 : : {
5004 : : struct ice_aqc_clear_fd_table *cmd;
5005 : : struct ice_aq_desc desc;
5006 : :
5007 : : cmd = &desc.params.clear_fd_table;
5008 : 0 : ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_clear_fd_table);
5009 : 0 : cmd->clear_type = CL_FD_VM_VF_TYPE_PF_IDX;
5010 : : /* vsi_index must be 0 to clear FD table for a PF */
5011 : 0 : cmd->vsi_index = CPU_TO_LE16(0);
5012 : :
5013 : 0 : return ice_aq_send_cmd(hw, &desc, NULL, 0, NULL);
5014 : : }
|