dpdk.git
6 years agocrypto/octeontx: add hardware init routine
Ankur Dwivedi [Tue, 9 Oct 2018 09:07:35 +0000 (14:37 +0530)]
crypto/octeontx: add hardware init routine

Adding hardware init routine for OCTEON TX crypto device. A place holder
is added for misc polling routine. That will be added in the further
patches.

Signed-off-by: Ankur Dwivedi <ankur.dwivedi@caviumnetworks.com>
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Signed-off-by: Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>
Signed-off-by: Nithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>
Signed-off-by: Ragothaman Jayaraman <rjayaraman@caviumnetworks.com>
Signed-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com>
Signed-off-by: Tejasree Kondoj <kondoj.tejasree@caviumnetworks.com>
6 years agocrypto/octeontx: add PMD skeleton
Anoob Joseph [Tue, 9 Oct 2018 09:07:34 +0000 (14:37 +0530)]
crypto/octeontx: add PMD skeleton

Adding OCTEON TX crypto PMD skeleton. Updating the maintainers files to
claim responsibility. Also enabling driver by default by adding the
component in common_base.

Signed-off-by: Ankur Dwivedi <ankur.dwivedi@caviumnetworks.com>
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Signed-off-by: Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>
Signed-off-by: Nithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>
Signed-off-by: Ragothaman Jayaraman <rjayaraman@caviumnetworks.com>
Signed-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com>
Signed-off-by: Tejasree Kondoj <kondoj.tejasree@caviumnetworks.com>
6 years agocompressdev: fix compression API description
Tomasz Jozwiak [Fri, 28 Sep 2018 13:14:28 +0000 (15:14 +0200)]
compressdev: fix compression API description

This patch fixes following API descriptions
  -  rte_comp_op_raw_bulk_alloc
  -  rte_comp_op_bulk_alloc

Fixes: 96086db5a369 ("compressdev: add operation management")
Cc: stable@dpdk.org
Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
6 years agocrypto/mvsam: add dynamic logging
Tomasz Duszynski [Mon, 27 Aug 2018 12:22:54 +0000 (14:22 +0200)]
crypto/mvsam: add dynamic logging

Add dynamic logging support to mvsam crypto PMD.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
6 years agocrypto/mvsam: use common initialization
Dmitri Epshtein [Mon, 27 Aug 2018 12:22:53 +0000 (14:22 +0200)]
crypto/mvsam: use common initialization

Use common initialization to reduce boilerplate code.

Signed-off-by: Dmitri Epshtein <dima@marvell.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
6 years agocrypto/mvsam: support scatter gather
Zyta Szpak [Mon, 27 Aug 2018 12:22:52 +0000 (14:22 +0200)]
crypto/mvsam: support scatter gather

The patch adds support for chained source mbufs given
to crypto operations. The crypto engine accepts source buffer
containing a number of segments. The destination buffer
stays the same - always one segment.
On decryption, EIP engine will look for digest at 'auth_icv_offset'
offset in SRC buffer.It must be placed in the last segment and the
offset must be set to reach digest in the last segment.
If application doesn't placed digest in source mbuf, driver try to
copy it to a last segment.

Signed-off-by: Zyta Szpak <zr@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Dmitri Epshtein <dima@marvell.com>
6 years agocrypto/mvsam: add 3DES ECB to the capabilities list
Tomasz Duszynski [Fri, 21 Sep 2018 14:53:59 +0000 (16:53 +0200)]
crypto/mvsam: add 3DES ECB to the capabilities list

3DES in ECB mode is supported by the PMD thus specific
entry should exist in the crypto PMD capabilities list.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
6 years agocrypto/mvsam: support crypto/auth NULL algorithms
Tomasz Duszynski [Fri, 21 Sep 2018 14:53:58 +0000 (16:53 +0200)]
crypto/mvsam: support crypto/auth NULL algorithms

Add support for both cipher and auth NULL algorithms.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
6 years agocrypto/mvsam: support AES ECB
Tomasz Duszynski [Fri, 21 Sep 2018 14:53:57 +0000 (16:53 +0200)]
crypto/mvsam: support AES ECB

Add support for AES128/192/256 in ECB mode.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
6 years agocrypto/mvsam: support HMAC SHA224
Tomasz Duszynski [Fri, 21 Sep 2018 14:53:56 +0000 (16:53 +0200)]
crypto/mvsam: support HMAC SHA224

Add support for the HMAC SHA224 authentication algorithm.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
6 years agocrypto/mvsam: update hash digest sizes
Szymon Sliwa [Fri, 21 Sep 2018 14:53:55 +0000 (16:53 +0200)]
crypto/mvsam: update hash digest sizes

Update hash digest sizes to match hardware capabilities.

Cc: stable@dpdk.org
Signed-off-by: Szymon Sliwa <szs@semihalf.com>
Reviewed-by: Yelena Krivosheev <yelena@marvell.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
6 years agocrypto/mvsam: fix shared library build
Tomasz Duszynski [Fri, 21 Sep 2018 14:53:54 +0000 (16:53 +0200)]
crypto/mvsam: fix shared library build

