[dpdk-dev,v1,6/6] bbdev: auxiliary changes to DPDK framework
Checks
Commit Message
Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
---
MAINTAINERS | 10 ++++++++++
config/common_base | 23 +++++++++++++++++++++++
doc/guides/rel_notes/release_17_11.rst | 10 ++++++++++
mk/rte.app.mk | 13 +++++++++++++
4 files changed, 56 insertions(+)
Comments
On 30-Sep-17 2:37 AM, Amr Mokhtar wrote:
> diff --git a/mk/rte.app.mk b/mk/rte.app.mk
> index c25fdd9..7286ad9 100644
> --- a/mk/rte.app.mk
> +++ b/mk/rte.app.mk
> @@ -93,6 +93,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_NET) += -lrte_net
> _LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER) += -lrte_ethdev
> _LDLIBS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += -lrte_cryptodev
> _LDLIBS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += -lrte_eventdev
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_BBDEV) += -lrte_bbdev
> _LDLIBS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += -lrte_mempool
> _LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += -lrte_mempool_ring
> _LDLIBS-$(CONFIG_RTE_LIBRTE_RING) += -lrte_ring
> @@ -146,6 +147,18 @@ endif # $(CONFIG_RTE_LIBRTE_VHOST)
> _LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -lrte_pmd_vmxnet3_uio
> _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lrte_pmd_xenvirt -lxenstore
>
> +ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += -lrte_pmd_bbdev_null
> +
> +# TURBO SOFTWARE PMD is dependent on the BBLIB library
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lrte_pmd_bbdev_turbo_sw
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_common -lcommon
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_crc -lcrc
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_turbo -lturbo
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_rate_matching -lrate_matching
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lirc -limf -lstdc++ -lipps
> +endif # CONFIG_RTE_LIBRTE_BBDEV
> +
> ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
> _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lrte_pmd_aesni_mb
> _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB
>
Changes to makefiles should probably go in with the patches that
introduce the libraries. As it stands, if something breaks the build
inside one of the PMD's or BBDEV itself (which is the case right now),
we won't know about it until this patch.
My initial thought was that the whole patchset is applied as a whole at once to dpdk.
Will get the source files submitted with belonging Makefiles to get it incrementally compilable.
Thanks Anatoly for catching this.
> -----Original Message-----
> From: Burakov, Anatoly
> Sent: Wednesday 4 October 2017 17:14
> To: Mokhtar, Amr <amr.mokhtar@intel.com>; dev@dpdk.org
> Cc: Power, Niall <niall.power@intel.com>; Macnamara, Chris
> <chris.macnamara@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v1 6/6] bbdev: auxiliary changes to DPDK
> framework
>
> On 30-Sep-17 2:37 AM, Amr Mokhtar wrote:
> > diff --git a/mk/rte.app.mk b/mk/rte.app.mk index c25fdd9..7286ad9
> > 100644
> > --- a/mk/rte.app.mk
> > +++ b/mk/rte.app.mk
> > @@ -93,6 +93,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_NET) += -lrte_net
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER) += -lrte_ethdev
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += -lrte_cryptodev
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += -lrte_eventdev
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_BBDEV) += -lrte_bbdev
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += -lrte_mempool
> > _LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += -lrte_mempool_ring
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_RING) += -lrte_ring
> > @@ -146,6 +147,18 @@ endif # $(CONFIG_RTE_LIBRTE_VHOST)
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -
> lrte_pmd_vmxnet3_uio
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lrte_pmd_xenvirt -
> lxenstore
> >
> > +ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += -
> lrte_pmd_bbdev_null
> > +
> > +# TURBO SOFTWARE PMD is dependent on the BBLIB library
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) +=
> > +-lrte_pmd_bbdev_turbo_sw
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) +=
> > +-L$(BBLIB_PATH)/lib_common -lcommon
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) +=
> > +-L$(BBLIB_PATH)/lib_crc -lcrc
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) +=
> > +-L$(BBLIB_PATH)/lib_turbo -lturbo
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) +=
> > +-L$(BBLIB_PATH)/lib_rate_matching -lrate_matching
> > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lirc -limf
> > +-lstdc++ -lipps endif # CONFIG_RTE_LIBRTE_BBDEV
> > +
> > ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lrte_pmd_aesni_mb
> > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -
> L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB
> >
>
> Changes to makefiles should probably go in with the patches that introduce the
> libraries. As it stands, if something breaks the build inside one of the PMD's or
> BBDEV itself (which is the case right now), we won't know about it until this
> patch.
>
> --
> Thanks,
> Anatoly
@@ -273,6 +273,16 @@ F: lib/librte_eventdev/
F: drivers/event/skeleton/
F: test/test/test_eventdev.c
+BBDEV API - EXPERIMENTAL
+M: Amr Mokhtar <amr.mokhtar@intel.com>
+F: lib/librte_bbdev/
+F: drivers/bbdev/
+F: app/test-bbdev
+F: examples/bbdev_app/
+F: doc/guides/bbdevs/
+F: doc/guides/prog_guide/bbdev.rst
+F: doc/guides/sample_app_ug/bbdev_app.rst
+F: doc/guides/tools/testbbdev.rst
Networking Drivers
------------------
@@ -540,6 +540,24 @@ CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV_DEBUG=n
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=y
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF_DEBUG=n
+# Compile generic wireless base band device library
+# EXPERIMENTAL: API may change without prior notice
+#
+CONFIG_RTE_LIBRTE_BBDEV=y
+CONFIG_RTE_LIBRTE_BBDEV_DEBUG=n
+CONFIG_RTE_BBDEV_MAX_DEVS=128
+CONFIG_RTE_BBDEV_NAME_MAX_LEN=64
+
+#
+# Compile PMD for NULL bbdev device
+#
+CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL=y
+
+#
+# Compile PMD for turbo software bbdev device
+#
+CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=n
+
#
# Compile librte_ring
#
@@ -736,6 +754,11 @@ CONFIG_RTE_APP_TEST=y
CONFIG_RTE_APP_TEST_RESOURCE_TAR=n
#
+# Compile the bbdev test application
+#
+CONFIG_RTE_TEST_BBDEV=y
+
+#
# Compile the PMD test application
#
CONFIG_RTE_TEST_PMD=y
@@ -41,6 +41,16 @@ New Features
Also, make sure to start the actual text at the margin.
=========================================================
+* **Added Wireless Base Band Device (bbdev).**
+
+ The Wireless Baseband library provides a common programming framework that
+ abstracts HW accelerators based on FPGA and/or Fixed Function Accelerators that
+ assist with LTE Physical Layer processing. Furthermore, it decouples the
+ application from the compute-intensive wireless functions by abstracting their
+ optimized libraries to appear as virtual bbdev devices.
+
+ The framework currently only supports Turbo Code FEC function.
+
Resolved Issues
---------------
@@ -93,6 +93,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_NET) += -lrte_net
_LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER) += -lrte_ethdev
_LDLIBS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += -lrte_cryptodev
_LDLIBS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += -lrte_eventdev
+_LDLIBS-$(CONFIG_RTE_LIBRTE_BBDEV) += -lrte_bbdev
_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += -lrte_mempool
_LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += -lrte_mempool_ring
_LDLIBS-$(CONFIG_RTE_LIBRTE_RING) += -lrte_ring
@@ -146,6 +147,18 @@ endif # $(CONFIG_RTE_LIBRTE_VHOST)
_LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -lrte_pmd_vmxnet3_uio
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lrte_pmd_xenvirt -lxenstore
+ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += -lrte_pmd_bbdev_null
+
+# TURBO SOFTWARE PMD is dependent on the BBLIB library
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lrte_pmd_bbdev_turbo_sw
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_common -lcommon
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_crc -lcrc
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_turbo -lturbo
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(BBLIB_PATH)/lib_rate_matching -lrate_matching
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lirc -limf -lstdc++ -lipps
+endif # CONFIG_RTE_LIBRTE_BBDEV
+
ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lrte_pmd_aesni_mb
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB