| .. SPDX-License-Identifier: GPL-2.0 | |
| ========================= | |
| netdevsim devlink support | |
| ========================= | |
| This document describes the ``devlink`` features supported by the | |
| ``netdevsim`` device driver. | |
| Parameters | |
| ========== | |
| .. list-table:: Generic parameters implemented | |
| * - Name | |
| - Mode | |
| * - ``max_macs`` | |
| - driverinit | |
| The ``netdevsim`` driver also implements the following driver-specific | |
| parameters. | |
| .. list-table:: Driver-specific parameters implemented | |
| :widths: 5 5 5 85 | |
| * - Name | |
| - Type | |
| - Mode | |
| - Description | |
| * - ``test1`` | |
| - Boolean | |
| - driverinit | |
| - Test parameter used to show how a driver-specific devlink parameter | |
| can be implemented. | |
| The ``netdevsim`` driver supports reloading via ``DEVLINK_CMD_RELOAD`` | |
| Regions | |
| ======= | |
| The ``netdevsim`` driver exposes a ``dummy`` region as an example of how the | |
| devlink-region interfaces work. A snapshot is taken whenever the | |
| ``take_snapshot`` debugfs file is written to. | |
| Resources | |
| ========= | |
| The ``netdevsim`` driver exposes resources to control the number of FIB | |
| entries, FIB rule entries and nexthops that the driver will allow. | |
| .. code:: shell | |
| $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96 | |
| $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16 | |
| $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64 | |
| $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16 | |
| $ devlink resource set netdevsim/netdevsim0 path /nexthops size 16 | |
| $ devlink dev reload netdevsim/netdevsim0 | |
| Rate objects | |
| ============ | |
| The ``netdevsim`` driver supports rate objects management, which includes: | |
| - registering/unregistering leaf rate objects per VF devlink port; | |
| - creation/deletion node rate objects; | |
| - setting tx_share and tx_max rate values for any rate object type; | |
| - setting parent node for any rate object type. | |
| Rate nodes and their parameters are exposed in ``netdevsim`` debugfs in RO mode. | |
| For example created rate node with name ``some_group``: | |
| .. code:: shell | |
| $ ls /sys/kernel/debug/netdevsim/netdevsim0/rate_groups/some_group | |
| rate_parent tx_max tx_share | |
| Same parameters are exposed for leaf objects in corresponding ports directories. | |
| For ex.: | |
| .. code:: shell | |
| $ ls /sys/kernel/debug/netdevsim/netdevsim0/ports/1 | |
| dev ethtool rate_parent tx_max tx_share | |
| Driver-specific Traps | |
| ===================== | |
| .. list-table:: List of Driver-specific Traps Registered by ``netdevsim`` | |
| :widths: 5 5 90 | |
| * - Name | |
| - Type | |
| - Description | |
| * - ``fid_miss`` | |
| - ``exception`` | |
| - When a packet enters the device it is classified to a filtering | |
| identifier (FID) based on the ingress port and VLAN. This trap is used | |
| to trap packets for which a FID could not be found |