Re: [PATCH 01/13] net/sxe: add base driver directory and doc

Ivan Malov
2025-07-25T13:39:37Z

Hi,

(please see below)

On Thu, 24 Apr 2025, Jie Liu wrote:

> From: JieLiu <liujie5@linkdatatechnology.com>
>
> Adding a minimum maintainable directory structure for the
> network driver and request maintenance of the sxe driver.
>
> Signed-off-by: Jie Liu <liujie5@linkdatatechnology.com>
> ---
> MAINTAINERS | 6 +++
> doc/guides/nics/features/sxe.ini | 82 +++++++++++++++++++++++++++++
> doc/guides/nics/features/sxe_vf.ini | 39 ++++++++++++++
> doc/guides/nics/index.rst | 1 +
> doc/guides/nics/sxe.rst | 71 +++++++++++++++++++++++++
> drivers/net/sxe/meson.build | 9 ++++
> drivers/net/sxe/pf/sxe_ethdev.c | 3 ++
> drivers/net/sxe/pf/sxe_ethdev.h | 3 ++
> 8 files changed, 214 insertions(+)
> create mode 100644 doc/guides/nics/features/sxe.ini
> create mode 100644 doc/guides/nics/features/sxe_vf.ini
> create mode 100644 doc/guides/nics/sxe.rst
> create mode 100644 drivers/net/sxe/meson.build
> create mode 100644 drivers/net/sxe/pf/sxe_ethdev.c
> create mode 100644 drivers/net/sxe/pf/sxe_ethdev.h
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 82f6e2f917..f92f4fea81 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2055,3 +2055,9 @@ F: examples/vmdq/
> F: doc/guides/sample_app_ug/vmdq_forwarding.rst
> F: examples/vmdq_dcb/
> F: doc/guides/sample_app_ug/vmdq_dcb_forwarding.rst
> +
> +Linkdata sxe
> +M: Jie Li <lijie@linkdatatechnology.com>
> +F: drivers/net/sxe/
> +F: doc/guides/nics/sxe.rst
> +F: doc/guides/nics/features/sxe*.ini
> diff --git a/doc/guides/nics/features/sxe.ini b/doc/guides/nics/features/sxe.ini
> new file mode 100644
> index 0000000000..b61ad7c699
> --- /dev/null
> +++ b/doc/guides/nics/features/sxe.ini
> @@ -0,0 +1,82 @@
> +;
> +; Supported features of the 'sxe' network poll mode driver.
> +;
> +; Refer to default.ini for the full list of available PMD features.
> +;
> +[Features]
> +Speed capabilities = Y
> +Link speed configuration = Y
> +Link status = Y
> +Link status event = Y
> +Rx interrupt = Y
> +Queue start/stop = Y
> +Power mgmt address monitor = Y
> +MTU update = Y
> +Scattered Rx = Y
> +LRO = Y
> +TSO = Y
> +Promiscuous mode = Y
> +Allmulticast mode = Y
> +Unicast MAC filter = Y
> +Multicast MAC filter = Y
> +RSS hash = Y
> +RSS key update = Y
> +RSS reta update = Y
> +VMDq = Y
> +SR-IOV = Y
> +DCB = Y
> +VLAN filter = Y
> +Flow control = Y
> +Rate limitation = Y
> +Traffic manager = Y
> +Inline crypto = Y
> +CRC offload = P
> +VLAN offload = P
> +QinQ offload = P
> +L3 checksum offload = P
> +L4 checksum offload = P
> +MACsec offload = P
> +Inner L3 checksum = P
> +Inner L4 checksum = P
> +Packet type parsing = Y
> +Timesync = Y
> +Rx descriptor status = Y
> +Tx descriptor status = Y
> +Basic stats = Y
> +Extended stats = Y
> +Stats per queue = Y
> +FW version = Y
> +EEPROM dump = Y
> +Module EEPROM dump = Y
> +Registers dump = Y
> +Multiprocess aware = Y
> +FreeBSD = Y
> +Linux = Y
> +ARMv8 = Y
> +LoongArch64 = Y
> +rv64 = Y
> +x86-32 = Y
> +x86-64 = Y
> +
> +[rte_flow items]
> +eth = P
> +e_tag = Y
> +fuzzy = Y
> +ipv4 = Y
> +ipv6 = Y
> +nvgre = Y
> +raw = Y
> +sctp = Y
> +tcp = Y
> +udp = Y
> +vlan = P
> +vxlan = Y
> +
> +[rte_flow actions]
> +drop = Y
> +mark = Y
> +pf = Y
> +queue = Y
> +rss = Y
> +security = Y
> +vf = Y
> diff --git a/doc/guides/nics/features/sxe_vf.ini b/doc/guides/nics/features/sxe_vf.ini
> new file mode 100644
> index 0000000000..49eaeaaaae
> --- /dev/null
> +++ b/doc/guides/nics/features/sxe_vf.ini
> @@ -0,0 +1,39 @@
> +;
> +; Supported features of the 'sxe_vf' network poll mode driver.
> +;
> +; Refer to default.ini for the full list of available PMD features.
> +;
> +[Features]
> +Link status = Y
> +Rx interrupt = Y
> +Power mgmt address monitor = Y
> +MTU update = Y
> +Scattered Rx = Y
> +LRO = Y
> +TSO = Y
> +Promiscuous mode = Y
> +Allmulticast mode = Y
> +Unicast MAC filter = Y
> +RSS hash = Y
> +RSS key update = Y
> +RSS reta update = Y
> +VLAN filter = Y
> +Inline crypto = Y
> +CRC offload = P
> +VLAN offload = P
> +QinQ offload = P
> +L3 checksum offload = P
> +L4 checksum offload = P
> +Inner L3 checksum = P
> +Inner L4 checksum = P
> +Packet type parsing = Y
> +Rx descriptor status = Y
> +Tx descriptor status = Y
> +Basic stats = Y
> +Extended stats = Y
> +Registers dump = Y
> +FreeBSD = Y
> +Linux = Y
> +ARMv8 = Y
> +x86-32 = Y
> +x86-64 = Y
> diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst
> index 10a2eca3b0..67e6374c69 100644
> --- a/doc/guides/nics/index.rst
> +++ b/doc/guides/nics/index.rst
> @@ -72,3 +72,4 @@ Network Interface Controller Drivers
> vmxnet3
> xsc
> zxdh
> + sxe
> diff --git a/doc/guides/nics/sxe.rst b/doc/guides/nics/sxe.rst
> new file mode 100644
> index 0000000000..d86d15bec8
> --- /dev/null
> +++ b/doc/guides/nics/sxe.rst
> @@ -0,0 +1,71 @@
> +.. SPDX-License-Identifier: BSD-3-Clause
> + Copyright (C), 2022, Linkdata Technology Co., Ltd.

