Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1.. SPDX-License-Identifier: GPL-2.0
2
3=========================
4netdevsim devlink support
5=========================
6
7This document describes the ``devlink`` features supported by the
8``netdevsim`` device driver.
9
10Parameters
11==========
12
13.. list-table:: Generic parameters implemented
14
15 * - Name
16 - Mode
17 * - ``max_macs``
18 - driverinit
19
20The ``netdevsim`` driver also implements the following driver-specific
21parameters.
22
23.. list-table:: Driver-specific parameters implemented
24 :widths: 5 5 5 85
25
26 * - Name
27 - Type
28 - Mode
29 - Description
30 * - ``test1``
31 - Boolean
32 - driverinit
33 - Test parameter used to show how a driver-specific devlink parameter
34 can be implemented.
35
36The ``netdevsim`` driver supports reloading via ``DEVLINK_CMD_RELOAD``
37
38Regions
39=======
40
41The ``netdevsim`` driver exposes a ``dummy`` region as an example of how the
42devlink-region interfaces work. A snapshot is taken whenever the
43``take_snapshot`` debugfs file is written to.
44
45Resources
46=========
47
48The ``netdevsim`` driver exposes resources to control the number of FIB
49entries, FIB rule entries and nexthops that the driver will allow.
50
51.. code:: shell
52
53 $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96
54 $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16
55 $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64
56 $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16
57 $ devlink resource set netdevsim/netdevsim0 path /nexthops size 16
58 $ devlink dev reload netdevsim/netdevsim0
59
60Rate objects
61============
62
63The ``netdevsim`` driver supports rate objects management, which includes:
64
65- registering/unregistering leaf rate objects per VF devlink port;
66- creation/deletion node rate objects;
67- setting tx_share and tx_max rate values for any rate object type;
68- setting parent node for any rate object type.
69
70Rate nodes and their parameters are exposed in ``netdevsim`` debugfs in RO mode.
71For example created rate node with name ``some_group``:
72
73.. code:: shell
74
75 $ ls /sys/kernel/debug/netdevsim/netdevsim0/rate_groups/some_group
76 rate_parent tx_max tx_share
77
78Same parameters are exposed for leaf objects in corresponding ports directories.
79For ex.:
80
81.. code:: shell
82
83 $ ls /sys/kernel/debug/netdevsim/netdevsim0/ports/1
84 dev ethtool rate_parent tx_max tx_share
85
86Driver-specific Traps
87=====================
88
89.. list-table:: List of Driver-specific Traps Registered by ``netdevsim``
90 :widths: 5 5 90
91
92 * - Name
93 - Type
94 - Description
95 * - ``fid_miss``
96 - ``exception``
97 - When a packet enters the device it is classified to a filtering
98 identifier (FID) based on the ingress port and VLAN. This trap is used
99 to trap packets for which a FID could not be found