netdevsim.rst 2.7 KB

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