GNU Linux-libre 6.6.34-gnu
[releases.git] / Documentation / networking / devlink / index.rst
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 Interface documentation
22 -----------------------
23
24 The following pages describe various interfaces available through devlink in
25 general.
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
43 Driver-specific documentation
44 -----------------------------
45
46 Each driver that implements ``devlink`` is expected to document what
47 parameters, 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    sfc