Add missing rte_kvargs library dependency. Without that
shared library build fails due to unresolved rte_kvargs_* symbols.

Fixes: 25b05a1c806b ("crypto/mvsam: parse max number of sessions")
Cc: stable@dpdk.org
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
6 years agocrypto/mvsam: update features list
Tomasz Duszynski [Tue, 4 Sep 2018 13:59:49 +0000 (15:59 +0200)]
crypto/mvsam: update features list

Add following features to the device's features list
and update documentation accordingly:
* OOP SGL in LB out
* OOP LB in LB out

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
6 years agodoc: update mvsam guide
Dmitri Epshtein [Tue, 4 Sep 2018 13:59:48 +0000 (15:59 +0200)]
doc: update mvsam guide

Update mvsam documentation.

Signed-off-by: Dmitri Epshtein <dima@marvell.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
6 years agoeal: allow probing a device again
Thomas Monjalon [Wed, 19 Sep 2018 23:37:14 +0000 (01:37 +0200)]
eal: allow probing a device again

In the devargs syntax for device representors, it is possible to add
several devices at once: -w dbdf,representor=[0-3]
It will become a more frequent case when introducing wildcards
and ranges in the new devargs syntax.

If a devargs string is provided for probing, and updated with a bigger
range for a new probing, then we do not want it to fail because
part of this range was already probed previously.
There can be new ports to create from an existing rte_device.

That's why the check for an already probed device
is moved as bus responsibility.
In the case of vdev, a global check is kept in insert_vdev(),
assuming that a vdev will always have only one port.
In the case of ifpga and vmbus, already probed devices are checked.
In the case of NXP buses, the probing is done only once (no hotplug),
though a check is added at bus level for consistency.
In the case of PCI, a driver flag is added to allow PMD probing again.
Only the PMD knows the ports attached to one rte_device.

As another consequence of being able to probe in several steps,
the field rte_device.devargs must not be considered as a full
representation of the rte_device, but only the latest probing args.
Anyway, the field rte_device.devargs is used only for probing.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agoeal: add function to query device status
Thomas Monjalon [Tue, 25 Sep 2018 20:55:27 +0000 (22:55 +0200)]
eal: add function to query device status

The function rte_dev_is_probed() is added in order to improve semantic
and enforce proper check of the probing status of a device.

It will answer this rte_device query:
Is it already successfully probed or not?

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agodrivers/bus: move driver assignment to end of probing
Thomas Monjalon [Tue, 25 Sep 2018 20:55:27 +0000 (22:55 +0200)]
drivers/bus: move driver assignment to end of probing

The PCI mapping requires to know the PCI driver to use,
even before the probing is done. That's why the PCI driver is
referenced early inside the PCI device structure. See
commit 1d20a073fa5e ("bus/pci: reference driver structure before mapping")

However the rte_driver does not need to be referenced in rte_device
before the device probing is done.
By moving back this assignment at the end of the device probing,
it becomes possible to make clear the status of a rte_device.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Rosen Xu <rosen.xu@intel.com>
6 years agocompressdev: remove driver name from logs
Thomas Monjalon [Fri, 12 Oct 2018 14:37:28 +0000 (16:37 +0200)]
compressdev: remove driver name from logs

The logs printed by COMPRESSDEV_LOG were prefixed with the driver name.

In order to avoid assigning the driver before the end of the probing,
the driver name is removed from the compressdev library logs.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agocryptodev: remove driver name from logs
Thomas Monjalon [Fri, 12 Oct 2018 14:37:12 +0000 (16:37 +0200)]
cryptodev: remove driver name from logs

The logs printed by CDEV_LOG_* were prefixed with the driver name.

In order to avoid assigning the driver before the end of the probing,
the driver name is removed from the cryptodev library logs.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoethdev: rename memzones allocated for DMA
Thomas Monjalon [Thu, 11 Oct 2018 12:58:49 +0000 (14:58 +0200)]
ethdev: rename memzones allocated for DMA

The helper rte_eth_dma_zone_reserve() is called by PMDs
when probing a new port.
It creates a new memzone with an unique name.
The name of this memzone was using the name of the driver
doing the probe.

In order to avoid assigning the driver before the end of the probing,
the driver name is removed from these memzone names.
The ethdev name (data->name) is not used because it may be too long
and may be not set at this stage of probing.

Syntax of old name: <driver>_<ring>_<port>_<queue>
Syntax of new name: eth_p<port>_q<queue>_<ring>

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/mlx5: remove useless driver name comparison
Thomas Monjalon [Sun, 14 Oct 2018 13:06:54 +0000 (15:06 +0200)]
net/mlx5: remove useless driver name comparison

The function mlx5_dev_to_port_id() is returning all the ports
associated to a rte_device.
It was comparing driver names while already comparing rte_device pointers.
If two devices are the same, they will have the same driver.
So the useless driver name comparison is removed.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agoexamples/multi_process: add hotplug sample
Qi Zhang [Tue, 16 Oct 2018 00:16:32 +0000 (08:16 +0800)]
examples/multi_process: add hotplug sample

