[dpdk-dev,v1,6/6] bbdev: auxiliary changes to DPDK framework

Message ID 1506735475-77078-6-git-send-email-amr.mokhtar@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation fail Compilation issues

Commit Message

Mokhtar, Amr Sept. 30, 2017, 1:37 a.m. UTC
  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

Burakov, Anatoly Oct. 4, 2017, 4:14 p.m. UTC | #1
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.
  
Mokhtar, Amr Oct. 16, 2017, 9 a.m. UTC | #2
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
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 8df2a7f..1d444f9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -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
 ------------------
diff --git a/config/common_base b/config/common_base
index 12f6be9..494869e 100644
--- a/config/common_base
+++ b/config/common_base
@@ -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
diff --git a/doc/guides/rel_notes/release_17_11.rst b/doc/guides/rel_notes/release_17_11.rst
index 8bf91bd..cdd30bc 100644
--- a/doc/guides/rel_notes/release_17_11.rst
+++ b/doc/guides/rel_notes/release_17_11.rst
@@ -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
 ---------------
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