Commit Graph

552 Commits

Author SHA1 Message Date
Rosen Xu
ef1e8ede3d raw/ifpga: add Intel FPGA bus rawdev driver
Add Intel FPGA BUS Rawdev Driver which is based on
librte_rawdev library.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Signed-off-by: Tianfei Zhang <tianfei.zhang@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
2018-05-11 17:09:26 +02:00
Tianfei Zhang
56bb54ea1b raw/ifpga/base: add Intel FPGA OPAE share code
This patch adds Intel FPGA Open Programmable Acceleration
Engine (OPAE)[1] base driver code, in order to support Intel
FPGA devices under DPDK. The base code currently supports
Intel FPGA solutions including integrated solution (Intel(R)
Xeon(R) CPU with FPGAs) and discrete solution (Intel(R)
Programmable Acceleration Card with Intel(R) Arria(R) 10 FPGA)
and it could be extended to support more FPGA devices in the
future. Please refer to [1][2] for more introduction on OPAE
and Intel FPGAs.

[1] https://01.org/OPAE
[2] https://www.altera.com/solutions/acceleration-hub/overview.html

Signed-off-by: Tianfei Zhang <tianfei.zhang@intel.com>
Signed-off-by: Hao Wu <hao.wu@intel.com>
Signed-off-by: Yilun Xu <yilun.xu@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
2018-05-11 17:08:37 +02:00
Rosen Xu
05fa3d4a65 bus/ifpga: add Intel FPGA bus library
Defined FPGA-BUS for Acceleration Drivers of AFUs

1. FPGA PCI Scan (1st Scan) follows DPDK UIO/VFIO PCI Scan Process,
probe Intel FPGA Rawdev Driver, it will be covered in following patches.

2. AFU Scan(2nd Scan) bind DPDK driver to FPGA Partial-Bitstream.
This scan is trigged by hotplug of IFPGA Rawdev probe, in this scan
the AFUs will be created and their drivers are also probed.

This patch will introduce rte_afu_device which describe the AFU device
listed in the FPGA-BUS.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Tianfei Zhang <tianfei.zhang@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
2018-05-11 17:08:32 +02:00
Lee Daly
5a44154361 doc: add compression driver and ISA-L PMD guides
This adds general compression drivers feature guide
as well as the ISA-L PMD documentation and guide.

Signed-off-by: Lee Daly <lee.daly@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-10 17:46:20 +01:00
Lee Daly
3c32e89f68 compress/isal: add skeleton ISA-L compression PMD
Adding basic skeleton of the ISA-L compression driver.
No compression functionality, but lays the foundation for
operations in the rest of the patchset.

The ISA-L compression driver utilizes Intel's ISA-L compression
library and compressdev API.

Signed-off-by: Lee Daly <lee.daly@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-10 17:46:20 +01:00
Pablo de Lara
b06aa643ca test/compress: add initial unit tests
This commit introduces the initial tests for compressdev,
performing basic compression and decompression operations
of sample test buffers, using the Zlib library in one direction
and compressdev in another direction, to make sure that
the library is compatible with Zlib.

Due to the use of Zlib API, the test is disabled by default,
to avoid adding a new dependency on DPDK.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Lee Daly <lee.daly@intel.com>
2018-05-10 17:46:20 +01:00
Ashish Gupta
a584d3bea9 doc: add compressdev library guide
Add section in programmer’s guide for Compressdev library.

Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
2018-05-10 17:46:20 +01:00
Fiona Trahe
ed7dd94f7f compressdev: add basic device management
Add basic functions to manage compress devices,
including driver and device allocation, and the basic
interface with compressdev PMDs.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
2018-05-10 17:46:19 +01:00
Tomasz Duszynski
e95faac151 crypto/mrvl: rename PMD to mvsam
Picking a company stock ticker for a PMD name might not be a best approach
in a long run since name is too generic.

This patch addresses that and renames mrvl to mvsam.

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2018-05-10 17:46:19 +01:00
Abhinandan Gujjar
7b51fc96d1 doc: add event crypto adapter guide
Add entries in the programmer's guide, API index, maintainer's file
and release notes for the event crypto adapter.

Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
2018-05-10 14:08:57 +02:00
Abhinandan Gujjar
3c2c535ecf test: add event crypto adapter auto-test
Added testsuite to test the crypto adapter functionality.
The testsuite detects the HW/SW event & crypto devices and
their capabilities. Depending upon the capability, adapter
is confgured and modes are tested.

Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
2018-05-10 14:08:52 +02:00
Abhinandan Gujjar
dbe869baf4 eventdev: introduce event crypto adapter
This patch introduces event crypto adapter APIs. It
also provides information on working model/adapter
modes & their usage. Application is expected to use
this interface to transfer packets between the crypto
device & the event device.

Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Gage Eads <gage.eads@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
2018-05-10 14:03:57 +02:00
Nipun Gupta
13c5cbafa6 doc: add DPAA2 CMDIF rawdev guide
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-05-08 14:21:18 +02:00
Nipun Gupta
3298fa4853 raw/dpaa2_cmdif: introduce DPAA2 command interface driver
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-05-08 14:20:39 +02:00
Nipun Gupta
e2077a158e doc: add DPAA2 QDMA rawdev guide
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-05-08 12:21:13 +02:00
Nipun Gupta
b1ee472fed raw/dpaa2_qdma: introduce the DPAA2 QDMA driver
DPAA2 QDMA driver uses MC DPDMAI object. This driver enables
the user (app) to perform data DMA without involving CPU in
the DMA process

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-05-08 12:20:53 +02:00
Jianfeng Tan
ee73f98ef4 maintainers: resign from vhost and vdev
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
2018-05-03 17:48:28 +02:00
Pablo de Lara
ee04ebc8ba maintainers: call out subtree for bbdev and security
Commits for bbdev and security libraries are merged
into the Next Crypto subtree.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-04-28 00:05:32 +02:00
Akhil Goyal
e0451b0906 maintainers: add backup for next-crypto tree
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-04-28 00:00:24 +02:00
Anatoly Burakov
ac69852557 maintainers: claim EAL memory init
Claim maintainership of all areas of EAL memory init, including
OS-specific parts of it.

Also, claim maintainership of fbarray, since although it's not
related to memory allocation, it is heavily used by it and its
primary purpose is to serve memory allocation functions, and
thus will appear under "memory allocation" banner.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-04-27 23:55:20 +02:00
Ferruh Yigit
01eb53eefe ethdev: rename folder to library name
Library folder name and output library name are same except a few flaws
including librte_ether.

This library is network device abstraction layer, the name "ethdev" fits
better than "ether", and library & header files already named as ethdev.

Also there is a rte_ether.h in the net library which can cause confusion.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-04-27 18:01:00 +01:00
Tomasz Duszynski
d62230cc54 net/mvpp2: update maintainers
Jacek will no longer be maintaining mvpp2 net PMD.
Special thanks to him for his development and support.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2018-04-27 15:54:56 +01:00
Xiao Wang
a3f8150eac net/ifcvf: add ifcvf vDPA driver
The IFCVF vDPA (vhost data path acceleration) driver provides support for
the Intel FPGA 100G VF (IFCVF). IFCVF's datapath is virtio ring compatible,
it works as a HW vhost backend which can send/receive packets to/from
virtio directly by DMA.

Different VF devices serve different virtio frontends which are in
different VMs, so each VF needs to have its own DMA address translation
service. During the driver probe a new container is created, with this
container vDPA driver can program DMA remapping table with the VM's memory
region information.

Key vDPA driver ops implemented:

- ifcvf_dev_config:
  Enable VF data path with virtio information provided by vhost lib,
  including IOMMU programming to enable VF DMA to VM's memory, VFIO
  interrupt setup to route HW interrupt to virtio driver, create notify
  relay thread to translate virtio driver's kick to a MMIO write onto HW,
  HW queues configuration.

- ifcvf_dev_close:
  Revoke all the setup in ifcvf_dev_config.

Live migration feature is supported by IFCVF and this driver enables
it. For the dirty page logging, VF helps to log for packet buffer write,
driver helps to make the used ring as dirty when device stops.

Because vDPA driver needs to set up MSI-X vector to interrupt the
guest, only vfio-pci is supported currently.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-27 15:54:55 +01:00
Artem V. Andreev
4ed00862c8 mempool/bucket: implement bucket mempool manager
The manager provides a way to allocate physically and virtually
contiguous set of objects.

Signed-off-by: Artem V. Andreev <artem.andreev@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-04-26 23:34:07 +02:00
Harry van Haaren
60df571197 service: remove experimental tags
This commit removes the experimental tags from the
service cores functions, they now become part of the
main DPDK API/ABI.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-04-25 14:57:37 +02:00
Gaetan Rivet
83945fbd7c test: remove devargs unit tests
The current test will not be compatible anymore with a private
devargs list.

Moreover, the new functions should have new tests, while the existing
API will be removed.

The current unit tests are thus obsolete and hereby removed.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-04-25 03:58:17 +02:00
Tomasz Duszynski
1ab91ad5bb maintainers: update MRVL crypto PMD
Jacek will no longer be maintaining mrvl crypto PMD.
Special thanks to him for development and support.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2018-04-23 18:20:10 +01:00
Jay Zhou
3a78b2f732 doc: add virtio crypto PMD guide
This patch adds the guide for virtio crypto PMD.

Signed-off-by: Jay Zhou <jianjay.zhou@huawei.com>
Reviewed-by: Fan Zhang <roy.fan.zhang@intel.com>
2018-04-23 18:20:10 +01:00
Jay Zhou
8769079ae0 crypto/virtio: add virtio crypto PMD
The virtio crypto device is a virtual cryptography device
as well as a kind of virtual hardware accelerator for
virtual machines. The linux kernel virtio-crypto driver
has been merged, and this patch introduces virtio crypto
PMD to achieve better performance.

Signed-off-by: Jay Zhou <jianjay.zhou@huawei.com>
Reviewed-by: Fan Zhang <roy.fan.zhang@intel.com>
2018-04-23 18:20:10 +01:00
Ravi Kumar
4433ced9aa doc: add AMD CCP guide
Signed-off-by: Ravi Kumar <ravi1.kumar@amd.com>
2018-04-23 18:20:09 +01:00
Ravi Kumar
0054d84f6e crypto/ccp: add AMD ccp skeleton PMD
Added DPDK crypto PMD for AMD Cryptographic Co-Processors.
This patch adds a basic skeleton for PMD.

Signed-off-by: Ravi Kumar <ravi1.kumar@amd.com>
2018-04-23 18:19:43 +01:00
Thomas Monjalon
d1a83cd8dc maintainers: fix typo and ordering
Fix logical/alphabetical ordering, spacing, and syntax typo.

Fixes: 8fb3b25760 ("maintainers: call out subtree committers")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-04-23 12:54:46 +02:00
Pavan Nikhilesh
fd5baf09cd event/octeontx: probe timvf PCIe devices
On Octeontx HW, each event timer device is enumerated as separate SRIOV VF
PCIe device.

In order to expose as a event timer device:
On PCIe probe, the driver stores the information associated with the
PCIe device and later when application requests for a event timer device
through `rte_event_timer_adapter_create` the driver infrastructure creates
the timer adapter with earlier probed PCIe VF devices.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-04-16 11:27:15 +02:00
Erik Gabriel Carrillo
30e7fbd628 doc: add event timer adapter guide
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-04-16 11:04:46 +02:00
Erik Gabriel Carrillo
d1f3385d00 test: add event timer adapter auto-test
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2018-04-16 11:04:46 +02:00
Erik Gabriel Carrillo
a6562f6d6f eventdev: introduce event timer adapter
Event devices can be coupled with various components to provide
new event sources by using event adapters.  The event timer adapter
is one such adapter; it bridges event devices and timer mechanisms.
This library extends the event-driven programming model by
introducing a new type of event that represents a timer expiration,
and it provides APIs with which adapters can be created or destroyed
and event timers can be armed and canceled.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-04-16 11:04:46 +02:00
Fan Zhang
f5188211c7 examples/vhost_crypto: add sample application
This patch adds vhost_crypto sample application to DPDK.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Jay Zhou <jianjay.zhou@huawei.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-04-14 00:43:30 +02:00
Ravi Kumar
8691632f92 net/axgbe: add minimal init and uninit support
Add ethernet poll mode driver for AMD 10G devices embedded in
AMD EPYC™ EMBEDDED 3000 family processors.

Signed-off-by: Ravi Kumar <ravi1.kumar@amd.com>
2018-04-14 00:41:44 +02:00
Pablo de Lara
8fb3b25760 maintainers: call out subtree committers
The MAINTAINERS file contains information of the maintainers
of the different components on DPDK.
However, it does not give any information on who maintains the
different subtrees which accept new commits for these components.

This commit adds a list of the subtree committers.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-11 00:52:51 +02:00
Ferruh Yigit
adf837fe76 maintainers: maintain avf PMD in next-net-intel
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-10 23:58:00 +02:00
Yong Wang
386d7eef32 maintainers: claim responsibility for vmxnet3
Signed-off-by: Yong Wang <yongwang@vmware.com>
2018-04-10 23:53:42 +02:00
Pavan Nikhilesh
d8dd31652c common/octeontx: move mbox to common folder
Move commonly used functions across mempool, event and net devices to a
common folder in drivers.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
2018-04-04 23:14:52 +02:00
Natalie Samsonov
fe93968722 net/mrvl: rename PMD as mvpp2
The name "mrvl" for Marvell PMD driver for PPv2 Marvell PPv2
(Packet Processor v2) 1/10 Gbps adapter is too generic and causes
problem for adding new PMD drivers for other Marvell devices.
Changed to "mvpp2" for specific Marvell PPv2 PMD.

This patch doesn't introduce any change except renaming.

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-03-30 14:08:44 +02:00
Hemant Agrawal
acaa9ee991 move kernel modules directories
This patch moves the kernel modules code from EAL to a common place.
 - Separate the kernel module code from user space code.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>
2018-03-21 23:04:21 +01:00
Mark Kavanagh
3cbf404294 maintainers: resign from GSO lib
I will not be directly working on the DPDK project anymore.

Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jiayu Hu <jiayu.hu@intel.com>
2018-03-21 22:59:11 +01:00
Yuanhan Liu
fd38cf0102 maintainers: resign from vhost/virtio
Signed-off-by: Yuanhan Liu <yliu@fridaylinux.org>
2018-03-21 22:59:11 +01:00
Jianfeng Tan
93907c22ec maintainers: update for vhost lib and PMD
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-03-21 22:59:11 +01:00
Thomas Monjalon
1ef7e18191 drivers: rename bbdev directory to baseband
The drivers directory contains some sub-directories
for each kind of device (or bus, mem):
	net, crypto, event, raw
They are not suffixed with "dev" because it is obvious.

For consistency, the sub-directory drivers/bbdev/
is renamed to drivers/baseband/.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Amr Mokhtar <amr.mokhtar@intel.com>
2018-03-21 22:43:05 +01:00
Bruce Richardson
1a0accaddb app/procinfo: rename folder to remove underscore
All other apps in the app folder use "-" rather than "_" to separate words
in the app name, so rename proc_info to be consistent.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-03-12 16:29:27 +01:00
Luca Boccassi
b69e737a65 maintainers: update for stable branches
I am maintaining 16.11 until November 2018

Signed-off-by: Luca Boccassi <bluca@debian.org>
2018-02-14 00:42:04 +01:00
Neil Horman
dbc1960b9e maintainers: update for driver information tool
I wrote pmdinfogen initially, and since there isn't a maintainer for it,
I'll volunteer to take care of it

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-02-09 16:39:57 +01:00
Shreyansh Jain
a9bb0c44c7 doc: add rawdev library guide and doxygen page
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-01-31 15:42:58 +01:00
Shreyansh Jain
544092a0f9 test: enable rawdev skeleton test
Skeleton rawdevice test cases are part of driver layer. This patch
allows test cases to be executed using 'rawdev_autotest' command
in test framework.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-01-31 15:38:03 +01:00
Shreyansh Jain
61c592a8d0 raw/skeleton: introduce skeleton rawdev driver
Skeleton rawdevice driver, on the lines of eventdev skeleton, is for
showcasing the rawdev library. This driver implements some of the
operations of the library based on which a test module can be
developed.

Design of skeleton involves a virtual device which is plugged into
VDEV bus on initialization.

Also, enable compilation of rawdev skeleton driver.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-01-31 15:36:02 +01:00
Shreyansh Jain
c88b3f2558 rawdev: introduce raw device library
Each device in DPDK has a type associated with it - ethernet, crypto,
event etc. This patch introduces 'rawdevice' which is a generic
type of device, not currently handled out-of-the-box by DPDK.

A device which can be scanned on an installed bus (pci, fslmc, ...)
or instantiated through devargs, can be interfaced using
standardized APIs just like other standardized devices.

This library introduces an API set which can be plugged on the
northbound side to the application layer, and on the southbound side
to the driver layer.

The APIs of rawdev library exposes some generic operations which can
enable configuration and I/O with the raw devices. Using opaque
data (pointer) as API arguments, library allows a high flexibility
for application and driver implementation.

This patch introduces basic device operations like start, stop, reset,
queue and info support.
Subsequent patches would introduce other operations like buffer
enqueue/dequeue and firmware support.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-01-31 15:35:01 +01:00
Bruce Richardson
ed4d43d73e build: symlink drivers to library directory
With the introduction of bus drivers, we now have a situation where
driver libraries will start to depend upon each other. Because of this,
the driver libs need to be discoverable by the dynamic loader.

There are three options to fix this:
1. Force the user to put the $libdir/dpdk/drivers folder into their
	library path.
2. Move all libraries from drivers sub-directory to $libdir.
3. Symlink all libraries from the subfolder to the main library dir.

Option 1 is not great for usability or distro packaging, and option 2
means that we can't have EAL load all drivers from a known path
automatically (as it would error out on non-PMD libs), so option 3 was
chosen as the best fix. The only downside is that on a "ninja uninstall"
the symlinks are not removed, as they are unknown to meson/ninja.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
2018-01-30 21:58:59 +01:00
Bruce Richardson
90434f6c2f eal/bsd: build modules with meson
Support compiling the FreeBSD kernel modules using meson and ninja.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-01-30 21:58:59 +01:00
Bruce Richardson
cf8e39735e buildtools: build with meson
Add the buildtools folder, and more specifically the pmdinfogen binary to
the meson and ninja build. This will be needed for building the PMDs in the
driver folder later, as the pmd info output from the tool needs to be
included in those libs.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Luca Boccassi <luca.boccassi@gmail.com>
2018-01-30 17:49:16 +01:00
Bruce Richardson
a25a650be5 build: add infrastructure for meson and ninja builds
To build with meson and ninja, we need some initial infrastructure in
place. The build files for meson always need to be called "meson.build",
and options get placed in meson_options.txt

This commit adds a top-level meson.build file, which sets up the global
variables for tracking drivers, libraries, etc., and then includes other
build files, before finishing by writing the global build configuration
header file and a DPDK pkgconfig file at the end, using some of those same
globals.

From the top level build file, the only include file thus far is for the
config folder, which does some other setup of global configuration
parameters, including pulling in architecture specific parameters from an
architectural subdirectory. A number of configuration build options are
provided for the project to tune a number of global variables which will be
used later e.g. max numa nodes, max cores, etc. These settings all make
their way to the global build config header "rte_build_config.h". There is
also a file "rte_config.h", which includes "rte_build_config.h", and this
file is meant to hold other build-time values which are present in our
current static build configuration but are not normally meant for
user-configuration. Ideally, over time, the values placed here should be
moved to the individual libraries or drivers which want those values.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Luca Boccassi <luca.boccassi@gmail.com>
2018-01-30 17:49:16 +01:00
Pablo de Lara
8f40d6cc6d maintainers: update for cryptodev
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-01-30 00:20:31 +01:00
Neil Horman
a4bcd61de8 buildtools: add script to check experimental API exports
This tools reads the given version map for a directory, and checks to
ensure that, for each symbol listed in the export list, the corresponding
definition is tagged as __rte_experimental, erroring out if its not.  In this
way, we can ensure that the EXPERIMENTAL api is kept in sync with the tags

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
2018-01-29 22:44:00 +01:00
Konstantin Ananyev
93da5b59af test: introduce memory barrier test case
Simple functional test for rte_smp_mb() implementations.
Also when executed on a single lcore could be used as rough
estimation how many cycles particular implementation of rte_smp_mb()
might take.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-01-29 16:45:18 +01:00
Pavan Nikhilesh
948bc3d6d0 test: add reciprocal based division
This commit provides a set of tests for verifying the correctness and
performance of both unsigned 32 and 64bit reciprocal based division.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2018-01-27 22:36:56 +01:00
Matan Azrad
6086ab3bb3 net/vdev_netvsc: introduce Hyper-V platform driver
This patch lays the groundwork for this driver (draft documentation,
copyright notices, code base skeleton and build system hooks). While it can
be successfully compiled and invoked, it's an empty shell at this stage.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Signed-off-by: Matan Azrad <matan@mellanox.com>
2018-01-21 15:51:52 +01:00
Akhil Goyal
e8f7a85e71 maintainers: update for ipsec-secgw
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-01-19 23:55:24 +01:00
Sunil Kumar Kori
a9980aa483 doc: add DPAA eventdev guide
Signed-off-by: Sunil Kumar Kori <sunil.kori@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-01-19 16:09:56 +01:00
Sunil Kumar Kori
9caac5dd1e event/dpaa: introduce PMD
Signed-off-by: Sunil Kumar Kori <sunil.kori@nxp.com>
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-19 16:09:56 +01:00
Pavan Nikhilesh
6d239dd529 examples/eventdev: rename example
Rename eventdev_pipeline_sw_pmd to eventdev_pipeline as it is no longer
specific underlying event device.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-01-19 16:09:56 +01:00
Pavan Nikhilesh
85fb515b73 event/sw: move test to driver
Move software eventdev specific test (test_eventdev_sw) to
driver/event/sw/.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-01-19 16:09:56 +01:00
Pavan Nikhilesh
50fb749a39 event/octeontx: move test to driver
Move octeontx eventdev specific test (test_eventdev_octeontx.c) to
driver/event/octeontx.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-19 16:09:56 +01:00
Liang Ma
c7aa67f5a9 doc: add eventdev OPDL PMD guide
Add the description about opdl pmd

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Signed-off-by: Peter Mccarthy <peter.mccarthy@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
2018-01-19 16:09:56 +01:00
Liang Ma
4236ce9bf5 event/opdl: add OPDL ring infrastructure library
OPDL ring is the core infrastructure of OPDL PMD. OPDL ring library
provide the core data structure and core helper function set. The Ring
implements a single ring multi-port/stage pipelined packet distribution
mechanism. This mechanism has the following characteristics:

• No multiple queue cost, therefore, latency is significant reduced.
• Fixed dependencies between queue/ports is more suitable for complex.
  fixed pipelines of stateless packet processing (static pipeline).
• Has decentralized distribution (no scheduling core).
• Packets remain in order (no reorder core(s)).
* Update build system to enable compilation.

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Signed-off-by: Peter Mccarthy <peter.mccarthy@intel.com>
Reviewed-by: Seán Harte <seanbh@gmail.com>
2018-01-19 16:09:56 +01:00
Amr Mokhtar
1ffee690ea examples/bbdev: add sample app
- sample application performing a loop-back over ethernet using
 a bbbdev device
- 'turbo_sw' PMD must be enabled for the app to be functional
- a packet is received on an ethdev port -> enqueued for baseband
 encode operation -> dequeued -> enqueued for baseband decode
 operation-> dequeued -> compared with original signal -> looped-back
 to the ethdev port

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
2018-01-19 01:44:25 +01:00
Amr Mokhtar
f714a18885 app/testbbdev: add test application for bbdev
- full test suite for bbdev
- test App works seamlessly on all PMDs registered with bbdev
 framework
