2 * Copyright (c) 2017-2018 Cavium, Inc.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
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.
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
31 #ifndef __ECORE_HSI_ETH__
32 #define __ECORE_HSI_ETH__
33 /************************************************************************/
34 /* Add include to common eth target for both eCore and protocol driver */
35 /************************************************************************/
36 #include "eth_common.h"
39 * The eth storm context for the Tstorm
41 struct tstorm_eth_conn_st_ctx
47 * The eth storm context for the Pstorm
49 struct pstorm_eth_conn_st_ctx
55 * The eth storm context for the Xstorm
57 struct xstorm_eth_conn_st_ctx
62 struct e4_xstorm_eth_conn_ag_ctx
64 u8 reserved0 /* cdu_validation */;
65 u8 eth_state /* state */;
67 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
68 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
69 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED1_MASK 0x1 /* exist_in_qm1 */
70 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED1_SHIFT 1
71 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED2_MASK 0x1 /* exist_in_qm2 */
72 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED2_SHIFT 2
73 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */
74 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
75 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */
76 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED3_SHIFT 4
77 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED4_MASK 0x1 /* cf_array_active */
78 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED4_SHIFT 5
79 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */
80 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED5_SHIFT 6
81 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */
82 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED6_SHIFT 7
84 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */
85 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED7_SHIFT 0
86 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */
87 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED8_SHIFT 1
88 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */
89 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED9_SHIFT 2
90 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */
91 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT11_SHIFT 3
92 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */
93 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT12_SHIFT 4
94 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */
95 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT13_SHIFT 5
96 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */
97 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
98 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */
99 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
101 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */
102 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 0
103 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */
104 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 2
105 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
106 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 4
107 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
108 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 6
110 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */
111 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 0
112 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */
113 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 2
114 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */
115 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 4
116 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */
117 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 6
119 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */
120 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 0
121 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */
122 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 2
123 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */
124 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 4
125 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */
126 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11_SHIFT 6
128 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */
129 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12_SHIFT 0
130 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */
131 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13_SHIFT 2
132 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */
133 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14_SHIFT 4
134 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */
135 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15_SHIFT 6
137 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */
138 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
139 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3 /* cf_array_cf */
140 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
141 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */
142 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_SHIFT 4
143 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */
144 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
146 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */
147 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
148 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */
149 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED10_SHIFT 2
150 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */
151 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_SHIFT 4
152 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
153 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 6
154 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
155 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 7
157 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
158 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 0
159 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
160 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 1
161 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */
162 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 2
163 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */
164 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 3
165 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */
166 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 4
167 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */
168 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 5
169 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */
170 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 6
171 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */
172 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 7
174 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */
175 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 0
176 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */
177 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11EN_SHIFT 1
178 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */
179 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12EN_SHIFT 2
180 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */
181 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13EN_SHIFT 3
182 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */
183 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14EN_SHIFT 4
184 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */
185 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15EN_SHIFT 5
186 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */
187 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
188 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1 /* cf_array_cf_en */
189 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
191 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */
192 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
193 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */
194 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
195 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */
196 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
197 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */
198 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED11_SHIFT 3
199 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */
200 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
201 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */
202 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
203 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */
204 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED12_SHIFT 6
205 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */
206 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED13_SHIFT 7
208 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */
209 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED14_SHIFT 0
210 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */
211 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED15_SHIFT 1
212 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */
213 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
214 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
215 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 3
216 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */
217 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 4
218 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
219 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 5
220 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */
221 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
222 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */
223 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE9EN_SHIFT 7
225 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE10EN_MASK 0x1 /* rule10en */
226 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE10EN_SHIFT 0
227 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */
228 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE11EN_SHIFT 1
229 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */
230 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
231 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */
232 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
233 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE14EN_MASK 0x1 /* rule14en */
234 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE14EN_SHIFT 4
235 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */
236 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE15EN_SHIFT 5
237 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */
238 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE16EN_SHIFT 6
239 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */
240 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE17EN_SHIFT 7
242 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE18EN_MASK 0x1 /* rule18en */
243 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE18EN_SHIFT 0
244 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE19EN_MASK 0x1 /* rule19en */
245 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE19EN_SHIFT 1
246 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 /* rule20en */
247 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
248 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 /* rule21en */
249 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
250 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */
251 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
252 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 /* rule23en */
253 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
254 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */
255 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
256 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */
257 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
259 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */
260 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
261 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */
262 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
263 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */
264 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
265 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */
266 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
267 #define E4_XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */
268 #define E4_XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
269 #define E4_XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */
270 #define E4_XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
271 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_MASK 0x3 /* cf23 */
272 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
273 u8 edpm_event_id /* byte2 */;
274 __le16 physical_q0 /* physical_q0 */;
275 __le16 e5_reserved1 /* physical_q1 */;
276 __le16 edpm_num_bds /* physical_q2 */;
277 __le16 tx_bd_cons /* word3 */;
278 __le16 tx_bd_prod /* word4 */;
279 __le16 tx_class /* word5 */;
280 __le16 conn_dpi /* conn_dpi */;
281 u8 byte3 /* byte3 */;
282 u8 byte4 /* byte4 */;
283 u8 byte5 /* byte5 */;
284 u8 byte6 /* byte6 */;
285 __le32 reg0 /* reg0 */;
286 __le32 reg1 /* reg1 */;
287 __le32 reg2 /* reg2 */;
288 __le32 reg3 /* reg3 */;
289 __le32 reg4 /* reg4 */;
290 __le32 reg5 /* cf_array0 */;
291 __le32 reg6 /* cf_array1 */;
292 __le16 word7 /* word7 */;
293 __le16 word8 /* word8 */;
294 __le16 word9 /* word9 */;
295 __le16 word10 /* word10 */;
296 __le32 reg7 /* reg7 */;
297 __le32 reg8 /* reg8 */;
298 __le32 reg9 /* reg9 */;
299 u8 byte7 /* byte7 */;
300 u8 byte8 /* byte8 */;
301 u8 byte9 /* byte9 */;
302 u8 byte10 /* byte10 */;
303 u8 byte11 /* byte11 */;
304 u8 byte12 /* byte12 */;
305 u8 byte13 /* byte13 */;
306 u8 byte14 /* byte14 */;
307 u8 byte15 /* byte15 */;
308 u8 e5_reserved /* e5_reserved */;
309 __le16 word11 /* word11 */;
310 __le32 reg10 /* reg10 */;
311 __le32 reg11 /* reg11 */;
312 __le32 reg12 /* reg12 */;
313 __le32 reg13 /* reg13 */;
314 __le32 reg14 /* reg14 */;
315 __le32 reg15 /* reg15 */;
316 __le32 reg16 /* reg16 */;
317 __le32 reg17 /* reg17 */;
318 __le32 reg18 /* reg18 */;
319 __le32 reg19 /* reg19 */;
320 __le16 word12 /* word12 */;
321 __le16 word13 /* word13 */;
322 __le16 word14 /* word14 */;
323 __le16 word15 /* word15 */;
327 * The eth storm context for the Ystorm
329 struct ystorm_eth_conn_st_ctx
334 struct e4_ystorm_eth_conn_ag_ctx
336 u8 byte0 /* cdu_validation */;
337 u8 state /* state */;
339 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */
340 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
341 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
342 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
343 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 /* cf0 */
344 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 2
345 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_MASK 0x3 /* cf1 */
346 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_SHIFT 4
347 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */
348 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
350 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 /* cf0en */
351 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 0
352 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf1en */
353 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_SHIFT 1
354 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
355 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
356 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
357 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
358 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
359 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
360 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
361 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
362 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
363 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
364 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
365 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
366 u8 tx_q0_int_coallecing_timeset /* byte2 */;
367 u8 byte3 /* byte3 */;
368 __le16 word0 /* word0 */;
369 __le32 terminate_spqe /* reg0 */;
370 __le32 reg1 /* reg1 */;
371 __le16 tx_bd_cons_upd /* word1 */;
372 __le16 word2 /* word2 */;
373 __le16 word3 /* word3 */;
374 __le16 word4 /* word4 */;
375 __le32 reg2 /* reg2 */;
376 __le32 reg3 /* reg3 */;
379 struct e4_tstorm_eth_conn_ag_ctx
381 u8 byte0 /* cdu_validation */;
382 u8 byte1 /* state */;
384 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */
385 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
386 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
387 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
388 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT2_MASK 0x1 /* bit2 */
389 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT2_SHIFT 2
390 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT3_MASK 0x1 /* bit3 */
391 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT3_SHIFT 3
392 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */
393 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT4_SHIFT 4
394 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT5_MASK 0x1 /* bit5 */
395 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT5_SHIFT 5
396 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */
397 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 6
399 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */
400 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 0
401 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
402 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 2
403 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
404 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 4
405 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */
406 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 6
408 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */
409 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 0
410 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */
411 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 2
412 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */
413 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 4
414 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */
415 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 6
417 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */
418 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 0
419 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */
420 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 2
421 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
422 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 4
423 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
424 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 5
425 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
426 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 6
427 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
428 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 7
430 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */
431 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 0
432 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */
433 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 1
434 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */
435 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 2
436 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */
437 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 3
438 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */
439 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 4
440 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */
441 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 5
442 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */
443 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 6
444 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
445 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
447 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
448 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
449 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
450 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
451 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
452 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
453 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
454 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
455 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
456 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
457 #define E4_TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_MASK 0x1 /* rule6en */
458 #define E4_TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_SHIFT 5
459 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
460 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
461 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */
462 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
463 __le32 reg0 /* reg0 */;
464 __le32 reg1 /* reg1 */;
465 __le32 reg2 /* reg2 */;
466 __le32 reg3 /* reg3 */;
467 __le32 reg4 /* reg4 */;
468 __le32 reg5 /* reg5 */;
469 __le32 reg6 /* reg6 */;
470 __le32 reg7 /* reg7 */;
471 __le32 reg8 /* reg8 */;
472 u8 byte2 /* byte2 */;
473 u8 byte3 /* byte3 */;
474 __le16 rx_bd_cons /* word0 */;
475 u8 byte4 /* byte4 */;
476 u8 byte5 /* byte5 */;
477 __le16 rx_bd_prod /* word1 */;
478 __le16 word2 /* conn_dpi */;
479 __le16 word3 /* word3 */;
480 __le32 reg9 /* reg9 */;
481 __le32 reg10 /* reg10 */;
484 struct e4_ustorm_eth_conn_ag_ctx
486 u8 byte0 /* cdu_validation */;
487 u8 byte1 /* state */;
489 #define E4_USTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */
490 #define E4_USTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
491 #define E4_USTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
492 #define E4_USTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
493 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_MASK 0x3 /* timer0cf */
494 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_SHIFT 2
495 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_MASK 0x3 /* timer1cf */
496 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_SHIFT 4
497 #define E4_USTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
498 #define E4_USTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
500 #define E4_USTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
501 #define E4_USTORM_ETH_CONN_AG_CTX_CF3_SHIFT 0
502 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_MASK 0x3 /* cf4 */
503 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_SHIFT 2
504 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_MASK 0x3 /* cf5 */
505 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_SHIFT 4
506 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 /* cf6 */
507 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 6
509 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf0en */
510 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_SHIFT 0
511 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf1en */
512 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_SHIFT 1
513 #define E4_USTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
514 #define E4_USTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
515 #define E4_USTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
516 #define E4_USTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 3
517 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_MASK 0x1 /* cf4en */
518 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_SHIFT 4
519 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_MASK 0x1 /* cf5en */
520 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_SHIFT 5
521 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 /* cf6en */
522 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 6
523 #define E4_USTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
524 #define E4_USTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
526 #define E4_USTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
527 #define E4_USTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
528 #define E4_USTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
529 #define E4_USTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
530 #define E4_USTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
531 #define E4_USTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
532 #define E4_USTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
533 #define E4_USTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
534 #define E4_USTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
535 #define E4_USTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
536 #define E4_USTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */
537 #define E4_USTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 5
538 #define E4_USTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
539 #define E4_USTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
540 #define E4_USTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */
541 #define E4_USTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
542 u8 byte2 /* byte2 */;
543 u8 byte3 /* byte3 */;
544 __le16 word0 /* conn_dpi */;
545 __le16 tx_bd_cons /* word1 */;
546 __le32 reg0 /* reg0 */;
547 __le32 reg1 /* reg1 */;
548 __le32 reg2 /* reg2 */;
549 __le32 tx_int_coallecing_timeset /* reg3 */;
550 __le16 tx_drv_bd_cons /* word2 */;
551 __le16 rx_drv_cqe_cons /* word3 */;
555 * The eth storm context for the Ustorm
557 struct ustorm_eth_conn_st_ctx
563 * The eth storm context for the Mstorm
565 struct mstorm_eth_conn_st_ctx
571 * eth connection context
573 struct eth_conn_context
575 struct tstorm_eth_conn_st_ctx tstorm_st_context /* tstorm storm context */;
576 struct regpair tstorm_st_padding[2] /* padding */;
577 struct pstorm_eth_conn_st_ctx pstorm_st_context /* pstorm storm context */;
578 struct xstorm_eth_conn_st_ctx xstorm_st_context /* xstorm storm context */;
579 struct e4_xstorm_eth_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */;
580 struct ystorm_eth_conn_st_ctx ystorm_st_context /* ystorm storm context */;
581 struct e4_ystorm_eth_conn_ag_ctx ystorm_ag_context /* ystorm aggregative context */;
582 struct e4_tstorm_eth_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */;
583 struct e4_ustorm_eth_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */;
584 struct ustorm_eth_conn_st_ctx ustorm_st_context /* ustorm storm context */;
585 struct mstorm_eth_conn_st_ctx mstorm_st_context /* mstorm storm context */;
590 * Ethernet filter types: mac/vlan/pair
594 ETH_OK=0x00 /* command succeeded */,
595 ETH_FILTERS_MAC_ADD_FAIL_FULL /* mac add filters command failed due to cam full state */,
596 ETH_FILTERS_MAC_ADD_FAIL_FULL_MTT2 /* mac add filters command failed due to mtt2 full state */,
597 ETH_FILTERS_MAC_ADD_FAIL_DUP_MTT2 /* mac add filters command failed due to duplicate mac address */,
598 ETH_FILTERS_MAC_ADD_FAIL_DUP_STT2 /* mac add filters command failed due to duplicate mac address */,
599 ETH_FILTERS_MAC_DEL_FAIL_NOF /* mac delete filters command failed due to not found state */,
600 ETH_FILTERS_MAC_DEL_FAIL_NOF_MTT2 /* mac delete filters command failed due to not found state */,
601 ETH_FILTERS_MAC_DEL_FAIL_NOF_STT2 /* mac delete filters command failed due to not found state */,
602 ETH_FILTERS_MAC_ADD_FAIL_ZERO_MAC /* mac add filters command failed due to MAC Address of 00:00:00:00:00:00 */,
603 ETH_FILTERS_VLAN_ADD_FAIL_FULL /* vlan add filters command failed due to cam full state */,
604 ETH_FILTERS_VLAN_ADD_FAIL_DUP /* vlan add filters command failed due to duplicate VLAN filter */,
605 ETH_FILTERS_VLAN_DEL_FAIL_NOF /* vlan delete filters command failed due to not found state */,
606 ETH_FILTERS_VLAN_DEL_FAIL_NOF_TT1 /* vlan delete filters command failed due to not found state */,
607 ETH_FILTERS_PAIR_ADD_FAIL_DUP /* pair add filters command failed due to duplicate request */,
608 ETH_FILTERS_PAIR_ADD_FAIL_FULL /* pair add filters command failed due to full state */,
609 ETH_FILTERS_PAIR_ADD_FAIL_FULL_MAC /* pair add filters command failed due to full state */,
610 ETH_FILTERS_PAIR_DEL_FAIL_NOF /* pair add filters command failed due not found state */,
611 ETH_FILTERS_PAIR_DEL_FAIL_NOF_TT1 /* pair add filters command failed due not found state */,
612 ETH_FILTERS_PAIR_ADD_FAIL_ZERO_MAC /* pair add filters command failed due to MAC Address of 00:00:00:00:00:00 */,
613 ETH_FILTERS_VNI_ADD_FAIL_FULL /* vni add filters command failed due to cam full state */,
614 ETH_FILTERS_VNI_ADD_FAIL_DUP /* vni add filters command failed due to duplicate VNI filter */,
615 ETH_FILTERS_GFT_UPDATE_FAIL /* Fail update GFT filter. */,
621 * opcodes for the event ring
623 enum eth_event_opcode
626 ETH_EVENT_VPORT_START,
627 ETH_EVENT_VPORT_UPDATE,
628 ETH_EVENT_VPORT_STOP,
629 ETH_EVENT_TX_QUEUE_START,
630 ETH_EVENT_TX_QUEUE_STOP,
631 ETH_EVENT_RX_QUEUE_START,
632 ETH_EVENT_RX_QUEUE_UPDATE,
633 ETH_EVENT_RX_QUEUE_STOP,
634 ETH_EVENT_FILTERS_UPDATE,
635 ETH_EVENT_RX_ADD_OPENFLOW_FILTER,
636 ETH_EVENT_RX_DELETE_OPENFLOW_FILTER,
637 ETH_EVENT_RX_CREATE_OPENFLOW_ACTION,
638 ETH_EVENT_RX_ADD_UDP_FILTER,
639 ETH_EVENT_RX_DELETE_UDP_FILTER,
640 ETH_EVENT_RX_CREATE_GFT_ACTION,
641 ETH_EVENT_RX_GFT_UPDATE_FILTER,
647 * Classify rule types in E2/E3
649 enum eth_filter_action
651 ETH_FILTER_ACTION_UNUSED,
652 ETH_FILTER_ACTION_REMOVE,
653 ETH_FILTER_ACTION_ADD,
654 ETH_FILTER_ACTION_REMOVE_ALL /* Remove all filters of given type and vport ID. */,
655 MAX_ETH_FILTER_ACTION
660 * Command for adding/removing a classification rule $$KEEP_ENDIANNESS$$
662 struct eth_filter_cmd
664 u8 type /* Filter Type (MAC/VLAN/Pair/VNI) */;
665 u8 vport_id /* the vport id */;
666 u8 action /* filter command action: add/remove/replace */;
677 * $$KEEP_ENDIANNESS$$
679 struct eth_filter_cmd_header
681 u8 rx /* If set, apply these commands to the RX path */;
682 u8 tx /* If set, apply these commands to the TX path */;
683 u8 cmd_cnt /* Number of filter commands */;
684 u8 assert_on_error /* 0 - dont assert in case of filter configuration error. Just return an error code. 1 - assert in case of filter configuration error. */;
690 * Ethernet filter types: mac/vlan/pair
694 ETH_FILTER_TYPE_UNUSED,
695 ETH_FILTER_TYPE_MAC /* Add/remove a MAC address */,
696 ETH_FILTER_TYPE_VLAN /* Add/remove a VLAN */,
697 ETH_FILTER_TYPE_PAIR /* Add/remove a MAC-VLAN pair */,
698 ETH_FILTER_TYPE_INNER_MAC /* Add/remove a inner MAC address */,
699 ETH_FILTER_TYPE_INNER_VLAN /* Add/remove a inner VLAN */,
700 ETH_FILTER_TYPE_INNER_PAIR /* Add/remove a inner MAC-VLAN pair */,
701 ETH_FILTER_TYPE_INNER_MAC_VNI_PAIR /* Add/remove a inner MAC-VNI pair */,
702 ETH_FILTER_TYPE_MAC_VNI_PAIR /* Add/remove a MAC-VNI pair */,
703 ETH_FILTER_TYPE_VNI /* Add/remove a VNI */,
709 * eth IPv4 Fragment Type
711 enum eth_ipv4_frag_type
713 ETH_IPV4_NOT_FRAG /* IPV4 Packet Not Fragmented */,
714 ETH_IPV4_FIRST_FRAG /* First Fragment of IPv4 Packet (contains headers) */,
715 ETH_IPV4_NON_FIRST_FRAG /* Non-First Fragment of IPv4 Packet (does not contain headers) */,
716 MAX_ETH_IPV4_FRAG_TYPE
721 * eth IPv4 Fragment Type
732 * Ethernet Ramrod Command IDs
734 enum eth_ramrod_cmd_id
737 ETH_RAMROD_VPORT_START /* VPort Start Ramrod */,
738 ETH_RAMROD_VPORT_UPDATE /* VPort Update Ramrod */,
739 ETH_RAMROD_VPORT_STOP /* VPort Stop Ramrod */,
740 ETH_RAMROD_RX_QUEUE_START /* RX Queue Start Ramrod */,
741 ETH_RAMROD_RX_QUEUE_STOP /* RX Queue Stop Ramrod */,
742 ETH_RAMROD_TX_QUEUE_START /* TX Queue Start Ramrod */,
743 ETH_RAMROD_TX_QUEUE_STOP /* TX Queue Stop Ramrod */,
744 ETH_RAMROD_FILTERS_UPDATE /* Add or Remove Mac/Vlan/Pair filters */,
745 ETH_RAMROD_RX_QUEUE_UPDATE /* RX Queue Update Ramrod */,
746 ETH_RAMROD_RX_CREATE_OPENFLOW_ACTION /* RX - Create an Openflow Action */,
747 ETH_RAMROD_RX_ADD_OPENFLOW_FILTER /* RX - Add an Openflow Filter to the Searcher */,
748 ETH_RAMROD_RX_DELETE_OPENFLOW_FILTER /* RX - Delete an Openflow Filter to the Searcher */,
749 ETH_RAMROD_RX_ADD_UDP_FILTER /* RX - Add a UDP Filter to the Searcher */,
750 ETH_RAMROD_RX_DELETE_UDP_FILTER /* RX - Delete a UDP Filter to the Searcher */,
751 ETH_RAMROD_RX_CREATE_GFT_ACTION /* RX - Create a Gft Action */,
752 ETH_RAMROD_GFT_UPDATE_FILTER /* RX - Add/Delete a GFT Filter to the Searcher */,
753 MAX_ETH_RAMROD_CMD_ID
758 * return code from eth sp ramrods
760 struct eth_return_code
763 #define ETH_RETURN_CODE_ERR_CODE_MASK 0x1F /* error code (use enum eth_error_code) */
764 #define ETH_RETURN_CODE_ERR_CODE_SHIFT 0
765 #define ETH_RETURN_CODE_RESERVED_MASK 0x3
766 #define ETH_RETURN_CODE_RESERVED_SHIFT 5
767 #define ETH_RETURN_CODE_RX_TX_MASK 0x1 /* rx path - 0, tx path - 1 */
768 #define ETH_RETURN_CODE_RX_TX_SHIFT 7
773 * What to do in case an error occurs
777 ETH_TX_ERR_DROP /* Drop erroneous packet. */,
778 ETH_TX_ERR_ASSERT_MALICIOUS /* Assert an interrupt for PF, declare as malicious for VF */,
784 * Array of the different error type behaviors
786 struct eth_tx_err_vals
789 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_MASK 0x1 /* Wrong VLAN insertion mode (use enum eth_tx_err) */
790 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_SHIFT 0
791 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_MASK 0x1 /* Packet is below minimal size (use enum eth_tx_err) */
792 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_SHIFT 1
793 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_MASK 0x1 /* Vport has sent spoofed packet (use enum eth_tx_err) */
794 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_SHIFT 2
795 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_MASK 0x1 /* Packet with illegal type of inband tag (use enum eth_tx_err) */
796 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_SHIFT 3
797 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_MASK 0x1 /* Packet marked for VLAN insertion when inband tag is present (use enum eth_tx_err) */
798 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_SHIFT 4
799 #define ETH_TX_ERR_VALS_MTU_VIOLATION_MASK 0x1 /* Non LSO packet larger than MTU (use enum eth_tx_err) */
800 #define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 5
801 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x1 /* VF/PF has sent LLDP/PFC or any other type of control packet which is not allowed to (use enum eth_tx_err) */
802 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 6
803 #define ETH_TX_ERR_VALS_RESERVED_MASK 0x1FF
804 #define ETH_TX_ERR_VALS_RESERVED_SHIFT 7
809 * vport rss configuration data
811 struct eth_vport_rss_config
814 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_MASK 0x1 /* configuration of the IpV4 2-tuple capability */
815 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_SHIFT 0
816 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_MASK 0x1 /* configuration of the IpV6 2-tuple capability */
817 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_SHIFT 1
818 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_MASK 0x1 /* configuration of the IpV4 4-tuple capability for TCP */
819 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_SHIFT 2
820 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_MASK 0x1 /* configuration of the IpV6 4-tuple capability for TCP */
821 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_SHIFT 3
822 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_MASK 0x1 /* configuration of the IpV4 4-tuple capability for UDP */
823 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_SHIFT 4
824 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_MASK 0x1 /* configuration of the IpV6 4-tuple capability for UDP */
825 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_SHIFT 5
826 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_MASK 0x1 /* configuration of the 5-tuple capability */
827 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_SHIFT 6
828 #define ETH_VPORT_RSS_CONFIG_RESERVED0_MASK 0x1FF /* if set update the rss keys */
829 #define ETH_VPORT_RSS_CONFIG_RESERVED0_SHIFT 7
830 u8 rss_id /* The RSS engine ID. Must be allocated to each vport with RSS enabled. Total number of RSS engines is ETH_RSS_ENGINE_NUM_ , according to chip type. */;
831 u8 rss_mode /* The RSS mode for this function */;
832 u8 update_rss_key /* if set update the rss key */;
833 u8 update_rss_ind_table /* if set update the indirection table values */;
834 u8 update_rss_capabilities /* if set update the capabilities and indirection table size. */;
835 u8 tbl_size /* rss mask (Tbl size) */;
837 __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM] /* RSS indirection table */;
838 __le32 rss_key[ETH_RSS_KEY_SIZE_REGS] /* RSS key supplied to us by OS */;
846 enum eth_vport_rss_mode
848 ETH_VPORT_RSS_MODE_DISABLED /* RSS Disabled */,
849 ETH_VPORT_RSS_MODE_REGULAR /* Regular (ndis-like) RSS */,
850 MAX_ETH_VPORT_RSS_MODE
855 * Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$
857 struct eth_vport_rx_mode
860 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_MASK 0x1 /* drop all unicast packets */
861 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_SHIFT 0
862 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_MASK 0x1 /* accept all unicast packets (subject to vlan) */
863 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
864 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_MASK 0x1 /* accept all unmatched unicast packets */
865 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_SHIFT 2
866 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_MASK 0x1 /* drop all multicast packets */
867 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_SHIFT 3
868 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_MASK 0x1 /* accept all multicast packets (subject to vlan) */
869 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_SHIFT 4
870 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_MASK 0x1 /* accept all broadcast packets (subject to vlan) */
871 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_SHIFT 5
872 #define ETH_VPORT_RX_MODE_RESERVED1_MASK 0x3FF
873 #define ETH_VPORT_RX_MODE_RESERVED1_SHIFT 6
879 * Command for setting tpa parameters
881 struct eth_vport_tpa_param
883 u8 tpa_ipv4_en_flg /* Enable TPA for IPv4 packets */;
884 u8 tpa_ipv6_en_flg /* Enable TPA for IPv6 packets */;
885 u8 tpa_ipv4_tunn_en_flg /* Enable TPA for IPv4 over tunnel */;
886 u8 tpa_ipv6_tunn_en_flg /* Enable TPA for IPv6 over tunnel */;
887 u8 tpa_pkt_split_flg /* If set, start each tpa segment on new SGE (GRO mode). One SGE per segment allowed */;
888 u8 tpa_hdr_data_split_flg /* If set, put header of first TPA segment on bd and data on SGE */;
889 u8 tpa_gro_consistent_flg /* If set, GRO data consistent will checked for TPA continue */;
890 u8 tpa_max_aggs_num /* maximum number of opened aggregations per v-port */;
891 __le16 tpa_max_size /* maximal size for the aggregated TPA packets */;
892 __le16 tpa_min_size_to_start /* minimum TCP payload size for a packet to start aggregation */;
893 __le16 tpa_min_size_to_cont /* minimum TCP payload size for a packet to continue aggregation */;
894 u8 max_buff_num /* maximal number of buffers that can be used for one aggregation */;
900 * Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$
902 struct eth_vport_tx_mode
905 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_MASK 0x1 /* drop all unicast packets */
906 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_SHIFT 0
907 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_MASK 0x1 /* accept all unicast packets (subject to vlan) */
908 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
909 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_MASK 0x1 /* drop all multicast packets */
910 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_SHIFT 2
911 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_MASK 0x1 /* accept all multicast packets (subject to vlan) */
912 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_SHIFT 3
913 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_MASK 0x1 /* accept all broadcast packets (subject to vlan) */
914 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_SHIFT 4
915 #define ETH_VPORT_TX_MODE_RESERVED1_MASK 0x7FF
916 #define ETH_VPORT_TX_MODE_RESERVED1_SHIFT 5
922 * Ramrod data for rx create gft action
924 enum gft_filter_update_action
928 MAX_GFT_FILTER_UPDATE_ACTION
933 * Ramrod data for rx create gft action
935 enum gft_logic_filter_type
937 GFT_FILTER_TYPE /* flow FW is GFT-logic as well */,
938 RFS_FILTER_TYPE /* flow FW is A-RFS-logic */,
939 MAX_GFT_LOGIC_FILTER_TYPE
946 * Ramrod data for rx add openflow filter
948 struct rx_add_openflow_filter_data
950 __le16 action_icid /* CID of Action to run for this filter */;
951 u8 priority /* Searcher String - Packet priority */;
953 __le32 tenant_id /* Searcher String - Tenant ID */;
954 __le16 dst_mac_hi /* Searcher String - Destination Mac Bytes 0 to 1 */;
955 __le16 dst_mac_mid /* Searcher String - Destination Mac Bytes 2 to 3 */;
956 __le16 dst_mac_lo /* Searcher String - Destination Mac Bytes 4 to 5 */;
957 __le16 src_mac_hi /* Searcher String - Source Mac 0 to 1 */;
958 __le16 src_mac_mid /* Searcher String - Source Mac 2 to 3 */;
959 __le16 src_mac_lo /* Searcher String - Source Mac 4 to 5 */;
960 __le16 vlan_id /* Searcher String - Vlan ID */;
961 __le16 l2_eth_type /* Searcher String - Last L2 Ethertype */;
962 u8 ipv4_dscp /* Searcher String - IPv4 6 MSBs of the TOS Field */;
963 u8 ipv4_frag_type /* Searcher String - IPv4 Fragmentation Type */;
964 u8 ipv4_over_ip /* Searcher String - IPv4 Over IP Type */;
965 u8 tenant_id_exists /* Searcher String - Tenant ID Exists */;
966 __le32 ipv4_dst_addr /* Searcher String - IPv4 Destination Address */;
967 __le32 ipv4_src_addr /* Searcher String - IPv4 Source Address */;
968 __le16 l4_dst_port /* Searcher String - TCP/UDP Destination Port */;
969 __le16 l4_src_port /* Searcher String - TCP/UDP Source Port */;
974 * Ramrod data for rx create gft action
976 struct rx_create_gft_action_data
978 u8 vport_id /* Vport Id of GFT Action */;
984 * Ramrod data for rx create openflow action
986 struct rx_create_openflow_action_data
988 u8 vport_id /* ID of RX queue */;
994 * Ramrod data for rx queue start ramrod
996 struct rx_queue_start_ramrod_data
998 __le16 rx_queue_id /* ID of RX queue */;
999 __le16 num_of_pbl_pages /* Num of pages in CQE PBL */;
1000 __le16 bd_max_bytes /* maximal bytes that can be places on the bd */;
1001 __le16 sb_id /* Status block ID */;
1002 u8 sb_index /* index of the protocol index */;
1003 u8 vport_id /* ID of virtual port */;
1004 u8 default_rss_queue_flg /* set queue as default rss queue if set */;
1005 u8 complete_cqe_flg /* post completion to the CQE ring if set */;
1006 u8 complete_event_flg /* post completion to the event ring if set */;
1007 u8 stats_counter_id /* Statistics counter ID */;
1008 u8 pin_context /* Pin context in CCFC to improve performance */;
1009 u8 pxp_tph_valid_bd /* PXP command TPH Valid - for BD/SGE fetch */;
1010 u8 pxp_tph_valid_pkt /* PXP command TPH Valid - for packet placement */;
1011 u8 pxp_st_hint /* PXP command Steering tag hint. Use enum pxp_tph_st_hint */;
1012 __le16 pxp_st_index /* PXP command Steering tag index */;
1013 u8 pmd_mode /* Indicates that current queue belongs to poll-mode driver */;
1014 u8 notify_en /* Indicates that the current queue is using the TX notification queue mechanism - should be set only for PMD queue */;
1015 u8 toggle_val /* Initial value for the toggle valid bit - used in PMD mode */;
1016 u8 vf_rx_prod_index /* Index of RX producers in VF zone. Used for VF only. */;
1017 u8 vf_rx_prod_use_zone_a /* Backward compatibility mode. If set, unprotected mStorm queue zone will used for VF RX producers instead of VF zone. */;
1019 __le16 reserved1 /* FW reserved. */;
1020 struct regpair cqe_pbl_addr /* Base address on host of CQE PBL */;
1021 struct regpair bd_base /* bd address of the first bd page */;
1022 struct regpair reserved2 /* FW reserved. */;
1027 * Ramrod data for rx queue stop ramrod
1029 struct rx_queue_stop_ramrod_data
1031 __le16 rx_queue_id /* ID of RX queue */;
1032 u8 complete_cqe_flg /* post completion to the CQE ring if set */;
1033 u8 complete_event_flg /* post completion to the event ring if set */;
1034 u8 vport_id /* ID of virtual port */;
1040 * Ramrod data for rx queue update ramrod
1042 struct rx_queue_update_ramrod_data
1044 __le16 rx_queue_id /* ID of RX queue */;
1045 u8 complete_cqe_flg /* post completion to the CQE ring if set */;
1046 u8 complete_event_flg /* post completion to the event ring if set */;
1047 u8 vport_id /* ID of virtual port */;
1049 u8 reserved1 /* FW reserved. */;
1050 u8 reserved2 /* FW reserved. */;
1051 u8 reserved3 /* FW reserved. */;
1052 __le16 reserved4 /* FW reserved. */;
1053 __le16 reserved5 /* FW reserved. */;
1054 struct regpair reserved6 /* FW reserved. */;
1059 * Ramrod data for rx Add UDP Filter
1061 struct rx_udp_filter_data
1063 __le16 action_icid /* CID of Action to run for this filter */;
1064 __le16 vlan_id /* Searcher String - Vlan ID */;
1065 u8 ip_type /* Searcher String - IP Type */;
1066 u8 tenant_id_exists /* Searcher String - Tenant ID Exists */;
1068 __le32 ip_dst_addr[4] /* Searcher String - IP Destination Address, for IPv4 use ip_dst_addr[0] only */;
1069 __le32 ip_src_addr[4] /* Searcher String - IP Source Address, for IPv4 use ip_dst_addr[0] only */;
1070 __le16 udp_dst_port /* Searcher String - UDP Destination Port */;
1071 __le16 udp_src_port /* Searcher String - UDP Source Port */;
1072 __le32 tenant_id /* Searcher String - Tenant ID */;
1077 * Ramrod to add filter - filter is packet headr of type of packet wished to pass certin FW flow
1079 struct rx_update_gft_filter_data
1081 struct regpair pkt_hdr_addr /* Pointer to Packet Header That Defines GFT Filter */;
1082 __le16 pkt_hdr_length /* Packet Header Length */;
1083 __le16 rx_qid_or_action_icid /* If is_rfs flag is set: Queue Id to associate filter with else: action icid */;
1084 u8 vport_id /* Field is used if is_rfs flag is set: vport Id of which to associate filter with */;
1085 u8 filter_type /* Use enum to set type of flow using gft HW logic blocks */;
1086 u8 filter_action /* Use to set type of action on filter */;
1087 u8 assert_on_error /* 0 - dont assert in case of error. Just return an error code. 1 - assert in case of error. */;
1093 * Ramrod data for tx queue start ramrod
1095 struct tx_queue_start_ramrod_data
1097 __le16 sb_id /* Status block ID */;
1098 u8 sb_index /* Status block protocol index */;
1099 u8 vport_id /* VPort ID */;
1100 u8 reserved0 /* FW reserved. (qcn_rl_en) */;
1101 u8 stats_counter_id /* Statistics counter ID to use */;
1102 __le16 qm_pq_id /* QM PQ ID */;
1104 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_MASK 0x1 /* 0: Enable QM opportunistic flow. 1: Disable QM opportunistic flow */
1105 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 0
1106 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x1 /* If set, Test Mode - packets will be duplicated by Xstorm handler */
1107 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 1
1108 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_MASK 0x1 /* If set, Test Mode - packets destination will be determined by dest_port_mode field from Tx BD */
1109 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_SHIFT 2
1110 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x1 /* Indicates that current queue belongs to poll-mode driver */
1111 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 3
1112 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x1 /* Indicates that the current queue is using the TX notification queue mechanism - should be set only for PMD queue */
1113 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 4
1114 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x1 /* Pin context in CCFC to improve performance */
1115 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 5
1116 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x3
1117 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 6
1118 u8 pxp_st_hint /* PXP command Steering tag hint */;
1119 u8 pxp_tph_valid_bd /* PXP command TPH Valid - for BD fetch */;
1120 u8 pxp_tph_valid_pkt /* PXP command TPH Valid - for packet fetch */;
1121 __le16 pxp_st_index /* PXP command Steering tag index */;
1122 __le16 comp_agg_size /* TX completion min agg size - for PMD queues */;
1123 __le16 queue_zone_id /* queue zone ID to use */;
1124 __le16 reserved2 /* FW reserved. (test_dup_count) */;
1125 __le16 pbl_size /* Number of BD pages pointed by PBL */;
1126 __le16 tx_queue_id /* unique Queue ID - currently used only by PMD flow */;
1127 __le16 same_as_last_id /* Unique Same-As-Last Resource ID - improves performance for same-as-last packets per connection (range 0..ETH_TX_NUM_SAME_AS_LAST_ENTRIES-1 IDs available) */;
1129 struct regpair pbl_base_addr /* address of the pbl page */;
1130 struct regpair bd_cons_address /* BD consumer address in host - for PMD queues */;
1135 * Ramrod data for tx queue stop ramrod
1137 struct tx_queue_stop_ramrod_data
1145 * Ramrod data for vport update ramrod
1147 struct vport_filter_update_ramrod_data
1149 struct eth_filter_cmd_header filter_cmd_hdr /* Header for Filter Commands (RX/TX, Add/Remove/Replace, etc) */;
1150 struct eth_filter_cmd filter_cmds[ETH_FILTER_RULES_COUNT] /* Filter Commands */;
1155 * Ramrod data for vport start ramrod
1157 struct vport_start_ramrod_data
1162 u8 drop_ttl0_en /* if set, drop packet with ttl=0 */;
1163 u8 inner_vlan_removal_en;
1164 struct eth_vport_rx_mode rx_mode /* Rx filter data */;
1165 struct eth_vport_tx_mode tx_mode /* Tx filter data */;
1166 struct eth_vport_tpa_param tpa_param /* TPA configuration parameters */;
1167 __le16 default_vlan /* Default Vlan value to be forced by FW */;
1168 u8 tx_switching_en /* Tx switching is enabled for current Vport */;
1169 u8 anti_spoofing_en /* Anti-spoofing verification is set for current Vport */;
1170 u8 default_vlan_en /* If set, the default Vlan value is forced by the FW */;
1171 u8 handle_ptp_pkts /* If set, the vport handles PTP Timesync Packets */;
1172 u8 silent_vlan_removal_en /* If enable then innerVlan will be striped and not written to cqe */;
1173 u8 untagged /* If set untagged filter (vlan0) is added to current Vport, otherwise port is marked as any-vlan */;
1174 struct eth_tx_err_vals tx_err_behav /* Desired behavior per TX error type */;
1175 u8 zero_placement_offset /* If set, ETH header padding will not inserted. placement_offset will be zero. */;
1176 u8 ctl_frame_mac_check_en /* If set, Contorl frames will be filtered according to MAC check. */;
1177 u8 ctl_frame_ethtype_check_en /* If set, Contorl frames will be filtered according to ethtype check. */;
1183 * Ramrod data for vport stop ramrod
1185 struct vport_stop_ramrod_data
1193 * Ramrod data for vport update ramrod
1195 struct vport_update_ramrod_data_cmn
1198 u8 update_rx_active_flg /* set if rx active flag should be handled */;
1199 u8 rx_active_flg /* rx active flag value */;
1200 u8 update_tx_active_flg /* set if tx active flag should be handled */;
1201 u8 tx_active_flg /* tx active flag value */;
1202 u8 update_rx_mode_flg /* set if rx state data should be handled */;
1203 u8 update_tx_mode_flg /* set if tx state data should be handled */;
1204 u8 update_approx_mcast_flg /* set if approx. mcast data should be handled */;
1205 u8 update_rss_flg /* set if rss data should be handled */;
1206 u8 update_inner_vlan_removal_en_flg /* set if inner_vlan_removal_en should be handled */;
1207 u8 inner_vlan_removal_en;
1208 u8 update_tpa_param_flg /* set if tpa parameters should be handled, TPA must be disable before */;
1209 u8 update_tpa_en_flg /* set if tpa enable changes */;
1210 u8 update_tx_switching_en_flg /* set if tx switching en flag should be handled */;
1211 u8 tx_switching_en /* tx switching en value */;
1212 u8 update_anti_spoofing_en_flg /* set if anti spoofing flag should be handled */;
1213 u8 anti_spoofing_en /* Anti-spoofing verification en value */;
1214 u8 update_handle_ptp_pkts /* set if handle_ptp_pkts should be handled. */;
1215 u8 handle_ptp_pkts /* If set, the vport handles PTP Timesync Packets */;
1216 u8 update_default_vlan_en_flg /* If set, the default Vlan enable flag is updated */;
1217 u8 default_vlan_en /* If set, the default Vlan value is forced by the FW */;
1218 u8 update_default_vlan_flg /* If set, the default Vlan value is updated */;
1219 __le16 default_vlan /* Default Vlan value to be forced by FW */;
1220 u8 update_accept_any_vlan_flg /* set if accept_any_vlan should be handled */;
1221 u8 accept_any_vlan /* accept_any_vlan updated value */;
1222 u8 silent_vlan_removal_en /* Set to remove vlan silently, update_inner_vlan_removal_en_flg must be enabled as well. If Rx is in noSgl mode send rx_queue_update_ramrod_data */;
1223 u8 update_mtu_flg /* If set, MTU will be updated. Vport must be not active. */;
1224 __le16 mtu /* New MTU value. Used if update_mtu_flg are set */;
1225 u8 update_ctl_frame_checks_en_flg /* If set, ctl_frame_mac_check_en and ctl_frame_ethtype_check_en will be updated */;
1226 u8 ctl_frame_mac_check_en /* If set, Contorl frames will be filtered according to MAC check. */;
1227 u8 ctl_frame_ethtype_check_en /* If set, Contorl frames will be filtered according to ethtype check. */;
1231 struct vport_update_ramrod_mcast
1233 __le32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS] /* multicast bins */;
1237 * Ramrod data for vport update ramrod
1239 struct vport_update_ramrod_data
1241 struct vport_update_ramrod_data_cmn common /* Common data for all vport update ramrods */;
1242 struct eth_vport_rx_mode rx_mode /* vport rx mode bitmap */;
1243 struct eth_vport_tx_mode tx_mode /* vport tx mode bitmap */;
1244 struct eth_vport_tpa_param tpa_param /* TPA configuration parameters */;
1245 struct vport_update_ramrod_mcast approx_mcast;
1246 struct eth_vport_rss_config rss_config /* rss config data */;
1254 struct E4XstormEthConnAgCtxDqExtLdPart
1256 u8 reserved0 /* cdu_validation */;
1257 u8 eth_state /* state */;
1259 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
1260 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0
1261 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_MASK 0x1 /* exist_in_qm1 */
1262 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_SHIFT 1
1263 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_MASK 0x1 /* exist_in_qm2 */
1264 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_SHIFT 2
1265 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */
1266 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3
1267 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_MASK 0x1 /* bit4 */
1268 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_SHIFT 4
1269 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_MASK 0x1 /* cf_array_active */
1270 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_SHIFT 5
1271 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_MASK 0x1 /* bit6 */
1272 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_SHIFT 6
1273 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_MASK 0x1 /* bit7 */
1274 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_SHIFT 7
1276 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_MASK 0x1 /* bit8 */
1277 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_SHIFT 0
1278 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_MASK 0x1 /* bit9 */
1279 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_SHIFT 1
1280 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_MASK 0x1 /* bit10 */
1281 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_SHIFT 2
1282 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_MASK 0x1 /* bit11 */
1283 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_SHIFT 3
1284 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT12_MASK 0x1 /* bit12 */
1285 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT12_SHIFT 4
1286 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT13_MASK 0x1 /* bit13 */
1287 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT13_SHIFT 5
1288 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */
1289 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_SHIFT 6
1290 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */
1291 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_SHIFT 7
1293 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0_MASK 0x3 /* timer0cf */
1294 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0_SHIFT 0
1295 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1_MASK 0x3 /* timer1cf */
1296 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1_SHIFT 2
1297 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2_MASK 0x3 /* timer2cf */
1298 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2_SHIFT 4
1299 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3_MASK 0x3 /* timer_stop_all */
1300 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3_SHIFT 6
1302 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4_MASK 0x3 /* cf4 */
1303 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4_SHIFT 0
1304 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5_MASK 0x3 /* cf5 */
1305 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5_SHIFT 2
1306 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6_MASK 0x3 /* cf6 */
1307 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6_SHIFT 4
1308 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7_MASK 0x3 /* cf7 */
1309 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7_SHIFT 6
1311 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8_MASK 0x3 /* cf8 */
1312 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8_SHIFT 0
1313 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9_MASK 0x3 /* cf9 */
1314 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9_SHIFT 2
1315 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10_MASK 0x3 /* cf10 */
1316 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10_SHIFT 4
1317 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11_MASK 0x3 /* cf11 */
1318 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11_SHIFT 6
1320 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12_MASK 0x3 /* cf12 */
1321 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12_SHIFT 0
1322 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13_MASK 0x3 /* cf13 */
1323 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13_SHIFT 2
1324 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14_MASK 0x3 /* cf14 */
1325 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14_SHIFT 4
1326 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15_MASK 0x3 /* cf15 */
1327 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15_SHIFT 6
1329 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */
1330 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_SHIFT 0
1331 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_MASK 0x3 /* cf_array_cf */
1332 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_SHIFT 2
1333 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_MASK 0x3 /* cf18 */
1334 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_SHIFT 4
1335 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_MASK 0x3 /* cf19 */
1336 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_SHIFT 6
1338 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_MASK 0x3 /* cf20 */
1339 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_SHIFT 0
1340 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_MASK 0x3 /* cf21 */
1341 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_SHIFT 2
1342 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3 /* cf22 */
1343 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4
1344 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1 /* cf0en */
1345 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6
1346 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1 /* cf1en */
1347 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7
1349 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1 /* cf2en */
1350 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0
1351 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1 /* cf3en */
1352 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1
1353 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1 /* cf4en */
1354 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2
1355 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1 /* cf5en */
1356 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3
1357 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1 /* cf6en */
1358 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4
1359 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_MASK 0x1 /* cf7en */
1360 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_SHIFT 5
1361 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1 /* cf8en */
1362 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6
1363 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1 /* cf9en */
1364 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7
1366 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1 /* cf10en */
1367 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0
1368 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1 /* cf11en */
1369 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1
1370 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1 /* cf12en */
1371 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2
1372 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1 /* cf13en */
1373 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3
1374 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1 /* cf14en */
1375 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4
1376 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1 /* cf15en */
1377 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5
1378 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */
1379 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_SHIFT 6
1380 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_MASK 0x1 /* cf_array_cf_en */
1381 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_SHIFT 7
1383 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_MASK 0x1 /* cf18en */
1384 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_SHIFT 0
1385 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_MASK 0x1 /* cf19en */
1386 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_SHIFT 1
1387 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_MASK 0x1 /* cf20en */
1388 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_SHIFT 2
1389 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_MASK 0x1 /* cf21en */
1390 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_SHIFT 3
1391 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1 /* cf22en */
1392 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4
1393 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */
1394 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_SHIFT 5
1395 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_MASK 0x1 /* rule0en */
1396 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_SHIFT 6
1397 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_MASK 0x1 /* rule1en */
1398 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_SHIFT 7
1400 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_MASK 0x1 /* rule2en */
1401 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_SHIFT 0
1402 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_MASK 0x1 /* rule3en */
1403 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_SHIFT 1
1404 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */
1405 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_SHIFT 2
1406 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1 /* rule5en */
1407 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3
1408 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1 /* rule6en */
1409 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4
1410 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1 /* rule7en */
1411 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5
1412 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1 /* rule8en */
1413 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6
1414 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1 /* rule9en */
1415 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7
1417 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1 /* rule10en */
1418 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0
1419 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1 /* rule11en */
1420 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1
1421 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1 /* rule12en */
1422 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2
1423 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1 /* rule13en */
1424 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3
1425 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1 /* rule14en */
1426 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4
1427 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1 /* rule15en */
1428 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5
1429 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1 /* rule16en */
1430 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6
1431 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1 /* rule17en */
1432 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7
1434 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1 /* rule18en */
1435 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0
1436 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1 /* rule19en */
1437 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1
1438 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1 /* rule20en */
1439 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2
1440 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1 /* rule21en */
1441 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3
1442 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1 /* rule22en */
1443 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4
1444 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1 /* rule23en */
1445 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5
1446 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1 /* rule24en */
1447 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6
1448 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1 /* rule25en */
1449 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7
1451 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */
1452 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_SHIFT 0
1453 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */
1454 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_SHIFT 1
1455 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */
1456 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_SHIFT 2
1457 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */
1458 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_SHIFT 3
1459 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */
1460 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_SHIFT 4
1461 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */
1462 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5
1463 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_MASK 0x3 /* cf23 */
1464 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_SHIFT 6
1465 u8 edpm_event_id /* byte2 */;
1466 __le16 physical_q0 /* physical_q0 */;
1467 __le16 e5_reserved1 /* physical_q1 */;
1468 __le16 edpm_num_bds /* physical_q2 */;
1469 __le16 tx_bd_cons /* word3 */;
1470 __le16 tx_bd_prod /* word4 */;
1471 __le16 tx_class /* word5 */;
1472 __le16 conn_dpi /* conn_dpi */;
1473 u8 byte3 /* byte3 */;
1474 u8 byte4 /* byte4 */;
1475 u8 byte5 /* byte5 */;
1476 u8 byte6 /* byte6 */;
1477 __le32 reg0 /* reg0 */;
1478 __le32 reg1 /* reg1 */;
1479 __le32 reg2 /* reg2 */;
1480 __le32 reg3 /* reg3 */;
1481 __le32 reg4 /* reg4 */;
1485 struct e4_mstorm_eth_conn_ag_ctx
1487 u8 byte0 /* cdu_validation */;
1488 u8 byte1 /* state */;
1490 #define E4_MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
1491 #define E4_MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
1492 #define E4_MSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
1493 #define E4_MSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
1494 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */
1495 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 2
1496 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */
1497 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 4
1498 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */
1499 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
1501 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
1502 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 0
1503 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
1504 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 1
1505 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
1506 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
1507 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
1508 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
1509 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
1510 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
1511 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
1512 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
1513 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
1514 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
1515 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
1516 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
1517 __le16 word0 /* word0 */;
1518 __le16 word1 /* word1 */;
1519 __le32 reg0 /* reg0 */;
1520 __le32 reg1 /* reg1 */;
1527 struct e4_xstorm_eth_hw_conn_ag_ctx
1529 u8 reserved0 /* cdu_validation */;
1530 u8 eth_state /* state */;
1532 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
1533 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
1534 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_MASK 0x1 /* exist_in_qm1 */
1535 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_SHIFT 1
1536 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_MASK 0x1 /* exist_in_qm2 */
1537 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_SHIFT 2
1538 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */
1539 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
1540 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */
1541 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_SHIFT 4
1542 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_MASK 0x1 /* cf_array_active */
1543 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_SHIFT 5
1544 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */
1545 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_SHIFT 6
1546 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */
1547 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_SHIFT 7
1549 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */
1550 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_SHIFT 0
1551 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */
1552 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_SHIFT 1
1553 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */
1554 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_SHIFT 2
1555 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */
1556 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT11_SHIFT 3
1557 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */
1558 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT12_SHIFT 4
1559 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */
1560 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT13_SHIFT 5
1561 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */
1562 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
1563 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */
1564 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
1566 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */
1567 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0_SHIFT 0
1568 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */
1569 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1_SHIFT 2
1570 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
1571 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2_SHIFT 4
1572 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
1573 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3_SHIFT 6
1575 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */
1576 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4_SHIFT 0
1577 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */
1578 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5_SHIFT 2
1579 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */
1580 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6_SHIFT 4
1581 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */
1582 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7_SHIFT 6
1584 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */
1585 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8_SHIFT 0
1586 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */
1587 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9_SHIFT 2
1588 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */
1589 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10_SHIFT 4
1590 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */
1591 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11_SHIFT 6
1593 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */
1594 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12_SHIFT 0
1595 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */
1596 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13_SHIFT 2
1597 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */
1598 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14_SHIFT 4
1599 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */
1600 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15_SHIFT 6
1602 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */
1603 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
1604 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3 /* cf_array_cf */
1605 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
1606 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */
1607 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_SHIFT 4
1608 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */
1609 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
1611 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */
1612 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
1613 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */
1614 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_SHIFT 2
1615 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */
1616 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_SHIFT 4
1617 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
1618 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_SHIFT 6
1619 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
1620 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_SHIFT 7
1622 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
1623 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_SHIFT 0
1624 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
1625 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_SHIFT 1
1626 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */
1627 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_SHIFT 2
1628 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */
1629 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_SHIFT 3
1630 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */
1631 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_SHIFT 4
1632 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */
1633 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_SHIFT 5
1634 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */
1635 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_SHIFT 6
1636 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */
1637 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_SHIFT 7
1639 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */
1640 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_SHIFT 0
1641 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */
1642 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_SHIFT 1
1643 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */
1644 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_SHIFT 2
1645 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */
1646 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_SHIFT 3
1647 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */
1648 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_SHIFT 4
1649 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */
1650 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_SHIFT 5
1651 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */
1652 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
1653 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1 /* cf_array_cf_en */
1654 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
1656 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */
1657 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
1658 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */
1659 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
1660 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */
1661 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
1662 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */
1663 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_SHIFT 3
1664 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */
1665 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
1666 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */
1667 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
1668 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */
1669 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_SHIFT 6
1670 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */
1671 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_SHIFT 7
1673 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */
1674 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_SHIFT 0
1675 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */
1676 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_SHIFT 1
1677 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */
1678 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
1679 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
1680 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_SHIFT 3
1681 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */
1682 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_SHIFT 4
1683 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
1684 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_SHIFT 5
1685 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */
1686 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
1687 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */
1688 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_SHIFT 7
1690 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_MASK 0x1 /* rule10en */
1691 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_SHIFT 0
1692 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */
1693 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_SHIFT 1
1694 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */
1695 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
1696 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */
1697 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
1698 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_MASK 0x1 /* rule14en */
1699 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_SHIFT 4
1700 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */
1701 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_SHIFT 5
1702 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */
1703 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_SHIFT 6
1704 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */
1705 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_SHIFT 7
1707 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_MASK 0x1 /* rule18en */
1708 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_SHIFT 0
1709 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_MASK 0x1 /* rule19en */
1710 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_SHIFT 1
1711 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 /* rule20en */
1712 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
1713 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 /* rule21en */
1714 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
1715 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */
1716 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
1717 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 /* rule23en */
1718 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
1719 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */
1720 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
1721 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */
1722 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
1724 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */
1725 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
1726 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */
1727 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
1728 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */
1729 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
1730 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */
1731 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
1732 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */
1733 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
1734 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */
1735 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
1736 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_MASK 0x3 /* cf23 */
1737 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
1738 u8 edpm_event_id /* byte2 */;
1739 __le16 physical_q0 /* physical_q0 */;
1740 __le16 e5_reserved1 /* physical_q1 */;
1741 __le16 edpm_num_bds /* physical_q2 */;
1742 __le16 tx_bd_cons /* word3 */;
1743 __le16 tx_bd_prod /* word4 */;
1744 __le16 tx_class /* word5 */;
1745 __le16 conn_dpi /* conn_dpi */;
1750 struct E5XstormEthConnAgCtxDqExtLdPart
1752 u8 reserved0 /* cdu_validation */;
1753 u8 state_and_core_id /* state_and_core_id */;
1755 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
1756 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0
1757 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_MASK 0x1 /* exist_in_qm1 */
1758 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_SHIFT 1
1759 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_MASK 0x1 /* exist_in_qm2 */
1760 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_SHIFT 2
1761 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */
1762 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3
1763 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_MASK 0x1 /* bit4 */
1764 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_SHIFT 4
1765 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_MASK 0x1 /* cf_array_active */
1766 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_SHIFT 5
1767 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_MASK 0x1 /* bit6 */
1768 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_SHIFT 6
1769 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_MASK 0x1 /* bit7 */
1770 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_SHIFT 7
1772 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_MASK 0x1 /* bit8 */
1773 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_SHIFT 0
1774 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_MASK 0x1 /* bit9 */
1775 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_SHIFT 1
1776 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_MASK 0x1 /* bit10 */
1777 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_SHIFT 2
1778 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_MASK 0x1 /* bit11 */
1779 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_SHIFT 3
1780 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_BIT12_MASK 0x1 /* bit12 */
1781 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_BIT12_SHIFT 4
1782 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_BIT13_MASK 0x1 /* bit13 */
1783 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_BIT13_SHIFT 5
1784 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */
1785 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_SHIFT 6
1786 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */
1787 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_SHIFT 7
1789 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF0_MASK 0x3 /* timer0cf */
1790 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF0_SHIFT 0
1791 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF1_MASK 0x3 /* timer1cf */
1792 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF1_SHIFT 2
1793 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF2_MASK 0x3 /* timer2cf */
1794 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF2_SHIFT 4
1795 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF3_MASK 0x3 /* timer_stop_all */
1796 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF3_SHIFT 6
1798 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF4_MASK 0x3 /* cf4 */
1799 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF4_SHIFT 0
1800 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF5_MASK 0x3 /* cf5 */
1801 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF5_SHIFT 2
1802 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF6_MASK 0x3 /* cf6 */
1803 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF6_SHIFT 4
1804 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF7_MASK 0x3 /* cf7 */
1805 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF7_SHIFT 6
1807 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF8_MASK 0x3 /* cf8 */
1808 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF8_SHIFT 0
1809 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF9_MASK 0x3 /* cf9 */
1810 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF9_SHIFT 2
1811 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF10_MASK 0x3 /* cf10 */
1812 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF10_SHIFT 4
1813 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF11_MASK 0x3 /* cf11 */
1814 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF11_SHIFT 6
1816 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF12_MASK 0x3 /* cf12 */
1817 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF12_SHIFT 0
1818 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF13_MASK 0x3 /* cf13 */
1819 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF13_SHIFT 2
1820 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF14_MASK 0x3 /* cf14 */
1821 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF14_SHIFT 4
1822 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF15_MASK 0x3 /* cf15 */
1823 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF15_SHIFT 6
1825 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */
1826 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_SHIFT 0
1827 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_MASK 0x3 /* cf_array_cf */
1828 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_SHIFT 2
1829 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_MASK 0x3 /* cf18 */
1830 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_SHIFT 4
1831 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_MASK 0x3 /* cf19 */
1832 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_SHIFT 6
1834 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_MASK 0x3 /* cf20 */
1835 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_SHIFT 0
1836 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_MASK 0x3 /* cf21 */
1837 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_SHIFT 2
1838 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3 /* cf22 */
1839 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4
1840 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1 /* cf0en */
1841 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6
1842 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1 /* cf1en */
1843 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7
1845 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1 /* cf2en */
1846 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0
1847 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1 /* cf3en */
1848 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1
1849 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1 /* cf4en */
1850 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2
1851 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1 /* cf5en */
1852 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3
1853 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1 /* cf6en */
1854 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4
1855 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_MASK 0x1 /* cf7en */
1856 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_SHIFT 5
1857 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1 /* cf8en */
1858 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6
1859 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1 /* cf9en */
1860 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7
1862 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1 /* cf10en */
1863 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0
1864 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1 /* cf11en */
1865 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1
1866 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1 /* cf12en */
1867 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2
1868 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1 /* cf13en */
1869 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3
1870 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1 /* cf14en */
1871 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4
1872 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1 /* cf15en */
1873 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5
1874 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */
1875 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_SHIFT 6
1876 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_MASK 0x1 /* cf_array_cf_en */
1877 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_SHIFT 7
1879 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_MASK 0x1 /* cf18en */
1880 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_SHIFT 0
1881 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_MASK 0x1 /* cf19en */
1882 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_SHIFT 1
1883 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_MASK 0x1 /* cf20en */
1884 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_SHIFT 2
1885 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_MASK 0x1 /* cf21en */
1886 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_SHIFT 3
1887 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1 /* cf22en */
1888 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4
1889 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */
1890 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_SHIFT 5
1891 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_MASK 0x1 /* rule0en */
1892 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_SHIFT 6
1893 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_MASK 0x1 /* rule1en */
1894 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_SHIFT 7
1896 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_MASK 0x1 /* rule2en */
1897 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_SHIFT 0
1898 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_MASK 0x1 /* rule3en */
1899 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_SHIFT 1
1900 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */
1901 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_SHIFT 2
1902 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1 /* rule5en */
1903 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3
1904 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1 /* rule6en */
1905 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4
1906 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1 /* rule7en */
1907 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5
1908 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1 /* rule8en */
1909 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6
1910 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1 /* rule9en */
1911 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7
1913 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1 /* rule10en */
1914 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0
1915 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1 /* rule11en */
1916 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1
1917 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1 /* rule12en */
1918 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2
1919 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1 /* rule13en */
1920 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3
1921 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1 /* rule14en */
1922 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4
1923 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1 /* rule15en */
1924 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5
1925 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1 /* rule16en */
1926 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6
1927 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1 /* rule17en */
1928 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7
1930 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1 /* rule18en */
1931 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0
1932 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1 /* rule19en */
1933 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1
1934 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1 /* rule20en */
1935 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2
1936 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1 /* rule21en */
1937 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3
1938 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1 /* rule22en */
1939 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4
1940 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1 /* rule23en */
1941 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5
1942 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1 /* rule24en */
1943 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6
1944 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1 /* rule25en */
1945 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7
1947 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */
1948 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_SHIFT 0
1949 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */
1950 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_SHIFT 1
1951 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */
1952 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_SHIFT 2
1953 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */
1954 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_SHIFT 3
1955 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */
1956 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_SHIFT 4
1957 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */
1958 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5
1959 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_MASK 0x3 /* cf23 */
1960 #define E5XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_SHIFT 6
1961 u8 byte2 /* byte2 */;
1962 __le16 physical_q0 /* physical_q0 */;
1963 __le16 tx_l2_edpm_usg_cnt /* physical_q1 */;
1964 __le16 edpm_num_bds /* physical_q2 */;
1965 __le16 tx_bd_cons /* word3 */;
1966 __le16 tx_bd_prod /* word4 */;
1967 __le16 tx_class /* word5 */;
1968 __le16 conn_dpi /* conn_dpi */;
1969 u8 byte3 /* byte3 */;
1970 u8 byte4 /* byte4 */;
1971 u8 byte5 /* byte5 */;
1972 u8 byte6 /* byte6 */;
1973 __le32 reg0 /* reg0 */;
1974 __le32 reg1 /* reg1 */;
1975 __le32 reg2 /* reg2 */;
1976 __le32 reg3 /* reg3 */;
1977 __le32 reg4 /* reg4 */;
1981 struct e5_mstorm_eth_conn_ag_ctx
1983 u8 byte0 /* cdu_validation */;
1984 u8 byte1 /* state_and_core_id */;
1986 #define E5_MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
1987 #define E5_MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
1988 #define E5_MSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
1989 #define E5_MSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
1990 #define E5_MSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */
1991 #define E5_MSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 2
1992 #define E5_MSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */
1993 #define E5_MSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 4
1994 #define E5_MSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */
1995 #define E5_MSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
1997 #define E5_MSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
1998 #define E5_MSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 0
1999 #define E5_MSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
2000 #define E5_MSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 1
2001 #define E5_MSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
2002 #define E5_MSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
2003 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
2004 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
2005 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
2006 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
2007 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
2008 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
2009 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
2010 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
2011 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
2012 #define E5_MSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
2013 __le16 word0 /* word0 */;
2014 __le16 word1 /* word1 */;
2015 __le32 reg0 /* reg0 */;
2016 __le32 reg1 /* reg1 */;
2020 struct e5_tstorm_eth_conn_ag_ctx
2022 u8 byte0 /* cdu_validation */;
2023 u8 byte1 /* state_and_core_id */;
2025 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */
2026 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
2027 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
2028 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
2029 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT2_MASK 0x1 /* bit2 */
2030 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT2_SHIFT 2
2031 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT3_MASK 0x1 /* bit3 */
2032 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT3_SHIFT 3
2033 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */
2034 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT4_SHIFT 4
2035 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT5_MASK 0x1 /* bit5 */
2036 #define E5_TSTORM_ETH_CONN_AG_CTX_BIT5_SHIFT 5
2037 #define E5_TSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */
2038 #define E5_TSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 6
2040 #define E5_TSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */
2041 #define E5_TSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 0
2042 #define E5_TSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
2043 #define E5_TSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 2
2044 #define E5_TSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
2045 #define E5_TSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 4
2046 #define E5_TSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */
2047 #define E5_TSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 6
2049 #define E5_TSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */
2050 #define E5_TSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 0
2051 #define E5_TSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */
2052 #define E5_TSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 2
2053 #define E5_TSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */
2054 #define E5_TSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 4
2055 #define E5_TSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */
2056 #define E5_TSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 6
2058 #define E5_TSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */
2059 #define E5_TSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 0
2060 #define E5_TSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */
2061 #define E5_TSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 2
2062 #define E5_TSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
2063 #define E5_TSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 4
2064 #define E5_TSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
2065 #define E5_TSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 5
2066 #define E5_TSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
2067 #define E5_TSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 6
2068 #define E5_TSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
2069 #define E5_TSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 7
2071 #define E5_TSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */
2072 #define E5_TSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 0
2073 #define E5_TSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */
2074 #define E5_TSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 1
2075 #define E5_TSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */
2076 #define E5_TSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 2
2077 #define E5_TSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */
2078 #define E5_TSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 3
2079 #define E5_TSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */
2080 #define E5_TSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 4
2081 #define E5_TSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */
2082 #define E5_TSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 5
2083 #define E5_TSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */
2084 #define E5_TSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 6
2085 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
2086 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
2088 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
2089 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
2090 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
2091 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
2092 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
2093 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
2094 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
2095 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
2096 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
2097 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
2098 #define E5_TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_MASK 0x1 /* rule6en */
2099 #define E5_TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_SHIFT 5
2100 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
2101 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
2102 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */
2103 #define E5_TSTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
2105 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit6 */
2106 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED1_SHIFT 0
2107 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit7 */
2108 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED2_SHIFT 1
2109 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED3_MASK 0x1 /* bit8 */
2110 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED3_SHIFT 2
2111 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf11 */
2112 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED4_SHIFT 3
2113 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf11en */
2114 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED5_SHIFT 5
2115 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* rule9en */
2116 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED6_SHIFT 6
2117 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED7_MASK 0x1 /* rule10en */
2118 #define E5_TSTORM_ETH_CONN_AG_CTX_E4_RESERVED7_SHIFT 7
2119 u8 byte2 /* byte2 */;
2120 __le16 rx_bd_cons /* word0 */;
2121 __le32 reg0 /* reg0 */;
2122 __le32 reg1 /* reg1 */;
2123 __le32 reg2 /* reg2 */;
2124 __le32 reg3 /* reg3 */;
2125 __le32 reg4 /* reg4 */;
2126 __le32 reg5 /* reg5 */;
2127 __le32 reg6 /* reg6 */;
2128 __le32 reg7 /* reg7 */;
2129 __le32 reg8 /* reg8 */;
2130 u8 byte3 /* byte3 */;
2131 u8 byte4 /* byte4 */;
2132 u8 byte5 /* byte5 */;
2133 u8 e4_reserved8 /* byte6 */;
2134 __le16 rx_bd_prod /* word1 */;
2135 __le16 word2 /* conn_dpi */;
2136 __le32 reg9 /* reg9 */;
2137 __le16 word3 /* word3 */;
2138 __le16 e4_reserved9 /* word4 */;
2142 struct e5_ustorm_eth_conn_ag_ctx
2144 u8 byte0 /* cdu_validation */;
2145 u8 byte1 /* state_and_core_id */;
2147 #define E5_USTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */
2148 #define E5_USTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
2149 #define E5_USTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
2150 #define E5_USTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
2151 #define E5_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_MASK 0x3 /* timer0cf */
2152 #define E5_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_SHIFT 2
2153 #define E5_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_MASK 0x3 /* timer1cf */
2154 #define E5_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_SHIFT 4
2155 #define E5_USTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
2156 #define E5_USTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
2158 #define E5_USTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
2159 #define E5_USTORM_ETH_CONN_AG_CTX_CF3_SHIFT 0
2160 #define E5_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_MASK 0x3 /* cf4 */
2161 #define E5_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_SHIFT 2
2162 #define E5_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_MASK 0x3 /* cf5 */
2163 #define E5_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_SHIFT 4
2164 #define E5_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 /* cf6 */
2165 #define E5_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 6
2167 #define E5_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf0en */
2168 #define E5_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_SHIFT 0
2169 #define E5_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf1en */
2170 #define E5_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_SHIFT 1
2171 #define E5_USTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
2172 #define E5_USTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
2173 #define E5_USTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
2174 #define E5_USTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 3
2175 #define E5_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_MASK 0x1 /* cf4en */
2176 #define E5_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_SHIFT 4
2177 #define E5_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_MASK 0x1 /* cf5en */
2178 #define E5_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_SHIFT 5
2179 #define E5_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 /* cf6en */
2180 #define E5_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 6
2181 #define E5_USTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
2182 #define E5_USTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
2184 #define E5_USTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
2185 #define E5_USTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
2186 #define E5_USTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
2187 #define E5_USTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
2188 #define E5_USTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
2189 #define E5_USTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
2190 #define E5_USTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
2191 #define E5_USTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
2192 #define E5_USTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
2193 #define E5_USTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
2194 #define E5_USTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */
2195 #define E5_USTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 5
2196 #define E5_USTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
2197 #define E5_USTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
2198 #define E5_USTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */
2199 #define E5_USTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
2201 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit2 */
2202 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED1_SHIFT 0
2203 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit3 */
2204 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED2_SHIFT 1
2205 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED3_MASK 0x3 /* cf7 */
2206 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED3_SHIFT 2
2207 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf8 */
2208 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED4_SHIFT 4
2209 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf7en */
2210 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED5_SHIFT 6
2211 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* cf8en */
2212 #define E5_USTORM_ETH_CONN_AG_CTX_E4_RESERVED6_SHIFT 7
2213 u8 byte2 /* byte2 */;
2214 __le16 word0 /* conn_dpi */;
2215 __le16 tx_bd_cons /* word1 */;
2216 __le32 reg0 /* reg0 */;
2217 __le32 reg1 /* reg1 */;
2218 __le32 reg2 /* reg2 */;
2219 __le32 tx_int_coallecing_timeset /* reg3 */;
2220 __le16 tx_drv_bd_cons /* word2 */;
2221 __le16 rx_drv_cqe_cons /* word3 */;
2225 struct e5_xstorm_eth_conn_ag_ctx
2227 u8 reserved0 /* cdu_validation */;
2228 u8 state_and_core_id /* state_and_core_id */;
2230 #define E5_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
2231 #define E5_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
2232 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED1_MASK 0x1 /* exist_in_qm1 */
2233 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED1_SHIFT 1
2234 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED2_MASK 0x1 /* exist_in_qm2 */
2235 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED2_SHIFT 2
2236 #define E5_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */
2237 #define E5_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
2238 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */
2239 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED3_SHIFT 4
2240 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED4_MASK 0x1 /* cf_array_active */
2241 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED4_SHIFT 5
2242 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */
2243 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED5_SHIFT 6
2244 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */
2245 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED6_SHIFT 7
2247 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */
2248 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED7_SHIFT 0
2249 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */
2250 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED8_SHIFT 1
2251 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */
2252 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED9_SHIFT 2
2253 #define E5_XSTORM_ETH_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */
2254 #define E5_XSTORM_ETH_CONN_AG_CTX_BIT11_SHIFT 3
2255 #define E5_XSTORM_ETH_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */
2256 #define E5_XSTORM_ETH_CONN_AG_CTX_BIT12_SHIFT 4
2257 #define E5_XSTORM_ETH_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */
2258 #define E5_XSTORM_ETH_CONN_AG_CTX_BIT13_SHIFT 5
2259 #define E5_XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */
2260 #define E5_XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
2261 #define E5_XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */
2262 #define E5_XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
2264 #define E5_XSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */
2265 #define E5_XSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 0
2266 #define E5_XSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */
2267 #define E5_XSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 2
2268 #define E5_XSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
2269 #define E5_XSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 4
2270 #define E5_XSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
2271 #define E5_XSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 6
2273 #define E5_XSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */
2274 #define E5_XSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 0
2275 #define E5_XSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */
2276 #define E5_XSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 2
2277 #define E5_XSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */
2278 #define E5_XSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 4
2279 #define E5_XSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */
2280 #define E5_XSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 6
2282 #define E5_XSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */
2283 #define E5_XSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 0
2284 #define E5_XSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */
2285 #define E5_XSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 2
2286 #define E5_XSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */
2287 #define E5_XSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 4
2288 #define E5_XSTORM_ETH_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */
2289 #define E5_XSTORM_ETH_CONN_AG_CTX_CF11_SHIFT 6
2291 #define E5_XSTORM_ETH_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */
2292 #define E5_XSTORM_ETH_CONN_AG_CTX_CF12_SHIFT 0
2293 #define E5_XSTORM_ETH_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */
2294 #define E5_XSTORM_ETH_CONN_AG_CTX_CF13_SHIFT 2
2295 #define E5_XSTORM_ETH_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */
2296 #define E5_XSTORM_ETH_CONN_AG_CTX_CF14_SHIFT 4
2297 #define E5_XSTORM_ETH_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */
2298 #define E5_XSTORM_ETH_CONN_AG_CTX_CF15_SHIFT 6
2300 #define E5_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */
2301 #define E5_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
2302 #define E5_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3 /* cf_array_cf */
2303 #define E5_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
2304 #define E5_XSTORM_ETH_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */
2305 #define E5_XSTORM_ETH_CONN_AG_CTX_DQ_CF_SHIFT 4
2306 #define E5_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */
2307 #define E5_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
2309 #define E5_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */
2310 #define E5_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
2311 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */
2312 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED10_SHIFT 2
2313 #define E5_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */
2314 #define E5_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_SHIFT 4
2315 #define E5_XSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
2316 #define E5_XSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 6
2317 #define E5_XSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
2318 #define E5_XSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 7
2320 #define E5_XSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
2321 #define E5_XSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 0
2322 #define E5_XSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
2323 #define E5_XSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 1
2324 #define E5_XSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */
2325 #define E5_XSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 2
2326 #define E5_XSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */
2327 #define E5_XSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 3
2328 #define E5_XSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */
2329 #define E5_XSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 4
2330 #define E5_XSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */
2331 #define E5_XSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 5
2332 #define E5_XSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */
2333 #define E5_XSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 6
2334 #define E5_XSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */
2335 #define E5_XSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 7
2337 #define E5_XSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */
2338 #define E5_XSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 0
2339 #define E5_XSTORM_ETH_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */
2340 #define E5_XSTORM_ETH_CONN_AG_CTX_CF11EN_SHIFT 1
2341 #define E5_XSTORM_ETH_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */
2342 #define E5_XSTORM_ETH_CONN_AG_CTX_CF12EN_SHIFT 2
2343 #define E5_XSTORM_ETH_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */
2344 #define E5_XSTORM_ETH_CONN_AG_CTX_CF13EN_SHIFT 3
2345 #define E5_XSTORM_ETH_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */
2346 #define E5_XSTORM_ETH_CONN_AG_CTX_CF14EN_SHIFT 4
2347 #define E5_XSTORM_ETH_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */
2348 #define E5_XSTORM_ETH_CONN_AG_CTX_CF15EN_SHIFT 5
2349 #define E5_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */
2350 #define E5_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
2351 #define E5_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1 /* cf_array_cf_en */
2352 #define E5_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
2354 #define E5_XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */
2355 #define E5_XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
2356 #define E5_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */
2357 #define E5_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
2358 #define E5_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */
2359 #define E5_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
2360 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */
2361 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED11_SHIFT 3
2362 #define E5_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */
2363 #define E5_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
2364 #define E5_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */
2365 #define E5_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
2366 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */
2367 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED12_SHIFT 6
2368 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */
2369 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED13_SHIFT 7
2371 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */
2372 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED14_SHIFT 0
2373 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */
2374 #define E5_XSTORM_ETH_CONN_AG_CTX_RESERVED15_SHIFT 1
2375 #define E5_XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */
2376 #define E5_XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
2377 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
2378 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 3
2379 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */
2380 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 4
2381 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
2382 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 5
2383 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */
2384 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
2385 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */
2386 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE9EN_SHIFT 7
2388 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE10EN_MASK 0x1 /* rule10en */
2389 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE10EN_SHIFT 0
2390 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */
2391 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE11EN_SHIFT 1
2392 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */
2393 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
2394 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */
2395 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
2396 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE14EN_MASK 0x1 /* rule14en */
2397 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE14EN_SHIFT 4
2398 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */
2399 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE15EN_SHIFT 5
2400 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */
2401 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE16EN_SHIFT 6
2402 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */
2403 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE17EN_SHIFT 7
2405 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE18EN_MASK 0x1 /* rule18en */
2406 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE18EN_SHIFT 0
2407 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE19EN_MASK 0x1 /* rule19en */
2408 #define E5_XSTORM_ETH_CONN_AG_CTX_RULE19EN_SHIFT 1
2409 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 /* rule20en */
2410 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
2411 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 /* rule21en */
2412 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
2413 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */
2414 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
2415 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 /* rule23en */
2416 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
2417 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */
2418 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
2419 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */
2420 #define E5_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
2422 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */
2423 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
2424 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */
2425 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
2426 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */
2427 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
2428 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */
2429 #define E5_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
2430 #define E5_XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */
2431 #define E5_XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
2432 #define E5_XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */
2433 #define E5_XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
2434 #define E5_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_MASK 0x3 /* cf23 */
2435 #define E5_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
2436 u8 byte2 /* byte2 */;
2437 __le16 physical_q0 /* physical_q0 */;
2438 __le16 tx_l2_edpm_usg_cnt /* physical_q1 */;
2439 __le16 edpm_num_bds /* physical_q2 */;
2440 __le16 tx_bd_cons /* word3 */;
2441 __le16 tx_bd_prod /* word4 */;
2442 __le16 tx_class /* word5 */;
2443 __le16 conn_dpi /* conn_dpi */;
2444 u8 byte3 /* byte3 */;
2445 u8 byte4 /* byte4 */;
2446 u8 byte5 /* byte5 */;
2447 u8 byte6 /* byte6 */;
2448 __le32 reg0 /* reg0 */;
2449 __le32 reg1 /* reg1 */;
2450 __le32 reg2 /* reg2 */;
2451 __le32 reg3 /* reg3 */;
2452 __le32 reg4 /* reg4 */;
2453 __le32 reg5 /* cf_array0 */;
2454 __le32 reg6 /* cf_array1 */;
2456 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit22 */
2457 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED1_SHIFT 0
2458 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit23 */
2459 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED2_SHIFT 1
2460 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED3_MASK 0x1 /* bit24 */
2461 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED3_SHIFT 2
2462 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf24 */
2463 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED4_SHIFT 3
2464 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf24en */
2465 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED5_SHIFT 5
2466 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* rule26en */
2467 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED6_SHIFT 6
2468 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED7_MASK 0x1 /* rule27en */
2469 #define E5_XSTORM_ETH_CONN_AG_CTX_E4_RESERVED7_SHIFT 7
2470 u8 byte7 /* byte7 */;
2471 __le16 word7 /* word7 */;
2472 __le16 word8 /* word8 */;
2473 __le16 word9 /* word9 */;
2474 __le16 word10 /* word10 */;
2475 __le16 word11 /* word11 */;
2476 __le32 reg7 /* reg7 */;
2477 __le32 reg8 /* reg8 */;
2478 __le32 reg9 /* reg9 */;
2479 u8 byte8 /* byte8 */;
2480 u8 byte9 /* byte9 */;
2481 u8 byte10 /* byte10 */;
2482 u8 byte11 /* byte11 */;
2483 u8 byte12 /* byte12 */;
2484 u8 byte13 /* byte13 */;
2485 u8 byte14 /* byte14 */;
2486 u8 byte15 /* byte15 */;
2487 __le32 reg10 /* reg10 */;
2488 __le32 reg11 /* reg11 */;
2489 __le32 reg12 /* reg12 */;
2490 __le32 reg13 /* reg13 */;
2491 __le32 reg14 /* reg14 */;
2492 __le32 reg15 /* reg15 */;
2493 __le32 reg16 /* reg16 */;
2494 __le32 reg17 /* reg17 */;
2495 __le32 reg18 /* reg18 */;
2496 __le32 reg19 /* reg19 */;
2497 __le16 word12 /* word12 */;
2498 __le16 word13 /* word13 */;
2499 __le16 word14 /* word14 */;
2500 __le16 word15 /* word15 */;
2504 struct e5_xstorm_eth_hw_conn_ag_ctx
2506 u8 reserved0 /* cdu_validation */;
2507 u8 state_and_core_id /* state_and_core_id */;
2509 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */
2510 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
2511 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_MASK 0x1 /* exist_in_qm1 */
2512 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_SHIFT 1
2513 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_MASK 0x1 /* exist_in_qm2 */
2514 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_SHIFT 2
2515 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */
2516 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
2517 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */
2518 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_SHIFT 4
2519 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_MASK 0x1 /* cf_array_active */
2520 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_SHIFT 5
2521 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */
2522 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_SHIFT 6
2523 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */
2524 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_SHIFT 7
2526 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */
2527 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_SHIFT 0
2528 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */
2529 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_SHIFT 1
2530 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */
2531 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_SHIFT 2
2532 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */
2533 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_BIT11_SHIFT 3
2534 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */
2535 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_BIT12_SHIFT 4
2536 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */
2537 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_BIT13_SHIFT 5
2538 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */
2539 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
2540 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */
2541 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
2543 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */
2544 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF0_SHIFT 0
2545 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */
2546 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF1_SHIFT 2
2547 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */
2548 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF2_SHIFT 4
2549 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */
2550 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF3_SHIFT 6
2552 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */
2553 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF4_SHIFT 0
2554 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */
2555 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF5_SHIFT 2
2556 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */
2557 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF6_SHIFT 4
2558 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */
2559 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF7_SHIFT 6
2561 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */
2562 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF8_SHIFT 0
2563 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */
2564 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF9_SHIFT 2
2565 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */
2566 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF10_SHIFT 4
2567 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */
2568 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF11_SHIFT 6
2570 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */
2571 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF12_SHIFT 0
2572 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */
2573 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF13_SHIFT 2
2574 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */
2575 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF14_SHIFT 4
2576 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */
2577 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF15_SHIFT 6
2579 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */
2580 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
2581 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3 /* cf_array_cf */
2582 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
2583 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */
2584 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_SHIFT 4
2585 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */
2586 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
2588 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */
2589 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
2590 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */
2591 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_SHIFT 2
2592 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */
2593 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_SHIFT 4
2594 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */
2595 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_SHIFT 6
2596 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */
2597 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_SHIFT 7
2599 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
2600 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_SHIFT 0
2601 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */
2602 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_SHIFT 1
2603 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */
2604 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_SHIFT 2
2605 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */
2606 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_SHIFT 3
2607 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */
2608 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_SHIFT 4
2609 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */
2610 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_SHIFT 5
2611 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */
2612 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_SHIFT 6
2613 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */
2614 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_SHIFT 7
2616 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */
2617 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_SHIFT 0
2618 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */
2619 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_SHIFT 1
2620 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */
2621 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_SHIFT 2
2622 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */
2623 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_SHIFT 3
2624 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */
2625 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_SHIFT 4
2626 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */
2627 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_SHIFT 5
2628 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */
2629 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
2630 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1 /* cf_array_cf_en */
2631 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
2633 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */
2634 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
2635 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */
2636 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
2637 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */
2638 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
2639 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */
2640 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_SHIFT 3
2641 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */
2642 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
2643 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */
2644 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
2645 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */
2646 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_SHIFT 6
2647 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */
2648 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_SHIFT 7
2650 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */
2651 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_SHIFT 0
2652 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */
2653 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_SHIFT 1
2654 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */
2655 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
2656 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */
2657 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_SHIFT 3
2658 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */
2659 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_SHIFT 4
2660 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */
2661 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_SHIFT 5
2662 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */
2663 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
2664 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */
2665 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_SHIFT 7
2667 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_MASK 0x1 /* rule10en */
2668 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_SHIFT 0
2669 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */
2670 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_SHIFT 1
2671 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */
2672 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
2673 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */
2674 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
2675 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_MASK 0x1 /* rule14en */
2676 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_SHIFT 4
2677 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */
2678 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_SHIFT 5
2679 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */
2680 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_SHIFT 6
2681 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */
2682 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_SHIFT 7
2684 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_MASK 0x1 /* rule18en */
2685 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_SHIFT 0
2686 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_MASK 0x1 /* rule19en */
2687 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_SHIFT 1
2688 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 /* rule20en */
2689 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
2690 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 /* rule21en */
2691 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
2692 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */
2693 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
2694 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 /* rule23en */
2695 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
2696 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */
2697 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
2698 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */
2699 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
2701 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */
2702 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
2703 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */
2704 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
2705 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */
2706 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
2707 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */
2708 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
2709 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */
2710 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
2711 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */
2712 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
2713 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_MASK 0x3 /* cf23 */
2714 #define E5_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
2715 u8 byte2 /* byte2 */;
2716 __le16 physical_q0 /* physical_q0 */;
2717 __le16 tx_l2_edpm_usg_cnt /* physical_q1 */;
2718 __le16 edpm_num_bds /* physical_q2 */;
2719 __le16 tx_bd_cons /* word3 */;
2720 __le16 tx_bd_prod /* word4 */;
2721 __le16 tx_class /* word5 */;
2722 __le16 conn_dpi /* conn_dpi */;
2726 struct e5_ystorm_eth_conn_ag_ctx
2728 u8 byte0 /* cdu_validation */;
2729 u8 state_and_core_id /* state_and_core_id */;
2731 #define E5_YSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */
2732 #define E5_YSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
2733 #define E5_YSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */
2734 #define E5_YSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
2735 #define E5_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 /* cf0 */
2736 #define E5_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 2
2737 #define E5_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_MASK 0x3 /* cf1 */
2738 #define E5_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_SHIFT 4
2739 #define E5_YSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */
2740 #define E5_YSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
2742 #define E5_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 /* cf0en */
2743 #define E5_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 0
2744 #define E5_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf1en */
2745 #define E5_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_SHIFT 1
2746 #define E5_YSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */
2747 #define E5_YSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
2748 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */
2749 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
2750 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */
2751 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
2752 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */
2753 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
2754 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */
2755 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
2756 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */
2757 #define E5_YSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
2758 u8 tx_q0_int_coallecing_timeset /* byte2 */;
2759 u8 byte3 /* byte3 */;
2760 __le16 word0 /* word0 */;
2761 __le32 terminate_spqe /* reg0 */;
2762 __le32 reg1 /* reg1 */;
2763 __le16 tx_bd_cons_upd /* word1 */;
2764 __le16 word2 /* word2 */;
2765 __le16 word3 /* word3 */;
2766 __le16 word4 /* word4 */;
2767 __le32 reg2 /* reg2 */;
2768 __le32 reg3 /* reg3 */;
2773 * GFT CAM line struct
2778 #define GFT_CAM_LINE_VALID_MASK 0x1 /* Indication if the line is valid. */
2779 #define GFT_CAM_LINE_VALID_SHIFT 0
2780 #define GFT_CAM_LINE_DATA_MASK 0x3FFF /* Data bits, the word that compared with the profile key */
2781 #define GFT_CAM_LINE_DATA_SHIFT 1
2782 #define GFT_CAM_LINE_MASK_BITS_MASK 0x3FFF /* Mask bits, indicate the bits in the data that are Dont-Care */
2783 #define GFT_CAM_LINE_MASK_BITS_SHIFT 15
2784 #define GFT_CAM_LINE_RESERVED1_MASK 0x7
2785 #define GFT_CAM_LINE_RESERVED1_SHIFT 29
2790 * GFT CAM line struct (for driversim use)
2792 struct gft_cam_line_mapped
2795 #define GFT_CAM_LINE_MAPPED_VALID_MASK 0x1 /* Indication if the line is valid. */
2796 #define GFT_CAM_LINE_MAPPED_VALID_SHIFT 0
2797 #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK 0x1 /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */
2798 #define GFT_CAM_LINE_MAPPED_IP_VERSION_SHIFT 1
2799 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK 0x1 /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */
2800 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_SHIFT 2
2801 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK 0xF /* use enum gft_profile_upper_protocol_type (use enum gft_profile_upper_protocol_type) */
2802 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_SHIFT 3
2803 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK 0xF /* use enum gft_profile_tunnel_type (use enum gft_profile_tunnel_type) */
2804 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_SHIFT 7
2805 #define GFT_CAM_LINE_MAPPED_PF_ID_MASK 0xF
2806 #define GFT_CAM_LINE_MAPPED_PF_ID_SHIFT 11
2807 #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK_MASK 0x1 /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */
2808 #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK_SHIFT 15
2809 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK_MASK 0x1 /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */
2810 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK_SHIFT 16
2811 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK_MASK 0xF /* use enum gft_profile_upper_protocol_type (use enum gft_profile_upper_protocol_type) */
2812 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK_SHIFT 17
2813 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK_MASK 0xF /* use enum gft_profile_tunnel_type (use enum gft_profile_tunnel_type) */
2814 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK_SHIFT 21
2815 #define GFT_CAM_LINE_MAPPED_PF_ID_MASK_MASK 0xF
2816 #define GFT_CAM_LINE_MAPPED_PF_ID_MASK_SHIFT 25
2817 #define GFT_CAM_LINE_MAPPED_RESERVED1_MASK 0x7
2818 #define GFT_CAM_LINE_MAPPED_RESERVED1_SHIFT 29
2822 union gft_cam_line_union
2824 struct gft_cam_line cam_line;
2825 struct gft_cam_line_mapped cam_line_mapped;
2830 * Used in gft_profile_key: Indication for ip version
2832 enum gft_profile_ip_version
2836 MAX_GFT_PROFILE_IP_VERSION
2841 * Profile key stucr fot GFT logic in Prs
2843 struct gft_profile_key
2846 #define GFT_PROFILE_KEY_IP_VERSION_MASK 0x1 /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */
2847 #define GFT_PROFILE_KEY_IP_VERSION_SHIFT 0
2848 #define GFT_PROFILE_KEY_TUNNEL_IP_VERSION_MASK 0x1 /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */
2849 #define GFT_PROFILE_KEY_TUNNEL_IP_VERSION_SHIFT 1
2850 #define GFT_PROFILE_KEY_UPPER_PROTOCOL_TYPE_MASK 0xF /* use enum gft_profile_upper_protocol_type (use enum gft_profile_upper_protocol_type) */
2851 #define GFT_PROFILE_KEY_UPPER_PROTOCOL_TYPE_SHIFT 2
2852 #define GFT_PROFILE_KEY_TUNNEL_TYPE_MASK 0xF /* use enum gft_profile_tunnel_type (use enum gft_profile_tunnel_type) */
2853 #define GFT_PROFILE_KEY_TUNNEL_TYPE_SHIFT 6
2854 #define GFT_PROFILE_KEY_PF_ID_MASK 0xF
2855 #define GFT_PROFILE_KEY_PF_ID_SHIFT 10
2856 #define GFT_PROFILE_KEY_RESERVED0_MASK 0x3
2857 #define GFT_PROFILE_KEY_RESERVED0_SHIFT 14
2862 * Used in gft_profile_key: Indication for tunnel type
2864 enum gft_profile_tunnel_type
2866 GFT_PROFILE_NO_TUNNEL=0,
2867 GFT_PROFILE_VXLAN_TUNNEL=1,
2868 GFT_PROFILE_GRE_MAC_OR_NVGRE_TUNNEL=2,
2869 GFT_PROFILE_GRE_IP_TUNNEL=3,
2870 GFT_PROFILE_GENEVE_MAC_TUNNEL=4,
2871 GFT_PROFILE_GENEVE_IP_TUNNEL=5,
2872 MAX_GFT_PROFILE_TUNNEL_TYPE
2877 * Used in gft_profile_key: Indication for protocol type
2879 enum gft_profile_upper_protocol_type
2881 GFT_PROFILE_ROCE_PROTOCOL=0,
2882 GFT_PROFILE_RROCE_PROTOCOL=1,
2883 GFT_PROFILE_FCOE_PROTOCOL=2,
2884 GFT_PROFILE_ICMP_PROTOCOL=3,
2885 GFT_PROFILE_ARP_PROTOCOL=4,
2886 GFT_PROFILE_USER_TCP_SRC_PORT_1_INNER=5,
2887 GFT_PROFILE_USER_TCP_DST_PORT_1_INNER=6,
2888 GFT_PROFILE_TCP_PROTOCOL=7,
2889 GFT_PROFILE_USER_UDP_DST_PORT_1_INNER=8,
2890 GFT_PROFILE_USER_UDP_DST_PORT_2_OUTER=9,
2891 GFT_PROFILE_UDP_PROTOCOL=10,
2892 GFT_PROFILE_USER_IP_1_INNER=11,
2893 GFT_PROFILE_USER_IP_2_OUTER=12,
2894 GFT_PROFILE_USER_ETH_1_INNER=13,
2895 GFT_PROFILE_USER_ETH_2_OUTER=14,
2897 MAX_GFT_PROFILE_UPPER_PROTOCOL_TYPE
2902 * GFT RAM line struct
2907 #define GFT_RAM_LINE_VLAN_SELECT_MASK 0x3 /* (use enum gft_vlan_select) */
2908 #define GFT_RAM_LINE_VLAN_SELECT_SHIFT 0
2909 #define GFT_RAM_LINE_TUNNEL_ENTROPHY_MASK 0x1
2910 #define GFT_RAM_LINE_TUNNEL_ENTROPHY_SHIFT 2
2911 #define GFT_RAM_LINE_TUNNEL_TTL_EQUAL_ONE_MASK 0x1
2912 #define GFT_RAM_LINE_TUNNEL_TTL_EQUAL_ONE_SHIFT 3
2913 #define GFT_RAM_LINE_TUNNEL_TTL_MASK 0x1
2914 #define GFT_RAM_LINE_TUNNEL_TTL_SHIFT 4
2915 #define GFT_RAM_LINE_TUNNEL_ETHERTYPE_MASK 0x1
2916 #define GFT_RAM_LINE_TUNNEL_ETHERTYPE_SHIFT 5
2917 #define GFT_RAM_LINE_TUNNEL_DST_PORT_MASK 0x1
2918 #define GFT_RAM_LINE_TUNNEL_DST_PORT_SHIFT 6
2919 #define GFT_RAM_LINE_TUNNEL_SRC_PORT_MASK 0x1
2920 #define GFT_RAM_LINE_TUNNEL_SRC_PORT_SHIFT 7
2921 #define GFT_RAM_LINE_TUNNEL_DSCP_MASK 0x1
2922 #define GFT_RAM_LINE_TUNNEL_DSCP_SHIFT 8
2923 #define GFT_RAM_LINE_TUNNEL_OVER_IP_PROTOCOL_MASK 0x1
2924 #define GFT_RAM_LINE_TUNNEL_OVER_IP_PROTOCOL_SHIFT 9
2925 #define GFT_RAM_LINE_TUNNEL_DST_IP_MASK 0x1
2926 #define GFT_RAM_LINE_TUNNEL_DST_IP_SHIFT 10
2927 #define GFT_RAM_LINE_TUNNEL_SRC_IP_MASK 0x1
2928 #define GFT_RAM_LINE_TUNNEL_SRC_IP_SHIFT 11
2929 #define GFT_RAM_LINE_TUNNEL_PRIORITY_MASK 0x1
2930 #define GFT_RAM_LINE_TUNNEL_PRIORITY_SHIFT 12
2931 #define GFT_RAM_LINE_TUNNEL_PROVIDER_VLAN_MASK 0x1
2932 #define GFT_RAM_LINE_TUNNEL_PROVIDER_VLAN_SHIFT 13
2933 #define GFT_RAM_LINE_TUNNEL_VLAN_MASK 0x1
2934 #define GFT_RAM_LINE_TUNNEL_VLAN_SHIFT 14
2935 #define GFT_RAM_LINE_TUNNEL_DST_MAC_MASK 0x1
2936 #define GFT_RAM_LINE_TUNNEL_DST_MAC_SHIFT 15
2937 #define GFT_RAM_LINE_TUNNEL_SRC_MAC_MASK 0x1
2938 #define GFT_RAM_LINE_TUNNEL_SRC_MAC_SHIFT 16
2939 #define GFT_RAM_LINE_TTL_EQUAL_ONE_MASK 0x1
2940 #define GFT_RAM_LINE_TTL_EQUAL_ONE_SHIFT 17
2941 #define GFT_RAM_LINE_TTL_MASK 0x1
2942 #define GFT_RAM_LINE_TTL_SHIFT 18
2943 #define GFT_RAM_LINE_ETHERTYPE_MASK 0x1
2944 #define GFT_RAM_LINE_ETHERTYPE_SHIFT 19
2945 #define GFT_RAM_LINE_RESERVED0_MASK 0x1
2946 #define GFT_RAM_LINE_RESERVED0_SHIFT 20
2947 #define GFT_RAM_LINE_TCP_FLAG_FIN_MASK 0x1
2948 #define GFT_RAM_LINE_TCP_FLAG_FIN_SHIFT 21
2949 #define GFT_RAM_LINE_TCP_FLAG_SYN_MASK 0x1
2950 #define GFT_RAM_LINE_TCP_FLAG_SYN_SHIFT 22
2951 #define GFT_RAM_LINE_TCP_FLAG_RST_MASK 0x1
2952 #define GFT_RAM_LINE_TCP_FLAG_RST_SHIFT 23
2953 #define GFT_RAM_LINE_TCP_FLAG_PSH_MASK 0x1
2954 #define GFT_RAM_LINE_TCP_FLAG_PSH_SHIFT 24
2955 #define GFT_RAM_LINE_TCP_FLAG_ACK_MASK 0x1
2956 #define GFT_RAM_LINE_TCP_FLAG_ACK_SHIFT 25
2957 #define GFT_RAM_LINE_TCP_FLAG_URG_MASK 0x1
2958 #define GFT_RAM_LINE_TCP_FLAG_URG_SHIFT 26
2959 #define GFT_RAM_LINE_TCP_FLAG_ECE_MASK 0x1
2960 #define GFT_RAM_LINE_TCP_FLAG_ECE_SHIFT 27
2961 #define GFT_RAM_LINE_TCP_FLAG_CWR_MASK 0x1
2962 #define GFT_RAM_LINE_TCP_FLAG_CWR_SHIFT 28
2963 #define GFT_RAM_LINE_TCP_FLAG_NS_MASK 0x1
2964 #define GFT_RAM_LINE_TCP_FLAG_NS_SHIFT 29
2965 #define GFT_RAM_LINE_DST_PORT_MASK 0x1
2966 #define GFT_RAM_LINE_DST_PORT_SHIFT 30
2967 #define GFT_RAM_LINE_SRC_PORT_MASK 0x1
2968 #define GFT_RAM_LINE_SRC_PORT_SHIFT 31
2970 #define GFT_RAM_LINE_DSCP_MASK 0x1
2971 #define GFT_RAM_LINE_DSCP_SHIFT 0
2972 #define GFT_RAM_LINE_OVER_IP_PROTOCOL_MASK 0x1
2973 #define GFT_RAM_LINE_OVER_IP_PROTOCOL_SHIFT 1
2974 #define GFT_RAM_LINE_DST_IP_MASK 0x1
2975 #define GFT_RAM_LINE_DST_IP_SHIFT 2
2976 #define GFT_RAM_LINE_SRC_IP_MASK 0x1
2977 #define GFT_RAM_LINE_SRC_IP_SHIFT 3
2978 #define GFT_RAM_LINE_PRIORITY_MASK 0x1
2979 #define GFT_RAM_LINE_PRIORITY_SHIFT 4
2980 #define GFT_RAM_LINE_PROVIDER_VLAN_MASK 0x1
2981 #define GFT_RAM_LINE_PROVIDER_VLAN_SHIFT 5
2982 #define GFT_RAM_LINE_VLAN_MASK 0x1
2983 #define GFT_RAM_LINE_VLAN_SHIFT 6
2984 #define GFT_RAM_LINE_DST_MAC_MASK 0x1
2985 #define GFT_RAM_LINE_DST_MAC_SHIFT 7
2986 #define GFT_RAM_LINE_SRC_MAC_MASK 0x1
2987 #define GFT_RAM_LINE_SRC_MAC_SHIFT 8
2988 #define GFT_RAM_LINE_TENANT_ID_MASK 0x1
2989 #define GFT_RAM_LINE_TENANT_ID_SHIFT 9
2990 #define GFT_RAM_LINE_RESERVED1_MASK 0x3FFFFF
2991 #define GFT_RAM_LINE_RESERVED1_SHIFT 10
2996 * Used in the first 2 bits for gft_ram_line: Indication for vlan mask
2998 enum gft_vlan_select
3000 INNER_PROVIDER_VLAN=0,
3002 OUTER_PROVIDER_VLAN=2,
3007 #endif /* __ECORE_HSI_ETH__ */