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 devlink-linecard 43 44Driver-specific documentation 45----------------------------- 46 47Each driver that implements ``devlink`` is expected to document what 48parameters, info versions, and other features it supports. 49 50.. toctree:: 51 :maxdepth: 1 52 53 bnxt 54 hns3 55 ionic 56 ice 57 mlx4 58 mlx5 59 mlxsw 60 mv88e6xxx 61 netdevsim 62 nfp 63 qed 64 ti-cpsw-switch 65 am65-nuss-cpsw-switch 66 prestera 67 iosm 68 octeontx2 69