1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright (c) 2024, Intel Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * 3. Neither the name of the Intel Corporation nor the names of its
16 * contributors may be used to endorse or promote products derived from
17 * this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31
32 #ifndef _ICE_LAN_TX_RX_H_
33 #define _ICE_LAN_TX_RX_H_
34 #include "ice_osdep.h"
35
36 /* Rx Descriptors */
37 union ice_16byte_rx_desc {
38 struct {
39 __le64 pkt_addr; /* Packet buffer address */
40 __le64 hdr_addr; /* Header buffer address */
41 } read;
42 struct {
43 struct {
44 struct {
45 __le16 mirroring_status;
46 __le16 l2tag1;
47 } lo_dword;
48 union {
49 __le32 rss; /* RSS Hash */
50 __le32 fd_id; /* Flow Director filter ID */
51 } hi_dword;
52 } qword0;
53 struct {
54 /* ext status/error/PTYPE/length */
55 __le64 status_error_len;
56 } qword1;
57 } wb; /* writeback */
58 };
59
60 union ice_32byte_rx_desc {
61 struct {
62 __le64 pkt_addr; /* Packet buffer address */
63 __le64 hdr_addr; /* Header buffer address */
64 /* bit 0 of hdr_addr is DD bit */
65 __le64 rsvd1;
66 __le64 rsvd2;
67 } read;
68 struct {
69 struct {
70 struct {
71 __le16 mirroring_status;
72 __le16 l2tag1;
73 } lo_dword;
74 union {
75 __le32 rss; /* RSS Hash */
76 __le32 fd_id; /* Flow Director filter ID */
77 } hi_dword;
78 } qword0;
79 struct {
80 /* status/error/PTYPE/length */
81 __le64 status_error_len;
82 } qword1;
83 struct {
84 __le16 ext_status; /* extended status */
85 __le16 rsvd;
86 __le16 l2tag2_1;
87 __le16 l2tag2_2;
88 } qword2;
89 struct {
90 __le32 reserved;
91 __le32 fd_id;
92 } qword3;
93 } wb; /* writeback */
94 };
95
96 struct ice_fltr_desc {
97 __le64 qidx_compq_space_stat;
98 __le64 dtype_cmd_vsi_fdid;
99 };
100
101 #define ICE_FXD_FLTR_QW0_QINDEX_S 0
102 #define ICE_FXD_FLTR_QW0_QINDEX_M (0x7FFULL << ICE_FXD_FLTR_QW0_QINDEX_S)
103 #define ICE_FXD_FLTR_QW0_COMP_Q_S 11
104 #define ICE_FXD_FLTR_QW0_COMP_Q_M BIT_ULL(ICE_FXD_FLTR_QW0_COMP_Q_S)
105 #define ICE_FXD_FLTR_QW0_COMP_Q_ZERO 0x0ULL
106 #define ICE_FXD_FLTR_QW0_COMP_Q_QINDX 0x1ULL
107
108 #define ICE_FXD_FLTR_QW0_COMP_REPORT_S 12
109 #define ICE_FXD_FLTR_QW0_COMP_REPORT_M \
110 (0x3ULL << ICE_FXD_FLTR_QW0_COMP_REPORT_S)
111 #define ICE_FXD_FLTR_QW0_COMP_REPORT_NONE 0x0ULL
112 #define ICE_FXD_FLTR_QW0_COMP_REPORT_SW_FAIL 0x1ULL
113 #define ICE_FXD_FLTR_QW0_COMP_REPORT_SW 0x2ULL
114
115 #define ICE_FXD_FLTR_QW0_FD_SPACE_S 14
116 #define ICE_FXD_FLTR_QW0_FD_SPACE_M (0x3ULL << ICE_FXD_FLTR_QW0_FD_SPACE_S)
117 #define ICE_FXD_FLTR_QW0_FD_SPACE_GUAR 0x0ULL
118 #define ICE_FXD_FLTR_QW0_FD_SPACE_BEST_EFFORT 0x1ULL
119 #define ICE_FXD_FLTR_QW0_FD_SPACE_GUAR_BEST 0x2ULL
120 #define ICE_FXD_FLTR_QW0_FD_SPACE_BEST_GUAR 0x3ULL
121
122 #define ICE_FXD_FLTR_QW0_STAT_CNT_S 16
123 #define ICE_FXD_FLTR_QW0_STAT_CNT_M \
124 (0x1FFFULL << ICE_FXD_FLTR_QW0_STAT_CNT_S)
125 #define ICE_FXD_FLTR_QW0_STAT_ENA_S 29
126 #define ICE_FXD_FLTR_QW0_STAT_ENA_M (0x3ULL << ICE_FXD_FLTR_QW0_STAT_ENA_S)
127 #define ICE_FXD_FLTR_QW0_STAT_ENA_NONE 0x0ULL
128 #define ICE_FXD_FLTR_QW0_STAT_ENA_PKTS 0x1ULL
129 #define ICE_FXD_FLTR_QW0_STAT_ENA_BYTES 0x2ULL
130 #define ICE_FXD_FLTR_QW0_STAT_ENA_PKTS_BYTES 0x3ULL
131
132 #define ICE_FXD_FLTR_QW0_EVICT_ENA_S 31
133 #define ICE_FXD_FLTR_QW0_EVICT_ENA_M BIT_ULL(ICE_FXD_FLTR_QW0_EVICT_ENA_S)
134 #define ICE_FXD_FLTR_QW0_EVICT_ENA_FALSE 0x0ULL
135 #define ICE_FXD_FLTR_QW0_EVICT_ENA_TRUE 0x1ULL
136
137 #define ICE_FXD_FLTR_QW0_TO_Q_S 32
138 #define ICE_FXD_FLTR_QW0_TO_Q_M (0x7ULL << ICE_FXD_FLTR_QW0_TO_Q_S)
139 #define ICE_FXD_FLTR_QW0_TO_Q_EQUALS_QINDEX 0x0ULL
140
141 #define ICE_FXD_FLTR_QW0_TO_Q_PRI_S 35
142 #define ICE_FXD_FLTR_QW0_TO_Q_PRI_M (0x7ULL << ICE_FXD_FLTR_QW0_TO_Q_PRI_S)
143 #define ICE_FXD_FLTR_QW0_TO_Q_PRIO1 0x1ULL
144
145 #define ICE_FXD_FLTR_QW0_DPU_RECIPE_S 38
146 #define ICE_FXD_FLTR_QW0_DPU_RECIPE_M \
147 (0x3ULL << ICE_FXD_FLTR_QW0_DPU_RECIPE_S)
148 #define ICE_FXD_FLTR_QW0_DPU_RECIPE_DFLT 0x0ULL
149
150 #define ICE_FXD_FLTR_QW0_DROP_S 40
151 #define ICE_FXD_FLTR_QW0_DROP_M BIT_ULL(ICE_FXD_FLTR_QW0_DROP_S)
152 #define ICE_FXD_FLTR_QW0_DROP_NO 0x0ULL
153 #define ICE_FXD_FLTR_QW0_DROP_YES 0x1ULL
154
155 #define ICE_FXD_FLTR_QW0_FLEX_PRI_S 41
156 #define ICE_FXD_FLTR_QW0_FLEX_PRI_M (0x7ULL << ICE_FXD_FLTR_QW0_FLEX_PRI_S)
157 #define ICE_FXD_FLTR_QW0_FLEX_PRI_NONE 0x0ULL
158
159 #define ICE_FXD_FLTR_QW0_FLEX_MDID_S 44
160 #define ICE_FXD_FLTR_QW0_FLEX_MDID_M (0xFULL << ICE_FXD_FLTR_QW0_FLEX_MDID_S)
161 #define ICE_FXD_FLTR_QW0_FLEX_MDID0 0x0ULL
162
163 #define ICE_FXD_FLTR_QW0_FLEX_VAL_S 48
164 #define ICE_FXD_FLTR_QW0_FLEX_VAL_M \
165 (0xFFFFULL << ICE_FXD_FLTR_QW0_FLEX_VAL_S)
166 #define ICE_FXD_FLTR_QW0_FLEX_VAL0 0x0ULL
167
168 #define ICE_FXD_FLTR_QW1_DTYPE_S 0
169 #define ICE_FXD_FLTR_QW1_DTYPE_M (0xFULL << ICE_FXD_FLTR_QW1_DTYPE_S)
170 #define ICE_FXD_FLTR_QW1_PCMD_S 4
171 #define ICE_FXD_FLTR_QW1_PCMD_M BIT_ULL(ICE_FXD_FLTR_QW1_PCMD_S)
172 #define ICE_FXD_FLTR_QW1_PCMD_ADD 0x0ULL
173 #define ICE_FXD_FLTR_QW1_PCMD_REMOVE 0x1ULL
174
175 #define ICE_FXD_FLTR_QW1_PROF_PRI_S 5
176 #define ICE_FXD_FLTR_QW1_PROF_PRI_M (0x7ULL << ICE_FXD_FLTR_QW1_PROF_PRI_S)
177 #define ICE_FXD_FLTR_QW1_PROF_PRIO_ZERO 0x0ULL
178
179 #define ICE_FXD_FLTR_QW1_PROF_S 8
180 #define ICE_FXD_FLTR_QW1_PROF_M (0x3FULL << ICE_FXD_FLTR_QW1_PROF_S)
181 #define ICE_FXD_FLTR_QW1_PROF_ZERO 0x0ULL
182
183 #define ICE_FXD_FLTR_QW1_FD_VSI_S 14
184 #define ICE_FXD_FLTR_QW1_FD_VSI_M (0x3FFULL << ICE_FXD_FLTR_QW1_FD_VSI_S)
185 #define ICE_FXD_FLTR_QW1_SWAP_S 24
186 #define ICE_FXD_FLTR_QW1_SWAP_M BIT_ULL(ICE_FXD_FLTR_QW1_SWAP_S)
187 #define ICE_FXD_FLTR_QW1_SWAP_NOT_SET 0x0ULL
188 #define ICE_FXD_FLTR_QW1_SWAP_SET 0x1ULL
189
190 #define ICE_FXD_FLTR_QW1_FDID_PRI_S 25
191 #define ICE_FXD_FLTR_QW1_FDID_PRI_M (0x7ULL << ICE_FXD_FLTR_QW1_FDID_PRI_S)
192 #define ICE_FXD_FLTR_QW1_FDID_PRI_ONE 0x1ULL
193 #define ICE_FXD_FLTR_QW1_FDID_PRI_THREE 0x3ULL
194
195 #define ICE_FXD_FLTR_QW1_FDID_MDID_S 28
196 #define ICE_FXD_FLTR_QW1_FDID_MDID_M (0xFULL << ICE_FXD_FLTR_QW1_FDID_MDID_S)
197 #define ICE_FXD_FLTR_QW1_FDID_MDID_FD 0x05ULL
198
199 #define ICE_FXD_FLTR_QW1_FDID_S 32
200 #define ICE_FXD_FLTR_QW1_FDID_M \
201 (0xFFFFFFFFULL << ICE_FXD_FLTR_QW1_FDID_S)
202 #define ICE_FXD_FLTR_QW1_FDID_ZERO 0x0ULL
203
204 enum ice_rx_desc_status_bits {
205 /* Note: These are predefined bit offsets */
206 ICE_RX_DESC_STATUS_DD_S = 0,
207 ICE_RX_DESC_STATUS_EOF_S = 1,
208 ICE_RX_DESC_STATUS_L2TAG1P_S = 2,
209 ICE_RX_DESC_STATUS_L3L4P_S = 3,
210 ICE_RX_DESC_STATUS_CRCP_S = 4,
211 ICE_RX_DESC_STATUS_TSYNINDX_S = 5,
212 ICE_RX_DESC_STATUS_TSYNVALID_S = 7,
213 ICE_RX_DESC_STATUS_EXT_UDP_0_S = 8,
214 ICE_RX_DESC_STATUS_UMBCAST_S = 9,
215 ICE_RX_DESC_STATUS_FLM_S = 11,
216 ICE_RX_DESC_STATUS_FLTSTAT_S = 12,
217 ICE_RX_DESC_STATUS_LPBK_S = 14,
218 ICE_RX_DESC_STATUS_IPV6EXADD_S = 15,
219 ICE_RX_DESC_STATUS_RESERVED2_S = 16,
220 ICE_RX_DESC_STATUS_INT_UDP_0_S = 18,
221 ICE_RX_DESC_STATUS_LAST /* this entry must be last!!! */
222 };
223
224 #define ICE_RXD_QW1_STATUS_S 0
225 #define ICE_RXD_QW1_STATUS_M ((BIT(ICE_RX_DESC_STATUS_LAST) - 1) << \
226 ICE_RXD_QW1_STATUS_S)
227
228 #define ICE_RXD_QW1_STATUS_TSYNINDX_S ICE_RX_DESC_STATUS_TSYNINDX_S
229 #define ICE_RXD_QW1_STATUS_TSYNINDX_M (0x3UL << ICE_RXD_QW1_STATUS_TSYNINDX_S)
230
231 #define ICE_RXD_QW1_STATUS_TSYNVALID_S ICE_RX_DESC_STATUS_TSYNVALID_S
232 #define ICE_RXD_QW1_STATUS_TSYNVALID_M BIT_ULL(ICE_RXD_QW1_STATUS_TSYNVALID_S)
233
234 enum ice_rx_desc_fltstat_values {
235 ICE_RX_DESC_FLTSTAT_NO_DATA = 0,
236 ICE_RX_DESC_FLTSTAT_RSV_FD_ID = 1, /* 16byte desc? FD_ID : RSV */
237 ICE_RX_DESC_FLTSTAT_RSV = 2,
238 ICE_RX_DESC_FLTSTAT_RSS_HASH = 3,
239 };
240
241 #define ICE_RXD_QW1_ERROR_S 19
242 #define ICE_RXD_QW1_ERROR_M (0xFFUL << ICE_RXD_QW1_ERROR_S)
243
244 enum ice_rx_desc_error_bits {
245 /* Note: These are predefined bit offsets */
246 ICE_RX_DESC_ERROR_RXE_S = 0,
247 ICE_RX_DESC_ERROR_RECIPE_S = 1,
248 ICE_RX_DESC_ERROR_HBO_S = 2,
249 ICE_RX_DESC_ERROR_L3L4E_S = 3, /* 3 BITS */
250 ICE_RX_DESC_ERROR_IPE_S = 3,
251 ICE_RX_DESC_ERROR_L4E_S = 4,
252 ICE_RX_DESC_ERROR_EIPE_S = 5,
253 ICE_RX_DESC_ERROR_OVERSIZE_S = 6,
254 ICE_RX_DESC_ERROR_PPRS_S = 7
255 };
256
257 enum ice_rx_desc_error_l3l4e_masks {
258 ICE_RX_DESC_ERROR_L3L4E_NONE = 0,
259 ICE_RX_DESC_ERROR_L3L4E_PROT = 1,
260 };
261
262 #define ICE_RXD_QW1_PTYPE_S 30
263 #define ICE_RXD_QW1_PTYPE_M (0xFFULL << ICE_RXD_QW1_PTYPE_S)
264
265 /* Packet type non-ip values */
266 enum ice_rx_l2_ptype {
267 ICE_RX_PTYPE_L2_RESERVED = 0,
268 ICE_RX_PTYPE_L2_MAC_PAY2 = 1,
269 ICE_RX_PTYPE_L2_FIP_PAY2 = 3,
270 ICE_RX_PTYPE_L2_OUI_PAY2 = 4,
271 ICE_RX_PTYPE_L2_MACCNTRL_PAY2 = 5,
272 ICE_RX_PTYPE_L2_LLDP_PAY2 = 6,
273 ICE_RX_PTYPE_L2_ECP_PAY2 = 7,
274 ICE_RX_PTYPE_L2_EVB_PAY2 = 8,
275 ICE_RX_PTYPE_L2_QCN_PAY2 = 9,
276 ICE_RX_PTYPE_L2_EAPOL_PAY2 = 10,
277 ICE_RX_PTYPE_L2_ARP = 11,
278 };
279
280 struct ice_rx_ptype_decoded {
281 u32 known:1;
282 u32 outer_ip:1;
283 u32 outer_ip_ver:2;
284 u32 outer_frag:1;
285 u32 tunnel_type:3;
286 u32 tunnel_end_prot:2;
287 u32 tunnel_end_frag:1;
288 u32 inner_prot:4;
289 u32 payload_layer:3;
290 };
291
292 enum ice_rx_ptype_outer_ip {
293 ICE_RX_PTYPE_OUTER_L2 = 0,
294 ICE_RX_PTYPE_OUTER_IP = 1,
295 };
296
297 enum ice_rx_ptype_outer_ip_ver {
298 ICE_RX_PTYPE_OUTER_NONE = 0,
299 ICE_RX_PTYPE_OUTER_IPV4 = 1,
300 ICE_RX_PTYPE_OUTER_IPV6 = 2,
301 };
302
303 enum ice_rx_ptype_outer_fragmented {
304 ICE_RX_PTYPE_NOT_FRAG = 0,
305 ICE_RX_PTYPE_FRAG = 1,
306 };
307
308 enum ice_rx_ptype_tunnel_type {
309 ICE_RX_PTYPE_TUNNEL_NONE = 0,
310 ICE_RX_PTYPE_TUNNEL_IP_IP = 1,
311 ICE_RX_PTYPE_TUNNEL_IP_GRENAT = 2,
312 ICE_RX_PTYPE_TUNNEL_IP_GRENAT_MAC = 3,
313 ICE_RX_PTYPE_TUNNEL_IP_GRENAT_MAC_VLAN = 4,
314 };
315
316 enum ice_rx_ptype_tunnel_end_prot {
317 ICE_RX_PTYPE_TUNNEL_END_NONE = 0,
318 ICE_RX_PTYPE_TUNNEL_END_IPV4 = 1,
319 ICE_RX_PTYPE_TUNNEL_END_IPV6 = 2,
320 };
321
322 enum ice_rx_ptype_inner_prot {
323 ICE_RX_PTYPE_INNER_PROT_NONE = 0,
324 ICE_RX_PTYPE_INNER_PROT_UDP = 1,
325 ICE_RX_PTYPE_INNER_PROT_TCP = 2,
326 ICE_RX_PTYPE_INNER_PROT_SCTP = 3,
327 ICE_RX_PTYPE_INNER_PROT_ICMP = 4,
328 };
329
330 enum ice_rx_ptype_payload_layer {
331 ICE_RX_PTYPE_PAYLOAD_LAYER_NONE = 0,
332 ICE_RX_PTYPE_PAYLOAD_LAYER_PAY2 = 1,
333 ICE_RX_PTYPE_PAYLOAD_LAYER_PAY3 = 2,
334 ICE_RX_PTYPE_PAYLOAD_LAYER_PAY4 = 3,
335 };
336
337 #define ICE_RXD_QW1_LEN_PBUF_S 38
338 #define ICE_RXD_QW1_LEN_PBUF_M (0x3FFFULL << ICE_RXD_QW1_LEN_PBUF_S)
339
340 #define ICE_RXD_QW1_LEN_HBUF_S 52
341 #define ICE_RXD_QW1_LEN_HBUF_M (0x7FFULL << ICE_RXD_QW1_LEN_HBUF_S)
342
343 #define ICE_RXD_QW1_LEN_SPH_S 63
344 #define ICE_RXD_QW1_LEN_SPH_M BIT_ULL(ICE_RXD_QW1_LEN_SPH_S)
345
346 enum ice_rx_desc_ext_status_bits {
347 /* Note: These are predefined bit offsets */
348 ICE_RX_DESC_EXT_STATUS_L2TAG2P_S = 0,
349 ICE_RX_DESC_EXT_STATUS_L2TAG3P_S = 1,
350 ICE_RX_DESC_EXT_STATUS_FLEXBL_S = 2,
351 ICE_RX_DESC_EXT_STATUS_FLEXBH_S = 4,
352 ICE_RX_DESC_EXT_STATUS_FDLONGB_S = 9,
353 ICE_RX_DESC_EXT_STATUS_PELONGB_S = 11,
354 };
355
356 enum ice_rx_desc_pe_status_bits {
357 /* Note: These are predefined bit offsets */
358 ICE_RX_DESC_PE_STATUS_QPID_S = 0, /* 18 BITS */
359 ICE_RX_DESC_PE_STATUS_L4PORT_S = 0, /* 16 BITS */
360 ICE_RX_DESC_PE_STATUS_IPINDEX_S = 16, /* 8 BITS */
361 ICE_RX_DESC_PE_STATUS_QPIDHIT_S = 24,
362 ICE_RX_DESC_PE_STATUS_APBVTHIT_S = 25,
363 ICE_RX_DESC_PE_STATUS_PORTV_S = 26,
364 ICE_RX_DESC_PE_STATUS_URG_S = 27,
365 ICE_RX_DESC_PE_STATUS_IPFRAG_S = 28,
366 ICE_RX_DESC_PE_STATUS_IPOPT_S = 29
367 };
368
369 #define ICE_RX_PROG_STATUS_DESC_LEN_S 38
370 #define ICE_RX_PROG_STATUS_DESC_LEN 0x2000000
371
372 #define ICE_RX_PROG_STATUS_DESC_QW1_PROGID_S 2
373 #define ICE_RX_PROG_STATUS_DESC_QW1_PROGID_M \
374 (0x7UL << ICE_RX_PROG_STATUS_DESC_QW1_PROGID_S)
375
376 #define ICE_RX_PROG_STATUS_DESC_QW1_ERROR_S 19
377 #define ICE_RX_PROG_STATUS_DESC_QW1_ERROR_M \
378 (0x3FUL << ICE_RX_PROG_STATUS_DESC_QW1_ERROR_S)
379
380 enum ice_rx_prog_status_desc_status_bits {
381 /* Note: These are predefined bit offsets */
382 ICE_RX_PROG_STATUS_DESC_DD_S = 0,
383 ICE_RX_PROG_STATUS_DESC_PROG_ID_S = 2 /* 3 BITS */
384 };
385
386 enum ice_rx_prog_status_desc_prog_id_masks {
387 ICE_RX_PROG_STATUS_DESC_FD_FLTR_STATUS = 1,
388 };
389
390 enum ice_rx_prog_status_desc_error_bits {
391 /* Note: These are predefined bit offsets */
392 ICE_RX_PROG_STATUS_DESC_FD_TBL_FULL_S = 0,
393 ICE_RX_PROG_STATUS_DESC_NO_FD_ENTRY_S = 1,
394 };
395
396 /* Rx Flex Descriptors
397 * These descriptors are used instead of the legacy version descriptors when
398 * ice_rlan_ctx.adv_desc is set
399 */
400
401 union ice_32b_rx_flex_desc {
402 struct {
403 __le64 pkt_addr; /* Packet buffer address */
404 __le64 hdr_addr; /* Header buffer address */
405 /* bit 0 of hdr_addr is DD bit */
406 __le64 rsvd1;
407 __le64 rsvd2;
408 } read;
409 struct {
410 /* Qword 0 */
411 u8 rxdid; /* descriptor builder profile ID */
412 u8 mir_id_umb_cast; /* mirror=[5:0], umb=[7:6] */
413 __le16 ptype_flex_flags0; /* ptype=[9:0], ff0=[15:10] */
414 __le16 pkt_len; /* [15:14] are reserved */
415 __le16 hdr_len_sph_flex_flags1; /* header=[10:0] */
416 /* sph=[11:11] */
417 /* ff1/ext=[15:12] */
418
419 /* Qword 1 */
420 __le16 status_error0;
421 __le16 l2tag1;
422 __le16 flex_meta0;
423 __le16 flex_meta1;
424
425 /* Qword 2 */
426 __le16 status_error1;
427 u8 flex_flags2;
428 u8 time_stamp_low;
429 __le16 l2tag2_1st;
430 __le16 l2tag2_2nd;
431
432 /* Qword 3 */
433 __le16 flex_meta2;
434 __le16 flex_meta3;
435 union {
436 struct {
437 __le16 flex_meta4;
438 __le16 flex_meta5;
439 } flex;
440 __le32 ts_high;
441 } flex_ts;
442 } wb; /* writeback */
443 };
444
445 /* Rx Flex Descriptor NIC Profile
446 * RxDID Profile ID 2
447 * Flex-field 0: RSS hash lower 16-bits
448 * Flex-field 1: RSS hash upper 16-bits
449 * Flex-field 2: Flow ID lower 16-bits
450 * Flex-field 3: Flow ID higher 16-bits
451 * Flex-field 4: reserved, VLAN ID taken from L2Tag
452 */
453 struct ice_32b_rx_flex_desc_nic {
454 /* Qword 0 */
455 u8 rxdid;
456 u8 mir_id_umb_cast;
457 __le16 ptype_flexi_flags0;
458 __le16 pkt_len;
459 __le16 hdr_len_sph_flex_flags1;
460
461 /* Qword 1 */
462 __le16 status_error0;
463 __le16 l2tag1;
464 __le32 rss_hash;
465
466 /* Qword 2 */
467 __le16 status_error1;
468 u8 flexi_flags2;
469 u8 ts_low;
470 __le16 l2tag2_1st;
471 __le16 l2tag2_2nd;
472
473 /* Qword 3 */
474 __le32 flow_id;
475 union {
476 struct {
477 __le16 rsvd;
478 __le16 flow_id_ipv6;
479 } flex;
480 __le32 ts_high;
481 } flex_ts;
482 };
483
484 /* Rx Flex Descriptor Switch Profile
485 * RxDID Profile ID 3
486 * Flex-field 0: Source VSI
487 */
488 struct ice_32b_rx_flex_desc_sw {
489 /* Qword 0 */
490 u8 rxdid;
491 u8 mir_id_umb_cast;
492 __le16 ptype_flexi_flags0;
493 __le16 pkt_len;
494 __le16 hdr_len_sph_flex_flags1;
495
496 /* Qword 1 */
497 __le16 status_error0;
498 __le16 l2tag1;
499 __le16 src_vsi; /* [10:15] are reserved */
500 __le16 flex_md1_rsvd;
501
502 /* Qword 2 */
503 __le16 status_error1;
504 u8 flex_flags2;
505 u8 ts_low;
506 __le16 l2tag2_1st;
507 __le16 l2tag2_2nd;
508
509 /* Qword 3 */
510 __le32 rsvd; /* flex words 2-3 are reserved */
511 __le32 ts_high;
512 };
513
514 /* Rx Flex Descriptor NIC VEB Profile
515 * RxDID Profile ID 4
516 * Flex-field 0: Destination VSI
517 */
518 struct ice_32b_rx_flex_desc_nic_veb_dbg {
519 /* Qword 0 */
520 u8 rxdid;
521 u8 mir_id_umb_cast;
522 __le16 ptype_flexi_flags0;
523 __le16 pkt_len;
524 __le16 hdr_len_sph_flex_flags1;
525
526 /* Qword 1 */
527 __le16 status_error0;
528 __le16 l2tag1;
529 __le16 dst_vsi; /* [0:12]: destination VSI */
530 /* 13: VSI valid bit */
531 /* [14:15] are reserved */
532 __le16 flex_field_1;
533
534 /* Qword 2 */
535 __le16 status_error1;
536 u8 flex_flags2;
537 u8 ts_low;
538 __le16 l2tag2_1st;
539 __le16 l2tag2_2nd;
540
541 /* Qword 3 */
542 __le32 rsvd; /* flex words 2-3 are reserved */
543 __le32 ts_high;
544 };
545
546 /* Rx Flex Descriptor NIC ACL Profile
547 * RxDID Profile ID 5
548 * Flex-field 0: ACL Counter 0
549 * Flex-field 1: ACL Counter 1
550 * Flex-field 2: ACL Counter 2
551 */
552 struct ice_32b_rx_flex_desc_nic_acl_dbg {
553 /* Qword 0 */
554 u8 rxdid;
555 u8 mir_id_umb_cast;
556 __le16 ptype_flexi_flags0;
557 __le16 pkt_len;
558 __le16 hdr_len_sph_flex_flags1;
559
560 /* Qword 1 */
561 __le16 status_error0;
562 __le16 l2tag1;
563 __le16 acl_ctr0;
564 __le16 acl_ctr1;
565
566 /* Qword 2 */
567 __le16 status_error1;
568 u8 flex_flags2;
569 u8 ts_low;
570 __le16 l2tag2_1st;
571 __le16 l2tag2_2nd;
572
573 /* Qword 3 */
574 __le16 acl_ctr2;
575 __le16 rsvd; /* flex words 2-3 are reserved */
576 __le32 ts_high;
577 };
578
579 /* Rx Flex Descriptor NIC Profile
580 * RxDID Profile ID 6
581 * Flex-field 0: RSS hash lower 16-bits
582 * Flex-field 1: RSS hash upper 16-bits
583 * Flex-field 2: Flow ID lower 16-bits
584 * Flex-field 3: Source VSI
585 * Flex-field 4: reserved, VLAN ID taken from L2Tag
586 */
587 struct ice_32b_rx_flex_desc_nic_2 {
588 /* Qword 0 */
589 u8 rxdid;
590 u8 mir_id_umb_cast;
591 __le16 ptype_flexi_flags0;
592 __le16 pkt_len;
593 __le16 hdr_len_sph_flex_flags1;
594
595 /* Qword 1 */
596 __le16 status_error0;
597 __le16 l2tag1;
598 __le32 rss_hash;
599
600 /* Qword 2 */
601 __le16 status_error1;
602 u8 flexi_flags2;
603 u8 ts_low;
604 __le16 l2tag2_1st;
605 __le16 l2tag2_2nd;
606
607 /* Qword 3 */
608 __le16 flow_id;
609 __le16 src_vsi;
610 union {
611 struct {
612 __le16 rsvd;
613 __le16 flow_id_ipv6;
614 } flex;
615 __le32 ts_high;
616 } flex_ts;
617 };
618
619 /* Receive Flex Descriptor profile IDs: There are a total
620 * of 64 profiles where profile IDs 0/1 are for legacy; and
621 * profiles 2-63 are flex profiles that can be programmed
622 * with a specific metadata (profile 7 reserved for HW)
623 */
624 enum ice_rxdid {
625 ICE_RXDID_LEGACY_0 = 0,
626 ICE_RXDID_LEGACY_1 = 1,
627 ICE_RXDID_FLEX_NIC = 2,
628 ICE_RXDID_FLEX_NIC_2 = 6,
629 ICE_RXDID_HW = 7,
630 ICE_RXDID_LAST = 63,
631 };
632
633 /* Recceive Flex descriptor Dword Index */
634 enum ice_flex_word {
635 ICE_RX_FLEX_DWORD_0 = 0,
636 ICE_RX_FLEX_DWORD_1,
637 ICE_RX_FLEX_DWORD_2,
638 ICE_RX_FLEX_DWORD_3,
639 ICE_RX_FLEX_DWORD_4,
640 ICE_RX_FLEX_DWORD_5
641 };
642
643 /* Receive Flex Descriptor Rx opcode values */
644 enum ice_flex_opcode {
645 ICE_RX_OPC_DEBUG = 0,
646 ICE_RX_OPC_MDID,
647 ICE_RX_OPC_EXTRACT,
648 ICE_RX_OPC_PROTID
649 };
650
651 /* Receive Descriptor MDID values that access packet flags */
652 enum ice_flex_mdid_pkt_flags {
653 ICE_RX_MDID_PKT_FLAGS_15_0 = 20,
654 ICE_RX_MDID_PKT_FLAGS_31_16,
655 ICE_RX_MDID_PKT_FLAGS_47_32,
656 ICE_RX_MDID_PKT_FLAGS_63_48,
657 };
658
659 /* Generic descriptor MDID values */
660 enum ice_flex_mdid {
661 ICE_MDID_GENERIC_WORD_0,
662 ICE_MDID_GENERIC_WORD_1,
663 ICE_MDID_GENERIC_WORD_2,
664 ICE_MDID_GENERIC_WORD_3,
665 ICE_MDID_GENERIC_WORD_4,
666 ICE_MDID_FLOW_ID_LOWER,
667 ICE_MDID_FLOW_ID_HIGH,
668 ICE_MDID_RX_DESCR_PROF_IDX,
669 ICE_MDID_RX_PKT_DROP,
670 ICE_MDID_RX_DST_Q = 12,
671 ICE_MDID_RX_DST_VSI,
672 ICE_MDID_SRC_VSI = 19,
673 ICE_MDID_ACL_NOP = 55,
674 /* Entry 56 */
675 ICE_MDID_RX_HASH_LOW,
676 ICE_MDID_ACL_CNTR_PKT = ICE_MDID_RX_HASH_LOW,
677 /* Entry 57 */
678 ICE_MDID_RX_HASH_HIGH,
679 ICE_MDID_ACL_CNTR_BYTES = ICE_MDID_RX_HASH_HIGH,
680 ICE_MDID_ACL_CNTR_PKT_BYTES
681 };
682
683 /* for ice_32byte_rx_flex_desc.mir_id_umb_cast member */
684 #define ICE_RX_FLEX_DESC_MIRROR_M (0x3F) /* 6-bits */
685
686 /* Rx/Tx Flag64 packet flag bits */
687 enum ice_flg64_bits {
688 ICE_FLG_PKT_DSI = 0,
689 /* If there is a 1 in this bit position then that means Rx packet */
690 ICE_FLG_PKT_DIR = 4,
691 ICE_FLG_EVLAN_x8100 = 14,
692 ICE_FLG_EVLAN_x9100,
693 ICE_FLG_VLAN_x8100,
694 ICE_FLG_TNL_MAC = 22,
695 ICE_FLG_TNL_VLAN,
696 ICE_FLG_PKT_FRG,
697 ICE_FLG_FIN = 32,
698 ICE_FLG_SYN,
699 ICE_FLG_RST,
700 ICE_FLG_TNL0 = 38,
701 ICE_FLG_TNL1,
702 ICE_FLG_TNL2,
703 ICE_FLG_UDP_GRE,
704 ICE_FLG_RSVD = 63
705 };
706
707 enum ice_rx_flex_desc_umb_cast_bits { /* field is 2 bits long */
708 ICE_RX_FLEX_DESC_UMB_CAST_S = 6,
709 ICE_RX_FLEX_DESC_UMB_CAST_LAST /* this entry must be last!!! */
710 };
711
712 enum ice_umbcast_dest_addr_types {
713 ICE_DEST_UNICAST = 0,
714 ICE_DEST_MULTICAST,
715 ICE_DEST_BROADCAST,
716 ICE_DEST_MIRRORED,
717 };
718
719 /* for ice_32byte_rx_flex_desc.ptype_flexi_flags0 member */
720 #define ICE_RX_FLEX_DESC_PTYPE_M (0x3FF) /* 10-bits */
721
722 enum ice_rx_flex_desc_flexi_flags0_bits { /* field is 6 bits long */
723 ICE_RX_FLEX_DESC_FLEXI_FLAGS0_S = 10,
724 ICE_RX_FLEX_DESC_FLEXI_FLAGS0_LAST /* this entry must be last!!! */
725 };
726
727 /* for ice_32byte_rx_flex_desc.pkt_length member */
728 #define ICE_RX_FLX_DESC_PKT_LEN_M (0x3FFF) /* 14-bits */
729
730 /* for ice_32byte_rx_flex_desc.header_length_sph_flexi_flags1 member */
731 #define ICE_RX_FLEX_DESC_HEADER_LEN_M (0x7FF) /* 11-bits */
732
733 enum ice_rx_flex_desc_sph_bits { /* field is 1 bit long */
734 ICE_RX_FLEX_DESC_SPH_S = 11,
735 ICE_RX_FLEX_DESC_SPH_LAST /* this entry must be last!!! */
736 };
737
738 enum ice_rx_flex_desc_flexi_flags1_bits { /* field is 4 bits long */
739 ICE_RX_FLEX_DESC_FLEXI_FLAGS1_S = 12,
740 ICE_RX_FLEX_DESC_FLEXI_FLAGS1_LAST /* this entry must be last!!! */
741 };
742
743 enum ice_rx_flex_desc_ext_status_bits { /* field is 4 bits long */
744 ICE_RX_FLEX_DESC_EXT_STATUS_EXT_UDP_S = 12,
745 ICE_RX_FLEX_DESC_EXT_STATUS_INT_UDP_S = 13,
746 ICE_RX_FLEX_DESC_EXT_STATUS_RECIPE_S = 14,
747 ICE_RX_FLEX_DESC_EXT_STATUS_OVERSIZE_S = 15,
748 ICE_RX_FLEX_DESC_EXT_STATUS_LAST /* entry must be last!!! */
749 };
750
751 enum ice_rx_flex_desc_status_error_0_bits {
752 /* Note: These are predefined bit offsets */
753 ICE_RX_FLEX_DESC_STATUS0_DD_S = 0,
754 ICE_RX_FLEX_DESC_STATUS0_EOF_S,
755 ICE_RX_FLEX_DESC_STATUS0_HBO_S,
756 ICE_RX_FLEX_DESC_STATUS0_L3L4P_S,
757 ICE_RX_FLEX_DESC_STATUS0_XSUM_IPE_S,
758 ICE_RX_FLEX_DESC_STATUS0_XSUM_L4E_S,
759 ICE_RX_FLEX_DESC_STATUS0_XSUM_EIPE_S,
760 ICE_RX_FLEX_DESC_STATUS0_XSUM_EUDPE_S,
761 ICE_RX_FLEX_DESC_STATUS0_LPBK_S,
762 ICE_RX_FLEX_DESC_STATUS0_IPV6EXADD_S,
763 ICE_RX_FLEX_DESC_STATUS0_RXE_S,
764 ICE_RX_FLEX_DESC_STATUS0_CRCP_S,
765 ICE_RX_FLEX_DESC_STATUS0_RSS_VALID_S,
766 ICE_RX_FLEX_DESC_STATUS0_L2TAG1P_S,
767 ICE_RX_FLEX_DESC_STATUS0_XTRMD0_VALID_S,
768 ICE_RX_FLEX_DESC_STATUS0_XTRMD1_VALID_S,
769 ICE_RX_FLEX_DESC_STATUS0_LAST /* this entry must be last!!! */
770 };
771
772 enum ice_rx_flex_desc_status_error_1_bits {
773 /* Note: These are predefined bit offsets */
774 ICE_RX_FLEX_DESC_STATUS1_CPM_S = 0, /* 4 bits */
775 ICE_RX_FLEX_DESC_STATUS1_NAT_S = 4,
776 ICE_RX_FLEX_DESC_STATUS1_CRYPTO_S = 5,
777 /* [10:6] reserved */
778 ICE_RX_FLEX_DESC_STATUS1_L2TAG2P_S = 11,
779 ICE_RX_FLEX_DESC_STATUS1_XTRMD2_VALID_S = 12,
780 ICE_RX_FLEX_DESC_STATUS1_XTRMD3_VALID_S = 13,
781 ICE_RX_FLEX_DESC_STATUS1_XTRMD4_VALID_S = 14,
782 ICE_RX_FLEX_DESC_STATUS1_XTRMD5_VALID_S = 15,
783 ICE_RX_FLEX_DESC_STATUS1_LAST /* this entry must be last!!! */
784 };
785
786 enum ice_rx_flex_desc_exstat_bits {
787 /* Note: These are predefined bit offsets */
788 ICE_RX_FLEX_DESC_EXSTAT_EXTUDP_S = 0,
789 ICE_RX_FLEX_DESC_EXSTAT_INTUDP_S = 1,
790 ICE_RX_FLEX_DESC_EXSTAT_RECIPE_S = 2,
791 ICE_RX_FLEX_DESC_EXSTAT_OVERSIZE_S = 3,
792 };
793
794 /*
795 * For ice_32b_rx_flex_desc.ts_low:
796 * [0]: Timestamp-low validity bit
797 * [1:7]: Timestamp-low value
798 */
799 #define ICE_RX_FLEX_DESC_TS_L_VALID_S 0x01
800 #define ICE_RX_FLEX_DESC_TS_L_VALID_M ICE_RX_FLEX_DESC_TS_L_VALID_S
801 #define ICE_RX_FLEX_DESC_TS_L_M 0xFE
802
803 #define ICE_RXQ_CTX_SIZE_DWORDS 8
804 #define ICE_RXQ_CTX_SZ (ICE_RXQ_CTX_SIZE_DWORDS * sizeof(u32))
805 #define ICE_TXQ_CTX_SIZE_DWORDS 10
806 #define ICE_TXQ_CTX_SZ (ICE_TXQ_CTX_SIZE_DWORDS * sizeof(u32))
807 #define ICE_TX_CMPLTNQ_CTX_SIZE_DWORDS 22
808 #define ICE_TX_DRBELL_Q_CTX_SIZE_DWORDS 5
809 #define GLTCLAN_CQ_CNTX(i, CQ) (GLTCLAN_CQ_CNTX0(CQ) + ((i) * 0x0800))
810
811 /* RLAN Rx queue context data
812 *
813 * The sizes of the variables may be larger than needed due to crossing byte
814 * boundaries. If we do not have the width of the variable set to the correct
815 * size then we could end up shifting bits off the top of the variable when the
816 * variable is at the top of a byte and crosses over into the next byte.
817 */
818 struct ice_rlan_ctx {
819 u16 head;
820 u16 cpuid; /* bigger than needed, see above for reason */
821 #define ICE_RLAN_BASE_S 7
822 u64 base;
823 u16 qlen;
824 #define ICE_RLAN_CTX_DBUF_S 7
825 u16 dbuf; /* bigger than needed, see above for reason */
826 #define ICE_RLAN_CTX_HBUF_S 6
827 u16 hbuf; /* bigger than needed, see above for reason */
828 u8 dtype;
829 u8 dsize;
830 u8 crcstrip;
831 u8 l2tsel;
832 u8 hsplit_0;
833 u8 hsplit_1;
834 u8 showiv;
835 u32 rxmax; /* bigger than needed, see above for reason */
836 u8 tphrdesc_ena;
837 u8 tphwdesc_ena;
838 u8 tphdata_ena;
839 u8 tphhead_ena;
840 u16 lrxqthresh; /* bigger than needed, see above for reason */
841 u8 prefena; /* NOTE: normally must be set to 1 at init */
842 };
843
844 struct ice_ctx_ele {
845 u16 offset;
846 u16 size_of;
847 u16 width;
848 u16 lsb;
849 };
850
851 #define ICE_CTX_STORE(_struct, _ele, _width, _lsb) { \
852 .offset = offsetof(struct _struct, _ele), \
853 .size_of = FIELD_SIZEOF(struct _struct, _ele), \
854 .width = _width, \
855 .lsb = _lsb, \
856 }
857
858 /* for hsplit_0 field of Rx RLAN context */
859 enum ice_rlan_ctx_rx_hsplit_0 {
860 ICE_RLAN_RX_HSPLIT_0_NO_SPLIT = 0,
861 ICE_RLAN_RX_HSPLIT_0_SPLIT_L2 = 1,
862 ICE_RLAN_RX_HSPLIT_0_SPLIT_IP = 2,
863 ICE_RLAN_RX_HSPLIT_0_SPLIT_TCP_UDP = 4,
864 ICE_RLAN_RX_HSPLIT_0_SPLIT_SCTP = 8,
865 };
866
867 /* for hsplit_1 field of Rx RLAN context */
868 enum ice_rlan_ctx_rx_hsplit_1 {
869 ICE_RLAN_RX_HSPLIT_1_NO_SPLIT = 0,
870 ICE_RLAN_RX_HSPLIT_1_SPLIT_L2 = 1,
871 ICE_RLAN_RX_HSPLIT_1_SPLIT_ALWAYS = 2,
872 };
873
874 /* Tx Descriptor */
875 struct ice_tx_desc {
876 __le64 buf_addr; /* Address of descriptor's data buf */
877 __le64 cmd_type_offset_bsz;
878 };
879
880 #define ICE_TXD_QW1_DTYPE_S 0
881 #define ICE_TXD_QW1_DTYPE_M (0xFUL << ICE_TXD_QW1_DTYPE_S)
882
883 enum ice_tx_desc_dtype_value {
884 ICE_TX_DESC_DTYPE_DATA = 0x0,
885 ICE_TX_DESC_DTYPE_CTX = 0x1,
886 ICE_TX_DESC_DTYPE_IPSEC = 0x3,
887 ICE_TX_DESC_DTYPE_FLTR_PROG = 0x8,
888 ICE_TX_DESC_DTYPE_HLP_META = 0x9,
889 /* DESC_DONE - HW has completed write-back of descriptor */
890 ICE_TX_DESC_DTYPE_DESC_DONE = 0xF,
891 };
892
893 #define ICE_TXD_QW1_CMD_S 4
894 #define ICE_TXD_QW1_CMD_M (0xFFFUL << ICE_TXD_QW1_CMD_S)
895
896 enum ice_tx_desc_cmd_bits {
897 ICE_TX_DESC_CMD_EOP = 0x0001,
898 ICE_TX_DESC_CMD_RS = 0x0002,
899 ICE_TX_DESC_CMD_RSVD = 0x0004,
900 ICE_TX_DESC_CMD_IL2TAG1 = 0x0008,
901 ICE_TX_DESC_CMD_DUMMY = 0x0010,
902 ICE_TX_DESC_CMD_IIPT_NONIP = 0x0000,
903 ICE_TX_DESC_CMD_IIPT_IPV6 = 0x0020,
904 ICE_TX_DESC_CMD_IIPT_IPV4 = 0x0040,
905 ICE_TX_DESC_CMD_IIPT_IPV4_CSUM = 0x0060,
906 ICE_TX_DESC_CMD_RSVD2 = 0x0080,
907 ICE_TX_DESC_CMD_L4T_EOFT_UNK = 0x0000,
908 ICE_TX_DESC_CMD_L4T_EOFT_TCP = 0x0100,
909 ICE_TX_DESC_CMD_L4T_EOFT_SCTP = 0x0200,
910 ICE_TX_DESC_CMD_L4T_EOFT_UDP = 0x0300,
911 ICE_TX_DESC_CMD_RE = 0x0400,
912 ICE_TX_DESC_CMD_RSVD3 = 0x0800,
913 };
914
915 #define ICE_TXD_QW1_OFFSET_S 16
916 #define ICE_TXD_QW1_OFFSET_M (0x3FFFFULL << ICE_TXD_QW1_OFFSET_S)
917
918 enum ice_tx_desc_len_fields {
919 /* Note: These are predefined bit offsets */
920 ICE_TX_DESC_LEN_MACLEN_S = 0, /* 7 BITS */
921 ICE_TX_DESC_LEN_IPLEN_S = 7, /* 7 BITS */
922 ICE_TX_DESC_LEN_L4_LEN_S = 14 /* 4 BITS */
923 };
924
925 #define ICE_TXD_QW1_MACLEN_M (0x7FUL << ICE_TX_DESC_LEN_MACLEN_S)
926 #define ICE_TXD_QW1_IPLEN_M (0x7FUL << ICE_TX_DESC_LEN_IPLEN_S)
927 #define ICE_TXD_QW1_L4LEN_M (0xFUL << ICE_TX_DESC_LEN_L4_LEN_S)
928
929 /* Tx descriptor field limits in bytes */
930 #define ICE_TXD_MACLEN_MAX ((ICE_TXD_QW1_MACLEN_M >> \
931 ICE_TX_DESC_LEN_MACLEN_S) * ICE_BYTES_PER_WORD)
932 #define ICE_TXD_IPLEN_MAX ((ICE_TXD_QW1_IPLEN_M >> \
933 ICE_TX_DESC_LEN_IPLEN_S) * ICE_BYTES_PER_DWORD)
934 #define ICE_TXD_L4LEN_MAX ((ICE_TXD_QW1_L4LEN_M >> \
935 ICE_TX_DESC_LEN_L4_LEN_S) * ICE_BYTES_PER_DWORD)
936
937 #define ICE_TXD_QW1_TX_BUF_SZ_S 34
938 #define ICE_TXD_QW1_TX_BUF_SZ_M (0x3FFFULL << ICE_TXD_QW1_TX_BUF_SZ_S)
939
940 #define ICE_TXD_QW1_L2TAG1_S 48
941 #define ICE_TXD_QW1_L2TAG1_M (0xFFFFULL << ICE_TXD_QW1_L2TAG1_S)
942
943 /* Context descriptors */
944 struct ice_tx_ctx_desc {
945 __le32 tunneling_params;
946 __le16 l2tag2;
947 __le16 rsvd;
948 __le64 qw1;
949 };
950
951 #define ICE_TX_GCS_DESC_START 0 /* 8 BITS */
952 #define ICE_TX_GCS_DESC_OFFSET 8 /* 4 BITS */
953 #define ICE_TX_GCS_DESC_TYPE 12 /* 3 BITS */
954
955 #define ICE_TXD_CTX_QW1_DTYPE_S 0
956 #define ICE_TXD_CTX_QW1_DTYPE_M (0xFUL << ICE_TXD_CTX_QW1_DTYPE_S)
957
958 #define ICE_TXD_CTX_QW1_CMD_S 4
959 #define ICE_TXD_CTX_QW1_CMD_M (0x7FUL << ICE_TXD_CTX_QW1_CMD_S)
960
961 #define ICE_TXD_CTX_QW1_IPSEC_S 11
962 #define ICE_TXD_CTX_QW1_IPSEC_M (0x7FUL << ICE_TXD_CTX_QW1_IPSEC_S)
963
964 #define ICE_TXD_CTX_QW1_TSO_LEN_S 30
965 #define ICE_TXD_CTX_QW1_TSO_LEN_M \
966 (0x3FFFFULL << ICE_TXD_CTX_QW1_TSO_LEN_S)
967
968 #define ICE_TXD_CTX_QW1_TSYN_S ICE_TXD_CTX_QW1_TSO_LEN_S
969 #define ICE_TXD_CTX_QW1_TSYN_M ICE_TXD_CTX_QW1_TSO_LEN_M
970
971 #define ICE_TXD_CTX_QW1_MSS_S 50
972 #define ICE_TXD_CTX_QW1_MSS_M (0x3FFFULL << ICE_TXD_CTX_QW1_MSS_S)
973 #define ICE_TXD_CTX_MIN_MSS 64
974 #define ICE_TXD_CTX_MAX_MSS 9668
975
976 #define ICE_TXD_CTX_QW1_VSI_S 50
977 #define ICE_TXD_CTX_QW1_VSI_M (0x3FFULL << ICE_TXD_CTX_QW1_VSI_S)
978
979 enum ice_tx_ctx_desc_cmd_bits {
980 ICE_TX_CTX_DESC_TSO = 0x01,
981 ICE_TX_CTX_DESC_TSYN = 0x02,
982 ICE_TX_CTX_DESC_IL2TAG2 = 0x04,
983 ICE_TX_CTX_DESC_IL2TAG2_IL2H = 0x08,
984 ICE_TX_CTX_DESC_SWTCH_NOTAG = 0x00,
985 ICE_TX_CTX_DESC_SWTCH_UPLINK = 0x10,
986 ICE_TX_CTX_DESC_SWTCH_LOCAL = 0x20,
987 ICE_TX_CTX_DESC_SWTCH_VSI = 0x30,
988 ICE_TX_CTX_DESC_RESERVED = 0x40
989 };
990
991 enum ice_tx_ctx_desc_eipt_offload {
992 ICE_TX_CTX_EIPT_NONE = 0x0,
993 ICE_TX_CTX_EIPT_IPV6 = 0x1,
994 ICE_TX_CTX_EIPT_IPV4_NO_CSUM = 0x2,
995 ICE_TX_CTX_EIPT_IPV4 = 0x3
996 };
997
998 #define ICE_TXD_CTX_QW0_EIPT_S 0
999 #define ICE_TXD_CTX_QW0_EIPT_M (0x3ULL << ICE_TXD_CTX_QW0_EIPT_S)
1000
1001 #define ICE_TXD_CTX_QW0_EIPLEN_S 2
1002 #define ICE_TXD_CTX_QW0_EIPLEN_M (0x7FUL << ICE_TXD_CTX_QW0_EIPLEN_S)
1003
1004 #define ICE_TXD_CTX_QW0_L4TUNT_S 9
1005 #define ICE_TXD_CTX_QW0_L4TUNT_M (0x3ULL << ICE_TXD_CTX_QW0_L4TUNT_S)
1006
1007 #define ICE_TXD_CTX_UDP_TUNNELING BIT_ULL(ICE_TXD_CTX_QW0_L4TUNT_S)
1008 #define ICE_TXD_CTX_GRE_TUNNELING (0x2ULL << ICE_TXD_CTX_QW0_L4TUNT_S)
1009
1010 #define ICE_TXD_CTX_QW0_EIP_NOINC_S 11
1011 #define ICE_TXD_CTX_QW0_EIP_NOINC_M BIT_ULL(ICE_TXD_CTX_QW0_EIP_NOINC_S)
1012
1013 #define ICE_TXD_CTX_EIP_NOINC_IPID_CONST ICE_TXD_CTX_QW0_EIP_NOINC_M
1014
1015 #define ICE_TXD_CTX_QW0_NATLEN_S 12
1016 #define ICE_TXD_CTX_QW0_NATLEN_M (0X7FULL << ICE_TXD_CTX_QW0_NATLEN_S)
1017
1018 #define ICE_TXD_CTX_QW0_DECTTL_S 19
1019 #define ICE_TXD_CTX_QW0_DECTTL_M (0xFULL << ICE_TXD_CTX_QW0_DECTTL_S)
1020
1021 #define ICE_TXD_CTX_QW0_L4T_CS_S 23
1022 #define ICE_TXD_CTX_QW0_L4T_CS_M BIT_ULL(ICE_TXD_CTX_QW0_L4T_CS_S)
1023
1024 #define ICE_LAN_TXQ_MAX_QGRPS 127
1025 #define ICE_LAN_TXQ_MAX_QDIS 1023
1026
1027 /* Tx queue context data
1028 *
1029 * The sizes of the variables may be larger than needed due to crossing byte
1030 * boundaries. If we do not have the width of the variable set to the correct
1031 * size then we could end up shifting bits off the top of the variable when the
1032 * variable is at the top of a byte and crosses over into the next byte.
1033 */
1034 struct ice_tlan_ctx {
1035 #define ICE_TLAN_CTX_BASE_S 7
1036 u64 base; /* base is defined in 128-byte units */
1037 u8 port_num;
1038 u16 cgd_num; /* bigger than needed, see above for reason */
1039 u8 pf_num;
1040 u16 vmvf_num;
1041 u8 vmvf_type;
1042 #define ICE_TLAN_CTX_VMVF_TYPE_VF 0
1043 #define ICE_TLAN_CTX_VMVF_TYPE_VMQ 1
1044 #define ICE_TLAN_CTX_VMVF_TYPE_PF 2
1045 u16 src_vsi;
1046 u8 tsyn_ena;
1047 u8 internal_usage_flag;
1048 u8 alt_vlan;
1049 u16 cpuid; /* bigger than needed, see above for reason */
1050 u8 wb_mode;
1051 u8 tphrd_desc;
1052 u8 tphrd;
1053 u8 tphwr_desc;
1054 u16 cmpq_id;
1055 u16 qnum_in_func;
1056 u8 itr_notification_mode;
1057 u8 adjust_prof_id;
1058 u32 qlen; /* bigger than needed, see above for reason */
1059 u8 quanta_prof_idx;
1060 u8 tso_ena;
1061 u16 tso_qnum;
1062 u8 legacy_int;
1063 u8 drop_ena;
1064 u8 cache_prof_idx;
1065 u8 pkt_shaper_prof_idx;
1066 u8 int_q_state; /* width not needed - internal - DO NOT WRITE!!! */
1067 u16 tail;
1068 };
1069
1070 /* LAN Tx Completion Queue data */
1071 #pragma pack(1)
1072 struct ice_tx_cmpltnq {
1073 u16 txq_id;
1074 u8 generation;
1075 u16 tx_head;
1076 u8 cmpl_type;
1077 };
1078 #pragma pack()
1079
1080 /* FIXME: move to a .c file that references this variable */
1081 /* LAN Tx Completion Queue data info */
1082 static const struct ice_ctx_ele ice_tx_cmpltnq_info[] = {
1083 /* Field Width LSB */
1084 ICE_CTX_STORE(ice_tx_cmpltnq, txq_id, 14, 0),
1085 ICE_CTX_STORE(ice_tx_cmpltnq, generation, 1, 15),
1086 ICE_CTX_STORE(ice_tx_cmpltnq, tx_head, 13, 16),
1087 ICE_CTX_STORE(ice_tx_cmpltnq, cmpl_type, 3, 29),
1088 { 0 }
1089 };
1090
1091 /* LAN Tx Completion Queue Context */
1092 #pragma pack(1)
1093 struct ice_tx_cmpltnq_ctx {
1094 u64 base;
1095 #define ICE_TX_CMPLTNQ_CTX_BASE_S 7
1096 u32 q_len;
1097 #define ICE_TX_CMPLTNQ_CTX_Q_LEN_S 4
1098 u8 generation;
1099 u32 wrt_ptr;
1100 u8 pf_num;
1101 u16 vmvf_num;
1102 u8 vmvf_type;
1103 #define ICE_TX_CMPLTNQ_CTX_VMVF_TYPE_VF 0
1104 #define ICE_TX_CMPLTNQ_CTX_VMVF_TYPE_VMQ 1
1105 #define ICE_TX_CMPLTNQ_CTX_VMVF_TYPE_PF 2
1106 u8 tph_desc_wr;
1107 u8 cpuid;
1108 u32 cmpltn_cache[16];
1109 };
1110 #pragma pack()
1111
1112 /* LAN Tx Doorbell Descriptor Format */
1113 struct ice_tx_drbell_fmt {
1114 u16 txq_id;
1115 u8 dd;
1116 u8 rs;
1117 u32 db;
1118 };
1119
1120 /* FIXME: move to a .c file that references this variable */
1121 /* LAN Tx Doorbell Descriptor format info */
1122 static const struct ice_ctx_ele ice_tx_drbell_fmt_info[] = {
1123 /* Field Width LSB */
1124 ICE_CTX_STORE(ice_tx_drbell_fmt, txq_id, 14, 0),
1125 ICE_CTX_STORE(ice_tx_drbell_fmt, dd, 1, 14),
1126 ICE_CTX_STORE(ice_tx_drbell_fmt, rs, 1, 15),
1127 ICE_CTX_STORE(ice_tx_drbell_fmt, db, 32, 32),
1128 { 0 }
1129 };
1130
1131 /* LAN Tx Doorbell Queue Context */
1132 #pragma pack(1)
1133 struct ice_tx_drbell_q_ctx {
1134 u64 base;
1135 #define ICE_TX_DRBELL_Q_CTX_BASE_S 7
1136 u16 ring_len;
1137 #define ICE_TX_DRBELL_Q_CTX_RING_LEN_S 4
1138 u8 pf_num;
1139 u16 vf_num;
1140 u8 vmvf_type;
1141 #define ICE_TX_DRBELL_Q_CTX_VMVF_TYPE_VF 0
1142 #define ICE_TX_DRBELL_Q_CTX_VMVF_TYPE_VMQ 1
1143 #define ICE_TX_DRBELL_Q_CTX_VMVF_TYPE_PF 2
1144 u8 cpuid;
1145 u8 tph_desc_rd;
1146 u8 tph_desc_wr;
1147 u8 db_q_en;
1148 u16 rd_head;
1149 u16 rd_tail;
1150 };
1151 #pragma pack()
1152
1153 /* The ice_ptype_lkup table is used to convert from the 10-bit ptype in the
1154 * hardware to a bit-field that can be used by SW to more easily determine the
1155 * packet type.
1156 *
1157 * Macros are used to shorten the table lines and make this table human
1158 * readable.
1159 *
1160 * We store the PTYPE in the top byte of the bit field - this is just so that
1161 * we can check that the table doesn't have a row missing, as the index into
1162 * the table should be the PTYPE.
1163 *
1164 * Typical work flow:
1165 *
1166 * IF NOT ice_ptype_lkup[ptype].known
1167 * THEN
1168 * Packet is unknown
1169 * ELSE IF ice_ptype_lkup[ptype].outer_ip == ICE_RX_PTYPE_OUTER_IP
1170 * Use the rest of the fields to look at the tunnels, inner protocols, etc
1171 * ELSE
1172 * Use the enum ice_rx_l2_ptype to decode the packet type
1173 * ENDIF
1174 */
1175
1176 /* macro to make the table lines short */
1177 #define ICE_PTT(PTYPE, OUTER_IP, OUTER_IP_VER, OUTER_FRAG, T, TE, TEF, I, PL)\
1178 { 1, \
1179 ICE_RX_PTYPE_OUTER_##OUTER_IP, \
1180 ICE_RX_PTYPE_OUTER_##OUTER_IP_VER, \
1181 ICE_RX_PTYPE_##OUTER_FRAG, \
1182 ICE_RX_PTYPE_TUNNEL_##T, \
1183 ICE_RX_PTYPE_TUNNEL_END_##TE, \
1184 ICE_RX_PTYPE_##TEF, \
1185 ICE_RX_PTYPE_INNER_PROT_##I, \
1186 ICE_RX_PTYPE_PAYLOAD_LAYER_##PL }
1187
1188 #define ICE_PTT_UNUSED_ENTRY(PTYPE) { 0, 0, 0, 0, 0, 0, 0, 0, 0 }
1189
1190 /* shorter macros makes the table fit but are terse */
1191 #define ICE_RX_PTYPE_NOF ICE_RX_PTYPE_NOT_FRAG
1192 #define ICE_RX_PTYPE_FRG ICE_RX_PTYPE_FRAG
1193
1194 /* Lookup table mapping the 10-bit HW PTYPE to the bit field for decoding */
1195 static const struct ice_rx_ptype_decoded ice_ptype_lkup[1024] = {
1196 /* L2 Packet types */
1197 ICE_PTT_UNUSED_ENTRY(0),
1198 ICE_PTT(1, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2),
1199 ICE_PTT_UNUSED_ENTRY(2),
1200 ICE_PTT_UNUSED_ENTRY(3),
1201 ICE_PTT_UNUSED_ENTRY(4),
1202 ICE_PTT_UNUSED_ENTRY(5),
1203 ICE_PTT(6, L2, NONE, NOF, NONE, NONE, NOF, NONE, NONE),
1204 ICE_PTT(7, L2, NONE, NOF, NONE, NONE, NOF, NONE, NONE),
1205 ICE_PTT_UNUSED_ENTRY(8),
1206 ICE_PTT_UNUSED_ENTRY(9),
1207 ICE_PTT(10, L2, NONE, NOF, NONE, NONE, NOF, NONE, NONE),
1208 ICE_PTT(11, L2, NONE, NOF, NONE, NONE, NOF, NONE, NONE),
1209 ICE_PTT_UNUSED_ENTRY(12),
1210 ICE_PTT_UNUSED_ENTRY(13),
1211 ICE_PTT_UNUSED_ENTRY(14),
1212 ICE_PTT_UNUSED_ENTRY(15),
1213 ICE_PTT_UNUSED_ENTRY(16),
1214 ICE_PTT_UNUSED_ENTRY(17),
1215 ICE_PTT_UNUSED_ENTRY(18),
1216 ICE_PTT_UNUSED_ENTRY(19),
1217 ICE_PTT_UNUSED_ENTRY(20),
1218 ICE_PTT_UNUSED_ENTRY(21),
1219
1220 /* Non Tunneled IPv4 */
1221 ICE_PTT(22, IP, IPV4, FRG, NONE, NONE, NOF, NONE, PAY3),
1222 ICE_PTT(23, IP, IPV4, NOF, NONE, NONE, NOF, NONE, PAY3),
1223 ICE_PTT(24, IP, IPV4, NOF, NONE, NONE, NOF, UDP, PAY4),
1224 ICE_PTT_UNUSED_ENTRY(25),
1225 ICE_PTT(26, IP, IPV4, NOF, NONE, NONE, NOF, TCP, PAY4),
1226 ICE_PTT(27, IP, IPV4, NOF, NONE, NONE, NOF, SCTP, PAY4),
1227 ICE_PTT(28, IP, IPV4, NOF, NONE, NONE, NOF, ICMP, PAY4),
1228
1229 /* IPv4 --> IPv4 */
1230 ICE_PTT(29, IP, IPV4, NOF, IP_IP, IPV4, FRG, NONE, PAY3),
1231 ICE_PTT(30, IP, IPV4, NOF, IP_IP, IPV4, NOF, NONE, PAY3),
1232 ICE_PTT(31, IP, IPV4, NOF, IP_IP, IPV4, NOF, UDP, PAY4),
1233 ICE_PTT_UNUSED_ENTRY(32),
1234 ICE_PTT(33, IP, IPV4, NOF, IP_IP, IPV4, NOF, TCP, PAY4),
1235 ICE_PTT(34, IP, IPV4, NOF, IP_IP, IPV4, NOF, SCTP, PAY4),
1236 ICE_PTT(35, IP, IPV4, NOF, IP_IP, IPV4, NOF, ICMP, PAY4),
1237
1238 /* IPv4 --> IPv6 */
1239 ICE_PTT(36, IP, IPV4, NOF, IP_IP, IPV6, FRG, NONE, PAY3),
1240 ICE_PTT(37, IP, IPV4, NOF, IP_IP, IPV6, NOF, NONE, PAY3),
1241 ICE_PTT(38, IP, IPV4, NOF, IP_IP, IPV6, NOF, UDP, PAY4),
1242 ICE_PTT_UNUSED_ENTRY(39),
1243 ICE_PTT(40, IP, IPV4, NOF, IP_IP, IPV6, NOF, TCP, PAY4),
1244 ICE_PTT(41, IP, IPV4, NOF, IP_IP, IPV6, NOF, SCTP, PAY4),
1245 ICE_PTT(42, IP, IPV4, NOF, IP_IP, IPV6, NOF, ICMP, PAY4),
1246
1247 /* IPv4 --> GRE/NAT */
1248 ICE_PTT(43, IP, IPV4, NOF, IP_GRENAT, NONE, NOF, NONE, PAY3),
1249
1250 /* IPv4 --> GRE/NAT --> IPv4 */
1251 ICE_PTT(44, IP, IPV4, NOF, IP_GRENAT, IPV4, FRG, NONE, PAY3),
1252 ICE_PTT(45, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, NONE, PAY3),
1253 ICE_PTT(46, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, UDP, PAY4),
1254 ICE_PTT_UNUSED_ENTRY(47),
1255 ICE_PTT(48, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, TCP, PAY4),
1256 ICE_PTT(49, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, SCTP, PAY4),
1257 ICE_PTT(50, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, ICMP, PAY4),
1258
1259 /* IPv4 --> GRE/NAT --> IPv6 */
1260 ICE_PTT(51, IP, IPV4, NOF, IP_GRENAT, IPV6, FRG, NONE, PAY3),
1261 ICE_PTT(52, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, NONE, PAY3),
1262 ICE_PTT(53, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, UDP, PAY4),
1263 ICE_PTT_UNUSED_ENTRY(54),
1264 ICE_PTT(55, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, TCP, PAY4),
1265 ICE_PTT(56, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, SCTP, PAY4),
1266 ICE_PTT(57, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, ICMP, PAY4),
1267
1268 /* IPv4 --> GRE/NAT --> MAC */
1269 ICE_PTT(58, IP, IPV4, NOF, IP_GRENAT_MAC, NONE, NOF, NONE, PAY3),
1270
1271 /* IPv4 --> GRE/NAT --> MAC --> IPv4 */
1272 ICE_PTT(59, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, FRG, NONE, PAY3),
1273 ICE_PTT(60, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, NONE, PAY3),
1274 ICE_PTT(61, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, UDP, PAY4),
1275 ICE_PTT_UNUSED_ENTRY(62),
1276 ICE_PTT(63, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, TCP, PAY4),
1277 ICE_PTT(64, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, SCTP, PAY4),
1278 ICE_PTT(65, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, ICMP, PAY4),
1279
1280 /* IPv4 --> GRE/NAT -> MAC --> IPv6 */
1281 ICE_PTT(66, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, FRG, NONE, PAY3),
1282 ICE_PTT(67, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, NONE, PAY3),
1283 ICE_PTT(68, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, UDP, PAY4),
1284 ICE_PTT_UNUSED_ENTRY(69),
1285 ICE_PTT(70, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, TCP, PAY4),
1286 ICE_PTT(71, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, SCTP, PAY4),
1287 ICE_PTT(72, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, ICMP, PAY4),
1288
1289 /* IPv4 --> GRE/NAT --> MAC/VLAN */
1290 ICE_PTT(73, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, NONE, NOF, NONE, PAY3),
1291
1292 /* IPv4 ---> GRE/NAT -> MAC/VLAN --> IPv4 */
1293 ICE_PTT(74, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, FRG, NONE, PAY3),
1294 ICE_PTT(75, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, NONE, PAY3),
1295 ICE_PTT(76, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, UDP, PAY4),
1296 ICE_PTT_UNUSED_ENTRY(77),
1297 ICE_PTT(78, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, TCP, PAY4),
1298 ICE_PTT(79, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, SCTP, PAY4),
1299 ICE_PTT(80, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, ICMP, PAY4),
1300
1301 /* IPv4 -> GRE/NAT -> MAC/VLAN --> IPv6 */
1302 ICE_PTT(81, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, FRG, NONE, PAY3),
1303 ICE_PTT(82, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, NONE, PAY3),
1304 ICE_PTT(83, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, UDP, PAY4),
1305 ICE_PTT_UNUSED_ENTRY(84),
1306 ICE_PTT(85, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, TCP, PAY4),
1307 ICE_PTT(86, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, SCTP, PAY4),
1308 ICE_PTT(87, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, ICMP, PAY4),
1309
1310 /* Non Tunneled IPv6 */
1311 ICE_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3),
1312 ICE_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3),
1313 ICE_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP, PAY4),
1314 ICE_PTT_UNUSED_ENTRY(91),
1315 ICE_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP, PAY4),
1316 ICE_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4),
1317 ICE_PTT(94, IP, IPV6, NOF, NONE, NONE, NOF, ICMP, PAY4),
1318
1319 /* IPv6 --> IPv4 */
1320 ICE_PTT(95, IP, IPV6, NOF, IP_IP, IPV4, FRG, NONE, PAY3),
1321 ICE_PTT(96, IP, IPV6, NOF, IP_IP, IPV4, NOF, NONE, PAY3),
1322 ICE_PTT(97, IP, IPV6, NOF, IP_IP, IPV4, NOF, UDP, PAY4),
1323 ICE_PTT_UNUSED_ENTRY(98),
1324 ICE_PTT(99, IP, IPV6, NOF, IP_IP, IPV4, NOF, TCP, PAY4),
1325 ICE_PTT(100, IP, IPV6, NOF, IP_IP, IPV4, NOF, SCTP, PAY4),
1326 ICE_PTT(101, IP, IPV6, NOF, IP_IP, IPV4, NOF, ICMP, PAY4),
1327
1328 /* IPv6 --> IPv6 */
1329 ICE_PTT(102, IP, IPV6, NOF, IP_IP, IPV6, FRG, NONE, PAY3),
1330 ICE_PTT(103, IP, IPV6, NOF, IP_IP, IPV6, NOF, NONE, PAY3),
1331 ICE_PTT(104, IP, IPV6, NOF, IP_IP, IPV6, NOF, UDP, PAY4),
1332 ICE_PTT_UNUSED_ENTRY(105),
1333 ICE_PTT(106, IP, IPV6, NOF, IP_IP, IPV6, NOF, TCP, PAY4),
1334 ICE_PTT(107, IP, IPV6, NOF, IP_IP, IPV6, NOF, SCTP, PAY4),
1335 ICE_PTT(108, IP, IPV6, NOF, IP_IP, IPV6, NOF, ICMP, PAY4),
1336
1337 /* IPv6 --> GRE/NAT */
1338 ICE_PTT(109, IP, IPV6, NOF, IP_GRENAT, NONE, NOF, NONE, PAY3),
1339
1340 /* IPv6 --> GRE/NAT -> IPv4 */
1341 ICE_PTT(110, IP, IPV6, NOF, IP_GRENAT, IPV4, FRG, NONE, PAY3),
1342 ICE_PTT(111, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, NONE, PAY3),
1343 ICE_PTT(112, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, UDP, PAY4),
1344 ICE_PTT_UNUSED_ENTRY(113),
1345 ICE_PTT(114, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, TCP, PAY4),
1346 ICE_PTT(115, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, SCTP, PAY4),
1347 ICE_PTT(116, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, ICMP, PAY4),
1348
1349 /* IPv6 --> GRE/NAT -> IPv6 */
1350 ICE_PTT(117, IP, IPV6, NOF, IP_GRENAT, IPV6, FRG, NONE, PAY3),
1351 ICE_PTT(118, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, NONE, PAY3),
1352 ICE_PTT(119, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, UDP, PAY4),
1353 ICE_PTT_UNUSED_ENTRY(120),
1354 ICE_PTT(121, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, TCP, PAY4),
1355 ICE_PTT(122, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, SCTP, PAY4),
1356 ICE_PTT(123, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, ICMP, PAY4),
1357
1358 /* IPv6 --> GRE/NAT -> MAC */
1359 ICE_PTT(124, IP, IPV6, NOF, IP_GRENAT_MAC, NONE, NOF, NONE, PAY3),
1360
1361 /* IPv6 --> GRE/NAT -> MAC -> IPv4 */
1362 ICE_PTT(125, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, FRG, NONE, PAY3),
1363 ICE_PTT(126, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, NONE, PAY3),
1364 ICE_PTT(127, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, UDP, PAY4),
1365 ICE_PTT_UNUSED_ENTRY(128),
1366 ICE_PTT(129, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, TCP, PAY4),
1367 ICE_PTT(130, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, SCTP, PAY4),
1368 ICE_PTT(131, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, ICMP, PAY4),
1369
1370 /* IPv6 --> GRE/NAT -> MAC -> IPv6 */
1371 ICE_PTT(132, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, FRG, NONE, PAY3),
1372 ICE_PTT(133, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, NONE, PAY3),
1373 ICE_PTT(134, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, UDP, PAY4),
1374 ICE_PTT_UNUSED_ENTRY(135),
1375 ICE_PTT(136, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, TCP, PAY4),
1376 ICE_PTT(137, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, SCTP, PAY4),
1377 ICE_PTT(138, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, ICMP, PAY4),
1378
1379 /* IPv6 --> GRE/NAT -> MAC/VLAN */
1380 ICE_PTT(139, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, NONE, NOF, NONE, PAY3),
1381
1382 /* IPv6 --> GRE/NAT -> MAC/VLAN --> IPv4 */
1383 ICE_PTT(140, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, FRG, NONE, PAY3),
1384 ICE_PTT(141, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, NONE, PAY3),
1385 ICE_PTT(142, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, UDP, PAY4),
1386 ICE_PTT_UNUSED_ENTRY(143),
1387 ICE_PTT(144, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, TCP, PAY4),
1388 ICE_PTT(145, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, SCTP, PAY4),
1389 ICE_PTT(146, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, ICMP, PAY4),
1390
1391 /* IPv6 --> GRE/NAT -> MAC/VLAN --> IPv6 */
1392 ICE_PTT(147, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, FRG, NONE, PAY3),
1393 ICE_PTT(148, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, NONE, PAY3),
1394 ICE_PTT(149, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, UDP, PAY4),
1395 ICE_PTT_UNUSED_ENTRY(150),
1396 ICE_PTT(151, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, TCP, PAY4),
1397 ICE_PTT(152, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, SCTP, PAY4),
1398 ICE_PTT(153, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, ICMP, PAY4),
1399
1400 /* unused entries */
1401 ICE_PTT_UNUSED_ENTRY(154),
1402 ICE_PTT_UNUSED_ENTRY(155),
1403 ICE_PTT_UNUSED_ENTRY(156),
1404 ICE_PTT_UNUSED_ENTRY(157),
1405 ICE_PTT_UNUSED_ENTRY(158),
1406 ICE_PTT_UNUSED_ENTRY(159),
1407
1408 ICE_PTT_UNUSED_ENTRY(160),
1409 ICE_PTT_UNUSED_ENTRY(161),
1410 ICE_PTT_UNUSED_ENTRY(162),
1411 ICE_PTT_UNUSED_ENTRY(163),
1412 ICE_PTT_UNUSED_ENTRY(164),
1413 ICE_PTT_UNUSED_ENTRY(165),
1414 ICE_PTT_UNUSED_ENTRY(166),
1415 ICE_PTT_UNUSED_ENTRY(167),
1416 ICE_PTT_UNUSED_ENTRY(168),
1417 ICE_PTT_UNUSED_ENTRY(169),
1418
1419 ICE_PTT_UNUSED_ENTRY(170),
1420 ICE_PTT_UNUSED_ENTRY(171),
1421 ICE_PTT_UNUSED_ENTRY(172),
1422 ICE_PTT_UNUSED_ENTRY(173),
1423 ICE_PTT_UNUSED_ENTRY(174),
1424 ICE_PTT_UNUSED_ENTRY(175),
1425 ICE_PTT_UNUSED_ENTRY(176),
1426 ICE_PTT_UNUSED_ENTRY(177),
1427 ICE_PTT_UNUSED_ENTRY(178),
1428 ICE_PTT_UNUSED_ENTRY(179),
1429
1430 ICE_PTT_UNUSED_ENTRY(180),
1431 ICE_PTT_UNUSED_ENTRY(181),
1432 ICE_PTT_UNUSED_ENTRY(182),
1433 ICE_PTT_UNUSED_ENTRY(183),
1434 ICE_PTT_UNUSED_ENTRY(184),
1435 ICE_PTT_UNUSED_ENTRY(185),
1436 ICE_PTT_UNUSED_ENTRY(186),
1437 ICE_PTT_UNUSED_ENTRY(187),
1438 ICE_PTT_UNUSED_ENTRY(188),
1439 ICE_PTT_UNUSED_ENTRY(189),
1440
1441 ICE_PTT_UNUSED_ENTRY(190),
1442 ICE_PTT_UNUSED_ENTRY(191),
1443 ICE_PTT_UNUSED_ENTRY(192),
1444 ICE_PTT_UNUSED_ENTRY(193),
1445 ICE_PTT_UNUSED_ENTRY(194),
1446 ICE_PTT_UNUSED_ENTRY(195),
1447 ICE_PTT_UNUSED_ENTRY(196),
1448 ICE_PTT_UNUSED_ENTRY(197),
1449 ICE_PTT_UNUSED_ENTRY(198),
1450 ICE_PTT_UNUSED_ENTRY(199),
1451
1452 ICE_PTT_UNUSED_ENTRY(200),
1453 ICE_PTT_UNUSED_ENTRY(201),
1454 ICE_PTT_UNUSED_ENTRY(202),
1455 ICE_PTT_UNUSED_ENTRY(203),
1456 ICE_PTT_UNUSED_ENTRY(204),
1457 ICE_PTT_UNUSED_ENTRY(205),
1458 ICE_PTT_UNUSED_ENTRY(206),
1459 ICE_PTT_UNUSED_ENTRY(207),
1460 ICE_PTT_UNUSED_ENTRY(208),
1461 ICE_PTT_UNUSED_ENTRY(209),
1462
1463 ICE_PTT_UNUSED_ENTRY(210),
1464 ICE_PTT_UNUSED_ENTRY(211),
1465 ICE_PTT_UNUSED_ENTRY(212),
1466 ICE_PTT_UNUSED_ENTRY(213),
1467 ICE_PTT_UNUSED_ENTRY(214),
1468 ICE_PTT_UNUSED_ENTRY(215),
1469 ICE_PTT_UNUSED_ENTRY(216),
1470 ICE_PTT_UNUSED_ENTRY(217),
1471 ICE_PTT_UNUSED_ENTRY(218),
1472 ICE_PTT_UNUSED_ENTRY(219),
1473
1474 ICE_PTT_UNUSED_ENTRY(220),
1475 ICE_PTT_UNUSED_ENTRY(221),
1476 ICE_PTT_UNUSED_ENTRY(222),
1477 ICE_PTT_UNUSED_ENTRY(223),
1478 ICE_PTT_UNUSED_ENTRY(224),
1479 ICE_PTT_UNUSED_ENTRY(225),
1480 ICE_PTT_UNUSED_ENTRY(226),
1481 ICE_PTT_UNUSED_ENTRY(227),
1482 ICE_PTT_UNUSED_ENTRY(228),
1483 ICE_PTT_UNUSED_ENTRY(229),
1484
1485 ICE_PTT_UNUSED_ENTRY(230),
1486 ICE_PTT_UNUSED_ENTRY(231),
1487 ICE_PTT_UNUSED_ENTRY(232),
1488 ICE_PTT_UNUSED_ENTRY(233),
1489 ICE_PTT_UNUSED_ENTRY(234),
1490 ICE_PTT_UNUSED_ENTRY(235),
1491 ICE_PTT_UNUSED_ENTRY(236),
1492 ICE_PTT_UNUSED_ENTRY(237),
1493 ICE_PTT_UNUSED_ENTRY(238),
1494 ICE_PTT_UNUSED_ENTRY(239),
1495
1496 ICE_PTT_UNUSED_ENTRY(240),
1497 ICE_PTT_UNUSED_ENTRY(241),
1498 ICE_PTT_UNUSED_ENTRY(242),
1499 ICE_PTT_UNUSED_ENTRY(243),
1500 ICE_PTT_UNUSED_ENTRY(244),
1501 ICE_PTT_UNUSED_ENTRY(245),
1502 ICE_PTT_UNUSED_ENTRY(246),
1503 ICE_PTT_UNUSED_ENTRY(247),
1504 ICE_PTT_UNUSED_ENTRY(248),
1505 ICE_PTT_UNUSED_ENTRY(249),
1506
1507 ICE_PTT_UNUSED_ENTRY(250),
1508 ICE_PTT_UNUSED_ENTRY(251),
1509 ICE_PTT_UNUSED_ENTRY(252),
1510 ICE_PTT_UNUSED_ENTRY(253),
1511 ICE_PTT_UNUSED_ENTRY(254),
1512 ICE_PTT_UNUSED_ENTRY(255),
1513 ICE_PTT_UNUSED_ENTRY(256),
1514 ICE_PTT_UNUSED_ENTRY(257),
1515 ICE_PTT_UNUSED_ENTRY(258),
1516 ICE_PTT_UNUSED_ENTRY(259),
1517
1518 ICE_PTT_UNUSED_ENTRY(260),
1519 ICE_PTT_UNUSED_ENTRY(261),
1520 ICE_PTT_UNUSED_ENTRY(262),
1521 ICE_PTT_UNUSED_ENTRY(263),
1522 ICE_PTT_UNUSED_ENTRY(264),
1523 ICE_PTT_UNUSED_ENTRY(265),
1524 ICE_PTT_UNUSED_ENTRY(266),
1525 ICE_PTT_UNUSED_ENTRY(267),
1526 ICE_PTT_UNUSED_ENTRY(268),
1527 ICE_PTT_UNUSED_ENTRY(269),
1528
1529 ICE_PTT_UNUSED_ENTRY(270),
1530 ICE_PTT_UNUSED_ENTRY(271),
1531 ICE_PTT_UNUSED_ENTRY(272),
1532 ICE_PTT_UNUSED_ENTRY(273),
1533 ICE_PTT_UNUSED_ENTRY(274),
1534 ICE_PTT_UNUSED_ENTRY(275),
1535 ICE_PTT_UNUSED_ENTRY(276),
1536 ICE_PTT_UNUSED_ENTRY(277),
1537 ICE_PTT_UNUSED_ENTRY(278),
1538 ICE_PTT_UNUSED_ENTRY(279),
1539
1540 ICE_PTT_UNUSED_ENTRY(280),
1541 ICE_PTT_UNUSED_ENTRY(281),
1542 ICE_PTT_UNUSED_ENTRY(282),
1543 ICE_PTT_UNUSED_ENTRY(283),
1544 ICE_PTT_UNUSED_ENTRY(284),
1545 ICE_PTT_UNUSED_ENTRY(285),
1546 ICE_PTT_UNUSED_ENTRY(286),
1547 ICE_PTT_UNUSED_ENTRY(287),
1548 ICE_PTT_UNUSED_ENTRY(288),
1549 ICE_PTT_UNUSED_ENTRY(289),
1550
1551 ICE_PTT_UNUSED_ENTRY(290),
1552 ICE_PTT_UNUSED_ENTRY(291),
1553 ICE_PTT_UNUSED_ENTRY(292),
1554 ICE_PTT_UNUSED_ENTRY(293),
1555 ICE_PTT_UNUSED_ENTRY(294),
1556 ICE_PTT_UNUSED_ENTRY(295),
1557 ICE_PTT_UNUSED_ENTRY(296),
1558 ICE_PTT_UNUSED_ENTRY(297),
1559 ICE_PTT_UNUSED_ENTRY(298),
1560 ICE_PTT_UNUSED_ENTRY(299),
1561
1562 ICE_PTT_UNUSED_ENTRY(300),
1563 ICE_PTT_UNUSED_ENTRY(301),
1564 ICE_PTT_UNUSED_ENTRY(302),
1565 ICE_PTT_UNUSED_ENTRY(303),
1566 ICE_PTT_UNUSED_ENTRY(304),
1567 ICE_PTT_UNUSED_ENTRY(305),
1568 ICE_PTT_UNUSED_ENTRY(306),
1569 ICE_PTT_UNUSED_ENTRY(307),
1570 ICE_PTT_UNUSED_ENTRY(308),
1571 ICE_PTT_UNUSED_ENTRY(309),
1572
1573 ICE_PTT_UNUSED_ENTRY(310),
1574 ICE_PTT_UNUSED_ENTRY(311),
1575 ICE_PTT_UNUSED_ENTRY(312),
1576 ICE_PTT_UNUSED_ENTRY(313),
1577 ICE_PTT_UNUSED_ENTRY(314),
1578 ICE_PTT_UNUSED_ENTRY(315),
1579 ICE_PTT_UNUSED_ENTRY(316),
1580 ICE_PTT_UNUSED_ENTRY(317),
1581 ICE_PTT_UNUSED_ENTRY(318),
1582 ICE_PTT_UNUSED_ENTRY(319),
1583
1584 ICE_PTT_UNUSED_ENTRY(320),
1585 ICE_PTT_UNUSED_ENTRY(321),
1586 ICE_PTT_UNUSED_ENTRY(322),
1587 ICE_PTT_UNUSED_ENTRY(323),
1588 ICE_PTT_UNUSED_ENTRY(324),
1589 ICE_PTT_UNUSED_ENTRY(325),
1590 ICE_PTT_UNUSED_ENTRY(326),
1591 ICE_PTT_UNUSED_ENTRY(327),
1592 ICE_PTT_UNUSED_ENTRY(328),
1593 ICE_PTT_UNUSED_ENTRY(329),
1594
1595 ICE_PTT_UNUSED_ENTRY(330),
1596 ICE_PTT_UNUSED_ENTRY(331),
1597 ICE_PTT_UNUSED_ENTRY(332),
1598 ICE_PTT_UNUSED_ENTRY(333),
1599 ICE_PTT_UNUSED_ENTRY(334),
1600 ICE_PTT_UNUSED_ENTRY(335),
1601 ICE_PTT_UNUSED_ENTRY(336),
1602 ICE_PTT_UNUSED_ENTRY(337),
1603 ICE_PTT_UNUSED_ENTRY(338),
1604 ICE_PTT_UNUSED_ENTRY(339),
1605
1606 ICE_PTT_UNUSED_ENTRY(340),
1607 ICE_PTT_UNUSED_ENTRY(341),
1608 ICE_PTT_UNUSED_ENTRY(342),
1609 ICE_PTT_UNUSED_ENTRY(343),
1610 ICE_PTT_UNUSED_ENTRY(344),
1611 ICE_PTT_UNUSED_ENTRY(345),
1612 ICE_PTT_UNUSED_ENTRY(346),
1613 ICE_PTT_UNUSED_ENTRY(347),
1614 ICE_PTT_UNUSED_ENTRY(348),
1615 ICE_PTT_UNUSED_ENTRY(349),
1616
1617 ICE_PTT_UNUSED_ENTRY(350),
1618 ICE_PTT_UNUSED_ENTRY(351),
1619 ICE_PTT_UNUSED_ENTRY(352),
1620 ICE_PTT_UNUSED_ENTRY(353),
1621 ICE_PTT_UNUSED_ENTRY(354),
1622 ICE_PTT_UNUSED_ENTRY(355),
1623 ICE_PTT_UNUSED_ENTRY(356),
1624 ICE_PTT_UNUSED_ENTRY(357),
1625 ICE_PTT_UNUSED_ENTRY(358),
1626 ICE_PTT_UNUSED_ENTRY(359),
1627
1628 ICE_PTT_UNUSED_ENTRY(360),
1629 ICE_PTT_UNUSED_ENTRY(361),
1630 ICE_PTT_UNUSED_ENTRY(362),
1631 ICE_PTT_UNUSED_ENTRY(363),
1632 ICE_PTT_UNUSED_ENTRY(364),
1633 ICE_PTT_UNUSED_ENTRY(365),
1634 ICE_PTT_UNUSED_ENTRY(366),
1635 ICE_PTT_UNUSED_ENTRY(367),
1636 ICE_PTT_UNUSED_ENTRY(368),
1637 ICE_PTT_UNUSED_ENTRY(369),
1638
1639 ICE_PTT_UNUSED_ENTRY(370),
1640 ICE_PTT_UNUSED_ENTRY(371),
1641 ICE_PTT_UNUSED_ENTRY(372),
1642 ICE_PTT_UNUSED_ENTRY(373),
1643 ICE_PTT_UNUSED_ENTRY(374),
1644 ICE_PTT_UNUSED_ENTRY(375),
1645 ICE_PTT_UNUSED_ENTRY(376),
1646 ICE_PTT_UNUSED_ENTRY(377),
1647 ICE_PTT_UNUSED_ENTRY(378),
1648 ICE_PTT_UNUSED_ENTRY(379),
1649
1650 ICE_PTT_UNUSED_ENTRY(380),
1651 ICE_PTT_UNUSED_ENTRY(381),
1652 ICE_PTT_UNUSED_ENTRY(382),
1653 ICE_PTT_UNUSED_ENTRY(383),
1654 ICE_PTT_UNUSED_ENTRY(384),
1655 ICE_PTT_UNUSED_ENTRY(385),
1656 ICE_PTT_UNUSED_ENTRY(386),
1657 ICE_PTT_UNUSED_ENTRY(387),
1658 ICE_PTT_UNUSED_ENTRY(388),
1659 ICE_PTT_UNUSED_ENTRY(389),
1660
1661 ICE_PTT_UNUSED_ENTRY(390),
1662 ICE_PTT_UNUSED_ENTRY(391),
1663 ICE_PTT_UNUSED_ENTRY(392),
1664 ICE_PTT_UNUSED_ENTRY(393),
1665 ICE_PTT_UNUSED_ENTRY(394),
1666 ICE_PTT_UNUSED_ENTRY(395),
1667 ICE_PTT_UNUSED_ENTRY(396),
1668 ICE_PTT_UNUSED_ENTRY(397),
1669 ICE_PTT_UNUSED_ENTRY(398),
1670 ICE_PTT_UNUSED_ENTRY(399),
1671
1672 ICE_PTT_UNUSED_ENTRY(400),
1673 ICE_PTT_UNUSED_ENTRY(401),
1674 ICE_PTT_UNUSED_ENTRY(402),
1675 ICE_PTT_UNUSED_ENTRY(403),
1676 ICE_PTT_UNUSED_ENTRY(404),
1677 ICE_PTT_UNUSED_ENTRY(405),
1678 ICE_PTT_UNUSED_ENTRY(406),
1679 ICE_PTT_UNUSED_ENTRY(407),
1680 ICE_PTT_UNUSED_ENTRY(408),
1681 ICE_PTT_UNUSED_ENTRY(409),
1682
1683 ICE_PTT_UNUSED_ENTRY(410),
1684 ICE_PTT_UNUSED_ENTRY(411),
1685 ICE_PTT_UNUSED_ENTRY(412),
1686 ICE_PTT_UNUSED_ENTRY(413),
1687 ICE_PTT_UNUSED_ENTRY(414),
1688 ICE_PTT_UNUSED_ENTRY(415),
1689 ICE_PTT_UNUSED_ENTRY(416),
1690 ICE_PTT_UNUSED_ENTRY(417),
1691 ICE_PTT_UNUSED_ENTRY(418),
1692 ICE_PTT_UNUSED_ENTRY(419),
1693
1694 ICE_PTT_UNUSED_ENTRY(420),
1695 ICE_PTT_UNUSED_ENTRY(421),
1696 ICE_PTT_UNUSED_ENTRY(422),
1697 ICE_PTT_UNUSED_ENTRY(423),
1698 ICE_PTT_UNUSED_ENTRY(424),
1699 ICE_PTT_UNUSED_ENTRY(425),
1700 ICE_PTT_UNUSED_ENTRY(426),
1701 ICE_PTT_UNUSED_ENTRY(427),
1702 ICE_PTT_UNUSED_ENTRY(428),
1703 ICE_PTT_UNUSED_ENTRY(429),
1704
1705 ICE_PTT_UNUSED_ENTRY(430),
1706 ICE_PTT_UNUSED_ENTRY(431),
1707 ICE_PTT_UNUSED_ENTRY(432),
1708 ICE_PTT_UNUSED_ENTRY(433),
1709 ICE_PTT_UNUSED_ENTRY(434),
1710 ICE_PTT_UNUSED_ENTRY(435),
1711 ICE_PTT_UNUSED_ENTRY(436),
1712 ICE_PTT_UNUSED_ENTRY(437),
1713 ICE_PTT_UNUSED_ENTRY(438),
1714 ICE_PTT_UNUSED_ENTRY(439),
1715
1716 ICE_PTT_UNUSED_ENTRY(440),
1717 ICE_PTT_UNUSED_ENTRY(441),
1718 ICE_PTT_UNUSED_ENTRY(442),
1719 ICE_PTT_UNUSED_ENTRY(443),
1720 ICE_PTT_UNUSED_ENTRY(444),
1721 ICE_PTT_UNUSED_ENTRY(445),
1722 ICE_PTT_UNUSED_ENTRY(446),
1723 ICE_PTT_UNUSED_ENTRY(447),
1724 ICE_PTT_UNUSED_ENTRY(448),
1725 ICE_PTT_UNUSED_ENTRY(449),
1726
1727 ICE_PTT_UNUSED_ENTRY(450),
1728 ICE_PTT_UNUSED_ENTRY(451),
1729 ICE_PTT_UNUSED_ENTRY(452),
1730 ICE_PTT_UNUSED_ENTRY(453),
1731 ICE_PTT_UNUSED_ENTRY(454),
1732 ICE_PTT_UNUSED_ENTRY(455),
1733 ICE_PTT_UNUSED_ENTRY(456),
1734 ICE_PTT_UNUSED_ENTRY(457),
1735 ICE_PTT_UNUSED_ENTRY(458),
1736 ICE_PTT_UNUSED_ENTRY(459),
1737
1738 ICE_PTT_UNUSED_ENTRY(460),
1739 ICE_PTT_UNUSED_ENTRY(461),
1740 ICE_PTT_UNUSED_ENTRY(462),
1741 ICE_PTT_UNUSED_ENTRY(463),
1742 ICE_PTT_UNUSED_ENTRY(464),
1743 ICE_PTT_UNUSED_ENTRY(465),
1744 ICE_PTT_UNUSED_ENTRY(466),
1745 ICE_PTT_UNUSED_ENTRY(467),
1746 ICE_PTT_UNUSED_ENTRY(468),
1747 ICE_PTT_UNUSED_ENTRY(469),
1748
1749 ICE_PTT_UNUSED_ENTRY(470),
1750 ICE_PTT_UNUSED_ENTRY(471),
1751 ICE_PTT_UNUSED_ENTRY(472),
1752 ICE_PTT_UNUSED_ENTRY(473),
1753 ICE_PTT_UNUSED_ENTRY(474),
1754 ICE_PTT_UNUSED_ENTRY(475),
1755 ICE_PTT_UNUSED_ENTRY(476),
1756 ICE_PTT_UNUSED_ENTRY(477),
1757 ICE_PTT_UNUSED_ENTRY(478),
1758 ICE_PTT_UNUSED_ENTRY(479),
1759
1760 ICE_PTT_UNUSED_ENTRY(480),
1761 ICE_PTT_UNUSED_ENTRY(481),
1762 ICE_PTT_UNUSED_ENTRY(482),
1763 ICE_PTT_UNUSED_ENTRY(483),
1764 ICE_PTT_UNUSED_ENTRY(484),
1765 ICE_PTT_UNUSED_ENTRY(485),
1766 ICE_PTT_UNUSED_ENTRY(486),
1767 ICE_PTT_UNUSED_ENTRY(487),
1768 ICE_PTT_UNUSED_ENTRY(488),
1769 ICE_PTT_UNUSED_ENTRY(489),
1770
1771 ICE_PTT_UNUSED_ENTRY(490),
1772 ICE_PTT_UNUSED_ENTRY(491),
1773 ICE_PTT_UNUSED_ENTRY(492),
1774 ICE_PTT_UNUSED_ENTRY(493),
1775 ICE_PTT_UNUSED_ENTRY(494),
1776 ICE_PTT_UNUSED_ENTRY(495),
1777 ICE_PTT_UNUSED_ENTRY(496),
1778 ICE_PTT_UNUSED_ENTRY(497),
1779 ICE_PTT_UNUSED_ENTRY(498),
1780 ICE_PTT_UNUSED_ENTRY(499),
1781
1782 ICE_PTT_UNUSED_ENTRY(500),
1783 ICE_PTT_UNUSED_ENTRY(501),
1784 ICE_PTT_UNUSED_ENTRY(502),
1785 ICE_PTT_UNUSED_ENTRY(503),
1786 ICE_PTT_UNUSED_ENTRY(504),
1787 ICE_PTT_UNUSED_ENTRY(505),
1788 ICE_PTT_UNUSED_ENTRY(506),
1789 ICE_PTT_UNUSED_ENTRY(507),
1790 ICE_PTT_UNUSED_ENTRY(508),
1791 ICE_PTT_UNUSED_ENTRY(509),
1792
1793 ICE_PTT_UNUSED_ENTRY(510),
1794 ICE_PTT_UNUSED_ENTRY(511),
1795 ICE_PTT_UNUSED_ENTRY(512),
1796 ICE_PTT_UNUSED_ENTRY(513),
1797 ICE_PTT_UNUSED_ENTRY(514),
1798 ICE_PTT_UNUSED_ENTRY(515),
1799 ICE_PTT_UNUSED_ENTRY(516),
1800 ICE_PTT_UNUSED_ENTRY(517),
1801 ICE_PTT_UNUSED_ENTRY(518),
1802 ICE_PTT_UNUSED_ENTRY(519),
1803
1804 ICE_PTT_UNUSED_ENTRY(520),
1805 ICE_PTT_UNUSED_ENTRY(521),
1806 ICE_PTT_UNUSED_ENTRY(522),
1807 ICE_PTT_UNUSED_ENTRY(523),
1808 ICE_PTT_UNUSED_ENTRY(524),
1809 ICE_PTT_UNUSED_ENTRY(525),
1810 ICE_PTT_UNUSED_ENTRY(526),
1811 ICE_PTT_UNUSED_ENTRY(527),
1812 ICE_PTT_UNUSED_ENTRY(528),
1813 ICE_PTT_UNUSED_ENTRY(529),
1814
1815 ICE_PTT_UNUSED_ENTRY(530),
1816 ICE_PTT_UNUSED_ENTRY(531),
1817 ICE_PTT_UNUSED_ENTRY(532),
1818 ICE_PTT_UNUSED_ENTRY(533),
1819 ICE_PTT_UNUSED_ENTRY(534),
1820 ICE_PTT_UNUSED_ENTRY(535),
1821 ICE_PTT_UNUSED_ENTRY(536),
1822 ICE_PTT_UNUSED_ENTRY(537),
1823 ICE_PTT_UNUSED_ENTRY(538),
1824 ICE_PTT_UNUSED_ENTRY(539),
1825
1826 ICE_PTT_UNUSED_ENTRY(540),
1827 ICE_PTT_UNUSED_ENTRY(541),
1828 ICE_PTT_UNUSED_ENTRY(542),
1829 ICE_PTT_UNUSED_ENTRY(543),
1830 ICE_PTT_UNUSED_ENTRY(544),
1831 ICE_PTT_UNUSED_ENTRY(545),
1832 ICE_PTT_UNUSED_ENTRY(546),
1833 ICE_PTT_UNUSED_ENTRY(547),
1834 ICE_PTT_UNUSED_ENTRY(548),
1835 ICE_PTT_UNUSED_ENTRY(549),
1836
1837 ICE_PTT_UNUSED_ENTRY(550),
1838 ICE_PTT_UNUSED_ENTRY(551),
1839 ICE_PTT_UNUSED_ENTRY(552),
1840 ICE_PTT_UNUSED_ENTRY(553),
1841 ICE_PTT_UNUSED_ENTRY(554),
1842 ICE_PTT_UNUSED_ENTRY(555),
1843 ICE_PTT_UNUSED_ENTRY(556),
1844 ICE_PTT_UNUSED_ENTRY(557),
1845 ICE_PTT_UNUSED_ENTRY(558),
1846 ICE_PTT_UNUSED_ENTRY(559),
1847
1848 ICE_PTT_UNUSED_ENTRY(560),
1849 ICE_PTT_UNUSED_ENTRY(561),
1850 ICE_PTT_UNUSED_ENTRY(562),
1851 ICE_PTT_UNUSED_ENTRY(563),
1852 ICE_PTT_UNUSED_ENTRY(564),
1853 ICE_PTT_UNUSED_ENTRY(565),
1854 ICE_PTT_UNUSED_ENTRY(566),
1855 ICE_PTT_UNUSED_ENTRY(567),
1856 ICE_PTT_UNUSED_ENTRY(568),
1857 ICE_PTT_UNUSED_ENTRY(569),
1858
1859 ICE_PTT_UNUSED_ENTRY(570),
1860 ICE_PTT_UNUSED_ENTRY(571),
1861 ICE_PTT_UNUSED_ENTRY(572),
1862 ICE_PTT_UNUSED_ENTRY(573),
1863 ICE_PTT_UNUSED_ENTRY(574),
1864 ICE_PTT_UNUSED_ENTRY(575),
1865 ICE_PTT_UNUSED_ENTRY(576),
1866 ICE_PTT_UNUSED_ENTRY(577),
1867 ICE_PTT_UNUSED_ENTRY(578),
1868 ICE_PTT_UNUSED_ENTRY(579),
1869
1870 ICE_PTT_UNUSED_ENTRY(580),
1871 ICE_PTT_UNUSED_ENTRY(581),
1872 ICE_PTT_UNUSED_ENTRY(582),
1873 ICE_PTT_UNUSED_ENTRY(583),
1874 ICE_PTT_UNUSED_ENTRY(584),
1875 ICE_PTT_UNUSED_ENTRY(585),
1876 ICE_PTT_UNUSED_ENTRY(586),
1877 ICE_PTT_UNUSED_ENTRY(587),
1878 ICE_PTT_UNUSED_ENTRY(588),
1879 ICE_PTT_UNUSED_ENTRY(589),
1880
1881 ICE_PTT_UNUSED_ENTRY(590),
1882 ICE_PTT_UNUSED_ENTRY(591),
1883 ICE_PTT_UNUSED_ENTRY(592),
1884 ICE_PTT_UNUSED_ENTRY(593),
1885 ICE_PTT_UNUSED_ENTRY(594),
1886 ICE_PTT_UNUSED_ENTRY(595),
1887 ICE_PTT_UNUSED_ENTRY(596),
1888 ICE_PTT_UNUSED_ENTRY(597),
1889 ICE_PTT_UNUSED_ENTRY(598),
1890 ICE_PTT_UNUSED_ENTRY(599),
1891
1892 ICE_PTT_UNUSED_ENTRY(600),
1893 ICE_PTT_UNUSED_ENTRY(601),
1894 ICE_PTT_UNUSED_ENTRY(602),
1895 ICE_PTT_UNUSED_ENTRY(603),
1896 ICE_PTT_UNUSED_ENTRY(604),
1897 ICE_PTT_UNUSED_ENTRY(605),
1898 ICE_PTT_UNUSED_ENTRY(606),
1899 ICE_PTT_UNUSED_ENTRY(607),
1900 ICE_PTT_UNUSED_ENTRY(608),
1901 ICE_PTT_UNUSED_ENTRY(609),
1902
1903 ICE_PTT_UNUSED_ENTRY(610),
1904 ICE_PTT_UNUSED_ENTRY(611),
1905 ICE_PTT_UNUSED_ENTRY(612),
1906 ICE_PTT_UNUSED_ENTRY(613),
1907 ICE_PTT_UNUSED_ENTRY(614),
1908 ICE_PTT_UNUSED_ENTRY(615),
1909 ICE_PTT_UNUSED_ENTRY(616),
1910 ICE_PTT_UNUSED_ENTRY(617),
1911 ICE_PTT_UNUSED_ENTRY(618),
1912 ICE_PTT_UNUSED_ENTRY(619),
1913
1914 ICE_PTT_UNUSED_ENTRY(620),
1915 ICE_PTT_UNUSED_ENTRY(621),
1916 ICE_PTT_UNUSED_ENTRY(622),
1917 ICE_PTT_UNUSED_ENTRY(623),
1918 ICE_PTT_UNUSED_ENTRY(624),
1919 ICE_PTT_UNUSED_ENTRY(625),
1920 ICE_PTT_UNUSED_ENTRY(626),
1921 ICE_PTT_UNUSED_ENTRY(627),
1922 ICE_PTT_UNUSED_ENTRY(628),
1923 ICE_PTT_UNUSED_ENTRY(629),
1924
1925 ICE_PTT_UNUSED_ENTRY(630),
1926 ICE_PTT_UNUSED_ENTRY(631),
1927 ICE_PTT_UNUSED_ENTRY(632),
1928 ICE_PTT_UNUSED_ENTRY(633),
1929 ICE_PTT_UNUSED_ENTRY(634),
1930 ICE_PTT_UNUSED_ENTRY(635),
1931 ICE_PTT_UNUSED_ENTRY(636),
1932 ICE_PTT_UNUSED_ENTRY(637),
1933 ICE_PTT_UNUSED_ENTRY(638),
1934 ICE_PTT_UNUSED_ENTRY(639),
1935
1936 ICE_PTT_UNUSED_ENTRY(640),
1937 ICE_PTT_UNUSED_ENTRY(641),
1938 ICE_PTT_UNUSED_ENTRY(642),
1939 ICE_PTT_UNUSED_ENTRY(643),
1940 ICE_PTT_UNUSED_ENTRY(644),
1941 ICE_PTT_UNUSED_ENTRY(645),
1942 ICE_PTT_UNUSED_ENTRY(646),
1943 ICE_PTT_UNUSED_ENTRY(647),
1944 ICE_PTT_UNUSED_ENTRY(648),
1945 ICE_PTT_UNUSED_ENTRY(649),
1946
1947 ICE_PTT_UNUSED_ENTRY(650),
1948 ICE_PTT_UNUSED_ENTRY(651),
1949 ICE_PTT_UNUSED_ENTRY(652),
1950 ICE_PTT_UNUSED_ENTRY(653),
1951 ICE_PTT_UNUSED_ENTRY(654),
1952 ICE_PTT_UNUSED_ENTRY(655),
1953 ICE_PTT_UNUSED_ENTRY(656),
1954 ICE_PTT_UNUSED_ENTRY(657),
1955 ICE_PTT_UNUSED_ENTRY(658),
1956 ICE_PTT_UNUSED_ENTRY(659),
1957
1958 ICE_PTT_UNUSED_ENTRY(660),
1959 ICE_PTT_UNUSED_ENTRY(661),
1960 ICE_PTT_UNUSED_ENTRY(662),
1961 ICE_PTT_UNUSED_ENTRY(663),
1962 ICE_PTT_UNUSED_ENTRY(664),
1963 ICE_PTT_UNUSED_ENTRY(665),
1964 ICE_PTT_UNUSED_ENTRY(666),
1965 ICE_PTT_UNUSED_ENTRY(667),
1966 ICE_PTT_UNUSED_ENTRY(668),
1967 ICE_PTT_UNUSED_ENTRY(669),
1968
1969 ICE_PTT_UNUSED_ENTRY(670),
1970 ICE_PTT_UNUSED_ENTRY(671),
1971 ICE_PTT_UNUSED_ENTRY(672),
1972 ICE_PTT_UNUSED_ENTRY(673),
1973 ICE_PTT_UNUSED_ENTRY(674),
1974 ICE_PTT_UNUSED_ENTRY(675),
1975 ICE_PTT_UNUSED_ENTRY(676),
1976 ICE_PTT_UNUSED_ENTRY(677),
1977 ICE_PTT_UNUSED_ENTRY(678),
1978 ICE_PTT_UNUSED_ENTRY(679),
1979
1980 ICE_PTT_UNUSED_ENTRY(680),
1981 ICE_PTT_UNUSED_ENTRY(681),
1982 ICE_PTT_UNUSED_ENTRY(682),
1983 ICE_PTT_UNUSED_ENTRY(683),
1984 ICE_PTT_UNUSED_ENTRY(684),
1985 ICE_PTT_UNUSED_ENTRY(685),
1986 ICE_PTT_UNUSED_ENTRY(686),
1987 ICE_PTT_UNUSED_ENTRY(687),
1988 ICE_PTT_UNUSED_ENTRY(688),
1989 ICE_PTT_UNUSED_ENTRY(689),
1990
1991 ICE_PTT_UNUSED_ENTRY(690),
1992 ICE_PTT_UNUSED_ENTRY(691),
1993 ICE_PTT_UNUSED_ENTRY(692),
1994 ICE_PTT_UNUSED_ENTRY(693),
1995 ICE_PTT_UNUSED_ENTRY(694),
1996 ICE_PTT_UNUSED_ENTRY(695),
1997 ICE_PTT_UNUSED_ENTRY(696),
1998 ICE_PTT_UNUSED_ENTRY(697),
1999 ICE_PTT_UNUSED_ENTRY(698),
2000 ICE_PTT_UNUSED_ENTRY(699),
2001
2002 ICE_PTT_UNUSED_ENTRY(700),
2003 ICE_PTT_UNUSED_ENTRY(701),
2004 ICE_PTT_UNUSED_ENTRY(702),
2005 ICE_PTT_UNUSED_ENTRY(703),
2006 ICE_PTT_UNUSED_ENTRY(704),
2007 ICE_PTT_UNUSED_ENTRY(705),
2008 ICE_PTT_UNUSED_ENTRY(706),
2009 ICE_PTT_UNUSED_ENTRY(707),
2010 ICE_PTT_UNUSED_ENTRY(708),
2011 ICE_PTT_UNUSED_ENTRY(709),
2012
2013 ICE_PTT_UNUSED_ENTRY(710),
2014 ICE_PTT_UNUSED_ENTRY(711),
2015 ICE_PTT_UNUSED_ENTRY(712),
2016 ICE_PTT_UNUSED_ENTRY(713),
2017 ICE_PTT_UNUSED_ENTRY(714),
2018 ICE_PTT_UNUSED_ENTRY(715),
2019 ICE_PTT_UNUSED_ENTRY(716),
2020 ICE_PTT_UNUSED_ENTRY(717),
2021 ICE_PTT_UNUSED_ENTRY(718),
2022 ICE_PTT_UNUSED_ENTRY(719),
2023
2024 ICE_PTT_UNUSED_ENTRY(720),
2025 ICE_PTT_UNUSED_ENTRY(721),
2026 ICE_PTT_UNUSED_ENTRY(722),
2027 ICE_PTT_UNUSED_ENTRY(723),
2028 ICE_PTT_UNUSED_ENTRY(724),
2029 ICE_PTT_UNUSED_ENTRY(725),
2030 ICE_PTT_UNUSED_ENTRY(726),
2031 ICE_PTT_UNUSED_ENTRY(727),
2032 ICE_PTT_UNUSED_ENTRY(728),
2033 ICE_PTT_UNUSED_ENTRY(729),
2034
2035 ICE_PTT_UNUSED_ENTRY(730),
2036 ICE_PTT_UNUSED_ENTRY(731),
2037 ICE_PTT_UNUSED_ENTRY(732),
2038 ICE_PTT_UNUSED_ENTRY(733),
2039 ICE_PTT_UNUSED_ENTRY(734),
2040 ICE_PTT_UNUSED_ENTRY(735),
2041 ICE_PTT_UNUSED_ENTRY(736),
2042 ICE_PTT_UNUSED_ENTRY(737),
2043 ICE_PTT_UNUSED_ENTRY(738),
2044 ICE_PTT_UNUSED_ENTRY(739),
2045
2046 ICE_PTT_UNUSED_ENTRY(740),
2047 ICE_PTT_UNUSED_ENTRY(741),
2048 ICE_PTT_UNUSED_ENTRY(742),
2049 ICE_PTT_UNUSED_ENTRY(743),
2050 ICE_PTT_UNUSED_ENTRY(744),
2051 ICE_PTT_UNUSED_ENTRY(745),
2052 ICE_PTT_UNUSED_ENTRY(746),
2053 ICE_PTT_UNUSED_ENTRY(747),
2054 ICE_PTT_UNUSED_ENTRY(748),
2055 ICE_PTT_UNUSED_ENTRY(749),
2056
2057 ICE_PTT_UNUSED_ENTRY(750),
2058 ICE_PTT_UNUSED_ENTRY(751),
2059 ICE_PTT_UNUSED_ENTRY(752),
2060 ICE_PTT_UNUSED_ENTRY(753),
2061 ICE_PTT_UNUSED_ENTRY(754),
2062 ICE_PTT_UNUSED_ENTRY(755),
2063 ICE_PTT_UNUSED_ENTRY(756),
2064 ICE_PTT_UNUSED_ENTRY(757),
2065 ICE_PTT_UNUSED_ENTRY(758),
2066 ICE_PTT_UNUSED_ENTRY(759),
2067
2068 ICE_PTT_UNUSED_ENTRY(760),
2069 ICE_PTT_UNUSED_ENTRY(761),
2070 ICE_PTT_UNUSED_ENTRY(762),
2071 ICE_PTT_UNUSED_ENTRY(763),
2072 ICE_PTT_UNUSED_ENTRY(764),
2073 ICE_PTT_UNUSED_ENTRY(765),
2074 ICE_PTT_UNUSED_ENTRY(766),
2075 ICE_PTT_UNUSED_ENTRY(767),
2076 ICE_PTT_UNUSED_ENTRY(768),
2077 ICE_PTT_UNUSED_ENTRY(769),
2078
2079 ICE_PTT_UNUSED_ENTRY(770),
2080 ICE_PTT_UNUSED_ENTRY(771),
2081 ICE_PTT_UNUSED_ENTRY(772),
2082 ICE_PTT_UNUSED_ENTRY(773),
2083 ICE_PTT_UNUSED_ENTRY(774),
2084 ICE_PTT_UNUSED_ENTRY(775),
2085 ICE_PTT_UNUSED_ENTRY(776),
2086 ICE_PTT_UNUSED_ENTRY(777),
2087 ICE_PTT_UNUSED_ENTRY(778),
2088 ICE_PTT_UNUSED_ENTRY(779),
2089
2090 ICE_PTT_UNUSED_ENTRY(780),
2091 ICE_PTT_UNUSED_ENTRY(781),
2092 ICE_PTT_UNUSED_ENTRY(782),
2093 ICE_PTT_UNUSED_ENTRY(783),
2094 ICE_PTT_UNUSED_ENTRY(784),
2095 ICE_PTT_UNUSED_ENTRY(785),
2096 ICE_PTT_UNUSED_ENTRY(786),
2097 ICE_PTT_UNUSED_ENTRY(787),
2098 ICE_PTT_UNUSED_ENTRY(788),
2099 ICE_PTT_UNUSED_ENTRY(789),
2100
2101 ICE_PTT_UNUSED_ENTRY(790),
2102 ICE_PTT_UNUSED_ENTRY(791),
2103 ICE_PTT_UNUSED_ENTRY(792),
2104 ICE_PTT_UNUSED_ENTRY(793),
2105 ICE_PTT_UNUSED_ENTRY(794),
2106 ICE_PTT_UNUSED_ENTRY(795),
2107 ICE_PTT_UNUSED_ENTRY(796),
2108 ICE_PTT_UNUSED_ENTRY(797),
2109 ICE_PTT_UNUSED_ENTRY(798),
2110 ICE_PTT_UNUSED_ENTRY(799),
2111
2112 ICE_PTT_UNUSED_ENTRY(800),
2113 ICE_PTT_UNUSED_ENTRY(801),
2114 ICE_PTT_UNUSED_ENTRY(802),
2115 ICE_PTT_UNUSED_ENTRY(803),
2116 ICE_PTT_UNUSED_ENTRY(804),
2117 ICE_PTT_UNUSED_ENTRY(805),
2118 ICE_PTT_UNUSED_ENTRY(806),
2119 ICE_PTT_UNUSED_ENTRY(807),
2120 ICE_PTT_UNUSED_ENTRY(808),
2121 ICE_PTT_UNUSED_ENTRY(809),
2122
2123 ICE_PTT_UNUSED_ENTRY(810),
2124 ICE_PTT_UNUSED_ENTRY(811),
2125 ICE_PTT_UNUSED_ENTRY(812),
2126 ICE_PTT_UNUSED_ENTRY(813),
2127 ICE_PTT_UNUSED_ENTRY(814),
2128 ICE_PTT_UNUSED_ENTRY(815),
2129 ICE_PTT_UNUSED_ENTRY(816),
2130 ICE_PTT_UNUSED_ENTRY(817),
2131 ICE_PTT_UNUSED_ENTRY(818),
2132 ICE_PTT_UNUSED_ENTRY(819),
2133
2134 ICE_PTT_UNUSED_ENTRY(820),
2135 ICE_PTT_UNUSED_ENTRY(821),
2136 ICE_PTT_UNUSED_ENTRY(822),
2137 ICE_PTT_UNUSED_ENTRY(823),
2138 ICE_PTT_UNUSED_ENTRY(824),
2139 ICE_PTT_UNUSED_ENTRY(825),
2140 ICE_PTT_UNUSED_ENTRY(826),
2141 ICE_PTT_UNUSED_ENTRY(827),
2142 ICE_PTT_UNUSED_ENTRY(828),
2143 ICE_PTT_UNUSED_ENTRY(829),
2144
2145 ICE_PTT_UNUSED_ENTRY(830),
2146 ICE_PTT_UNUSED_ENTRY(831),
2147 ICE_PTT_UNUSED_ENTRY(832),
2148 ICE_PTT_UNUSED_ENTRY(833),
2149 ICE_PTT_UNUSED_ENTRY(834),
2150 ICE_PTT_UNUSED_ENTRY(835),
2151 ICE_PTT_UNUSED_ENTRY(836),
2152 ICE_PTT_UNUSED_ENTRY(837),
2153 ICE_PTT_UNUSED_ENTRY(838),
2154 ICE_PTT_UNUSED_ENTRY(839),
2155
2156 ICE_PTT_UNUSED_ENTRY(840),
2157 ICE_PTT_UNUSED_ENTRY(841),
2158 ICE_PTT_UNUSED_ENTRY(842),
2159 ICE_PTT_UNUSED_ENTRY(843),
2160 ICE_PTT_UNUSED_ENTRY(844),
2161 ICE_PTT_UNUSED_ENTRY(845),
2162 ICE_PTT_UNUSED_ENTRY(846),
2163 ICE_PTT_UNUSED_ENTRY(847),
2164 ICE_PTT_UNUSED_ENTRY(848),
2165 ICE_PTT_UNUSED_ENTRY(849),
2166
2167 ICE_PTT_UNUSED_ENTRY(850),
2168 ICE_PTT_UNUSED_ENTRY(851),
2169 ICE_PTT_UNUSED_ENTRY(852),
2170 ICE_PTT_UNUSED_ENTRY(853),
2171 ICE_PTT_UNUSED_ENTRY(854),
2172 ICE_PTT_UNUSED_ENTRY(855),
2173 ICE_PTT_UNUSED_ENTRY(856),
2174 ICE_PTT_UNUSED_ENTRY(857),
2175 ICE_PTT_UNUSED_ENTRY(858),
2176 ICE_PTT_UNUSED_ENTRY(859),
2177
2178 ICE_PTT_UNUSED_ENTRY(860),
2179 ICE_PTT_UNUSED_ENTRY(861),
2180 ICE_PTT_UNUSED_ENTRY(862),
2181 ICE_PTT_UNUSED_ENTRY(863),
2182 ICE_PTT_UNUSED_ENTRY(864),
2183 ICE_PTT_UNUSED_ENTRY(865),
2184 ICE_PTT_UNUSED_ENTRY(866),
2185 ICE_PTT_UNUSED_ENTRY(867),
2186 ICE_PTT_UNUSED_ENTRY(868),
2187 ICE_PTT_UNUSED_ENTRY(869),
2188
2189 ICE_PTT_UNUSED_ENTRY(870),
2190 ICE_PTT_UNUSED_ENTRY(871),
2191 ICE_PTT_UNUSED_ENTRY(872),
2192 ICE_PTT_UNUSED_ENTRY(873),
2193 ICE_PTT_UNUSED_ENTRY(874),
2194 ICE_PTT_UNUSED_ENTRY(875),
2195 ICE_PTT_UNUSED_ENTRY(876),
2196 ICE_PTT_UNUSED_ENTRY(877),
2197 ICE_PTT_UNUSED_ENTRY(878),
2198 ICE_PTT_UNUSED_ENTRY(879),
2199
2200 ICE_PTT_UNUSED_ENTRY(880),
2201 ICE_PTT_UNUSED_ENTRY(881),
2202 ICE_PTT_UNUSED_ENTRY(882),
2203 ICE_PTT_UNUSED_ENTRY(883),
2204 ICE_PTT_UNUSED_ENTRY(884),
2205 ICE_PTT_UNUSED_ENTRY(885),
2206 ICE_PTT_UNUSED_ENTRY(886),
2207 ICE_PTT_UNUSED_ENTRY(887),
2208 ICE_PTT_UNUSED_ENTRY(888),
2209 ICE_PTT_UNUSED_ENTRY(889),
2210
2211 ICE_PTT_UNUSED_ENTRY(890),
2212 ICE_PTT_UNUSED_ENTRY(891),
2213 ICE_PTT_UNUSED_ENTRY(892),
2214 ICE_PTT_UNUSED_ENTRY(893),
2215 ICE_PTT_UNUSED_ENTRY(894),
2216 ICE_PTT_UNUSED_ENTRY(895),
2217 ICE_PTT_UNUSED_ENTRY(896),
2218 ICE_PTT_UNUSED_ENTRY(897),
2219 ICE_PTT_UNUSED_ENTRY(898),
2220 ICE_PTT_UNUSED_ENTRY(899),
2221
2222 ICE_PTT_UNUSED_ENTRY(900),
2223 ICE_PTT_UNUSED_ENTRY(901),
2224 ICE_PTT_UNUSED_ENTRY(902),
2225 ICE_PTT_UNUSED_ENTRY(903),
2226 ICE_PTT_UNUSED_ENTRY(904),
2227 ICE_PTT_UNUSED_ENTRY(905),
2228 ICE_PTT_UNUSED_ENTRY(906),
2229 ICE_PTT_UNUSED_ENTRY(907),
2230 ICE_PTT_UNUSED_ENTRY(908),
2231 ICE_PTT_UNUSED_ENTRY(909),
2232
2233 ICE_PTT_UNUSED_ENTRY(910),
2234 ICE_PTT_UNUSED_ENTRY(911),
2235 ICE_PTT_UNUSED_ENTRY(912),
2236 ICE_PTT_UNUSED_ENTRY(913),
2237 ICE_PTT_UNUSED_ENTRY(914),
2238 ICE_PTT_UNUSED_ENTRY(915),
2239 ICE_PTT_UNUSED_ENTRY(916),
2240 ICE_PTT_UNUSED_ENTRY(917),
2241 ICE_PTT_UNUSED_ENTRY(918),
2242 ICE_PTT_UNUSED_ENTRY(919),
2243
2244 ICE_PTT_UNUSED_ENTRY(920),
2245 ICE_PTT_UNUSED_ENTRY(921),
2246 ICE_PTT_UNUSED_ENTRY(922),
2247 ICE_PTT_UNUSED_ENTRY(923),
2248 ICE_PTT_UNUSED_ENTRY(924),
2249 ICE_PTT_UNUSED_ENTRY(925),
2250 ICE_PTT_UNUSED_ENTRY(926),
2251 ICE_PTT_UNUSED_ENTRY(927),
2252 ICE_PTT_UNUSED_ENTRY(928),
2253 ICE_PTT_UNUSED_ENTRY(929),
2254
2255 ICE_PTT_UNUSED_ENTRY(930),
2256 ICE_PTT_UNUSED_ENTRY(931),
2257 ICE_PTT_UNUSED_ENTRY(932),
2258 ICE_PTT_UNUSED_ENTRY(933),
2259 ICE_PTT_UNUSED_ENTRY(934),
2260 ICE_PTT_UNUSED_ENTRY(935),
2261 ICE_PTT_UNUSED_ENTRY(936),
2262 ICE_PTT_UNUSED_ENTRY(937),
2263 ICE_PTT_UNUSED_ENTRY(938),
2264 ICE_PTT_UNUSED_ENTRY(939),
2265
2266 ICE_PTT_UNUSED_ENTRY(940),
2267 ICE_PTT_UNUSED_ENTRY(941),
2268 ICE_PTT_UNUSED_ENTRY(942),
2269 ICE_PTT_UNUSED_ENTRY(943),
2270 ICE_PTT_UNUSED_ENTRY(944),
2271 ICE_PTT_UNUSED_ENTRY(945),
2272 ICE_PTT_UNUSED_ENTRY(946),
2273 ICE_PTT_UNUSED_ENTRY(947),
2274 ICE_PTT_UNUSED_ENTRY(948),
2275 ICE_PTT_UNUSED_ENTRY(949),
2276
2277 ICE_PTT_UNUSED_ENTRY(950),
2278 ICE_PTT_UNUSED_ENTRY(951),
2279 ICE_PTT_UNUSED_ENTRY(952),
2280 ICE_PTT_UNUSED_ENTRY(953),
2281 ICE_PTT_UNUSED_ENTRY(954),
2282 ICE_PTT_UNUSED_ENTRY(955),
2283 ICE_PTT_UNUSED_ENTRY(956),
2284 ICE_PTT_UNUSED_ENTRY(957),
2285 ICE_PTT_UNUSED_ENTRY(958),
2286 ICE_PTT_UNUSED_ENTRY(959),
2287
2288 ICE_PTT_UNUSED_ENTRY(960),
2289 ICE_PTT_UNUSED_ENTRY(961),
2290 ICE_PTT_UNUSED_ENTRY(962),
2291 ICE_PTT_UNUSED_ENTRY(963),
2292 ICE_PTT_UNUSED_ENTRY(964),
2293 ICE_PTT_UNUSED_ENTRY(965),
2294 ICE_PTT_UNUSED_ENTRY(966),
2295 ICE_PTT_UNUSED_ENTRY(967),
2296 ICE_PTT_UNUSED_ENTRY(968),
2297 ICE_PTT_UNUSED_ENTRY(969),
2298
2299 ICE_PTT_UNUSED_ENTRY(970),
2300 ICE_PTT_UNUSED_ENTRY(971),
2301 ICE_PTT_UNUSED_ENTRY(972),
2302 ICE_PTT_UNUSED_ENTRY(973),
2303 ICE_PTT_UNUSED_ENTRY(974),
2304 ICE_PTT_UNUSED_ENTRY(975),
2305 ICE_PTT_UNUSED_ENTRY(976),
2306 ICE_PTT_UNUSED_ENTRY(977),
2307 ICE_PTT_UNUSED_ENTRY(978),
2308 ICE_PTT_UNUSED_ENTRY(979),
2309
2310 ICE_PTT_UNUSED_ENTRY(980),
2311 ICE_PTT_UNUSED_ENTRY(981),
2312 ICE_PTT_UNUSED_ENTRY(982),
2313 ICE_PTT_UNUSED_ENTRY(983),
2314 ICE_PTT_UNUSED_ENTRY(984),
2315 ICE_PTT_UNUSED_ENTRY(985),
2316 ICE_PTT_UNUSED_ENTRY(986),
2317 ICE_PTT_UNUSED_ENTRY(987),
2318 ICE_PTT_UNUSED_ENTRY(988),
2319 ICE_PTT_UNUSED_ENTRY(989),
2320
2321 ICE_PTT_UNUSED_ENTRY(990),
2322 ICE_PTT_UNUSED_ENTRY(991),
2323 ICE_PTT_UNUSED_ENTRY(992),
2324 ICE_PTT_UNUSED_ENTRY(993),
2325 ICE_PTT_UNUSED_ENTRY(994),
2326 ICE_PTT_UNUSED_ENTRY(995),
2327 ICE_PTT_UNUSED_ENTRY(996),
2328 ICE_PTT_UNUSED_ENTRY(997),
2329 ICE_PTT_UNUSED_ENTRY(998),
2330 ICE_PTT_UNUSED_ENTRY(999),
2331
2332 ICE_PTT_UNUSED_ENTRY(1000),
2333 ICE_PTT_UNUSED_ENTRY(1001),
2334 ICE_PTT_UNUSED_ENTRY(1002),
2335 ICE_PTT_UNUSED_ENTRY(1003),
2336 ICE_PTT_UNUSED_ENTRY(1004),
2337 ICE_PTT_UNUSED_ENTRY(1005),
2338 ICE_PTT_UNUSED_ENTRY(1006),
2339 ICE_PTT_UNUSED_ENTRY(1007),
2340 ICE_PTT_UNUSED_ENTRY(1008),
2341 ICE_PTT_UNUSED_ENTRY(1009),
2342
2343 ICE_PTT_UNUSED_ENTRY(1010),
2344 ICE_PTT_UNUSED_ENTRY(1011),
2345 ICE_PTT_UNUSED_ENTRY(1012),
2346 ICE_PTT_UNUSED_ENTRY(1013),
2347 ICE_PTT_UNUSED_ENTRY(1014),
2348 ICE_PTT_UNUSED_ENTRY(1015),
2349 ICE_PTT_UNUSED_ENTRY(1016),
2350 ICE_PTT_UNUSED_ENTRY(1017),
2351 ICE_PTT_UNUSED_ENTRY(1018),
2352 ICE_PTT_UNUSED_ENTRY(1019),
2353
2354 ICE_PTT_UNUSED_ENTRY(1020),
2355 ICE_PTT_UNUSED_ENTRY(1021),
2356 ICE_PTT_UNUSED_ENTRY(1022),
2357 ICE_PTT_UNUSED_ENTRY(1023)
2358 };
2359
ice_decode_rx_desc_ptype(u16 ptype)2360 static inline struct ice_rx_ptype_decoded ice_decode_rx_desc_ptype(u16 ptype)
2361 {
2362 return ice_ptype_lkup[ptype];
2363 }
2364
2365 #define ICE_LINK_SPEED_UNKNOWN 0
2366 #define ICE_LINK_SPEED_10MBPS 10
2367 #define ICE_LINK_SPEED_100MBPS 100
2368 #define ICE_LINK_SPEED_1000MBPS 1000
2369 #define ICE_LINK_SPEED_2500MBPS 2500
2370 #define ICE_LINK_SPEED_5000MBPS 5000
2371 #define ICE_LINK_SPEED_10000MBPS 10000
2372 #define ICE_LINK_SPEED_20000MBPS 20000
2373 #define ICE_LINK_SPEED_25000MBPS 25000
2374 #define ICE_LINK_SPEED_40000MBPS 40000
2375 #define ICE_LINK_SPEED_50000MBPS 50000
2376 #define ICE_LINK_SPEED_100000MBPS 100000
2377 #define ICE_LINK_SPEED_200000MBPS 200000
2378 #endif /* _ICE_LAN_TX_RX_H_ */
2379