- a python script is provided to make our life easier
- supports execution of tests by parsing Test Vector files
- test Vectors can be added/deleted/modified with no need for
 re-compilation
- various tests can be executed:
 (a) Throughput test
 (b) Offload latency test
 (c) Operation latency test
 (d) Validation test
 (c) Sanity checks

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
2018-01-19 01:44:25 +01:00
Amr Mokhtar
7dc2b15894 bb/null: add null base band device driver
- 'bbdev_null' is a basic pmd that performs a minimalistic
 bbdev operation
- useful for bbdev smoke testing and in measuring the overhead
 introduced by the bbdev library
- 'bbdev_null' pmd is enabled by default

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-19 01:44:25 +01:00
Amr Mokhtar
4935e1e9f7 bbdev: introduce wireless base band device lib
- wireless baseband device (bbdev) library files
- bbdev is tagged as EXPERIMENTAL
- Makefiles and configuration macros definition
- bbdev library is enabled by default
- release notes of the initial version

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-19 01:44:25 +01:00
John Daley
56d0801ca2 maintainers: update for enic
Welcome Hyong Youb Kim.

Signed-off-by: John Daley <johndale@cisco.com>
2018-01-16 18:47:49 +01:00
Wenzhuo Lu
a2b29a7733 net/avf: enable basic Rx Tx
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-01-16 18:47:49 +01:00
Jingjing Wu
e5b2a9e957 net/avf/base: add base code for avf PMD
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-01-16 18:47:49 +01:00
Ajit Khaparde
accd7d508e maintainers: update for bnxt
Remove Stephen Hurd and add Somnath Kotur to maintain bnxt PMD.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-01-16 18:47:49 +01:00
Helin Zhang
5c44006ea1 maintainers: claim maintainership of net-intel sub tree
Claim the maintainership of the sub tree dpdk-next-net-intel,
which covers all the Intel PMDs.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-01-09 15:40:39 +01:00
Shahaf Shuler
7c6790df68 maintainers: update mlx drivers sub tree
Mellanox PMD patches should target the next-net-mlx sub tree.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-01-09 01:48:01 +01:00
Hemant Agrawal
a4862c9e1a license: introduce SPDX identifiers
The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are naturally GPLv2 licensed.

Many of the files in the DPDK source code contain the full text of the
applicable license. For example, most of the BSD-3-Clause files contain a
full copy of the BSD-3-Clause license text.

Including big blocks of License headers in all files blows up the source
code with mostly redundant information.  An additional problem is that even
the same licenses are referred to by a number of slightly varying text
blocks (full, abbreviated, different indentation, line wrapping and/or
white space, with obsolete address information, ...) which makes validation
and automatic processing a nightmare.

To make this easier, DPDK uses of a single line reference to
Unique License Identifiers in source files as defined by the Linux
Foundation's SPDX project https://spdk.org.

Adding license information in this fashion, rather than adding full license
text, can be more efficient for developers; decreases errors; and improves
automated detection of licenses. The current set of valid, predefined SPDX
identifiers is set forth on the SPDX License List at
https://spdx.org/licenses/.

For example, to label a file as subject to the BSD-3-Clause license,
the following text would be used as the top line of the file.

SPDX-License-Identifier: BSD-3-Clause

Note: Any new file contributions in DPDK shall adhere to the above scheme.
It is also recommended to replace or at least amend the existing license
text in the code with SPDX-License-Identifiers.

Any exception to DPDK IP policies shall be approved by DPDK tech board and
DPDK Governing Board. Steps for any exception approval:
1. Mention the appropriate license identifier form SPDX. If the license is
   not listed in SPDX Licenses. It is the submitters responsibiliity to get
   it first listed.
2. Get the required approval from the DPDK Technical Board. Technical board
   may advise the author to check alternate means first. If no other
   alternatives are found and the merit of the contributions are important
   for DPDK's mission, it may decide on such exception with two-thirds vote
   of the members.
3. Technical board then approach Governing board for such limited approval
   for the given contribution only.

Any approvals shall be documented in "licenses/exceptions.txt" with record
dates.

Note: From the legal point of view, this patch is supposed to be only a
change to the textual representation of the license information, but in no
way any change to the actual license terms. With this patch applied, all
files will still be licensed under the same terms they were before.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-01-04 22:41:38 +01:00
Tiwei Bie
91a0eabf00 maintainers: claim responsibility for virtio PMD
Add myself as co-maintainer for virtio driver.

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2017-12-24 10:33:40 +01:00
Jingjing Wu
637ff7d9b2 maintainers: update for i40e
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2017-12-24 10:33:40 +01:00
Tomasz Duszynski
be10015cdd maintainers: update mrvl crypto
Fix typo in email address.

Fixes: 8a61c83af2 ("crypto/mrvl: add mrvl crypto driver")

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2017-12-24 10:33:40 +01:00
Jingjing Wu
b410f08b65 maintainers: update for testpmd
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2017-12-24 10:33:40 +01:00
Marko Kovacevic
6baada7d64 maintainers: claim co-maintainership of docs
Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-12-24 10:33:40 +01:00
Sergio Gonzalez Monroy
175b916916 maintainers: resign from maintenance
I will not be directly working on the DPDK project anymore.

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-12-24 10:33:40 +01:00
Thomas Monjalon
1e447bcc61 maintainers: move NXP bus drivers in related section
A bus maintainers section has been introduced in 17.11.
Let's move all bus drivers in the same place.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-11-15 01:47:06 +01:00
Pablo de Lara
2148d54349 maintainers: update PTP client example
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-11-12 08:10:23 +01:00
Pablo de Lara
d6455a4d29 maintainers: update job stats library
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-11-12 06:17:34 +01:00
Xiao Wang
cb1fa2d246 maintainers: update for fm10k
Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2017-11-12 06:17:34 +01:00
Nelio Laranjeiro
c789a3e9ca maintainers: resign from mlx4 maintenance
I have been a little too busy these past months and could not follow all
the re-work of this PMD.

So the best thing for this PMD would be to move the mlx4 maintenance to
more involved people.

Cc: stable@dpdk.org

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2017-11-12 06:17:34 +01:00
Jianfeng Tan
e5c2a02217 maintainers: claim maintainership of VDEV bus
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
2017-11-12 06:17:34 +01:00
Thomas Monjalon
a0fc322e40 maintainers: fill git trees for net and crypto API
The ethdev API (including rte_flow) is managed in the dpdk-next-net tree.
The crypto API is managed in the dpdk-next-crypto tree.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-11-12 06:17:34 +01:00
Ferruh Yigit
7a62910653 devtools: add script to get maintainers from patch
This is a wrapper to Linux kernel get_maintainer.pl file and only
supports parsing MAINTAINERS file (no git fallback etc..)

Requires DPDK_GETMAINTAINER_PATH devel config option set, please check
devtools/load-devel-config.

DPDK_GETMAINTAINER_PATH should be full path to the get_maintainer.pl
script, like:
DPDK_GETMAINTAINER_PATH=~/linux/scripts/get_maintainer.pl

Can be used individually:
./devtools/get-maintainer.sh <my.patch>

Or via git send-email, to add maintainers automatically:
git send-email --to-cmd ./devtools/get-maintainer.sh \
--cc dev@dpdk.org HEAD -4

Currently there is an ugly workaround to be able to use Linux script out
of the kernel tree, later better method can replace it.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-11-08 00:38:46 +01:00
Jerin Jacob
f0df35313f eventdev: remove experimental label
The eventdev API was introduced in DPDK 17.05 release.
Since then it
- has been reviewed and iterated for 17.08, 17.11 releases
- three drivers were implemented using the API.
- introduced another subsystem like service core and ethdev-eventdev Rx
adapter APIs to abstract the difference between HW and SW
eventdev implementations in a transparent way.
- had extensive use by the app/test-eventdev/ and
examples/eventdev_pipeline_sw_pmd/

