Root/
1 | /* |
2 | * Copyright (c) 2008, Intel Corporation. |
3 | * |
4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms and conditions of the GNU General Public License, |
6 | * version 2, as published by the Free Software Foundation. |
7 | * |
8 | * This program is distributed in the hope it will be useful, but WITHOUT |
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
11 | * more details. |
12 | * |
13 | * You should have received a copy of the GNU General Public License along with |
14 | * this program; if not, write to the Free Software Foundation, Inc., 59 Temple |
15 | * Place - Suite 330, Boston, MA 02111-1307 USA. |
16 | * |
17 | * Author: Lucy Liu <lucy.liu@intel.com> |
18 | */ |
19 | |
20 | #ifndef __LINUX_DCBNL_H__ |
21 | #define __LINUX_DCBNL_H__ |
22 | |
23 | #include <linux/types.h> |
24 | |
25 | #define DCB_PROTO_VERSION 1 |
26 | |
27 | struct dcbmsg { |
28 | __u8 dcb_family; |
29 | __u8 cmd; |
30 | __u16 dcb_pad; |
31 | }; |
32 | |
33 | /** |
34 | * enum dcbnl_commands - supported DCB commands |
35 | * |
36 | * @DCB_CMD_UNDEFINED: unspecified command to catch errors |
37 | * @DCB_CMD_GSTATE: request the state of DCB in the device |
38 | * @DCB_CMD_SSTATE: set the state of DCB in the device |
39 | * @DCB_CMD_PGTX_GCFG: request the priority group configuration for Tx |
40 | * @DCB_CMD_PGTX_SCFG: set the priority group configuration for Tx |
41 | * @DCB_CMD_PGRX_GCFG: request the priority group configuration for Rx |
42 | * @DCB_CMD_PGRX_SCFG: set the priority group configuration for Rx |
43 | * @DCB_CMD_PFC_GCFG: request the priority flow control configuration |
44 | * @DCB_CMD_PFC_SCFG: set the priority flow control configuration |
45 | * @DCB_CMD_SET_ALL: apply all changes to the underlying device |
46 | * @DCB_CMD_GPERM_HWADDR: get the permanent MAC address of the underlying |
47 | * device. Only useful when using bonding. |
48 | * @DCB_CMD_GCAP: request the DCB capabilities of the device |
49 | * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported |
50 | * @DCB_CMD_SNUMTCS: set the number of traffic classes |
51 | * @DCB_CMD_GBCN: set backward congestion notification configuration |
52 | * @DCB_CMD_SBCN: get backward congestion notification configration. |
53 | * @DCB_CMD_GAPP: get application protocol configuration |
54 | * @DCB_CMD_SAPP: set application protocol configuration |
55 | */ |
56 | enum dcbnl_commands { |
57 | DCB_CMD_UNDEFINED, |
58 | |
59 | DCB_CMD_GSTATE, |
60 | DCB_CMD_SSTATE, |
61 | |
62 | DCB_CMD_PGTX_GCFG, |
63 | DCB_CMD_PGTX_SCFG, |
64 | DCB_CMD_PGRX_GCFG, |
65 | DCB_CMD_PGRX_SCFG, |
66 | |
67 | DCB_CMD_PFC_GCFG, |
68 | DCB_CMD_PFC_SCFG, |
69 | |
70 | DCB_CMD_SET_ALL, |
71 | |
72 | DCB_CMD_GPERM_HWADDR, |
73 | |
74 | DCB_CMD_GCAP, |
75 | |
76 | DCB_CMD_GNUMTCS, |
77 | DCB_CMD_SNUMTCS, |
78 | |
79 | DCB_CMD_PFC_GSTATE, |
80 | DCB_CMD_PFC_SSTATE, |
81 | |
82 | DCB_CMD_BCN_GCFG, |
83 | DCB_CMD_BCN_SCFG, |
84 | |
85 | DCB_CMD_GAPP, |
86 | DCB_CMD_SAPP, |
87 | |
88 | __DCB_CMD_ENUM_MAX, |
89 | DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, |
90 | }; |
91 | |
92 | /** |
93 | * enum dcbnl_attrs - DCB top-level netlink attributes |
94 | * |
95 | * @DCB_ATTR_UNDEFINED: unspecified attribute to catch errors |
96 | * @DCB_ATTR_IFNAME: interface name of the underlying device (NLA_STRING) |
97 | * @DCB_ATTR_STATE: enable state of DCB in the device (NLA_U8) |
98 | * @DCB_ATTR_PFC_STATE: enable state of PFC in the device (NLA_U8) |
99 | * @DCB_ATTR_PFC_CFG: priority flow control configuration (NLA_NESTED) |
100 | * @DCB_ATTR_NUM_TC: number of traffic classes supported in the device (NLA_U8) |
101 | * @DCB_ATTR_PG_CFG: priority group configuration (NLA_NESTED) |
102 | * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8) |
103 | * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED) |
104 | * @DCB_ATTR_CAP: DCB capabilities of the device (NLA_NESTED) |
105 | * @DCB_ATTR_NUMTCS: number of traffic classes supported (NLA_NESTED) |
106 | * @DCB_ATTR_BCN: backward congestion notification configuration (NLA_NESTED) |
107 | */ |
108 | enum dcbnl_attrs { |
109 | DCB_ATTR_UNDEFINED, |
110 | |
111 | DCB_ATTR_IFNAME, |
112 | DCB_ATTR_STATE, |
113 | DCB_ATTR_PFC_STATE, |
114 | DCB_ATTR_PFC_CFG, |
115 | DCB_ATTR_NUM_TC, |
116 | DCB_ATTR_PG_CFG, |
117 | DCB_ATTR_SET_ALL, |
118 | DCB_ATTR_PERM_HWADDR, |
119 | DCB_ATTR_CAP, |
120 | DCB_ATTR_NUMTCS, |
121 | DCB_ATTR_BCN, |
122 | DCB_ATTR_APP, |
123 | |
124 | __DCB_ATTR_ENUM_MAX, |
125 | DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, |
126 | }; |
127 | |
128 | /** |
129 | * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs |
130 | * |
131 | * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors |
132 | * @DCB_PFC_UP_ATTR_0: Priority Flow Control value for User Priority 0 (NLA_U8) |
133 | * @DCB_PFC_UP_ATTR_1: Priority Flow Control value for User Priority 1 (NLA_U8) |
134 | * @DCB_PFC_UP_ATTR_2: Priority Flow Control value for User Priority 2 (NLA_U8) |
135 | * @DCB_PFC_UP_ATTR_3: Priority Flow Control value for User Priority 3 (NLA_U8) |
136 | * @DCB_PFC_UP_ATTR_4: Priority Flow Control value for User Priority 4 (NLA_U8) |
137 | * @DCB_PFC_UP_ATTR_5: Priority Flow Control value for User Priority 5 (NLA_U8) |
138 | * @DCB_PFC_UP_ATTR_6: Priority Flow Control value for User Priority 6 (NLA_U8) |
139 | * @DCB_PFC_UP_ATTR_7: Priority Flow Control value for User Priority 7 (NLA_U8) |
140 | * @DCB_PFC_UP_ATTR_MAX: highest attribute number currently defined |
141 | * @DCB_PFC_UP_ATTR_ALL: apply to all priority flow control attrs (NLA_FLAG) |
142 | * |
143 | */ |
144 | enum dcbnl_pfc_up_attrs { |
145 | DCB_PFC_UP_ATTR_UNDEFINED, |
146 | |
147 | DCB_PFC_UP_ATTR_0, |
148 | DCB_PFC_UP_ATTR_1, |
149 | DCB_PFC_UP_ATTR_2, |
150 | DCB_PFC_UP_ATTR_3, |
151 | DCB_PFC_UP_ATTR_4, |
152 | DCB_PFC_UP_ATTR_5, |
153 | DCB_PFC_UP_ATTR_6, |
154 | DCB_PFC_UP_ATTR_7, |
155 | DCB_PFC_UP_ATTR_ALL, |
156 | |
157 | __DCB_PFC_UP_ATTR_ENUM_MAX, |
158 | DCB_PFC_UP_ATTR_MAX = __DCB_PFC_UP_ATTR_ENUM_MAX - 1, |
159 | }; |
160 | |
161 | /** |
162 | * enum dcbnl_pg_attrs - DCB Priority Group attributes |
163 | * |
164 | * @DCB_PG_ATTR_UNDEFINED: unspecified attribute to catch errors |
165 | * @DCB_PG_ATTR_TC_0: Priority Group Traffic Class 0 configuration (NLA_NESTED) |
166 | * @DCB_PG_ATTR_TC_1: Priority Group Traffic Class 1 configuration (NLA_NESTED) |
167 | * @DCB_PG_ATTR_TC_2: Priority Group Traffic Class 2 configuration (NLA_NESTED) |
168 | * @DCB_PG_ATTR_TC_3: Priority Group Traffic Class 3 configuration (NLA_NESTED) |
169 | * @DCB_PG_ATTR_TC_4: Priority Group Traffic Class 4 configuration (NLA_NESTED) |
170 | * @DCB_PG_ATTR_TC_5: Priority Group Traffic Class 5 configuration (NLA_NESTED) |
171 | * @DCB_PG_ATTR_TC_6: Priority Group Traffic Class 6 configuration (NLA_NESTED) |
172 | * @DCB_PG_ATTR_TC_7: Priority Group Traffic Class 7 configuration (NLA_NESTED) |
173 | * @DCB_PG_ATTR_TC_MAX: highest attribute number currently defined |
174 | * @DCB_PG_ATTR_TC_ALL: apply to all traffic classes (NLA_NESTED) |
175 | * @DCB_PG_ATTR_BW_ID_0: Percent of link bandwidth for Priority Group 0 (NLA_U8) |
176 | * @DCB_PG_ATTR_BW_ID_1: Percent of link bandwidth for Priority Group 1 (NLA_U8) |
177 | * @DCB_PG_ATTR_BW_ID_2: Percent of link bandwidth for Priority Group 2 (NLA_U8) |
178 | * @DCB_PG_ATTR_BW_ID_3: Percent of link bandwidth for Priority Group 3 (NLA_U8) |
179 | * @DCB_PG_ATTR_BW_ID_4: Percent of link bandwidth for Priority Group 4 (NLA_U8) |
180 | * @DCB_PG_ATTR_BW_ID_5: Percent of link bandwidth for Priority Group 5 (NLA_U8) |
181 | * @DCB_PG_ATTR_BW_ID_6: Percent of link bandwidth for Priority Group 6 (NLA_U8) |
182 | * @DCB_PG_ATTR_BW_ID_7: Percent of link bandwidth for Priority Group 7 (NLA_U8) |
183 | * @DCB_PG_ATTR_BW_ID_MAX: highest attribute number currently defined |
184 | * @DCB_PG_ATTR_BW_ID_ALL: apply to all priority groups (NLA_FLAG) |
185 | * |
186 | */ |
187 | enum dcbnl_pg_attrs { |
188 | DCB_PG_ATTR_UNDEFINED, |
189 | |
190 | DCB_PG_ATTR_TC_0, |
191 | DCB_PG_ATTR_TC_1, |
192 | DCB_PG_ATTR_TC_2, |
193 | DCB_PG_ATTR_TC_3, |
194 | DCB_PG_ATTR_TC_4, |
195 | DCB_PG_ATTR_TC_5, |
196 | DCB_PG_ATTR_TC_6, |
197 | DCB_PG_ATTR_TC_7, |
198 | DCB_PG_ATTR_TC_MAX, |
199 | DCB_PG_ATTR_TC_ALL, |
200 | |
201 | DCB_PG_ATTR_BW_ID_0, |
202 | DCB_PG_ATTR_BW_ID_1, |
203 | DCB_PG_ATTR_BW_ID_2, |
204 | DCB_PG_ATTR_BW_ID_3, |
205 | DCB_PG_ATTR_BW_ID_4, |
206 | DCB_PG_ATTR_BW_ID_5, |
207 | DCB_PG_ATTR_BW_ID_6, |
208 | DCB_PG_ATTR_BW_ID_7, |
209 | DCB_PG_ATTR_BW_ID_MAX, |
210 | DCB_PG_ATTR_BW_ID_ALL, |
211 | |
212 | __DCB_PG_ATTR_ENUM_MAX, |
213 | DCB_PG_ATTR_MAX = __DCB_PG_ATTR_ENUM_MAX - 1, |
214 | }; |
215 | |
216 | /** |
217 | * enum dcbnl_tc_attrs - DCB Traffic Class attributes |
218 | * |
219 | * @DCB_TC_ATTR_PARAM_UNDEFINED: unspecified attribute to catch errors |
220 | * @DCB_TC_ATTR_PARAM_PGID: (NLA_U8) Priority group the traffic class belongs to |
221 | * Valid values are: 0-7 |
222 | * @DCB_TC_ATTR_PARAM_UP_MAPPING: (NLA_U8) Traffic class to user priority map |
223 | * Some devices may not support changing the |
224 | * user priority map of a TC. |
225 | * @DCB_TC_ATTR_PARAM_STRICT_PRIO: (NLA_U8) Strict priority setting |
226 | * 0 - none |
227 | * 1 - group strict |
228 | * 2 - link strict |
229 | * @DCB_TC_ATTR_PARAM_BW_PCT: optional - (NLA_U8) If supported by the device and |
230 | * not configured to use link strict priority, |
231 | * this is the percentage of bandwidth of the |
232 | * priority group this traffic class belongs to |
233 | * @DCB_TC_ATTR_PARAM_ALL: (NLA_FLAG) all traffic class parameters |
234 | * |
235 | */ |
236 | enum dcbnl_tc_attrs { |
237 | DCB_TC_ATTR_PARAM_UNDEFINED, |
238 | |
239 | DCB_TC_ATTR_PARAM_PGID, |
240 | DCB_TC_ATTR_PARAM_UP_MAPPING, |
241 | DCB_TC_ATTR_PARAM_STRICT_PRIO, |
242 | DCB_TC_ATTR_PARAM_BW_PCT, |
243 | DCB_TC_ATTR_PARAM_ALL, |
244 | |
245 | __DCB_TC_ATTR_PARAM_ENUM_MAX, |
246 | DCB_TC_ATTR_PARAM_MAX = __DCB_TC_ATTR_PARAM_ENUM_MAX - 1, |
247 | }; |
248 | |
249 | /** |
250 | * enum dcbnl_cap_attrs - DCB Capability attributes |
251 | * |
252 | * @DCB_CAP_ATTR_UNDEFINED: unspecified attribute to catch errors |
253 | * @DCB_CAP_ATTR_ALL: (NLA_FLAG) all capability parameters |
254 | * @DCB_CAP_ATTR_PG: (NLA_U8) device supports Priority Groups |
255 | * @DCB_CAP_ATTR_PFC: (NLA_U8) device supports Priority Flow Control |
256 | * @DCB_CAP_ATTR_UP2TC: (NLA_U8) device supports user priority to |
257 | * traffic class mapping |
258 | * @DCB_CAP_ATTR_PG_TCS: (NLA_U8) bitmap where each bit represents a |
259 | * number of traffic classes the device |
260 | * can be configured to use for Priority Groups |
261 | * @DCB_CAP_ATTR_PFC_TCS: (NLA_U8) bitmap where each bit represents a |
262 | * number of traffic classes the device can be |
263 | * configured to use for Priority Flow Control |
264 | * @DCB_CAP_ATTR_GSP: (NLA_U8) device supports group strict priority |
265 | * @DCB_CAP_ATTR_BCN: (NLA_U8) device supports Backwards Congestion |
266 | * Notification |
267 | */ |
268 | enum dcbnl_cap_attrs { |
269 | DCB_CAP_ATTR_UNDEFINED, |
270 | DCB_CAP_ATTR_ALL, |
271 | DCB_CAP_ATTR_PG, |
272 | DCB_CAP_ATTR_PFC, |
273 | DCB_CAP_ATTR_UP2TC, |
274 | DCB_CAP_ATTR_PG_TCS, |
275 | DCB_CAP_ATTR_PFC_TCS, |
276 | DCB_CAP_ATTR_GSP, |
277 | DCB_CAP_ATTR_BCN, |
278 | |
279 | __DCB_CAP_ATTR_ENUM_MAX, |
280 | DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1, |
281 | }; |
282 | |
283 | /** |
284 | * enum dcbnl_numtcs_attrs - number of traffic classes |
285 | * |
286 | * @DCB_NUMTCS_ATTR_UNDEFINED: unspecified attribute to catch errors |
287 | * @DCB_NUMTCS_ATTR_ALL: (NLA_FLAG) all traffic class attributes |
288 | * @DCB_NUMTCS_ATTR_PG: (NLA_U8) number of traffic classes used for |
289 | * priority groups |
290 | * @DCB_NUMTCS_ATTR_PFC: (NLA_U8) number of traffic classes which can |
291 | * support priority flow control |
292 | */ |
293 | enum dcbnl_numtcs_attrs { |
294 | DCB_NUMTCS_ATTR_UNDEFINED, |
295 | DCB_NUMTCS_ATTR_ALL, |
296 | DCB_NUMTCS_ATTR_PG, |
297 | DCB_NUMTCS_ATTR_PFC, |
298 | |
299 | __DCB_NUMTCS_ATTR_ENUM_MAX, |
300 | DCB_NUMTCS_ATTR_MAX = __DCB_NUMTCS_ATTR_ENUM_MAX - 1, |
301 | }; |
302 | |
303 | enum dcbnl_bcn_attrs{ |
304 | DCB_BCN_ATTR_UNDEFINED = 0, |
305 | |
306 | DCB_BCN_ATTR_RP_0, |
307 | DCB_BCN_ATTR_RP_1, |
308 | DCB_BCN_ATTR_RP_2, |
309 | DCB_BCN_ATTR_RP_3, |
310 | DCB_BCN_ATTR_RP_4, |
311 | DCB_BCN_ATTR_RP_5, |
312 | DCB_BCN_ATTR_RP_6, |
313 | DCB_BCN_ATTR_RP_7, |
314 | DCB_BCN_ATTR_RP_ALL, |
315 | |
316 | DCB_BCN_ATTR_BCNA_0, |
317 | DCB_BCN_ATTR_BCNA_1, |
318 | DCB_BCN_ATTR_ALPHA, |
319 | DCB_BCN_ATTR_BETA, |
320 | DCB_BCN_ATTR_GD, |
321 | DCB_BCN_ATTR_GI, |
322 | DCB_BCN_ATTR_TMAX, |
323 | DCB_BCN_ATTR_TD, |
324 | DCB_BCN_ATTR_RMIN, |
325 | DCB_BCN_ATTR_W, |
326 | DCB_BCN_ATTR_RD, |
327 | DCB_BCN_ATTR_RU, |
328 | DCB_BCN_ATTR_WRTT, |
329 | DCB_BCN_ATTR_RI, |
330 | DCB_BCN_ATTR_C, |
331 | DCB_BCN_ATTR_ALL, |
332 | |
333 | __DCB_BCN_ATTR_ENUM_MAX, |
334 | DCB_BCN_ATTR_MAX = __DCB_BCN_ATTR_ENUM_MAX - 1, |
335 | }; |
336 | |
337 | /** |
338 | * enum dcb_general_attr_values - general DCB attribute values |
339 | * |
340 | * @DCB_ATTR_UNDEFINED: value used to indicate an attribute is not supported |
341 | * |
342 | */ |
343 | enum dcb_general_attr_values { |
344 | DCB_ATTR_VALUE_UNDEFINED = 0xff |
345 | }; |
346 | |
347 | #define DCB_APP_IDTYPE_ETHTYPE 0x00 |
348 | #define DCB_APP_IDTYPE_PORTNUM 0x01 |
349 | enum dcbnl_app_attrs { |
350 | DCB_APP_ATTR_UNDEFINED, |
351 | |
352 | DCB_APP_ATTR_IDTYPE, |
353 | DCB_APP_ATTR_ID, |
354 | DCB_APP_ATTR_PRIORITY, |
355 | |
356 | __DCB_APP_ATTR_ENUM_MAX, |
357 | DCB_APP_ATTR_MAX = __DCB_APP_ATTR_ENUM_MAX - 1, |
358 | }; |
359 | |
360 | #endif /* __LINUX_DCBNL_H__ */ |
361 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9