The sample code demonstrates device (ethdev only) management
at a multi-process environment. The user can attach/detach a
device on primary process and see it is synced on secondary
process automatically.

How to start?
./hotplug_mp --proc-type=auto

Command Line Example:

>help
>list

/* attach a pci device */
> attach 0000:81:00.0

/* detach the pci device */
> detach 0000:81:00.0

/* attach a vdev af_packet device */
> attach net_af_packet,iface=eth0

/* detach the vdev af_packet device */
> detach net_af_packet

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agodrivers/net: enable device detach on secondary process
Qi Zhang [Tue, 16 Oct 2018 00:16:31 +0000 (08:16 +0800)]
drivers/net: enable device detach on secondary process

With the enabling for hotplug on multi-process,
rte_eth_dev_pci_generic_remove can be used to detach the device from
a secondary process also. But we need to take care of the uninit callback
parameter to make sure it handles the secondary case correctly.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agodrivers/net: enable hotplug on secondary process
Qi Zhang [Tue, 16 Oct 2018 00:16:30 +0000 (08:16 +0800)]
drivers/net: enable hotplug on secondary process

Attach port from secondary should ignore devargs since the private
device is not necessary to support. Also previously, detach port on
a secondary process will mess primary process and cause the same
device can't be attached back again. A secondary process should use
rte_eth_dev_release_port_secondary to release a port.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agoeal: support attach/detach shared device from secondary
Qi Zhang [Tue, 16 Oct 2018 00:16:29 +0000 (08:16 +0800)]
eal: support attach/detach shared device from secondary

This patch cover the multi-process hotplug case when a device
attach/detach request be issued from a secondary process

device attach on secondary:
a) secondary send sync request to the primary.
b) primary receive the request and attach the new device if
   failed goto i).
c) primary forward attach sync request to all secondary.
d) secondary receive the request and attach the device and send a reply.
e) primary check the reply if all success goes to j).
f) primary send attach rollback sync request to all secondary.
g) secondary receive the request and detach the device and send a reply.
h) primary receive the reply and detach device as rollback action.
i) send attach fail to secondary as a reply of step a), goto k).
j) send attach success to secondary as a reply of step a).
k) secondary receive reply and return.

device detach on secondary:
a) secondary send sync request to the primary.
b) primary send detach sync request to all secondary.
c) secondary detach the device and send a reply.
d) primary check the reply if all success goes to g).
e) primary send detach rollback sync request to all secondary.
f) secondary receive the request and attach back device. goto h).
g) primary detach the device if success goto i), else goto e).
h) primary send detach fail to secondary as a reply of step a), goto j).
i) primary send detach success to secondary as a reply of step a).
j) secondary receive reply and return.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agoeal: enable hotplug on multi-process
Qi Zhang [Tue, 16 Oct 2018 00:16:28 +0000 (08:16 +0800)]
eal: enable hotplug on multi-process

We are going to introduce the solution to handle hotplug in
multi-process, it includes the below scenario:

1. Attach a device from the primary
2. Detach a device from the primary
3. Attach a device from a secondary
4. Detach a device from a secondary

In the primary-secondary process model, we assume devices are shared
by default. that means attaches or detaches a device on any process
will broadcast to all other processes through mp channel then device
information will be synchronized on all processes.

Any failure during attaching/detaching process will cause inconsistent
status between processes, so proper rollback action should be considered.

This patch covers the implementation of case 1,2.
Case 3,4 will be implemented on a separate patch.

IPC scenario for Case 1, 2:

attach a device
a) primary attach the new device if failed goto h).
b) primary send attach sync request to all secondary.
c) secondary receive request and attach the device and send a reply.
d) primary check the reply if all success goes to i).
e) primary send attach rollback sync request to all secondary.
f) secondary receive the request and detach the device and send a reply.
g) primary receive the reply and detach device as rollback action.
h) attach fail
i) attach success

detach a device
a) primary send detach sync request to all secondary
b) secondary detach the device and send reply
c) primary check the reply if all success goes to f).
d) primary send detach rollback sync request to all secondary.
e) secondary receive the request and attach back device. goto g)
f) primary detach the device if success goto g), else goto d)
g) detach fail.
h) detach success.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agoethdev: add function to release port in secondary process
Qi Zhang [Tue, 16 Oct 2018 00:16:27 +0000 (08:16 +0800)]
ethdev: add function to release port in secondary process

Add driver API rte_eth_release_port_secondary to support the
case when an ethdev need to be detached on a secondary process.
Local state is set to unused and shared data will not be reset
so the primary process can still use it.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agovfio: fix missing header inclusion
Jerin Jacob [Wed, 17 Oct 2018 05:30:28 +0000 (05:30 +0000)]
vfio: fix missing header inclusion

The following change set introduces HAVE_VFIO_DEV_REQ_INTERFACE
and used in the below files.

drivers/bus/pci/linux/pci_vfio.c
drivers/bus/pci/pci_common.c
lib/librte_eal/linuxapp/eal/eal_interrupts.c

