GNU Linux-libre 6.9-gnu
[releases.git] / Documentation / networking / devlink / devlink-eswitch-attr.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ==========================
4 Devlink E-Switch Attribute
5 ==========================
6
7 Devlink E-Switch supports two modes of operation: legacy and switchdev.
8 Legacy mode operates based on traditional MAC/VLAN steering rules. Switching
9 decisions are made based on MAC addresses, VLANs, etc. There is limited ability
10 to offload switching rules to hardware.
11
12 On the other hand, switchdev mode allows for more advanced offloading
13 capabilities of the E-Switch to hardware. In switchdev mode, more switching
14 rules and logic can be offloaded to the hardware switch ASIC. It enables
15 representor netdevices that represent the slow path of virtual functions (VFs)
16 or scalable-functions (SFs) of the device. See more information about
17 :ref:`Documentation/networking/switchdev.rst <switchdev>` and
18 :ref:`Documentation/networking/representors.rst <representors>`.
19
20 In addition, the devlink E-Switch also comes with other attributes listed
21 in the following section.
22
23 Attributes Description
24 ======================
25
26 The following is a list of E-Switch attributes.
27
28 .. list-table:: E-Switch attributes
29    :widths: 8 5 45
30
31    * - Name
32      - Type
33      - Description
34    * - ``mode``
35      - enum
36      - The mode of the device. The mode can be one of the following:
37
38        * ``legacy`` operates based on traditional MAC/VLAN steering
39          rules.
40        * ``switchdev`` allows for more advanced offloading capabilities of
41          the E-Switch to hardware.
42    * - ``inline-mode``
43      - enum
44      - Some HWs need the VF driver to put part of the packet
45        headers on the TX descriptor so the e-switch can do proper
46        matching and steering. Support for both switchdev mode and legacy mode.
47
48        * ``none`` none.
49        * ``link`` L2 mode.
50        * ``network`` L3 mode.
51        * ``transport`` L4 mode.
52    * - ``encap-mode``
53      - enum
54      - The encapsulation mode of the device. Support for both switchdev mode
55        and legacy mode. The mode can be one of the following:
56
57        * ``none`` Disable encapsulation support.
58        * ``basic`` Enable encapsulation support.
59
60 Example Usage
61 =============
62
63 .. code:: shell
64
65     # enable switchdev mode
66     $ devlink dev eswitch set pci/0000:08:00.0 mode switchdev
67
68     # set inline-mode and encap-mode
69     $ devlink dev eswitch set pci/0000:08:00.0 inline-mode none encap-mode basic
70
71     # display devlink device eswitch attributes
72     $ devlink dev eswitch show pci/0000:08:00.0
73       pci/0000:08:00.0: mode switchdev inline-mode none encap-mode basic
74
75     # enable encap-mode with legacy mode
76     $ devlink dev eswitch set pci/0000:08:00.0 mode legacy inline-mode none encap-mode basic