1.. SPDX-License-Identifier: GPL-2.0 2 3========================== 4Devlink E-Switch Attribute 5========================== 6 7Devlink E-Switch supports two modes of operation: legacy and switchdev. 8Legacy mode operates based on traditional MAC/VLAN steering rules. Switching 9decisions are made based on MAC addresses, VLANs, etc. There is limited ability 10to offload switching rules to hardware. 11 12On the other hand, switchdev mode allows for more advanced offloading 13capabilities of the E-Switch to hardware. In switchdev mode, more switching 14rules and logic can be offloaded to the hardware switch ASIC. It enables 15representor netdevices that represent the slow path of virtual functions (VFs) 16or 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 20In addition, the devlink E-Switch also comes with other attributes listed 21in the following section. 22 23Attributes Description 24====================== 25 26The 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 60Example 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 77