diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 19:29:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 19:29:25 -0400 |
commit | 7a6362800cb7d1d618a697a650c7aaed3eb39320 (patch) | |
tree | 087f9bc6c13ef1fad4b392c5cf9325cd28fa8523 /include/linux/dcbnl.h | |
parent | 6445ced8670f37cfc2c5e24a9de9b413dbfc788d (diff) | |
parent | ceda86a108671294052cbf51660097b6534672f5 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1480 commits)
bonding: enable netpoll without checking link status
xfrm: Refcount destination entry on xfrm_lookup
net: introduce rx_handler results and logic around that
bonding: get rid of IFF_SLAVE_INACTIVE netdev->priv_flag
bonding: wrap slave state work
net: get rid of multiple bond-related netdevice->priv_flags
bonding: register slave pointer for rx_handler
be2net: Bump up the version number
be2net: Copyright notice change. Update to Emulex instead of ServerEngines
e1000e: fix kconfig for crc32 dependency
netfilter ebtables: fix xt_AUDIT to work with ebtables
xen network backend driver
bonding: Improve syslog message at device creation time
bonding: Call netif_carrier_off after register_netdevice
bonding: Incorrect TX queue offset
net_sched: fix ip_tos2prio
xfrm: fix __xfrm_route_forward()
be2net: Fix UDP packet detected status in RX compl
Phonet: fix aligned-mode pipe socket buffer header reserve
netxen: support for GbE port settings
...
Fix up conflicts in drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
with the staging updates.
Diffstat (limited to 'include/linux/dcbnl.h')
-rw-r--r-- | include/linux/dcbnl.h | 113 |
1 files changed, 111 insertions, 2 deletions
diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h index 66900e3c6eb1..c52280047e2c 100644 --- a/include/linux/dcbnl.h +++ b/include/linux/dcbnl.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2008, Intel Corporation. | 2 | * Copyright (c) 2008-2011, Intel Corporation. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 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, | 5 | * under the terms and conditions of the GNU General Public License, |
@@ -25,9 +25,14 @@ | |||
25 | /* IEEE 802.1Qaz std supported values */ | 25 | /* IEEE 802.1Qaz std supported values */ |
26 | #define IEEE_8021QAZ_MAX_TCS 8 | 26 | #define IEEE_8021QAZ_MAX_TCS 8 |
27 | 27 | ||
28 | #define IEEE_8021QAZ_TSA_STRICT 0 | ||
29 | #define IEEE_8021QAZ_TSA_CB_SHAPER 1 | ||
30 | #define IEEE_8021QAZ_TSA_ETS 2 | ||
31 | #define IEEE_8021QAZ_TSA_VENDOR 255 | ||
32 | |||
28 | /* This structure contains the IEEE 802.1Qaz ETS managed object | 33 | /* This structure contains the IEEE 802.1Qaz ETS managed object |
29 | * | 34 | * |
30 | * @willing: willing bit in ETS configuratin TLV | 35 | * @willing: willing bit in ETS configuration TLV |
31 | * @ets_cap: indicates supported capacity of ets feature | 36 | * @ets_cap: indicates supported capacity of ets feature |
32 | * @cbs: credit based shaper ets algorithm supported | 37 | * @cbs: credit based shaper ets algorithm supported |
33 | * @tc_tx_bw: tc tx bandwidth indexed by traffic class | 38 | * @tc_tx_bw: tc tx bandwidth indexed by traffic class |
@@ -82,6 +87,50 @@ struct ieee_pfc { | |||
82 | __u64 indications[IEEE_8021QAZ_MAX_TCS]; | 87 | __u64 indications[IEEE_8021QAZ_MAX_TCS]; |
83 | }; | 88 | }; |
84 | 89 | ||
90 | /* CEE DCBX std supported values */ | ||
91 | #define CEE_DCBX_MAX_PGS 8 | ||
92 | #define CEE_DCBX_MAX_PRIO 8 | ||
93 | |||
94 | /** | ||
95 | * struct cee_pg - CEE Priority-Group managed object | ||
96 | * | ||
97 | * @willing: willing bit in the PG tlv | ||
98 | * @error: error bit in the PG tlv | ||
99 | * @pg_en: enable bit of the PG feature | ||
100 | * @tcs_supported: number of traffic classes supported | ||
101 | * @pg_bw: bandwidth percentage for each priority group | ||
102 | * @prio_pg: priority to PG mapping indexed by priority | ||
103 | */ | ||
104 | struct cee_pg { | ||
105 | __u8 willing; | ||
106 | __u8 error; | ||
107 | __u8 pg_en; | ||
108 | __u8 tcs_supported; | ||
109 | __u8 pg_bw[CEE_DCBX_MAX_PGS]; | ||
110 | __u8 prio_pg[CEE_DCBX_MAX_PGS]; | ||
111 | }; | ||
112 | |||
113 | /** | ||
114 | * struct cee_pfc - CEE PFC managed object | ||
115 | * | ||
116 | * @willing: willing bit in the PFC tlv | ||
117 | * @error: error bit in the PFC tlv | ||
118 | * @pfc_en: bitmap indicating pfc enabled traffic classes | ||
119 | * @tcs_supported: number of traffic classes supported | ||
120 | */ | ||
121 | struct cee_pfc { | ||
122 | __u8 willing; | ||
123 | __u8 error; | ||
124 | __u8 pfc_en; | ||
125 | __u8 tcs_supported; | ||
126 | }; | ||
127 | |||
128 | /* IEEE 802.1Qaz std supported values */ | ||
129 | #define IEEE_8021QAZ_APP_SEL_ETHERTYPE 1 | ||
130 | #define IEEE_8021QAZ_APP_SEL_STREAM 2 | ||
131 | #define IEEE_8021QAZ_APP_SEL_DGRAM 3 | ||
132 | #define IEEE_8021QAZ_APP_SEL_ANY 4 | ||
133 | |||
85 | /* This structure contains the IEEE 802.1Qaz APP managed object. This | 134 | /* This structure contains the IEEE 802.1Qaz APP managed object. This |
86 | * object is also used for the CEE std as well. There is no difference | 135 | * object is also used for the CEE std as well. There is no difference |
87 | * between the objects. | 136 | * between the objects. |
@@ -105,6 +154,20 @@ struct dcb_app { | |||
105 | __u16 protocol; | 154 | __u16 protocol; |
106 | }; | 155 | }; |
107 | 156 | ||
157 | /** | ||
158 | * struct dcb_peer_app_info - APP feature information sent by the peer | ||
159 | * | ||
160 | * @willing: willing bit in the peer APP tlv | ||
161 | * @error: error bit in the peer APP tlv | ||
162 | * | ||
163 | * In addition to this information the full peer APP tlv also contains | ||
164 | * a table of 'app_count' APP objects defined above. | ||
165 | */ | ||
166 | struct dcb_peer_app_info { | ||
167 | __u8 willing; | ||
168 | __u8 error; | ||
169 | }; | ||
170 | |||
108 | struct dcbmsg { | 171 | struct dcbmsg { |
109 | __u8 dcb_family; | 172 | __u8 dcb_family; |
110 | __u8 cmd; | 173 | __u8 cmd; |
@@ -139,6 +202,7 @@ struct dcbmsg { | |||
139 | * @DCB_CMD_SDCBX: set DCBX engine configuration | 202 | * @DCB_CMD_SDCBX: set DCBX engine configuration |
140 | * @DCB_CMD_GFEATCFG: get DCBX features flags | 203 | * @DCB_CMD_GFEATCFG: get DCBX features flags |
141 | * @DCB_CMD_SFEATCFG: set DCBX features negotiation flags | 204 | * @DCB_CMD_SFEATCFG: set DCBX features negotiation flags |
205 | * @DCB_CMD_CEE_GET: get CEE aggregated configuration | ||
142 | */ | 206 | */ |
143 | enum dcbnl_commands { | 207 | enum dcbnl_commands { |
144 | DCB_CMD_UNDEFINED, | 208 | DCB_CMD_UNDEFINED, |
@@ -181,6 +245,8 @@ enum dcbnl_commands { | |||
181 | DCB_CMD_GFEATCFG, | 245 | DCB_CMD_GFEATCFG, |
182 | DCB_CMD_SFEATCFG, | 246 | DCB_CMD_SFEATCFG, |
183 | 247 | ||
248 | DCB_CMD_CEE_GET, | ||
249 | |||
184 | __DCB_CMD_ENUM_MAX, | 250 | __DCB_CMD_ENUM_MAX, |
185 | DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, | 251 | DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, |
186 | }; | 252 | }; |
@@ -203,6 +269,7 @@ enum dcbnl_commands { | |||
203 | * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) | 269 | * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) |
204 | * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8) | 270 | * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8) |
205 | * @DCB_ATTR_FEATCFG: DCBX features flags (NLA_NESTED) | 271 | * @DCB_ATTR_FEATCFG: DCBX features flags (NLA_NESTED) |
272 | * @DCB_ATTR_CEE: CEE std supported attributes (NLA_NESTED) | ||
206 | */ | 273 | */ |
207 | enum dcbnl_attrs { | 274 | enum dcbnl_attrs { |
208 | DCB_ATTR_UNDEFINED, | 275 | DCB_ATTR_UNDEFINED, |
@@ -226,15 +293,32 @@ enum dcbnl_attrs { | |||
226 | DCB_ATTR_DCBX, | 293 | DCB_ATTR_DCBX, |
227 | DCB_ATTR_FEATCFG, | 294 | DCB_ATTR_FEATCFG, |
228 | 295 | ||
296 | /* CEE nested attributes */ | ||
297 | DCB_ATTR_CEE, | ||
298 | |||
229 | __DCB_ATTR_ENUM_MAX, | 299 | __DCB_ATTR_ENUM_MAX, |
230 | DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, | 300 | DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, |
231 | }; | 301 | }; |
232 | 302 | ||
303 | /** | ||
304 | * enum ieee_attrs - IEEE 802.1Qaz get/set attributes | ||
305 | * | ||
306 | * @DCB_ATTR_IEEE_UNSPEC: unspecified | ||
307 | * @DCB_ATTR_IEEE_ETS: negotiated ETS configuration | ||
308 | * @DCB_ATTR_IEEE_PFC: negotiated PFC configuration | ||
309 | * @DCB_ATTR_IEEE_APP_TABLE: negotiated APP configuration | ||
310 | * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only | ||
311 | * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only | ||
312 | * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only | ||
313 | */ | ||
233 | enum ieee_attrs { | 314 | enum ieee_attrs { |
234 | DCB_ATTR_IEEE_UNSPEC, | 315 | DCB_ATTR_IEEE_UNSPEC, |
235 | DCB_ATTR_IEEE_ETS, | 316 | DCB_ATTR_IEEE_ETS, |
236 | DCB_ATTR_IEEE_PFC, | 317 | DCB_ATTR_IEEE_PFC, |
237 | DCB_ATTR_IEEE_APP_TABLE, | 318 | DCB_ATTR_IEEE_APP_TABLE, |
319 | DCB_ATTR_IEEE_PEER_ETS, | ||
320 | DCB_ATTR_IEEE_PEER_PFC, | ||
321 | DCB_ATTR_IEEE_PEER_APP, | ||
238 | __DCB_ATTR_IEEE_MAX | 322 | __DCB_ATTR_IEEE_MAX |
239 | }; | 323 | }; |
240 | #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) | 324 | #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) |
@@ -247,6 +331,31 @@ enum ieee_attrs_app { | |||
247 | #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) | 331 | #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) |
248 | 332 | ||
249 | /** | 333 | /** |
334 | * enum cee_attrs - CEE DCBX get attributes | ||
335 | * | ||
336 | * @DCB_ATTR_CEE_UNSPEC: unspecified | ||
337 | * @DCB_ATTR_CEE_PEER_PG: peer PG configuration - get only | ||
338 | * @DCB_ATTR_CEE_PEER_PFC: peer PFC configuration - get only | ||
339 | * @DCB_ATTR_CEE_PEER_APP: peer APP tlv - get only | ||
340 | */ | ||
341 | enum cee_attrs { | ||
342 | DCB_ATTR_CEE_UNSPEC, | ||
343 | DCB_ATTR_CEE_PEER_PG, | ||
344 | DCB_ATTR_CEE_PEER_PFC, | ||
345 | DCB_ATTR_CEE_PEER_APP_TABLE, | ||
346 | __DCB_ATTR_CEE_MAX | ||
347 | }; | ||
348 | #define DCB_ATTR_CEE_MAX (__DCB_ATTR_CEE_MAX - 1) | ||
349 | |||
350 | enum peer_app_attr { | ||
351 | DCB_ATTR_CEE_PEER_APP_UNSPEC, | ||
352 | DCB_ATTR_CEE_PEER_APP_INFO, | ||
353 | DCB_ATTR_CEE_PEER_APP, | ||
354 | __DCB_ATTR_CEE_PEER_APP_MAX | ||
355 | }; | ||
356 | #define DCB_ATTR_CEE_PEER_APP_MAX (__DCB_ATTR_CEE_PEER_APP_MAX - 1) | ||
357 | |||
358 | /** | ||
250 | * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs | 359 | * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs |
251 | * | 360 | * |
252 | * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors | 361 | * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors |