| .. 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: |
| |
| - registerging/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 |