However, Except the first file, the change missed to include
<rte_vfio.h> where HAVE_VFIO_DEV_REQ_INTERFACE defined.
This creates runtime following error on vfio-pci mode and
kernel >= 4.0.0 combination.

EAL: [rte_intr_enable] Unknown handle type of fd 95
EAL: [pci_vfio_enable_notifier]Fail to enable req notifier.
EAL: Fail to unregister req notifier handler.
EAL: Error setting up notifier!
EAL: Requested device 0000:07:00.1 cannot be used

Fixes: cda94419964f ("vfio: fix build with Linux < 4.0")

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
6 years agonet/dpaa2: fix MAC address initialization
Shreyansh Jain [Wed, 17 Oct 2018 06:04:25 +0000 (06:04 +0000)]
net/dpaa2: fix MAC address initialization

Build error:
https://mails.dpdk.org/archives/test-report/2018-October/066840.html

Fixes: c3e0a706fd75 ("net/dpaa2: read hardware provided MAC for DPNI devices")

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/dpaa2: support Rx checksum offload in slow parsing
Hemant Agrawal [Fri, 12 Oct 2018 10:04:26 +0000 (15:34 +0530)]
net/dpaa2: support Rx checksum offload in slow parsing

This is required for new mode for LX2 platform specifically

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: support VLAN TCI population from HW parser
Hemant Agrawal [Fri, 12 Oct 2018 10:04:25 +0000 (15:34 +0530)]
net/dpaa2: support VLAN TCI population from HW parser

This patch adds the support to update the mbuf vlan tci field
from the HW parse results in annotation area.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: enhance queue memory cleanup
Hemant Agrawal [Fri, 12 Oct 2018 10:04:24 +0000 (15:34 +0530)]
net/dpaa2: enhance queue memory cleanup

Earlier the tx queue data was getting cleaned up in close
while rest of the functionality was in un-init.
Now a new func is created to free queue memory.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: optimize fd reset in Tx path
Hemant Agrawal [Fri, 12 Oct 2018 10:04:23 +0000 (15:34 +0530)]
net/dpaa2: optimize fd reset in Tx path

various field of FD structure was getting reset in scattered
fashion. This patch align them in single macro.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: update RSS value in mbuf for LX2
Hemant Agrawal [Fri, 12 Oct 2018 10:04:22 +0000 (15:34 +0530)]
net/dpaa2: update RSS value in mbuf for LX2

This patch copies the flc based hw provided hash results
to the mbuf rss field for lx2 platform only.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: support statistics per queue
Shreyansh Jain [Fri, 12 Oct 2018 10:04:21 +0000 (15:34 +0530)]
net/dpaa2: support statistics per queue

For now, only the packet count stats per queue is available. This is
part of xstats output (though, per queue stats are actually part of
rte_eth_stats basic stats).

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agonet/dpaa2: read hardware provided MAC for DPNI devices
Shreyansh Jain [Fri, 12 Oct 2018 10:04:20 +0000 (15:34 +0530)]
net/dpaa2: read hardware provided MAC for DPNI devices

Firmware would contain pre-configured devices for each DPMAC backing
a DPNI. This patch reads those MAC address when the device is
initialized and sets it. THereafter, it can be changed through API or
commands from testpmd.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agobus/fslmc: disable annotation prefetch for LX2
Nipun Gupta [Fri, 12 Oct 2018 10:04:19 +0000 (15:34 +0530)]
bus/fslmc: disable annotation prefetch for LX2

In case of LX2 we get parse result summary in FD. We do not need to
prefetch and read the annotation to fetch the parse results.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
6 years agobus/fslmc: support 32 enqueues/dequeues for LX2
Nipun Gupta [Fri, 12 Oct 2018 10:04:18 +0000 (15:34 +0530)]
bus/fslmc: support 32 enqueues/dequeues for LX2

LX2 can support upto 32 frames in one hw pull request.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
6 years agobus/fslmc: support memory backed portals with QBMAN 5.0
Nipun Gupta [Fri, 12 Oct 2018 10:04:17 +0000 (15:34 +0530)]
bus/fslmc: support memory backed portals with QBMAN 5.0

This new mode is available in LX2160 platform. The code
dynamically detect the underlying qbman version and choose
the mode at runtime.

Signed-off-by: Youri Querry <youri.querry_1@nxp.com>
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
6 years agocrypto/dpaa2_sec: upgarde mc FW APIs to 10.10.0
Hemant Agrawal [Fri, 12 Oct 2018 10:04:16 +0000 (15:34 +0530)]
crypto/dpaa2_sec: upgarde mc FW APIs to 10.10.0

This also brings in support to configure the queues
for order restoration.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: upgrade dpni to mc FW APIs to 10.10.0
Hemant Agrawal [Fri, 12 Oct 2018 10:04:15 +0000 (15:34 +0530)]
net/dpaa2: upgrade dpni to mc FW APIs to 10.10.0

New feature includes ordering support and link related
enhancements

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agobus/fslmc: upgrade mc FW APIs to 10.10.0
Hemant Agrawal [Fri, 12 Oct 2018 10:04:14 +0000 (15:34 +0530)]
bus/fslmc: upgrade mc FW APIs to 10.10.0

