Linux Audio

Check our new training course

Loading...
v4.6
  1/*
  2 * Copyright (c) 2008, Intel Corporation.
  3 *
  4 * This program is free software; you can redistribute it and/or modify it
  5 * under the terms and conditions of the GNU General Public License,
  6 * version 2, as published by the Free Software Foundation.
  7 *
  8 * This program is distributed in the hope it will be useful, but WITHOUT
  9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 10 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 11 * more details.
 12 *
 13 * You should have received a copy of the GNU General Public License along with
 14 * this program; if not, see <http://www.gnu.org/licenses/>.
 
 15 *
 16 * Author: Lucy Liu <lucy.liu@intel.com>
 17 */
 18
 19#ifndef __NET_DCBNL_H__
 20#define __NET_DCBNL_H__
 21
 22#include <linux/dcbnl.h>
 23
 24struct dcb_app_type {
 25	int	ifindex;
 26	struct dcb_app	  app;
 27	struct list_head  list;
 28	u8	dcbx;
 29};
 30
 31int dcb_setapp(struct net_device *, struct dcb_app *);
 32u8 dcb_getapp(struct net_device *, struct dcb_app *);
 33int dcb_ieee_setapp(struct net_device *, struct dcb_app *);
 34int dcb_ieee_delapp(struct net_device *, struct dcb_app *);
 35u8 dcb_ieee_getapp_mask(struct net_device *, struct dcb_app *);
 36
 37int dcbnl_ieee_notify(struct net_device *dev, int event, int cmd,
 38		      u32 seq, u32 pid);
 39int dcbnl_cee_notify(struct net_device *dev, int event, int cmd,
 40		     u32 seq, u32 pid);
 41
 42/*
 43 * Ops struct for the netlink callbacks.  Used by DCB-enabled drivers through
 44 * the netdevice struct.
 45 */
 46struct dcbnl_rtnl_ops {
 47	/* IEEE 802.1Qaz std */
 48	int (*ieee_getets) (struct net_device *, struct ieee_ets *);
 49	int (*ieee_setets) (struct net_device *, struct ieee_ets *);
 50	int (*ieee_getmaxrate) (struct net_device *, struct ieee_maxrate *);
 51	int (*ieee_setmaxrate) (struct net_device *, struct ieee_maxrate *);
 52	int (*ieee_getqcn) (struct net_device *, struct ieee_qcn *);
 53	int (*ieee_setqcn) (struct net_device *, struct ieee_qcn *);
 54	int (*ieee_getqcnstats) (struct net_device *, struct ieee_qcn_stats *);
 55	int (*ieee_getpfc) (struct net_device *, struct ieee_pfc *);
 56	int (*ieee_setpfc) (struct net_device *, struct ieee_pfc *);
 57	int (*ieee_getapp) (struct net_device *, struct dcb_app *);
 58	int (*ieee_setapp) (struct net_device *, struct dcb_app *);
 59	int (*ieee_delapp) (struct net_device *, struct dcb_app *);
 60	int (*ieee_peer_getets) (struct net_device *, struct ieee_ets *);
 61	int (*ieee_peer_getpfc) (struct net_device *, struct ieee_pfc *);
 62
 63	/* CEE std */
 64	u8   (*getstate)(struct net_device *);
 65	u8   (*setstate)(struct net_device *, u8);
 66	void (*getpermhwaddr)(struct net_device *, u8 *);
 67	void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8);
 68	void (*setpgbwgcfgtx)(struct net_device *, int, u8);
 69	void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8);
 70	void (*setpgbwgcfgrx)(struct net_device *, int, u8);
 71	void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
 72	void (*getpgbwgcfgtx)(struct net_device *, int, u8 *);
 73	void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
 74	void (*getpgbwgcfgrx)(struct net_device *, int, u8 *);
 75	void (*setpfccfg)(struct net_device *, int, u8);
 76	void (*getpfccfg)(struct net_device *, int, u8 *);
 77	u8   (*setall)(struct net_device *);
 78	u8   (*getcap)(struct net_device *, int, u8 *);
 79	int  (*getnumtcs)(struct net_device *, int, u8 *);
 80	int  (*setnumtcs)(struct net_device *, int, u8);
 81	u8   (*getpfcstate)(struct net_device *);
 82	void (*setpfcstate)(struct net_device *, u8);
 83	void (*getbcncfg)(struct net_device *, int, u32 *);
 84	void (*setbcncfg)(struct net_device *, int, u32);
 85	void (*getbcnrp)(struct net_device *, int, u8 *);
 86	void (*setbcnrp)(struct net_device *, int, u8);
 87	int  (*setapp)(struct net_device *, u8, u16, u8);
 88	int  (*getapp)(struct net_device *, u8, u16);
 89	u8   (*getfeatcfg)(struct net_device *, int, u8 *);
 90	u8   (*setfeatcfg)(struct net_device *, int, u8);
 91
 92	/* DCBX configuration */
 93	u8   (*getdcbx)(struct net_device *);
 94	u8   (*setdcbx)(struct net_device *, u8);
 95
 96	/* peer apps */
 97	int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *,
 98			       u16 *);
 99	int (*peer_getapptable)(struct net_device *, struct dcb_app *);
100
101	/* CEE peer */
102	int (*cee_peer_getpg) (struct net_device *, struct cee_pg *);
103	int (*cee_peer_getpfc) (struct net_device *, struct cee_pfc *);
104};
105
106#endif /* __NET_DCBNL_H__ */
v3.5.6
  1/*
  2 * Copyright (c) 2008, Intel Corporation.
  3 *
  4 * This program is free software; you can redistribute it and/or modify it
  5 * under the terms and conditions of the GNU General Public License,
  6 * version 2, as published by the Free Software Foundation.
  7 *
  8 * This program is distributed in the hope it will be useful, but WITHOUT
  9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 10 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 11 * more details.
 12 *
 13 * You should have received a copy of the GNU General Public License along with
 14 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 15 * Place - Suite 330, Boston, MA 02111-1307 USA.
 16 *
 17 * Author: Lucy Liu <lucy.liu@intel.com>
 18 */
 19
 20#ifndef __NET_DCBNL_H__
 21#define __NET_DCBNL_H__
 22
 23#include <linux/dcbnl.h>
 24
 25struct dcb_app_type {
 26	int	ifindex;
 27	struct dcb_app	  app;
 28	struct list_head  list;
 29	u8	dcbx;
 30};
 31
 32int dcb_setapp(struct net_device *, struct dcb_app *);
 33u8 dcb_getapp(struct net_device *, struct dcb_app *);
 34int dcb_ieee_setapp(struct net_device *, struct dcb_app *);
 35int dcb_ieee_delapp(struct net_device *, struct dcb_app *);
 36u8 dcb_ieee_getapp_mask(struct net_device *, struct dcb_app *);
 37
 38int dcbnl_ieee_notify(struct net_device *dev, int event, int cmd,
 39		      u32 seq, u32 pid);
 40int dcbnl_cee_notify(struct net_device *dev, int event, int cmd,
 41		     u32 seq, u32 pid);
 42
 43/*
 44 * Ops struct for the netlink callbacks.  Used by DCB-enabled drivers through
 45 * the netdevice struct.
 46 */
 47struct dcbnl_rtnl_ops {
 48	/* IEEE 802.1Qaz std */
 49	int (*ieee_getets) (struct net_device *, struct ieee_ets *);
 50	int (*ieee_setets) (struct net_device *, struct ieee_ets *);
 51	int (*ieee_getmaxrate) (struct net_device *, struct ieee_maxrate *);
 52	int (*ieee_setmaxrate) (struct net_device *, struct ieee_maxrate *);
 
 
 
 53	int (*ieee_getpfc) (struct net_device *, struct ieee_pfc *);
 54	int (*ieee_setpfc) (struct net_device *, struct ieee_pfc *);
 55	int (*ieee_getapp) (struct net_device *, struct dcb_app *);
 56	int (*ieee_setapp) (struct net_device *, struct dcb_app *);
 57	int (*ieee_delapp) (struct net_device *, struct dcb_app *);
 58	int (*ieee_peer_getets) (struct net_device *, struct ieee_ets *);
 59	int (*ieee_peer_getpfc) (struct net_device *, struct ieee_pfc *);
 60
 61	/* CEE std */
 62	u8   (*getstate)(struct net_device *);
 63	u8   (*setstate)(struct net_device *, u8);
 64	void (*getpermhwaddr)(struct net_device *, u8 *);
 65	void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8);
 66	void (*setpgbwgcfgtx)(struct net_device *, int, u8);
 67	void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8);
 68	void (*setpgbwgcfgrx)(struct net_device *, int, u8);
 69	void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
 70	void (*getpgbwgcfgtx)(struct net_device *, int, u8 *);
 71	void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
 72	void (*getpgbwgcfgrx)(struct net_device *, int, u8 *);
 73	void (*setpfccfg)(struct net_device *, int, u8);
 74	void (*getpfccfg)(struct net_device *, int, u8 *);
 75	u8   (*setall)(struct net_device *);
 76	u8   (*getcap)(struct net_device *, int, u8 *);
 77	int  (*getnumtcs)(struct net_device *, int, u8 *);
 78	int  (*setnumtcs)(struct net_device *, int, u8);
 79	u8   (*getpfcstate)(struct net_device *);
 80	void (*setpfcstate)(struct net_device *, u8);
 81	void (*getbcncfg)(struct net_device *, int, u32 *);
 82	void (*setbcncfg)(struct net_device *, int, u32);
 83	void (*getbcnrp)(struct net_device *, int, u8 *);
 84	void (*setbcnrp)(struct net_device *, int, u8);
 85	u8   (*setapp)(struct net_device *, u8, u16, u8);
 86	u8   (*getapp)(struct net_device *, u8, u16);
 87	u8   (*getfeatcfg)(struct net_device *, int, u8 *);
 88	u8   (*setfeatcfg)(struct net_device *, int, u8);
 89
 90	/* DCBX configuration */
 91	u8   (*getdcbx)(struct net_device *);
 92	u8   (*setdcbx)(struct net_device *, u8);
 93
 94	/* peer apps */
 95	int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *,
 96			       u16 *);
 97	int (*peer_getapptable)(struct net_device *, struct dcb_app *);
 98
 99	/* CEE peer */
100	int (*cee_peer_getpg) (struct net_device *, struct cee_pg *);
101	int (*cee_peer_getpfc) (struct net_device *, struct cee_pfc *);
102};
103
104#endif /* __NET_DCBNL_H__ */