1 #ifndef __5710_HSI_VBD__
2 #define __5710_HSI_VBD__
3 
4 /*
5  * attention bits $$KEEP_ENDIANNESS$$
6  */
7 struct atten_sp_status_block
8 {
9 	u32_t attn_bits /* 16 bit of attention signal lines */;
10 	u32_t attn_bits_ack /* 16 bit of attention signal ack */;
11 	u8_t status_block_id /* status block id */;
12 	u8_t reserved0 /* resreved for padding */;
13 	u16_t attn_bits_index /* attention bits running index */;
14 	u32_t reserved1 /* resreved for padding */;
15 };
16 
17 
18 /*
19  * The eth aggregative context of Cstorm
20  */
21 struct cstorm_eth_ag_context
22 {
23 	u32_t __reserved0[10];
24 };
25 
26 
27 /*
28  * The iscsi aggregative context of Cstorm
29  */
30 struct cstorm_iscsi_ag_context
31 {
32 	u32_t agg_vars1;
33 		#define CSTORM_ISCSI_AG_CONTEXT_STATE                                                (0xFF<<0) /* BitField agg_vars1Various aggregative variables	The state of the connection */
34 		#define CSTORM_ISCSI_AG_CONTEXT_STATE_SHIFT                                          0
35 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0                                      (0x1<<8) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
36 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                8
37 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1                                      (0x1<<9) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
38 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                9
39 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2                                      (0x1<<10) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
40 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                10
41 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3                                      (0x1<<11) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
42 		#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                11
43 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN                           (0x1<<12) /* BitField agg_vars1Various aggregative variables	ULP Rx SE counter flag enable */
44 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN_SHIFT                     12
45 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN                          (0x1<<13) /* BitField agg_vars1Various aggregative variables	ULP Rx invalidate counter flag enable */
46 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN_SHIFT                    13
47 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF                                            (0x3<<14) /* BitField agg_vars1Various aggregative variables	Aux 4 counter flag */
48 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_SHIFT                                      14
49 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66                                         (0x3<<16) /* BitField agg_vars1Various aggregative variables	The connection QOS */
50 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66_SHIFT                                   16
51 		#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN                                 (0x1<<18) /* BitField agg_vars1Various aggregative variables	Enable decision rule for fin_received_cf */
52 		#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN_SHIFT                           18
53 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN                                         (0x1<<19) /* BitField agg_vars1Various aggregative variables	Enable decision rule for auxiliary counter flag 1 */
54 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT                                   19
55 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN                                         (0x1<<20) /* BitField agg_vars1Various aggregative variables	Enable decision rule for auxiliary counter flag 2 */
56 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN_SHIFT                                   20
57 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN                                         (0x1<<21) /* BitField agg_vars1Various aggregative variables	Enable decision rule for auxiliary counter flag 3 */
58 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT                                   21
59 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN                                         (0x1<<22) /* BitField agg_vars1Various aggregative variables	Enable decision rule for auxiliary counter flag 4 */
60 		#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN_SHIFT                                   22
61 		#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE                                       (0x7<<23) /* BitField agg_vars1Various aggregative variables	0-NOP, 1-EQ, 2-NEQ, 3-GT, 4-GE, 5-LS, 6-LE */
62 		#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE_SHIFT                                 23
63 		#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE                                         (0x3<<26) /* BitField agg_vars1Various aggregative variables	0-NOP, 1-EQ, 2-NEQ */
64 		#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE_SHIFT                                   26
65 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52                                         (0x3<<28) /* BitField agg_vars1Various aggregative variables	0-NOP, 1-EQ, 2-NEQ */
66 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52_SHIFT                                   28
67 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53                                         (0x3<<30) /* BitField agg_vars1Various aggregative variables	0-NOP, 1-EQ, 2-NEQ */
68 		#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53_SHIFT                                   30
69 #if defined(__BIG_ENDIAN)
70 	u8_t __aux1_th /* Aux1 threhsold for the decision */;
71 	u8_t __aux1_val /* Aux1 aggregation value */;
72 	u16_t __agg_vars2 /* Various aggregative variables*/;
73 #elif defined(__LITTLE_ENDIAN)
74 	u16_t __agg_vars2 /* Various aggregative variables*/;
75 	u8_t __aux1_val /* Aux1 aggregation value */;
76 	u8_t __aux1_th /* Aux1 threhsold for the decision */;
77 #endif
78 	u32_t rel_seq /* The sequence to release */;
79 	u32_t rel_seq_th /* The threshold for the released sequence */;
80 #if defined(__BIG_ENDIAN)
81 	u16_t hq_cons /* The HQ Consumer */;
82 	u16_t hq_prod /* The HQ producer */;
83 #elif defined(__LITTLE_ENDIAN)
84 	u16_t hq_prod /* The HQ producer */;
85 	u16_t hq_cons /* The HQ Consumer */;
86 #endif
87 #if defined(__BIG_ENDIAN)
88 	u8_t __reserved62 /* Mask value for the decision algorithm of the general flags */;
89 	u8_t __reserved61 /* General flags */;
90 	u8_t __reserved60 /* ORQ consumer updated by the completor */;
91 	u8_t __reserved59 /* ORQ ULP Rx consumer */;
92 #elif defined(__LITTLE_ENDIAN)
93 	u8_t __reserved59 /* ORQ ULP Rx consumer */;
94 	u8_t __reserved60 /* ORQ consumer updated by the completor */;
95 	u8_t __reserved61 /* General flags */;
96 	u8_t __reserved62 /* Mask value for the decision algorithm of the general flags */;
97 #endif
98 #if defined(__BIG_ENDIAN)
99 	u16_t __reserved64 /* RQ consumer kept by the completor */;
100 	u16_t cq_u_prod /* Ustorm producer of CQ */;
101 #elif defined(__LITTLE_ENDIAN)
102 	u16_t cq_u_prod /* Ustorm producer of CQ */;
103 	u16_t __reserved64 /* RQ consumer kept by the completor */;
104 #endif
105 	u32_t __cq_u_prod1 /* Ustorm producer of CQ 1 */;
106 #if defined(__BIG_ENDIAN)
107 	u16_t __agg_vars3 /* Various aggregative variables*/;
108 	u16_t cq_u_pend /* Ustorm pending completions of CQ */;
109 #elif defined(__LITTLE_ENDIAN)
110 	u16_t cq_u_pend /* Ustorm pending completions of CQ */;
111 	u16_t __agg_vars3 /* Various aggregative variables*/;
112 #endif
113 #if defined(__BIG_ENDIAN)
114 	u16_t __aux2_th /* Aux2 threhsold for the decision */;
115 	u16_t aux2_val /* Aux2 aggregation value */;
116 #elif defined(__LITTLE_ENDIAN)
117 	u16_t aux2_val /* Aux2 aggregation value */;
118 	u16_t __aux2_th /* Aux2 threhsold for the decision */;
119 #endif
120 };
121 
122 
123 /*
124  * The toe aggregative context of Cstorm
125  */
126 struct cstorm_toe_ag_context
127 {
128 	u32_t __agg_vars1 /* Various aggregative variables*/;
129 #if defined(__BIG_ENDIAN)
130 	u8_t __aux1_th /* Aux1 threhsold for the decision */;
131 	u8_t __aux1_val /* Aux1 aggregation value */;
132 	u16_t __agg_vars2 /* Various aggregative variables*/;
133 #elif defined(__LITTLE_ENDIAN)
134 	u16_t __agg_vars2 /* Various aggregative variables*/;
135 	u8_t __aux1_val /* Aux1 aggregation value */;
136 	u8_t __aux1_th /* Aux1 threhsold for the decision */;
137 #endif
138 	u32_t rel_seq /* The sequence to release */;
139 	u32_t __rel_seq_threshold /* The threshold for the released sequence */;
140 #if defined(__BIG_ENDIAN)
141 	u16_t __reserved58 /* The HQ Consumer */;
142 	u16_t bd_prod /* The HQ producer */;
143 #elif defined(__LITTLE_ENDIAN)
144 	u16_t bd_prod /* The HQ producer */;
145 	u16_t __reserved58 /* The HQ Consumer */;
146 #endif
147 #if defined(__BIG_ENDIAN)
148 	u8_t __reserved62 /* Mask value for the decision algorithm of the general flags */;
149 	u8_t __reserved61 /* General flags */;
150 	u8_t __reserved60 /* ORQ consumer updated by the completor */;
151 	u8_t __completion_opcode /* ORQ ULP Rx consumer */;
152 #elif defined(__LITTLE_ENDIAN)
153 	u8_t __completion_opcode /* ORQ ULP Rx consumer */;
154 	u8_t __reserved60 /* ORQ consumer updated by the completor */;
155 	u8_t __reserved61 /* General flags */;
156 	u8_t __reserved62 /* Mask value for the decision algorithm of the general flags */;
157 #endif
158 #if defined(__BIG_ENDIAN)
159 	u16_t __reserved64 /* RQ consumer kept by the completor */;
160 	u16_t __reserved63 /* RQ consumer updated by the ULP RX */;
161 #elif defined(__LITTLE_ENDIAN)
162 	u16_t __reserved63 /* RQ consumer updated by the ULP RX */;
163 	u16_t __reserved64 /* RQ consumer kept by the completor */;
164 #endif
165 	u32_t snd_max /* The ACK sequence number received in the last completed DDP */;
166 #if defined(__BIG_ENDIAN)
167 	u16_t __agg_vars3 /* Various aggregative variables*/;
168 	u16_t __reserved67 /* A counter for the number of RQ WQEs with invalidate the the USTORM encountered */;
169 #elif defined(__LITTLE_ENDIAN)
170 	u16_t __reserved67 /* A counter for the number of RQ WQEs with invalidate the the USTORM encountered */;
171 	u16_t __agg_vars3 /* Various aggregative variables*/;
172 #endif
173 #if defined(__BIG_ENDIAN)
174 	u16_t __aux2_th /* Aux2 threhsold for the decision */;
175 	u16_t __aux2_val /* Aux2 aggregation value */;
176 #elif defined(__LITTLE_ENDIAN)
177 	u16_t __aux2_val /* Aux2 aggregation value */;
178 	u16_t __aux2_th /* Aux2 threhsold for the decision */;
179 #endif
180 };
181 
182 
183 /*
184  * dmae command structure
185  */
186 struct dmae_cmd
187 {
188 	u32_t opcode;
189 		#define DMAE_CMD_SRC                                                                 (0x1<<0) /* BitField opcode	Whether the source is the PCIe or the GRC. 0- The source is the PCIe 1- The source is the GRC. */
190 		#define DMAE_CMD_SRC_SHIFT                                                           0
191 		#define DMAE_CMD_DST                                                                 (0x3<<1) /* BitField opcode	The destination of the DMA can be: 0-None 1-PCIe 2-GRC 3-None  */
192 		#define DMAE_CMD_DST_SHIFT                                                           1
193 		#define DMAE_CMD_C_DST                                                               (0x1<<3) /* BitField opcode	The destination of the completion: 0-PCIe 1-GRC */
194 		#define DMAE_CMD_C_DST_SHIFT                                                         3
195 		#define DMAE_CMD_C_TYPE_ENABLE                                                       (0x1<<4) /* BitField opcode	Whether to write a completion word to the completion destination: 0-Do not write a completion word 1-Write the completion word  */
196 		#define DMAE_CMD_C_TYPE_ENABLE_SHIFT                                                 4
197 		#define DMAE_CMD_C_TYPE_CRC_ENABLE                                                   (0x1<<5) /* BitField opcode	Whether to write a CRC word to the completion destination 0-Do not write a CRC word 1-Write a CRC word  */
198 		#define DMAE_CMD_C_TYPE_CRC_ENABLE_SHIFT                                             5
199 		#define DMAE_CMD_C_TYPE_CRC_OFFSET                                                   (0x7<<6) /* BitField opcode	The CRC word should be taken from the DMAE GRC space from address 9+X, where X is the value in these bits. */
200 		#define DMAE_CMD_C_TYPE_CRC_OFFSET_SHIFT                                             6
201 		#define DMAE_CMD_ENDIANITY                                                           (0x3<<9) /* BitField opcode	swapping mode. */
202 		#define DMAE_CMD_ENDIANITY_SHIFT                                                     9
203 		#define DMAE_CMD_PORT                                                                (0x1<<11) /* BitField opcode	Which network port ID to present to the PCI request interface */
204 		#define DMAE_CMD_PORT_SHIFT                                                          11
205 		#define DMAE_CMD_CRC_RESET                                                           (0x1<<12) /* BitField opcode	reset crc result */
206 		#define DMAE_CMD_CRC_RESET_SHIFT                                                     12
207 		#define DMAE_CMD_SRC_RESET                                                           (0x1<<13) /* BitField opcode	reset source address in next go */
208 		#define DMAE_CMD_SRC_RESET_SHIFT                                                     13
209 		#define DMAE_CMD_DST_RESET                                                           (0x1<<14) /* BitField opcode	reset dest address in next go */
210 		#define DMAE_CMD_DST_RESET_SHIFT                                                     14
211 		#define DMAE_CMD_E1HVN                                                               (0x3<<15) /* BitField opcode	vnic number E2 and onwards source vnic */
212 		#define DMAE_CMD_E1HVN_SHIFT                                                         15
213 		#define DMAE_CMD_DST_VN                                                              (0x3<<17) /* BitField opcode	E2 and onwards dest vnic */
214 		#define DMAE_CMD_DST_VN_SHIFT                                                        17
215 		#define DMAE_CMD_C_FUNC                                                              (0x1<<19) /* BitField opcode	E2 and onwards which function gets the completion src_vn(e1hvn)-0 dst_vn-1 */
216 		#define DMAE_CMD_C_FUNC_SHIFT                                                        19
217 		#define DMAE_CMD_ERR_POLICY                                                          (0x3<<20) /* BitField opcode	E2 and onwards what to do when theres a completion and a PCI error regular-0 error indication-1 no completion-2 */
218 		#define DMAE_CMD_ERR_POLICY_SHIFT                                                    20
219 		#define DMAE_CMD_RESERVED0                                                           (0x3FF<<22) /* BitField opcode	 */
220 		#define DMAE_CMD_RESERVED0_SHIFT                                                     22
221 	u32_t src_addr_lo /* source address low/grc address */;
222 	u32_t src_addr_hi /* source address hi */;
223 	u32_t dst_addr_lo /* dest address low/grc address */;
224 	u32_t dst_addr_hi /* dest address hi */;
225 #if defined(__BIG_ENDIAN)
226 	u16_t opcode_iov;
227 		#define DMAE_CMD_SRC_VFID                                                            (0x3F<<0) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	source VF id */
228 		#define DMAE_CMD_SRC_VFID_SHIFT                                                      0
229 		#define DMAE_CMD_SRC_VFPF                                                            (0x1<<6) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	selects the source function PF-0, VF-1 */
230 		#define DMAE_CMD_SRC_VFPF_SHIFT                                                      6
231 		#define DMAE_CMD_RESERVED1                                                           (0x1<<7) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	 */
232 		#define DMAE_CMD_RESERVED1_SHIFT                                                     7
233 		#define DMAE_CMD_DST_VFID                                                            (0x3F<<8) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	destination VF id */
234 		#define DMAE_CMD_DST_VFID_SHIFT                                                      8
235 		#define DMAE_CMD_DST_VFPF                                                            (0x1<<14) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	selects the destination function PF-0, VF-1 */
236 		#define DMAE_CMD_DST_VFPF_SHIFT                                                      14
237 		#define DMAE_CMD_RESERVED2                                                           (0x1<<15) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	 */
238 		#define DMAE_CMD_RESERVED2_SHIFT                                                     15
239 	u16_t len /* copy length */;
240 #elif defined(__LITTLE_ENDIAN)
241 	u16_t len /* copy length */;
242 	u16_t opcode_iov;
243 		#define DMAE_CMD_SRC_VFID                                                            (0x3F<<0) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	source VF id */
244 		#define DMAE_CMD_SRC_VFID_SHIFT                                                      0
245 		#define DMAE_CMD_SRC_VFPF                                                            (0x1<<6) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	selects the source function PF-0, VF-1 */
246 		#define DMAE_CMD_SRC_VFPF_SHIFT                                                      6
247 		#define DMAE_CMD_RESERVED1                                                           (0x1<<7) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	 */
248 		#define DMAE_CMD_RESERVED1_SHIFT                                                     7
249 		#define DMAE_CMD_DST_VFID                                                            (0x3F<<8) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	destination VF id */
250 		#define DMAE_CMD_DST_VFID_SHIFT                                                      8
251 		#define DMAE_CMD_DST_VFPF                                                            (0x1<<14) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	selects the destination function PF-0, VF-1 */
252 		#define DMAE_CMD_DST_VFPF_SHIFT                                                      14
253 		#define DMAE_CMD_RESERVED2                                                           (0x1<<15) /* BitField opcode_iovE2 and onward, set to 0 for backward compatibility	 */
254 		#define DMAE_CMD_RESERVED2_SHIFT                                                     15
255 #endif
256 	u32_t comp_addr_lo /* completion address low/grc address */;
257 	u32_t comp_addr_hi /* completion address hi */;
258 	u32_t comp_val /* value to write to completion address */;
259 	u32_t crc32 /* crc32 result */;
260 	u32_t crc32_c /* crc32_c result */;
261 #if defined(__BIG_ENDIAN)
262 	u16_t crc16_c /* crc16_c result */;
263 	u16_t crc16 /* crc16 result */;
264 #elif defined(__LITTLE_ENDIAN)
265 	u16_t crc16 /* crc16 result */;
266 	u16_t crc16_c /* crc16_c result */;
267 #endif
268 #if defined(__BIG_ENDIAN)
269 	u16_t reserved3;
270 	u16_t crc_t10 /* crc_t10 result */;
271 #elif defined(__LITTLE_ENDIAN)
272 	u16_t crc_t10 /* crc_t10 result */;
273 	u16_t reserved3;
274 #endif
275 #if defined(__BIG_ENDIAN)
276 	u16_t xsum8 /* checksum8 result */;
277 	u16_t xsum16 /* checksum16 result */;
278 #elif defined(__LITTLE_ENDIAN)
279 	u16_t xsum16 /* checksum16 result */;
280 	u16_t xsum8 /* checksum8 result */;
281 #endif
282 };
283 
284 
285 /*
286  * common data for all protocols
287  */
288 struct doorbell_hdr_t
289 {
290 	u8_t data;
291 		#define DOORBELL_HDR_T_RX                                                            (0x1<<0) /* BitField data	1 for rx doorbell, 0 for tx doorbell */
292 		#define DOORBELL_HDR_T_RX_SHIFT                                                      0
293 		#define DOORBELL_HDR_T_DB_TYPE                                                       (0x1<<1) /* BitField data	0 for normal doorbell, 1 for advertise wnd doorbell */
294 		#define DOORBELL_HDR_T_DB_TYPE_SHIFT                                                 1
295 		#define DOORBELL_HDR_T_DPM_SIZE                                                      (0x3<<2) /* BitField data	rdma tx only: DPM transaction size specifier (64/128/256/512 bytes) */
296 		#define DOORBELL_HDR_T_DPM_SIZE_SHIFT                                                2
297 		#define DOORBELL_HDR_T_CONN_TYPE                                                     (0xF<<4) /* BitField data	connection type */
298 		#define DOORBELL_HDR_T_CONN_TYPE_SHIFT                                               4
299 };
300 
301 /*
302  * Ethernet doorbell
303  */
304 struct eth_tx_doorbell
305 {
306 #if defined(__BIG_ENDIAN)
307 	u16_t npackets /* number of data bytes that were added in the doorbell */;
308 	u8_t params;
309 		#define ETH_TX_DOORBELL_NUM_BDS                                                      (0x3F<<0) /* BitField params	number of buffer descriptors that were added in the doorbell */
310 		#define ETH_TX_DOORBELL_NUM_BDS_SHIFT                                                0
311 		#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG                                         (0x1<<6) /* BitField params	tx fin command flag */
312 		#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT                                   6
313 		#define ETH_TX_DOORBELL_SPARE                                                        (0x1<<7) /* BitField params	doorbell queue spare flag */
314 		#define ETH_TX_DOORBELL_SPARE_SHIFT                                                  7
315 	struct doorbell_hdr_t hdr;
316 #elif defined(__LITTLE_ENDIAN)
317 	struct doorbell_hdr_t hdr;
318 	u8_t params;
319 		#define ETH_TX_DOORBELL_NUM_BDS                                                      (0x3F<<0) /* BitField params	number of buffer descriptors that were added in the doorbell */
320 		#define ETH_TX_DOORBELL_NUM_BDS_SHIFT                                                0
321 		#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG                                         (0x1<<6) /* BitField params	tx fin command flag */
322 		#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT                                   6
323 		#define ETH_TX_DOORBELL_SPARE                                                        (0x1<<7) /* BitField params	doorbell queue spare flag */
324 		#define ETH_TX_DOORBELL_SPARE_SHIFT                                                  7
325 	u16_t npackets /* number of data bytes that were added in the doorbell */;
326 #endif
327 };
328 
329 
330 /*
331  * 3 lines. status block $$KEEP_ENDIANNESS$$
332  */
333 struct hc_status_block_e1x
334 {
335 	u16_t index_values[HC_SB_MAX_INDICES_E1X] /* indices reported by cstorm */;
336 	u16_t running_index[HC_SB_MAX_SM] /* Status Block running indices */;
337 	u32_t rsrv[11];
338 };
339 
340 /*
341  * host status block
342  */
343 struct host_hc_status_block_e1x
344 {
345 	struct hc_status_block_e1x sb /* fast path indices */;
346 };
347 
348 
349 /*
350  * 3 lines. status block $$KEEP_ENDIANNESS$$
351  */
352 struct hc_status_block_e2
353 {
354 	u16_t index_values[HC_SB_MAX_INDICES_E2] /* indices reported by cstorm */;
355 	u16_t running_index[HC_SB_MAX_SM] /* Status Block running indices */;
356 	u32_t reserved[11];
357 };
358 
359 /*
360  * host status block
361  */
362 struct host_hc_status_block_e2
363 {
364 	struct hc_status_block_e2 sb /* fast path indices */;
365 };
366 
367 
368 /*
369  * 5 lines. slow-path status block $$KEEP_ENDIANNESS$$
370  */
371 struct hc_sp_status_block
372 {
373 	u16_t index_values[HC_SP_SB_MAX_INDICES] /* indices reported by cstorm */;
374 	u16_t running_index /* Status Block running index */;
375 	u16_t rsrv;
376 	u32_t rsrv1;
377 };
378 
379 /*
380  * host status block
381  */
382 struct host_sp_status_block
383 {
384 	struct atten_sp_status_block atten_status_block /* attention bits section */;
385 	struct hc_sp_status_block sp_sb /* slow path indices */;
386 };
387 
388 
389 /*
390  * IGU driver acknowledgment register
391  */
392 struct igu_ack_register
393 {
394 #if defined(__BIG_ENDIAN)
395 	u16_t sb_id_and_flags;
396 		#define IGU_ACK_REGISTER_STATUS_BLOCK_ID                                             (0x1F<<0) /* BitField sb_id_and_flags	0-15: non default status blocks, 16: default status block */
397 		#define IGU_ACK_REGISTER_STATUS_BLOCK_ID_SHIFT                                       0
398 		#define IGU_ACK_REGISTER_STORM_ID                                                    (0x7<<5) /* BitField sb_id_and_flags	0-3:storm id, 4: attn status block (valid in default sb only) */
399 		#define IGU_ACK_REGISTER_STORM_ID_SHIFT                                              5
400 		#define IGU_ACK_REGISTER_UPDATE_INDEX                                                (0x1<<8) /* BitField sb_id_and_flags	if set, acknowledges status block index */
401 		#define IGU_ACK_REGISTER_UPDATE_INDEX_SHIFT                                          8
402 		#define IGU_ACK_REGISTER_INTERRUPT_MODE                                              (0x3<<9) /* BitField sb_id_and_flags	interrupt enable/disable/nop: use IGU_INT_xxx constants */
403 		#define IGU_ACK_REGISTER_INTERRUPT_MODE_SHIFT                                        9
404 		#define IGU_ACK_REGISTER_RESERVED                                                    (0x1F<<11) /* BitField sb_id_and_flags	 */
405 		#define IGU_ACK_REGISTER_RESERVED_SHIFT                                              11
406 	u16_t status_block_index /* status block index acknowledgement */;
407 #elif defined(__LITTLE_ENDIAN)
408 	u16_t status_block_index /* status block index acknowledgement */;
409 	u16_t sb_id_and_flags;
410 		#define IGU_ACK_REGISTER_STATUS_BLOCK_ID                                             (0x1F<<0) /* BitField sb_id_and_flags	0-15: non default status blocks, 16: default status block */
411 		#define IGU_ACK_REGISTER_STATUS_BLOCK_ID_SHIFT                                       0
412 		#define IGU_ACK_REGISTER_STORM_ID                                                    (0x7<<5) /* BitField sb_id_and_flags	0-3:storm id, 4: attn status block (valid in default sb only) */
413 		#define IGU_ACK_REGISTER_STORM_ID_SHIFT                                              5
414 		#define IGU_ACK_REGISTER_UPDATE_INDEX                                                (0x1<<8) /* BitField sb_id_and_flags	if set, acknowledges status block index */
415 		#define IGU_ACK_REGISTER_UPDATE_INDEX_SHIFT                                          8
416 		#define IGU_ACK_REGISTER_INTERRUPT_MODE                                              (0x3<<9) /* BitField sb_id_and_flags	interrupt enable/disable/nop: use IGU_INT_xxx constants */
417 		#define IGU_ACK_REGISTER_INTERRUPT_MODE_SHIFT                                        9
418 		#define IGU_ACK_REGISTER_RESERVED                                                    (0x1F<<11) /* BitField sb_id_and_flags	 */
419 		#define IGU_ACK_REGISTER_RESERVED_SHIFT                                              11
420 #endif
421 };
422 
423 
424 /*
425  * IGU driver acknowledgement register
426  */
427 struct igu_backward_compatible
428 {
429 	u32_t sb_id_and_flags;
430 		#define IGU_BACKWARD_COMPATIBLE_SB_INDEX                                             (0xFFFF<<0) /* BitField sb_id_and_flags	 */
431 		#define IGU_BACKWARD_COMPATIBLE_SB_INDEX_SHIFT                                       0
432 		#define IGU_BACKWARD_COMPATIBLE_SB_SELECT                                            (0x1F<<16) /* BitField sb_id_and_flags	 */
433 		#define IGU_BACKWARD_COMPATIBLE_SB_SELECT_SHIFT                                      16
434 		#define IGU_BACKWARD_COMPATIBLE_SEGMENT_ACCESS                                       (0x7<<21) /* BitField sb_id_and_flags	0-3:storm id, 4: attn status block (valid in default sb only) */
435 		#define IGU_BACKWARD_COMPATIBLE_SEGMENT_ACCESS_SHIFT                                 21
436 		#define IGU_BACKWARD_COMPATIBLE_BUPDATE                                              (0x1<<24) /* BitField sb_id_and_flags	if set, acknowledges status block index */
437 		#define IGU_BACKWARD_COMPATIBLE_BUPDATE_SHIFT                                        24
438 		#define IGU_BACKWARD_COMPATIBLE_ENABLE_INT                                           (0x3<<25) /* BitField sb_id_and_flags	interrupt enable/disable/nop: use IGU_INT_xxx constants */
439 		#define IGU_BACKWARD_COMPATIBLE_ENABLE_INT_SHIFT                                     25
440 		#define IGU_BACKWARD_COMPATIBLE_RESERVED_0                                           (0x1F<<27) /* BitField sb_id_and_flags	 */
441 		#define IGU_BACKWARD_COMPATIBLE_RESERVED_0_SHIFT                                     27
442 	u32_t reserved_2;
443 };
444 
445 
446 /*
447  * IGU driver acknowledgement register
448  */
449 struct igu_regular
450 {
451 	u32_t sb_id_and_flags;
452 		#define IGU_REGULAR_SB_INDEX                                                         (0xFFFFF<<0) /* BitField sb_id_and_flags	 */
453 		#define IGU_REGULAR_SB_INDEX_SHIFT                                                   0
454 		#define IGU_REGULAR_RESERVED0                                                        (0x1<<20) /* BitField sb_id_and_flags	 */
455 		#define IGU_REGULAR_RESERVED0_SHIFT                                                  20
456 		#define IGU_REGULAR_SEGMENT_ACCESS                                                   (0x7<<21) /* BitField sb_id_and_flags	21-23 (use enum igu_seg_access) */
457 		#define IGU_REGULAR_SEGMENT_ACCESS_SHIFT                                             21
458 		#define IGU_REGULAR_BUPDATE                                                          (0x1<<24) /* BitField sb_id_and_flags	 */
459 		#define IGU_REGULAR_BUPDATE_SHIFT                                                    24
460 		#define IGU_REGULAR_ENABLE_INT                                                       (0x3<<25) /* BitField sb_id_and_flags	interrupt enable/disable/nop (use enum igu_int_cmd) */
461 		#define IGU_REGULAR_ENABLE_INT_SHIFT                                                 25
462 		#define IGU_REGULAR_RESERVED_1                                                       (0x1<<27) /* BitField sb_id_and_flags	 */
463 		#define IGU_REGULAR_RESERVED_1_SHIFT                                                 27
464 		#define IGU_REGULAR_CLEANUP_TYPE                                                     (0x3<<28) /* BitField sb_id_and_flags	 */
465 		#define IGU_REGULAR_CLEANUP_TYPE_SHIFT                                               28
466 		#define IGU_REGULAR_CLEANUP_SET                                                      (0x1<<30) /* BitField sb_id_and_flags	 */
467 		#define IGU_REGULAR_CLEANUP_SET_SHIFT                                                30
468 		#define IGU_REGULAR_BCLEANUP                                                         (0x1<<31) /* BitField sb_id_and_flags	 */
469 		#define IGU_REGULAR_BCLEANUP_SHIFT                                                   31
470 	u32_t reserved_2;
471 };
472 
473 /*
474  * IGU driver acknowledgement register
475  */
476 union igu_consprod_reg
477 {
478 	struct igu_regular regular;
479 	struct igu_backward_compatible backward_compatible;
480 };
481 
482 
483 /*
484  * Igu control commands
485  */
486 enum igu_ctrl_cmd
487 {
488 	IGU_CTRL_CMD_TYPE_RD,
489 	IGU_CTRL_CMD_TYPE_WR,
490 	MAX_IGU_CTRL_CMD};
491 
492 
493 /*
494  * Control register for the IGU command register
495  */
496 struct igu_ctrl_reg
497 {
498 	u32_t ctrl_data;
499 		#define IGU_CTRL_REG_ADDRESS                                                         (0xFFF<<0) /* BitField ctrl_data	 */
500 		#define IGU_CTRL_REG_ADDRESS_SHIFT                                                   0
501 		#define IGU_CTRL_REG_FID                                                             (0x7F<<12) /* BitField ctrl_data	 */
502 		#define IGU_CTRL_REG_FID_SHIFT                                                       12
503 		#define IGU_CTRL_REG_RESERVED                                                        (0x1<<19) /* BitField ctrl_data	 */
504 		#define IGU_CTRL_REG_RESERVED_SHIFT                                                  19
505 		#define IGU_CTRL_REG_TYPE                                                            (0x1<<20) /* BitField ctrl_data	 (use enum igu_ctrl_cmd) */
506 		#define IGU_CTRL_REG_TYPE_SHIFT                                                      20
507 		#define IGU_CTRL_REG_UNUSED                                                          (0x7FF<<21) /* BitField ctrl_data	 */
508 		#define IGU_CTRL_REG_UNUSED_SHIFT                                                    21
509 };
510 
511 
512 /*
513  * Igu interrupt command
514  */
515 enum igu_int_cmd
516 {
517 	IGU_INT_ENABLE,
518 	IGU_INT_DISABLE,
519 	IGU_INT_NOP,
520 	IGU_INT_NOP2,
521 	MAX_IGU_INT_CMD};
522 
523 
524 
525 /*
526  * Igu segments
527  */
528 enum igu_seg_access
529 {
530 	IGU_SEG_ACCESS_NORM,
531 	IGU_SEG_ACCESS_DEF,
532 	IGU_SEG_ACCESS_ATTN,
533 	MAX_IGU_SEG_ACCESS};
534 
535 
536 /*
537  * iscsi doorbell
538  */
539 struct iscsi_tx_doorbell
540 {
541 #if defined(__BIG_ENDIAN)
542 	u16_t reserved /* number of data bytes that were added in the doorbell */;
543 	u8_t params;
544 		#define ISCSI_TX_DOORBELL_NUM_WQES                                                   (0x3F<<0) /* BitField params	number of buffer descriptors that were added in the doorbell */
545 		#define ISCSI_TX_DOORBELL_NUM_WQES_SHIFT                                             0
546 		#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG                                       (0x1<<6) /* BitField params	tx fin command flag */
547 		#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT                                 6
548 		#define ISCSI_TX_DOORBELL_SPARE                                                      (0x1<<7) /* BitField params	doorbell queue spare flag */
549 		#define ISCSI_TX_DOORBELL_SPARE_SHIFT                                                7
550 	struct doorbell_hdr_t hdr;
551 #elif defined(__LITTLE_ENDIAN)
552 	struct doorbell_hdr_t hdr;
553 	u8_t params;
554 		#define ISCSI_TX_DOORBELL_NUM_WQES                                                   (0x3F<<0) /* BitField params	number of buffer descriptors that were added in the doorbell */
555 		#define ISCSI_TX_DOORBELL_NUM_WQES_SHIFT                                             0
556 		#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG                                       (0x1<<6) /* BitField params	tx fin command flag */
557 		#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT                                 6
558 		#define ISCSI_TX_DOORBELL_SPARE                                                      (0x1<<7) /* BitField params	doorbell queue spare flag */
559 		#define ISCSI_TX_DOORBELL_SPARE_SHIFT                                                7
560 	u16_t reserved /* number of data bytes that were added in the doorbell */;
561 #endif
562 };
563 
564 
565 /*
566  * Parser parsing flags field
567  */
568 struct parsing_flags
569 {
570 	u16_t flags;
571 		#define PARSING_FLAGS_ETHERNET_ADDRESS_TYPE                                          (0x1<<0) /* BitField flagscontext flags	0=non-unicast, 1=unicast (use enum prs_flags_eth_addr_type) */
572 		#define PARSING_FLAGS_ETHERNET_ADDRESS_TYPE_SHIFT                                    0
573 		#define PARSING_FLAGS_INNER_VLAN_EXIST                                               (0x1<<1) /* BitField flagscontext flags	0 or 1 */
574 		#define PARSING_FLAGS_INNER_VLAN_EXIST_SHIFT                                         1
575 		#define PARSING_FLAGS_OUTER_VLAN_EXIST                                               (0x1<<2) /* BitField flagscontext flags	0 or 1 */
576 		#define PARSING_FLAGS_OUTER_VLAN_EXIST_SHIFT                                         2
577 		#define PARSING_FLAGS_OVER_ETHERNET_PROTOCOL                                         (0x3<<3) /* BitField flagscontext flags	0=un-known, 1=Ipv4, 2=Ipv6,3=LLC SNAP un-known. LLC SNAP here refers only to LLC/SNAP packets that do not have Ipv4 or Ipv6 above them. Ipv4 and Ipv6 indications are even if they are over LLC/SNAP and not directly over Ethernet (use enum prs_flags_over_eth) */
578 		#define PARSING_FLAGS_OVER_ETHERNET_PROTOCOL_SHIFT                                   3
579 		#define PARSING_FLAGS_IP_OPTIONS                                                     (0x1<<5) /* BitField flagscontext flags	0=no IP options / extension headers. 1=IP options / extension header exist */
580 		#define PARSING_FLAGS_IP_OPTIONS_SHIFT                                               5
581 		#define PARSING_FLAGS_FRAGMENTATION_STATUS                                           (0x1<<6) /* BitField flagscontext flags	0=non-fragmented, 1=fragmented */
582 		#define PARSING_FLAGS_FRAGMENTATION_STATUS_SHIFT                                     6
583 		#define PARSING_FLAGS_OVER_IP_PROTOCOL                                               (0x3<<7) /* BitField flagscontext flags	0=un-known, 1=TCP, 2=UDP (use enum prs_flags_over_ip) */
584 		#define PARSING_FLAGS_OVER_IP_PROTOCOL_SHIFT                                         7
585 		#define PARSING_FLAGS_PURE_ACK_INDICATION                                            (0x1<<9) /* BitField flagscontext flags	0=packet with data, 1=pure-ACK (use enum prs_flags_ack_type) */
586 		#define PARSING_FLAGS_PURE_ACK_INDICATION_SHIFT                                      9
587 		#define PARSING_FLAGS_TCP_OPTIONS_EXIST                                              (0x1<<10) /* BitField flagscontext flags	0=no TCP options. 1=TCP options */
588 		#define PARSING_FLAGS_TCP_OPTIONS_EXIST_SHIFT                                        10
589 		#define PARSING_FLAGS_TIME_STAMP_EXIST_FLAG                                          (0x1<<11) /* BitField flagscontext flags	According to the TCP header options parsing */
590 		#define PARSING_FLAGS_TIME_STAMP_EXIST_FLAG_SHIFT                                    11
591 		#define PARSING_FLAGS_CONNECTION_MATCH                                               (0x1<<12) /* BitField flagscontext flags	connection match in searcher indication */
592 		#define PARSING_FLAGS_CONNECTION_MATCH_SHIFT                                         12
593 		#define PARSING_FLAGS_LLC_SNAP                                                       (0x1<<13) /* BitField flagscontext flags	LLC SNAP indication */
594 		#define PARSING_FLAGS_LLC_SNAP_SHIFT                                                 13
595 		#define PARSING_FLAGS_RESERVED0                                                      (0x3<<14) /* BitField flagscontext flags	 */
596 		#define PARSING_FLAGS_RESERVED0_SHIFT                                                14
597 };
598 
599 
600 /*
601  * Parsing flags for TCP ACK type
602  */
603 enum prs_flags_ack_type
604 {
605 	PRS_FLAG_PUREACK_PIGGY,
606 	PRS_FLAG_PUREACK_PURE,
607 	MAX_PRS_FLAGS_ACK_TYPE};
608 
609 
610 /*
611  * Parsing flags for Ethernet address type
612  */
613 enum prs_flags_eth_addr_type
614 {
615 	PRS_FLAG_ETHTYPE_NON_UNICAST,
616 	PRS_FLAG_ETHTYPE_UNICAST,
617 	MAX_PRS_FLAGS_ETH_ADDR_TYPE};
618 
619 
620 /*
621  * Parsing flags for over-ethernet protocol
622  */
623 enum prs_flags_over_eth
624 {
625 	PRS_FLAG_OVERETH_UNKNOWN,
626 	PRS_FLAG_OVERETH_IPV4,
627 	PRS_FLAG_OVERETH_IPV6,
628 	PRS_FLAG_OVERETH_LLCSNAP_UNKNOWN,
629 	MAX_PRS_FLAGS_OVER_ETH};
630 
631 
632 /*
633  * Parsing flags for over-IP protocol
634  */
635 enum prs_flags_over_ip
636 {
637 	PRS_FLAG_OVERIP_UNKNOWN,
638 	PRS_FLAG_OVERIP_TCP,
639 	PRS_FLAG_OVERIP_UDP,
640 	MAX_PRS_FLAGS_OVER_IP};
641 
642 
643 /*
644  * SDM operation gen command (generate aggregative interrupt)
645  */
646 struct sdm_op_gen
647 {
648 	u32_t command;
649 		#define SDM_OP_GEN_COMP_PARAM                                                        (0x1F<<0) /* BitField commandcomp_param and comp_type	thread ID/aggr interrupt number/counter depending on the completion type */
650 		#define SDM_OP_GEN_COMP_PARAM_SHIFT                                                  0
651 		#define SDM_OP_GEN_COMP_TYPE                                                         (0x7<<5) /* BitField commandcomp_param and comp_type	Direct messages to CM / PCI switch are not supported in operation_gen completion */
652 		#define SDM_OP_GEN_COMP_TYPE_SHIFT                                                   5
653 		#define SDM_OP_GEN_AGG_VECT_IDX                                                      (0xFF<<8) /* BitField commandcomp_param and comp_type	bit index in aggregated interrupt vector */
654 		#define SDM_OP_GEN_AGG_VECT_IDX_SHIFT                                                8
655 		#define SDM_OP_GEN_AGG_VECT_IDX_VALID                                                (0x1<<16) /* BitField commandcomp_param and comp_type	 */
656 		#define SDM_OP_GEN_AGG_VECT_IDX_VALID_SHIFT                                          16
657 		#define SDM_OP_GEN_RESERVED                                                          (0x7FFF<<17) /* BitField commandcomp_param and comp_type	 */
658 		#define SDM_OP_GEN_RESERVED_SHIFT                                                    17
659 };
660 
661 
662 /*
663  * Timers connection context
664  */
665 struct timers_block_context
666 {
667 	u32_t __client0 /* data of client 0 of the timers block*/;
668 	u32_t __client1 /* data of client 1 of the timers block*/;
669 	u32_t __client2 /* data of client 2 of the timers block*/;
670 	u32_t flags;
671 		#define __TIMERS_BLOCK_CONTEXT_NUM_OF_ACTIVE_TIMERS                                  (0x3<<0) /* BitField flagscontext flags	number of active timers running */
672 		#define __TIMERS_BLOCK_CONTEXT_NUM_OF_ACTIVE_TIMERS_SHIFT                            0
673 		#define TIMERS_BLOCK_CONTEXT_CONN_VALID_FLG                                          (0x1<<2) /* BitField flagscontext flags	flag: is connection valid (should be set by driver to 1 in toe/iscsi connections) */
674 		#define TIMERS_BLOCK_CONTEXT_CONN_VALID_FLG_SHIFT                                    2
675 		#define __TIMERS_BLOCK_CONTEXT_RESERVED0                                             (0x1FFFFFFF<<3) /* BitField flagscontext flags	 */
676 		#define __TIMERS_BLOCK_CONTEXT_RESERVED0_SHIFT                                       3
677 };
678 
679 
680 /*
681  * advertise window doorbell
682  */
683 struct toe_adv_wnd_doorbell
684 {
685 #if defined(__BIG_ENDIAN)
686 	u16_t wnd_sz_lsb /* Less significant bits of advertise window update value */;
687 	u8_t wnd_sz_msb /* Most significant bits of advertise window update value */;
688 	struct doorbell_hdr_t hdr /* See description of the appropriate type */;
689 #elif defined(__LITTLE_ENDIAN)
690 	struct doorbell_hdr_t hdr /* See description of the appropriate type */;
691 	u8_t wnd_sz_msb /* Most significant bits of advertise window update value */;
692 	u16_t wnd_sz_lsb /* Less significant bits of advertise window update value */;
693 #endif
694 };
695 
696 
697 /*
698  * toe rx BDs update doorbell
699  */
700 struct toe_rx_bds_doorbell
701 {
702 #if defined(__BIG_ENDIAN)
703 	u16_t nbds /* BDs update value */;
704 	u8_t params;
705 		#define TOE_RX_BDS_DOORBELL_RESERVED                                                 (0x1F<<0) /* BitField params	reserved */
706 		#define TOE_RX_BDS_DOORBELL_RESERVED_SHIFT                                           0
707 		#define TOE_RX_BDS_DOORBELL_OPCODE                                                   (0x7<<5) /* BitField params	BDs update doorbell opcode (2) */
708 		#define TOE_RX_BDS_DOORBELL_OPCODE_SHIFT                                             5
709 	struct doorbell_hdr_t hdr;
710 #elif defined(__LITTLE_ENDIAN)
711 	struct doorbell_hdr_t hdr;
712 	u8_t params;
713 		#define TOE_RX_BDS_DOORBELL_RESERVED                                                 (0x1F<<0) /* BitField params	reserved */
714 		#define TOE_RX_BDS_DOORBELL_RESERVED_SHIFT                                           0
715 		#define TOE_RX_BDS_DOORBELL_OPCODE                                                   (0x7<<5) /* BitField params	BDs update doorbell opcode (2) */
716 		#define TOE_RX_BDS_DOORBELL_OPCODE_SHIFT                                             5
717 	u16_t nbds /* BDs update value */;
718 #endif
719 };
720 
721 
722 /*
723  * toe rx bytes and BDs update doorbell
724  */
725 struct toe_rx_bytes_and_bds_doorbell
726 {
727 #if defined(__BIG_ENDIAN)
728 	u16_t nbytes /* nbytes */;
729 	u8_t params;
730 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS                                           (0x1F<<0) /* BitField params	producer delta from the last doorbell */
731 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS_SHIFT                                     0
732 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE                                         (0x7<<5) /* BitField params	rx bytes and BDs update doorbell opcode (1) */
733 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE_SHIFT                                   5
734 	struct doorbell_hdr_t hdr;
735 #elif defined(__LITTLE_ENDIAN)
736 	struct doorbell_hdr_t hdr;
737 	u8_t params;
738 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS                                           (0x1F<<0) /* BitField params	producer delta from the last doorbell */
739 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS_SHIFT                                     0
740 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE                                         (0x7<<5) /* BitField params	rx bytes and BDs update doorbell opcode (1) */
741 		#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE_SHIFT                                   5
742 	u16_t nbytes /* nbytes */;
743 #endif
744 };
745 
746 
747 /*
748  * toe rx bytes doorbell
749  */
750 struct toe_rx_byte_doorbell
751 {
752 #if defined(__BIG_ENDIAN)
753 	u16_t nbytes_lsb /* bits [0:15] of nbytes */;
754 	u8_t params;
755 		#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB                                              (0x1F<<0) /* BitField params	bits [20:16] of nbytes */
756 		#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB_SHIFT                                        0
757 		#define TOE_RX_BYTE_DOORBELL_OPCODE                                                  (0x7<<5) /* BitField params	rx bytes doorbell opcode (0) */
758 		#define TOE_RX_BYTE_DOORBELL_OPCODE_SHIFT                                            5
759 	struct doorbell_hdr_t hdr;
760 #elif defined(__LITTLE_ENDIAN)
761 	struct doorbell_hdr_t hdr;
762 	u8_t params;
763 		#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB                                              (0x1F<<0) /* BitField params	bits [20:16] of nbytes */
764 		#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB_SHIFT                                        0
765 		#define TOE_RX_BYTE_DOORBELL_OPCODE                                                  (0x7<<5) /* BitField params	rx bytes doorbell opcode (0) */
766 		#define TOE_RX_BYTE_DOORBELL_OPCODE_SHIFT                                            5
767 	u16_t nbytes_lsb /* bits [0:15] of nbytes */;
768 #endif
769 };
770 
771 
772 /*
773  * toe rx consume GRQ doorbell
774  */
775 struct toe_rx_grq_doorbell
776 {
777 #if defined(__BIG_ENDIAN)
778 	u16_t nbytes_lsb /* bits [0:15] of nbytes */;
779 	u8_t params;
780 		#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB                                               (0x1F<<0) /* BitField params	bits [20:16] of nbytes */
781 		#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB_SHIFT                                         0
782 		#define TOE_RX_GRQ_DOORBELL_OPCODE                                                   (0x7<<5) /* BitField params	rx GRQ doorbell opcode (4) */
783 		#define TOE_RX_GRQ_DOORBELL_OPCODE_SHIFT                                             5
784 	struct doorbell_hdr_t hdr;
785 #elif defined(__LITTLE_ENDIAN)
786 	struct doorbell_hdr_t hdr;
787 	u8_t params;
788 		#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB                                               (0x1F<<0) /* BitField params	bits [20:16] of nbytes */
789 		#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB_SHIFT                                         0
790 		#define TOE_RX_GRQ_DOORBELL_OPCODE                                                   (0x7<<5) /* BitField params	rx GRQ doorbell opcode (4) */
791 		#define TOE_RX_GRQ_DOORBELL_OPCODE_SHIFT                                             5
792 	u16_t nbytes_lsb /* bits [0:15] of nbytes */;
793 #endif
794 };
795 
796 
797 /*
798  * toe doorbell
799  */
800 struct toe_tx_doorbell
801 {
802 #if defined(__BIG_ENDIAN)
803 	u16_t nbytes /* number of data bytes that were added in the doorbell */;
804 	u8_t params;
805 		#define TOE_TX_DOORBELL_NUM_BDS                                                      (0x3F<<0) /* BitField params	number of buffer descriptors that were added in the doorbell */
806 		#define TOE_TX_DOORBELL_NUM_BDS_SHIFT                                                0
807 		#define TOE_TX_DOORBELL_TX_FIN_FLAG                                                  (0x1<<6) /* BitField params	tx fin command flag */
808 		#define TOE_TX_DOORBELL_TX_FIN_FLAG_SHIFT                                            6
809 		#define TOE_TX_DOORBELL_FLUSH                                                        (0x1<<7) /* BitField params	doorbell queue spare flag */
810 		#define TOE_TX_DOORBELL_FLUSH_SHIFT                                                  7
811 	struct doorbell_hdr_t hdr;
812 #elif defined(__LITTLE_ENDIAN)
813 	struct doorbell_hdr_t hdr;
814 	u8_t params;
815 		#define TOE_TX_DOORBELL_NUM_BDS                                                      (0x3F<<0) /* BitField params	number of buffer descriptors that were added in the doorbell */
816 		#define TOE_TX_DOORBELL_NUM_BDS_SHIFT                                                0
817 		#define TOE_TX_DOORBELL_TX_FIN_FLAG                                                  (0x1<<6) /* BitField params	tx fin command flag */
818 		#define TOE_TX_DOORBELL_TX_FIN_FLAG_SHIFT                                            6
819 		#define TOE_TX_DOORBELL_FLUSH                                                        (0x1<<7) /* BitField params	doorbell queue spare flag */
820 		#define TOE_TX_DOORBELL_FLUSH_SHIFT                                                  7
821 	u16_t nbytes /* number of data bytes that were added in the doorbell */;
822 #endif
823 };
824 
825 
826 /*
827  * The eth aggregative context of Tstorm
828  */
829 struct tstorm_eth_ag_context
830 {
831 	u32_t __reserved0[14];
832 };
833 
834 
835 /*
836  * The fcoe extra aggregative context section of Tstorm
837  */
838 struct tstorm_fcoe_extra_ag_context_section
839 {
840 	u32_t __agg_val1 /* aggregated value 1 */;
841 #if defined(__BIG_ENDIAN)
842 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
843 	u8_t __agg_val3 /* aggregated value 3 */;
844 	u16_t __agg_val2 /* aggregated value 2 */;
845 #elif defined(__LITTLE_ENDIAN)
846 	u16_t __agg_val2 /* aggregated value 2 */;
847 	u8_t __agg_val3 /* aggregated value 3 */;
848 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
849 #endif
850 #if defined(__BIG_ENDIAN)
851 	u16_t __agg_val5;
852 	u8_t __agg_val6;
853 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
854 #elif defined(__LITTLE_ENDIAN)
855 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
856 	u8_t __agg_val6;
857 	u16_t __agg_val5;
858 #endif
859 	u32_t __lcq_prod /* Next sequence number to transmit, given by Tx */;
860 	u32_t rtt_seq /* Rtt recording   sequence number */;
861 	u32_t rtt_time /* Rtt recording   real time clock */;
862 	u32_t __reserved66;
863 	u32_t wnd_right_edge /* The right edge of the receive window. Updated by the XSTORM when a segment with ACK is transmitted */;
864 	u32_t tcp_agg_vars1;
865 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG                           (0x1<<0) /* BitField tcp_agg_vars1Various aggregative variables	Sticky bit that is set when FIN is sent and remains set */
866 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT                     0
867 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG                    (0x1<<1) /* BitField tcp_agg_vars1Various aggregative variables	The Tx indicates that it sent a FIN packet */
868 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT              1
869 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF                              (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag to indicate a window update */
870 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT                        2
871 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF                              (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that a timeout expired */
872 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT                        4
873 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN                           (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the WndUpd counter flag */
874 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT                     6
875 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN                           (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the Timeout counter flag */
876 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT                     7
877 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN                       (0x1<<8) /* BitField tcp_agg_vars1Various aggregative variables	If 1 then the Rxmit sequence decision rule is enabled */
878 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT                 8
879 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN                            (0x1<<9) /* BitField tcp_agg_vars1Various aggregative variables	If set then the SendNext decision rule is enabled */
880 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN_SHIFT                      9
881 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG                               (0x1<<10) /* BitField tcp_agg_vars1Various aggregative variables	 */
882 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                         10
883 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG                               (0x1<<11) /* BitField tcp_agg_vars1Various aggregative variables	 */
884 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT                         11
885 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN                              (0x1<<12) /* BitField tcp_agg_vars1Various aggregative variables	 */
886 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT                        12
887 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN                              (0x1<<13) /* BitField tcp_agg_vars1Various aggregative variables	 */
888 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT                        13
889 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF                                 (0x3<<14) /* BitField tcp_agg_vars1Various aggregative variables	 */
890 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_SHIFT                           14
891 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF                                 (0x3<<16) /* BitField tcp_agg_vars1Various aggregative variables	 */
892 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_SHIFT                           16
893 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED                              (0x1<<18) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that Tx has more to send, but has not enough window to send it */
894 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT                        18
895 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN                           (0x1<<19) /* BitField tcp_agg_vars1Various aggregative variables	 */
896 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT                     19
897 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN                           (0x1<<20) /* BitField tcp_agg_vars1Various aggregative variables	 */
898 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT                     20
899 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN                           (0x1<<21) /* BitField tcp_agg_vars1Various aggregative variables	 */
900 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT                     21
901 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1                             (0x3<<22) /* BitField tcp_agg_vars1Various aggregative variables	 */
902 		#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1_SHIFT                       22
903 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ                     (0xF<<24) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or goto SS comand sent */
904 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT               24
905 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ                     (0xF<<28) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or Goto SS command performed by the XSTORM */
906 		#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT               28
907 	u32_t snd_max /* Maximum sequence number that was ever transmitted */;
908 	u32_t __lcq_cons /* Last ACK sequence number sent by the Tx */;
909 	u32_t __reserved2;
910 };
911 
912 /*
913  * The fcoe aggregative context of Tstorm
914  */
915 struct tstorm_fcoe_ag_context
916 {
917 #if defined(__BIG_ENDIAN)
918 	u16_t ulp_credit;
919 	u8_t agg_vars1;
920 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0                                         (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
921 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                   0
922 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1                                         (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
923 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                   1
924 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2                                         (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
925 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                   2
926 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3                                         (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
927 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                   3
928 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF                                     (0x3<<4) /* BitField agg_vars1Various aggregative variables	 */
929 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT                               4
930 		#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG                                           (0x1<<6) /* BitField agg_vars1Various aggregative variables	 */
931 		#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT                                     6
932 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG                                           (0x1<<7) /* BitField agg_vars1Various aggregative variables	 */
933 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT                                     7
934 	u8_t state /* The state of the connection */;
935 #elif defined(__LITTLE_ENDIAN)
936 	u8_t state /* The state of the connection */;
937 	u8_t agg_vars1;
938 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0                                         (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
939 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                   0
940 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1                                         (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
941 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                   1
942 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2                                         (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
943 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                   2
944 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3                                         (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
945 		#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                   3
946 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF                                     (0x3<<4) /* BitField agg_vars1Various aggregative variables	 */
947 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT                               4
948 		#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG                                           (0x1<<6) /* BitField agg_vars1Various aggregative variables	 */
949 		#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT                                     6
950 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG                                           (0x1<<7) /* BitField agg_vars1Various aggregative variables	 */
951 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT                                     7
952 	u16_t ulp_credit;
953 #endif
954 #if defined(__BIG_ENDIAN)
955 	u16_t __agg_val4;
956 	u16_t agg_vars2;
957 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG                                           (0x1<<0) /* BitField agg_vars2Various aggregative variables	 */
958 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT                                     0
959 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG                                           (0x1<<1) /* BitField agg_vars2Various aggregative variables	 */
960 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT                                     1
961 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF                                             (0x3<<2) /* BitField agg_vars2Various aggregative variables	 */
962 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT                                       2
963 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF                                             (0x3<<4) /* BitField agg_vars2Various aggregative variables	 */
964 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT                                       4
965 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF                                             (0x3<<6) /* BitField agg_vars2Various aggregative variables	 */
966 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT                                       6
967 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF                                             (0x3<<8) /* BitField agg_vars2Various aggregative variables	 */
968 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT                                       8
969 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG                                           (0x1<<10) /* BitField agg_vars2Various aggregative variables	 */
970 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT                                     10
971 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN                                  (0x1<<11) /* BitField agg_vars2Various aggregative variables	 */
972 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT                            11
973 		#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN                                            (0x1<<12) /* BitField agg_vars2Various aggregative variables	 */
974 		#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT                                      12
975 		#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN                                            (0x1<<13) /* BitField agg_vars2Various aggregative variables	 */
976 		#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT                                      13
977 		#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN                                            (0x1<<14) /* BitField agg_vars2Various aggregative variables	 */
978 		#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT                                      14
979 		#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN                                            (0x1<<15) /* BitField agg_vars2Various aggregative variables	 */
980 		#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT                                      15
981 #elif defined(__LITTLE_ENDIAN)
982 	u16_t agg_vars2;
983 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG                                           (0x1<<0) /* BitField agg_vars2Various aggregative variables	 */
984 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT                                     0
985 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG                                           (0x1<<1) /* BitField agg_vars2Various aggregative variables	 */
986 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT                                     1
987 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF                                             (0x3<<2) /* BitField agg_vars2Various aggregative variables	 */
988 		#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT                                       2
989 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF                                             (0x3<<4) /* BitField agg_vars2Various aggregative variables	 */
990 		#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT                                       4
991 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF                                             (0x3<<6) /* BitField agg_vars2Various aggregative variables	 */
992 		#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT                                       6
993 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF                                             (0x3<<8) /* BitField agg_vars2Various aggregative variables	 */
994 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT                                       8
995 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG                                           (0x1<<10) /* BitField agg_vars2Various aggregative variables	 */
996 		#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT                                     10
997 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN                                  (0x1<<11) /* BitField agg_vars2Various aggregative variables	 */
998 		#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT                            11
999 		#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN                                            (0x1<<12) /* BitField agg_vars2Various aggregative variables	 */
1000 		#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT                                      12
1001 		#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN                                            (0x1<<13) /* BitField agg_vars2Various aggregative variables	 */
1002 		#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT                                      13
1003 		#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN                                            (0x1<<14) /* BitField agg_vars2Various aggregative variables	 */
1004 		#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT                                      14
1005 		#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN                                            (0x1<<15) /* BitField agg_vars2Various aggregative variables	 */
1006 		#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT                                      15
1007 	u16_t __agg_val4;
1008 #endif
1009 	struct tstorm_fcoe_extra_ag_context_section __extra_section /* Extra context section */;
1010 };
1011 
1012 
1013 
1014 /*
1015  * The iscsi aggregative context section of Tstorm
1016  */
1017 struct tstorm_iscsi_tcp_ag_context_section
1018 {
1019 	u32_t __agg_val1 /* aggregated value 1 */;
1020 #if defined(__BIG_ENDIAN)
1021 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
1022 	u8_t __agg_val3 /* aggregated value 3 */;
1023 	u16_t __agg_val2 /* aggregated value 2 */;
1024 #elif defined(__LITTLE_ENDIAN)
1025 	u16_t __agg_val2 /* aggregated value 2 */;
1026 	u8_t __agg_val3 /* aggregated value 3 */;
1027 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
1028 #endif
1029 #if defined(__BIG_ENDIAN)
1030 	u16_t __agg_val5;
1031 	u8_t __agg_val6;
1032 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1033 #elif defined(__LITTLE_ENDIAN)
1034 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1035 	u8_t __agg_val6;
1036 	u16_t __agg_val5;
1037 #endif
1038 	u32_t snd_nxt /* Next sequence number to transmit, given by Tx */;
1039 	u32_t rtt_seq /* Rtt recording   sequence number */;
1040 	u32_t rtt_time /* Rtt recording   real time clock */;
1041 	u32_t wnd_right_edge_local;
1042 	u32_t wnd_right_edge /* The right edge of the receive window. Updated by the XSTORM when a segment with ACK is transmitted */;
1043 	u32_t tcp_agg_vars1;
1044 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG                            (0x1<<0) /* BitField tcp_agg_vars1Various aggregative variables	Sticky bit that is set when FIN is sent and remains set */
1045 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT                      0
1046 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG                     (0x1<<1) /* BitField tcp_agg_vars1Various aggregative variables	The Tx indicates that it sent a FIN packet */
1047 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT               1
1048 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF                               (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag to indicate a window update */
1049 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT                         2
1050 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF                               (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that a timeout expired */
1051 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT                         4
1052 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN                            (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the WndUpd counter flag */
1053 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT                      6
1054 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN                            (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the Timeout counter flag */
1055 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT                      7
1056 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN                        (0x1<<8) /* BitField tcp_agg_vars1Various aggregative variables	If 1 then the Rxmit sequence decision rule is enabled */
1057 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT                  8
1058 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_SND_NXT_EN                               (0x1<<9) /* BitField tcp_agg_vars1Various aggregative variables	If set then the SendNext decision rule is enabled */
1059 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT                         9
1060 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_FLAG                                (0x1<<10) /* BitField tcp_agg_vars1Various aggregative variables	 */
1061 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                          10
1062 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_FLAG                                (0x1<<11) /* BitField tcp_agg_vars1Various aggregative variables	 */
1063 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT                          11
1064 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN                               (0x1<<12) /* BitField tcp_agg_vars1Various aggregative variables	 */
1065 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT                         12
1066 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN                               (0x1<<13) /* BitField tcp_agg_vars1Various aggregative variables	 */
1067 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT                         13
1068 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF                                  (0x3<<14) /* BitField tcp_agg_vars1Various aggregative variables	 */
1069 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF_SHIFT                            14
1070 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF                                  (0x3<<16) /* BitField tcp_agg_vars1Various aggregative variables	 */
1071 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF_SHIFT                            16
1072 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TX_BLOCKED                               (0x1<<18) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that Tx has more to send, but has not enough window to send it */
1073 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT                         18
1074 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN                            (0x1<<19) /* BitField tcp_agg_vars1Various aggregative variables	 */
1075 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT                      19
1076 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN                            (0x1<<20) /* BitField tcp_agg_vars1Various aggregative variables	 */
1077 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT                      20
1078 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN                            (0x1<<21) /* BitField tcp_agg_vars1Various aggregative variables	 */
1079 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT                      21
1080 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RESERVED1                              (0x3<<22) /* BitField tcp_agg_vars1Various aggregative variables	 */
1081 		#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT                        22
1082 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ                      (0xF<<24) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or goto SS comand sent */
1083 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT                24
1084 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ                      (0xF<<28) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or Goto SS command performed by the XSTORM */
1085 		#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT                28
1086 	u32_t snd_max /* Maximum sequence number that was ever transmitted */;
1087 	u32_t snd_una /* Last ACK sequence number sent by the Tx */;
1088 	u32_t __reserved2;
1089 };
1090 
1091 /*
1092  * The iscsi aggregative context of Tstorm
1093  */
1094 struct tstorm_iscsi_ag_context
1095 {
1096 #if defined(__BIG_ENDIAN)
1097 	u16_t ulp_credit;
1098 	u8_t agg_vars1;
1099 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0                                        (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
1100 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                  0
1101 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1                                        (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
1102 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                  1
1103 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2                                        (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
1104 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                  2
1105 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3                                        (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
1106 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                  3
1107 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF                                 (0x3<<4) /* BitField agg_vars1Various aggregative variables	 */
1108 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT                           4
1109 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG                                          (0x1<<6) /* BitField agg_vars1Various aggregative variables	 */
1110 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT                                    6
1111 		#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG                               (0x1<<7) /* BitField agg_vars1Various aggregative variables	 */
1112 		#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT                         7
1113 	u8_t state /* The state of the connection */;
1114 #elif defined(__LITTLE_ENDIAN)
1115 	u8_t state /* The state of the connection */;
1116 	u8_t agg_vars1;
1117 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0                                        (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
1118 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                  0
1119 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1                                        (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
1120 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                  1
1121 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2                                        (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
1122 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                  2
1123 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3                                        (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
1124 		#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                  3
1125 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF                                 (0x3<<4) /* BitField agg_vars1Various aggregative variables	 */
1126 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT                           4
1127 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG                                          (0x1<<6) /* BitField agg_vars1Various aggregative variables	 */
1128 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT                                    6
1129 		#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG                               (0x1<<7) /* BitField agg_vars1Various aggregative variables	 */
1130 		#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT                         7
1131 	u16_t ulp_credit;
1132 #endif
1133 #if defined(__BIG_ENDIAN)
1134 	u16_t __agg_val4;
1135 	u16_t agg_vars2;
1136 		#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG                                 (0x1<<0) /* BitField agg_vars2Various aggregative variables	 */
1137 		#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT                           0
1138 		#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG                                (0x1<<1) /* BitField agg_vars2Various aggregative variables	 */
1139 		#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT                          1
1140 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF                                        (0x3<<2) /* BitField agg_vars2Various aggregative variables	 */
1141 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT                                  2
1142 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF                                     (0x3<<4) /* BitField agg_vars2Various aggregative variables	 */
1143 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT                               4
1144 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF                                            (0x3<<6) /* BitField agg_vars2Various aggregative variables	 */
1145 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT                                      6
1146 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF                                            (0x3<<8) /* BitField agg_vars2Various aggregative variables	 */
1147 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT                                      8
1148 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG                                          (0x1<<10) /* BitField agg_vars2Various aggregative variables	 */
1149 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT                                    10
1150 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN                              (0x1<<11) /* BitField agg_vars2Various aggregative variables	 */
1151 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT                        11
1152 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN                                     (0x1<<12) /* BitField agg_vars2Various aggregative variables	 */
1153 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT                               12
1154 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN                                  (0x1<<13) /* BitField agg_vars2Various aggregative variables	 */
1155 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT                            13
1156 		#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN                                           (0x1<<14) /* BitField agg_vars2Various aggregative variables	 */
1157 		#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT                                     14
1158 		#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN                                           (0x1<<15) /* BitField agg_vars2Various aggregative variables	 */
1159 		#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT                                     15
1160 #elif defined(__LITTLE_ENDIAN)
1161 	u16_t agg_vars2;
1162 		#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG                                 (0x1<<0) /* BitField agg_vars2Various aggregative variables	 */
1163 		#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT                           0
1164 		#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG                                (0x1<<1) /* BitField agg_vars2Various aggregative variables	 */
1165 		#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT                          1
1166 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF                                        (0x3<<2) /* BitField agg_vars2Various aggregative variables	 */
1167 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT                                  2
1168 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF                                     (0x3<<4) /* BitField agg_vars2Various aggregative variables	 */
1169 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT                               4
1170 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF                                            (0x3<<6) /* BitField agg_vars2Various aggregative variables	 */
1171 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT                                      6
1172 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF                                            (0x3<<8) /* BitField agg_vars2Various aggregative variables	 */
1173 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT                                      8
1174 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG                                          (0x1<<10) /* BitField agg_vars2Various aggregative variables	 */
1175 		#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT                                    10
1176 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN                              (0x1<<11) /* BitField agg_vars2Various aggregative variables	 */
1177 		#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT                        11
1178 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN                                     (0x1<<12) /* BitField agg_vars2Various aggregative variables	 */
1179 		#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT                               12
1180 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN                                  (0x1<<13) /* BitField agg_vars2Various aggregative variables	 */
1181 		#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT                            13
1182 		#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN                                           (0x1<<14) /* BitField agg_vars2Various aggregative variables	 */
1183 		#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT                                     14
1184 		#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN                                           (0x1<<15) /* BitField agg_vars2Various aggregative variables	 */
1185 		#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT                                     15
1186 	u16_t __agg_val4;
1187 #endif
1188 	struct tstorm_iscsi_tcp_ag_context_section tcp /* TCP context section, shared in TOE and iSCSI */;
1189 };
1190 
1191 
1192 
1193 /*
1194  * The tcp aggregative context section of Tstorm
1195  */
1196 struct tstorm_tcp_tcp_ag_context_section
1197 {
1198 	u32_t __agg_val1 /* aggregated value 1 */;
1199 #if defined(__BIG_ENDIAN)
1200 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
1201 	u8_t __agg_val3 /* aggregated value 3 */;
1202 	u16_t __agg_val2 /* aggregated value 2 */;
1203 #elif defined(__LITTLE_ENDIAN)
1204 	u16_t __agg_val2 /* aggregated value 2 */;
1205 	u8_t __agg_val3 /* aggregated value 3 */;
1206 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
1207 #endif
1208 #if defined(__BIG_ENDIAN)
1209 	u16_t __agg_val5;
1210 	u8_t __agg_val6;
1211 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1212 #elif defined(__LITTLE_ENDIAN)
1213 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1214 	u8_t __agg_val6;
1215 	u16_t __agg_val5;
1216 #endif
1217 	u32_t snd_nxt /* Next sequence number to transmit, given by Tx */;
1218 	u32_t rtt_seq /* Rtt recording   sequence number */;
1219 	u32_t rtt_time /* Rtt recording   real time clock */;
1220 	u32_t __reserved66;
1221 	u32_t wnd_right_edge /* The right edge of the receive window. Updated by the XSTORM when a segment with ACK is transmitted */;
1222 	u32_t tcp_agg_vars1;
1223 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG                              (0x1<<0) /* BitField tcp_agg_vars1Various aggregative variables	Sticky bit that is set when FIN is sent and remains set */
1224 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT                        0
1225 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG                       (0x1<<1) /* BitField tcp_agg_vars1Various aggregative variables	The Tx indicates that it sent a FIN packet */
1226 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT                 1
1227 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF                                 (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag to indicate a window update */
1228 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT                           2
1229 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF                                 (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that a timeout expired */
1230 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT                           4
1231 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN                              (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the WndUpd counter flag */
1232 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT                        6
1233 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN                              (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the Timeout counter flag */
1234 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT                        7
1235 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN                          (0x1<<8) /* BitField tcp_agg_vars1Various aggregative variables	If 1 then the Rxmit sequence decision rule is enabled */
1236 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT                    8
1237 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN                                 (0x1<<9) /* BitField tcp_agg_vars1Various aggregative variables	If set then the SendNext decision rule is enabled */
1238 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT                           9
1239 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG                                  (0x1<<10) /* BitField tcp_agg_vars1Various aggregative variables	 */
1240 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                            10
1241 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG                                  (0x1<<11) /* BitField tcp_agg_vars1Various aggregative variables	 */
1242 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT                            11
1243 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN                                 (0x1<<12) /* BitField tcp_agg_vars1Various aggregative variables	 */
1244 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT                           12
1245 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN                                 (0x1<<13) /* BitField tcp_agg_vars1Various aggregative variables	 */
1246 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT                           13
1247 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF                                    (0x3<<14) /* BitField tcp_agg_vars1Various aggregative variables	 */
1248 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_SHIFT                              14
1249 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF                                    (0x3<<16) /* BitField tcp_agg_vars1Various aggregative variables	 */
1250 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_SHIFT                              16
1251 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED                                 (0x1<<18) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that Tx has more to send, but has not enough window to send it */
1252 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT                           18
1253 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN                              (0x1<<19) /* BitField tcp_agg_vars1Various aggregative variables	 */
1254 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT                        19
1255 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN                              (0x1<<20) /* BitField tcp_agg_vars1Various aggregative variables	 */
1256 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT                        20
1257 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN                              (0x1<<21) /* BitField tcp_agg_vars1Various aggregative variables	 */
1258 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT                        21
1259 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1                                (0x3<<22) /* BitField tcp_agg_vars1Various aggregative variables	 */
1260 		#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT                          22
1261 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ                        (0xF<<24) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or goto SS comand sent */
1262 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT                  24
1263 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ                        (0xF<<28) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or Goto SS command performed by the XSTORM */
1264 		#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT                  28
1265 	u32_t snd_max /* Maximum sequence number that was ever transmitted */;
1266 	u32_t snd_una /* Last ACK sequence number sent by the Tx */;
1267 	u32_t __reserved2;
1268 };
1269 
1270 
1271 /*
1272  * The toe aggregative context section of Tstorm
1273  */
1274 struct tstorm_toe_tcp_ag_context_section
1275 {
1276 	u32_t __agg_val1 /* aggregated value 1 */;
1277 #if defined(__BIG_ENDIAN)
1278 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
1279 	u8_t __agg_val3 /* aggregated value 3 */;
1280 	u16_t __agg_val2 /* aggregated value 2 */;
1281 #elif defined(__LITTLE_ENDIAN)
1282 	u16_t __agg_val2 /* aggregated value 2 */;
1283 	u8_t __agg_val3 /* aggregated value 3 */;
1284 	u8_t __tcp_agg_vars2 /* Various aggregative variables*/;
1285 #endif
1286 #if defined(__BIG_ENDIAN)
1287 	u16_t __agg_val5;
1288 	u8_t __agg_val6;
1289 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1290 #elif defined(__LITTLE_ENDIAN)
1291 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1292 	u8_t __agg_val6;
1293 	u16_t __agg_val5;
1294 #endif
1295 	u32_t snd_nxt /* Next sequence number to transmit, given by Tx */;
1296 	u32_t rtt_seq /* Rtt recording   sequence number */;
1297 	u32_t rtt_time /* Rtt recording   real time clock */;
1298 	u32_t __reserved66;
1299 	u32_t wnd_right_edge /* The right edge of the receive window. Updated by the XSTORM when a segment with ACK is transmitted */;
1300 	u32_t tcp_agg_vars1;
1301 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG                              (0x1<<0) /* BitField tcp_agg_vars1Various aggregative variables	Sticky bit that is set when FIN is sent and remains set */
1302 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT                        0
1303 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG                       (0x1<<1) /* BitField tcp_agg_vars1Various aggregative variables	The Tx indicates that it sent a FIN packet */
1304 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT                 1
1305 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED52                                 (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag to indicate a window update */
1306 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED52_SHIFT                           2
1307 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF                                 (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that a timeout expired */
1308 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT                           4
1309 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_WND_UPD_CF_EN                     (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the WndUpd counter flag */
1310 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_WND_UPD_CF_EN_SHIFT               6
1311 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN                              (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Enable the decision rule that considers the Timeout counter flag */
1312 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT                        7
1313 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN                          (0x1<<8) /* BitField tcp_agg_vars1Various aggregative variables	If 1 then the Rxmit sequence decision rule is enabled */
1314 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT                    8
1315 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_SND_NXT_EN                                 (0x1<<9) /* BitField tcp_agg_vars1Various aggregative variables	If set then the SendNext decision rule is enabled */
1316 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT                           9
1317 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_NEWRTTSAMPLE                               (0x1<<10) /* BitField tcp_agg_vars1Various aggregative variables	 */
1318 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_NEWRTTSAMPLE_SHIFT                         10
1319 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED55                                 (0x1<<11) /* BitField tcp_agg_vars1Various aggregative variables	 */
1320 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED55_SHIFT                           11
1321 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX1_CF_EN                        (0x1<<12) /* BitField tcp_agg_vars1Various aggregative variables	 */
1322 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX1_CF_EN_SHIFT                  12
1323 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX2_CF_EN                        (0x1<<13) /* BitField tcp_agg_vars1Various aggregative variables	 */
1324 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX2_CF_EN_SHIFT                  13
1325 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED56                                 (0x3<<14) /* BitField tcp_agg_vars1Various aggregative variables	 */
1326 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED56_SHIFT                           14
1327 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED57                                 (0x3<<16) /* BitField tcp_agg_vars1Various aggregative variables	 */
1328 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED57_SHIFT                           16
1329 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_BLOCKED                                 (0x1<<18) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that Tx has more to send, but has not enough window to send it */
1330 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT                           18
1331 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN                              (0x1<<19) /* BitField tcp_agg_vars1Various aggregative variables	 */
1332 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT                        19
1333 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN                              (0x1<<20) /* BitField tcp_agg_vars1Various aggregative variables	 */
1334 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT                        20
1335 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN                              (0x1<<21) /* BitField tcp_agg_vars1Various aggregative variables	 */
1336 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT                        21
1337 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED1                                (0x3<<22) /* BitField tcp_agg_vars1Various aggregative variables	 */
1338 		#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT                          22
1339 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ                        (0xF<<24) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or goto SS comand sent */
1340 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT                  24
1341 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ                        (0xF<<28) /* BitField tcp_agg_vars1Various aggregative variables	The sequence of the last fast retransmit or Goto SS command performed by the XSTORM */
1342 		#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT                  28
1343 	u32_t snd_max /* Maximum sequence number that was ever transmitted */;
1344 	u32_t snd_una /* Last ACK sequence number sent by the Tx */;
1345 	u32_t __reserved2;
1346 };
1347 
1348 /*
1349  * The toe aggregative context of Tstorm
1350  */
1351 struct tstorm_toe_ag_context
1352 {
1353 #if defined(__BIG_ENDIAN)
1354 	u16_t reserved54;
1355 	u8_t agg_vars1;
1356 		#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0                                          (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
1357 		#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                    0
1358 		#define TSTORM_TOE_AG_CONTEXT_RESERVED51                                             (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
1359 		#define TSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT                                       1
1360 		#define TSTORM_TOE_AG_CONTEXT_RESERVED52                                             (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
1361 		#define TSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT                                       2
1362 		#define TSTORM_TOE_AG_CONTEXT_RESERVED53                                             (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
1363 		#define TSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT                                       3
1364 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF                                   (0x3<<4) /* BitField agg_vars1Various aggregative variables	 */
1365 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT                             4
1366 		#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG                                            (0x1<<6) /* BitField agg_vars1Various aggregative variables	 */
1367 		#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG_SHIFT                                      6
1368 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG                                            (0x1<<7) /* BitField agg_vars1Various aggregative variables	 */
1369 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG_SHIFT                                      7
1370 	u8_t __state /* The state of the connection */;
1371 #elif defined(__LITTLE_ENDIAN)
1372 	u8_t __state /* The state of the connection */;
1373 	u8_t agg_vars1;
1374 		#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0                                          (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
1375 		#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                    0
1376 		#define TSTORM_TOE_AG_CONTEXT_RESERVED51                                             (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
1377 		#define TSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT                                       1
1378 		#define TSTORM_TOE_AG_CONTEXT_RESERVED52                                             (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
1379 		#define TSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT                                       2
1380 		#define TSTORM_TOE_AG_CONTEXT_RESERVED53                                             (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
1381 		#define TSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT                                       3
1382 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF                                   (0x3<<4) /* BitField agg_vars1Various aggregative variables	 */
1383 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT                             4
1384 		#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG                                            (0x1<<6) /* BitField agg_vars1Various aggregative variables	 */
1385 		#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG_SHIFT                                      6
1386 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG                                            (0x1<<7) /* BitField agg_vars1Various aggregative variables	 */
1387 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG_SHIFT                                      7
1388 	u16_t reserved54;
1389 #endif
1390 #if defined(__BIG_ENDIAN)
1391 	u16_t __agg_val4;
1392 	u16_t agg_vars2;
1393 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG                                            (0x1<<0) /* BitField agg_vars2Various aggregative variables	 */
1394 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG_SHIFT                                      0
1395 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG                                            (0x1<<1) /* BitField agg_vars2Various aggregative variables	 */
1396 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG_SHIFT                                      1
1397 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF                                              (0x3<<2) /* BitField agg_vars2Various aggregative variables	 */
1398 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF_SHIFT                                        2
1399 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF                                              (0x3<<4) /* BitField agg_vars2Various aggregative variables	 */
1400 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF_SHIFT                                        4
1401 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF                                              (0x3<<6) /* BitField agg_vars2Various aggregative variables	 */
1402 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF_SHIFT                                        6
1403 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF                                              (0x3<<8) /* BitField agg_vars2Various aggregative variables	 */
1404 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF_SHIFT                                        8
1405 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG                                            (0x1<<10) /* BitField agg_vars2Various aggregative variables	 */
1406 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG_SHIFT                                      10
1407 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN                                (0x1<<11) /* BitField agg_vars2Various aggregative variables	 */
1408 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT                          11
1409 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN                                    (0x1<<12) /* BitField agg_vars2Various aggregative variables	 */
1410 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN_SHIFT                              12
1411 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN                                    (0x1<<13) /* BitField agg_vars2Various aggregative variables	 */
1412 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN_SHIFT                              13
1413 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN                                    (0x1<<14) /* BitField agg_vars2Various aggregative variables	 */
1414 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN_SHIFT                              14
1415 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN                                    (0x1<<15) /* BitField agg_vars2Various aggregative variables	 */
1416 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN_SHIFT                              15
1417 #elif defined(__LITTLE_ENDIAN)
1418 	u16_t agg_vars2;
1419 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG                                            (0x1<<0) /* BitField agg_vars2Various aggregative variables	 */
1420 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG_SHIFT                                      0
1421 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG                                            (0x1<<1) /* BitField agg_vars2Various aggregative variables	 */
1422 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG_SHIFT                                      1
1423 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF                                              (0x3<<2) /* BitField agg_vars2Various aggregative variables	 */
1424 		#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF_SHIFT                                        2
1425 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF                                              (0x3<<4) /* BitField agg_vars2Various aggregative variables	 */
1426 		#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF_SHIFT                                        4
1427 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF                                              (0x3<<6) /* BitField agg_vars2Various aggregative variables	 */
1428 		#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF_SHIFT                                        6
1429 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF                                              (0x3<<8) /* BitField agg_vars2Various aggregative variables	 */
1430 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF_SHIFT                                        8
1431 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG                                            (0x1<<10) /* BitField agg_vars2Various aggregative variables	 */
1432 		#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG_SHIFT                                      10
1433 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN                                (0x1<<11) /* BitField agg_vars2Various aggregative variables	 */
1434 		#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT                          11
1435 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN                                    (0x1<<12) /* BitField agg_vars2Various aggregative variables	 */
1436 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN_SHIFT                              12
1437 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN                                    (0x1<<13) /* BitField agg_vars2Various aggregative variables	 */
1438 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN_SHIFT                              13
1439 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN                                    (0x1<<14) /* BitField agg_vars2Various aggregative variables	 */
1440 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN_SHIFT                              14
1441 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN                                    (0x1<<15) /* BitField agg_vars2Various aggregative variables	 */
1442 		#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN_SHIFT                              15
1443 	u16_t __agg_val4;
1444 #endif
1445 	struct tstorm_toe_tcp_ag_context_section tcp /* TCP context section, shared in TOE and iSCSI */;
1446 };
1447 
1448 
1449 
1450 /*
1451  * The eth aggregative context of Ustorm
1452  */
1453 struct ustorm_eth_ag_context
1454 {
1455 	u32_t __reserved0;
1456 #if defined(__BIG_ENDIAN)
1457 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1458 	u8_t __reserved2;
1459 	u16_t __reserved1;
1460 #elif defined(__LITTLE_ENDIAN)
1461 	u16_t __reserved1;
1462 	u8_t __reserved2;
1463 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1464 #endif
1465 	u32_t __reserved3[6];
1466 };
1467 
1468 
1469 /*
1470  * The fcoe aggregative context of Ustorm
1471  */
1472 struct ustorm_fcoe_ag_context
1473 {
1474 #if defined(__BIG_ENDIAN)
1475 	u8_t __aux_counter_flags /* auxiliary counter flags*/;
1476 	u8_t agg_vars2;
1477 		#define USTORM_FCOE_AG_CONTEXT_TX_CF                                                 (0x3<<0) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Tx STORM. For future use. */
1478 		#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT                                           0
1479 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF                                            (0x3<<2) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Timer. */
1480 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT                                      2
1481 		#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE                                        (0x7<<4) /* BitField agg_vars2various aggregation variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
1482 		#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT                                  4
1483 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK                                       (0x1<<7) /* BitField agg_vars2various aggregation variables	Used to mask the decision rule of AggVal2. Used in iSCSI. Should be 0 in all other protocols */
1484 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT                                 7
1485 	u8_t agg_vars1;
1486 		#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0                                       (0x1<<0) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 0 */
1487 		#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                 0
1488 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1                                         (0x1<<1) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 1 */
1489 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                   1
1490 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2                                         (0x1<<2) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 2 */
1491 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                   2
1492 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3                                         (0x1<<3) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 3 */
1493 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                   3
1494 		#define USTORM_FCOE_AG_CONTEXT_INV_CF                                                (0x3<<4) /* BitField agg_vars1various aggregation variables	Indicates a valid invalidate request. Set by the CMP STORM. */
1495 		#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT                                          4
1496 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF                                         (0x3<<6) /* BitField agg_vars1various aggregation variables	Set when a message was received from the CMP STORM. For future use. */
1497 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT                                   6
1498 	u8_t state /* The state of the connection */;
1499 #elif defined(__LITTLE_ENDIAN)
1500 	u8_t state /* The state of the connection */;
1501 	u8_t agg_vars1;
1502 		#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0                                       (0x1<<0) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 0 */
1503 		#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                 0
1504 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1                                         (0x1<<1) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 1 */
1505 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                   1
1506 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2                                         (0x1<<2) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 2 */
1507 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                   2
1508 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3                                         (0x1<<3) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 3 */
1509 		#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                   3
1510 		#define USTORM_FCOE_AG_CONTEXT_INV_CF                                                (0x3<<4) /* BitField agg_vars1various aggregation variables	Indicates a valid invalidate request. Set by the CMP STORM. */
1511 		#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT                                          4
1512 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF                                         (0x3<<6) /* BitField agg_vars1various aggregation variables	Set when a message was received from the CMP STORM. For future use. */
1513 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT                                   6
1514 	u8_t agg_vars2;
1515 		#define USTORM_FCOE_AG_CONTEXT_TX_CF                                                 (0x3<<0) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Tx STORM. For future use. */
1516 		#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT                                           0
1517 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF                                            (0x3<<2) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Timer. */
1518 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT                                      2
1519 		#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE                                        (0x7<<4) /* BitField agg_vars2various aggregation variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
1520 		#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT                                  4
1521 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK                                       (0x1<<7) /* BitField agg_vars2various aggregation variables	Used to mask the decision rule of AggVal2. Used in iSCSI. Should be 0 in all other protocols */
1522 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT                                 7
1523 	u8_t __aux_counter_flags /* auxiliary counter flags*/;
1524 #endif
1525 #if defined(__BIG_ENDIAN)
1526 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1527 	u8_t agg_misc2;
1528 	u16_t pbf_tx_seq_ack /* Sequence number of the last sequence transmitted by PBF. */;
1529 #elif defined(__LITTLE_ENDIAN)
1530 	u16_t pbf_tx_seq_ack /* Sequence number of the last sequence transmitted by PBF. */;
1531 	u8_t agg_misc2;
1532 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1533 #endif
1534 	u32_t agg_misc4;
1535 #if defined(__BIG_ENDIAN)
1536 	u8_t agg_val3_th;
1537 	u8_t agg_val3;
1538 	u16_t agg_misc3;
1539 #elif defined(__LITTLE_ENDIAN)
1540 	u16_t agg_misc3;
1541 	u8_t agg_val3;
1542 	u8_t agg_val3_th;
1543 #endif
1544 	u32_t expired_task_id /* Timer expiration task id */;
1545 	u32_t agg_misc4_th;
1546 #if defined(__BIG_ENDIAN)
1547 	u16_t cq_prod /* CQ producer updated by FW */;
1548 	u16_t cq_cons /* CQ consumer updated by driver via doorbell */;
1549 #elif defined(__LITTLE_ENDIAN)
1550 	u16_t cq_cons /* CQ consumer updated by driver via doorbell */;
1551 	u16_t cq_prod /* CQ producer updated by FW */;
1552 #endif
1553 #if defined(__BIG_ENDIAN)
1554 	u16_t __reserved2;
1555 	u8_t decision_rules;
1556 		#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE                                           (0x7<<0) /* BitField decision_rulesVarious decision rules	 */
1557 		#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT                                     0
1558 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE                                       (0x7<<3) /* BitField decision_rulesVarious decision rules	 */
1559 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT                                 3
1560 		#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG                                         (0x1<<6) /* BitField decision_rulesVarious decision rules	CQ negative arm indication updated via doorbell */
1561 		#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT                                   6
1562 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED1                                           (0x1<<7) /* BitField decision_rulesVarious decision rules	 */
1563 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT                                     7
1564 	u8_t decision_rule_enable_bits;
1565 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN                                  (0x1<<0) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1566 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT                            0
1567 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN                                      (0x1<<1) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1568 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT                                1
1569 		#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN                                              (0x1<<2) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1570 		#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT                                        2
1571 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN                                         (0x1<<3) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1572 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT                                   3
1573 		#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN                                          (0x1<<4) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1574 		#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT                                    4
1575 		#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN                                        (0x1<<5) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	The flush queues counter flag en.  */
1576 		#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT                                  5
1577 		#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN                                          (0x1<<6) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1578 		#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT                                    6
1579 		#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN                                            (0x1<<7) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1580 		#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT                                      7
1581 #elif defined(__LITTLE_ENDIAN)
1582 	u8_t decision_rule_enable_bits;
1583 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN                                  (0x1<<0) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1584 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT                            0
1585 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN                                      (0x1<<1) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1586 		#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT                                1
1587 		#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN                                              (0x1<<2) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1588 		#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT                                        2
1589 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN                                         (0x1<<3) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1590 		#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT                                   3
1591 		#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN                                          (0x1<<4) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1592 		#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT                                    4
1593 		#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN                                        (0x1<<5) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	The flush queues counter flag en.  */
1594 		#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT                                  5
1595 		#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN                                          (0x1<<6) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1596 		#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT                                    6
1597 		#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN                                            (0x1<<7) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1598 		#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT                                      7
1599 	u8_t decision_rules;
1600 		#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE                                           (0x7<<0) /* BitField decision_rulesVarious decision rules	 */
1601 		#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT                                     0
1602 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE                                       (0x7<<3) /* BitField decision_rulesVarious decision rules	 */
1603 		#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT                                 3
1604 		#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG                                         (0x1<<6) /* BitField decision_rulesVarious decision rules	CQ negative arm indication updated via doorbell */
1605 		#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT                                   6
1606 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED1                                           (0x1<<7) /* BitField decision_rulesVarious decision rules	 */
1607 		#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT                                     7
1608 	u16_t __reserved2;
1609 #endif
1610 };
1611 
1612 
1613 /*
1614  * The iscsi aggregative context of Ustorm
1615  */
1616 struct ustorm_iscsi_ag_context
1617 {
1618 #if defined(__BIG_ENDIAN)
1619 	u8_t __aux_counter_flags /* auxiliary counter flags*/;
1620 	u8_t agg_vars2;
1621 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF                                                (0x3<<0) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Tx STORM. For future use. */
1622 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT                                          0
1623 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF                                           (0x3<<2) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Timer. */
1624 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT                                     2
1625 		#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE                                       (0x7<<4) /* BitField agg_vars2various aggregation variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
1626 		#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT                                 4
1627 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK                                      (0x1<<7) /* BitField agg_vars2various aggregation variables	Used to mask the decision rule of AggVal2. Used in iSCSI. Should be 0 in all other protocols */
1628 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT                                7
1629 	u8_t agg_vars1;
1630 		#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0                                      (0x1<<0) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 0 */
1631 		#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                0
1632 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1                                        (0x1<<1) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 1 */
1633 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                  1
1634 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2                                        (0x1<<2) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 2 */
1635 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                  2
1636 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3                                        (0x1<<3) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 3 */
1637 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                  3
1638 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF                                               (0x3<<4) /* BitField agg_vars1various aggregation variables	Indicates a valid invalidate request. Set by the CMP STORM. */
1639 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT                                         4
1640 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF                                        (0x3<<6) /* BitField agg_vars1various aggregation variables	Set when a message was received from the CMP STORM. For future use. */
1641 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT                                  6
1642 	u8_t state /* The state of the connection */;
1643 #elif defined(__LITTLE_ENDIAN)
1644 	u8_t state /* The state of the connection */;
1645 	u8_t agg_vars1;
1646 		#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0                                      (0x1<<0) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 0 */
1647 		#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                0
1648 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1                                        (0x1<<1) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 1 */
1649 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                  1
1650 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2                                        (0x1<<2) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 2 */
1651 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                  2
1652 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3                                        (0x1<<3) /* BitField agg_vars1various aggregation variables	The connection is currently registered to the QM with queue index 3 */
1653 		#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                  3
1654 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF                                               (0x3<<4) /* BitField agg_vars1various aggregation variables	Indicates a valid invalidate request. Set by the CMP STORM. */
1655 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT                                         4
1656 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF                                        (0x3<<6) /* BitField agg_vars1various aggregation variables	Set when a message was received from the CMP STORM. For future use. */
1657 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT                                  6
1658 	u8_t agg_vars2;
1659 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF                                                (0x3<<0) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Tx STORM. For future use. */
1660 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT                                          0
1661 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF                                           (0x3<<2) /* BitField agg_vars2various aggregation variables	Set when a message was received from the Timer. */
1662 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT                                     2
1663 		#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE                                       (0x7<<4) /* BitField agg_vars2various aggregation variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
1664 		#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT                                 4
1665 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK                                      (0x1<<7) /* BitField agg_vars2various aggregation variables	Used to mask the decision rule of AggVal2. Used in iSCSI. Should be 0 in all other protocols */
1666 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT                                7
1667 	u8_t __aux_counter_flags /* auxiliary counter flags*/;
1668 #endif
1669 #if defined(__BIG_ENDIAN)
1670 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1671 	u8_t agg_misc2;
1672 	u16_t __cq_local_comp_itt_val /* The local completion ITT to complete. Set by the CMP STORM RO for USTORM. */;
1673 #elif defined(__LITTLE_ENDIAN)
1674 	u16_t __cq_local_comp_itt_val /* The local completion ITT to complete. Set by the CMP STORM RO for USTORM. */;
1675 	u8_t agg_misc2;
1676 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1677 #endif
1678 	u32_t agg_misc4;
1679 #if defined(__BIG_ENDIAN)
1680 	u8_t agg_val3_th;
1681 	u8_t agg_val3;
1682 	u16_t agg_misc3;
1683 #elif defined(__LITTLE_ENDIAN)
1684 	u16_t agg_misc3;
1685 	u8_t agg_val3;
1686 	u8_t agg_val3_th;
1687 #endif
1688 	u32_t agg_val1;
1689 	u32_t agg_misc4_th;
1690 #if defined(__BIG_ENDIAN)
1691 	u16_t agg_val2_th;
1692 	u16_t agg_val2;
1693 #elif defined(__LITTLE_ENDIAN)
1694 	u16_t agg_val2;
1695 	u16_t agg_val2_th;
1696 #endif
1697 #if defined(__BIG_ENDIAN)
1698 	u16_t __reserved2;
1699 	u8_t decision_rules;
1700 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE                                        (0x7<<0) /* BitField decision_rulesVarious decision rules	 */
1701 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT                                  0
1702 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE                                      (0x7<<3) /* BitField decision_rulesVarious decision rules	 */
1703 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT                                3
1704 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG                                  (0x1<<6) /* BitField decision_rulesVarious decision rules	 */
1705 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT                            6
1706 		#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1                                          (0x1<<7) /* BitField decision_rulesVarious decision rules	 */
1707 		#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT                                    7
1708 	u8_t decision_rule_enable_bits;
1709 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN                                            (0x1<<0) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1710 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT                                      0
1711 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN                                     (0x1<<1) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1712 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT                               1
1713 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN                                             (0x1<<2) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1714 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT                                       2
1715 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN                                        (0x1<<3) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1716 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT                                  3
1717 		#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN                                (0x1<<4) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	The local completion counter flag enable. Enabled by USTORM at the beginning. */
1718 		#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT                          4
1719 		#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN                              (0x1<<5) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	The flush queues counter flag en.  */
1720 		#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT                        5
1721 		#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN                                         (0x1<<6) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1722 		#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT                                   6
1723 		#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN                                           (0x1<<7) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1724 		#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT                                     7
1725 #elif defined(__LITTLE_ENDIAN)
1726 	u8_t decision_rule_enable_bits;
1727 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN                                            (0x1<<0) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1728 		#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT                                      0
1729 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN                                     (0x1<<1) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1730 		#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT                               1
1731 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN                                             (0x1<<2) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1732 		#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT                                       2
1733 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN                                        (0x1<<3) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1734 		#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT                                  3
1735 		#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN                                (0x1<<4) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	The local completion counter flag enable. Enabled by USTORM at the beginning. */
1736 		#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT                          4
1737 		#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN                              (0x1<<5) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	The flush queues counter flag en.  */
1738 		#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT                        5
1739 		#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN                                         (0x1<<6) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1740 		#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT                                   6
1741 		#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN                                           (0x1<<7) /* BitField decision_rule_enable_bitsEnable bits for various decision rules	 */
1742 		#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT                                     7
1743 	u8_t decision_rules;
1744 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE                                        (0x7<<0) /* BitField decision_rulesVarious decision rules	 */
1745 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT                                  0
1746 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE                                      (0x7<<3) /* BitField decision_rulesVarious decision rules	 */
1747 		#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT                                3
1748 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG                                  (0x1<<6) /* BitField decision_rulesVarious decision rules	 */
1749 		#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT                            6
1750 		#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1                                          (0x1<<7) /* BitField decision_rulesVarious decision rules	 */
1751 		#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT                                    7
1752 	u16_t __reserved2;
1753 #endif
1754 };
1755 
1756 
1757 /*
1758  * The toe aggregative context of Ustorm
1759  */
1760 struct ustorm_toe_ag_context
1761 {
1762 #if defined(__BIG_ENDIAN)
1763 	u8_t __aux_counter_flags /* auxiliary counter flags*/;
1764 	u8_t __agg_vars2 /* various aggregation variables*/;
1765 	u8_t __agg_vars1 /* various aggregation variables*/;
1766 	u8_t __state /* The state of the connection */;
1767 #elif defined(__LITTLE_ENDIAN)
1768 	u8_t __state /* The state of the connection */;
1769 	u8_t __agg_vars1 /* various aggregation variables*/;
1770 	u8_t __agg_vars2 /* various aggregation variables*/;
1771 	u8_t __aux_counter_flags /* auxiliary counter flags*/;
1772 #endif
1773 #if defined(__BIG_ENDIAN)
1774 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1775 	u8_t __agg_misc2;
1776 	u16_t __agg_misc1;
1777 #elif defined(__LITTLE_ENDIAN)
1778 	u16_t __agg_misc1;
1779 	u8_t __agg_misc2;
1780 	u8_t cdu_usage /* Will be used by the CDU for validation of the CID/connection type on doorbells. */;
1781 #endif
1782 	u32_t __agg_misc4;
1783 #if defined(__BIG_ENDIAN)
1784 	u8_t __agg_val3_th;
1785 	u8_t __agg_val3;
1786 	u16_t __agg_misc3;
1787 #elif defined(__LITTLE_ENDIAN)
1788 	u16_t __agg_misc3;
1789 	u8_t __agg_val3;
1790 	u8_t __agg_val3_th;
1791 #endif
1792 	u32_t driver_doorbell_info_ptr_lo /* the host pointer that consist the struct of info updated */;
1793 	u32_t driver_doorbell_info_ptr_hi /* the host pointer that consist the struct of info updated */;
1794 #if defined(__BIG_ENDIAN)
1795 	u16_t __agg_val2_th;
1796 	u16_t rq_prod /* The RQ producer */;
1797 #elif defined(__LITTLE_ENDIAN)
1798 	u16_t rq_prod /* The RQ producer */;
1799 	u16_t __agg_val2_th;
1800 #endif
1801 #if defined(__BIG_ENDIAN)
1802 	u16_t __reserved2;
1803 	u8_t decision_rules;
1804 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE                                        (0x7<<0) /* BitField decision_rulesVarious decision rules	 */
1805 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE_SHIFT                                  0
1806 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE                                        (0x7<<3) /* BitField decision_rulesVarious decision rules	 */
1807 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT                                  3
1808 		#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG                                    (0x1<<6) /* BitField decision_rulesVarious decision rules	 */
1809 		#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT                              6
1810 		#define __USTORM_TOE_AG_CONTEXT_RESERVED1                                            (0x1<<7) /* BitField decision_rulesVarious decision rules	 */
1811 		#define __USTORM_TOE_AG_CONTEXT_RESERVED1_SHIFT                                      7
1812 	u8_t __decision_rule_enable_bits /* Enable bits for various decision rules*/;
1813 #elif defined(__LITTLE_ENDIAN)
1814 	u8_t __decision_rule_enable_bits /* Enable bits for various decision rules*/;
1815 	u8_t decision_rules;
1816 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE                                        (0x7<<0) /* BitField decision_rulesVarious decision rules	 */
1817 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE_SHIFT                                  0
1818 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE                                        (0x7<<3) /* BitField decision_rulesVarious decision rules	 */
1819 		#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT                                  3
1820 		#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG                                    (0x1<<6) /* BitField decision_rulesVarious decision rules	 */
1821 		#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT                              6
1822 		#define __USTORM_TOE_AG_CONTEXT_RESERVED1                                            (0x1<<7) /* BitField decision_rulesVarious decision rules	 */
1823 		#define __USTORM_TOE_AG_CONTEXT_RESERVED1_SHIFT                                      7
1824 	u16_t __reserved2;
1825 #endif
1826 };
1827 
1828 
1829 /*
1830  * The eth aggregative context of Xstorm
1831  */
1832 struct xstorm_eth_ag_context
1833 {
1834 	u32_t reserved0;
1835 #if defined(__BIG_ENDIAN)
1836 	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
1837 	u8_t reserved2;
1838 	u16_t reserved1;
1839 #elif defined(__LITTLE_ENDIAN)
1840 	u16_t reserved1;
1841 	u8_t reserved2;
1842 	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
1843 #endif
1844 	u32_t reserved3[30];
1845 };
1846 
1847 
1848 /*
1849  * The fcoe aggregative context section of Xstorm
1850  */
1851 struct xstorm_fcoe_extra_ag_context_section
1852 {
1853 #if defined(__BIG_ENDIAN)
1854 	u8_t tcp_agg_vars1;
1855 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51                            (0x3<<0) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag used to rewind the DA timer */
1856 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT                      0
1857 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED                     (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 2 */
1858 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT               2
1859 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF                        (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 3 */
1860 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT                  4
1861 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN            (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	If set enables sending clear commands as port of the DA decision rules */
1862 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT      6
1863 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG           (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that there was a delayed ack timer expiration */
1864 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT     7
1865 	u8_t __reserved_da_cnt /* Counts the number of ACK requests received from the TSTORM with no registration to QM. */;
1866 	u16_t __mtu /* MSS used for nagle algorithm and for transmission */;
1867 #elif defined(__LITTLE_ENDIAN)
1868 	u16_t __mtu /* MSS used for nagle algorithm and for transmission */;
1869 	u8_t __reserved_da_cnt /* Counts the number of ACK requests received from the TSTORM with no registration to QM. */;
1870 	u8_t tcp_agg_vars1;
1871 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51                            (0x3<<0) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag used to rewind the DA timer */
1872 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT                      0
1873 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED                     (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 2 */
1874 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT               2
1875 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF                        (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 3 */
1876 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT                  4
1877 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN            (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	If set enables sending clear commands as port of the DA decision rules */
1878 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT      6
1879 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG           (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that there was a delayed ack timer expiration */
1880 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT     7
1881 #endif
1882 	u32_t snd_nxt /* The current sequence number to send */;
1883 	u32_t __xfrqe_bd_addr_lo /* The Current transmission window in bytes */;
1884 	u32_t __xfrqe_bd_addr_hi /* The current Send UNA sequence number */;
1885 	u32_t __xfrqe_data1 /* The current local advertised window to FE. */;
1886 #if defined(__BIG_ENDIAN)
1887 	u8_t __agg_val8_th /* aggregated value 8 - threshold */;
1888 	u8_t __tx_dest /* aggregated value 8 */;
1889 	u16_t tcp_agg_vars2;
1890 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57                            (0x1<<0) /* BitField tcp_agg_vars2Various aggregative variables	Used in TOE to indicate that FIN is sent on a BD to bypass the naggle rule */
1891 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT                      0
1892 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58                            (0x1<<1) /* BitField tcp_agg_vars2Various aggregative variables	Enables the tx window based decision */
1893 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT                      1
1894 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59                            (0x1<<2) /* BitField tcp_agg_vars2Various aggregative variables	The DA Timer status. If set indicates that the delayed ACK timer is active. */
1895 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT                      2
1896 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG                             (0x1<<3) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 3 */
1897 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT                       3
1898 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG                             (0x1<<4) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 4 */
1899 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT                       4
1900 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60                            (0x1<<5) /* BitField tcp_agg_vars2Various aggregative variables	Enable DA for the specific connection */
1901 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT                      5
1902 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN         (0x1<<6) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux2_cf */
1903 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT   6
1904 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN                     (0x1<<7) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux3_cf */
1905 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT               7
1906 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN               (0x1<<8) /* BitField tcp_agg_vars2Various aggregative variables	Enable Decision rule based on tx_fin_flag */
1907 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT         8
1908 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG                             (0x1<<9) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 1 */
1909 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                       9
1910 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF                            (0x3<<10) /* BitField tcp_agg_vars2Various aggregative variables	counter flag for setting the rto timer */
1911 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT                      10
1912 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF                 (0x3<<12) /* BitField tcp_agg_vars2Various aggregative variables	timestamp was updated counter flag */
1913 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT           12
1914 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF                    (0x3<<14) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary counter flag 8 */
1915 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT              14
1916 #elif defined(__LITTLE_ENDIAN)
1917 	u16_t tcp_agg_vars2;
1918 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57                            (0x1<<0) /* BitField tcp_agg_vars2Various aggregative variables	Used in TOE to indicate that FIN is sent on a BD to bypass the naggle rule */
1919 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT                      0
1920 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58                            (0x1<<1) /* BitField tcp_agg_vars2Various aggregative variables	Enables the tx window based decision */
1921 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT                      1
1922 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59                            (0x1<<2) /* BitField tcp_agg_vars2Various aggregative variables	The DA Timer status. If set indicates that the delayed ACK timer is active. */
1923 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT                      2
1924 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG                             (0x1<<3) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 3 */
1925 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT                       3
1926 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG                             (0x1<<4) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 4 */
1927 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT                       4
1928 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60                            (0x1<<5) /* BitField tcp_agg_vars2Various aggregative variables	Enable DA for the specific connection */
1929 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT                      5
1930 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN         (0x1<<6) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux2_cf */
1931 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT   6
1932 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN                     (0x1<<7) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux3_cf */
1933 		#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT               7
1934 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN               (0x1<<8) /* BitField tcp_agg_vars2Various aggregative variables	Enable Decision rule based on tx_fin_flag */
1935 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT         8
1936 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG                             (0x1<<9) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 1 */
1937 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                       9
1938 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF                            (0x3<<10) /* BitField tcp_agg_vars2Various aggregative variables	counter flag for setting the rto timer */
1939 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT                      10
1940 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF                 (0x3<<12) /* BitField tcp_agg_vars2Various aggregative variables	timestamp was updated counter flag */
1941 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT           12
1942 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF                    (0x3<<14) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary counter flag 8 */
1943 		#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT              14
1944 	u8_t __tx_dest /* aggregated value 8 */;
1945 	u8_t __agg_val8_th /* aggregated value 8 - threshold */;
1946 #endif
1947 	u32_t __sq_base_addr_lo /* The low page address which the SQ resides in host memory */;
1948 	u32_t __sq_base_addr_hi /* The high page address which the SQ resides in host memory */;
1949 	u32_t __xfrq_base_addr_lo /* The low page address which the XFRQ resides in host memory */;
1950 	u32_t __xfrq_base_addr_hi /* The high page address which the XFRQ resides in host memory */;
1951 #if defined(__BIG_ENDIAN)
1952 	u16_t __xfrq_cons /* The XFRQ consumer */;
1953 	u16_t __xfrq_prod /* The XFRQ producer, updated by Ustorm */;
1954 #elif defined(__LITTLE_ENDIAN)
1955 	u16_t __xfrq_prod /* The XFRQ producer, updated by Ustorm */;
1956 	u16_t __xfrq_cons /* The XFRQ consumer */;
1957 #endif
1958 #if defined(__BIG_ENDIAN)
1959 	u8_t __tcp_agg_vars5 /* Various aggregative variables*/;
1960 	u8_t __tcp_agg_vars4 /* Various aggregative variables*/;
1961 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1962 	u8_t __reserved_force_pure_ack_cnt /* The number of force ACK commands arrived from the TSTORM */;
1963 #elif defined(__LITTLE_ENDIAN)
1964 	u8_t __reserved_force_pure_ack_cnt /* The number of force ACK commands arrived from the TSTORM */;
1965 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
1966 	u8_t __tcp_agg_vars4 /* Various aggregative variables*/;
1967 	u8_t __tcp_agg_vars5 /* Various aggregative variables*/;
1968 #endif
1969 	u32_t __tcp_agg_vars6 /* Various aggregative variables*/;
1970 #if defined(__BIG_ENDIAN)
1971 	u16_t __xfrqe_mng /* Misc aggregated variable 6 */;
1972 	u16_t __tcp_agg_vars7 /* Various aggregative variables*/;
1973 #elif defined(__LITTLE_ENDIAN)
1974 	u16_t __tcp_agg_vars7 /* Various aggregative variables*/;
1975 	u16_t __xfrqe_mng /* Misc aggregated variable 6 */;
1976 #endif
1977 	u32_t __xfrqe_data0 /* aggregated value 10 */;
1978 	u32_t __agg_val10_th /* aggregated value 10 - threshold */;
1979 #if defined(__BIG_ENDIAN)
1980 	u16_t __reserved3;
1981 	u8_t __reserved2;
1982 	u8_t __da_only_cnt /* counts delayed acks and not window updates */;
1983 #elif defined(__LITTLE_ENDIAN)
1984 	u8_t __da_only_cnt /* counts delayed acks and not window updates */;
1985 	u8_t __reserved2;
1986 	u16_t __reserved3;
1987 #endif
1988 };
1989 
1990 /*
1991  * The fcoe aggregative context of Xstorm
1992  */
1993 struct xstorm_fcoe_ag_context
1994 {
1995 #if defined(__BIG_ENDIAN)
1996 	u16_t agg_val1 /* aggregated value 1 */;
1997 	u8_t agg_vars1;
1998 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0                                       (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
1999 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                 0
2000 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1                                       (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
2001 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                 1
2002 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51                                          (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
2003 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT                                    2
2004 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52                                          (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
2005 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT                                    3
2006 		#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN                                     (0x1<<4) /* BitField agg_vars1Various aggregative variables	Enables the decision rule of more_to_Send > 0 */
2007 		#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT                               4
2008 		#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN                                              (0x1<<5) /* BitField agg_vars1Various aggregative variables	Enables the nagle decision */
2009 		#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT                                        5
2010 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG                                       (0x1<<6) /* BitField agg_vars1Various aggregative variables	Used for future indication by the Driver on a doorbell */
2011 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT                                 6
2012 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN                              (0x1<<7) /* BitField agg_vars1Various aggregative variables	Enable decision rules based on equality between snd_una and snd_nxt */
2013 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT                        7
2014 	u8_t __state /* The state of the connection */;
2015 #elif defined(__LITTLE_ENDIAN)
2016 	u8_t __state /* The state of the connection */;
2017 	u8_t agg_vars1;
2018 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0                                       (0x1<<0) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 0 */
2019 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                 0
2020 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1                                       (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
2021 		#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                 1
2022 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51                                          (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
2023 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT                                    2
2024 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52                                          (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
2025 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT                                    3
2026 		#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN                                     (0x1<<4) /* BitField agg_vars1Various aggregative variables	Enables the decision rule of more_to_Send > 0 */
2027 		#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT                               4
2028 		#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN                                              (0x1<<5) /* BitField agg_vars1Various aggregative variables	Enables the nagle decision */
2029 		#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT                                        5
2030 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG                                       (0x1<<6) /* BitField agg_vars1Various aggregative variables	Used for future indication by the Driver on a doorbell */
2031 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT                                 6
2032 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN                              (0x1<<7) /* BitField agg_vars1Various aggregative variables	Enable decision rules based on equality between snd_una and snd_nxt */
2033 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT                        7
2034 	u16_t agg_val1 /* aggregated value 1 */;
2035 #endif
2036 #if defined(__BIG_ENDIAN)
2037 	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
2038 	u8_t __agg_vars4 /* Various aggregative variables*/;
2039 	u8_t agg_vars3;
2040 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2                                   (0x3F<<0) /* BitField agg_vars3Various aggregative variables	The physical queue number of queue index 2 */
2041 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT                             0
2042 		#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF                                            (0x3<<6) /* BitField agg_vars3Various aggregative variables	auxiliary counter flag 19 */
2043 		#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT                                      6
2044 	u8_t agg_vars2;
2045 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF                                               (0x3<<0) /* BitField agg_vars2Various aggregative variables	auxiliary counter flag 4 */
2046 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT                                         0
2047 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN                                    (0x1<<2) /* BitField agg_vars2Various aggregative variables	Enable decision rule based on dq_spare_flag */
2048 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT                              2
2049 		#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG                                           (0x1<<3) /* BitField agg_vars2Various aggregative variables	auxiliary flag 8 */
2050 		#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT                                     3
2051 		#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG                                           (0x1<<4) /* BitField agg_vars2Various aggregative variables	auxiliary flag 9 */
2052 		#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT                                     4
2053 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1                                        (0x3<<5) /* BitField agg_vars2Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2054 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT                                  5
2055 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN                                            (0x1<<7) /* BitField agg_vars2Various aggregative variables	Enable decision rules based on aux4_cf */
2056 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT                                      7
2057 #elif defined(__LITTLE_ENDIAN)
2058 	u8_t agg_vars2;
2059 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF                                               (0x3<<0) /* BitField agg_vars2Various aggregative variables	auxiliary counter flag 4 */
2060 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT                                         0
2061 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN                                    (0x1<<2) /* BitField agg_vars2Various aggregative variables	Enable decision rule based on dq_spare_flag */
2062 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT                              2
2063 		#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG                                           (0x1<<3) /* BitField agg_vars2Various aggregative variables	auxiliary flag 8 */
2064 		#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT                                     3
2065 		#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG                                           (0x1<<4) /* BitField agg_vars2Various aggregative variables	auxiliary flag 9 */
2066 		#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT                                     4
2067 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1                                        (0x3<<5) /* BitField agg_vars2Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2068 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT                                  5
2069 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN                                            (0x1<<7) /* BitField agg_vars2Various aggregative variables	Enable decision rules based on aux4_cf */
2070 		#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT                                      7
2071 	u8_t agg_vars3;
2072 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2                                   (0x3F<<0) /* BitField agg_vars3Various aggregative variables	The physical queue number of queue index 2 */
2073 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT                             0
2074 		#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF                                            (0x3<<6) /* BitField agg_vars3Various aggregative variables	auxiliary counter flag 19 */
2075 		#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT                                      6
2076 	u8_t __agg_vars4 /* Various aggregative variables*/;
2077 	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
2078 #endif
2079 	u32_t more_to_send /* The number of bytes left to send */;
2080 #if defined(__BIG_ENDIAN)
2081 	u16_t agg_vars5;
2082 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5                                        (0x3<<0) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2083 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT                                  0
2084 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0                                   (0x3F<<2) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 0 */
2085 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT                             2
2086 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1                                   (0x3F<<8) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 1 */
2087 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT                             8
2088 		#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE                                      (0x3<<14) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2089 		#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT                                14
2090 	u16_t sq_cons /* The SQ consumer updated by Xstorm after consuming aother WQE */;
2091 #elif defined(__LITTLE_ENDIAN)
2092 	u16_t sq_cons /* The SQ consumer updated by Xstorm after consuming aother WQE */;
2093 	u16_t agg_vars5;
2094 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5                                        (0x3<<0) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2095 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT                                  0
2096 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0                                   (0x3F<<2) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 0 */
2097 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT                             2
2098 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1                                   (0x3F<<8) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 1 */
2099 		#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT                             8
2100 		#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE                                      (0x3<<14) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2101 		#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT                                14
2102 #endif
2103 	struct xstorm_fcoe_extra_ag_context_section __extra_section /* Extra context section */;
2104 #if defined(__BIG_ENDIAN)
2105 	u16_t agg_vars7;
2106 		#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE                             (0x7<<0) /* BitField agg_vars7Various aggregative variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
2107 		#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT                       0
2108 		#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG                                          (0x1<<3) /* BitField agg_vars7Various aggregative variables	auxiliary flag 13 */
2109 		#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT                                    3
2110 		#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF                                           (0x3<<4) /* BitField agg_vars7Various aggregative variables	auxiliary counter flag 18 */
2111 		#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT                                     4
2112 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3                                        (0x3<<6) /* BitField agg_vars7Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2113 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT                                  6
2114 		#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF                                               (0x3<<8) /* BitField agg_vars7Various aggregative variables	auxiliary counter flag 1 */
2115 		#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT                                         8
2116 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62                                          (0x1<<10) /* BitField agg_vars7Various aggregative variables	Mask the check of the completion sequence on retransmit */
2117 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT                                    10
2118 		#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN                                          (0x1<<11) /* BitField agg_vars7Various aggregative variables	Enable decision rules based on aux1_cf */
2119 		#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT                                    11
2120 		#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG                                          (0x1<<12) /* BitField agg_vars7Various aggregative variables	auxiliary flag 10 */
2121 		#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT                                    12
2122 		#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG                                          (0x1<<13) /* BitField agg_vars7Various aggregative variables	auxiliary flag 11 */
2123 		#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT                                    13
2124 		#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG                                          (0x1<<14) /* BitField agg_vars7Various aggregative variables	auxiliary flag 12 */
2125 		#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT                                    14
2126 		#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG                                           (0x1<<15) /* BitField agg_vars7Various aggregative variables	auxiliary flag 2 */
2127 		#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT                                     15
2128 	u8_t agg_val3_th /* Aggregated value 3 - threshold */;
2129 	u8_t agg_vars6;
2130 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6                                        (0x7<<0) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
2131 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT                                  0
2132 		#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE                                       (0x7<<3) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
2133 		#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT                                 3
2134 		#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE                                         (0x3<<6) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2135 		#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT                                   6
2136 #elif defined(__LITTLE_ENDIAN)
2137 	u8_t agg_vars6;
2138 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6                                        (0x7<<0) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
2139 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT                                  0
2140 		#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE                                       (0x7<<3) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
2141 		#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT                                 3
2142 		#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE                                         (0x3<<6) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2143 		#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT                                   6
2144 	u8_t agg_val3_th /* Aggregated value 3 - threshold */;
2145 	u16_t agg_vars7;
2146 		#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE                             (0x7<<0) /* BitField agg_vars7Various aggregative variables	0-NOP,1-EQ,2-NEQ,3-GT_CYC,4-GT_ABS,5-LT_CYC,6-LT_ABS */
2147 		#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT                       0
2148 		#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG                                          (0x1<<3) /* BitField agg_vars7Various aggregative variables	auxiliary flag 13 */
2149 		#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT                                    3
2150 		#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF                                           (0x3<<4) /* BitField agg_vars7Various aggregative variables	auxiliary counter flag 18 */
2151 		#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT                                     4
2152 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3                                        (0x3<<6) /* BitField agg_vars7Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2153 		#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT                                  6
2154 		#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF                                               (0x3<<8) /* BitField agg_vars7Various aggregative variables	auxiliary counter flag 1 */
2155 		#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT                                         8
2156 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62                                          (0x1<<10) /* BitField agg_vars7Various aggregative variables	Mask the check of the completion sequence on retransmit */
2157 		#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT                                    10
2158 		#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN                                          (0x1<<11) /* BitField agg_vars7Various aggregative variables	Enable decision rules based on aux1_cf */
2159 		#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT                                    11
2160 		#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG                                          (0x1<<12) /* BitField agg_vars7Various aggregative variables	auxiliary flag 10 */
2161 		#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT                                    12
2162 		#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG                                          (0x1<<13) /* BitField agg_vars7Various aggregative variables	auxiliary flag 11 */
2163 		#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT                                    13
2164 		#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG                                          (0x1<<14) /* BitField agg_vars7Various aggregative variables	auxiliary flag 12 */
2165 		#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT                                    14
2166 		#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG                                           (0x1<<15) /* BitField agg_vars7Various aggregative variables	auxiliary flag 2 */
2167 		#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT                                     15
2168 #endif
2169 #if defined(__BIG_ENDIAN)
2170 	u16_t __agg_val11_th /* aggregated value 11 - threshold */;
2171 	u16_t __agg_val11 /* aggregated value 11 */;
2172 #elif defined(__LITTLE_ENDIAN)
2173 	u16_t __agg_val11 /* aggregated value 11 */;
2174 	u16_t __agg_val11_th /* aggregated value 11 - threshold */;
2175 #endif
2176 #if defined(__BIG_ENDIAN)
2177 	u8_t __reserved1;
2178 	u8_t __agg_val6_th /* aggregated value 6 - threshold */;
2179 	u16_t __agg_val9 /* aggregated value 9 */;
2180 #elif defined(__LITTLE_ENDIAN)
2181 	u16_t __agg_val9 /* aggregated value 9 */;
2182 	u8_t __agg_val6_th /* aggregated value 6 - threshold */;
2183 	u8_t __reserved1;
2184 #endif
2185 #if defined(__BIG_ENDIAN)
2186 	u16_t confq_cons /* CONFQ Consumer */;
2187 	u16_t confq_prod /* CONFQ Producer, updated by Ustorm - AggVal2 */;
2188 #elif defined(__LITTLE_ENDIAN)
2189 	u16_t confq_prod /* CONFQ Producer, updated by Ustorm - AggVal2 */;
2190 	u16_t confq_cons /* CONFQ Consumer */;
2191 #endif
2192 	u32_t agg_vars8;
2193 		#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2                                             (0xFFFFFF<<0) /* BitField agg_vars8Various aggregative variables	Misc aggregated variable 2 */
2194 		#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2_SHIFT                                       0
2195 		#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3                                             (0xFF<<24) /* BitField agg_vars8Various aggregative variables	Misc aggregated variable 3 */
2196 		#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3_SHIFT                                       24
2197 #if defined(__BIG_ENDIAN)
2198 	u16_t __cache_wqe_db /* Misc aggregated variable 0 */;
2199 	u16_t sq_prod /* The SQ Producer updated by Xstorm after reading a bunch of WQEs into the context */;
2200 #elif defined(__LITTLE_ENDIAN)
2201 	u16_t sq_prod /* The SQ Producer updated by Xstorm after reading a bunch of WQEs into the context */;
2202 	u16_t __cache_wqe_db /* Misc aggregated variable 0 */;
2203 #endif
2204 #if defined(__BIG_ENDIAN)
2205 	u8_t agg_val3 /* Aggregated value 3 */;
2206 	u8_t agg_val6 /* Aggregated value 6 */;
2207 	u8_t agg_val5_th /* Aggregated value 5 - threshold */;
2208 	u8_t agg_val5 /* Aggregated value 5 */;
2209 #elif defined(__LITTLE_ENDIAN)
2210 	u8_t agg_val5 /* Aggregated value 5 */;
2211 	u8_t agg_val5_th /* Aggregated value 5 - threshold */;
2212 	u8_t agg_val6 /* Aggregated value 6 */;
2213 	u8_t agg_val3 /* Aggregated value 3 */;
2214 #endif
2215 #if defined(__BIG_ENDIAN)
2216 	u16_t __agg_misc1 /* Spare value for aggregation. NOTE: this value is used in the retransmit decision rule if CmpSeqDecMask is 0. In that case it is intended to be CmpBdSize. */;
2217 	u16_t agg_limit1 /* aggregated limit 1 */;
2218 #elif defined(__LITTLE_ENDIAN)
2219 	u16_t agg_limit1 /* aggregated limit 1 */;
2220 	u16_t __agg_misc1 /* Spare value for aggregation. NOTE: this value is used in the retransmit decision rule if CmpSeqDecMask is 0. In that case it is intended to be CmpBdSize. */;
2221 #endif
2222 	u32_t completion_seq /* The sequence number of the start completion point (BD) */;
2223 	u32_t confq_pbl_base_lo /* The CONFQ PBL base low address resides in host memory */;
2224 	u32_t confq_pbl_base_hi /* The CONFQ PBL base hihj address resides in host memory */;
2225 };
2226 
2227 
2228 
2229 /*
2230  * The tcp aggregative context section of Xstorm
2231  */
2232 struct xstorm_tcp_tcp_ag_context_section
2233 {
2234 #if defined(__BIG_ENDIAN)
2235 	u8_t tcp_agg_vars1;
2236 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF                          (0x3<<0) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag used to rewind the DA timer */
2237 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT                    0
2238 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED                        (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 2 */
2239 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT                  2
2240 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF                           (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 3 */
2241 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT                     4
2242 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN                        (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	If set enables sending clear commands as port of the DA decision rules */
2243 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT                  6
2244 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG                       (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that there was a delayed ack timer expiration */
2245 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT                 7
2246 	u8_t __da_cnt /* Counts the number of ACK requests received from the TSTORM with no registration to QM. */;
2247 	u16_t mss /* MSS used for nagle algorithm and for transmission */;
2248 #elif defined(__LITTLE_ENDIAN)
2249 	u16_t mss /* MSS used for nagle algorithm and for transmission */;
2250 	u8_t __da_cnt /* Counts the number of ACK requests received from the TSTORM with no registration to QM. */;
2251 	u8_t tcp_agg_vars1;
2252 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF                          (0x3<<0) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag used to rewind the DA timer */
2253 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT                    0
2254 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED                        (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 2 */
2255 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT                  2
2256 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF                           (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 3 */
2257 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT                     4
2258 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN                        (0x1<<6) /* BitField tcp_agg_vars1Various aggregative variables	If set enables sending clear commands as port of the DA decision rules */
2259 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT                  6
2260 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG                       (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that there was a delayed ack timer expiration */
2261 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT                 7
2262 #endif
2263 	u32_t snd_nxt /* The current sequence number to send */;
2264 	u32_t tx_wnd /* The Current transmission window in bytes */;
2265 	u32_t snd_una /* The current Send UNA sequence number */;
2266 	u32_t local_adv_wnd /* The current local advertised window to FE. */;
2267 #if defined(__BIG_ENDIAN)
2268 	u8_t __agg_val8_th /* aggregated value 8 - threshold */;
2269 	u8_t __tx_dest /* aggregated value 8 */;
2270 	u16_t tcp_agg_vars2;
2271 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG                                (0x1<<0) /* BitField tcp_agg_vars2Various aggregative variables	Used in TOE to indicate that FIN is sent on a BD to bypass the naggle rule */
2272 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT                          0
2273 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED                             (0x1<<1) /* BitField tcp_agg_vars2Various aggregative variables	Enables the tx window based decision */
2274 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT                       1
2275 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE                          (0x1<<2) /* BitField tcp_agg_vars2Various aggregative variables	The DA Timer status. If set indicates that the delayed ACK timer is active. */
2276 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT                    2
2277 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG                                (0x1<<3) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 3 */
2278 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT                          3
2279 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG                                (0x1<<4) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 4 */
2280 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT                          4
2281 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE                                  (0x1<<5) /* BitField tcp_agg_vars2Various aggregative variables	Enable DA for the specific connection */
2282 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT                            5
2283 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN                     (0x1<<6) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux2_cf */
2284 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT               6
2285 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN                        (0x1<<7) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux3_cf */
2286 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT                  7
2287 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN                           (0x1<<8) /* BitField tcp_agg_vars2Various aggregative variables	Enable Decision rule based on tx_fin_flag */
2288 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT                     8
2289 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG                                (0x1<<9) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 1 */
2290 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                          9
2291 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF                               (0x3<<10) /* BitField tcp_agg_vars2Various aggregative variables	counter flag for setting the rto timer */
2292 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT                         10
2293 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF                    (0x3<<12) /* BitField tcp_agg_vars2Various aggregative variables	timestamp was updated counter flag */
2294 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT              12
2295 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF                       (0x3<<14) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary counter flag 8 */
2296 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT                 14
2297 #elif defined(__LITTLE_ENDIAN)
2298 	u16_t tcp_agg_vars2;
2299 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG                                (0x1<<0) /* BitField tcp_agg_vars2Various aggregative variables	Used in TOE to indicate that FIN is sent on a BD to bypass the naggle rule */
2300 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT                          0
2301 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED                             (0x1<<1) /* BitField tcp_agg_vars2Various aggregative variables	Enables the tx window based decision */
2302 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT                       1
2303 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE                          (0x1<<2) /* BitField tcp_agg_vars2Various aggregative variables	The DA Timer status. If set indicates that the delayed ACK timer is active. */
2304 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT                    2
2305 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG                                (0x1<<3) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 3 */
2306 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT                          3
2307 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG                                (0x1<<4) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 4 */
2308 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT                          4
2309 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE                                  (0x1<<5) /* BitField tcp_agg_vars2Various aggregative variables	Enable DA for the specific connection */
2310 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT                            5
2311 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN                     (0x1<<6) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux2_cf */
2312 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT               6
2313 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN                        (0x1<<7) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux3_cf */
2314 		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT                  7
2315 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN                           (0x1<<8) /* BitField tcp_agg_vars2Various aggregative variables	Enable Decision rule based on tx_fin_flag */
2316 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT                     8
2317 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG                                (0x1<<9) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 1 */
2318 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                          9
2319 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF                               (0x3<<10) /* BitField tcp_agg_vars2Various aggregative variables	counter flag for setting the rto timer */
2320 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT                         10
2321 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF                    (0x3<<12) /* BitField tcp_agg_vars2Various aggregative variables	timestamp was updated counter flag */
2322 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT              12
2323 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF                       (0x3<<14) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary counter flag 8 */
2324 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT                 14
2325 	u8_t __tx_dest /* aggregated value 8 */;
2326 	u8_t __agg_val8_th /* aggregated value 8 - threshold */;
2327 #endif
2328 	u32_t ack_to_far_end /* The ACK sequence to send to far end */;
2329 	u32_t rto_timer /* The RTO timer value */;
2330 	u32_t ka_timer /* The KA timer value */;
2331 	u32_t ts_to_echo /* The time stamp value to echo to far end */;
2332 #if defined(__BIG_ENDIAN)
2333 	u16_t __agg_val7_th /* aggregated value 7 - threshold */;
2334 	u16_t __agg_val7 /* aggregated value 7 */;
2335 #elif defined(__LITTLE_ENDIAN)
2336 	u16_t __agg_val7 /* aggregated value 7 */;
2337 	u16_t __agg_val7_th /* aggregated value 7 - threshold */;
2338 #endif
2339 #if defined(__BIG_ENDIAN)
2340 	u8_t __tcp_agg_vars5 /* Various aggregative variables*/;
2341 	u8_t __tcp_agg_vars4 /* Various aggregative variables*/;
2342 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
2343 	u8_t __force_pure_ack_cnt /* The number of force ACK commands arrived from the TSTORM */;
2344 #elif defined(__LITTLE_ENDIAN)
2345 	u8_t __force_pure_ack_cnt /* The number of force ACK commands arrived from the TSTORM */;
2346 	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
2347 	u8_t __tcp_agg_vars4 /* Various aggregative variables*/;
2348 	u8_t __tcp_agg_vars5 /* Various aggregative variables*/;
2349 #endif
2350 	u32_t tcp_agg_vars6;
2351 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN                         (0x1<<0) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux7_cf */
2352 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN_SHIFT                   0
2353 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN                    (0x1<<1) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux8_cf */
2354 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN_SHIFT              1
2355 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN                               (0x1<<2) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux9_cf */
2356 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN_SHIFT                         2
2357 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN                              (0x1<<3) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux10_cf */
2358 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT                        3
2359 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG                                (0x1<<4) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary flag 6 */
2360 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG_SHIFT                          4
2361 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG                                (0x1<<5) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary flag 7 */
2362 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG_SHIFT                          5
2363 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF                                  (0x3<<6) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 5 */
2364 		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF_SHIFT                            6
2365 		#define