aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2008-11-21 00:08:19 -0500
committerDavid S. Miller <davem@davemloft.net>2008-11-21 00:08:19 -0500
commit33dbabc4a7f7bd72313c73a3c199f31f3900336f (patch)
treef56e24fec9369ca1d1ef12eb18e4000a09fb5c3e /include
parent46132188bf72e22ef097f16ed5c969ee8cea1e8b (diff)
DCB: Add interface to query # of TCs supported by device
Adds interface for Data Center Bridging (DCB) to query (and set if supported) the number of traffic classes currently supported by the device for the two (DCB) features: priority groups (PG) and priority flow control (PFC). 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.h27
-rw-r--r--include/net/dcbnl.h2
2 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h
index 13f0c638a695..1077fba1dadc 100644
--- a/include/linux/dcbnl.h
+++ b/include/linux/dcbnl.h
@@ -44,6 +44,8 @@ struct dcbmsg {
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 * @DCB_CMD_GCAP: request the DCB capabilities of the device
47 * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported
48 * @DCB_CMD_SNUMTCS: set the number of traffic classes
47 */ 49 */
48enum dcbnl_commands { 50enum dcbnl_commands {
49 DCB_CMD_UNDEFINED, 51 DCB_CMD_UNDEFINED,
@@ -62,6 +64,8 @@ enum dcbnl_commands {
62 DCB_CMD_SET_ALL, 64 DCB_CMD_SET_ALL,
63 DCB_CMD_GPERM_HWADDR, 65 DCB_CMD_GPERM_HWADDR,
64 DCB_CMD_GCAP, 66 DCB_CMD_GCAP,
67 DCB_CMD_GNUMTCS,
68 DCB_CMD_SNUMTCS,
65 69
66 __DCB_CMD_ENUM_MAX, 70 __DCB_CMD_ENUM_MAX,
67 DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, 71 DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1,
@@ -81,6 +85,7 @@ enum dcbnl_commands {
81 * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8) 85 * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8)
82 * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED) 86 * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED)
83 * @DCB_ATTR_CAP: DCB capabilities of the device (NLA_NESTED) 87 * @DCB_ATTR_CAP: DCB capabilities of the device (NLA_NESTED)
88 * @DCB_ATTR_NUMTCS: number of traffic classes supported (NLA_NESTED)
84 */ 89 */
85enum dcbnl_attrs { 90enum dcbnl_attrs {
86 DCB_ATTR_UNDEFINED, 91 DCB_ATTR_UNDEFINED,
@@ -94,6 +99,7 @@ enum dcbnl_attrs {
94 DCB_ATTR_SET_ALL, 99 DCB_ATTR_SET_ALL,
95 DCB_ATTR_PERM_HWADDR, 100 DCB_ATTR_PERM_HWADDR,
96 DCB_ATTR_CAP, 101 DCB_ATTR_CAP,
102 DCB_ATTR_NUMTCS,
97 103
98 __DCB_ATTR_ENUM_MAX, 104 __DCB_ATTR_ENUM_MAX,
99 DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, 105 DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1,
@@ -253,6 +259,27 @@ enum dcbnl_cap_attrs {
253 __DCB_CAP_ATTR_ENUM_MAX, 259 __DCB_CAP_ATTR_ENUM_MAX,
254 DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1, 260 DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1,
255}; 261};
262
263/**
264 * enum dcbnl_numtcs_attrs - number of traffic classes
265 *
266 * @DCB_NUMTCS_ATTR_UNDEFINED: unspecified attribute to catch errors
267 * @DCB_NUMTCS_ATTR_ALL: (NLA_FLAG) all traffic class attributes
268 * @DCB_NUMTCS_ATTR_PG: (NLA_U8) number of traffic classes used for
269 * priority groups
270 * @DCB_NUMTCS_ATTR_PFC: (NLA_U8) number of traffic classes which can
271 * support priority flow control
272 */
273enum dcbnl_numtcs_attrs {
274 DCB_NUMTCS_ATTR_UNDEFINED,
275 DCB_NUMTCS_ATTR_ALL,
276 DCB_NUMTCS_ATTR_PG,
277 DCB_NUMTCS_ATTR_PFC,
278
279 __DCB_NUMTCS_ATTR_ENUM_MAX,
280 DCB_NUMTCS_ATTR_MAX = __DCB_NUMTCS_ATTR_ENUM_MAX - 1,
281};
282
256/** 283/**
257 * enum dcb_general_attr_values - general DCB attribute values 284 * enum dcb_general_attr_values - general DCB attribute values
258 * 285 *
diff --git a/include/net/dcbnl.h b/include/net/dcbnl.h
index 183ed040cf4c..f0a65281ea73 100644
--- a/include/net/dcbnl.h
+++ b/include/net/dcbnl.h
@@ -40,6 +40,8 @@ struct dcbnl_rtnl_ops {
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 u8 (*getcap)(struct net_device *, int, u8 *);
43 u8 (*getnumtcs)(struct net_device *, int, u8 *);
44 u8 (*setnumtcs)(struct net_device *, int, u8);
43}; 45};
44 46
45#endif /* __NET_DCBNL_H__ */ 47#endif /* __NET_DCBNL_H__ */