I believe the API is now stable and the EXPERIMENTAL label
should be removed.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Gage Eads <gage.eads@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2017-11-07 23:15:00 +01:00
Nikhil Rao
3ffa680994 doc: add event eth Rx adapter guide
Add programmer's guide doc to explain the use of the
Event Ethernet Rx Adapter library.

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-11-07 23:09:45 +01:00
Bernard Iremonger
fdec9301f5 doc: add flow classify guides
The Flow Classify Library Programmers Guide documents
librte_flow_classify.

The Flow Classify Sample Application Guide documents the
flow_classify sample application which is used to
demonstrate the use of the Flow Classify Library,
librte_flow_classify.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-11-07 23:02:12 +01:00
Ori Kam
4a3ef59a10 examples/flow_filtering: add simple demo of flow API
This application shows a simple usage of the
rte_flow API for hardware filtering offloading.

In this demo we are filtering specific IP to
specific target queue, while sending all the
rest of the packets to other queue.

Signed-off-by: Ori Kam <orika@mellanox.com>
2017-11-07 22:40:55 +01:00
Jianfeng Tan
d4a586d29e bus/vdev: move code from EAL into a new driver
Move the vdev bus from lib/librte_eal to drivers/bus.

As the crypto vdev helper function refers to data structure
in rte_vdev.h, so we move those helper function into drivers/bus
too.

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
2017-11-07 16:54:07 +01:00
Gaetan Rivet
3964426e58 maintainers: claim maintainership of PCI library
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-10-26 23:17:31 +02:00
Gaetan Rivet
c752998b5e pci: introduce library and driver
The PCI lib defines the types and methods allowing to use PCI elements.

The PCI bus implements a bus driver for PCI devices by constructing
rte_bus elements using the PCI lib.

Move the relevant code out of the EAL to its expected place.

Libraries, drivers, unit tests and applications are updated to use the
new rte_bus_pci.h header when necessary.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-10-26 23:17:31 +02:00
Akhil Goyal
40ff8c99ea doc: add details of security library
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-10-26 03:11:06 +02:00
Akhil Goyal
c261d1431b security: introduce security API and framework
rte_security library provides APIs for security session
create/free for protocol offload or offloaded crypto
operation to ethernet device.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
2017-10-26 03:10:51 +02:00
Radu Nicolau
44aafbc902 maintainers: update for IPsec application
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2017-10-25 18:10:40 +02:00
Harry van Haaren
cbdd342060 examples/service_cores: add new sample application
This commit adds a new sample app, which showcases the value
of running services. In particular it allows the application
to dynamically schedule services to service-cores.

The sample app itself registers a number of dummy services,
and applies different profiles to them at runtime. Note that
this sample application does not forward any traffic - it
demonstrates advanced usage of the service cores API.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Gage Eads <gage.eads@intel.com>
2017-10-24 23:01:01 +02:00
Ferruh Yigit
be41ac2a33 flow_classify: introduce flow classify library
The following APIs's are implemented in the
librte_flow_classify library:

rte_flow_classifier_create
rte_flow_classifier_free
rte_flow_classifier_query
rte_flow_classify_table_create
rte_flow_classify_table_entry_add
rte_flow_classify_table_entry_delete

The following librte_table API's are used:
f_create to create a table.
f_add to add a rule to the table.
f_del to delete a rule from the table.
f_free to free a table
f_lookup to match packets with the rules.

The library supports counting of IPv4 five tupple packets only,
ie IPv4 UDP, TCP and SCTP packets.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
2017-10-24 22:26:54 +02:00
Bruce Richardson
ce877d8718 eal: use a single version map file
Since the functions exported by DPDK EAL on all OS's should be
identical, we should not need separate function version files for each
OS. Therefore move existing version files to the top-level EAL
directory.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2017-10-24 01:24:22 +02:00
Cristian Dumitrescu
6613ffe138 ethdev: add API for traffic metering and policing
This patch introduces new ethdev generic API for Traffic Metering and
Policing (MTR), which is yet another standard RX offload for Ethernet
devices.

Similar to rte_flow and rte_tm APIs, the configuration of MTR objects is
done in their own namespace (rte_mtr) within the librte_ether library.

Main features:
1. Traffic metering: determine the color for the current packet (green,
   yellow, red) based on history maintained by the MTR object. Supported
   algorithms: srTCM (RFC 2697), trTCM (RFC 2698 and RFC 4115).
2. Policing (per meter output color actions): re-color the packet (keep
   or change the meter output color) or drop the packet.
3. Statistics
4. Capability API

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-10-20 14:09:28 +02:00
Gowrishankar Muthukrishnan
2193b7467f examples/l3fwd: optimize packet processing on powerpc
This patch adds altivec support for lpm packet processing in powerpc.

Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
2017-10-14 00:51:19 +02:00
Pablo de Lara
5ff71fce90 maintainers: sort crypto drivers list
In order to improve consistency, the list of crypto
drivers are sorted alphabetically and the word
PMD is removed from their names.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2017-10-13 23:47:12 +02:00
Jianbo Liu
ea513387eb maintainers: update email for ARM
Update my email to jianbo.liu@arm.com.

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-10-13 23:47:12 +02:00
Pavan Bhagavatula
c7e4a134e7 test: verify bitmap operations
This patch adds a test for verifying the bitmap operations.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2017-10-12 22:31:33 +02:00
Pavan Bhagavatula
bc48589e47 eal: move bitmap from sched library
The librte_sched uses rte_bitmap to manage large arrays of bits in an
optimized method so, moving it to eal/common would allow other libraries
and applications to use it.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2017-10-12 22:31:33 +02:00
Tomasz Duszynski
8a61c83af2 crypto/mrvl: add mrvl crypto driver
Add support for the Marvell Security Crypto Accelerator EIP197.
Driver is based on external, publicly available, Marvell MUSDK
library that provides access to the hardware with minimum overhead
and high performance.

Driver comes with support for the following features:

* Symmetric crypto
* Sym operation chaining
* AES CBC (128)
* AES CBC (192)
* AES CBC (256)
* AES CTR (128)
* AES CTR (192)
* AES CTR (256)
* 3DES CBC
* 3DES CTR
* MD5
* MD5 HMAC
* SHA1
* SHA1 HMAC
* SHA256
* SHA256 HMAC
* SHA384
* SHA384 HMAC
* SHA512
* SHA512 HMAC
* AES GCM (128)

Driver was engineered cooperatively by Semihalf and Marvell teams.

Semihalf:
Jacek Siuda <jck@semihalf.com>
Tomasz Duszynski <tdu@semihalf.com>

Marvell:
Dmitri Epshtein <dima@marvell.com>
Natalie Samsonov <nsamsono@marvell.com>

Signed-off-by: Jacek Siuda <jck@semihalf.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2017-10-12 15:22:39 +01:00
Akhil Goyal
bf551c9675 doc: add NXP DPAA SEC
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-10-12 15:22:39 +01:00
Akhil Goyal
c3e85bdcc6 crypto/dpaa_sec: add crypto driver for NXP DPAA platform
Signed-off-by: Forrest Shi <xuelin.shi@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-12 15:22:39 +01:00
Jasvinder Singh
cc6d421574 net/softnic: add softnic PMD
Add SoftNIC PMD to provide SW fall-back for ethdev APIs.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2017-10-12 01:52:38 +01:00
Tomasz Duszynski
1a286a1139 doc: add mrvl NIC guide
Add documentation for the MRVL NET PMD driver.

Signed-off-by: Jacek Siuda <jck@semihalf.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2017-10-12 01:36:58 +01:00
Tomasz Duszynski
0ddc9b815b net/mrvl: add net PMD skeleton
Add mrvl net pmd driver skeleton providing base for the further
development. Besides the basic functionality QoS configuration is
introduced as well.

