• Home
  • Raw
  • Download

Lines Matching +full:tx +full:- +full:queues +full:- +full:to +full:- +full:use

1 .. SPDX-License-Identifier: GPL-2.0
9 ``devlink-port`` is a port that exists on the device. It has a logically
14 A device driver that intends to publish a devlink port sets the
19 .. list-table:: List of devlink port flavours
22 * - Flavour
23 - Description
24 * - ``DEVLINK_PORT_FLAVOUR_PHYSICAL``
25 - Any kind of physical port. This can be an eswitch physical port or any
27 * - ``DEVLINK_PORT_FLAVOUR_DSA``
28 - This indicates a DSA interconnect port.
29 * - ``DEVLINK_PORT_FLAVOUR_CPU``
30 - This indicates a CPU port applicable only to DSA.
31 * - ``DEVLINK_PORT_FLAVOUR_PCI_PF``
32 - This indicates an eswitch port representing a port of PCI
34 * - ``DEVLINK_PORT_FLAVOUR_PCI_VF``
35 - This indicates an eswitch port representing a port of PCI
37 * - ``DEVLINK_PORT_FLAVOUR_PCI_SF``
38 - This indicates an eswitch port representing a port of PCI
40 * - ``DEVLINK_PORT_FLAVOUR_VIRTUAL``
41 - This indicates a virtual port for the PCI virtual function.
45 .. list-table:: List of devlink port types
48 * - Type
49 - Description
50 * - ``DEVLINK_PORT_TYPE_ETH``
51 - Driver should set this port type when a link layer of the port is
53 * - ``DEVLINK_PORT_TYPE_IB``
54 - Driver should set this port type when a link layer of the port is
56 * - ``DEVLINK_PORT_TYPE_AUTO``
57 - This type is indicated by the user when driver should detect the port
61 ---------------
67 A PCI device connected to multiple CPUs or multiple PCI root complexes or a
74 ---------------------------------------------------------
76 | --------- --------- ------- ------- |
77 ----------- | | vf(s) | | sf(s) | |vf(s)| |sf(s)| |
78 | server | | ------- ----/---- ---/----- ------- ---/--- ---/--- |
80 | connect | | ------- ------- |
81 ----------- | | controller_num=1 (no eswitch) |
82 ------|--------------------------------------------------
85 ---------------------------------------------------------
87 | ----------------------------------------------------- |
88 | |ctrl-0 | ctrl-0 | ctrl-0 | ctrl-0 | ctrl-0 |ctrl-0 | |
90 | ----------------------------------------------------- |
91 | |ctrl-1 | ctrl-1 | ctrl-1 | ctrl-1 | ctrl-1 |ctrl-1 | |
93 | ----------------------------------------------------- |
96 ----------- | --------- --------- ------- ------- |
98 | pci rc |==| ------- ----/---- ---/----- ------- ---/--- ---/--- |
100 ----------- | ------- ------- |
103 ---------------------------------------------------------
118 function device to the driver. For subfunctions, this means user should
137 Users may also set the maximum IO event queues of the function
144 -----------------
148 - Get the MAC address of the VF identified by its unique devlink port index::
155 - Set the MAC address of the VF identified by its unique devlink port index::
164 - Get the MAC address of the SF identified by its unique devlink port index::
171 - Set the MAC address of the SF identified by its unique devlink port index::
181 ---------------------
193 - Get RoCE capability of the VF device::
200 - Set RoCE capability of the VF device::
210 ---------------------------
212 from one physical host to another without disrupting its normal
215 User who want PCI VFs to be able to perform live migration need to
218 When user enables migratable capability for a VF, and the HV binds the VF to VFIO driver
219 with migration support, the user can migrate the VM with this VF from one HV to a
226 - Get migratable capability of the VF device::
233 - Set migratable capability of the VF device::
242 - Bind VF to VFIO driver with migration support::
248 Attach VF to the VM.
253 -----------------------------
255 XFRM state crypto operation (Encrypt/Decrypt) to this VF.
260 - Get IPsec crypto capability of the VF device::
267 - Set IPsec crypto capability of the VF device::
277 -----------------------------
279 XFRM state and policy crypto operation (Encrypt/Decrypt) to this VF, as well as
285 - Get IPsec packet capability of the VF device::
292 - Set IPsec packet capability of the VF device::
301 Maximum IO events queues setup
302 ------------------------------
303 When user sets maximum number of IO event queues for a SF or
304 a VF, such function driver is limited to consume only enforced
305 number of IO event queues.
307 IO event queues deliver events related to IO queues, including network
308 device transmit and receive queues (txq and rxq) and RDMA Queue Pairs (QPs).
310 vectors are derived from the function's IO event queues. Usually, the number
312 event queues per device, as each of the IO event queues is connected to an
315 - Get maximum IO event queues of the VF device::
322 - Set maximum IO event queues of the VF device::
339 To use a subfunction, 3 steps setup sequence is followed:
341 1) create - create a subfunction;
342 2) configure - configure subfunction attributes;
343 3) deploy - deploy the subfunction;
349 ----------
352 kernel code calls down to subfunction management driver (devlink ops) and asks
353 it to create a subfunction devlink port. Driver then instantiates the
358 -------------
360 entities are created on devlink side, the e-switch port representor is created,
361 but the subfunction device itself is not created. A user might use e-switch port
362 representor to do settings, putting it into bridge, adding TC rules, etc. A user
367 ----------
368 Once a subfunction is configured, user must activate it to use it. Upon
370 device to instantiate the subfunction device on particular PCI function.
371 A subfunction device is created on the :ref:`Documentation/driver-api/auxiliary_bus.rst <auxiliary_…
372 At this point a matching subfunction driver binds to the subfunction's auxiliary device.
377 Devlink provides API to manage tx rates of single devlink port or a group.
382 have 1to1 mapping to its devlink port, in user space it is referred as
389 ``node_name`` can be any identifier, except decimal number, to avoid
392 API allows to configure following rate object's parameters:
395 Minimum TX rate value shared among all other rate objects, or rate objects
399 Maximum TX rate value.
403 arbitration scheme attempts to schedule nodes based on their priority
412 BW relative to its siblings. Values are relative like a percentage
413 points, they basically tell how much BW should node take relative to
418 to all node children limits. ``tx_max`` is an upper limit for children.
428 within the BW limit and are not blocked. Use ``tx_priority`` as a
432 that subgroup. Use ``tx_weight`` as a parameter for this arbitration.
437 #. If all the nodes from the highest priority sub-group are satisfied, or
438 overused their assigned BW, move to the lower priority nodes.
440 Driver implementations are allowed to support both or either rate object types
442 may export nodes/leafs and their child-parent relationships.
447 .. list-table:: Terms and Definitions
450 * - Term
451 - Definitions
452 * - ``PCI device``
453 - A physical PCI device having one or more PCI buses consists of one or
455 * - ``PCI controller``
456 - A controller consists of potentially multiple physical functions,
458 * - ``Port function``
459 - An object to manage the function of a port.
460 * - ``Subfunction``
461 - A lightweight function that has parent PCI function on which it is
463 * - ``Subfunction device``
464 - A bus device of the subfunction, usually on a auxiliary bus.
465 * - ``Subfunction driver``
466 - A device driver for the subfunction auxiliary device.
467 * - ``Subfunction management device``
468 - A PCI physical function that supports subfunction management.
469 * - ``Subfunction management driver``
470 - A device driver for PCI physical function that supports
472 * - ``Subfunction host driver``
473 - A device driver for PCI physical function that hosts subfunction