| 1 | |
| 2 |
|
| 3 | =========================
|
| 4 | netdevsim devlink support
|
| 5 | =========================
|
| 6 |
|
| 7 | This document describes the ``devlink`` features supported by the
|
| 8 | ``netdevsim`` device driver.
|
| 9 |
|
| 10 | Parameters
|
| 11 | ==========
|
| 12 |
|
| 13 | .. list-table:: Generic parameters implemented
|
| 14 |
|
| 15 | * - Name
|
| 16 | - Mode
|
| 17 | * - ``max_macs``
|
| 18 | - driverinit
|
| 19 |
|
| 20 | The ``netdevsim`` driver also implements the following driver-specific
|
| 21 | parameters.
|
| 22 |
|
| 23 | .. list-table:: Driver-specific parameters implemented
|
| 24 | :widths: 5 5 5 85
|
| 25 |
|
| 26 | * - Name
|
| 27 | - Type
|
| 28 | - Mode
|
| 29 | - Description
|
| 30 | * - ``test1``
|
| 31 | - Boolean
|
| 32 | - driverinit
|
| 33 | - Test parameter used to show how a driver-specific devlink parameter
|
| 34 | can be implemented.
|
| 35 |
|
| 36 | The ``netdevsim`` driver supports reloading via ``DEVLINK_CMD_RELOAD``
|
| 37 |
|
| 38 | Regions
|
| 39 | =======
|
| 40 |
|
| 41 | The ``netdevsim`` driver exposes a ``dummy`` region as an example of how the
|
| 42 | devlink-region interfaces work. A snapshot is taken whenever the
|
| 43 | ``take_snapshot`` debugfs file is written to.
|
| 44 |
|
| 45 | Resources
|
| 46 | =========
|
| 47 |
|
| 48 | The ``netdevsim`` driver exposes resources to control the number of FIB
|
| 49 | entries, FIB rule entries and nexthops that the driver will allow.
|
| 50 |
|
| 51 | .. code:: shell
|
| 52 |
|
| 53 | $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96
|
| 54 | $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16
|
| 55 | $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64
|
| 56 | $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16
|
| 57 | $ devlink resource set netdevsim/netdevsim0 path /nexthops size 16
|
| 58 | $ devlink dev reload netdevsim/netdevsim0
|
| 59 |
|
| 60 | Rate objects
|
| 61 | ============
|
| 62 |
|
| 63 | The ``netdevsim`` driver supports rate objects management, which includes:
|
| 64 |
|
| 65 | - registering/unregistering leaf rate objects per VF devlink port;
|
| 66 | - creation/deletion node rate objects;
|
| 67 | - setting tx_share and tx_max rate values for any rate object type;
|
| 68 | - setting parent node for any rate object type.
|
| 69 |
|
| 70 | Rate nodes and their parameters are exposed in ``netdevsim`` debugfs in RO mode.
|
| 71 | For example created rate node with name ``some_group``:
|
| 72 |
|
| 73 | .. code:: shell
|
| 74 |
|
| 75 | $ ls /sys/kernel/debug/netdevsim/netdevsim0/rate_groups/some_group
|
| 76 | rate_parent tx_max tx_share
|
| 77 |
|
| 78 | Same parameters are exposed for leaf objects in corresponding ports directories.
|
| 79 | For ex.:
|
| 80 |
|
| 81 | .. code:: shell
|
| 82 |
|
| 83 | $ ls /sys/kernel/debug/netdevsim/netdevsim0/ports/1
|
| 84 | dev ethtool rate_parent tx_max tx_share
|
| 85 |
|
| 86 | Driver-specific Traps
|
| 87 | =====================
|
| 88 |
|
| 89 | .. list-table:: List of Driver-specific Traps Registered by ``netdevsim``
|
| 90 | :widths: 5 5 90
|
| 91 |
|
| 92 | * - Name
|
| 93 | - Type
|
| 94 | - Description
|
| 95 | * - ``fid_miss``
|
| 96 | - ``exception``
|
| 97 | - When a packet enters the device it is classified to a filtering
|
| 98 | identifier (FID) based on the ingress port and VLAN. This trap is used
|
| 99 | to trap packets for which a FID could not be found
|