1#ifndef __5710_HSI_VBD__
2#define __5710_HSI_VBD__
3
4/*
5 * attention bits $$KEEP_ENDIANNESS$$
6 */
7struct 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 */
21struct cstorm_eth_ag_context
22{
23	u32_t __reserved0[10];
24};
25
26
27/*
28 * The iscsi aggregative context of Cstorm
29 */
30struct 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 */
126struct 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 */
186struct 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 */
288struct 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 */
304struct 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 */
333struct 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 */
343struct 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 */
352struct 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 */
362struct 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 */
371struct 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 */
382struct 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 */
392struct 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 */
427struct 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 */
449struct 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 */
476union 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 */
486enum 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 */
496struct 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 */
515enum 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 */
528enum 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 */
539struct 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 */
568struct 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 */
603enum 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 */
613enum 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 */
623enum 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 */
635enum 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 */
646struct 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 */
665struct 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 */
683struct 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 */
700struct 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 */
725struct 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 */
750struct 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 */
775struct 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 */
800struct 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 */
829struct tstorm_eth_ag_context
830{
831	u32_t __reserved0[14];
832};
833
834
835/*
836 * The fcoe extra aggregative context section of Tstorm
837 */
838struct 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 */
915struct 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 */
1017struct 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 */
1094struct 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 */
1196struct 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 */
1274struct 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 */
1351struct 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 */
1453struct 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 */
1472struct 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 */
1616struct 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 */
1760struct 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 */
1832struct 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 */
1851struct 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 */
1993struct 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 */
2232struct 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 __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF                                  (0x3<<8) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 9 */
2366		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_SHIFT                            8
2367		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF                                 (0x3<<10) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 10 */
2368		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_SHIFT                           10
2369		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF                                 (0x3<<12) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 11 */
2370		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_SHIFT                           12
2371		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF                                 (0x3<<14) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 12 */
2372		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_SHIFT                           14
2373		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF                                 (0x3<<16) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 13 */
2374		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF_SHIFT                           16
2375		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF                                 (0x3<<18) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 14 */
2376		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF_SHIFT                           18
2377		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF                                 (0x3<<20) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 15 */
2378		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF_SHIFT                           20
2379		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF                                 (0x3<<22) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 16 */
2380		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF_SHIFT                           22
2381		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF                                 (0x3<<24) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 17 */
2382		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF_SHIFT                           24
2383		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG                                   (0x1<<26) /* BitField tcp_agg_vars6Various aggregative variables	Can be also used as general purpose if ECN is not used */
2384		#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG_SHIFT                             26
2385		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71                               (0x1<<27) /* BitField tcp_agg_vars6Various aggregative variables	Can be also used as general purpose if ECN is not used */
2386		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71_SHIFT                         27
2387		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY                 (0x1<<28) /* BitField tcp_agg_vars6Various aggregative variables	This flag is set if the Force ACK count is set by the TSTORM. On QM output it is cleared. */
2388		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY_SHIFT           28
2389		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG                       (0x1<<29) /* BitField tcp_agg_vars6Various aggregative variables	Indicates that the connection is in autostop mode */
2390		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG_SHIFT                 29
2391		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG                        (0x1<<30) /* BitField tcp_agg_vars6Various aggregative variables	This bit uses like a one shot that the TSTORM fires and the XSTORM arms. Used to allow a single TS update for each transmission */
2392		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG_SHIFT                  30
2393		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG                   (0x1<<31) /* BitField tcp_agg_vars6Various aggregative variables	This bit is set by the TSTORM when need to cancel precious fast retransmit */
2394		#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG_SHIFT             31
2395#if defined(__BIG_ENDIAN)
2396	u16_t __agg_misc6 /* Misc aggregated variable 6 */;
2397	u16_t __tcp_agg_vars7 /* Various aggregative variables*/;
2398#elif defined(__LITTLE_ENDIAN)
2399	u16_t __tcp_agg_vars7 /* Various aggregative variables*/;
2400	u16_t __agg_misc6 /* Misc aggregated variable 6 */;
2401#endif
2402	u32_t __agg_val10 /* aggregated value 10 */;
2403	u32_t __agg_val10_th /* aggregated value 10 - threshold */;
2404#if defined(__BIG_ENDIAN)
2405	u16_t __reserved3;
2406	u8_t __reserved2;
2407	u8_t __da_only_cnt /* counts delayed acks and not window updates */;
2408#elif defined(__LITTLE_ENDIAN)
2409	u8_t __da_only_cnt /* counts delayed acks and not window updates */;
2410	u8_t __reserved2;
2411	u16_t __reserved3;
2412#endif
2413};
2414
2415/*
2416 * The iscsi aggregative context of Xstorm
2417 */
2418struct xstorm_iscsi_ag_context
2419{
2420#if defined(__BIG_ENDIAN)
2421	u16_t agg_val1 /* aggregated value 1 */;
2422	u8_t agg_vars1;
2423		#define __XSTORM_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 */
2424		#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                0
2425		#define XSTORM_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 */
2426		#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                  1
2427		#define XSTORM_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 */
2428		#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                  2
2429		#define XSTORM_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 */
2430		#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                  3
2431		#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN                                    (0x1<<4) /* BitField agg_vars1Various aggregative variables	Enables the decision rule of more_to_Send > 0 */
2432		#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT                              4
2433		#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN                                             (0x1<<5) /* BitField agg_vars1Various aggregative variables	Enables the nagle decision */
2434		#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT                                       5
2435		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG                                      (0x1<<6) /* BitField agg_vars1Various aggregative variables	Used for future indication by the Driver on a doorbell */
2436		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT                                6
2437		#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN                                      (0x1<<7) /* BitField agg_vars1Various aggregative variables	Enable decision rules based on equality between snd_una and snd_nxt */
2438		#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT                                7
2439	u8_t state /* The state of the connection */;
2440#elif defined(__LITTLE_ENDIAN)
2441	u8_t state /* The state of the connection */;
2442	u8_t agg_vars1;
2443		#define __XSTORM_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 */
2444		#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                0
2445		#define XSTORM_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 */
2446		#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT                                  1
2447		#define XSTORM_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 */
2448		#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT                                  2
2449		#define XSTORM_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 */
2450		#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT                                  3
2451		#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN                                    (0x1<<4) /* BitField agg_vars1Various aggregative variables	Enables the decision rule of more_to_Send > 0 */
2452		#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT                              4
2453		#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN                                             (0x1<<5) /* BitField agg_vars1Various aggregative variables	Enables the nagle decision */
2454		#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT                                       5
2455		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG                                      (0x1<<6) /* BitField agg_vars1Various aggregative variables	Used for future indication by the Driver on a doorbell */
2456		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT                                6
2457		#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN                                      (0x1<<7) /* BitField agg_vars1Various aggregative variables	Enable decision rules based on equality between snd_una and snd_nxt */
2458		#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT                                7
2459	u16_t agg_val1 /* aggregated value 1 */;
2460#endif
2461#if defined(__BIG_ENDIAN)
2462	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
2463	u8_t __agg_vars4 /* Various aggregative variables*/;
2464	u8_t agg_vars3;
2465		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2                                  (0x3F<<0) /* BitField agg_vars3Various aggregative variables	The physical queue number of queue index 2 */
2466		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT                            0
2467		#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF                                        (0x3<<6) /* BitField agg_vars3Various aggregative variables	auxiliary counter flag 19 */
2468		#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT                                  6
2469	u8_t agg_vars2;
2470		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF                                              (0x3<<0) /* BitField agg_vars2Various aggregative variables	auxiliary counter flag 4 */
2471		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT                                        0
2472		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN                                   (0x1<<2) /* BitField agg_vars2Various aggregative variables	Enable decision rule based on dq_spare_flag */
2473		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT                             2
2474		#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG                                          (0x1<<3) /* BitField agg_vars2Various aggregative variables	auxiliary flag 8 */
2475		#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT                                    3
2476		#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG                                          (0x1<<4) /* BitField agg_vars2Various aggregative variables	auxiliary flag 9 */
2477		#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT                                    4
2478		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1                                       (0x3<<5) /* BitField agg_vars2Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2479		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT                                 5
2480		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN                                           (0x1<<7) /* BitField agg_vars2Various aggregative variables	Enable decision rules based on aux4_cf */
2481		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT                                     7
2482#elif defined(__LITTLE_ENDIAN)
2483	u8_t agg_vars2;
2484		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF                                              (0x3<<0) /* BitField agg_vars2Various aggregative variables	auxiliary counter flag 4 */
2485		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT                                        0
2486		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN                                   (0x1<<2) /* BitField agg_vars2Various aggregative variables	Enable decision rule based on dq_spare_flag */
2487		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT                             2
2488		#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG                                          (0x1<<3) /* BitField agg_vars2Various aggregative variables	auxiliary flag 8 */
2489		#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT                                    3
2490		#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG                                          (0x1<<4) /* BitField agg_vars2Various aggregative variables	auxiliary flag 9 */
2491		#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT                                    4
2492		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1                                       (0x3<<5) /* BitField agg_vars2Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2493		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT                                 5
2494		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN                                           (0x1<<7) /* BitField agg_vars2Various aggregative variables	Enable decision rules based on aux4_cf */
2495		#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT                                     7
2496	u8_t agg_vars3;
2497		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2                                  (0x3F<<0) /* BitField agg_vars3Various aggregative variables	The physical queue number of queue index 2 */
2498		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT                            0
2499		#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF                                        (0x3<<6) /* BitField agg_vars3Various aggregative variables	auxiliary counter flag 19 */
2500		#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT                                  6
2501	u8_t __agg_vars4 /* Various aggregative variables*/;
2502	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
2503#endif
2504	u32_t more_to_send /* The number of bytes left to send */;
2505#if defined(__BIG_ENDIAN)
2506	u16_t agg_vars5;
2507		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5                                       (0x3<<0) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2508		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT                                 0
2509		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0                                  (0x3F<<2) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 0 */
2510		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT                            2
2511		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1                                  (0x3F<<8) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 1 */
2512		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT                            8
2513		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2                                       (0x3<<14) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2514		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT                                 14
2515	u16_t sq_cons /* aggregated value 4 - threshold */;
2516#elif defined(__LITTLE_ENDIAN)
2517	u16_t sq_cons /* aggregated value 4 - threshold */;
2518	u16_t agg_vars5;
2519		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5                                       (0x3<<0) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2520		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT                                 0
2521		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0                                  (0x3F<<2) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 0 */
2522		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT                            2
2523		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1                                  (0x3F<<8) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 1 */
2524		#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT                            8
2525		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2                                       (0x3<<14) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2526		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT                                 14
2527#endif
2528	struct xstorm_tcp_tcp_ag_context_section tcp /* TCP context section, shared in TOE and ISCSI */;
2529#if defined(__BIG_ENDIAN)
2530	u16_t agg_vars7;
2531		#define __XSTORM_ISCSI_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 */
2532		#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT                      0
2533		#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG                                         (0x1<<3) /* BitField agg_vars7Various aggregative variables	auxiliary flag 13 */
2534		#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT                                   3
2535		#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF                                     (0x3<<4) /* BitField agg_vars7Various aggregative variables	Sync Tstorm and Xstorm */
2536		#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT                               4
2537		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3                                       (0x3<<6) /* BitField agg_vars7Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2538		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT                                 6
2539		#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF                                              (0x3<<8) /* BitField agg_vars7Various aggregative variables	auxiliary counter flag 1 */
2540		#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT                                        8
2541		#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK                       (0x1<<10) /* BitField agg_vars7Various aggregative variables	Mask the check of the completion sequence on retransmit */
2542		#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT                 10
2543		#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN                                         (0x1<<11) /* BitField agg_vars7Various aggregative variables	Enable decision rules based on aux1_cf */
2544		#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT                                   11
2545		#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG                                         (0x1<<12) /* BitField agg_vars7Various aggregative variables	auxiliary flag 10 */
2546		#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT                                   12
2547		#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG                                         (0x1<<13) /* BitField agg_vars7Various aggregative variables	auxiliary flag 11 */
2548		#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT                                   13
2549		#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG                                         (0x1<<14) /* BitField agg_vars7Various aggregative variables	auxiliary flag 12 */
2550		#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT                                   14
2551		#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN                                      (0x1<<15) /* BitField agg_vars7Various aggregative variables	auxiliary flag 2 */
2552		#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT                                15
2553	u8_t agg_val3_th /* Aggregated value 3 - threshold */;
2554	u8_t agg_vars6;
2555		#define XSTORM_ISCSI_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 */
2556		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT                                 0
2557		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7                                       (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 */
2558		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT                                 3
2559		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4                                       (0x3<<6) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2560		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT                                 6
2561#elif defined(__LITTLE_ENDIAN)
2562	u8_t agg_vars6;
2563		#define XSTORM_ISCSI_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 */
2564		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT                                 0
2565		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7                                       (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 */
2566		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT                                 3
2567		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4                                       (0x3<<6) /* BitField agg_vars6Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2568		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT                                 6
2569	u8_t agg_val3_th /* Aggregated value 3 - threshold */;
2570	u16_t agg_vars7;
2571		#define __XSTORM_ISCSI_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 */
2572		#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT                      0
2573		#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG                                         (0x1<<3) /* BitField agg_vars7Various aggregative variables	auxiliary flag 13 */
2574		#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT                                   3
2575		#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF                                     (0x3<<4) /* BitField agg_vars7Various aggregative variables	Sync Tstorm and Xstorm */
2576		#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT                               4
2577		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3                                       (0x3<<6) /* BitField agg_vars7Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2578		#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT                                 6
2579		#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF                                              (0x3<<8) /* BitField agg_vars7Various aggregative variables	auxiliary counter flag 1 */
2580		#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT                                        8
2581		#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK                       (0x1<<10) /* BitField agg_vars7Various aggregative variables	Mask the check of the completion sequence on retransmit */
2582		#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT                 10
2583		#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN                                         (0x1<<11) /* BitField agg_vars7Various aggregative variables	Enable decision rules based on aux1_cf */
2584		#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT                                   11
2585		#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG                                         (0x1<<12) /* BitField agg_vars7Various aggregative variables	auxiliary flag 10 */
2586		#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT                                   12
2587		#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG                                         (0x1<<13) /* BitField agg_vars7Various aggregative variables	auxiliary flag 11 */
2588		#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT                                   13
2589		#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG                                         (0x1<<14) /* BitField agg_vars7Various aggregative variables	auxiliary flag 12 */
2590		#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT                                   14
2591		#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN                                      (0x1<<15) /* BitField agg_vars7Various aggregative variables	auxiliary flag 2 */
2592		#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT                                15
2593#endif
2594#if defined(__BIG_ENDIAN)
2595	u16_t __agg_val11_th /* aggregated value 11 - threshold */;
2596	u16_t __gen_data /* Used for Iscsi. In connection establishment, it uses as rxMss, and in connection termination, it uses as command Id: 1=L5CM_TX_ACK_ON_FIN_CMD 2=L5CM_SET_MSL_TIMER_CMD 3=L5CM_TX_RST_CMD */;
2597#elif defined(__LITTLE_ENDIAN)
2598	u16_t __gen_data /* Used for Iscsi. In connection establishment, it uses as rxMss, and in connection termination, it uses as command Id: 1=L5CM_TX_ACK_ON_FIN_CMD 2=L5CM_SET_MSL_TIMER_CMD 3=L5CM_TX_RST_CMD */;
2599	u16_t __agg_val11_th /* aggregated value 11 - threshold */;
2600#endif
2601#if defined(__BIG_ENDIAN)
2602	u8_t __reserved1;
2603	u8_t __agg_val6_th /* aggregated value 6 - threshold */;
2604	u16_t __agg_val9 /* aggregated value 9 */;
2605#elif defined(__LITTLE_ENDIAN)
2606	u16_t __agg_val9 /* aggregated value 9 */;
2607	u8_t __agg_val6_th /* aggregated value 6 - threshold */;
2608	u8_t __reserved1;
2609#endif
2610#if defined(__BIG_ENDIAN)
2611	u16_t hq_prod /* The HQ producer threashold to compare the HQ consumer, which is the current HQ producer +1 - AggVal2Th */;
2612	u16_t hq_cons /* HQ Consumer, updated by Cstorm - AggVal2 */;
2613#elif defined(__LITTLE_ENDIAN)
2614	u16_t hq_cons /* HQ Consumer, updated by Cstorm - AggVal2 */;
2615	u16_t hq_prod /* The HQ producer threashold to compare the HQ consumer, which is the current HQ producer +1 - AggVal2Th */;
2616#endif
2617	u32_t agg_vars8;
2618		#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2                                            (0xFFFFFF<<0) /* BitField agg_vars8Various aggregative variables	Misc aggregated variable 2 */
2619		#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2_SHIFT                                      0
2620		#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3                                            (0xFF<<24) /* BitField agg_vars8Various aggregative variables	Misc aggregated variable 3 */
2621		#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3_SHIFT                                      24
2622#if defined(__BIG_ENDIAN)
2623	u16_t r2tq_prod /* Misc aggregated variable 0 */;
2624	u16_t sq_prod /* SQ Producer */;
2625#elif defined(__LITTLE_ENDIAN)
2626	u16_t sq_prod /* SQ Producer */;
2627	u16_t r2tq_prod /* Misc aggregated variable 0 */;
2628#endif
2629#if defined(__BIG_ENDIAN)
2630	u8_t agg_val3 /* Aggregated value 3 */;
2631	u8_t agg_val6 /* Aggregated value 6 */;
2632	u8_t agg_val5_th /* Aggregated value 5 - threshold */;
2633	u8_t agg_val5 /* Aggregated value 5 */;
2634#elif defined(__LITTLE_ENDIAN)
2635	u8_t agg_val5 /* Aggregated value 5 */;
2636	u8_t agg_val5_th /* Aggregated value 5 - threshold */;
2637	u8_t agg_val6 /* Aggregated value 6 */;
2638	u8_t agg_val3 /* Aggregated value 3 */;
2639#endif
2640#if defined(__BIG_ENDIAN)
2641	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. */;
2642	u16_t agg_limit1 /* aggregated limit 1 */;
2643#elif defined(__LITTLE_ENDIAN)
2644	u16_t agg_limit1 /* aggregated limit 1 */;
2645	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. */;
2646#endif
2647	u32_t hq_cons_tcp_seq /* TCP sequence of the HQ BD pointed by hq_cons */;
2648	u32_t exp_stat_sn /* expected status SN, updated by Ustorm */;
2649	u32_t rst_seq_num /* spare aggregated variable 5 */;
2650};
2651
2652
2653
2654/*
2655 * The toe aggregative context section of Xstorm
2656 */
2657struct xstorm_toe_tcp_ag_context_section
2658{
2659#if defined(__BIG_ENDIAN)
2660	u8_t tcp_agg_vars1;
2661		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF                          (0x3<<0) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag used to rewind the DA timer */
2662		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT                    0
2663		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED                        (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 2 */
2664		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT                  2
2665		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF                           (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 3 */
2666		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT                     4
2667		#define __XSTORM_TOE_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 */
2668		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT                  6
2669		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG                       (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that there was a delayed ack timer expiration */
2670		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT                 7
2671	u8_t __da_cnt /* Counts the number of ACK requests received from the TSTORM with no registration to QM. */;
2672	u16_t mss /* MSS used for nagle algorithm and for transmission */;
2673#elif defined(__LITTLE_ENDIAN)
2674	u16_t mss /* MSS used for nagle algorithm and for transmission */;
2675	u8_t __da_cnt /* Counts the number of ACK requests received from the TSTORM with no registration to QM. */;
2676	u8_t tcp_agg_vars1;
2677		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF                          (0x3<<0) /* BitField tcp_agg_vars1Various aggregative variables	Counter flag used to rewind the DA timer */
2678		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT                    0
2679		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED                        (0x3<<2) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 2 */
2680		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT                  2
2681		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF                           (0x3<<4) /* BitField tcp_agg_vars1Various aggregative variables	auxiliary counter flag 3 */
2682		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT                     4
2683		#define __XSTORM_TOE_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 */
2684		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT                  6
2685		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG                       (0x1<<7) /* BitField tcp_agg_vars1Various aggregative variables	Indicates that there was a delayed ack timer expiration */
2686		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT                 7
2687#endif
2688	u32_t snd_nxt /* The current sequence number to send */;
2689	u32_t tx_wnd /* The Current transmission window in bytes */;
2690	u32_t snd_una /* The current Send UNA sequence number */;
2691	u32_t local_adv_wnd /* The current local advertised window to FE. */;
2692#if defined(__BIG_ENDIAN)
2693	u8_t __agg_val8_th /* aggregated value 8 - threshold */;
2694	u8_t __tx_dest /* aggregated value 8 */;
2695	u16_t tcp_agg_vars2;
2696		#define XSTORM_TOE_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 */
2697		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT                          0
2698		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED                             (0x1<<1) /* BitField tcp_agg_vars2Various aggregative variables	Enables the tx window based decision */
2699		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT                       1
2700		#define __XSTORM_TOE_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. */
2701		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT                    2
2702		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG                                (0x1<<3) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 3 */
2703		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT                          3
2704		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG                                (0x1<<4) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 4 */
2705		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT                          4
2706		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE                                  (0x1<<5) /* BitField tcp_agg_vars2Various aggregative variables	Enable DA for the specific connection */
2707		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT                            5
2708		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN                     (0x1<<6) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux2_cf */
2709		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT               6
2710		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN                        (0x1<<7) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux3_cf */
2711		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT                  7
2712		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN                           (0x1<<8) /* BitField tcp_agg_vars2Various aggregative variables	Enable Decision rule based on tx_fin_flag */
2713		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT                     8
2714		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG                                (0x1<<9) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 1 */
2715		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                          9
2716		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF                               (0x3<<10) /* BitField tcp_agg_vars2Various aggregative variables	counter flag for setting the rto timer */
2717		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT                         10
2718		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF                    (0x3<<12) /* BitField tcp_agg_vars2Various aggregative variables	timestamp was updated counter flag */
2719		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT              12
2720		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF                       (0x3<<14) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary counter flag 8 */
2721		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT                 14
2722#elif defined(__LITTLE_ENDIAN)
2723	u16_t tcp_agg_vars2;
2724		#define XSTORM_TOE_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 */
2725		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT                          0
2726		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED                             (0x1<<1) /* BitField tcp_agg_vars2Various aggregative variables	Enables the tx window based decision */
2727		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT                       1
2728		#define __XSTORM_TOE_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. */
2729		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT                    2
2730		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG                                (0x1<<3) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 3 */
2731		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT                          3
2732		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG                                (0x1<<4) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 4 */
2733		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT                          4
2734		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE                                  (0x1<<5) /* BitField tcp_agg_vars2Various aggregative variables	Enable DA for the specific connection */
2735		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT                            5
2736		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN                     (0x1<<6) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux2_cf */
2737		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT               6
2738		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN                        (0x1<<7) /* BitField tcp_agg_vars2Various aggregative variables	Enable decision rules based on aux3_cf */
2739		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT                  7
2740		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN                           (0x1<<8) /* BitField tcp_agg_vars2Various aggregative variables	Enable Decision rule based on tx_fin_flag */
2741		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT                     8
2742		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG                                (0x1<<9) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary flag 1 */
2743		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT                          9
2744		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF                               (0x3<<10) /* BitField tcp_agg_vars2Various aggregative variables	counter flag for setting the rto timer */
2745		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT                         10
2746		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF                    (0x3<<12) /* BitField tcp_agg_vars2Various aggregative variables	timestamp was updated counter flag */
2747		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT              12
2748		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF                       (0x3<<14) /* BitField tcp_agg_vars2Various aggregative variables	auxiliary counter flag 8 */
2749		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT                 14
2750	u8_t __tx_dest /* aggregated value 8 */;
2751	u8_t __agg_val8_th /* aggregated value 8 - threshold */;
2752#endif
2753	u32_t ack_to_far_end /* The ACK sequence to send to far end */;
2754	u32_t rto_timer /* The RTO timer value */;
2755	u32_t ka_timer /* The KA timer value */;
2756	u32_t ts_to_echo /* The time stamp value to echo to far end */;
2757#if defined(__BIG_ENDIAN)
2758	u16_t __agg_val7_th /* aggregated value 7 - threshold */;
2759	u16_t __agg_val7 /* aggregated value 7 */;
2760#elif defined(__LITTLE_ENDIAN)
2761	u16_t __agg_val7 /* aggregated value 7 */;
2762	u16_t __agg_val7_th /* aggregated value 7 - threshold */;
2763#endif
2764#if defined(__BIG_ENDIAN)
2765	u8_t __tcp_agg_vars5 /* Various aggregative variables*/;
2766	u8_t __tcp_agg_vars4 /* Various aggregative variables*/;
2767	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
2768	u8_t __force_pure_ack_cnt /* The number of force ACK commands arrived from the TSTORM */;
2769#elif defined(__LITTLE_ENDIAN)
2770	u8_t __force_pure_ack_cnt /* The number of force ACK commands arrived from the TSTORM */;
2771	u8_t __tcp_agg_vars3 /* Various aggregative variables*/;
2772	u8_t __tcp_agg_vars4 /* Various aggregative variables*/;
2773	u8_t __tcp_agg_vars5 /* Various aggregative variables*/;
2774#endif
2775	u32_t tcp_agg_vars6;
2776		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN                         (0x1<<0) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux7_cf */
2777		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN_SHIFT                   0
2778		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN                    (0x1<<1) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux8_cf */
2779		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN_SHIFT              1
2780		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN                               (0x1<<2) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux9_cf */
2781		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN_SHIFT                         2
2782		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN                              (0x1<<3) /* BitField tcp_agg_vars6Various aggregative variables	Enable decision rules based on aux10_cf */
2783		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT                        3
2784		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX6_FLAG                                (0x1<<4) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary flag 6 */
2785		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX6_FLAG_SHIFT                          4
2786		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX7_FLAG                                (0x1<<5) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary flag 7 */
2787		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX7_FLAG_SHIFT                          5
2788		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX5_CF                                  (0x3<<6) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 5 */
2789		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX5_CF_SHIFT                            6
2790		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF                                  (0x3<<8) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 9 */
2791		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF_SHIFT                            8
2792		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF                                 (0x3<<10) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 10 */
2793		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_SHIFT                           10
2794		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF                                 (0x3<<12) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 11 */
2795		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF_SHIFT                           12
2796		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF                                 (0x3<<14) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 12 */
2797		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF_SHIFT                           14
2798		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX13_CF                                 (0x3<<16) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 13 */
2799		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX13_CF_SHIFT                           16
2800		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX14_CF                                 (0x3<<18) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 14 */
2801		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX14_CF_SHIFT                           18
2802		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX15_CF                                 (0x3<<20) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 15 */
2803		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX15_CF_SHIFT                           20
2804		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX16_CF                                 (0x3<<22) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 16 */
2805		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX16_CF_SHIFT                           22
2806		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX17_CF                                 (0x3<<24) /* BitField tcp_agg_vars6Various aggregative variables	auxiliary counter flag 17 */
2807		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX17_CF_SHIFT                           24
2808		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ECE_FLAG                                   (0x1<<26) /* BitField tcp_agg_vars6Various aggregative variables	Can be also used as general purpose if ECN is not used */
2809		#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ECE_FLAG_SHIFT                             26
2810		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED71                               (0x1<<27) /* BitField tcp_agg_vars6Various aggregative variables	Can be also used as general purpose if ECN is not used */
2811		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED71_SHIFT                         27
2812		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY                 (0x1<<28) /* BitField tcp_agg_vars6Various aggregative variables	This flag is set if the Force ACK count is set by the TSTORM. On QM output it is cleared. */
2813		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY_SHIFT           28
2814		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG                       (0x1<<29) /* BitField tcp_agg_vars6Various aggregative variables	Indicates that the connection is in autostop mode */
2815		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG_SHIFT                 29
2816		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG                        (0x1<<30) /* BitField tcp_agg_vars6Various aggregative variables	This bit uses like a one shot that the TSTORM fires and the XSTORM arms. Used to allow a single TS update for each transmission */
2817		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG_SHIFT                  30
2818		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG                   (0x1<<31) /* BitField tcp_agg_vars6Various aggregative variables	This bit is set by the TSTORM when need to cancel precious fast retransmit */
2819		#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG_SHIFT             31
2820#if defined(__BIG_ENDIAN)
2821	u16_t __agg_misc6 /* Misc aggregated variable 6 */;
2822	u16_t __tcp_agg_vars7 /* Various aggregative variables*/;
2823#elif defined(__LITTLE_ENDIAN)
2824	u16_t __tcp_agg_vars7 /* Various aggregative variables*/;
2825	u16_t __agg_misc6 /* Misc aggregated variable 6 */;
2826#endif
2827	u32_t __agg_val10 /* aggregated value 10 */;
2828	u32_t __agg_val10_th /* aggregated value 10 - threshold */;
2829#if defined(__BIG_ENDIAN)
2830	u16_t __reserved3;
2831	u8_t __reserved2;
2832	u8_t __da_only_cnt /* counts delayed acks and not window updates */;
2833#elif defined(__LITTLE_ENDIAN)
2834	u8_t __da_only_cnt /* counts delayed acks and not window updates */;
2835	u8_t __reserved2;
2836	u16_t __reserved3;
2837#endif
2838};
2839
2840/*
2841 * The toe aggregative context of Xstorm
2842 */
2843struct xstorm_toe_ag_context
2844{
2845#if defined(__BIG_ENDIAN)
2846	u16_t agg_val1 /* aggregated value 1 */;
2847	u8_t agg_vars1;
2848		#define __XSTORM_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 */
2849		#define __XSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                  0
2850		#define __XSTORM_TOE_AG_CONTEXT_RESERVED50                                           (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
2851		#define __XSTORM_TOE_AG_CONTEXT_RESERVED50_SHIFT                                     1
2852		#define __XSTORM_TOE_AG_CONTEXT_RESERVED51                                           (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
2853		#define __XSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT                                     2
2854		#define __XSTORM_TOE_AG_CONTEXT_RESERVED52                                           (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
2855		#define __XSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT                                     3
2856		#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN                                      (0x1<<4) /* BitField agg_vars1Various aggregative variables	Enables the decision rule of more_to_Send > 0 */
2857		#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT                                4
2858		#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN                                               (0x1<<5) /* BitField agg_vars1Various aggregative variables	Enables the nagle decision */
2859		#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN_SHIFT                                         5
2860		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG                                        (0x1<<6) /* BitField agg_vars1Various aggregative variables	used to indicate last doorbell for specific connection */
2861		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_SHIFT                                  6
2862		#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN                                        (0x1<<7) /* BitField agg_vars1Various aggregative variables	Enable decision rules based on equality between snd_una and snd_nxt */
2863		#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT                                  7
2864	u8_t __state /* The state of the connection */;
2865#elif defined(__LITTLE_ENDIAN)
2866	u8_t __state /* The state of the connection */;
2867	u8_t agg_vars1;
2868		#define __XSTORM_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 */
2869		#define __XSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT                                  0
2870		#define __XSTORM_TOE_AG_CONTEXT_RESERVED50                                           (0x1<<1) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 1 */
2871		#define __XSTORM_TOE_AG_CONTEXT_RESERVED50_SHIFT                                     1
2872		#define __XSTORM_TOE_AG_CONTEXT_RESERVED51                                           (0x1<<2) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 2 */
2873		#define __XSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT                                     2
2874		#define __XSTORM_TOE_AG_CONTEXT_RESERVED52                                           (0x1<<3) /* BitField agg_vars1Various aggregative variables	The connection is currently registered to the QM with queue index 3 */
2875		#define __XSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT                                     3
2876		#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN                                      (0x1<<4) /* BitField agg_vars1Various aggregative variables	Enables the decision rule of more_to_Send > 0 */
2877		#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT                                4
2878		#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN                                               (0x1<<5) /* BitField agg_vars1Various aggregative variables	Enables the nagle decision */
2879		#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN_SHIFT                                         5
2880		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG                                        (0x1<<6) /* BitField agg_vars1Various aggregative variables	used to indicate last doorbell for specific connection */
2881		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_SHIFT                                  6
2882		#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN                                        (0x1<<7) /* BitField agg_vars1Various aggregative variables	Enable decision rules based on equality between snd_una and snd_nxt */
2883		#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT                                  7
2884	u16_t agg_val1 /* aggregated value 1 */;
2885#endif
2886#if defined(__BIG_ENDIAN)
2887	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
2888	u8_t __agg_vars4 /* Various aggregative variables*/;
2889	u8_t agg_vars3;
2890		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2                                    (0x3F<<0) /* BitField agg_vars3Various aggregative variables	The physical queue number of queue index 2 */
2891		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT                              0
2892		#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF                                   (0x3<<6) /* BitField agg_vars3Various aggregative variables	auxiliary counter flag 19 */
2893		#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF_SHIFT                             6
2894	u8_t agg_vars2;
2895		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF                                                (0x3<<0) /* BitField agg_vars2Various aggregative variables	auxiliary counter flag 4 */
2896		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_SHIFT                                          0
2897		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN                                     (0x1<<2) /* BitField agg_vars2Various aggregative variables	Enable decision rule based on dq_spare_flag */
2898		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN_SHIFT                               2
2899		#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG                                            (0x1<<3) /* BitField agg_vars2Various aggregative variables	auxiliary flag 8 */
2900		#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG_SHIFT                                      3
2901		#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG                                            (0x1<<4) /* BitField agg_vars2Various aggregative variables	auxiliary flag 9 */
2902		#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG_SHIFT                                      4
2903		#define XSTORM_TOE_AG_CONTEXT_RESERVED53                                             (0x3<<5) /* BitField agg_vars2Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2904		#define XSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT                                       5
2905		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN                                             (0x1<<7) /* BitField agg_vars2Various aggregative variables	Enable decision rules based on aux4_cf */
2906		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN_SHIFT                                       7
2907#elif defined(__LITTLE_ENDIAN)
2908	u8_t agg_vars2;
2909		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF                                                (0x3<<0) /* BitField agg_vars2Various aggregative variables	auxiliary counter flag 4 */
2910		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_SHIFT                                          0
2911		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN                                     (0x1<<2) /* BitField agg_vars2Various aggregative variables	Enable decision rule based on dq_spare_flag */
2912		#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN_SHIFT                               2
2913		#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG                                            (0x1<<3) /* BitField agg_vars2Various aggregative variables	auxiliary flag 8 */
2914		#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG_SHIFT                                      3
2915		#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG                                            (0x1<<4) /* BitField agg_vars2Various aggregative variables	auxiliary flag 9 */
2916		#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG_SHIFT                                      4
2917		#define XSTORM_TOE_AG_CONTEXT_RESERVED53                                             (0x3<<5) /* BitField agg_vars2Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2918		#define XSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT                                       5
2919		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN                                             (0x1<<7) /* BitField agg_vars2Various aggregative variables	Enable decision rules based on aux4_cf */
2920		#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN_SHIFT                                       7
2921	u8_t agg_vars3;
2922		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2                                    (0x3F<<0) /* BitField agg_vars3Various aggregative variables	The physical queue number of queue index 2 */
2923		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT                              0
2924		#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF                                   (0x3<<6) /* BitField agg_vars3Various aggregative variables	auxiliary counter flag 19 */
2925		#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF_SHIFT                             6
2926	u8_t __agg_vars4 /* Various aggregative variables*/;
2927	u8_t cdu_reserved /* Used by the CDU for validation and debugging */;
2928#endif
2929	u32_t more_to_send /* The number of bytes left to send */;
2930#if defined(__BIG_ENDIAN)
2931	u16_t agg_vars5;
2932		#define __XSTORM_TOE_AG_CONTEXT_RESERVED54                                           (0x3<<0) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2933		#define __XSTORM_TOE_AG_CONTEXT_RESERVED54_SHIFT                                     0
2934		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0                                    (0x3F<<2) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 0 */
2935		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT                              2
2936		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1                                    (0x3F<<8) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 1 */
2937		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT                              8
2938		#define __XSTORM_TOE_AG_CONTEXT_RESERVED56                                           (0x3<<14) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2939		#define __XSTORM_TOE_AG_CONTEXT_RESERVED56_SHIFT                                     14
2940	u16_t __agg_val4_th /* aggregated value 4 - threshold */;
2941#elif defined(__LITTLE_ENDIAN)
2942	u16_t __agg_val4_th /* aggregated value 4 - threshold */;
2943	u16_t agg_vars5;
2944		#define __XSTORM_TOE_AG_CONTEXT_RESERVED54                                           (0x3<<0) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2945		#define __XSTORM_TOE_AG_CONTEXT_RESERVED54_SHIFT                                     0
2946		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0                                    (0x3F<<2) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 0 */
2947		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT                              2
2948		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1                                    (0x3F<<8) /* BitField agg_vars5Various aggregative variables	The physical queue number of queue index 1 */
2949		#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT                              8
2950		#define __XSTORM_TOE_AG_CONTEXT_RESERVED56                                           (0x3<<14) /* BitField agg_vars5Various aggregative variables	0-NOP,1-EQ,2-NEQ */
2951		#define __XSTORM_TOE_AG_CONTEXT_RESERVED56_SHIFT                                     14
2952#endif
2953	struct xstorm_toe_tcp_ag_context_section tcp /* TCP context section, shared in TOE and ISCSI */;
2954#if defined(__BIG_ENDIAN)
2955	u16_t __agg_vars7 /* Various aggregative variables*/;
2956	u8_t __agg_val3_th /* Aggregated value 3 - threshold */;
2957	u8_t __agg_vars6 /* Various aggregative variables*/;
2958#elif defined(__LITTLE_ENDIAN)
2959	u8_t __agg_vars6 /* Various aggregative variables*/;
2960	u8_t __agg_val3_th /* Aggregated value 3 - threshold */;
2961	u16_t __agg_vars7 /* Various aggregative variables*/;
2962#endif
2963#if defined(__BIG_ENDIAN)
2964	u16_t __agg_val11_th /* aggregated value 11 - threshold */;
2965	u16_t __agg_val11 /* aggregated value 11 */;
2966#elif defined(__LITTLE_ENDIAN)
2967	u16_t __agg_val11 /* aggregated value 11 */;
2968	u16_t __agg_val11_th /* aggregated value 11 - threshold */;
2969#endif
2970#if defined(__BIG_ENDIAN)
2971	u8_t __reserved1;
2972	u8_t __agg_val6_th /* aggregated value 6 - threshold */;
2973	u16_t __agg_val9 /* aggregated value 9 */;
2974#elif defined(__LITTLE_ENDIAN)
2975	u16_t __agg_val9 /* aggregated value 9 */;
2976	u8_t __agg_val6_th /* aggregated value 6 - threshold */;
2977	u8_t __reserved1;
2978#endif
2979#if defined(__BIG_ENDIAN)
2980	u16_t __agg_val2_th /* Aggregated value 2 - threshold */;
2981	u16_t cmp_bd_cons /* BD Consumer from the Completor */;
2982#elif defined(__LITTLE_ENDIAN)
2983	u16_t cmp_bd_cons /* BD Consumer from the Completor */;
2984	u16_t __agg_val2_th /* Aggregated value 2 - threshold */;
2985#endif
2986	u32_t __agg_vars8 /* Various aggregative variables*/;
2987#if defined(__BIG_ENDIAN)
2988	u16_t __agg_misc0 /* Misc aggregated variable 0 */;
2989	u16_t __agg_val4 /* aggregated value 4 */;
2990#elif defined(__LITTLE_ENDIAN)
2991	u16_t __agg_val4 /* aggregated value 4 */;
2992	u16_t __agg_misc0 /* Misc aggregated variable 0 */;
2993#endif
2994#if defined(__BIG_ENDIAN)
2995	u8_t __agg_val3 /* Aggregated value 3 */;
2996	u8_t __agg_val6 /* Aggregated value 6 */;
2997	u8_t __agg_val5_th /* Aggregated value 5 - threshold */;
2998	u8_t __agg_val5 /* Aggregated value 5 */;
2999#elif defined(__LITTLE_ENDIAN)
3000	u8_t __agg_val5 /* Aggregated value 5 */;
3001	u8_t __agg_val5_th /* Aggregated value 5 - threshold */;
3002	u8_t __agg_val6 /* Aggregated value 6 */;
3003	u8_t __agg_val3 /* Aggregated value 3 */;
3004#endif
3005#if defined(__BIG_ENDIAN)
3006	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. */;
3007	u16_t __bd_ind_max_val /* modulo value for bd_prod */;
3008#elif defined(__LITTLE_ENDIAN)
3009	u16_t __bd_ind_max_val /* modulo value for bd_prod */;
3010	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. */;
3011#endif
3012	u32_t cmp_bd_start_seq /* The sequence number of the start completion point (BD) */;
3013	u32_t cmp_bd_page_0_to_31 /* Misc aggregated variable 4 */;
3014	u32_t cmp_bd_page_32_to_63 /* spare aggregated variable 5 */;
3015};
3016
3017
3018
3019/*
3020 * doorbell message sent to the chip
3021 */
3022struct doorbell
3023{
3024#if defined(__BIG_ENDIAN)
3025	u16_t zero_fill2 /* driver must zero this field! */;
3026	u8_t zero_fill1 /* driver must zero this field! */;
3027	struct doorbell_hdr_t header;
3028#elif defined(__LITTLE_ENDIAN)
3029	struct doorbell_hdr_t header;
3030	u8_t zero_fill1 /* driver must zero this field! */;
3031	u16_t zero_fill2 /* driver must zero this field! */;
3032#endif
3033};
3034
3035
3036
3037/*
3038 * doorbell message sent to the chip
3039 */
3040struct doorbell_set_prod
3041{
3042#if defined(__BIG_ENDIAN)
3043	u16_t prod /* Producer index to be set */;
3044	u8_t zero_fill1 /* driver must zero this field! */;
3045	struct doorbell_hdr_t header;
3046#elif defined(__LITTLE_ENDIAN)
3047	struct doorbell_hdr_t header;
3048	u8_t zero_fill1 /* driver must zero this field! */;
3049	u16_t prod /* Producer index to be set */;
3050#endif
3051};
3052
3053
3054struct regpair_native_t
3055{
3056	u32_t lo /* low word for reg-pair */;
3057	u32_t hi /* high word for reg-pair */;
3058};
3059
3060
3061struct regpair_t
3062{
3063	u32_t lo /* low word for reg-pair */;
3064	u32_t hi /* high word for reg-pair */;
3065};
3066
3067
3068
3069
3070
3071
3072
3073/*
3074 * Classify rule opcodes in E2/E3
3075 */
3076enum classify_rule
3077{
3078	CLASSIFY_RULE_OPCODE_MAC /* Add/remove a MAC address */,
3079	CLASSIFY_RULE_OPCODE_VLAN /* Add/remove a VLAN */,
3080	CLASSIFY_RULE_OPCODE_PAIR /* Add/remove a MAC-VLAN pair */,
3081	CLASSIFY_RULE_OPCODE_VXLAN /* Add/remove a VXLAN entry (Inner MAC / VNI pair) */,
3082	MAX_CLASSIFY_RULE};
3083
3084
3085/*
3086 * Classify rule types in E2/E3
3087 */
3088enum classify_rule_action_type
3089{
3090	CLASSIFY_RULE_REMOVE,
3091	CLASSIFY_RULE_ADD,
3092	MAX_CLASSIFY_RULE_ACTION_TYPE};
3093
3094
3095/*
3096 * client init ramrod data $$KEEP_ENDIANNESS$$
3097 */
3098struct client_init_general_data
3099{
3100	u8_t client_id /* client_id */;
3101	u8_t statistics_counter_id /* statistics counter id */;
3102	u8_t statistics_en_flg /* statistics en flg */;
3103	u8_t is_fcoe_flg /* is this an fcoe connection. (1 bit is used) */;
3104	u8_t activate_flg /* if 0 - the client is deactivate else the client is activate client (1 bit is used) */;
3105	u8_t sp_client_id /* the slow path rings client Id. */;
3106	u16_t mtu /* Host MTU from client config */;
3107	u8_t statistics_zero_flg /* if set FW will reset the statistic counter of this client */;
3108	u8_t func_id /* PCI function ID (0-71) */;
3109	u8_t cos /* The connection cos, if applicable */;
3110	u8_t traffic_type;
3111	u8_t fp_hsi_ver /* Hsi version */;
3112	u8_t reserved0[3];
3113};
3114
3115
3116/*
3117 * client init rx data $$KEEP_ENDIANNESS$$
3118 */
3119struct client_init_rx_data
3120{
3121	u8_t tpa_en;
3122		#define CLIENT_INIT_RX_DATA_TPA_EN_IPV4                                              (0x1<<0) /* BitField tpa_entpa_enable	tpa enable flg ipv4 */
3123		#define CLIENT_INIT_RX_DATA_TPA_EN_IPV4_SHIFT                                        0
3124		#define CLIENT_INIT_RX_DATA_TPA_EN_IPV6                                              (0x1<<1) /* BitField tpa_entpa_enable	tpa enable flg ipv6 */
3125		#define CLIENT_INIT_RX_DATA_TPA_EN_IPV6_SHIFT                                        1
3126		#define CLIENT_INIT_RX_DATA_TPA_MODE                                                 (0x1<<2) /* BitField tpa_entpa_enable	tpa mode (LRO or GRO) (use enum tpa_mode) */
3127		#define CLIENT_INIT_RX_DATA_TPA_MODE_SHIFT                                           2
3128		#define CLIENT_INIT_RX_DATA_RESERVED5                                                (0x1F<<3) /* BitField tpa_entpa_enable	 */
3129		#define CLIENT_INIT_RX_DATA_RESERVED5_SHIFT                                          3
3130	u8_t vmqueue_mode_en_flg /* If set, working in VMQueue mode (always consume one sge) */;
3131	u8_t extra_data_over_sgl_en_flg /* if set, put over sgl data from end of input message */;
3132	u8_t cache_line_alignment_log_size /* The log size of cache line alignment in bytes. Must be a power of 2. */;
3133	u8_t enable_dynamic_hc /* If set, dynamic HC is enabled */;
3134	u8_t max_sges_for_packet /* The maximal number of SGEs that can be used for one packet. depends on MTU and SGE size. must be 0 if SGEs are disabled */;
3135	u8_t client_qzone_id /* used in E2 only, to specify the HW queue zone ID used for this client rx producers */;
3136	u8_t drop_ip_cs_err_flg /* If set, this client drops packets with IP checksum error */;
3137	u8_t drop_tcp_cs_err_flg /* If set, this client drops packets with TCP checksum error */;
3138	u8_t drop_ttl0_flg /* If set, this client drops packets with TTL=0 */;
3139	u8_t drop_udp_cs_err_flg /* If set, this client drops packets with UDP checksum error */;
3140	u8_t inner_vlan_removal_enable_flg /* If set, inner VLAN removal is enabled for this client */;
3141	u8_t outer_vlan_removal_enable_flg /* If set, outer VLAN removal is enabled for this client */;
3142	u8_t status_block_id /* rx status block id */;
3143	u8_t rx_sb_index_number /* status block indices */;
3144	u8_t dont_verify_rings_pause_thr_flg /* If set, the rings pause thresholds will not be verified by firmware. */;
3145	u8_t max_tpa_queues /* maximal TPA queues allowed for this client */;
3146	u8_t silent_vlan_removal_flg /* if set, and the vlan is equal to requested vlan according to mask, the vlan will be remove without notifying the driver */;
3147	u16_t max_bytes_on_bd /* Maximum bytes that can be placed on a BD. The BD allocated size should include 2 more bytes (ip alignment) and alignment size (in case the address is not aligned) */;
3148	u16_t sge_buff_size /* Size of the buffers pointed by SGEs */;
3149	u8_t approx_mcast_engine_id /* In Everest2, if is_approx_mcast is set, this field specified which approximate multicast engine is associate with this client */;
3150	u8_t rss_engine_id /* In Everest2, if rss_mode is set, this field specified which RSS engine is associate with this client */;
3151	struct regpair_t bd_page_base /* BD page base address at the host */;
3152	struct regpair_t sge_page_base /* SGE page base address at the host */;
3153	struct regpair_t cqe_page_base /* Completion queue base address */;
3154	u8_t is_leading_rss;
3155	u8_t is_approx_mcast;
3156	u16_t max_agg_size /* maximal size for the aggregated TPA packets, reprted by the host */;
3157	u16_t state;
3158		#define CLIENT_INIT_RX_DATA_UCAST_DROP_ALL                                           (0x1<<0) /* BitField staterx filters state	drop all unicast packets */
3159		#define CLIENT_INIT_RX_DATA_UCAST_DROP_ALL_SHIFT                                     0
3160		#define CLIENT_INIT_RX_DATA_UCAST_ACCEPT_ALL                                         (0x1<<1) /* BitField staterx filters state	accept all unicast packets (subject to vlan) */
3161		#define