dwww Home | Manual pages | Find package

DEVLINK-RATE(8)                      Linux                      DEVLINK-RATE(8)

NAME
       devlink-rate - devlink rate management

SYNOPSIS
       devlink [ OPTIONS ] port function rate  { COMMAND | help }

       OPTIONS := { -j[son] | -p[retty] | -i[ec] }

       devlink port function rate show [ { DEV/PORT_INDEX | DEV/NODE_NAME } ]

       devlink port function rate set { DEV/PORT_INDEX | DEV/NODE_NAME } [
               tx_share VALUE ] [ tx_max VALUE ] [ tx_priority N ] [ tx_weight
               N ] [ { parent NODE_NAME | noparent } ]

       devlink port function rate add DEV/NODE_NAME [ tx_share VALUE ] [ tx_max
               VALUE ] [ tx_priority N ] [ tx_weight N ] [ { parent NODE_NAME |
               noparent } ]

       devlink port function rate del DEV/NODE_NAME

       devlink port function rate help

DESCRIPTION
   devlink port function rate show - display rate objects.
       Displays specified rate object or, if not specified, all rate objects.
       Rate object can be presented by one of the two types:

       leaf    Represents  a single devlink port; created/destroyed by the dri-
               ver and bound to the devlink port. As example, some  driver  may
               create  leaf  rate object for every devlink port associated with
               VF. Since leaf have 1to1 mapping to it's devlink port,  in  user
               space  it is referred as corresponding devlink port DEV/PORT_IN-
               DEX;

       node    Represents a group of rate objects; created/deleted by the  user
               (see  command below) and bound to the devlink device rather then
               to  the  devlink  port.  In  userspace   it   is   referred   as
               DEV/NODE_NAME,  where  node name can be any, except decimal num-
               ber, to avoid collisions with leafs.

       Command output show rate object identifier, it's type  and  rate  values
       along  with  parent node name. Rate values printed in SI units which are
       more suitable to represent specific value. To print values in IEC  units
       -i  switch  is  used. JSON (-j) output always print rate values in bytes
       per second. Zero rate values means "unlimited" rates and omitted in out-
       put, as well as parent node name.

   devlink port function rate set - set rate object parameters.
       Allows set rate object's parameters. If any parameter specified multiple
       times the last occurrence is used.

       DEV/PORT_INDEX - specifies devlink leaf rate object.
       DEV/NODE_NAME - specifies devlink node rate object.

       tx_share VALUE - specifies minimal tx rate value shared among  all  rate
       objects.  If  rate  object is a part of some rate group, then this value
       shared with rate objects of this rate group.

       tx_max VALUE - specifies maximum tx rate value.

       tx_priority N - allows for usage of strict priority arbiter  among  sib-
       lings. This arbitration scheme attempts to schedule nodes based on their
       priority  as  long as the nodes remain within their bandwidth limit. The
       higher the priority the higher the probability that the  node  will  get
       selected for scheduling.

       tx_weight  N  -  allows  for  usage of Weighted Fair Queuing arbitration
       scheme among siblings.  This arbitration scheme can be  used  simultane-
       ously  with  the strict priority.  As a node is configured with a higher
       rate it gets more BW relative to it's siblings. Values are relative like
       a percentage points, they basically tell how much BW  should  node  take
       relative to it's siblings.

       VALUE   These  parameter  accept  a floating point number, possibly fol-
               lowed by either a unit (both SI and IEC units supported).

               bit or a bare number
                      Bits per second

               kbit   Kilobits per second

               mbit   Megabits per second

               gbit   Gigabits per second

               tbit   Terabits per second

               bps    Bytes per second

               kbps   Kilobytes per second

               mbps   Megabytes per second

               gbps   Gigabytes per second

               tbps   Terabytes per second

               To specify in IEC units, replace the SI prefix (k-, m-, g-,  t-)
               with  IEC  prefix (ki-, mi-, gi- and ti-) respectively. Input is
               case-insensitive.

       N       These parameter accept integer meaning weight or priority  of  a
               node.

       parent  NODE_NAME  |  noparent - set rate object parent to existing node
       with name NODE_NAME or unset parent. Rate limits of the parent node  ap-
       plied  to all it's children. Actual behaviour is details of driver's im-
       plementation. Setting parent to empty ("") name due to the kernel  logic
       treated as parent unset.

   devlink  port function rate add - create node rate object with specified pa-
       rameters.
       Creates rate object of type node and sets parameters. Parameters same as
       for the "set" command.

       DEV/NODE_NAME - specifies the devlink node rate object to create.

   devlink port function rate del - delete node rate object
       Delete specified devlink node rate object.  Node  can't  be  deleted  if
       there is any child, user must explicitly unset the parent.

       DEV/NODE_NAME - specifies devlink node rate object to delete.

   devlink port function rate help - display usage information
       Display devlink rate usage information

EXAMPLES
       * Display all rate objects:

           # devlink port function rate show
           pci/0000:03:00.0/1 type leaf parent some_group
           pci/0000:03:00.0/2 type leaf tx_share 12Mbit
           pci/0000:03:00.0/some_group type node tx_share 1Gbps tx_max 5Gbps

       *  Display  leaf  rate  object  bound  to  the  1st  devlink port of the
       pci/0000:03:00.0 device:

           # devlink port function rate show pci/0000:03:00.0/1
           pci/0000:03:00.0/1 type leaf

       * Display leaf rate object rate values using IEC units:

           # devlink -i port function rate show pci/0000:03:00.0/2
           pci/0000:03:00.0/2 type leaf 11718Kibit

       * Display node rate object with name some_group of the  pci/0000:03:00.0
       device:

           # devlink port function rate show pci/0000:03:00.0/some_group
           pci/0000:03:00.0/some_group type node

       * Display pci/0000:03:00.0/2 leaf rate object as pretty JSON output:

           # devlink -jp port function rate show pci/0000:03:00.0/2
           {
               "rate": {
                   "pci/0000:03:00.0/2": {
                       "type": "leaf",
                       "tx_share": 1500000
                   }
               }
           }

       *  Create node rate object with name "1st_group" on pci/0000:03:00.0 de-
       vice:

           # devlink port function rate add pci/0000:03:00.0/1st_group

       * Create node rate object with specified parameters:

           # devlink port function rate add pci/0000:03:00.0/2nd_group \
                tx_share 10Mbit tx_max 30Mbit parent 1st_group

       * Set parameters to the specified leaf rate object:

           # devlink port function rate set pci/0000:03:00.0/1 \
                tx_share 2Mbit tx_max 10Mbit

       * Set leaf's parent to "1st_group":

           # devlink port function rate set pci/0000:03:00.0/1 parent 1st_group

       * Unset leaf's parent:

           # devlink port function rate set pci/0000:03:00.0/1 noparent

       * Delete node rate object:

           # devlink port function rate del pci/0000:03:00.0/2nd_group

SEE ALSO
       devlink(8), devlink-port(8)

AUTHOR
       Dmytro Linkin <dlinkin@nvidia.com>

iproute2                          12 Mar 2021                   DEVLINK-RATE(8)

Generated by dwww version 1.16 on Tue Dec 16 05:54:28 CET 2025.