This patch add the support for new Management Complex
Firmware version to 10.1x.x. One of the main changes in
the APIs ordered queue.

The fslmc bus lib ABI will need to be bumped to reflect
the MC FW API and structure changes.

This will also result in bumping of ABI verion of all dependent
libs as they internally use the MC FW APIs and structures.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: fix VLAN filter enablement
Hemant Agrawal [Fri, 12 Oct 2018 10:04:13 +0000 (15:34 +0530)]
net/dpaa2: fix VLAN filter enablement

Enable the VLAN filters only when requested in rx offload.

Fixes: 0ebce6129bc6 ("net/dpaa2: support new ethdev offload APIs")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/dpaa2: fix IOVA conversion for congestion memory
Nipun Gupta [Fri, 12 Oct 2018 10:04:12 +0000 (15:34 +0530)]
net/dpaa2: fix IOVA conversion for congestion memory

The code was incorrectly using the Virtual mode, whent
the IOVA mode was set as Physical.

Fixes: 5ae1edff6895 ("dpaa2: prepare for 32-bit build")
Cc: stable@dpdk.org
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
6 years agofslmc: enable dpaax library
Shreyansh Jain [Mon, 15 Oct 2018 12:01:56 +0000 (17:31 +0530)]
fslmc: enable dpaax library

With this patch, fslmc bus and ethernet devices on this bus
would start using the physical-virtual library interfaces.

This patch impacts mempool/dpaa2, event/dpaa2, net/dpaa2,
raw/dpaa2_cmdif and raw/dpaa2_qdma as they are dependent
on the bus/fslmc and thus impact linkage of libraries.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agodpaa: enable dpaax library
Shreyansh Jain [Mon, 15 Oct 2018 12:01:55 +0000 (17:31 +0530)]
dpaa: enable dpaax library

With this patch, dpaa bus and ethernet devices on this bus
would start using the physical-virtual library interfaces.

This patch impacts mempool/dpaa, event/dpaa and net/dpaa as
they are dependent on the bus/dpaa and thus impact linkage of
libraries.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agocommon/dpaax: add library for PA/VA translation table
Shreyansh Jain [Mon, 15 Oct 2018 12:01:54 +0000 (17:31 +0530)]
common/dpaax: add library for PA/VA translation table

A common library, valid for dpaaX drivers, which is used to maintain
a local copy of PA->VA translations.

In case of physical addressing mode (one of the option for FSLMC, and
only option for DPAA bus), the addresses of descriptors Rx'd are
physical. These need to be converted into equivalent VA for rte_mbuf
and other similar calls.

Using the rte_mem_virt2iova or rte_mem_virt2phy is expensive. This
library is an attempt to reduce the overall cost associated with
this translation.

A small table is maintained, containing continuous entries
representing a continguous physical range. Each of these entries
stores the equivalent VA, which is fed during mempool creation, or
memory allocation/deallocation callbacks.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agodrivers: add common as dependency for bus
Shreyansh Jain [Mon, 15 Oct 2018 12:01:53 +0000 (17:31 +0530)]
drivers: add common as dependency for bus

Prior to this patch, bus and common compiled parallel. But, post this
dependency is created.

This is especially important for the DPAA/FSLMC buses which are going
to use the common/dpaax library.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agobus/fslmc: fix physical addressing check
Shreyansh Jain [Mon, 15 Oct 2018 12:01:52 +0000 (17:31 +0530)]
bus/fslmc: fix physical addressing check

In case RTE_LIBRTE_DPAA2_USE_PHYS_IOVA is enabled, only supported
class is RTE_IOVA_PA.

Fixes: f7768afac101 ("bus/fslmc: support dynamic IOVA")
Cc: stable@dpdk.org
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agoeal/bsd: fix build
Jeff Guo [Tue, 16 Oct 2018 11:41:00 +0000 (19:41 +0800)]
eal/bsd: fix build

When compiling on FreeBSD, a warning/error is thrown for
unused parameter. This patch aim to fix the issue by delete
the useless func definition.

Fixes: 89ecd110524d ("eal: modify device event process function")

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agovfio: fix build with Linux < 4.0
Jeff Guo [Tue, 16 Oct 2018 11:42:33 +0000 (19:42 +0800)]
vfio: fix build with Linux < 4.0

Since the older kernel version do not implement the device request
interface for vfio, so when build on the kernel < v4.0.0, which is
the version begin to add the device request interface, it will
throw the error to show “VFIO_PCI_REQ_IRQ_INDEX” is undeclared.
This patch aim to fix this compile issue by add the macro
“HAVE_VFIO_DEV_REQ_INTERFACE” after checking the kernel version.

Fixes: 0eb8a1c4c786 ("vfio: add request notifier interrupt")
Fixes: c115fd000c32 ("vfio: handle hotplug request notifier")

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agovfio: handle hotplug request notifier
Jeff Guo [Thu, 4 Oct 2018 06:44:43 +0000 (14:44 +0800)]
vfio: handle hotplug request notifier

