~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/networking/devlink/index.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 Linux Devlink Documentation
  2 ===========================
  3 
  4 devlink is an API to expose device information and resources not directly
  5 related to any device class, such as chip-wide/switch-ASIC-wide configuration.
  6 
  7 Locking
  8 -------
  9 
 10 Driver facing APIs are currently transitioning to allow more explicit
 11 locking. Drivers can use the existing ``devlink_*`` set of APIs, or
 12 new APIs prefixed by ``devl_*``. The older APIs handle all the locking
 13 in devlink core, but don't allow registration of most sub-objects once
 14 the main devlink object is itself registered. The newer ``devl_*`` APIs assume
 15 the devlink instance lock is already held. Drivers can take the instance
 16 lock by calling ``devl_lock()``. It is also held all callbacks of devlink
 17 netlink commands.
 18 
 19 Drivers are encouraged to use the devlink instance lock for their own needs.
 20 
 21 Drivers need to be cautious when taking devlink instance lock and
 22 taking RTNL lock at the same time. Devlink instance lock needs to be taken
 23 first, only after that RTNL lock could be taken.
 24 
 25 Nested instances
 26 ----------------
 27 
 28 Some objects, like linecards or port functions, could have another
 29 devlink instances created underneath. In that case, drivers should make
 30 sure to respect following rules:
 31 
 32  - Lock ordering should be maintained. If driver needs to take instance
 33    lock of both nested and parent instances at the same time, devlink
 34    instance lock of the parent instance should be taken first, only then
 35    instance lock of the nested instance could be taken.
 36  - Driver should use object-specific helpers to setup the
 37    nested relationship:
 38 
 39    - ``devl_nested_devlink_set()`` - called to setup devlink -> nested
 40      devlink relationship (could be user for multiple nested instances.
 41    - ``devl_port_fn_devlink_set()`` - called to setup port function ->
 42      nested devlink relationship.
 43    - ``devlink_linecard_nested_dl_set()`` - called to setup linecard ->
 44      nested devlink relationship.
 45 
 46 The nested devlink info is exposed to the userspace over object-specific
 47 attributes of devlink netlink.
 48 
 49 Interface documentation
 50 -----------------------
 51 
 52 The following pages describe various interfaces available through devlink in
 53 general.
 54 
 55 .. toctree::
 56    :maxdepth: 1
 57 
 58    devlink-dpipe
 59    devlink-health
 60    devlink-info
 61    devlink-flash
 62    devlink-params
 63    devlink-port
 64    devlink-region
 65    devlink-resource
 66    devlink-reload
 67    devlink-selftests
 68    devlink-trap
 69    devlink-linecard
 70    devlink-eswitch-attr
 71 
 72 Driver-specific documentation
 73 -----------------------------
 74 
 75 Each driver that implements ``devlink`` is expected to document what
 76 parameters, info versions, and other features it supports.
 77 
 78 .. toctree::
 79    :maxdepth: 1
 80 
 81    bnxt
 82    etas_es58x
 83    hns3
 84    i40e
 85    ionic
 86    ice
 87    mlx4
 88    mlx5
 89    mlxsw
 90    mv88e6xxx
 91    netdevsim
 92    nfp
 93    qed
 94    ti-cpsw-switch
 95    am65-nuss-cpsw-switch
 96    prestera
 97    iosm
 98    octeontx2
 99    sfc

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php