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