Signed-off-by: Jacek Siuda <jck@semihalf.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2017-10-12 01:36:58 +01:00
Jerin Jacob
f820b58966 doc: add octeontx ethdev driver documentation
Adding octeontx ethdev driver documentation and claim octeontx ethdev
driver maintainership.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-10-12 01:36:58 +01:00
Jerin Jacob
3c0511741c net/octeontx: add build infrastructure
Adding bare minimum PMD library and doc build infrastructure.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
2017-10-12 01:36:57 +01:00
Mark Kavanagh
f6010c7655 doc: add GSO programmer's guide
Add programmer's guide doc to explain the design and use of the
GSO library.

Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-10-12 01:36:57 +01:00
Nikhil Rao
fc8030eb8f test/eventdev: add tests for eth Rx adapter APIs
Add unit tests for rte_event_eth_rx_adapter_xxx() APIs

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-10-10 18:34:27 +02:00
Nikhil Rao
dcc806c263 eventdev: add eth Rx adapter API
Add common APIs for configuring packet transfer from ethernet Rx
queues to event devices across HW & SW packet transfer mechanisms.
A detailed description of the adapter is contained in the header's
comments.

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-10-10 18:33:36 +02:00
Jianfeng Tan
f26ab687a7 eal: remove Xen dom0 support
We remove xen-specific code in EAL, including the option --xen-dom0,
memory initialization code, compiling dependency, etc.

Related documents are removed or updated, and bump the eal library
version.

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
2017-10-09 01:54:29 +02:00
Jianfeng Tan
8b3746e8f7 net/xenvirt: remove
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-10-09 01:11:48 +02:00
Jianfeng Tan
1125122ca4 examples/vhost_xen: remove
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-10-09 01:06:39 +02:00
Yipeng Wang
55694b2a9f doc: add membership documentation
This patch adds the documentation for membership library.

Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-10-09 00:23:59 +02:00
Yipeng Wang
0cc67a96e4 test/member: add functional and perf tests
This patch adds functional and performance tests for membership
library.

Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2017-10-09 00:02:45 +02:00
Yipeng Wang
857ed6c68c member: implement main API
Membership library is an extension and generalization of a traditional
filter (for example Bloom Filter and cuckoo filter) structure.
In general, the Membership library is a data structure that provides a
"set-summary" and responds to set-membership queries of whether a
certain element belongs to a set(s). A membership test for an element
will return the set this element belongs to or not-found if the
element is never inserted into the set-summary.

The results of the membership test are not 100% accurate. Certain
false positive or false negative probability could exist. However,
comparing to a "full-blown" complete list of elements, a "set-summary"
is memory efficient and fast on lookup.

This patch adds the main API definition.

Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2017-10-09 00:02:45 +02:00
Santosh Shukla
797aa0a5e2 mempool/octeontx: add HW constants
add HW constants of octeontx fpa mempool device.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-10-08 19:24:04 +02:00
Shreyansh Jain
ff9e112d78 net/dpaa: add NXP DPAA PMD driver skeleton
A skeleton which would be called after bus device scan. It currently
fails to identify the device.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2017-10-06 02:49:50 +02:00
Shreyansh Jain
866c306ff0 mempool/dpaa: support NXP DPAA mempool
This Mempool driver works with DPAA BMan hardware block. This block
manages data buffers in memory, and provides efficient interface with
other hardware and software components for buffer requests.

This patch adds support for BMan. Compilation would be enabled in
subsequent patches.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2017-10-06 02:49:50 +02:00
Shreyansh Jain
e4a880d541 doc: add NXP DPAA PMD documentation
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2017-10-06 02:49:50 +02:00
Shreyansh Jain
919eeaccb2 bus/dpaa: introduce NXP DPAA bus driver skeleton
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 02:49:49 +02:00
Alejandro Lucero
271061b4b9 doc: create different features files for NFP drivers
NFP PMD implement now PF and VF drivers. Although the driver
functionality is the same by now, except for initialization, it
will change with future PF additions.

A new feature is required for describing the firmware upload
capability coming with the NFP PF now, so the PF file will be
updated soon in another patch.

SRIOV is not supported by the PF yet, and it is wrong to include it
as a VF driver feature, so none of the files have such a feature.

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-10-06 02:49:48 +02:00
Nelio Laranjeiro
c28576fa9c maintainers: update mlx5
Promote Yongseok as additional maintainer for mlx5 PMD.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Olga Shern <olgas@mellanox.com>
2017-10-05 17:21:52 +02:00
Thomas Monjalon
03725f7e4b maintainers: add Ferruh for main branch
Ferruh will co-maintain the main branch at git://dpdk.org/dpdk.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-09-22 15:45:00 +02:00
Thomas Monjalon
50207587f9 maintainers: add Yuanhan for stable branches
Yuanhan was maintaining 16.07, 17.02 and 17.05 branches.
He is still doing LTS releases for 16.11.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-09-22 15:42:24 +02:00
Thomas Monjalon
eb13bc4359 maintainers: separate main tree and devtools maintenance
Being the maintainer of devtools is different of
maintaining the main tree.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-09-22 15:42:24 +02:00
Jiayu Hu
2c900d0905 doc: add GRO guide
Add prog_guide doc to explain the design of the GRO library.

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-08-06 14:51:26 +02:00
Shahed Shaikh
7eaeabf9fe doc: list NPAR as supported feature in qede
Existing qede PMD code already supports NPAR feature.
So adding this in "Supported Features" section after testing it with
latest DPDK.

Also, add myself to the list of maintainers of qede PMD

Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Rasesh Mody <rasesh.mody@cavium.com>
2017-08-06 12:42:17 +02:00
David Hunt
340e166a2e maintainers: volunteer to take power management
Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-08-05 10:28:26 +02:00
Thomas Monjalon
6771bd38d1 maintainers: add event ring test to eventdev
This file was not referenced in MAINTAINERS list.
The miss is spotted with devtools/check-maintainers.sh.

As this test file is related to eventdev, they should both
have the same maintainer.

Fixes: 1ee55d7a6e ("test/eventdev: add auto-tests for event ring functions")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-08-04 01:30:03 +02:00
Thomas Monjalon
f3cb39e882 devtools: add script to find duplicated includes
Based on Stephen's idea (originally implemented in a Perl script),
this is a shell script to find duplicated includes in a file.
It looks for all the .c and .h files of the git repository.

It is fast enough because automatically well parallelized.

Suggested-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Keith Wiles <keith.wiles@intel.com>
2017-08-03 12:05:09 +02:00
Jerin Jacob
a2c0df7503 maintainers: update for ARMv8 crypto PMD
Update the maintainers as Zbigniew no longer working for Cavium.
Thanks to Zbigniew for his support and development of
armv8 crypto driver.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-07-30 19:09:13 +02:00
Gaetan Rivet
a46f8d584e net/failsafe: add fail-safe PMD
Introduce the fail-safe poll mode driver initialization and enable its
build infrastructure.

This PMD allows for applications to benefit from true hot-plugging
support without having to implement it.

It intercepts and manages Ethernet device removal events issued by
slave PMDs and re-initializes them transparently when brought back.
It also allows defining a contingency to the removal of a device, by
designating a fail-over device that will take on transmitting operations
if the preferred device is removed.

Applications only see a fail-safe instance, without caring for
underlying activity ensuring their continued operations.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Olga Shern <olgas@mellanox.com>
2017-07-19 16:25:42 +03:00
Changpeng Liu
db75c7af19 examples/vhost_scsi: introduce a new sample app
vhost-user protocol is common to many virtio devices, such as
virtio_net/virtio_scsi/virtio_blk. Since DPDK vhost library
removed the NET specific data structures, the vhost library
is common to other virtio devices, such as virtio-scsi.

Here we introduce a simple memory based block device that
can be presented to Guest VM through vhost-user-scsi-pci
controller. Similar with vhost-net, the sample application
will process the I/Os sent via virt rings.

Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
2017-07-19 22:49:47 +03:00
Harry van Haaren
f038a81e1c service: add unit tests
Add a bunch of unit tests, to ensure that the service
core functions are operating as expected.

As part of these tests a dummy service is registered which
allows identifying if a service callback has been invoked
by using the CPU tick counter. This allows identifying if
functions to start and stop service lcores are actually having
effect.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-07-16 20:35:56 +02:00
Harry van Haaren
21698354c8 service: introduce service cores concept
Add header files, update .map files with new service
functions, and add the service header to the doxygen
for building.