When device is be hot-unplugged, the vfio kernel module will sent req
notifier to request user space to release the allocated resources at
first. After that, vfio kernel module will detect the device disappear,
and then delete the device in kernel.

This patch aim to add req notifier processing to enable hotplug for vfio.
By enable the req notifier monitoring and register the notifier callback,
when device be hot-unplugged, the hot-unplug handler will be called to
process hotplug for vfio.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agobus/pci: add VFIO request interrupt handle to device
Jeff Guo [Thu, 4 Oct 2018 06:44:42 +0000 (14:44 +0800)]
bus/pci: add VFIO request interrupt handle to device

There are some extended interrupt types in vfio pci device except from the
existing interrupts, such as err and req notifier, they could be useful for
device error monitoring. And these corresponding interrupt handler is
different from the other interrupt handler that register in PMDs, so a new
interrupt handler should be added. This patch will add specific req handler
in generic pci device.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agoeal: modify device event process function
Jeff Guo [Thu, 4 Oct 2018 06:44:41 +0000 (14:44 +0800)]
eal: modify device event process function

This patch modify the device event callback process function name to be
more explicit, change the variable to be const. And more, because not only
eal device helper will use the callback, but also vfio bus will use the
callback to handle hot-unplug, so exposure the API out from private eal.
The bus drivers and eal device would directly use this API to process
device event callback.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agovfio: add request notifier interrupt
Jeff Guo [Thu, 4 Oct 2018 06:44:40 +0000 (14:44 +0800)]
vfio: add request notifier interrupt

Add a new req notifier in eal interrupt for enable vfio hotplug.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agoapp/testpmd: use hotplug failure handler
Jeff Guo [Mon, 15 Oct 2018 11:27:27 +0000 (19:27 +0800)]
app/testpmd: use hotplug failure handler

This patch use testpmd for example, to show how an app smoothly handle
failure when device be hot-unplug. Except that app should enabled the
device event monitor and register the hotplug event’s callback, it also
need enable hotplug handle mechanism before running. Once app detect the
removal event, the hot-unplug callback would be called. It will first stop
the packet forwarding, then stop the port, close the port, and finally
detach the port to clean the device and release the resources.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
6 years agoeal: add failure handling for hot-unplug
Jeff Guo [Mon, 15 Oct 2018 11:27:26 +0000 (19:27 +0800)]
eal: add failure handling for hot-unplug

The mechanism can initially register the sigbus handler after the device
event monitor is enabled. When a sigbus event is captured, it will check
the failure address and accordingly handle the memory failure of the
corresponding device by invoke the hot-unplug handler. It could prevent
the application from crashing when a device is hot-unplugged.

By this patch, users could call below new added APIs to enable/disable
the device hotplug handle mechanism. Note that it just implement the
hot-unplug handler in these functions, the other handler of hotplug, such
as handler for hotplug binding, could be add in the future if need:
  - rte_dev_hotplug_handle_enable
  - rte_dev_hotplug_handle_disable

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobus: add helper to handle sigbus
Jeff Guo [Mon, 15 Oct 2018 11:27:25 +0000 (19:27 +0800)]
bus: add helper to handle sigbus

This patch aims to add a helper to iterate over all buses to find the
relevant bus to handle the sigbus error.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobus/pci: support sigbus handler
Jeff Guo [Mon, 15 Oct 2018 11:27:24 +0000 (19:27 +0800)]
bus/pci: support sigbus handler

This patch implements the ops for the PCI bus sigbus handler. It finds the
PCI device that is being hot-unplugged and calls the relevant ops of the
hot-unplug handler to handle the hot-unplug failure of the device.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobus: add sigbus handler
Jeff Guo [Mon, 15 Oct 2018 11:27:23 +0000 (19:27 +0800)]
bus: add sigbus handler

When a device is hot-unplugged, a sigbus error will occur of the datapath
can still read/write to the device. A handler is required here to capture
the sigbus signal and handle it appropriately.

This patch introduces a bus ops to handle sigbus errors. Each bus can
implement its own case-dependent logic to handle the sigbus errors.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobus/pci: support hot-unplug handler
Jeff Guo [Mon, 15 Oct 2018 11:27:22 +0000 (19:27 +0800)]
bus/pci: support hot-unplug handler

This patch implements the ops to handle hot-unplug on the PCI bus.
For UIO PCI, it could avoids BARs read/write errors by creating a
new dummy memory to remap the memory where the failure is. For VFIO
or other kernel driver, it could specific implement function to handle
hot-unplug case by case.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobus: add hot-unplug handler
Jeff Guo [Mon, 15 Oct 2018 11:27:21 +0000 (19:27 +0800)]
bus: add hot-unplug handler

A hot-unplug failure and app crash can be caused, when a device is
hot-unplugged but the application still try to access the device
by reading or writing from the BARs, which is already invalid but
still not timely be unmap or released.

This patch introduces bus ops to handle hot-unplug failures. Each
bus can implement its own case-dependent logic to handle the failures.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agonet/softnic: support VXLAN flow decap action
Cristian Dumitrescu [Wed, 10 Oct 2018 14:24:36 +0000 (15:24 +0100)]
net/softnic: support VXLAN flow decap action

