1
2
3
4
5
6
7
8
9
10
11#ifndef OTX2_STRUCT_H
12#define OTX2_STRUCT_H
13
14
15enum nix_cqesz_e {
16 NIX_XQESZ_W64 = 0x0,
17 NIX_XQESZ_W16 = 0x1,
18};
19
20enum nix_sqes_e {
21 NIX_SQESZ_W16 = 0x0,
22 NIX_SQESZ_W8 = 0x1,
23};
24
25enum nix_send_ldtype {
26 NIX_SEND_LDTYPE_LDD = 0x0,
27 NIX_SEND_LDTYPE_LDT = 0x1,
28 NIX_SEND_LDTYPE_LDWB = 0x2,
29};
30
31
32enum nix_sendl3type {
33 NIX_SENDL3TYPE_NONE = 0x0,
34 NIX_SENDL3TYPE_IP4 = 0x2,
35 NIX_SENDL3TYPE_IP4_CKSUM = 0x3,
36 NIX_SENDL3TYPE_IP6 = 0x4,
37};
38
39enum nix_sendl4type {
40 NIX_SENDL4TYPE_NONE,
41 NIX_SENDL4TYPE_TCP_CKSUM,
42 NIX_SENDL4TYPE_SCTP_CKSUM,
43 NIX_SENDL4TYPE_UDP_CKSUM,
44};
45
46
47enum nix_xqe_type {
48 NIX_XQE_TYPE_INVALID = 0x0,
49 NIX_XQE_TYPE_RX = 0x1,
50 NIX_XQE_TYPE_RX_IPSECS = 0x2,
51 NIX_XQE_TYPE_RX_IPSECH = 0x3,
52 NIX_XQE_TYPE_RX_IPSECD = 0x4,
53 NIX_XQE_TYPE_SEND = 0x8,
54};
55
56
57enum nix_subdc {
58 NIX_SUBDC_NOP = 0x0,
59 NIX_SUBDC_EXT = 0x1,
60 NIX_SUBDC_CRC = 0x2,
61 NIX_SUBDC_IMM = 0x3,
62 NIX_SUBDC_SG = 0x4,
63 NIX_SUBDC_MEM = 0x5,
64 NIX_SUBDC_JUMP = 0x6,
65 NIX_SUBDC_WORK = 0x7,
66 NIX_SUBDC_SOD = 0xf,
67};
68
69
70enum nix_sendmemalg {
71 NIX_SENDMEMALG_E_SET = 0x0,
72 NIX_SENDMEMALG_E_SETTSTMP = 0x1,
73 NIX_SENDMEMALG_E_SETRSLT = 0x2,
74 NIX_SENDMEMALG_E_ADD = 0x8,
75 NIX_SENDMEMALG_E_SUB = 0x9,
76 NIX_SENDMEMALG_E_ADDLEN = 0xa,
77 NIX_SENDMEMALG_E_SUBLEN = 0xb,
78 NIX_SENDMEMALG_E_ADDMBUF = 0xc,
79 NIX_SENDMEMALG_E_SUBMBUF = 0xd,
80 NIX_SENDMEMALG_E_ENUM_LAST = 0xe,
81};
82
83
84struct nix_cqe_hdr_s {
85 u64 flow_tag : 32;
86 u64 q : 20;
87 u64 reserved_52_57 : 6;
88 u64 node : 2;
89 u64 cqe_type : 4;
90};
91
92
93struct nix_rx_parse_s {
94 u64 chan : 12;
95 u64 desc_sizem1 : 5;
96 u64 rsvd_17 : 1;
97 u64 express : 1;
98 u64 wqwd : 1;
99 u64 errlev : 4;
100 u64 errcode : 8;
101 u64 latype : 4;
102 u64 lbtype : 4;
103 u64 lctype : 4;
104 u64 ldtype : 4;
105 u64 letype : 4;
106 u64 lftype : 4;
107 u64 lgtype : 4;
108 u64 lhtype : 4;
109 u64 pkt_lenm1 : 16;
110 u64 l2m : 1;
111 u64 l2b : 1;
112 u64 l3m : 1;
113 u64 l3b : 1;
114 u64 vtag0_valid : 1;
115 u64 vtag0_gone : 1;
116 u64 vtag1_valid : 1;
117 u64 vtag1_gone : 1;
118 u64 pkind : 6;
119 u64 rsvd_95_94 : 2;
120 u64 vtag0_tci : 16;
121 u64 vtag1_tci : 16;
122 u64 laflags : 8;
123 u64 lbflags : 8;
124 u64 lcflags : 8;
125 u64 ldflags : 8;
126 u64 leflags : 8;
127 u64 lfflags : 8;
128 u64 lgflags : 8;
129 u64 lhflags : 8;
130 u64 eoh_ptr : 8;
131 u64 wqe_aura : 20;
132 u64 pb_aura : 20;
133 u64 match_id : 16;
134 u64 laptr : 8;
135 u64 lbptr : 8;
136 u64 lcptr : 8;
137 u64 ldptr : 8;
138 u64 leptr : 8;
139 u64 lfptr : 8;
140 u64 lgptr : 8;
141 u64 lhptr : 8;
142 u64 vtag0_ptr : 8;
143 u64 vtag1_ptr : 8;
144 u64 flow_key_alg : 5;
145 u64 rsvd_359_341 : 19;
146 u64 color : 2;
147 u64 rsvd_383_362 : 22;
148 u64 rsvd_447_384;
149};
150
151
152struct nix_rx_sg_s {
153 u64 seg_size : 16;
154 u64 seg2_size : 16;
155 u64 seg3_size : 16;
156 u64 segs : 2;
157 u64 rsvd_59_50 : 10;
158 u64 subdc : 4;
159 u64 seg_addr;
160 u64 seg2_addr;
161 u64 seg3_addr;
162};
163
164struct nix_send_comp_s {
165 u64 status : 8;
166 u64 sqe_id : 16;
167 u64 rsvd_24_63 : 40;
168};
169
170struct nix_cqe_rx_s {
171 struct nix_cqe_hdr_s hdr;
172 struct nix_rx_parse_s parse;
173 struct nix_rx_sg_s sg;
174};
175
176struct nix_cqe_tx_s {
177 struct nix_cqe_hdr_s hdr;
178 struct nix_send_comp_s comp;
179};
180
181
182struct nix_sqe_hdr_s {
183 u64 total : 18;
184 u64 reserved_18 : 1;
185 u64 df : 1;
186 u64 aura : 20;
187 u64 sizem1 : 3;
188 u64 pnc : 1;
189 u64 sq : 20;
190 u64 ol3ptr : 8;
191 u64 ol4ptr : 8;
192 u64 il3ptr : 8;
193 u64 il4ptr : 8;
194 u64 ol3type : 4;
195 u64 ol4type : 4;
196 u64 il3type : 4;
197 u64 il4type : 4;
198 u64 sqe_id : 16;
199
200};
201
202
203struct nix_sqe_ext_s {
204 u64 lso_mps : 14;
205 u64 lso : 1;
206 u64 tstmp : 1;
207 u64 lso_sb : 8;
208 u64 lso_format : 5;
209 u64 rsvd_31_29 : 3;
210 u64 shp_chg : 9;
211 u64 shp_dis : 1;
212 u64 shp_ra : 2;
213 u64 markptr : 8;
214 u64 markform : 7;
215 u64 mark_en : 1;
216 u64 subdc : 4;
217 u64 vlan0_ins_ptr : 8;
218 u64 vlan0_ins_tci : 16;
219 u64 vlan1_ins_ptr : 8;
220 u64 vlan1_ins_tci : 16;
221 u64 vlan0_ins_ena : 1;
222 u64 vlan1_ins_ena : 1;
223 u64 init_color : 2;
224 u64 rsvd_127_116 : 12;
225};
226
227struct nix_sqe_sg_s {
228 u64 seg1_size : 16;
229 u64 seg2_size : 16;
230 u64 seg3_size : 16;
231 u64 segs : 2;
232 u64 rsvd_54_50 : 5;
233 u64 i1 : 1;
234 u64 i2 : 1;
235 u64 i3 : 1;
236 u64 ld_type : 2;
237 u64 subdc : 4;
238};
239
240
241struct nix_sqe_mem_s {
242 u64 offset : 16;
243 u64 rsvd_51_16 : 36;
244 u64 per_lso_seg : 1;
245 u64 wmem : 1;
246 u64 dsz : 2;
247 u64 alg : 4;
248 u64 subdc : 4;
249 u64 addr;
250};
251
252enum nix_cqerrint_e {
253 NIX_CQERRINT_DOOR_ERR = 0,
254 NIX_CQERRINT_WR_FULL = 1,
255 NIX_CQERRINT_CQE_FAULT = 2,
256};
257
258#define NIX_CQERRINT_BITS (BIT_ULL(NIX_CQERRINT_DOOR_ERR) | \
259 BIT_ULL(NIX_CQERRINT_CQE_FAULT))
260
261enum nix_rqint_e {
262 NIX_RQINT_DROP = 0,
263 NIX_RQINT_RED = 1,
264};
265
266#define NIX_RQINT_BITS (BIT_ULL(NIX_RQINT_DROP) | BIT_ULL(NIX_RQINT_RED))
267
268enum nix_sqint_e {
269 NIX_SQINT_LMT_ERR = 0,
270 NIX_SQINT_MNQ_ERR = 1,
271 NIX_SQINT_SEND_ERR = 2,
272 NIX_SQINT_SQB_ALLOC_FAIL = 3,
273};
274
275#define NIX_SQINT_BITS (BIT_ULL(NIX_SQINT_LMT_ERR) | \
276 BIT_ULL(NIX_SQINT_MNQ_ERR) | \
277 BIT_ULL(NIX_SQINT_SEND_ERR) | \
278 BIT_ULL(NIX_SQINT_SQB_ALLOC_FAIL))
279
280#endif
281