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