Add support for ethdev flow API VXLAN decap action.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/softnic: support packet decap action
Cristian Dumitrescu [Wed, 10 Oct 2018 14:12:05 +0000 (15:12 +0100)]
net/softnic: support packet decap action

Add support for packet decap table action.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: support packet decap action
Cristian Dumitrescu [Wed, 10 Oct 2018 13:15:23 +0000 (14:15 +0100)]
examples/ip_pipeline: support packet decap action

Add support for packet decap table action.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agopipeline: add table action for packet decap
Cristian Dumitrescu [Wed, 10 Oct 2018 10:28:06 +0000 (11:28 +0100)]
pipeline: add table action for packet decap

This patch introduces a new table action for packet decapsulation
which removes n bytes from the start of the input packet. The n
is read from the current table entry. The following mbuf fields
are updated by the action: data_off, data_len, pkt_len.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/softnic: support flow mark action
Cristian Dumitrescu [Tue, 9 Oct 2018 15:41:52 +0000 (16:41 +0100)]
net/softnic: support flow mark action

Add support for ethdev flow API mark action.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/softnic: support packet tag action
Cristian Dumitrescu [Tue, 9 Oct 2018 13:44:15 +0000 (14:44 +0100)]
net/softnic: support packet tag action

Add support for packet tag table action.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: support packet tag action
Cristian Dumitrescu [Tue, 9 Oct 2018 13:17:01 +0000 (14:17 +0100)]
examples/ip_pipeline: support packet tag action

Add support for the packet tag table action.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agopipeline: add table action for packet tag
Cristian Dumitrescu [Tue, 9 Oct 2018 13:00:36 +0000 (14:00 +0100)]
pipeline: add table action for packet tag

This patch introduces the packet tag table action which attaches
a 32-bit value (the tag) to the current input packet. The tag is
read from the current table entry. The tag is written into the
mbuf->hash.fdir.hi and the flags PKT_RX_FDIR and PKT_RX_FDIR_ID
are set into mbuf->ol_flags.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/softnic: support flow flush
Reshma Pattan [Mon, 8 Oct 2018 11:19:11 +0000 (12:19 +0100)]
net/softnic: support flow flush

Add rte flow flush api for flushing
all the flows of the port.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/softnic: fix IPv6 endianness
Reshma Pattan [Fri, 28 Sep 2018 16:18:54 +0000 (17:18 +0100)]
net/softnic: fix IPv6 endianness

Fix IPv6 endianness from big endian to CPU order.

Fixes: ee19326a4b ("net/softnic: add command for pipeline table entries")
Cc: stable@dpdk.org
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: fix IPv6 endianness
Reshma Pattan [Fri, 28 Sep 2018 16:18:55 +0000 (17:18 +0100)]
examples/ip_pipeline: fix IPv6 endianness

Fix IPv6 endianness from big endian to CPU order.

Fixes: a3a95b7d58 ("examples/ip_pipeline: add table entry commands")
Cc: stable@dpdk.org
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: add symmetric crypto example
Fan Zhang [Fri, 28 Sep 2018 12:26:14 +0000 (13:26 +0100)]
examples/ip_pipeline: add symmetric crypto example

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: add CLI for symmetric crypto
Fan Zhang [Fri, 28 Sep 2018 12:26:13 +0000 (13:26 +0100)]
examples/ip_pipeline: add CLI for symmetric crypto

This patch updates the cli parsing of ip_pipeline application
with extra symmetric crypto, port, session, and action support.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: support symmetric crypto action
Fan Zhang [Fri, 28 Sep 2018 12:26:12 +0000 (13:26 +0100)]
examples/ip_pipeline: support symmetric crypto action

This patch adds symmetric crypto action support to ip_pipeline
application.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: configure crypto port
Fan Zhang [Fri, 28 Sep 2018 12:26:11 +0000 (13:26 +0100)]
examples/ip_pipeline: configure crypto port

This patch adds symmetric crypto port configuration to ip_pipeline
sample application.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoexamples/ip_pipeline: add cryptodev
Fan Zhang [Fri, 28 Sep 2018 12:26:10 +0000 (13:26 +0100)]
examples/ip_pipeline: add cryptodev

This patch adds symmetric crypto device abstraction to ip_pipeline
sameple application.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agopipeline: add symmetric crypto table action
Fan Zhang [Fri, 28 Sep 2018 12:26:09 +0000 (13:26 +0100)]
pipeline: add symmetric crypto table action

This patch adds the symmetric crypto action support to pipeline
library. The symmetric crypto action works as the shim layer
between pipeline and DPDK cryptodev and is able to interact with
cryptodev with the control path requests such as session
creation/deletion and data path work to assemble the crypto
operations for received packets.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoport: add symmetric crypto
Fan Zhang [Mon, 1 Oct 2018 10:02:23 +0000 (11:02 +0100)]
port: add symmetric crypto