This service header API allows DPDK to use services as
a concept of something that requires CPU cycles. An example
is a PMD that runs in software to schedule events, where a
hardware version exists that does not require a CPU.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-07-16 20:31:50 +02:00
Cristian Dumitrescu
5d109deffa ethdev: add traffic management API
This patch introduces the generic ethdev API for the traffic manager
capability, which includes: hierarchical scheduling, traffic shaping,
congestion management, packet marking.

Main features:
- Exposed as ethdev plugin capability (similar to rte_flow)
- Capability query API per port, per level and per node
- Scheduling algorithms: Strict Priority (SP), Weighed Fair Queuing (WFQ)
- Traffic shaping: single/dual rate, private (per node) and shared (by
  multiple nodes) shapers
- Congestion management for hierarchy leaf nodes: algorithms of tail drop,
  head drop, WRED; private (per node) and shared (by multiple nodes) WRED
  contexts
- Packet marking: IEEE 802.1q (VLAN DEI), IETF RFC 3168 (IPv4/IPv6 ECN for
  TCP and SCTP), IETF RFC 2597 (IPv4 / IPv6 DSCP)

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Balasubramanian Manoharan <balasubramanian.manoharan@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-11 19:38:02 +02:00
Jiayu Hu
e996506a1c lib/gro: add Generic Receive Offload API framework
Generic Receive Offload (GRO) is a widely used SW-based offloading
technique to reduce per-packet processing overhead. It gains
performance by reassembling small packets into large ones. This
patchset is to support GRO in DPDK. To support GRO, this patch
implements a GRO API framework.

To enable more flexibility to applications, DPDK GRO is implemented as
a user library. Applications explicitly use the GRO library to merge
small packets into large ones. DPDK GRO provides two reassembly modes.
One is called lightweight mode, the other is called heavyweight mode.
If applications want to merge packets in a simple way and the number
of packets is relatively small, they can use the lightweight mode.
If applications need more fine-grained controls, they can choose the
heavyweight mode.

rte_gro_reassemble_burst is the main reassembly API which is used in
lightweight mode and processes N packets at a time. For applications,
performing GRO in lightweight mode is simple. They just need to invoke
rte_gro_reassemble_burst. Applications can get GROed packets as soon as
rte_gro_reassemble_burst returns.

rte_gro_reassemble is the main reassembly API which is used in
heavyweight mode and tries to merge N inputted packets with the packets
in GRO reassembly tables. For applications, performing GRO in heavyweight
mode is relatively complicated. Before performing GRO, applications need
to create a GRO context object, which keeps reassembly tables of
desired GRO types, by rte_gro_ctx_create. Then applications can use
rte_gro_reassemble to merge packets. The GROed packets are in the
reassembly tables of the GRO context object. If applications want to get
them, applications need to manually flush them by flush API.

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
2017-07-09 18:14:46 +02:00
Jerin Jacob
f6dda59153 doc: add order queue test in eventdev test guide
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Guduri Prathyusha <gprathyusha@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-07-07 09:35:58 +02:00
Guduri Prathyusha
64b20e7fb5 doc: describe the new eventdev test application
Add documentation to describe usage of eventdev test application and
supported command line arguments.

Signed-off-by: Guduri Prathyusha <gprathyusha@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-07-07 09:35:46 +02:00
Jerin Jacob
6d1729de71 app/testeventdev: introduce dpdk-test-eventdev app
The dpdk-test-eventdev tool is a Data Plane Development Kit (DPDK)
application that allows exercising various eventdev use cases. This
application has a generic framework to add new eventdev based test cases
to verify functionality and measure the performance parameters of DPDK
eventdev devices.

This patch adds the skeleton of the dpdk-test-eventdev application.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-07-07 09:30:46 +02:00
Harry van Haaren
1094ca9668 doc: add SW eventdev pipeline to sample app guide
Add a new entry in the sample app user-guides,
which details the working of the eventdev_pipeline_sw.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-07-07 09:30:24 +02:00
Harry van Haaren
adb5d5486c examples/eventdev_pipeline_sw_pmd: add sample app
This commit adds a sample app for the eventdev library.
The app has been tested with DPDK 17.05-rc2, hence this
release (or later) is recommended.

The sample app showcases a pipeline processing use-case,
with event scheduling and processing defined per stage.
The application receives traffic as normal, with each
packet traversing the pipeline. Once the packet has
been processed by each of the pipeline stages, it is
transmitted again.

The app provides a framework to utilize cores for a single
role or multiple roles. Examples of roles are the RX core,
TX core, Scheduling core (in the case of the event/sw PMD),
and worker cores.

Various flags are available to configure numbers of stages,
cycles of work at each stage, type of scheduling, number of
worker cores, queue depths etc. For a full explaination,
please refer to the documentation.

Signed-off-by: Gage Eads <gage.eads@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-07-07 09:30:12 +02:00
Nipun Gupta
deda99c70d doc: add NXP DPAA2 eventdev guide
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-07-07 09:28:11 +02:00
Nipun Gupta
8cbe85b632 event/dpaa2: add basic build infrastructure
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-07-07 09:24:40 +02:00
Ashwin Sekhar T K
a566400e8b net: implement CRC for ARM64 NEON
Added CRC compute APIs for arm64 utilizing the pmull
capability.

Added new file net_crc_neon.h to hold the arm64 pmull
CRC implementation.

Added wrappers in rte_vect.h for those neon intrinsics
which are not supported in GCC version < 7.

Verified the changes with crc_autotest unit test case

Signed-off-by: Ashwin Sekhar T K <ashwin.sekhar@caviumnetworks.com>
Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
2017-07-04 15:58:45 +02:00
Ashwin Sekhar T K
47e15e618a table: add NEON implementation of LRU strategy 3
* Added new file rte_lru_arm64.h for holding arm64 specific
  definitions
* Verified the changes with table_autotest unit test case

Signed-off-by: Ashwin Sekhar T K <ashwin.sekhar@caviumnetworks.com>
2017-07-03 17:15:47 +02:00
Ashwin Sekhar T K
3f98dd87d2 efd: support lookup using NEON intrinsics
* Added file lib/librte_efd/rte_efd_arm64.h to hold arm64
  specific definitions
* Verified the changes with efd_autotest unit test case

Signed-off-by: Ashwin Sekhar T K <ashwin.sekhar@caviumnetworks.com>
2017-07-03 15:27:32 +02:00
Beilei Xing
46d1f3d1e7 maintainers: update for i40e
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2017-06-30 15:59:34 +02:00
Yuanhan Liu
9d9949d67c maintainers: update email address
Signed-off-by: Yuanhan Liu <yliu@fridaylinux.org>
2017-06-02 16:37:29 +02:00
Ferruh Yigit
757c74baf3 maintainers: add drivers features files
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2017-05-10 23:06:39 +02:00
Akhil Goyal
4bbee28b15 doc: add NXP DPAA2 SEC
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Reviewed-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-04-20 11:32:45 +02:00
Akhil Goyal
623326dded crypto/dpaa2_sec: introduce poll mode driver
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
2017-04-20 11:32:45 +02:00
Thomas Monjalon
dde32aced7 maintainers: update email address
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-04-20 00:41:21 +02:00
Wenzhuo Lu
b087c25bf2 maintainers: update for ixgbe
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-04-20 00:40:39 +02:00
Marcin Wojtas
91e867e019 maintainers: update for ena
Following changes of the ENA driver ownership in Amazon and Semihalf
(Jakub and Jan no longer work in the company), update driver's
maintainers list.

Special thanks to Jan Medala and Jakub Palider for their support and
development.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Acked-by: Jan Medala <jan.medala@outlook.com>
2017-04-20 00:34:27 +02:00
Hemant Agrawal
846a8305f2 doc: add DPAA2 NIC details
This patch adds the NXP dpaa2 architecture and pmd details
in the Network interfaces section.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-04-19 15:37:37 +02:00
Hemant Agrawal
c147eae01c net/dpaa2: introduce NXP DPAA2 driver
add support for fsl-mc bus based dpaa2 pmd driver.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-04-19 15:37:37 +02:00
Hemant Agrawal
5dc43d22b5 mempool/dpaa2: add hardware offloaded mempool
DPAA2 Hardware Mempool handlers allow enqueue/dequeue from NXP's
QBMAN hardware block.
CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS is set to 'dpaa2', if the pool
is enabled.

