xref: /OK3568_Linux_fs/kernel/Documentation/networking/devlink/netdevsim.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun=========================
4*4882a593Smuzhiyunnetdevsim devlink support
5*4882a593Smuzhiyun=========================
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunThis document describes the ``devlink`` features supported by the
8*4882a593Smuzhiyun``netdevsim`` device driver.
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunParameters
11*4882a593Smuzhiyun==========
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun.. list-table:: Generic parameters implemented
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun   * - Name
16*4882a593Smuzhiyun     - Mode
17*4882a593Smuzhiyun   * - ``max_macs``
18*4882a593Smuzhiyun     - driverinit
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunThe ``netdevsim`` driver also implements the following driver-specific
21*4882a593Smuzhiyunparameters.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun.. list-table:: Driver-specific parameters implemented
24*4882a593Smuzhiyun   :widths: 5 5 5 85
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun   * - Name
27*4882a593Smuzhiyun     - Type
28*4882a593Smuzhiyun     - Mode
29*4882a593Smuzhiyun     - Description
30*4882a593Smuzhiyun   * - ``test1``
31*4882a593Smuzhiyun     - Boolean
32*4882a593Smuzhiyun     - driverinit
33*4882a593Smuzhiyun     - Test parameter used to show how a driver-specific devlink parameter
34*4882a593Smuzhiyun       can be implemented.
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunThe ``netdevsim`` driver supports reloading via ``DEVLINK_CMD_RELOAD``
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunRegions
39*4882a593Smuzhiyun=======
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunThe ``netdevsim`` driver exposes a ``dummy`` region as an example of how the
42*4882a593Smuzhiyundevlink-region interfaces work. A snapshot is taken whenever the
43*4882a593Smuzhiyun``take_snapshot`` debugfs file is written to.
44*4882a593Smuzhiyun
45*4882a593SmuzhiyunResources
46*4882a593Smuzhiyun=========
47*4882a593Smuzhiyun
48*4882a593SmuzhiyunThe ``netdevsim`` driver exposes resources to control the number of FIB
49*4882a593Smuzhiyunentries and FIB rule entries that the driver will allow.
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun.. code:: shell
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun    $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96
54*4882a593Smuzhiyun    $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16
55*4882a593Smuzhiyun    $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64
56*4882a593Smuzhiyun    $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16
57*4882a593Smuzhiyun    $ devlink dev reload netdevsim/netdevsim0
58*4882a593Smuzhiyun
59*4882a593SmuzhiyunDriver-specific Traps
60*4882a593Smuzhiyun=====================
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun.. list-table:: List of Driver-specific Traps Registered by ``netdevsim``
63*4882a593Smuzhiyun   :widths: 5 5 90
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun   * - Name
66*4882a593Smuzhiyun     - Type
67*4882a593Smuzhiyun     - Description
68*4882a593Smuzhiyun   * - ``fid_miss``
69*4882a593Smuzhiyun     - ``exception``
70*4882a593Smuzhiyun     - When a packet enters the device it is classified to a filtering
71*4882a593Smuzhiyun       indentifier (FID) based on the ingress port and VLAN. This trap is used
72*4882a593Smuzhiyun       to trap packets for which a FID could not be found
73