This patch adds the symmetric crypto support to port library.
The crypto port acts as a shim layer to DPDK cryptodev library and
supports in-place crypto workload processing.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/softnic: support flow meter action
Jasvinder Singh [Wed, 26 Sep 2018 13:08:54 +0000 (14:08 +0100)]
net/softnic: support flow meter action

Implement flow rules with meter action.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: read meter statistics
Jasvinder Singh [Wed, 26 Sep 2018 13:08:53 +0000 (14:08 +0100)]
net/softnic: read meter statistics

Implement meter object stats read function.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: update policer actions
Jasvinder Singh [Wed, 26 Sep 2018 13:08:52 +0000 (14:08 +0100)]
net/softnic: update policer actions

Implement meter object policer actions function.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: update DSCP table
Jasvinder Singh [Wed, 26 Sep 2018 13:08:51 +0000 (14:08 +0100)]
net/softnic: update DSCP table

Implement meter object dscp table update.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: update meter profile
Jasvinder Singh [Wed, 26 Sep 2018 13:08:50 +0000 (14:08 +0100)]
net/softnic: update meter profile

Implement meter profile update function

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: destroy meter object
Jasvinder Singh [Wed, 26 Sep 2018 13:08:49 +0000 (14:08 +0100)]
net/softnic: destroy meter object

Implement meter object destroy function.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: create meter object
Jasvinder Singh [Wed, 26 Sep 2018 13:08:48 +0000 (14:08 +0100)]
net/softnic: create meter object

implement meter object create function.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: delete meter profile
Jasvinder Singh [Wed, 26 Sep 2018 13:08:47 +0000 (14:08 +0100)]
net/softnic: delete meter profile

Implement meter profile delete function.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: add meter profile
Jasvinder Singh [Wed, 26 Sep 2018 13:08:46 +0000 (14:08 +0100)]
net/softnic: add meter profile

Implement meter profile add function.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: support metering and policing
Jasvinder Singh [Wed, 26 Sep 2018 13:08:45 +0000 (14:08 +0100)]
net/softnic: support metering and policing

Enable metering and policing support for softnic.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agonet/softnic: parse raw flow item
Reshma Pattan [Tue, 11 Sep 2018 14:20:45 +0000 (15:20 +0100)]
net/softnic: parse raw flow item

Added support for parsing raw flow item.
flow_item_raw_preprocess() is added for the same.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: support flow query
Reshma Pattan [Tue, 11 Sep 2018 14:20:44 +0000 (15:20 +0100)]
net/softnic: support flow query

Added pmd_flow_query() API, for flow query
support.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: support flow destroy
Reshma Pattan [Tue, 11 Sep 2018 14:20:43 +0000 (15:20 +0100)]
net/softnic: support flow destroy

pmd_flow_destroy() API is added to destroy the
created flow.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: support flow create
Reshma Pattan [Tue, 11 Sep 2018 14:20:42 +0000 (15:20 +0100)]
net/softnic: support flow create

pmd_flow_create API is added to support
rte flow create.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: map flow action to table action
Reshma Pattan [Tue, 11 Sep 2018 14:20:41 +0000 (15:20 +0100)]
net/softnic: map flow action to table action

Added validation and mapping of flow rule action
with table action profile.

Added flow_rule_action_get() to do the same.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: map flow match to hash table
Reshma Pattan [Tue, 11 Sep 2018 14:20:40 +0000 (15:20 +0100)]
net/softnic: map flow match to hash table

Support for validating and mapping flow rule with HASH
table match is added.

As part of this, below helper functions are added.
flow_rule_match_hash_get()
hash_key_mask_is_same()

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: parse flow match for ACL table
Reshma Pattan [Tue, 11 Sep 2018 14:20:39 +0000 (15:20 +0100)]
net/softnic: parse flow match for ACL table

Added flow protocol parsing for IPV4/IPV6 and
TCP/UDP/SCTP for ACL table rule match.

Added below helper functions for doing the same.
port_mask_to_range()
ipv6_mask_to_depth()
ipv4_mask_to_depth()
mask_to_depth()

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: map flow match to ACL table
Reshma Pattan [Tue, 11 Sep 2018 14:20:38 +0000 (15:20 +0100)]
net/softnic: map flow match to ACL table

Support for validating and mapping rte flow rule with
ACL table match is added.

As part of this support below utility functions
been added
flow_rule_match_get()
flow_rule_match_acl_get()
flow_item_skip_disabled_protos()
flow_item_proto_preprocess()
flow_item_is_proto()
flow_item_raw_preprocess()

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: support flow validate
Reshma Pattan [Tue, 11 Sep 2018 14:20:37 +0000 (15:20 +0100)]
net/softnic: support flow validate

Start adding flow api operations.

Started with flow validate api support by adding
below basic infrastructure.

flow_pipeline_table_get()
pmd_flow_validate()

Additional flow validate changes will be
added in next patches.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agonet/softnic: get eth device
Reshma Pattan [Tue, 11 Sep 2018 14:20:36 +0000 (15:20 +0100)]
net/softnic: get eth device

Add utility function to get the rte_eth_dev from
a given softnic.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>