summaryrefslogtreecommitdiff
path: root/platform/sysroot/usr/include/linux/dcbnl.h
blob: b2fec7b950e09c63a7de21cdc483dec79a440d2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef __LINUX_DCBNL_H__
#define __LINUX_DCBNL_H__
#include <linux/types.h>
#define IEEE_8021QAZ_MAX_TCS 8
#define IEEE_8021QAZ_TSA_STRICT 0
#define IEEE_8021QAZ_TSA_CB_SHAPER 1
#define IEEE_8021QAZ_TSA_ETS 2
#define IEEE_8021QAZ_TSA_VENDOR 255
struct ieee_ets {
  __u8 willing;
  __u8 ets_cap;
  __u8 cbs;
  __u8 tc_tx_bw[IEEE_8021QAZ_MAX_TCS];
  __u8 tc_rx_bw[IEEE_8021QAZ_MAX_TCS];
  __u8 tc_tsa[IEEE_8021QAZ_MAX_TCS];
  __u8 prio_tc[IEEE_8021QAZ_MAX_TCS];
  __u8 tc_reco_bw[IEEE_8021QAZ_MAX_TCS];
  __u8 tc_reco_tsa[IEEE_8021QAZ_MAX_TCS];
  __u8 reco_prio_tc[IEEE_8021QAZ_MAX_TCS];
};
struct ieee_maxrate {
  __u64 tc_maxrate[IEEE_8021QAZ_MAX_TCS];
};
enum dcbnl_cndd_states {
  DCB_CNDD_RESET = 0,
  DCB_CNDD_EDGE,
  DCB_CNDD_INTERIOR,
  DCB_CNDD_INTERIOR_READY,
};
struct ieee_qcn {
  __u8 rpg_enable[IEEE_8021QAZ_MAX_TCS];
  __u32 rppp_max_rps[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_time_reset[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_byte_reset[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_threshold[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_max_rate[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_ai_rate[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_hai_rate[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_gd[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_min_dec_fac[IEEE_8021QAZ_MAX_TCS];
  __u32 rpg_min_rate[IEEE_8021QAZ_MAX_TCS];
  __u32 cndd_state_machine[IEEE_8021QAZ_MAX_TCS];
};
struct ieee_qcn_stats {
  __u64 rppp_rp_centiseconds[IEEE_8021QAZ_MAX_TCS];
  __u32 rppp_created_rps[IEEE_8021QAZ_MAX_TCS];
};
struct ieee_pfc {
  __u8 pfc_cap;
  __u8 pfc_en;
  __u8 mbc;
  __u16 delay;
  __u64 requests[IEEE_8021QAZ_MAX_TCS];
  __u64 indications[IEEE_8021QAZ_MAX_TCS];
};
#define IEEE_8021Q_MAX_PRIORITIES 8
#define DCBX_MAX_BUFFERS 8
struct dcbnl_buffer {
  __u8 prio2buffer[IEEE_8021Q_MAX_PRIORITIES];
  __u32 buffer_size[DCBX_MAX_BUFFERS];
  __u32 total_size;
};
#define CEE_DCBX_MAX_PGS 8
#define CEE_DCBX_MAX_PRIO 8
struct cee_pg {
  __u8 willing;
  __u8 error;
  __u8 pg_en;
  __u8 tcs_supported;
  __u8 pg_bw[CEE_DCBX_MAX_PGS];
  __u8 prio_pg[CEE_DCBX_MAX_PGS];
};
struct cee_pfc {
  __u8 willing;
  __u8 error;
  __u8 pfc_en;
  __u8 tcs_supported;
};
#define IEEE_8021QAZ_APP_SEL_ETHERTYPE 1
#define IEEE_8021QAZ_APP_SEL_STREAM 2
#define IEEE_8021QAZ_APP_SEL_DGRAM 3
#define IEEE_8021QAZ_APP_SEL_ANY 4
#define IEEE_8021QAZ_APP_SEL_DSCP 5
#define DCB_APP_SEL_PCP 255
struct dcb_app {
  __u8 selector;
  __u8 priority;
  __u16 protocol;
};
#define IEEE_8021QAZ_APP_SEL_MAX 255
struct dcb_peer_app_info {
  __u8 willing;
  __u8 error;
};
struct dcbmsg {
  __u8 dcb_family;
  __u8 cmd;
  __u16 dcb_pad;
};
enum dcbnl_commands {
  DCB_CMD_UNDEFINED,
  DCB_CMD_GSTATE,
  DCB_CMD_SSTATE,
  DCB_CMD_PGTX_GCFG,
  DCB_CMD_PGTX_SCFG,
  DCB_CMD_PGRX_GCFG,
  DCB_CMD_PGRX_SCFG,
  DCB_CMD_PFC_GCFG,
  DCB_CMD_PFC_SCFG,
  DCB_CMD_SET_ALL,
  DCB_CMD_GPERM_HWADDR,
  DCB_CMD_GCAP,
  DCB_CMD_GNUMTCS,
  DCB_CMD_SNUMTCS,
  DCB_CMD_PFC_GSTATE,
  DCB_CMD_PFC_SSTATE,
  DCB_CMD_BCN_GCFG,
  DCB_CMD_BCN_SCFG,
  DCB_CMD_GAPP,
  DCB_CMD_SAPP,
  DCB_CMD_IEEE_SET,
  DCB_CMD_IEEE_GET,
  DCB_CMD_GDCBX,
  DCB_CMD_SDCBX,
  DCB_CMD_GFEATCFG,
  DCB_CMD_SFEATCFG,
  DCB_CMD_CEE_GET,
  DCB_CMD_IEEE_DEL,
  __DCB_CMD_ENUM_MAX,
  DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1,
};
enum dcbnl_attrs {
  DCB_ATTR_UNDEFINED,
  DCB_ATTR_IFNAME,
  DCB_ATTR_STATE,
  DCB_ATTR_PFC_STATE,
  DCB_ATTR_PFC_CFG,
  DCB_ATTR_NUM_TC,
  DCB_ATTR_PG_CFG,
  DCB_ATTR_SET_ALL,
  DCB_ATTR_PERM_HWADDR,
  DCB_ATTR_CAP,
  DCB_ATTR_NUMTCS,
  DCB_ATTR_BCN,
  DCB_ATTR_APP,
  DCB_ATTR_IEEE,
  DCB_ATTR_DCBX,
  DCB_ATTR_FEATCFG,
  DCB_ATTR_CEE,
  __DCB_ATTR_ENUM_MAX,
  DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1,
};
enum ieee_attrs {
  DCB_ATTR_IEEE_UNSPEC,
  DCB_ATTR_IEEE_ETS,
  DCB_ATTR_IEEE_PFC,
  DCB_ATTR_IEEE_APP_TABLE,
  DCB_ATTR_IEEE_PEER_ETS,
  DCB_ATTR_IEEE_PEER_PFC,
  DCB_ATTR_IEEE_PEER_APP,
  DCB_ATTR_IEEE_MAXRATE,
  DCB_ATTR_IEEE_QCN,
  DCB_ATTR_IEEE_QCN_STATS,
  DCB_ATTR_DCB_BUFFER,
  DCB_ATTR_DCB_APP_TRUST_TABLE,
  DCB_ATTR_DCB_REWR_TABLE,
  __DCB_ATTR_IEEE_MAX
};
#define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1)
enum ieee_attrs_app {
  DCB_ATTR_IEEE_APP_UNSPEC,
  DCB_ATTR_IEEE_APP,
  DCB_ATTR_DCB_APP,
  __DCB_ATTR_IEEE_APP_MAX
};
#define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1)
enum cee_attrs {
  DCB_ATTR_CEE_UNSPEC,
  DCB_ATTR_CEE_PEER_PG,
  DCB_ATTR_CEE_PEER_PFC,
  DCB_ATTR_CEE_PEER_APP_TABLE,
  DCB_ATTR_CEE_TX_PG,
  DCB_ATTR_CEE_RX_PG,
  DCB_ATTR_CEE_PFC,
  DCB_ATTR_CEE_APP_TABLE,
  DCB_ATTR_CEE_FEAT,
  __DCB_ATTR_CEE_MAX
};
#define DCB_ATTR_CEE_MAX (__DCB_ATTR_CEE_MAX - 1)
enum peer_app_attr {
  DCB_ATTR_CEE_PEER_APP_UNSPEC,
  DCB_ATTR_CEE_PEER_APP_INFO,
  DCB_ATTR_CEE_PEER_APP,
  __DCB_ATTR_CEE_PEER_APP_MAX
};
#define DCB_ATTR_CEE_PEER_APP_MAX (__DCB_ATTR_CEE_PEER_APP_MAX - 1)
enum cee_attrs_app {
  DCB_ATTR_CEE_APP_UNSPEC,
  DCB_ATTR_CEE_APP,
  __DCB_ATTR_CEE_APP_MAX
};
#define DCB_ATTR_CEE_APP_MAX (__DCB_ATTR_CEE_APP_MAX - 1)
enum dcbnl_pfc_up_attrs {
  DCB_PFC_UP_ATTR_UNDEFINED,
  DCB_PFC_UP_ATTR_0,
  DCB_PFC_UP_ATTR_1,
  DCB_PFC_UP_ATTR_2,
  DCB_PFC_UP_ATTR_3,
  DCB_PFC_UP_ATTR_4,
  DCB_PFC_UP_ATTR_5,
  DCB_PFC_UP_ATTR_6,
  DCB_PFC_UP_ATTR_7,
  DCB_PFC_UP_ATTR_ALL,
  __DCB_PFC_UP_ATTR_ENUM_MAX,
  DCB_PFC_UP_ATTR_MAX = __DCB_PFC_UP_ATTR_ENUM_MAX - 1,
};
enum dcbnl_pg_attrs {
  DCB_PG_ATTR_UNDEFINED,
  DCB_PG_ATTR_TC_0,
  DCB_PG_ATTR_TC_1,
  DCB_PG_ATTR_TC_2,
  DCB_PG_ATTR_TC_3,
  DCB_PG_ATTR_TC_4,
  DCB_PG_ATTR_TC_5,
  DCB_PG_ATTR_TC_6,
  DCB_PG_ATTR_TC_7,
  DCB_PG_ATTR_TC_MAX,
  DCB_PG_ATTR_TC_ALL,
  DCB_PG_ATTR_BW_ID_0,
  DCB_PG_ATTR_BW_ID_1,
  DCB_PG_ATTR_BW_ID_2,
  DCB_PG_ATTR_BW_ID_3,
  DCB_PG_ATTR_BW_ID_4,
  DCB_PG_ATTR_BW_ID_5,
  DCB_PG_ATTR_BW_ID_6,
  DCB_PG_ATTR_BW_ID_7,
  DCB_PG_ATTR_BW_ID_MAX,
  DCB_PG_ATTR_BW_ID_ALL,
  __DCB_PG_ATTR_ENUM_MAX,
  DCB_PG_ATTR_MAX = __DCB_PG_ATTR_ENUM_MAX - 1,
};
enum dcbnl_tc_attrs {
  DCB_TC_ATTR_PARAM_UNDEFINED,
  DCB_TC_ATTR_PARAM_PGID,
  DCB_TC_ATTR_PARAM_UP_MAPPING,
  DCB_TC_ATTR_PARAM_STRICT_PRIO,
  DCB_TC_ATTR_PARAM_BW_PCT,
  DCB_TC_ATTR_PARAM_ALL,
  __DCB_TC_ATTR_PARAM_ENUM_MAX,
  DCB_TC_ATTR_PARAM_MAX = __DCB_TC_ATTR_PARAM_ENUM_MAX - 1,
};
enum dcbnl_cap_attrs {
  DCB_CAP_ATTR_UNDEFINED,
  DCB_CAP_ATTR_ALL,
  DCB_CAP_ATTR_PG,
  DCB_CAP_ATTR_PFC,
  DCB_CAP_ATTR_UP2TC,
  DCB_CAP_ATTR_PG_TCS,
  DCB_CAP_ATTR_PFC_TCS,
  DCB_CAP_ATTR_GSP,
  DCB_CAP_ATTR_BCN,
  DCB_CAP_ATTR_DCBX,
  __DCB_CAP_ATTR_ENUM_MAX,
  DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1,
};
#define DCB_CAP_DCBX_HOST 0x01
#define DCB_CAP_DCBX_LLD_MANAGED 0x02
#define DCB_CAP_DCBX_VER_CEE 0x04
#define DCB_CAP_DCBX_VER_IEEE 0x08
#define DCB_CAP_DCBX_STATIC 0x10
enum dcbnl_numtcs_attrs {
  DCB_NUMTCS_ATTR_UNDEFINED,
  DCB_NUMTCS_ATTR_ALL,
  DCB_NUMTCS_ATTR_PG,
  DCB_NUMTCS_ATTR_PFC,
  __DCB_NUMTCS_ATTR_ENUM_MAX,
  DCB_NUMTCS_ATTR_MAX = __DCB_NUMTCS_ATTR_ENUM_MAX - 1,
};
enum dcbnl_bcn_attrs {
  DCB_BCN_ATTR_UNDEFINED = 0,
  DCB_BCN_ATTR_RP_0,
  DCB_BCN_ATTR_RP_1,
  DCB_BCN_ATTR_RP_2,
  DCB_BCN_ATTR_RP_3,
  DCB_BCN_ATTR_RP_4,
  DCB_BCN_ATTR_RP_5,
  DCB_BCN_ATTR_RP_6,
  DCB_BCN_ATTR_RP_7,
  DCB_BCN_ATTR_RP_ALL,
  DCB_BCN_ATTR_BCNA_0,
  DCB_BCN_ATTR_BCNA_1,
  DCB_BCN_ATTR_ALPHA,
  DCB_BCN_ATTR_BETA,
  DCB_BCN_ATTR_GD,
  DCB_BCN_ATTR_GI,
  DCB_BCN_ATTR_TMAX,
  DCB_BCN_ATTR_TD,
  DCB_BCN_ATTR_RMIN,
  DCB_BCN_ATTR_W,
  DCB_BCN_ATTR_RD,
  DCB_BCN_ATTR_RU,
  DCB_BCN_ATTR_WRTT,
  DCB_BCN_ATTR_RI,
  DCB_BCN_ATTR_C,
  DCB_BCN_ATTR_ALL,
  __DCB_BCN_ATTR_ENUM_MAX,
  DCB_BCN_ATTR_MAX = __DCB_BCN_ATTR_ENUM_MAX - 1,
};
enum dcb_general_attr_values {
  DCB_ATTR_VALUE_UNDEFINED = 0xff
};
#define DCB_APP_IDTYPE_ETHTYPE 0x00
#define DCB_APP_IDTYPE_PORTNUM 0x01
enum dcbnl_app_attrs {
  DCB_APP_ATTR_UNDEFINED,
  DCB_APP_ATTR_IDTYPE,
  DCB_APP_ATTR_ID,
  DCB_APP_ATTR_PRIORITY,
  __DCB_APP_ATTR_ENUM_MAX,
  DCB_APP_ATTR_MAX = __DCB_APP_ATTR_ENUM_MAX - 1,
};
#define DCB_FEATCFG_ERROR 0x01
#define DCB_FEATCFG_ENABLE 0x02
#define DCB_FEATCFG_WILLING 0x04
#define DCB_FEATCFG_ADVERTISE 0x08
enum dcbnl_featcfg_attrs {
  DCB_FEATCFG_ATTR_UNDEFINED,
  DCB_FEATCFG_ATTR_ALL,
  DCB_FEATCFG_ATTR_PG,
  DCB_FEATCFG_ATTR_PFC,
  DCB_FEATCFG_ATTR_APP,
  __DCB_FEATCFG_ATTR_ENUM_MAX,
  DCB_FEATCFG_ATTR_MAX = __DCB_FEATCFG_ATTR_ENUM_MAX - 1,
};
#endif