1Linux Devlink Documentation 2=========================== 3 4devlink is an API to expose device information and resources not directly 5related to any device class, such as chip-wide/switch-ASIC-wide configuration. 6 7Locking 8------- 9 10Driver facing APIs are currently transitioning to allow more explicit 11locking. Drivers can use the existing ``devlink_*`` set of APIs, or 12new APIs prefixed by ``devl_*``. The older APIs handle all the locking 13in devlink core, but don't allow registration of most sub-objects once 14the main devlink object is itself registered. The newer ``devl_*`` APIs assume 15the devlink instance lock is already held. Drivers can take the instance 16lock by calling ``devl_lock()``. It is also held in most of the callbacks. 17Eventually all callbacks will be invoked under the devlink instance lock, 18refer to the use of the ``DEVLINK_NL_FLAG_NO_LOCK`` flag in devlink core 19to find out which callbacks are not converted, yet. 20 21Drivers are encouraged to use the devlink instance lock for their own needs. 22 23Interface documentation 24----------------------- 25 26The following pages describe various interfaces available through devlink in 27general. 28 29.. toctree:: 30 :maxdepth: 1 31 32 devlink-dpipe 33 devlink-health 34 devlink-info 35 devlink-flash 36 devlink-params 37 devlink-port 38 devlink-region 39 devlink-resource 40 devlink-reload 41 devlink-trap 42 43Driver-specific documentation 44----------------------------- 45 46Each driver that implements ``devlink`` is expected to document what 47parameters, info versions, and other features it supports. 48 49.. toctree:: 50 :maxdepth: 1 51 52 bnxt 53 hns3 54 ionic 55 ice 56 mlx4 57 mlx5 58 mlxsw 59 mv88e6xxx 60 netdevsim 61 nfp 62 qed 63 ti-cpsw-switch 64 am65-nuss-cpsw-switch 65 prestera 66 iosm 67 octeontx2 68