diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2008-11-21 00:05:08 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-21 00:05:08 -0500 |
commit | 46132188bf72e22ef097f16ed5c969ee8cea1e8b (patch) | |
tree | e776ed8011b8314ff08abf4f3467c07d037fec4f /include | |
parent | 2f90b8657ec942d1880f720e0177ee71df7c8e3c (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.h | 37 | ||||
-rw-r--r-- | include/net/dcbnl.h | 1 |
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 | */ |
47 | enum dcbnl_commands { | 48 | enum 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 | */ |
82 | enum dcbnl_attrs { | 85 | enum 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 | */ | ||
242 | enum 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__ */ |