104e4272cSJacob Keller.. SPDX-License-Identifier: GPL-2.0
204e4272cSJacob Keller
304e4272cSJacob Keller=========================
404e4272cSJacob Kellernetdevsim devlink support
504e4272cSJacob Keller=========================
604e4272cSJacob Keller
704e4272cSJacob KellerThis document describes the ``devlink`` features supported by the
804e4272cSJacob Keller``netdevsim`` device driver.
904e4272cSJacob Keller
1004e4272cSJacob KellerParameters
1104e4272cSJacob Keller==========
1204e4272cSJacob Keller
1304e4272cSJacob Keller.. list-table:: Generic parameters implemented
1404e4272cSJacob Keller
1504e4272cSJacob Keller   * - Name
1604e4272cSJacob Keller     - Mode
1704e4272cSJacob Keller   * - ``max_macs``
1804e4272cSJacob Keller     - driverinit
1904e4272cSJacob Keller
2004e4272cSJacob KellerThe ``netdevsim`` driver also implements the following driver-specific
2104e4272cSJacob Kellerparameters.
2204e4272cSJacob Keller
2304e4272cSJacob Keller.. list-table:: Driver-specific parameters implemented
2404e4272cSJacob Keller   :widths: 5 5 5 85
2504e4272cSJacob Keller
2604e4272cSJacob Keller   * - Name
2704e4272cSJacob Keller     - Type
2804e4272cSJacob Keller     - Mode
2904e4272cSJacob Keller     - Description
3004e4272cSJacob Keller   * - ``test1``
3104e4272cSJacob Keller     - Boolean
3204e4272cSJacob Keller     - driverinit
3304e4272cSJacob Keller     - Test parameter used to show how a driver-specific devlink parameter
3404e4272cSJacob Keller       can be implemented.
3504e4272cSJacob Keller
3604e4272cSJacob KellerThe ``netdevsim`` driver supports reloading via ``DEVLINK_CMD_RELOAD``
3704e4272cSJacob Keller
3804e4272cSJacob KellerRegions
3904e4272cSJacob Keller=======
4004e4272cSJacob Keller
4104e4272cSJacob KellerThe ``netdevsim`` driver exposes a ``dummy`` region as an example of how the
4204e4272cSJacob Kellerdevlink-region interfaces work. A snapshot is taken whenever the
4304e4272cSJacob Keller``take_snapshot`` debugfs file is written to.
4404e4272cSJacob Keller
4504e4272cSJacob KellerResources
4604e4272cSJacob Keller=========
4704e4272cSJacob Keller
4804e4272cSJacob KellerThe ``netdevsim`` driver exposes resources to control the number of FIB
49*35266255SIdo Schimmelentries, FIB rule entries and nexthops that the driver will allow.
5004e4272cSJacob Keller
5104e4272cSJacob Keller.. code:: shell
5204e4272cSJacob Keller
5304e4272cSJacob Keller    $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96
5404e4272cSJacob Keller    $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16
5504e4272cSJacob Keller    $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64
5604e4272cSJacob Keller    $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16
57*35266255SIdo Schimmel    $ devlink resource set netdevsim/netdevsim0 path /nexthops size 16
5804e4272cSJacob Keller    $ devlink dev reload netdevsim/netdevsim0
5904e4272cSJacob Keller
6004e4272cSJacob KellerDriver-specific Traps
6104e4272cSJacob Keller=====================
6204e4272cSJacob Keller
6304e4272cSJacob Keller.. list-table:: List of Driver-specific Traps Registered by ``netdevsim``
6404e4272cSJacob Keller   :widths: 5 5 90
6504e4272cSJacob Keller
6604e4272cSJacob Keller   * - Name
6704e4272cSJacob Keller     - Type
6804e4272cSJacob Keller     - Description
6904e4272cSJacob Keller   * - ``fid_miss``
7004e4272cSJacob Keller     - ``exception``
7104e4272cSJacob Keller     - When a packet enters the device it is classified to a filtering
7204e4272cSJacob Keller       indentifier (FID) based on the ingress port and VLAN. This trap is used
7304e4272cSJacob Keller       to trap packets for which a FID could not be found
74