This memory pool currently supports packet mbuf type blocks only.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-04-19 15:37:37 +02:00
Hemant Agrawal
7e7df6d0a4 bus/fslmc: introduce fsl-mc bus driver
The fslmc bus driver is a rte_bus driver which scans the fsl-mc bus
for NXP DPAA2 SoCs.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-04-19 15:37:37 +02:00
Ed Czeck
1131cbf0fb net/ark: stub PMD for Atomic Rules Arkville
Enable Arkville on supported configurations
Add overview documentation
Minimum driver support for valid compile
Arkville PMD is not supported on ARM or PowerPC at this time

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
Signed-off-by: John Miller <john.miller@atomicrules.com>
2017-04-19 15:37:37 +02:00
Gaetan Rivet
ea9bd00994 test: remove PCI tests
These tests are not suited for the rte_bus PCI implementation anymore.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
2017-04-14 15:23:28 +02:00
Matej Vido
4bf0ab48b5 maintainers: rename section for szedata2 driver
The name of company is listed for other drivers.
Use the company name also for szedata2 driver.
Cards are available from Netcope rather than Cesnet.

Signed-off-by: Matej Vido <vido@cesnet.cz>
2017-04-10 16:42:45 +02:00
Pablo de Lara
59c51be41c examples/dpdk-qat: remove app
Remove DPDK QAT sample app, in favour of the newer applications
that use the cryptodev library: ipsec-gw and l2fwd-crypto,
which has support for Intel QuickAssist devices.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-04-06 00:17:44 +02:00
Keith Wiles
793d3320e2 maintainers: handoff ownership of Tap PMD
Pascal has added many features to the Tap PMD and the code
is now mostly his code. We talked and he suggested I send
the patch to change ownership.

Signed-off-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
2017-04-06 10:02:16 +02:00
Shrikrishna Khare
d3da3159fb maintainers: update for vmxnet3
Taking over DPDK vmxnet3 driver maintainer role.

Signed-off-by: Shrikrishna Khare <skhare@vmware.com>
Acked-by: Yong Wang <yongwang@vmware.com>
2017-04-06 10:02:16 +02:00
Jasvinder Singh
9c77b848b1 test: add CRC computation
This patch provides a set of tests for verifying the functional
correctness of 16-bit and 32-bit CRC APIs.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2017-04-05 23:03:25 +02:00
Jasvinder Singh
986ff526fb net: add CRC computation API
APIs for selecting the architecure specific implementation and computing
the crc (16-bit and 32-bit CRCs) are added. For CRCs calculation, scalar
as well as x86 intrinsic(sse4.2) versions are implemented.

The scalar version is based on generic Look-Up Table(LUT) algorithm,
while x86 intrinsic version uses carry-less multiplication for
fast CRC computation.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2017-04-05 23:03:23 +02:00
Reshma Pattan
5cd3cac9ed latency: added new library for latency stats
Add a library designed to calculate latency statistics and report them
to the application when queried. The library measures minimum, average and
maximum latencies, and jitter in nano seconds. The current implementation
supports global latency stats, i.e. per application stats.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-04-05 18:00:42 +02:00
Remy Horton
2ad7ba9a65 bitrate: add bitrate statistics library
This patch adds a library that calculates peak and average data-rate
statistics. For ethernet devices. These statistics are reported using
the metrics library.

Signed-off-by: Remy Horton <remy.horton@intel.com>
2017-04-05 17:59:43 +02:00
Remy Horton
349950ddb9 metrics: add information metrics library
This patch adds a new information metrics library. This Metrics
library implements a mechanism by which producers can publish
numeric information for later querying by consumers. Metrics
themselves are statistics that are not generated by PMDs, and
hence are not reported via ethdev extended statistics.

Metric information is populated using a push model, where
producers update the values contained within the metric
library by calling an update function on the relevant metrics.
Consumers receive metric information by querying the central
metric data, which is held in shared memory.

Signed-off-by: Remy Horton <remy.horton@intel.com>
2017-04-05 17:58:51 +02:00
Jerin Jacob
8616e6e256 doc: add OCTEONTX ssovf details
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-04-04 19:19:54 +02:00
Harry van Haaren
898f2afda2 maintainers: add eventdev section and claim SW PMD
Add a section for the eventdev PMDs, and note the next-tree.
Claim maintainership of the software eventdev PMD.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-04-04 19:19:52 +02:00
Jerin Jacob
f8f9d233ea test/eventdev: add unit tests
This commit adds basic unit tests for the eventdev API.

commands to run the test app:
./build/app/test -c 2
RTE>>eventdev_common_autotest

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-04-04 19:12:00 +02:00
Jerin Jacob
bbbb929da5 event/skeleton: add skeleton eventdev driver
The skeleton driver facilitates, bootstrapping the new
eventdev driver and creates a platform to verify
the northbound eventdev common code.

The driver supports both VDEV and PCI based eventdev
devices.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-04-04 19:12:00 +02:00
Jerin Jacob
71f2384328 eventdev: introduce event driven programming model
In a polling model, lcores poll ethdev ports and associated
rx queues directly to look for packet. In an event driven model,
by contrast, lcores call the scheduler that selects packets for
them based on programmer-specified criteria. Eventdev library
adds support for event driven programming model, which offer
applications automatic multicore scaling, dynamic load balancing,
pipelining, packet ingress order maintenance and
synchronization services to simplify application packet processing.

By introducing event driven programming model, DPDK can support
both polling and event driven programming models for packet processing,
and applications are free to choose whatever model
(or combination of the two) that best suits their needs.

This patch adds the eventdev specification header file.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-04-04 19:12:00 +02:00
Allain Legacy
0d01bbeebf doc: add AVP
Updates the documentation and feature lists for the AVP PMD device.

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
Signed-off-by: Matt Peters <matt.peters@windriver.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Vincent Jardin <vincent.jardin@6wind.com>
2017-04-04 19:02:45 +02:00
Allain Legacy
9201ec9bd0 net/avp: add base files
This commit introduces the AVP PMD file structure without adding any actual
driver functionality.  Functional blocks will be added in later patches.

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
Signed-off-by: Matt Peters <matt.peters@windriver.com>
Acked-by: Vincent Jardin <vincent.jardin@6wind.com>
2017-04-04 19:02:07 +02:00
Shijith Thotton
7a4d9f6676 doc: add liquidio
Add liquidio driver documentation and update 17.05 release notes.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Derek Chickles <derek.chickles@caviumnetworks.com>
Signed-off-by: Venkat Koppula <venkat.koppula@caviumnetworks.com>
Signed-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com>
Signed-off-by: Mallesham Jatharakonda <mjatharakonda@oneconvergence.com>
2017-04-04 18:59:50 +02:00
Shijith Thotton
de9b91e857 net/liquidio: add skeleton
Add makefile and config file options to compile PMD. Add feature and
version map file. Update maintainers file to claim responsibility.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Derek Chickles <derek.chickles@caviumnetworks.com>
Signed-off-by: Venkat Koppula <venkat.koppula@caviumnetworks.com>
Signed-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com>
Signed-off-by: Mallesham Jatharakonda <mjatharakonda@oneconvergence.com>
2017-04-04 18:59:47 +02:00
Gowrishankar Muthukrishnan
c3def6a872 net/i40e: implement vector PMD for altivec
This patch enables i40e driver in PowerPC along with its altivec
intrinsic support.

Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
2017-04-04 15:52:50 +02:00
Ferruh Yigit
75e2bc54c0 net/kni: add KNI PMD
Add KNI PMD which wraps librte_kni for ease of use.

KNI PMD can be used as any regular PMD to send / receive packets to the
Linux networking stack.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Yong Wang <yongwang@vmware.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Yong Wang <yongwang@vmware.com>
2017-04-04 15:52:50 +02:00
Allain Legacy
c54e7234bc test/cfgfile: add basic unit tests
This commit adds the basic infrastructure for the cfgfile library unit
tests.  It includes success path tests for the most commonly used APIs.
More unit tests will be added later.

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
2017-04-04 16:32:06 +02:00