aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2008-11-21 00:05:08 -0500
committerDavid S. Miller <davem@davemloft.net>2008-11-21 00:05:08 -0500
commit46132188bf72e22ef097f16ed5c969ee8cea1e8b (patch)
treee776ed8011b8314ff08abf4f3467c07d037fec4f /include
parent2f90b8657ec942d1880f720e0177ee71df7c8e3c (diff)
DCB: Add interface to query for the DCB capabilities of an device.
Adds to the netlink interface for Data Center Bridging (DCB), allowing the DCB capabilities supported by a device to be queried. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/dcbnl.h37
-rw-r--r--include/net/dcbnl.h1
2 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h
index 32d32c1ee410..13f0c638a695 100644
--- a/include/linux/dcbnl.h
+++ b/include/linux/dcbnl.h
@@ -43,6 +43,7 @@ struct dcbmsg {
43 * @DCB_CMD_SET_ALL: apply all changes to the underlying device 43 * @DCB_CMD_SET_ALL: apply all changes to the underlying device
44 * @DCB_CMD_GPERM_HWADDR: get the permanent MAC address of the underlying 44 * @DCB_CMD_GPERM_HWADDR: get the permanent MAC address of the underlying
45 * device. Only useful when using bonding. 45 * device. Only useful when using bonding.
46 * @DCB_CMD_GCAP: request the DCB capabilities of the device
46 */ 47 */
47enum dcbnl_commands { 48enum dcbnl_commands {
48 DCB_CMD_UNDEFINED, 49 DCB_CMD_UNDEFINED,
@@ -60,6 +61,7 @@ enum dcbnl_commands {
60 61
61 DCB_CMD_SET_ALL, 62 DCB_CMD_SET_ALL,
62 DCB_CMD_GPERM_HWADDR, 63 DCB_CMD_GPERM_HWADDR,
64 DCB_CMD_GCAP,
63 65
64 __DCB_CMD_ENUM_MAX, 66 __DCB_CMD_ENUM_MAX,
65 DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, 67 DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1,
@@ -78,6 +80,7 @@ enum dcbnl_commands {
78 * @DCB_ATTR_PG_CFG: priority group configuration (NLA_NESTED) 80 * @DCB_ATTR_PG_CFG: priority group configuration (NLA_NESTED)
79 * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8) 81 * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8)
80 * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED) 82 * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED)
83 * @DCB_ATTR_CAP: DCB capabilities of the device (NLA_NESTED)
81 */ 84 */
82enum dcbnl_attrs { 85enum dcbnl_attrs {
83 DCB_ATTR_UNDEFINED, 86 DCB_ATTR_UNDEFINED,
@@ -90,6 +93,7 @@ enum dcbnl_attrs {
90 DCB_ATTR_PG_CFG, 93 DCB_ATTR_PG_CFG,
91 DCB_ATTR_SET_ALL, 94 DCB_ATTR_SET_ALL,
92 DCB_ATTR_PERM_HWADDR, 95 DCB_ATTR_PERM_HWADDR,
96 DCB_ATTR_CAP,
93 97
94 __DCB_ATTR_ENUM_MAX, 98 __DCB_ATTR_ENUM_MAX,
95 DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, 99 DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1,
@@ -217,6 +221,39 @@ enum dcbnl_tc_attrs {
217}; 221};
218 222
219/** 223/**
224 * enum dcbnl_cap_attrs - DCB Capability attributes
225 *
226 * @DCB_CAP_ATTR_UNDEFINED: unspecified attribute to catch errors
227 * @DCB_CAP_ATTR_ALL: (NLA_FLAG) all capability parameters
228 * @DCB_CAP_ATTR_PG: (NLA_U8) device supports Priority Groups
229 * @DCB_CAP_ATTR_PFC: (NLA_U8) device supports Priority Flow Control
230 * @DCB_CAP_ATTR_UP2TC: (NLA_U8) device supports user priority to
231 * traffic class mapping
232 * @DCB_CAP_ATTR_PG_TCS: (NLA_U8) bitmap where each bit represents a
233 * number of traffic classes the device
234 * can be configured to use for Priority Groups
235 * @DCB_CAP_ATTR_PFC_TCS: (NLA_U8) bitmap where each bit represents a
236 * number of traffic classes the device can be
237 * configured to use for Priority Flow Control
238 * @DCB_CAP_ATTR_GSP: (NLA_U8) device supports group strict priority
239 * @DCB_CAP_ATTR_BCN: (NLA_U8) device supports Backwards Congestion
240 * Notification
241 */
242enum dcbnl_cap_attrs {
243 DCB_CAP_ATTR_UNDEFINED,
244 DCB_CAP_ATTR_ALL,
245 DCB_CAP_ATTR_PG,
246 DCB_CAP_ATTR_PFC,
247 DCB_CAP_ATTR_UP2TC,
248 DCB_CAP_ATTR_PG_TCS,
249 DCB_CAP_ATTR_PFC_TCS,
250 DCB_CAP_ATTR_GSP,
251 DCB_CAP_ATTR_BCN,
252
253 __DCB_CAP_ATTR_ENUM_MAX,
254 DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1,
255};
256/**
220 * enum dcb_general_attr_values - general DCB attribute values 257 * enum dcb_general_attr_values - general DCB attribute values
221 * 258 *
222 * @DCB_ATTR_UNDEFINED: value used to indicate an attribute is not supported 259 * @DCB_ATTR_UNDEFINED: value used to indicate an attribute is not supported
diff --git a/include/net/dcbnl.h b/include/net/dcbnl.h
index 0ef0c5a46d8b..183ed040cf4c 100644
--- a/include/net/dcbnl.h
+++ b/include/net/dcbnl.h
@@ -39,6 +39,7 @@ struct dcbnl_rtnl_ops {
39 void (*setpfccfg)(struct net_device *, int, u8); 39 void (*setpfccfg)(struct net_device *, int, u8);
40 void (*getpfccfg)(struct net_device *, int, u8 *); 40 void (*getpfccfg)(struct net_device *, int, u8 *);
41 u8 (*setall)(struct net_device *); 41 u8 (*setall)(struct net_device *);
42 u8 (*getcap)(struct net_device *, int, u8 *);
42}; 43};
43 44
44#endif /* __NET_DCBNL_H__ */ 45#endif /* __NET_DCBNL_H__ */