Blame view

include/net/dcbnl.h 3.93 KB
2f90b8657   Alexander Duyck   ixgbe: this patch...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  /*
   * 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
   * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
   * Place - Suite 330, Boston, MA 02111-1307 USA.
   *
   * Author: Lucy Liu <lucy.liu@intel.com>
   */
  
  #ifndef __NET_DCBNL_H__
  #define __NET_DCBNL_H__
3e29027af   John Fastabend   dcbnl: add suppor...
22
  #include <linux/dcbnl.h>
9ab933ab2   John Fastabend   dcbnl: add applic...
23
  struct dcb_app_type {
e290ed813   Mark Rustad   dcb: Use ifindex ...
24
  	int	ifindex;
9ab933ab2   John Fastabend   dcbnl: add applic...
25
26
  	struct dcb_app	  app;
  	struct list_head  list;
6bd0e1cb1   John Fastabend   dcb: add DCBX mod...
27
  	u8	dcbx;
9ab933ab2   John Fastabend   dcbnl: add applic...
28
  };
ab6baf980   John Fastabend   dcb: fix return t...
29
  int dcb_setapp(struct net_device *, struct dcb_app *);
9ab933ab2   John Fastabend   dcbnl: add applic...
30
  u8 dcb_getapp(struct net_device *, struct dcb_app *);
b6db2174c   John Fastabend   dcb: Add ieee_dcb...
31
  int dcb_ieee_setapp(struct net_device *, struct dcb_app *);
f9ae7e4b5   John Fastabend   dcb: Add ieee_dcb...
32
  int dcb_ieee_delapp(struct net_device *, struct dcb_app *);
a364c8cf8   John Fastabend   dcb: Add dcb_ieee...
33
  u8 dcb_ieee_getapp_mask(struct net_device *, struct dcb_app *);
9ab933ab2   John Fastabend   dcbnl: add applic...
34

5b7f76267   Shmulik Ravid   dcbnl: Add CEE no...
35
36
37
38
  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...
39

2f90b8657   Alexander Duyck   ixgbe: this patch...
40
41
42
43
44
  /*
   * 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...
45
46
47
48
49
50
51
  	/* IEEE 802.1Qaz std */
  	int (*ieee_getets) (struct net_device *, struct ieee_ets *);
  	int (*ieee_setets) (struct net_device *, struct ieee_ets *);
  	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...
52
  	int (*ieee_delapp) (struct net_device *, struct dcb_app *);
eed84713b   Shmulik Ravid   dcbnl: add suppor...
53
54
  	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...
55
56
  
  	/* CEE std */
2f90b8657   Alexander Duyck   ixgbe: this patch...
57
  	u8   (*getstate)(struct net_device *);
1486a61eb   Don Skidmore   net: fix DCB sets...
58
  	u8   (*setstate)(struct net_device *, u8);
2f90b8657   Alexander Duyck   ixgbe: this patch...
59
60
61
62
63
64
65
66
67
68
69
70
  	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...
71
  	u8   (*getcap)(struct net_device *, int, u8 *);
33dbabc4a   Alexander Duyck   DCB: Add interfac...
72
73
  	u8   (*getnumtcs)(struct net_device *, int, u8 *);
  	u8   (*setnumtcs)(struct net_device *, int, u8);
0eb3aa9ba   Alexander Duyck   DCB: Add interfac...
74
75
  	u8   (*getpfcstate)(struct net_device *);
  	void (*setpfcstate)(struct net_device *, u8);
859ee3c43   Alexander Duyck   DCB: Add support ...
76
77
78
79
  	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);
7114323b1   Yi Zou   dcbnl: Add suppor...
80
81
  	u8   (*setapp)(struct net_device *, u8, u16, u8);
  	u8   (*getapp)(struct net_device *, u8, u16);
ea45fe4e1   Shmulik Ravid   dcbnl: adding DCB...
82
83
  	u8   (*getfeatcfg)(struct net_device *, int, u8 *);
  	u8   (*setfeatcfg)(struct net_device *, int, u8);
6241b6259   Shmulik Ravid   dcbnl: adding DCB...
84
85
86
87
  
  	/* DCBX configuration */
  	u8   (*getdcbx)(struct net_device *);
  	u8   (*setdcbx)(struct net_device *, u8);
eed84713b   Shmulik Ravid   dcbnl: add suppor...
88
89
90
91
  	/* 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...
92

dc6ed1df5   Shmulik Ravid   dcbnl: add suppor...
93
94
95
  	/* 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...
96
97
98
  };
  
  #endif /* __NET_DCBNL_H__ */