diff options
Diffstat (limited to 'include/net/dcbnl.h')
| -rw-r--r-- | include/net/dcbnl.h | 56 | 
1 files changed, 52 insertions, 4 deletions
diff --git a/include/net/dcbnl.h b/include/net/dcbnl.h index b36ac7e0914..a975edf21b2 100644 --- a/include/net/dcbnl.h +++ b/include/net/dcbnl.h @@ -11,8 +11,7 @@   * more details.   *   * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307 USA. + * this program; if not, see <http://www.gnu.org/licenses/>.   *   * Author: Lucy Liu <lucy.liu@intel.com>   */ @@ -20,11 +19,45 @@  #ifndef __NET_DCBNL_H__  #define __NET_DCBNL_H__ +#include <linux/dcbnl.h> + +struct dcb_app_type { +	int	ifindex; +	struct dcb_app	  app; +	struct list_head  list; +	u8	dcbx; +}; + +int dcb_setapp(struct net_device *, struct dcb_app *); +u8 dcb_getapp(struct net_device *, struct dcb_app *); +int dcb_ieee_setapp(struct net_device *, struct dcb_app *); +int dcb_ieee_delapp(struct net_device *, struct dcb_app *); +u8 dcb_ieee_getapp_mask(struct net_device *, struct dcb_app *); + +int dcbnl_ieee_notify(struct net_device *dev, int event, int cmd, +		      u32 seq, u32 pid); +int dcbnl_cee_notify(struct net_device *dev, int event, int cmd, +		     u32 seq, u32 pid); +  /*   * Ops struct for the netlink callbacks.  Used by DCB-enabled drivers through   * the netdevice struct.   */  struct dcbnl_rtnl_ops { +	/* IEEE 802.1Qaz std */ +	int (*ieee_getets) (struct net_device *, struct ieee_ets *); +	int (*ieee_setets) (struct net_device *, struct ieee_ets *); +	int (*ieee_getmaxrate) (struct net_device *, struct ieee_maxrate *); +	int (*ieee_setmaxrate) (struct net_device *, struct ieee_maxrate *); +	int (*ieee_getpfc) (struct net_device *, struct ieee_pfc *); +	int (*ieee_setpfc) (struct net_device *, struct ieee_pfc *); +	int (*ieee_getapp) (struct net_device *, struct dcb_app *); +	int (*ieee_setapp) (struct net_device *, struct dcb_app *); +	int (*ieee_delapp) (struct net_device *, struct dcb_app *); +	int (*ieee_peer_getets) (struct net_device *, struct ieee_ets *); +	int (*ieee_peer_getpfc) (struct net_device *, struct ieee_pfc *); + +	/* CEE std */  	u8   (*getstate)(struct net_device *);  	u8   (*setstate)(struct net_device *, u8);  	void (*getpermhwaddr)(struct net_device *, u8 *); @@ -40,8 +73,8 @@ struct dcbnl_rtnl_ops {  	void (*getpfccfg)(struct net_device *, int, u8 *);  	u8   (*setall)(struct net_device *);  	u8   (*getcap)(struct net_device *, int, u8 *); -	u8   (*getnumtcs)(struct net_device *, int, u8 *); -	u8   (*setnumtcs)(struct net_device *, int, u8); +	int  (*getnumtcs)(struct net_device *, int, u8 *); +	int  (*setnumtcs)(struct net_device *, int, u8);  	u8   (*getpfcstate)(struct net_device *);  	void (*setpfcstate)(struct net_device *, u8);  	void (*getbcncfg)(struct net_device *, int, u32 *); @@ -50,6 +83,21 @@ struct dcbnl_rtnl_ops {  	void (*setbcnrp)(struct net_device *, int, u8);  	u8   (*setapp)(struct net_device *, u8, u16, u8);  	u8   (*getapp)(struct net_device *, u8, u16); +	u8   (*getfeatcfg)(struct net_device *, int, u8 *); +	u8   (*setfeatcfg)(struct net_device *, int, u8); + +	/* DCBX configuration */ +	u8   (*getdcbx)(struct net_device *); +	u8   (*setdcbx)(struct net_device *, u8); + +	/* peer apps */ +	int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *, +			       u16 *); +	int (*peer_getapptable)(struct net_device *, struct dcb_app *); + +	/* CEE peer */ +	int (*cee_peer_getpg) (struct net_device *, struct cee_pg *); +	int (*cee_peer_getpfc) (struct net_device *, struct cee_pfc *);  };  #endif /* __NET_DCBNL_H__ */  | 
