cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

netdevsim.rst (2816B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3=========================
      4netdevsim devlink support
      5=========================
      6
      7This document describes the ``devlink`` features supported by the
      8``netdevsim`` device driver.
      9
     10Parameters
     11==========
     12
     13.. list-table:: Generic parameters implemented
     14
     15   * - Name
     16     - Mode
     17   * - ``max_macs``
     18     - driverinit
     19
     20The ``netdevsim`` driver also implements the following driver-specific
     21parameters.
     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
     36The ``netdevsim`` driver supports reloading via ``DEVLINK_CMD_RELOAD``
     37
     38Regions
     39=======
     40
     41The ``netdevsim`` driver exposes a ``dummy`` region as an example of how the
     42devlink-region interfaces work. A snapshot is taken whenever the
     43``take_snapshot`` debugfs file is written to.
     44
     45Resources
     46=========
     47
     48The ``netdevsim`` driver exposes resources to control the number of FIB
     49entries, 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
     60Rate objects
     61============
     62
     63The ``netdevsim`` driver supports rate objects management, which includes:
     64
     65- registerging/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
     70Rate nodes and it's parameters are exposed in ``netdevsim`` debugfs in RO mode.
     71For 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
     78Same parameters are exposed for leaf objects in corresponding ports directories.
     79For 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
     86Driver-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       indentifier (FID) based on the ingress port and VLAN. This trap is used
     99       to trap packets for which a FID could not be found