diff options
Diffstat (limited to 'include/linux/dcbnl.h')
-rw-r--r-- | include/linux/dcbnl.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h index 2542685f8b3e..a3680a16718f 100644 --- a/include/linux/dcbnl.h +++ b/include/linux/dcbnl.h | |||
@@ -87,6 +87,45 @@ struct ieee_pfc { | |||
87 | __u64 indications[IEEE_8021QAZ_MAX_TCS]; | 87 | __u64 indications[IEEE_8021QAZ_MAX_TCS]; |
88 | }; | 88 | }; |
89 | 89 | ||
90 | /* CEE DCBX std supported values */ | ||
91 | #define CEE_DCBX_MAX_PGS 8 | ||
92 | #define CEE_DCBX_MAX_PRIO 8 | ||
93 | |||
94 | /** | ||
95 | * struct cee_pg - CEE Prioity-Group managed object | ||
96 | * | ||
97 | * @willing: willing bit in the PG tlv | ||
98 | * @error: error bit in the PG tlv | ||
99 | * @pg_en: enable bit of the PG feature | ||
100 | * @tcs_supported: number of traffic classes supported | ||
101 | * @pg_bw: bandwidth percentage for each priority group | ||
102 | * @prio_pg: priority to PG mapping indexed by priority | ||
103 | */ | ||
104 | struct cee_pg { | ||
105 | __u8 willing; | ||
106 | __u8 error; | ||
107 | __u8 pg_en; | ||
108 | __u8 tcs_supported; | ||
109 | __u8 pg_bw[CEE_DCBX_MAX_PGS]; | ||
110 | __u8 prio_pg[CEE_DCBX_MAX_PGS]; | ||
111 | }; | ||
112 | |||
113 | /** | ||
114 | * struct cee_pfc - CEE PFC managed object | ||
115 | * | ||
116 | * @willing: willing bit in the PFC tlv | ||
117 | * @error: error bit in the PFC tlv | ||
118 | * @pfc_en: bitmap indicating pfc enabled traffic classes | ||
119 | * @tcs_supported: number of traffic classes supported | ||
120 | */ | ||
121 | struct cee_pfc { | ||
122 | __u8 willing; | ||
123 | __u8 error; | ||
124 | __u8 pfc_en; | ||
125 | __u8 tcs_supported; | ||
126 | }; | ||
127 | |||
128 | |||
90 | /* This structure contains the IEEE 802.1Qaz APP managed object. This | 129 | /* This structure contains the IEEE 802.1Qaz APP managed object. This |
91 | * object is also used for the CEE std as well. There is no difference | 130 | * object is also used for the CEE std as well. There is no difference |
92 | * between the objects. | 131 | * between the objects. |
@@ -158,6 +197,7 @@ struct dcbmsg { | |||
158 | * @DCB_CMD_SDCBX: set DCBX engine configuration | 197 | * @DCB_CMD_SDCBX: set DCBX engine configuration |
159 | * @DCB_CMD_GFEATCFG: get DCBX features flags | 198 | * @DCB_CMD_GFEATCFG: get DCBX features flags |
160 | * @DCB_CMD_SFEATCFG: set DCBX features negotiation flags | 199 | * @DCB_CMD_SFEATCFG: set DCBX features negotiation flags |
200 | * @DCB_CMD_CEE_GET: get CEE aggregated configuration | ||
161 | */ | 201 | */ |
162 | enum dcbnl_commands { | 202 | enum dcbnl_commands { |
163 | DCB_CMD_UNDEFINED, | 203 | DCB_CMD_UNDEFINED, |
@@ -200,6 +240,8 @@ enum dcbnl_commands { | |||
200 | DCB_CMD_GFEATCFG, | 240 | DCB_CMD_GFEATCFG, |
201 | DCB_CMD_SFEATCFG, | 241 | DCB_CMD_SFEATCFG, |
202 | 242 | ||
243 | DCB_CMD_CEE_GET, | ||
244 | |||
203 | __DCB_CMD_ENUM_MAX, | 245 | __DCB_CMD_ENUM_MAX, |
204 | DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, | 246 | DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, |
205 | }; | 247 | }; |
@@ -222,6 +264,7 @@ enum dcbnl_commands { | |||
222 | * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) | 264 | * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) |
223 | * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8) | 265 | * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8) |
224 | * @DCB_ATTR_FEATCFG: DCBX features flags (NLA_NESTED) | 266 | * @DCB_ATTR_FEATCFG: DCBX features flags (NLA_NESTED) |
267 | * @DCB_ATTR_CEE: CEE std supported attributes (NLA_NESTED) | ||
225 | */ | 268 | */ |
226 | enum dcbnl_attrs { | 269 | enum dcbnl_attrs { |
227 | DCB_ATTR_UNDEFINED, | 270 | DCB_ATTR_UNDEFINED, |
@@ -245,6 +288,9 @@ enum dcbnl_attrs { | |||
245 | DCB_ATTR_DCBX, | 288 | DCB_ATTR_DCBX, |
246 | DCB_ATTR_FEATCFG, | 289 | DCB_ATTR_FEATCFG, |
247 | 290 | ||
291 | /* CEE nested attributes */ | ||
292 | DCB_ATTR_CEE, | ||
293 | |||
248 | __DCB_ATTR_ENUM_MAX, | 294 | __DCB_ATTR_ENUM_MAX, |
249 | DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, | 295 | DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, |
250 | }; | 296 | }; |
@@ -280,6 +326,31 @@ enum ieee_attrs_app { | |||
280 | #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) | 326 | #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) |
281 | 327 | ||
282 | /** | 328 | /** |
329 | * enum cee_attrs - CEE DCBX get attributes | ||
330 | * | ||
331 | * @DCB_ATTR_CEE_UNSPEC: unspecified | ||
332 | * @DCB_ATTR_CEE_PEER_PG: peer PG configuration - get only | ||
333 | * @DCB_ATTR_CEE_PEER_PFC: peer PFC configuration - get only | ||
334 | * @DCB_ATTR_CEE_PEER_APP: peer APP tlv - get only | ||
335 | */ | ||
336 | enum cee_attrs { | ||
337 | DCB_ATTR_CEE_UNSPEC, | ||
338 | DCB_ATTR_CEE_PEER_PG, | ||
339 | DCB_ATTR_CEE_PEER_PFC, | ||
340 | DCB_ATTR_CEE_PEER_APP_TABLE, | ||
341 | __DCB_ATTR_CEE_MAX | ||
342 | }; | ||
343 | #define DCB_ATTR_CEE_MAX (__DCB_ATTR_CEE_MAX - 1) | ||
344 | |||
345 | enum peer_app_attr { | ||
346 | DCB_ATTR_CEE_PEER_APP_UNSPEC, | ||
347 | DCB_ATTR_CEE_PEER_APP_INFO, | ||
348 | DCB_ATTR_CEE_PEER_APP, | ||
349 | __DCB_ATTR_CEE_PEER_APP_MAX | ||
350 | }; | ||
351 | #define DCB_ATTR_CEE_PEER_APP_MAX (__DCB_ATTR_CEE_PEER_APP_MAX - 1) | ||
352 | |||
353 | /** | ||
283 | * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs | 354 | * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs |
284 | * | 355 | * |
285 | * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors | 356 | * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors |