Blame view

include/net/dcbnl.h 4.2 KB
2f90b8657   Alexander Duyck   ixgbe: this patch...
1
2
3
4
5
6
7
8
9
10
11
12
13
  /*
   * Copyright (c) 2008, Intel Corporation.
   *
   * This program is free software; you can redistribute it and/or modify it
   * under the terms and conditions of the GNU General Public License,
   * version 2, as published by the Free Software Foundation.
   *
   * This program is distributed in the hope it will be useful, but WITHOUT
   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
   * more details.
   *
   * You should have received a copy of the GNU General Public License along with
a6227e26d   Jeff Kirsher   include/net/: Fix...
14
   * this program; if not, see <http://www.gnu.org/licenses/>.
2f90b8657   Alexander Duyck   ixgbe: this patch...
15
16
17
18
19
20
   *
   * Author: Lucy Liu <lucy.liu@intel.com>
   */
  
  #ifndef __NET_DCBNL_H__
  #define __NET_DCBNL_H__
3e29027af   John Fastabend   dcbnl: add suppor...
21
  #include <linux/dcbnl.h>
9ab933ab2   John Fastabend   dcbnl: add applic...
22
  struct dcb_app_type {
e290ed813   Mark Rustad   dcb: Use ifindex ...
23
  	int	ifindex;
9ab933ab2   John Fastabend   dcbnl: add applic...
24
25
  	struct dcb_app	  app;
  	struct list_head  list;
6bd0e1cb1   John Fastabend   dcb: add DCBX mod...
26
  	u8	dcbx;
9ab933ab2   John Fastabend   dcbnl: add applic...
27
  };
ab6baf980   John Fastabend   dcb: fix return t...
28
  int dcb_setapp(struct net_device *, struct dcb_app *);
9ab933ab2   John Fastabend   dcbnl: add applic...
29
  u8 dcb_getapp(struct net_device *, struct dcb_app *);
b6db2174c   John Fastabend   dcb: Add ieee_dcb...
30
  int dcb_ieee_setapp(struct net_device *, struct dcb_app *);
f9ae7e4b5   John Fastabend   dcb: Add ieee_dcb...
31
  int dcb_ieee_delapp(struct net_device *, struct dcb_app *);
a364c8cf8   John Fastabend   dcb: Add dcb_ieee...
32
  u8 dcb_ieee_getapp_mask(struct net_device *, struct dcb_app *);
9ab933ab2   John Fastabend   dcbnl: add applic...
33

5b7f76267   Shmulik Ravid   dcbnl: Add CEE no...
34
35
36
37
  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);
314b4778e   John Fastabend   net: dcbnl, add m...
38

2f90b8657   Alexander Duyck   ixgbe: this patch...
39
40
41
42
43
  /*
   * Ops struct for the netlink callbacks.  Used by DCB-enabled drivers through
   * the netdevice struct.
   */
  struct dcbnl_rtnl_ops {
3e29027af   John Fastabend   dcbnl: add suppor...
44
45
46
  	/* IEEE 802.1Qaz std */
  	int (*ieee_getets) (struct net_device *, struct ieee_ets *);
  	int (*ieee_setets) (struct net_device *, struct ieee_ets *);
08f10affe   Amir Vadai   net/dcb: Add an o...
47
48
  	int (*ieee_getmaxrate) (struct net_device *, struct ieee_maxrate *);
  	int (*ieee_setmaxrate) (struct net_device *, struct ieee_maxrate *);
c93682477   Shani Michaeli   net/dcb: Add IEEE...
49
50
51
  	int (*ieee_getqcn) (struct net_device *, struct ieee_qcn *);
  	int (*ieee_setqcn) (struct net_device *, struct ieee_qcn *);
  	int (*ieee_getqcnstats) (struct net_device *, struct ieee_qcn_stats *);
3e29027af   John Fastabend   dcbnl: add suppor...
52
53
54
55
  	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 *);
f9ae7e4b5   John Fastabend   dcb: Add ieee_dcb...
56
  	int (*ieee_delapp) (struct net_device *, struct dcb_app *);
eed84713b   Shmulik Ravid   dcbnl: add suppor...
57
58
  	int (*ieee_peer_getets) (struct net_device *, struct ieee_ets *);
  	int (*ieee_peer_getpfc) (struct net_device *, struct ieee_pfc *);
3e29027af   John Fastabend   dcbnl: add suppor...
59
60
  
  	/* CEE std */
2f90b8657   Alexander Duyck   ixgbe: this patch...
61
  	u8   (*getstate)(struct net_device *);
1486a61eb   Don Skidmore   net: fix DCB sets...
62
  	u8   (*setstate)(struct net_device *, u8);
2f90b8657   Alexander Duyck   ixgbe: this patch...
63
64
65
66
67
68
69
70
71
72
73
74
  	void (*getpermhwaddr)(struct net_device *, u8 *);
  	void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8);
  	void (*setpgbwgcfgtx)(struct net_device *, int, u8);
  	void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8);
  	void (*setpgbwgcfgrx)(struct net_device *, int, u8);
  	void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
  	void (*getpgbwgcfgtx)(struct net_device *, int, u8 *);
  	void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
  	void (*getpgbwgcfgrx)(struct net_device *, int, u8 *);
  	void (*setpfccfg)(struct net_device *, int, u8);
  	void (*getpfccfg)(struct net_device *, int, u8 *);
  	u8   (*setall)(struct net_device *);
46132188b   Alexander Duyck   DCB: Add interfac...
75
  	u8   (*getcap)(struct net_device *, int, u8 *);
2b88f2de3   John Fastabend   net: dcb: getnumt...
76
77
  	int  (*getnumtcs)(struct net_device *, int, u8 *);
  	int  (*setnumtcs)(struct net_device *, int, u8);
0eb3aa9ba   Alexander Duyck   DCB: Add interfac...
78
79
  	u8   (*getpfcstate)(struct net_device *);
  	void (*setpfcstate)(struct net_device *, u8);
859ee3c43   Alexander Duyck   DCB: Add support ...
80
81
82
83
  	void (*getbcncfg)(struct net_device *, int, u32 *);
  	void (*setbcncfg)(struct net_device *, int, u32);
  	void (*getbcnrp)(struct net_device *, int, u8 *);
  	void (*setbcnrp)(struct net_device *, int, u8);
c2659479f   Anish Bhatt   Update setapp/get...
84
85
  	int  (*setapp)(struct net_device *, u8, u16, u8);
  	int  (*getapp)(struct net_device *, u8, u16);
ea45fe4e1   Shmulik Ravid   dcbnl: adding DCB...
86
87
  	u8   (*getfeatcfg)(struct net_device *, int, u8 *);
  	u8   (*setfeatcfg)(struct net_device *, int, u8);
6241b6259   Shmulik Ravid   dcbnl: adding DCB...
88
89
90
91
  
  	/* DCBX configuration */
  	u8   (*getdcbx)(struct net_device *);
  	u8   (*setdcbx)(struct net_device *, u8);
eed84713b   Shmulik Ravid   dcbnl: add suppor...
92
93
94
95
  	/* peer apps */
  	int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *,
  			       u16 *);
  	int (*peer_getapptable)(struct net_device *, struct dcb_app *);
ea45fe4e1   Shmulik Ravid   dcbnl: adding DCB...
96

dc6ed1df5   Shmulik Ravid   dcbnl: add suppor...
97
98
99
  	/* CEE peer */
  	int (*cee_peer_getpg) (struct net_device *, struct cee_pg *);
  	int (*cee_peer_getpfc) (struct net_device *, struct cee_pfc *);
2f90b8657   Alexander Duyck   ixgbe: this patch...
100
101
102
  };
  
  #endif /* __NET_DCBNL_H__ */