Why not 2025?

> +
> +SXE Poll Mode Driver
> +======================
> +
> +The SXE PMD (librte_pmd_sxe) provides poll mode driver support
> +for Linkdata 1160-2X 10GE Ethernet Adapter.
> +
> +Features
> +--------
> +- PXE boot
> +- PTP(Precision Time Protocol)

Consider: 'PTP (precision time protocol)'.

> +- VMDq(Virtual Machine Device Queues)

Consider: 'VMDq (virtual machine devise queues)'.

> +- SR-IOV,max 2PF,63VF per PF

Consider: 'SR-IOV, max. 2 PFs, 63 VFs per PF'.

> +- 128 L2 Ethernet MAC Address Filters (unicast and multicast)
> +- 64 L2 VLAN filters
> +- pldm over mctp over smbus
> +- 802.1q VLAN
> +- Low Latency Interrupts
> +- LRO
> +- Promiscuous mode
> +- Multicast mode
> +- Multiple queues for TX and RX

Consider to spell it as 'Tx' and 'Rx.

> +- Receiver Side Scaling (RSS)

For consistency, 'RSS (receive side scaling)', may be?

> +- MAC/VLAN filtering
> +- Packet type information
> +- Checksum offload
> +- VLAN/QinQ stripping and inserting
> +- TSO offload
> +- Port hardware statistics
> +- Link state information
> +- Link flow control
> +- Interrupt mode for RX
> +- Scattered and gather for TX and RX

Consider to spell it as 'Tx' and 'Rx'.

> +- DCB
> +- IEEE 1588
> +- FW version
> +- Generic flow API
> +
> +Configuration
> +-------------
> +
> +Dynamic Logging Parameters
> +~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +One may leverage EAL option "--log-level" to change default levels
> +for the log types supported by the driver. The option is used with
> +an argument typically consisting of two parts separated by a colon.
> +
> +SXE PMD provides the following log types available for control:
> +
> +- ``pmd.net.sxe.drv`` (default level is **DEBUG**)
> +
> + Affects driver-wide messages unrelated to any particular devices.
> +
> +- ``pmd.net.sxe.init`` (default level is **DEBUG**)
> +
> + Extra logging of the messages during PMD initialization.
> +
> +- ``pmd.net.sxe.rx`` (default level is **DEBUG**)
> +
> + Affects rx-wide messages.

Perhaps 'rx' -> 'Rx'.

> +- ``pmd.net.sxe.tx`` (default level is **DEBUG**)

Perhaps 'tx' -> 'Tx'.

> +
> + Affects tx-wide messages.

Why is 'DEBUG' used by default? Won't it overwhelm the screen with messages?

Thank you.

> +
> +------------------------------
> +
> +Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
> +for details.
> diff --git a/drivers/net/sxe/meson.build b/drivers/net/sxe/meson.build
> new file mode 100644
> index 0000000000..dad9ee44a0
> --- /dev/null
> +++ b/drivers/net/sxe/meson.build
> @@ -0,0 +1,9 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright (C), 2020, Wuxi Stars Micro System Technologies Co., Ltd.
> +
> +deps += ['hash']
> +sources = files(
> + 'pf/sxe_ethdev.c',
> +)
> +
> +includes += include_directories('pf')
> diff --git a/drivers/net/sxe/pf/sxe_ethdev.c b/drivers/net/sxe/pf/sxe_ethdev.c
> new file mode 100644
> index 0000000000..e31a23deeb
> --- /dev/null
> +++ b/drivers/net/sxe/pf/sxe_ethdev.c
> @@ -0,0 +1,3 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2015-2024
> + */
> diff --git a/drivers/net/sxe/pf/sxe_ethdev.h b/drivers/net/sxe/pf/sxe_ethdev.h
> new file mode 100644
> index 0000000000..e31a23deeb
> --- /dev/null
> +++ b/drivers/net/sxe/pf/sxe_ethdev.h
> @@ -0,0 +1,3 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2015-2024
> + */
> --
> 2.18.4
>
>