0001 Linux Devlink Documentation
0002 ===========================
0003
0004 devlink is an API to expose device information and resources not directly
0005 related to any device class, such as chip-wide/switch-ASIC-wide configuration.
0006
0007 Locking
0008 -------
0009
0010 Driver facing APIs are currently transitioning to allow more explicit
0011 locking. Drivers can use the existing ``devlink_*`` set of APIs, or
0012 new APIs prefixed by ``devl_*``. The older APIs handle all the locking
0013 in devlink core, but don't allow registration of most sub-objects once
0014 the main devlink object is itself registered. The newer ``devl_*`` APIs assume
0015 the devlink instance lock is already held. Drivers can take the instance
0016 lock by calling ``devl_lock()``. It is also held in most of the callbacks.
0017 Eventually all callbacks will be invoked under the devlink instance lock,
0018 refer to the use of the ``DEVLINK_NL_FLAG_NO_LOCK`` flag in devlink core
0019 to find out which callbacks are not converted, yet.
0020
0021 Drivers are encouraged to use the devlink instance lock for their own needs.
0022
0023 Interface documentation
0024 -----------------------
0025
0026 The following pages describe various interfaces available through devlink in
0027 general.
0028
0029 .. toctree::
0030 :maxdepth: 1
0031
0032 devlink-dpipe
0033 devlink-health
0034 devlink-info
0035 devlink-flash
0036 devlink-params
0037 devlink-port
0038 devlink-region
0039 devlink-resource
0040 devlink-reload
0041 devlink-selftests
0042 devlink-trap
0043 devlink-linecard
0044
0045 Driver-specific documentation
0046 -----------------------------
0047
0048 Each driver that implements ``devlink`` is expected to document what
0049 parameters, info versions, and other features it supports.
0050
0051 .. toctree::
0052 :maxdepth: 1
0053
0054 bnxt
0055 hns3
0056 ionic
0057 ice
0058 mlx4
0059 mlx5
0060 mlxsw
0061 mv88e6xxx
0062 netdevsim
0063 nfp
0064 qed
0065 ti-cpsw-switch
0066 am65-nuss-cpsw-switch
0067 prestera
0068 iosm
0069 octeontx2