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