1*4882a593Smuzhiyun // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2*4882a593Smuzhiyun /* QLogic qede NIC Driver
3*4882a593Smuzhiyun * Copyright (c) 2015 QLogic Corporation
4*4882a593Smuzhiyun * Copyright (c) 2019-2020 Marvell International Ltd.
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun #include <linux/types.h>
8*4882a593Smuzhiyun #include <linux/netdevice.h>
9*4882a593Smuzhiyun #include <linux/rtnetlink.h>
10*4882a593Smuzhiyun #include <net/dcbnl.h>
11*4882a593Smuzhiyun #include "qede.h"
12*4882a593Smuzhiyun
qede_dcbnl_getstate(struct net_device * netdev)13*4882a593Smuzhiyun static u8 qede_dcbnl_getstate(struct net_device *netdev)
14*4882a593Smuzhiyun {
15*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun return edev->ops->dcb->getstate(edev->cdev);
18*4882a593Smuzhiyun }
19*4882a593Smuzhiyun
qede_dcbnl_setstate(struct net_device * netdev,u8 state)20*4882a593Smuzhiyun static u8 qede_dcbnl_setstate(struct net_device *netdev, u8 state)
21*4882a593Smuzhiyun {
22*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun return edev->ops->dcb->setstate(edev->cdev, state);
25*4882a593Smuzhiyun }
26*4882a593Smuzhiyun
qede_dcbnl_getpermhwaddr(struct net_device * netdev,u8 * perm_addr)27*4882a593Smuzhiyun static void qede_dcbnl_getpermhwaddr(struct net_device *netdev,
28*4882a593Smuzhiyun u8 *perm_addr)
29*4882a593Smuzhiyun {
30*4882a593Smuzhiyun memcpy(perm_addr, netdev->dev_addr, netdev->addr_len);
31*4882a593Smuzhiyun }
32*4882a593Smuzhiyun
qede_dcbnl_getpgtccfgtx(struct net_device * netdev,int prio,u8 * prio_type,u8 * pgid,u8 * bw_pct,u8 * up_map)33*4882a593Smuzhiyun static void qede_dcbnl_getpgtccfgtx(struct net_device *netdev, int prio,
34*4882a593Smuzhiyun u8 *prio_type, u8 *pgid, u8 *bw_pct,
35*4882a593Smuzhiyun u8 *up_map)
36*4882a593Smuzhiyun {
37*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun edev->ops->dcb->getpgtccfgtx(edev->cdev, prio, prio_type,
40*4882a593Smuzhiyun pgid, bw_pct, up_map);
41*4882a593Smuzhiyun }
42*4882a593Smuzhiyun
qede_dcbnl_getpgbwgcfgtx(struct net_device * netdev,int pgid,u8 * bw_pct)43*4882a593Smuzhiyun static void qede_dcbnl_getpgbwgcfgtx(struct net_device *netdev,
44*4882a593Smuzhiyun int pgid, u8 *bw_pct)
45*4882a593Smuzhiyun {
46*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun edev->ops->dcb->getpgbwgcfgtx(edev->cdev, pgid, bw_pct);
49*4882a593Smuzhiyun }
50*4882a593Smuzhiyun
qede_dcbnl_getpgtccfgrx(struct net_device * netdev,int prio,u8 * prio_type,u8 * pgid,u8 * bw_pct,u8 * up_map)51*4882a593Smuzhiyun static void qede_dcbnl_getpgtccfgrx(struct net_device *netdev, int prio,
52*4882a593Smuzhiyun u8 *prio_type, u8 *pgid, u8 *bw_pct,
53*4882a593Smuzhiyun u8 *up_map)
54*4882a593Smuzhiyun {
55*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun edev->ops->dcb->getpgtccfgrx(edev->cdev, prio, prio_type, pgid, bw_pct,
58*4882a593Smuzhiyun up_map);
59*4882a593Smuzhiyun }
60*4882a593Smuzhiyun
qede_dcbnl_getpgbwgcfgrx(struct net_device * netdev,int pgid,u8 * bw_pct)61*4882a593Smuzhiyun static void qede_dcbnl_getpgbwgcfgrx(struct net_device *netdev,
62*4882a593Smuzhiyun int pgid, u8 *bw_pct)
63*4882a593Smuzhiyun {
64*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun edev->ops->dcb->getpgbwgcfgrx(edev->cdev, pgid, bw_pct);
67*4882a593Smuzhiyun }
68*4882a593Smuzhiyun
qede_dcbnl_getpfccfg(struct net_device * netdev,int prio,u8 * setting)69*4882a593Smuzhiyun static void qede_dcbnl_getpfccfg(struct net_device *netdev, int prio,
70*4882a593Smuzhiyun u8 *setting)
71*4882a593Smuzhiyun {
72*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun edev->ops->dcb->getpfccfg(edev->cdev, prio, setting);
75*4882a593Smuzhiyun }
76*4882a593Smuzhiyun
qede_dcbnl_setpfccfg(struct net_device * netdev,int prio,u8 setting)77*4882a593Smuzhiyun static void qede_dcbnl_setpfccfg(struct net_device *netdev, int prio,
78*4882a593Smuzhiyun u8 setting)
79*4882a593Smuzhiyun {
80*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun edev->ops->dcb->setpfccfg(edev->cdev, prio, setting);
83*4882a593Smuzhiyun }
84*4882a593Smuzhiyun
qede_dcbnl_getcap(struct net_device * netdev,int capid,u8 * cap)85*4882a593Smuzhiyun static u8 qede_dcbnl_getcap(struct net_device *netdev, int capid, u8 *cap)
86*4882a593Smuzhiyun {
87*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun return edev->ops->dcb->getcap(edev->cdev, capid, cap);
90*4882a593Smuzhiyun }
91*4882a593Smuzhiyun
qede_dcbnl_getnumtcs(struct net_device * netdev,int tcid,u8 * num)92*4882a593Smuzhiyun static int qede_dcbnl_getnumtcs(struct net_device *netdev, int tcid, u8 *num)
93*4882a593Smuzhiyun {
94*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun return edev->ops->dcb->getnumtcs(edev->cdev, tcid, num);
97*4882a593Smuzhiyun }
98*4882a593Smuzhiyun
qede_dcbnl_getpfcstate(struct net_device * netdev)99*4882a593Smuzhiyun static u8 qede_dcbnl_getpfcstate(struct net_device *netdev)
100*4882a593Smuzhiyun {
101*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun return edev->ops->dcb->getpfcstate(edev->cdev);
104*4882a593Smuzhiyun }
105*4882a593Smuzhiyun
qede_dcbnl_getapp(struct net_device * netdev,u8 idtype,u16 id)106*4882a593Smuzhiyun static int qede_dcbnl_getapp(struct net_device *netdev, u8 idtype, u16 id)
107*4882a593Smuzhiyun {
108*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun return edev->ops->dcb->getapp(edev->cdev, idtype, id);
111*4882a593Smuzhiyun }
112*4882a593Smuzhiyun
qede_dcbnl_getdcbx(struct net_device * netdev)113*4882a593Smuzhiyun static u8 qede_dcbnl_getdcbx(struct net_device *netdev)
114*4882a593Smuzhiyun {
115*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun return edev->ops->dcb->getdcbx(edev->cdev);
118*4882a593Smuzhiyun }
119*4882a593Smuzhiyun
qede_dcbnl_setpgtccfgtx(struct net_device * netdev,int prio,u8 pri_type,u8 pgid,u8 bw_pct,u8 up_map)120*4882a593Smuzhiyun static void qede_dcbnl_setpgtccfgtx(struct net_device *netdev, int prio,
121*4882a593Smuzhiyun u8 pri_type, u8 pgid, u8 bw_pct, u8 up_map)
122*4882a593Smuzhiyun {
123*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun return edev->ops->dcb->setpgtccfgtx(edev->cdev, prio, pri_type, pgid,
126*4882a593Smuzhiyun bw_pct, up_map);
127*4882a593Smuzhiyun }
128*4882a593Smuzhiyun
qede_dcbnl_setpgtccfgrx(struct net_device * netdev,int prio,u8 pri_type,u8 pgid,u8 bw_pct,u8 up_map)129*4882a593Smuzhiyun static void qede_dcbnl_setpgtccfgrx(struct net_device *netdev, int prio,
130*4882a593Smuzhiyun u8 pri_type, u8 pgid, u8 bw_pct, u8 up_map)
131*4882a593Smuzhiyun {
132*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun return edev->ops->dcb->setpgtccfgrx(edev->cdev, prio, pri_type, pgid,
135*4882a593Smuzhiyun bw_pct, up_map);
136*4882a593Smuzhiyun }
137*4882a593Smuzhiyun
qede_dcbnl_setpgbwgcfgtx(struct net_device * netdev,int pgid,u8 bw_pct)138*4882a593Smuzhiyun static void qede_dcbnl_setpgbwgcfgtx(struct net_device *netdev, int pgid,
139*4882a593Smuzhiyun u8 bw_pct)
140*4882a593Smuzhiyun {
141*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun return edev->ops->dcb->setpgbwgcfgtx(edev->cdev, pgid, bw_pct);
144*4882a593Smuzhiyun }
145*4882a593Smuzhiyun
qede_dcbnl_setpgbwgcfgrx(struct net_device * netdev,int pgid,u8 bw_pct)146*4882a593Smuzhiyun static void qede_dcbnl_setpgbwgcfgrx(struct net_device *netdev, int pgid,
147*4882a593Smuzhiyun u8 bw_pct)
148*4882a593Smuzhiyun {
149*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun return edev->ops->dcb->setpgbwgcfgrx(edev->cdev, pgid, bw_pct);
152*4882a593Smuzhiyun }
153*4882a593Smuzhiyun
qede_dcbnl_setall(struct net_device * netdev)154*4882a593Smuzhiyun static u8 qede_dcbnl_setall(struct net_device *netdev)
155*4882a593Smuzhiyun {
156*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun return edev->ops->dcb->setall(edev->cdev);
159*4882a593Smuzhiyun }
160*4882a593Smuzhiyun
qede_dcbnl_setnumtcs(struct net_device * netdev,int tcid,u8 num)161*4882a593Smuzhiyun static int qede_dcbnl_setnumtcs(struct net_device *netdev, int tcid, u8 num)
162*4882a593Smuzhiyun {
163*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun return edev->ops->dcb->setnumtcs(edev->cdev, tcid, num);
166*4882a593Smuzhiyun }
167*4882a593Smuzhiyun
qede_dcbnl_setpfcstate(struct net_device * netdev,u8 state)168*4882a593Smuzhiyun static void qede_dcbnl_setpfcstate(struct net_device *netdev, u8 state)
169*4882a593Smuzhiyun {
170*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun return edev->ops->dcb->setpfcstate(edev->cdev, state);
173*4882a593Smuzhiyun }
174*4882a593Smuzhiyun
qede_dcbnl_setapp(struct net_device * netdev,u8 idtype,u16 idval,u8 up)175*4882a593Smuzhiyun static int qede_dcbnl_setapp(struct net_device *netdev, u8 idtype, u16 idval,
176*4882a593Smuzhiyun u8 up)
177*4882a593Smuzhiyun {
178*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun return edev->ops->dcb->setapp(edev->cdev, idtype, idval, up);
181*4882a593Smuzhiyun }
182*4882a593Smuzhiyun
qede_dcbnl_setdcbx(struct net_device * netdev,u8 state)183*4882a593Smuzhiyun static u8 qede_dcbnl_setdcbx(struct net_device *netdev, u8 state)
184*4882a593Smuzhiyun {
185*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun return edev->ops->dcb->setdcbx(edev->cdev, state);
188*4882a593Smuzhiyun }
189*4882a593Smuzhiyun
qede_dcbnl_getfeatcfg(struct net_device * netdev,int featid,u8 * flags)190*4882a593Smuzhiyun static u8 qede_dcbnl_getfeatcfg(struct net_device *netdev, int featid,
191*4882a593Smuzhiyun u8 *flags)
192*4882a593Smuzhiyun {
193*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun return edev->ops->dcb->getfeatcfg(edev->cdev, featid, flags);
196*4882a593Smuzhiyun }
197*4882a593Smuzhiyun
qede_dcbnl_setfeatcfg(struct net_device * netdev,int featid,u8 flags)198*4882a593Smuzhiyun static u8 qede_dcbnl_setfeatcfg(struct net_device *netdev, int featid, u8 flags)
199*4882a593Smuzhiyun {
200*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun return edev->ops->dcb->setfeatcfg(edev->cdev, featid, flags);
203*4882a593Smuzhiyun }
204*4882a593Smuzhiyun
qede_dcbnl_peer_getappinfo(struct net_device * netdev,struct dcb_peer_app_info * info,u16 * count)205*4882a593Smuzhiyun static int qede_dcbnl_peer_getappinfo(struct net_device *netdev,
206*4882a593Smuzhiyun struct dcb_peer_app_info *info,
207*4882a593Smuzhiyun u16 *count)
208*4882a593Smuzhiyun {
209*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun return edev->ops->dcb->peer_getappinfo(edev->cdev, info, count);
212*4882a593Smuzhiyun }
213*4882a593Smuzhiyun
qede_dcbnl_peer_getapptable(struct net_device * netdev,struct dcb_app * app)214*4882a593Smuzhiyun static int qede_dcbnl_peer_getapptable(struct net_device *netdev,
215*4882a593Smuzhiyun struct dcb_app *app)
216*4882a593Smuzhiyun {
217*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun return edev->ops->dcb->peer_getapptable(edev->cdev, app);
220*4882a593Smuzhiyun }
221*4882a593Smuzhiyun
qede_dcbnl_cee_peer_getpfc(struct net_device * netdev,struct cee_pfc * pfc)222*4882a593Smuzhiyun static int qede_dcbnl_cee_peer_getpfc(struct net_device *netdev,
223*4882a593Smuzhiyun struct cee_pfc *pfc)
224*4882a593Smuzhiyun {
225*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun return edev->ops->dcb->cee_peer_getpfc(edev->cdev, pfc);
228*4882a593Smuzhiyun }
229*4882a593Smuzhiyun
qede_dcbnl_cee_peer_getpg(struct net_device * netdev,struct cee_pg * pg)230*4882a593Smuzhiyun static int qede_dcbnl_cee_peer_getpg(struct net_device *netdev,
231*4882a593Smuzhiyun struct cee_pg *pg)
232*4882a593Smuzhiyun {
233*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun return edev->ops->dcb->cee_peer_getpg(edev->cdev, pg);
236*4882a593Smuzhiyun }
237*4882a593Smuzhiyun
qede_dcbnl_ieee_getpfc(struct net_device * netdev,struct ieee_pfc * pfc)238*4882a593Smuzhiyun static int qede_dcbnl_ieee_getpfc(struct net_device *netdev,
239*4882a593Smuzhiyun struct ieee_pfc *pfc)
240*4882a593Smuzhiyun {
241*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun return edev->ops->dcb->ieee_getpfc(edev->cdev, pfc);
244*4882a593Smuzhiyun }
245*4882a593Smuzhiyun
qede_dcbnl_ieee_setpfc(struct net_device * netdev,struct ieee_pfc * pfc)246*4882a593Smuzhiyun static int qede_dcbnl_ieee_setpfc(struct net_device *netdev,
247*4882a593Smuzhiyun struct ieee_pfc *pfc)
248*4882a593Smuzhiyun {
249*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun return edev->ops->dcb->ieee_setpfc(edev->cdev, pfc);
252*4882a593Smuzhiyun }
253*4882a593Smuzhiyun
qede_dcbnl_ieee_getets(struct net_device * netdev,struct ieee_ets * ets)254*4882a593Smuzhiyun static int qede_dcbnl_ieee_getets(struct net_device *netdev,
255*4882a593Smuzhiyun struct ieee_ets *ets)
256*4882a593Smuzhiyun {
257*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun return edev->ops->dcb->ieee_getets(edev->cdev, ets);
260*4882a593Smuzhiyun }
261*4882a593Smuzhiyun
qede_dcbnl_ieee_setets(struct net_device * netdev,struct ieee_ets * ets)262*4882a593Smuzhiyun static int qede_dcbnl_ieee_setets(struct net_device *netdev,
263*4882a593Smuzhiyun struct ieee_ets *ets)
264*4882a593Smuzhiyun {
265*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun return edev->ops->dcb->ieee_setets(edev->cdev, ets);
268*4882a593Smuzhiyun }
269*4882a593Smuzhiyun
qede_dcbnl_ieee_getapp(struct net_device * netdev,struct dcb_app * app)270*4882a593Smuzhiyun static int qede_dcbnl_ieee_getapp(struct net_device *netdev,
271*4882a593Smuzhiyun struct dcb_app *app)
272*4882a593Smuzhiyun {
273*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun return edev->ops->dcb->ieee_getapp(edev->cdev, app);
276*4882a593Smuzhiyun }
277*4882a593Smuzhiyun
qede_dcbnl_ieee_setapp(struct net_device * netdev,struct dcb_app * app)278*4882a593Smuzhiyun static int qede_dcbnl_ieee_setapp(struct net_device *netdev,
279*4882a593Smuzhiyun struct dcb_app *app)
280*4882a593Smuzhiyun {
281*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
282*4882a593Smuzhiyun int err;
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun err = dcb_ieee_setapp(netdev, app);
285*4882a593Smuzhiyun if (err)
286*4882a593Smuzhiyun return err;
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun return edev->ops->dcb->ieee_setapp(edev->cdev, app);
289*4882a593Smuzhiyun }
290*4882a593Smuzhiyun
qede_dcbnl_ieee_peer_getpfc(struct net_device * netdev,struct ieee_pfc * pfc)291*4882a593Smuzhiyun static int qede_dcbnl_ieee_peer_getpfc(struct net_device *netdev,
292*4882a593Smuzhiyun struct ieee_pfc *pfc)
293*4882a593Smuzhiyun {
294*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
295*4882a593Smuzhiyun
296*4882a593Smuzhiyun return edev->ops->dcb->ieee_peer_getpfc(edev->cdev, pfc);
297*4882a593Smuzhiyun }
298*4882a593Smuzhiyun
qede_dcbnl_ieee_peer_getets(struct net_device * netdev,struct ieee_ets * ets)299*4882a593Smuzhiyun static int qede_dcbnl_ieee_peer_getets(struct net_device *netdev,
300*4882a593Smuzhiyun struct ieee_ets *ets)
301*4882a593Smuzhiyun {
302*4882a593Smuzhiyun struct qede_dev *edev = netdev_priv(netdev);
303*4882a593Smuzhiyun
304*4882a593Smuzhiyun return edev->ops->dcb->ieee_peer_getets(edev->cdev, ets);
305*4882a593Smuzhiyun }
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun static const struct dcbnl_rtnl_ops qede_dcbnl_ops = {
308*4882a593Smuzhiyun .ieee_getpfc = qede_dcbnl_ieee_getpfc,
309*4882a593Smuzhiyun .ieee_setpfc = qede_dcbnl_ieee_setpfc,
310*4882a593Smuzhiyun .ieee_getets = qede_dcbnl_ieee_getets,
311*4882a593Smuzhiyun .ieee_setets = qede_dcbnl_ieee_setets,
312*4882a593Smuzhiyun .ieee_getapp = qede_dcbnl_ieee_getapp,
313*4882a593Smuzhiyun .ieee_setapp = qede_dcbnl_ieee_setapp,
314*4882a593Smuzhiyun .ieee_peer_getpfc = qede_dcbnl_ieee_peer_getpfc,
315*4882a593Smuzhiyun .ieee_peer_getets = qede_dcbnl_ieee_peer_getets,
316*4882a593Smuzhiyun .getstate = qede_dcbnl_getstate,
317*4882a593Smuzhiyun .setstate = qede_dcbnl_setstate,
318*4882a593Smuzhiyun .getpermhwaddr = qede_dcbnl_getpermhwaddr,
319*4882a593Smuzhiyun .getpgtccfgtx = qede_dcbnl_getpgtccfgtx,
320*4882a593Smuzhiyun .getpgbwgcfgtx = qede_dcbnl_getpgbwgcfgtx,
321*4882a593Smuzhiyun .getpgtccfgrx = qede_dcbnl_getpgtccfgrx,
322*4882a593Smuzhiyun .getpgbwgcfgrx = qede_dcbnl_getpgbwgcfgrx,
323*4882a593Smuzhiyun .getpfccfg = qede_dcbnl_getpfccfg,
324*4882a593Smuzhiyun .setpfccfg = qede_dcbnl_setpfccfg,
325*4882a593Smuzhiyun .getcap = qede_dcbnl_getcap,
326*4882a593Smuzhiyun .getnumtcs = qede_dcbnl_getnumtcs,
327*4882a593Smuzhiyun .getpfcstate = qede_dcbnl_getpfcstate,
328*4882a593Smuzhiyun .getapp = qede_dcbnl_getapp,
329*4882a593Smuzhiyun .getdcbx = qede_dcbnl_getdcbx,
330*4882a593Smuzhiyun .setpgtccfgtx = qede_dcbnl_setpgtccfgtx,
331*4882a593Smuzhiyun .setpgtccfgrx = qede_dcbnl_setpgtccfgrx,
332*4882a593Smuzhiyun .setpgbwgcfgtx = qede_dcbnl_setpgbwgcfgtx,
333*4882a593Smuzhiyun .setpgbwgcfgrx = qede_dcbnl_setpgbwgcfgrx,
334*4882a593Smuzhiyun .setall = qede_dcbnl_setall,
335*4882a593Smuzhiyun .setnumtcs = qede_dcbnl_setnumtcs,
336*4882a593Smuzhiyun .setpfcstate = qede_dcbnl_setpfcstate,
337*4882a593Smuzhiyun .setapp = qede_dcbnl_setapp,
338*4882a593Smuzhiyun .setdcbx = qede_dcbnl_setdcbx,
339*4882a593Smuzhiyun .setfeatcfg = qede_dcbnl_setfeatcfg,
340*4882a593Smuzhiyun .getfeatcfg = qede_dcbnl_getfeatcfg,
341*4882a593Smuzhiyun .peer_getappinfo = qede_dcbnl_peer_getappinfo,
342*4882a593Smuzhiyun .peer_getapptable = qede_dcbnl_peer_getapptable,
343*4882a593Smuzhiyun .cee_peer_getpfc = qede_dcbnl_cee_peer_getpfc,
344*4882a593Smuzhiyun .cee_peer_getpg = qede_dcbnl_cee_peer_getpg,
345*4882a593Smuzhiyun };
346*4882a593Smuzhiyun
qede_set_dcbnl_ops(struct net_device * dev)347*4882a593Smuzhiyun void qede_set_dcbnl_ops(struct net_device *dev)
348*4882a593Smuzhiyun {
349*4882a593Smuzhiyun dev->dcbnl_ops = &qede_dcbnl_ops;
350*4882a593Smuzhiyun }
351