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 all callbacks of devlink
17netlink commands.
18
19Drivers are encouraged to use the devlink instance lock for their own needs.
20
21Interface documentation
22-----------------------
23
24The following pages describe various interfaces available through devlink in
25general.
26
27.. toctree::
28   :maxdepth: 1
29
30   devlink-dpipe
31   devlink-health
32   devlink-info
33   devlink-flash
34   devlink-params
35   devlink-port
36   devlink-region
37   devlink-resource
38   devlink-reload
39   devlink-selftests
40   devlink-trap
41   devlink-linecard
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   etas_es58x
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