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 4935266255SIdo 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 5735266255SIdo Schimmel $ devlink resource set netdevsim/netdevsim0 path /nexthops size 16 5804e4272cSJacob Keller $ devlink dev reload netdevsim/netdevsim0 5904e4272cSJacob Keller 60b62767e7SDmytro LinkinRate objects 61b62767e7SDmytro Linkin============ 62b62767e7SDmytro Linkin 63b62767e7SDmytro LinkinThe ``netdevsim`` driver supports rate objects management, which includes: 64b62767e7SDmytro Linkin 65b62767e7SDmytro Linkin- registerging/unregistering leaf rate objects per VF devlink port; 66b62767e7SDmytro Linkin- creation/deletion node rate objects; 67b62767e7SDmytro Linkin- setting tx_share and tx_max rate values for any rate object type; 68b62767e7SDmytro Linkin- setting parent node for any rate object type. 69b62767e7SDmytro Linkin 70404a5ad7SRandy DunlapRate nodes and their parameters are exposed in ``netdevsim`` debugfs in RO mode. 71b62767e7SDmytro LinkinFor example created rate node with name ``some_group``: 72b62767e7SDmytro Linkin 73b62767e7SDmytro Linkin.. code:: shell 74b62767e7SDmytro Linkin 75b62767e7SDmytro Linkin $ ls /sys/kernel/debug/netdevsim/netdevsim0/rate_groups/some_group 76b62767e7SDmytro Linkin rate_parent tx_max tx_share 77b62767e7SDmytro Linkin 78b62767e7SDmytro LinkinSame parameters are exposed for leaf objects in corresponding ports directories. 79b62767e7SDmytro LinkinFor ex.: 80b62767e7SDmytro Linkin 81b62767e7SDmytro Linkin.. code:: shell 82b62767e7SDmytro Linkin 83b62767e7SDmytro Linkin $ ls /sys/kernel/debug/netdevsim/netdevsim0/ports/1 84b62767e7SDmytro Linkin dev ethtool rate_parent tx_max tx_share 85b62767e7SDmytro Linkin 8604e4272cSJacob KellerDriver-specific Traps 8704e4272cSJacob Keller===================== 8804e4272cSJacob Keller 8904e4272cSJacob Keller.. list-table:: List of Driver-specific Traps Registered by ``netdevsim`` 9004e4272cSJacob Keller :widths: 5 5 90 9104e4272cSJacob Keller 9204e4272cSJacob Keller * - Name 9304e4272cSJacob Keller - Type 9404e4272cSJacob Keller - Description 9504e4272cSJacob Keller * - ``fid_miss`` 9604e4272cSJacob Keller - ``exception`` 9704e4272cSJacob Keller - When a packet enters the device it is classified to a filtering 98*a266ef69SRandy Dunlap identifier (FID) based on the ingress port and VLAN. This trap is used 9904e4272cSJacob Keller to trap packets for which a FID could not be found 100