Commit 0f6f2902 authored by Yi Zou's avatar Yi Zou Committed by David S. Miller

dcbnl: Add support for setapp/getapp commands to dcbnl

This patch adds dcbnl command definitions to support setapp/getapp
functionality from the IEEE 802.1Qaz Data Center Bridging Capability
Exchange protocol (DCBX) specification. Section 3.3 defines the
application protocol and its 802.1p user priority in DCBX, which is
implemented here as a pair of setapp/getapp commands in the kernel
dcbnl for setting and retrieving the user priority for an given
application protocol. The protocol is identified by the combination of
an id and an idtype. Currently, when idtype is 0, the corresponding
id gives the ether type of this protocol, e.g., for FCoE, it will be
0x8906; when idtype is 1, then the corresponding id gives the TCP or
UDP port number.

For more information regarding DCBX spec., please refer to the following:
http://www.ieee802.org/1/files/public/docs2008/
az-wadekar-dcbx-capability-exchange-discovery-protocol-1108-v1.01.pdf
Signed-off-by: default avatarYi Zou <yi.zou@intel.com>
Acked-by: default avatarPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8450ff8c
...@@ -50,6 +50,8 @@ struct dcbmsg { ...@@ -50,6 +50,8 @@ struct dcbmsg {
* @DCB_CMD_SNUMTCS: set the number of traffic classes * @DCB_CMD_SNUMTCS: set the number of traffic classes
* @DCB_CMD_GBCN: set backward congestion notification configuration * @DCB_CMD_GBCN: set backward congestion notification configuration
* @DCB_CMD_SBCN: get backward congestion notification configration. * @DCB_CMD_SBCN: get backward congestion notification configration.
* @DCB_CMD_GAPP: get application protocol configuration
* @DCB_CMD_SAPP: set application protocol configuration
*/ */
enum dcbnl_commands { enum dcbnl_commands {
DCB_CMD_UNDEFINED, DCB_CMD_UNDEFINED,
...@@ -80,6 +82,9 @@ enum dcbnl_commands { ...@@ -80,6 +82,9 @@ enum dcbnl_commands {
DCB_CMD_BCN_GCFG, DCB_CMD_BCN_GCFG,
DCB_CMD_BCN_SCFG, DCB_CMD_BCN_SCFG,
DCB_CMD_GAPP,
DCB_CMD_SAPP,
__DCB_CMD_ENUM_MAX, __DCB_CMD_ENUM_MAX,
DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1,
}; };
...@@ -114,6 +119,7 @@ enum dcbnl_attrs { ...@@ -114,6 +119,7 @@ enum dcbnl_attrs {
DCB_ATTR_CAP, DCB_ATTR_CAP,
DCB_ATTR_NUMTCS, DCB_ATTR_NUMTCS,
DCB_ATTR_BCN, DCB_ATTR_BCN,
DCB_ATTR_APP,
__DCB_ATTR_ENUM_MAX, __DCB_ATTR_ENUM_MAX,
DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1,
...@@ -338,5 +344,17 @@ enum dcb_general_attr_values { ...@@ -338,5 +344,17 @@ enum dcb_general_attr_values {
DCB_ATTR_VALUE_UNDEFINED = 0xff DCB_ATTR_VALUE_UNDEFINED = 0xff
}; };
#define DCB_APP_IDTYPE_ETHTYPE 0x00
#define DCB_APP_IDTYPE_PORTNUM 0x01
enum dcbnl_app_attrs {
DCB_APP_ATTR_UNDEFINED,
DCB_APP_ATTR_IDTYPE,
DCB_APP_ATTR_ID,
DCB_APP_ATTR_PRIORITY,
__DCB_APP_ATTR_ENUM_MAX,
DCB_APP_ATTR_MAX = __DCB_APP_ATTR_ENUM_MAX - 1,
};
#endif /* __LINUX_DCBNL_H__ */ #endif /* __LINUX_DCBNL_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment