diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2008-11-21 00:08:19 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-21 00:08:19 -0500 |
commit | 33dbabc4a7f7bd72313c73a3c199f31f3900336f (patch) | |
tree | f56e24fec9369ca1d1ef12eb18e4000a09fb5c3e /include | |
parent | 46132188bf72e22ef097f16ed5c969ee8cea1e8b (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.h | 27 | ||||
-rw-r--r-- | include/net/dcbnl.h | 2 |
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 | */ |
48 | enum dcbnl_commands { | 50 | enum 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 | */ |
85 | enum dcbnl_attrs { | 90 | enum 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 | */ | ||
273 | enum 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__ */ |