* [PATCH net-next v3] Documentation: Add documentation for eswitch attribute
@ 2024-03-25 18:12 William Tu
2024-03-27 3:28 ` Jakub Kicinski
2024-03-29 1:30 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: William Tu @ 2024-03-25 18:12 UTC (permalink / raw)
To: netdev; +Cc: bodong, jiri, kuba, saeedm, William Tu
Provide devlink documentation for three eswitch attributes:
mode, inline-mode, and encap-mode.
Signed-off-by: William Tu <witu@nvidia.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
---
v3: add Reviewed-by from Jakub
v2: feedback from Jakub
- add link to switchdev and representor
- emphasize "mode"
- document that inline-mode and encap-mode can be use either with
legacy or switchdev mode
---
.../devlink/devlink-eswitch-attr.rst | 76 +++++++++++++++++++
Documentation/networking/devlink/index.rst | 1 +
Documentation/networking/representors.rst | 1 +
3 files changed, 78 insertions(+)
create mode 100644 Documentation/networking/devlink/devlink-eswitch-attr.rst
diff --git a/Documentation/networking/devlink/devlink-eswitch-attr.rst b/Documentation/networking/devlink/devlink-eswitch-attr.rst
new file mode 100644
index 000000000000..08bb39ab1528
--- /dev/null
+++ b/Documentation/networking/devlink/devlink-eswitch-attr.rst
@@ -0,0 +1,76 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+==========================
+Devlink E-Switch Attribute
+==========================
+
+Devlink E-Switch supports two modes of operation: legacy and switchdev.
+Legacy mode operates based on traditional MAC/VLAN steering rules. Switching
+decisions are made based on MAC addresses, VLANs, etc. There is limited ability
+to offload switching rules to hardware.
+
+On the other hand, switchdev mode allows for more advanced offloading
+capabilities of the E-Switch to hardware. In switchdev mode, more switching
+rules and logic can be offloaded to the hardware switch ASIC. It enables
+representor netdevices that represent the slow path of virtual functions (VFs)
+or scalable-functions (SFs) of the device. See more information about
+:ref:`Documentation/networking/switchdev.rst <switchdev>` and
+:ref:`Documentation/networking/representors.rst <representors>`.
+
+In addition, the devlink E-Switch also comes with other attributes listed
+in the following section.
+
+Attributes Description
+======================
+
+The following is a list of E-Switch attributes.
+
+.. list-table:: E-Switch attributes
+ :widths: 8 5 45
+
+ * - Name
+ - Type
+ - Description
+ * - ``mode``
+ - enum
+ - The mode of the device. The mode can be one of the following:
+
+ * ``legacy`` operates based on traditional MAC/VLAN steering
+ rules.
+ * ``switchdev`` allows for more advanced offloading capabilities of
+ the E-Switch to hardware.
+ * - ``inline-mode``
+ - enum
+ - Some HWs need the VF driver to put part of the packet
+ headers on the TX descriptor so the e-switch can do proper
+ matching and steering. Support for both switchdev mode and legacy mode.
+
+ * ``none`` none.
+ * ``link`` L2 mode.
+ * ``network`` L3 mode.
+ * ``transport`` L4 mode.
+ * - ``encap-mode``
+ - enum
+ - The encapsulation mode of the device. Support for both switchdev mode
+ and legacy mode. The mode can be one of the following:
+
+ * ``none`` Disable encapsulation support.
+ * ``basic`` Enable encapsulation support.
+
+Example Usage
+=============
+
+.. code:: shell
+
+ # enable switchdev mode
+ $ devlink dev eswitch set pci/0000:08:00.0 mode switchdev
+
+ # set inline-mode and encap-mode
+ $ devlink dev eswitch set pci/0000:08:00.0 inline-mode none encap-mode basic
+
+ # display devlink device eswitch attributes
+ $ devlink dev eswitch show pci/0000:08:00.0
+ pci/0000:08:00.0: mode switchdev inline-mode none encap-mode basic
+
+ # enable encap-mode with legacy mode
+ $ devlink dev eswitch set pci/0000:08:00.0 mode legacy inline-mode none encap-mode basic
diff --git a/Documentation/networking/devlink/index.rst b/Documentation/networking/devlink/index.rst
index e14d7a701b72..948c8c44e233 100644
--- a/Documentation/networking/devlink/index.rst
+++ b/Documentation/networking/devlink/index.rst
@@ -67,6 +67,7 @@ general.
devlink-selftests
devlink-trap
devlink-linecard
+ devlink-eswitch-attr
Driver-specific documentation
-----------------------------
diff --git a/Documentation/networking/representors.rst b/Documentation/networking/representors.rst
index decb39c19b9e..5e23386f6968 100644
--- a/Documentation/networking/representors.rst
+++ b/Documentation/networking/representors.rst
@@ -1,4 +1,5 @@
.. SPDX-License-Identifier: GPL-2.0
+.. _representors:
=============================
Network Function Representors
--
2.37.1 (Apple Git-137.1)
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH net-next v3] Documentation: Add documentation for eswitch attribute
2024-03-25 18:12 [PATCH net-next v3] Documentation: Add documentation for eswitch attribute William Tu
@ 2024-03-27 3:28 ` Jakub Kicinski
2024-03-29 1:30 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Jakub Kicinski @ 2024-03-27 3:28 UTC (permalink / raw)
To: jiri; +Cc: William Tu, netdev, bodong, saeedm
On Mon, 25 Mar 2024 11:12:28 -0700 William Tu wrote:
> Provide devlink documentation for three eswitch attributes:
> mode, inline-mode, and encap-mode.
Hi Jiri, looks good?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net-next v3] Documentation: Add documentation for eswitch attribute
2024-03-25 18:12 [PATCH net-next v3] Documentation: Add documentation for eswitch attribute William Tu
2024-03-27 3:28 ` Jakub Kicinski
@ 2024-03-29 1:30 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-03-29 1:30 UTC (permalink / raw)
To: William Tu; +Cc: netdev, bodong, jiri, kuba, saeedm
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Mon, 25 Mar 2024 11:12:28 -0700 you wrote:
> Provide devlink documentation for three eswitch attributes:
> mode, inline-mode, and encap-mode.
>
> Signed-off-by: William Tu <witu@nvidia.com>
> Reviewed-by: Jakub Kicinski <kuba@kernel.org>
> ---
> v3: add Reviewed-by from Jakub
> v2: feedback from Jakub
> - add link to switchdev and representor
> - emphasize "mode"
> - document that inline-mode and encap-mode can be use either with
> legacy or switchdev mode
>
> [...]
Here is the summary with links:
- [net-next,v3] Documentation: Add documentation for eswitch attribute
https://git.kernel.org/netdev/net/c/931ec1e4cb7f
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-03-29 1:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-25 18:12 [PATCH net-next v3] Documentation: Add documentation for eswitch attribute William Tu
2024-03-27 3:28 ` Jakub Kicinski
2024-03-29 1:30 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).