diff options
author | Shmulik Ravid <shmulikr@broadcom.com> | 2010-12-30 01:26:48 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-12-31 13:50:54 -0500 |
commit | 6241b6259b16aa390ff4bf50f520685b3801200b (patch) | |
tree | e80fbdd538b1edd1220b93103b66271194a0653d /include/linux/dcbnl.h | |
parent | 96b99684e365f28d49bdb1221ca022b75cb91a98 (diff) |
dcbnl: adding DCBX engine capability
Adding an optional DCBX capability and a pair for get-set routines for
setting the device DCBX mode. The DCBX capability is a bit field of
supported attributes. The user is expected to set the DCBX mode with a
subset of the advertised attributes.
This patch is dependent on the following patches:
[net-next-2.6 PATCH 1/3] dcbnl: add support for ieee8021Qaz attributes
[net-next-2.6 PATCH 2/3] dcbnl: add appliction tlv handlers
[net-next-2.6 PATCH 3/3] net_dcb: add application notifiers
Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Acked-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/dcbnl.h')
-rw-r--r-- | include/linux/dcbnl.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h index 775bdb4465bf..16eea36d8934 100644 --- a/include/linux/dcbnl.h +++ b/include/linux/dcbnl.h | |||
@@ -135,6 +135,8 @@ struct dcbmsg { | |||
135 | * @DCB_CMD_SAPP: set application protocol configuration | 135 | * @DCB_CMD_SAPP: set application protocol configuration |
136 | * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration | 136 | * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration |
137 | * @DCB_CMD_IEEE_GET: get IEEE 802.1Qaz configuration | 137 | * @DCB_CMD_IEEE_GET: get IEEE 802.1Qaz configuration |
138 | * @DCB_CMD_GDCBX: get DCBX engine configuration | ||
139 | * @DCB_CMD_SDCBX: set DCBX engine configuration | ||
138 | */ | 140 | */ |
139 | enum dcbnl_commands { | 141 | enum dcbnl_commands { |
140 | DCB_CMD_UNDEFINED, | 142 | DCB_CMD_UNDEFINED, |
@@ -171,6 +173,9 @@ enum dcbnl_commands { | |||
171 | DCB_CMD_IEEE_SET, | 173 | DCB_CMD_IEEE_SET, |
172 | DCB_CMD_IEEE_GET, | 174 | DCB_CMD_IEEE_GET, |
173 | 175 | ||
176 | DCB_CMD_GDCBX, | ||
177 | DCB_CMD_SDCBX, | ||
178 | |||
174 | __DCB_CMD_ENUM_MAX, | 179 | __DCB_CMD_ENUM_MAX, |
175 | DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, | 180 | DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, |
176 | }; | 181 | }; |
@@ -191,6 +196,7 @@ enum dcbnl_commands { | |||
191 | * @DCB_ATTR_NUMTCS: number of traffic classes supported (NLA_NESTED) | 196 | * @DCB_ATTR_NUMTCS: number of traffic classes supported (NLA_NESTED) |
192 | * @DCB_ATTR_BCN: backward congestion notification configuration (NLA_NESTED) | 197 | * @DCB_ATTR_BCN: backward congestion notification configuration (NLA_NESTED) |
193 | * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) | 198 | * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) |
199 | * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8) | ||
194 | */ | 200 | */ |
195 | enum dcbnl_attrs { | 201 | enum dcbnl_attrs { |
196 | DCB_ATTR_UNDEFINED, | 202 | DCB_ATTR_UNDEFINED, |
@@ -211,6 +217,8 @@ enum dcbnl_attrs { | |||
211 | /* IEEE std attributes */ | 217 | /* IEEE std attributes */ |
212 | DCB_ATTR_IEEE, | 218 | DCB_ATTR_IEEE, |
213 | 219 | ||
220 | DCB_ATTR_DCBX, | ||
221 | |||
214 | __DCB_ATTR_ENUM_MAX, | 222 | __DCB_ATTR_ENUM_MAX, |
215 | DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, | 223 | DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, |
216 | }; | 224 | }; |
@@ -370,6 +378,8 @@ enum dcbnl_tc_attrs { | |||
370 | * @DCB_CAP_ATTR_GSP: (NLA_U8) device supports group strict priority | 378 | * @DCB_CAP_ATTR_GSP: (NLA_U8) device supports group strict priority |
371 | * @DCB_CAP_ATTR_BCN: (NLA_U8) device supports Backwards Congestion | 379 | * @DCB_CAP_ATTR_BCN: (NLA_U8) device supports Backwards Congestion |
372 | * Notification | 380 | * Notification |
381 | * @DCB_CAP_ATTR_DCBX: (NLA_U8) device supports DCBX engine | ||
382 | * | ||
373 | */ | 383 | */ |
374 | enum dcbnl_cap_attrs { | 384 | enum dcbnl_cap_attrs { |
375 | DCB_CAP_ATTR_UNDEFINED, | 385 | DCB_CAP_ATTR_UNDEFINED, |
@@ -381,12 +391,45 @@ enum dcbnl_cap_attrs { | |||
381 | DCB_CAP_ATTR_PFC_TCS, | 391 | DCB_CAP_ATTR_PFC_TCS, |
382 | DCB_CAP_ATTR_GSP, | 392 | DCB_CAP_ATTR_GSP, |
383 | DCB_CAP_ATTR_BCN, | 393 | DCB_CAP_ATTR_BCN, |
394 | DCB_CAP_ATTR_DCBX, | ||
384 | 395 | ||
385 | __DCB_CAP_ATTR_ENUM_MAX, | 396 | __DCB_CAP_ATTR_ENUM_MAX, |
386 | DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1, | 397 | DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1, |
387 | }; | 398 | }; |
388 | 399 | ||
389 | /** | 400 | /** |
401 | * DCBX capability flags | ||
402 | * | ||
403 | * @DCB_CAP_DCBX_HOST: DCBX negotiation is performed by the host LLDP agent. | ||
404 | * 'set' routines are used to configure the device with | ||
405 | * the negotiated parameters | ||
406 | * | ||
407 | * @DCB_CAP_DCBX_LLD_MANAGED: DCBX negotiation is not performed in the host but | ||
408 | * by another entity | ||
409 | * 'get' routines are used to retrieve the | ||
410 | * negotiated parameters | ||
411 | * 'set' routines can be used to set the initial | ||
412 | * negotiation configuration | ||
413 | * | ||
414 | * @DCB_CAP_DCBX_VER_CEE: for a non-host DCBX engine, indicates the engine | ||
415 | * supports the CEE protocol flavor | ||
416 | * | ||
417 | * @DCB_CAP_DCBX_VER_IEEE: for a non-host DCBX engine, indicates the engine | ||
418 | * supports the IEEE protocol flavor | ||
419 | * | ||
420 | * @DCB_CAP_DCBX_STATIC: for a non-host DCBX engine, indicates the engine | ||
421 | * supports static configuration (i.e no actual | ||
422 | * negotiation is performed negotiated parameters equal | ||
423 | * the initial configuration) | ||
424 | * | ||
425 | */ | ||
426 | #define DCB_CAP_DCBX_HOST 0x01 | ||
427 | #define DCB_CAP_DCBX_LLD_MANAGED 0x02 | ||
428 | #define DCB_CAP_DCBX_VER_CEE 0x04 | ||
429 | #define DCB_CAP_DCBX_VER_IEEE 0x08 | ||
430 | #define DCB_CAP_DCBX_STATIC 0x10 | ||
431 | |||
432 | /** | ||
390 | * enum dcbnl_numtcs_attrs - number of traffic classes | 433 | * enum dcbnl_numtcs_attrs - number of traffic classes |
391 | * | 434 | * |
392 | * @DCB_NUMTCS_ATTR_UNDEFINED: unspecified attribute to catch errors | 435 | * @DCB_NUMTCS_ATTR_UNDEFINED: unspecified attribute to catch errors |