forked from Minki/linux
Documentation: devlink rate objects
Add devlink rate objects section at devlink port documentation. Add devlink rate support info at netdevsim devlink documentation. Signed-off-by: Dmytro Linkin <dlinkin@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1a9c0482f5
commit
b62767e7ba
@ -164,6 +164,41 @@ device to instantiate the subfunction device on particular PCI function.
|
||||
A subfunction device is created on the :ref:`Documentation/driver-api/auxiliary_bus.rst <auxiliary_bus>`.
|
||||
At this point a matching subfunction driver binds to the subfunction's auxiliary device.
|
||||
|
||||
Rate object management
|
||||
======================
|
||||
|
||||
Devlink provides API to manage tx rates of single devlink port or a group.
|
||||
This is done through rate objects, which can be one of the two types:
|
||||
|
||||
``leaf``
|
||||
Represents a single devlink port; created/destroyed by the driver. Since leaf
|
||||
have 1to1 mapping to its devlink port, in user space it is referred as
|
||||
``pci/<bus_addr>/<port_index>``;
|
||||
|
||||
``node``
|
||||
Represents a group of rate objects (leafs and/or nodes); created/deleted by
|
||||
request from the userspace; initially empty (no rate objects added). In
|
||||
userspace it is referred as ``pci/<bus_addr>/<node_name>``, where
|
||||
``node_name`` can be any identifier, except decimal number, to avoid
|
||||
collisions with leafs.
|
||||
|
||||
API allows to configure following rate object's parameters:
|
||||
|
||||
``tx_share``
|
||||
Minimum TX rate value shared among all other rate objects, or rate objects
|
||||
that parts of the parent group, if it is a part of the same group.
|
||||
|
||||
``tx_max``
|
||||
Maximum TX rate value.
|
||||
|
||||
``parent``
|
||||
Parent node name. Parent node rate limits are considered as additional limits
|
||||
to all node children limits. ``tx_max`` is an upper limit for children.
|
||||
``tx_share`` is a total bandwidth distributed among children.
|
||||
|
||||
Driver implementations are allowed to support both or either rate object types
|
||||
and setting methods of their parameters.
|
||||
|
||||
Terms and Definitions
|
||||
=====================
|
||||
|
||||
|
@ -57,6 +57,32 @@ entries, FIB rule entries and nexthops that the driver will allow.
|
||||
$ 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 it's 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
|
||||
=====================
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user