Adding bare minimum PMD library and doc build infrastructure and claim the maintainership for txgbe PMD.
Signed-off-by: Jiawen Wu <jiawe...@trustnetic.com> --- MAINTAINERS | 7 +++ config/common_base | 10 +++ doc/guides/nics/features/txgbe.ini | 52 ++++++++++++++++ doc/guides/nics/txgbe.rst | 67 +++++++++++++++++++++ drivers/net/meson.build | 1 + drivers/net/txgbe/meson.build | 9 +++ drivers/net/txgbe/rte_pmd_txgbe_version.map | 3 + drivers/net/txgbe/txgbe_ethdev.c | 4 ++ drivers/net/txgbe/txgbe_ethdev.h | 4 ++ mk/rte.app.mk | 1 + 10 files changed, 158 insertions(+) create mode 100644 doc/guides/nics/features/txgbe.ini create mode 100644 doc/guides/nics/txgbe.rst create mode 100644 drivers/net/txgbe/meson.build create mode 100644 drivers/net/txgbe/rte_pmd_txgbe_version.map create mode 100644 drivers/net/txgbe/txgbe_ethdev.c create mode 100644 drivers/net/txgbe/txgbe_ethdev.h diff --git a/MAINTAINERS b/MAINTAINERS index ed163f5d5..155ae17c4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -882,6 +882,13 @@ F: drivers/net/vmxnet3/ F: doc/guides/nics/vmxnet3.rst F: doc/guides/nics/features/vmxnet3.ini +Wangxun txgbe +M: Jiawen Wu <jiawe...@trustnetic.com> +M: Jian Wang <jianw...@trustnetic.com> +F: drivers/net/txgbe/ +F: doc/guides/nics/txgbe.rst +F: doc/guides/nics/features/txgbe.ini + Vhost-user M: Maxime Coquelin <maxime.coque...@redhat.com> M: Chenbo Xia <chenbo....@intel.com> diff --git a/config/common_base b/config/common_base index fbf0ee70c..037aea6a7 100644 --- a/config/common_base +++ b/config/common_base @@ -389,6 +389,16 @@ CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD=n CONFIG_RTE_IBVERBS_LINK_DLOPEN=n CONFIG_RTE_IBVERBS_LINK_STATIC=n +# +# Compile burst-oriented TXGBE PMD driver +# +CONFIG_RTE_LIBRTE_TXGBE_PMD=y +CONFIG_RTE_LIBRTE_TXGBE_DEBUG_RX=n +CONFIG_RTE_LIBRTE_TXGBE_DEBUG_TX=n +CONFIG_RTE_LIBRTE_TXGBE_DEBUG_TX_FREE=n +CONFIG_RTE_LIBRTE_TXGBE_PF_DISABLE_STRIP_CRC=n +CONFIG_RTE_LIBRTE_TXGBE_BYPASS=n + # # Compile burst-oriented Netronome NFP PMD driver # diff --git a/doc/guides/nics/features/txgbe.ini b/doc/guides/nics/features/txgbe.ini new file mode 100644 index 000000000..4de458669 --- /dev/null +++ b/doc/guides/nics/features/txgbe.ini @@ -0,0 +1,52 @@ +; +; Supported features of the 'txgbe' network poll mode driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Speed capabilities = Y +Link status = Y +Link status event = Y +Rx interrupt = Y +Queue start/stop = Y +MTU update = Y +Jumbo frame = 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 +DCB = Y +VLAN filter = Y +Flow control = Y +Flow API = Y +Rate limitation = Y +Traffic mirroring = 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 +Multiprocess aware = Y +BSD nic_uio = Y +Linux UIO = Y +Linux VFIO = Y diff --git a/doc/guides/nics/txgbe.rst b/doc/guides/nics/txgbe.rst new file mode 100644 index 000000000..133e17bc0 --- /dev/null +++ b/doc/guides/nics/txgbe.rst @@ -0,0 +1,67 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2015-2020. + +TXGBE Poll Mode Driver +====================== + +The TXGBE PMD (librte_pmd_txgbe) provides poll mode driver support +for Wangxun 10 Gigabit Ethernet NICs. + +Features +-------- + +- Multiple queues for TX and RX +- Receiver Side Scaling (RSS) +- MAC/VLAN filtering +- Packet type information +- Checksum offload +- VLAN/QinQ stripping and inserting +- TSO offload +- Promiscuous mode +- Multicast mode +- Port hardware statistics +- Jumbo frames +- Link state information +- Link flow control +- Interrupt mode for RX +- Scattered and gather for TX and RX +- DCB +- IEEE 1588 +- FW version +- LRO +- Generic flow API + +Prerequisites +------------- + +- Learning about Wangxun 10 Gigabit Ethernet NICs using + `<https://www.net-swift.com/c/product.html>`_. + +- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment. + +Pre-Installation Configuration +------------------------------ + +Config File Options +~~~~~~~~~~~~~~~~~~~ + +The following options can be modified in the ``config`` file. + +- ``CONFIG_RTE_LIBRTE_TXGBE_PMD`` (default ``y``) + + Toggle compilation of the ``librte_pmd_txgbe`` driver. + +- ``CONFIG_RTE_LIBRTE_TXGBE_DEBUG_*`` (default ``n``) + + Toggle display of generic debugging messages. + +Driver compilation and testing +------------------------------ + +Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>` +for details. + +Limitations or Known issues +--------------------------- +Build with ICC is not supported yet. +X86-32, Power8, ARMv7 and BSD are not supported yet. diff --git a/drivers/net/meson.build b/drivers/net/meson.build index d56b24051..8a240134f 100644 --- a/drivers/net/meson.build +++ b/drivers/net/meson.build @@ -50,6 +50,7 @@ drivers = ['af_packet', 'szedata2', 'tap', 'thunderx', + 'txgbe', 'vdev_netvsc', 'vhost', 'virtio', diff --git a/drivers/net/txgbe/meson.build b/drivers/net/txgbe/meson.build new file mode 100644 index 000000000..605fcba78 --- /dev/null +++ b/drivers/net/txgbe/meson.build @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2015-2020 + +cflags += ['-DRTE_LIBRTE_TXGBE_BYPASS'] + +sources = files( + 'txgbe_ethdev.c', +) + diff --git a/drivers/net/txgbe/rte_pmd_txgbe_version.map b/drivers/net/txgbe/rte_pmd_txgbe_version.map new file mode 100644 index 000000000..4a76d1d52 --- /dev/null +++ b/drivers/net/txgbe/rte_pmd_txgbe_version.map @@ -0,0 +1,3 @@ +DPDK_21 { + local: *; +}; diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c new file mode 100644 index 000000000..cb758762d --- /dev/null +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -0,0 +1,4 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2015-2020 + */ + diff --git a/drivers/net/txgbe/txgbe_ethdev.h b/drivers/net/txgbe/txgbe_ethdev.h new file mode 100644 index 000000000..cb758762d --- /dev/null +++ b/drivers/net/txgbe/txgbe_ethdev.h @@ -0,0 +1,4 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2015-2020 + */ + diff --git a/mk/rte.app.mk b/mk/rte.app.mk index a54425997..85e3e8b52 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -239,6 +239,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += -lrte_pmd_nfb _LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs netcope-common) _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += -lrte_pmd_tap _LDLIBS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += -lrte_pmd_thunderx_nicvf +_LDLIBS-$(CONFIG_RTE_LIBRTE_TXGBE_PMD) += -lrte_pmd_txgbe _LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += -lrte_pmd_vdev_netvsc _LDLIBS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += -lrte_pmd_virtio ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y) -- 2.18.4