root/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. qede_dcbnl_getstate
  2. qede_dcbnl_setstate
  3. qede_dcbnl_getpermhwaddr
  4. qede_dcbnl_getpgtccfgtx
  5. qede_dcbnl_getpgbwgcfgtx
  6. qede_dcbnl_getpgtccfgrx
  7. qede_dcbnl_getpgbwgcfgrx
  8. qede_dcbnl_getpfccfg
  9. qede_dcbnl_setpfccfg
  10. qede_dcbnl_getcap
  11. qede_dcbnl_getnumtcs
  12. qede_dcbnl_getpfcstate
  13. qede_dcbnl_getapp
  14. qede_dcbnl_getdcbx
  15. qede_dcbnl_setpgtccfgtx
  16. qede_dcbnl_setpgtccfgrx
  17. qede_dcbnl_setpgbwgcfgtx
  18. qede_dcbnl_setpgbwgcfgrx
  19. qede_dcbnl_setall
  20. qede_dcbnl_setnumtcs
  21. qede_dcbnl_setpfcstate
  22. qede_dcbnl_setapp
  23. qede_dcbnl_setdcbx
  24. qede_dcbnl_getfeatcfg
  25. qede_dcbnl_setfeatcfg
  26. qede_dcbnl_peer_getappinfo
  27. qede_dcbnl_peer_getapptable
  28. qede_dcbnl_cee_peer_getpfc
  29. qede_dcbnl_cee_peer_getpg
  30. qede_dcbnl_ieee_getpfc
  31. qede_dcbnl_ieee_setpfc
  32. qede_dcbnl_ieee_getets
  33. qede_dcbnl_ieee_setets
  34. qede_dcbnl_ieee_getapp
  35. qede_dcbnl_ieee_setapp
  36. qede_dcbnl_ieee_peer_getpfc
  37. qede_dcbnl_ieee_peer_getets
  38. qede_set_dcbnl_ops

   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 
  12 static 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 
  19 static 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 
  26 static 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 
  32 static 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 
  42 static 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 
  50 static 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 
  60 static 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 
  68 static 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 
  76 static 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 
  84 static 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 
  91 static 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 
  98 static 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 
 105 static 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 
 112 static 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 
 119 static 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 
 128 static 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 
 137 static 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 
 145 static 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 
 153 static 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 
 160 static 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 
 167 static 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 
 174 static 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 
 182 static 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 
 189 static 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 
 197 static 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 
 204 static 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 
 213 static 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 
 221 static 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 
 229 static 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 
 237 static 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 
 245 static 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 
 253 static 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 
 261 static 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 
 269 static 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 
 277 static 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 
 290 static 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 
 298 static 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 
 306 static 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 
 346 void qede_set_dcbnl_ops(struct net_device *dev)
 347 {
 348         dev->dcbnl_ops = &qede_dcbnl_ops;
 349 }

/* [<][>][^][v][top][bottom][index][help] */