From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2202EA04AC; Tue, 1 Sep 2020 13:51:13 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E49152B89; Tue, 1 Sep 2020 13:51:11 +0200 (CEST) Received: from smtpbgau1.qq.com (smtpbgau1.qq.com [54.206.16.166]) by dpdk.org (Postfix) with ESMTP id 8003EDE0 for ; Tue, 1 Sep 2020 13:51:09 +0200 (CEST) X-QQ-mid: bizesmtp5t1598961062tdu9evp1p Received: from localhost.localdomain.com (unknown [183.129.236.74]) by esmtp6.qq.com (ESMTP) with id ; Tue, 01 Sep 2020 19:50:56 +0800 (CST) X-QQ-SSF: 01400000000000B0C000000A0000000 X-QQ-FEAT: Me8y4DzRu2QT2z+xpTwSUKavP1/zA4dJGnJx+j3qkZWXXDbzaf5Q6BDA3JY1r lsFNE9Pmvy7WDUdwhhoNnUssnjgL0mNkScF9tp19U0fiB2CS25oVaRw23B6GPRu7okiVADn VOoXPO1xUH7va+G5ZjJechL1EfNKJIofxV87F4Wu3jsNAidTczn/gI5HT25VUmVDgsDhwd3 6czlXuL6podp+8/myUMHB4Cr5fl0J3GwBN2erLt1exdfdgKp00Uqqjz5LrYHiha1E3MuBUV BU1+OKmdQxOxkzz5k7TJFiKulYFT1z9tqMg/niLEPJDOfqWRXk/auefdwPjKH56G3JGv2pG BSKuti7TNkqFuj3VBEyTKA015Vq8fPd4AgLOKpx X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu Date: Tue, 1 Sep 2020 19:50:32 +0800 Message-Id: <20200901115113.1529675-1-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.18.4 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign5 X-QQ-Bgrelay: 1 Subject: [dpdk-dev] [PATCH v1 01/42] net/txgbe: add build and doc infrastructure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Adding bare minimum PMD library and doc build infrastructure and claim the maintainership for txgbe PMD. Signed-off-by: Jiawen Wu --- 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 +M: Jian Wang +F: drivers/net/txgbe/ +F: doc/guides/nics/txgbe.rst +F: doc/guides/nics/features/txgbe.ini + Vhost-user M: Maxime Coquelin M: Chenbo Xia 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 + ``_. + +- Follow the DPDK :ref:`Getting Started Guide for Linux ` 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 ` +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