dpdk.git
7 years agonet/mrvl: remove DMA buffer size from configuration
Tomasz Duszynski [Tue, 17 Oct 2017 09:49:54 +0000 (11:49 +0200)]
net/mrvl: remove DMA buffer size from configuration

RTE_MRVL_MUSDK_DMA_MEMSIZE can be removed from DPDK configuration
as it's no longer used as a synchronization point for net and crypto
mrvl pmds.

Fixes: 0ddc9b815b11 ("net/mrvl: add net PMD skeleton")

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
7 years agonet/mlx5: fix secondary process Tx error
Xueming Li [Tue, 17 Oct 2017 07:51:17 +0000 (15:51 +0800)]
net/mlx5: fix secondary process Tx error

Uninitialized UAR mmap offset caused secondary tx doorbell mapped to
wrong address. This patch restores missing UAR mmap offset init code
overridden by wrong merge.

Fixes: faf2667fe8d5 ("net/mlx5: separate DPDK from verbs Tx queue objects")

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
7 years agonet/i40e: fix parent when adding TM node
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:40 +0000 (13:50 +0800)]
net/i40e: fix parent when adding TM node

Queue's parent is TC not port. It's wrong to always set
the parent to root.

Fixes: e0ff4d304ccf ("net/ixgbe: support adding TM node")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agonet/ixgbe: fix not supporting NULL TM profile
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:39 +0000 (13:50 +0800)]
net/ixgbe: fix not supporting NULL TM profile

It's by design that APP can add a TM node without shaper
profile. But ixgbe doesn't support it currently.

Fixes: e0ff4d304ccf ("net/ixgbe: support adding TM node")
Fixes: 5713ade69776 ("net/ixgbe: support committing TM hierarchy")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agonet/i40e: fix not supporting NULL TM profile
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:38 +0000 (13:50 +0800)]
net/i40e: fix not supporting NULL TM profile

It's by design that APP can add a TM node without shaper
profile. But i40e doesn't support it currently.

Fixes: 03a249b62bbd ("net/i40e: support adding TM node")
Fixes: cac29c3c00a4 ("net/i40e: support committing TM hierarchy")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agonet/ixgbe: fix TM level capability getting
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:37 +0000 (13:50 +0800)]
net/ixgbe: fix TM level capability getting

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when getting the TM level capability.

Fixes: 596988e193f7 ("net/ixgbe: support getting TM level capability")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/ixgbe: fix TM node parameter checking
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:36 +0000 (13:50 +0800)]
net/ixgbe: fix TM node parameter checking

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when checking the parameters of the TM nodes.

Fixes: e0ff4d304ccf ("net/ixgbe: support adding TM node")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agonet/i40e: fix TM level capability getting
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:35 +0000 (13:50 +0800)]
net/i40e: fix TM level capability getting

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when getting the TM level capability.

Fixes: 0fb1ef1e7930 ("net/i40e: support getting TM level capability")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agonet/i40e: fix TM node parameter checking
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:34 +0000 (13:50 +0800)]
net/i40e: fix TM node parameter checking

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when checking the parameters of the TM nodes.

Fixes: 03a249b62bbd ("net/i40e: support adding TM node")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agonet/mlx5: fix parsing flags of multi-packet send
Yongseok Koh [Mon, 16 Oct 2017 17:41:56 +0000 (10:41 -0700)]
net/mlx5: fix parsing flags of multi-packet send

Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
7 years agodoc: update release notes for mlx5 driver
Shahaf Shuler [Mon, 16 Oct 2017 13:32:00 +0000 (16:32 +0300)]
doc: update release notes for mlx5 driver

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoapp/testpmd: remove useless function declarations
Zhiyong Yang [Mon, 16 Oct 2017 02:30:44 +0000 (10:30 +0800)]
app/testpmd: remove useless function declarations

The four function declarations have no function implementation,
remove them.

Fixes: 0db70a803028 ("app/testpmd: add commands for filters")
Cc: stable@dpdk.org
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agoexamples/ipsec-secgw: support security offload
Akhil Goyal [Wed, 25 Oct 2017 15:07:27 +0000 (20:37 +0530)]
examples/ipsec-secgw: support security offload

Ipsec-secgw application is modified so that it can support
following type of actions for crypto operations
1. full protocol offload using crypto devices.
2. inline ipsec using ethernet devices to perform crypto operations
3. full protocol offload using ethernet devices.
4. non protocol offload

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
7 years agocrypto/dpaa2_sec: support protocol offload IPsec
Akhil Goyal [Wed, 25 Oct 2017 15:07:26 +0000 (20:37 +0530)]
crypto/dpaa2_sec: support protocol offload IPsec

Driver implementation to support rte_security APIs

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agonet/ixgbe: enable inline IPsec
Radu Nicolau [Wed, 25 Oct 2017 15:07:25 +0000 (20:37 +0530)]
net/ixgbe: enable inline IPsec

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
7 years agodoc: add details of security library
Akhil Goyal [Wed, 25 Oct 2017 15:07:24 +0000 (20:37 +0530)]
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>
7 years agosecurity: introduce security API and framework
Akhil Goyal [Wed, 25 Oct 2017 15:07:23 +0000 (20:37 +0530)]
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>
7 years agoethdev: add flow action for crypto
Boris Pismenny [Wed, 25 Oct 2017 15:07:22 +0000 (20:37 +0530)]
ethdev: add flow action for crypto

The crypto action is specified by an application to request
crypto offload for a flow.

Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Reviewed-by: John McNamara <john.mcnamara@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoethdev: support security APIs
Declan Doherty [Wed, 25 Oct 2017 15:07:21 +0000 (20:37 +0530)]
ethdev: support security APIs

rte_flow_action type and ethdev updated to support rte_security
sessions for crypto offload to ethernet device.

Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agombuf: add security crypto flags and fields
Boris Pismenny [Wed, 25 Oct 2017 15:07:20 +0000 (20:37 +0530)]
mbuf: add security crypto flags and fields

Add security crypto flags and update mbuf fields to support
IPsec crypto offload for transmitted packets, and to indicate
crypto result for received packets.

Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agonet: add ESP header to generic flow steering
Boris Pismenny [Wed, 25 Oct 2017 15:07:19 +0000 (20:37 +0530)]
net: add ESP header to generic flow steering

The ESP header is required for IPsec crypto actions.

Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
7 years agocryptodev: support security APIs
Akhil Goyal [Wed, 25 Oct 2017 15:07:18 +0000 (20:37 +0530)]
cryptodev: support security APIs

Security ops are added to crypto device to support
protocol offloaded security operations.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
7 years agocryptodev: extend info get function documentation
Billy O'Mahony [Tue, 24 Oct 2017 14:53:27 +0000 (15:53 +0100)]
cryptodev: extend info get function documentation

Extend the Doxygen documentation of rte_cryptodev_info_get,
to describe how it returns the capabilities of a device.

Signed-off-by: Billy O'Mahony <billy.o.mahony@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
7 years agocryptodev: break dependency on PCI device bus
Declan Doherty [Wed, 25 Oct 2017 12:00:36 +0000 (13:00 +0100)]
cryptodev: break dependency on PCI device bus

Removes any dependency of librte_cryptodev on the PCI device
infrastructure code and removes the functions which were virtual
device specific.

Updates QAT crypto PMD to remove dependencies on rte_cryptodev_pci.h
and replaces those calls with the new bus independent functions.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocryptodev: break dependency on virtual device bus
Declan Doherty [Wed, 25 Oct 2017 12:00:35 +0000 (13:00 +0100)]
cryptodev: break dependency on virtual device bus

Removes any dependency of librte_cryptodev on the virtual device
infrastructure code and removes the functions which were virtual
device specific.

Updates all virtual PMDs to remove dependencies on rte_cryptodev_vdev.h
and replaces those calls with the new bus independent functions.

Due to these changes, the cryptodev ABI version gets bumped.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Tested-by: Tomasz Duszynski <tdu@semihalf.com>
7 years agocryptodev: add APIs to assist PMD initialisation
Declan Doherty [Wed, 25 Oct 2017 12:00:34 +0000 (13:00 +0100)]
cryptodev: add APIs to assist PMD initialisation

Adds new PMD assist functions which are bus independent for driver to
create and destroy new device instances.

Also includes function to parse parameters which can be passed to
driver on device initialisation.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/qat: fix HMAC supported digest sizes
Pablo de Lara [Mon, 23 Oct 2017 10:37:09 +0000 (11:37 +0100)]
crypto/qat: fix HMAC supported digest sizes

For HMAC algorithms (MD5-HMAC, SHAx-HMAC), the supported
digest sizes are not a fixed value, but a range between
1 and the maximum digest size for those algorithms.

Fixes: 26c2e4ad5ad4 ("cryptodev: add capabilities discovery")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
7 years agocryptodev: move user callback initialization
Jan Blunck [Fri, 6 Oct 2017 08:39:32 +0000 (10:39 +0200)]
cryptodev: move user callback initialization

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocryptodev: remove obsolete vdev include
Jan Blunck [Fri, 6 Oct 2017 08:39:31 +0000 (10:39 +0200)]
cryptodev: remove obsolete vdev include

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoexamples/l2fwd-crypto: fix physical address setting
Pablo de Lara [Tue, 24 Oct 2017 10:14:41 +0000 (11:14 +0100)]
examples/l2fwd-crypto: fix physical address setting

For AEAD algorithms, the physical address for the digest
was being set incorrectly.

Fixes: 2661f4fbe93d ("examples/l2fwd-crypto: add AEAD parameters")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoexamples/ipsec-secgw: convert IV to big endian
Aviad Yehezkel [Tue, 24 Oct 2017 12:49:00 +0000 (15:49 +0300)]
examples/ipsec-secgw: convert IV to big endian

According to rfc4106 the IV should be unique and can be implemented
as counter.
The changed was created because putting an analyzer on wire and
comparing packets generated by this application and Linux kernel.
Linux kernel sets IV as BE, so it is worth to do the same for
future debug / comparison.

Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
7 years agoexamples/ipsec-secgw: fix AAD length setting
Aviad Yehezkel [Tue, 24 Oct 2017 12:48:59 +0000 (15:48 +0300)]
examples/ipsec-secgw: fix AAD length setting

Fixes: 501e9c226adf ("examples/ipsec-secgw: add AEAD parameters")
Cc: stable@dpdk.org
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoexamples/ipsec-secgw: fix session creation
Aviad Yehezkel [Tue, 24 Oct 2017 12:48:58 +0000 (15:48 +0300)]
examples/ipsec-secgw: fix session creation

Search for session also with AEAD algorithms.

Fixes: 501e9c226adf ("examples/ipsec-secgw: add AEAD parameters")
Cc: stable@dpdk.org
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoexamples/ipsec-secgw: fix crypto device mapping
Aviad Yehezkel [Tue, 24 Oct 2017 12:48:57 +0000 (15:48 +0300)]
examples/ipsec-secgw: fix crypto device mapping

AEAD algorithms were not being added in the mapping
between algorithms and crypto devices, only cipher and
authentication chained algorithms.

Fixes: 501e9c226adf ("examples/ipsec-secgw: add AEAD parameters")
Cc: stable@dpdk.org
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/dpaa_sec: support out of place buffers
Alok Makhariya [Sun, 22 Oct 2017 19:35:51 +0000 (01:05 +0530)]
crypto/dpaa_sec: support out of place buffers

Enable out of place buffer test cases in dpaa_sec

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agocrypto/dpaa2_sec: support out of place buffers
Alok Makhariya [Sun, 22 Oct 2017 19:35:50 +0000 (01:05 +0530)]
crypto/dpaa2_sec: support out of place buffers

Enable out of place buffer test cases in nxp dpaa2_sec

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agoexamples/ipsec_secgw: support jumbo frames
Radu Nicolau [Fri, 20 Oct 2017 09:30:21 +0000 (10:30 +0100)]
examples/ipsec_secgw: support jumbo frames

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoexamples/ipsec_secgw: switch to new offload API
Radu Nicolau [Fri, 20 Oct 2017 09:30:20 +0000 (10:30 +0100)]
examples/ipsec_secgw: switch to new offload API

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoexamples/ipsec-secgw: fix IPv6 payload length
Tomasz Duszynski [Fri, 13 Oct 2017 08:04:36 +0000 (10:04 +0200)]
examples/ipsec-secgw: fix IPv6 payload length

IPv6 payload length header field should contain only the number of bytes
following the IPv6 header and not the entire packet size.

Fixes: f159e70b0922 ("examples/ipsec-secgw: support transport mode")
Fixes: 906257e965b7 ("examples/ipsec-secgw: support IPv6")
Cc: stable@dpdk.org
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agocryptodev: fix build with -Ofast
Ian Stokes [Tue, 17 Oct 2017 14:15:06 +0000 (15:15 +0100)]
cryptodev: fix build with -Ofast

When compiling with an application that includes rte_cryptodev.h with
Ofast, an error is reported regarding enumeration
RTE_CRYPTO_OP_TYPE_UNDEFINED not handled in switch case in function
 __rte_crypto_op_reset().

Fix this by adding a case for RTE_CRYPTO_OP_TYPE_UNDEFINED.

Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented")
Cc: stable@dpdk.org
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/mrvl: update copyright holders
Tomasz Duszynski [Wed, 18 Oct 2017 08:59:16 +0000 (10:59 +0200)]
crypto/mrvl: update copyright holders

Add Marvell International Ltd. to the copyright holders.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
7 years agoexamples/l2fwd-crypto: fix port id type
Zhiyong Yang [Thu, 19 Oct 2017 02:56:57 +0000 (10:56 +0800)]
examples/l2fwd-crypto: fix port id type

Fix port id issues and keep variables related to port ids in
consistent data type definition "uint16_t".

Remove unnecessary cast in the meanwhile.

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agomaintainers: update for IPsec application
Radu Nicolau [Wed, 18 Oct 2017 12:06:15 +0000 (13:06 +0100)]
maintainers: update for IPsec application

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agocrypto/mrvl: print message if DMA mem is initialized
Tomasz Duszynski [Tue, 17 Oct 2017 07:17:48 +0000 (09:17 +0200)]
crypto/mrvl: print message if DMA mem is initialized

In case MUSDK dma memory has been already initialized by a different
driver (and perhaps do the different size) mv_sys_dma_mem_init()
will return -EEXIST error code.

Printing extra message makes it clear.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
7 years agocrypto/mrvl: fix enabling debug logs
Tomasz Duszynski [Tue, 17 Oct 2017 07:17:47 +0000 (09:17 +0200)]
crypto/mrvl: fix enabling debug logs

Using non-existent configuration option for enabling debug
messages will actually never enable them.

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

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
7 years agocrypto/mrvl: fix driver name in debug log
Tomasz Duszynski [Tue, 17 Oct 2017 07:17:46 +0000 (09:17 +0200)]
crypto/mrvl: fix driver name in debug log

Since CRYPTODEV_NAME_MRVL_CRYPTO_PMD is undefined RTE_STR() expands
it to "CRYPTODEV_NAME_MRVL_CRYPTO_PMD" instead of "crypto_mrvl".

This patch fixes that by using proper name definition in debug logs.

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

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
7 years agoexamples/ipsec-secgw: fix IP version check
Tomasz Duszynski [Fri, 13 Oct 2017 12:50:09 +0000 (14:50 +0200)]
examples/ipsec-secgw: fix IP version check

Since new_ip and ip4 are overlapping buffers copying ip4 over new_ip
using memmove() might overwrite memory at ip4. This could happen if
following condition holds:

ip_hdr_len > sizeof(struct esp_hdr) + sa->iv_len

Thus using ip4 to check ip version is wrong as it might not contain
proper value.

Fixes: f159e70b0922 ("examples/ipsec-secgw: support transport mode")
Cc: stable@dpdk.org
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Reviewed-by: Aviad Yehezkel <aviadye@mellanox.com>
7 years agocrypto/dpaa2_sec: add check for segmented buffer
Alok Makhariya [Fri, 13 Oct 2017 15:38:54 +0000 (21:08 +0530)]
crypto/dpaa2_sec: add check for segmented buffer

The code would crash for segmented buffer if no check.

Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
Cc: stable@dpdk.org
Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agocrypto/dpaa_sec: add check for segmented buffer
Alok Makhariya [Fri, 13 Oct 2017 15:37:30 +0000 (21:07 +0530)]
crypto/dpaa_sec: add check for segmented buffer

The code would crash in case of segmented buffer if no check

Fixes: c3e85bdcc6e6 ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agocrypto/dpaa2_sec: remove ICV memset on decryption side
Alok Makhariya [Thu, 12 Oct 2017 13:07:24 +0000 (18:37 +0530)]
crypto/dpaa2_sec: remove ICV memset on decryption side

Since the packet lengths are modified, it is not required to
explicitly reset the ICV.

Fixes: 13273250eec5 ("crypto/dpaa2_sec: support AES-GCM and CTR")
Fixes: 8d1f3a5d751b ("crypto/dpaa2_sec: support crypto operation")
Cc: stable@dpdk.org
Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agocrypto/dpaa_sec: remove ICV memset on decryption side
Alok Makhariya [Thu, 12 Oct 2017 13:07:23 +0000 (18:37 +0530)]
crypto/dpaa_sec: remove ICV memset on decryption side

Since the packet lengths are modified, it is not required to
explicitly reset the ICV.

Fixes: c3e85bdcc6e6 ("crypto/dpaa_sec: add crypto driver for NXP DPAA platform")

Signed-off-by: Alok Makhariya <alok.makhariya@nxp.com>
7 years agotest: fix build without flow classify
Thomas Monjalon [Wed, 25 Oct 2017 15:17:39 +0000 (17:17 +0200)]
test: fix build without flow classify

The unit test for flow classify should be disabled
if the library is disabled in the configuration.

Fixes: 9c9befea4f57 ("test: add flow classify unit tests")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
7 years agodoc: remove trailing commas in API index
Thomas Monjalon [Wed, 25 Oct 2017 15:18:52 +0000 (17:18 +0200)]
doc: remove trailing commas in API index

Fixes: c711ccb30987 ("ivshmem: remove library and its EAL integration")
Fixes: e8009a077d17 ("doc: group classification libraries in doxygen index")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoservice: allow to disable core check
Harry van Haaren [Wed, 25 Oct 2017 13:25:29 +0000 (14:25 +0100)]
service: allow to disable core check

This commit adds a new function to disable the runtime mapped
service-cores check. This allows an application to take responsibility
of running unmapped services.

This feature is useful in cases like unit tests, where the application
code (or unit test in this case) requires accurate control over when
the service function is called to ensure correct behaviour, and when
an application has an advanced use-case and wishes to manage services
manually.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
7 years agoservice: add function to run on app lcore
Harry van Haaren [Wed, 25 Oct 2017 13:25:28 +0000 (14:25 +0100)]
service: add function to run on app lcore

This commit adds a new function which allows an application lcore
(aka; *not* a dedicated service-lcore) to run a service. This
function is required to allow applications to gradually port
functionality to using services, while still being able to run
ordinary application functions.

This requirement became clear when a patch to the existing
eventdev/pipeline sample app was modified to use a service-core
for scheduling - and that same core should be capable of running
the "worker()" function from the application too.

This patch refactors the existing running code into a smaller
"service_run" function, which can be called by the dedicated
service-core loop, and the newly added function.

[1] http://dpdk.org/ml/archives/dev/2017-October/079876.html

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
7 years agoevent/octeontx: support event Rx adapter
Pavan Nikhilesh [Tue, 24 Oct 2017 13:00:36 +0000 (18:30 +0530)]
event/octeontx: support event Rx adapter

Add Rx adapter queue add and delete API for both generic eth_devices as
well as HW backed eth_octeontx which supports direct event injection to
event device.
The HW injected event needs to be converted into mbuf, previously this
was done in eth_octeontx during rx_burst now it is moved to
event_octeontx as events from Rx adapter are dequeued directly from
event device.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Reviewed-by: Nikhil Rao <nikhil.rao@intel.com>
7 years agonet/octeontx: support event Rx adapter
Pavan Nikhilesh [Tue, 24 Oct 2017 13:00:35 +0000 (18:30 +0530)]
net/octeontx: support event Rx adapter

Add functions to modify and delete qos responsible for mapping eth queues
to event queues used for configuring event Rx adapter.
The mbox functions have been moved from octeontx_pkivf.c to
octeontx_pkivf.h to allow event_octeontx to access them.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
7 years agoevent/dpaa2: improve error handling and logs
Nipun Gupta [Mon, 23 Oct 2017 12:37:06 +0000 (18:07 +0530)]
event/dpaa2: improve error handling and logs

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoevent/dpaa2: support event Rx adapter
Nipun Gupta [Mon, 23 Oct 2017 12:37:05 +0000 (18:07 +0530)]
event/dpaa2: support event Rx adapter

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Reviewed-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agodrivers: add net as dependency for event drivers
Nipun Gupta [Mon, 23 Oct 2017 12:37:04 +0000 (18:07 +0530)]
drivers: add net as dependency for event drivers

With the introduction of eventdev-ethdev RX adapter support in event
device, some of the event device will have dependency on their respective
ethernet drivers. This patch adds the net as a dependency for eventdevs.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agonet/dpaa2: add API for event Rx adapter
Nipun Gupta [Mon, 23 Oct 2017 12:37:03 +0000 (18:07 +0530)]
net/dpaa2: add API for event Rx adapter

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoevent/dpaa2: add queue parameter in processing callback
Nipun Gupta [Mon, 23 Oct 2017 12:37:02 +0000 (18:07 +0530)]
event/dpaa2: add queue parameter in processing callback

For event dequeues for ethernet queues, a dpaa2_queue structure is
required to get the configuration for that ethernet queue. Based on
this configuration the rte_event is to be filled at the ingress side.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoeventdev: add service id get to map file
Nikhil Rao [Tue, 17 Oct 2017 17:47:45 +0000 (23:17 +0530)]
eventdev: add service id get to map file

Add rte_event_eth_rx_adapter_service_id_get to map file. Also order
function names alphabetically.

Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
7 years agoevent/sw: fix get of single xstat value
Harry van Haaren [Tue, 10 Oct 2017 15:47:57 +0000 (16:47 +0100)]
event/sw: fix get of single xstat value

This commit allows the xstats_get() API to return just a single
value based on its ID. Previously, the "ret_n_lt_stats" value
set to 1 ensured a check to take place that the array was larger
than the available xstats.

The xstats_get() API allows retriving of individual stats - hence
this check should be removed - by setting "ret_n_lt_stats" to zero.

Fixes: c1ad03df7ad5 ("event/sw: support xstats")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agoevent/sw: allow forward and release when out of credits
Gage Eads [Fri, 8 Sep 2017 18:07:52 +0000 (13:07 -0500)]
event/sw: allow forward and release when out of credits

When forwarding or releasing events, the operation would fail if the port
has 0 inflight credits and cannot acquire more, or the inflight count
exceeds the port's new event threshold.

This patch fixes that by counting the number of new events in the burst,
and applying the credit and new event threshold checks accordingly.

Signed-off-by: Gage Eads <gage.eads@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agoeventdev: use new event enqueue in Rx adapter
Pavan Nikhilesh [Thu, 12 Oct 2017 18:45:53 +0000 (00:15 +0530)]
eventdev: use new event enqueue in Rx adapter

When event Rx adapter uses software based packet transfer, event op is
always RTE_EVENT_OP_NEW.
By using rte_event_enqueue_new_burst API the underlying event devices
driver can use it as a hint to optimize enqueue operation if possible.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Reviewed-by: Nikhil Rao <nikhil.rao@intel.com>
7 years agobus: skip useless iterations in find function
Gaetan Rivet [Tue, 29 Aug 2017 16:19:48 +0000 (18:19 +0200)]
bus: skip useless iterations in find function

The starting point is known. The iterator can be directly set to it.

The function rte_bus_find can easily be used with a comparison function
always returning True. This would make it a regular bus iterator.

Users doing so would however accomplish such iteration in

   O(N * N/2) = O(N^2)

Which can be avoided.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoexamples/vhost_scsi: fix product id string termination
Jacek Piasecki [Wed, 25 Oct 2017 10:07:18 +0000 (12:07 +0200)]
examples/vhost_scsi: fix product id string termination

Use snprintf instead strncpy to get safe null string termination.
There was possible to get not terminated string after strncpy operation.

Coverity issue: 158631
Fixes: db75c7af19bb ("examples/vhost_scsi: introduce a new sample app")
Cc: stable@dpdk.org
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
7 years agoexamples/kni: check PCI info not NULL before reading
Tomasz Duszynski [Mon, 16 Oct 2017 11:45:47 +0000 (13:45 +0200)]
examples/kni: check PCI info not NULL before reading

Since virtual devices, i.e mrvl net pmd, do not touch pci_dev
dereferencing it will cause segmentation fault as by default
it's set to NULL in rte_eth_dev_info_get().

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoexamples/qos_sched: fix uninitialized config
Jasvinder Singh [Tue, 24 Oct 2017 09:09:57 +0000 (10:09 +0100)]
examples/qos_sched: fix uninitialized config

Fix problem with uninitialized rx/tx deferred_start flags of the struct
rte_eth_rxconf/txconf by initializing with 0 value (deferred start of
the rx/tx queues is turned off). This setting allows device rx/tx
queues to start with rte_eth_dev_start().

Coverity issue: 194999, 195009
Fixes: de3cfa2c9823 ("sched: initial import")
Cc: stable@dpdk.org
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agoexamples/vm_power_manager: add turbo commands to help text
David Hunt [Thu, 19 Oct 2017 09:34:25 +0000 (10:34 +0100)]
examples/vm_power_manager: add turbo commands to help text

Fixes: d191f0853378 ("examples/vm_power_manager: add per-core turbo CLI")

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
7 years agoexamples/vm_power_manager: fix response time
David Hunt [Mon, 23 Oct 2017 15:21:12 +0000 (16:21 +0100)]
examples/vm_power_manager: fix response time

A delay in the loop waiting for the virtio-serial commands in the
vm_power_manager app was causing a lag in the response time. This was
set to 1 second, and has now been changed to 1ms.

Fixes: f14791a8126e ("examples/vm_power_mgr: add policy to channels")

Signed-off-by: David Hunt <david.hunt@intel.com>
7 years agoigb_uio: remove device reset in open
Ferruh Yigit [Fri, 20 Oct 2017 16:55:11 +0000 (17:55 +0100)]
igb_uio: remove device reset in open

Remove device reset during application start, the reset for application
exit still there.

Reset in open removed because of following comments:
1- Device reset not completed when VF driver loaded, which cause VF PMD
   initialization error.
   Adding delay can solve the issue but will increase driver load time.

2- Reset will be issues all devices unconditionally, not very efficient
   way.

Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of device file")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Harish Patil <harish.patil@cavium.com>
Tested-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Tested-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoexamples/service_cores: add new sample application
Harry van Haaren [Thu, 19 Oct 2017 10:31:11 +0000 (11:31 +0100)]
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>
7 years agotest: add flow classify unit tests
Bernard Iremonger [Tue, 24 Oct 2017 17:28:03 +0000 (18:28 +0100)]
test: add flow classify unit tests

Add flow_classify_autotest program.

Set up IPv4 ACL field definitions.
Create table_acl for use by librte_flow_classify API's.
Create an mbuf pool for use by rte_flow_classify_query.

For each of the librte_flow_classify API's:
test with invalid parameters
test with invalid patterns
test with invalid actions
test with valid parameters

Initialise ipv4 udp traffic for use by the udp test for
rte_flow_classifier_run.

Initialise ipv4 tcp traffic for use by the tcp test for
rte_flow_classifier_run.

Initialise ipv4 sctp traffic for use by the sctp test for
rte_flow_classifier_run.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agotest: add packet burst generator functions
Bernard Iremonger [Tue, 24 Oct 2017 17:28:02 +0000 (18:28 +0100)]
test: add packet burst generator functions

add initialize_tcp_header function
add initialize_stcp_header function
add initialize_ipv4_header_proto function
add generate_packet_burst_proto function

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agoexamples/flow_classify: add sample application
Bernard Iremonger [Tue, 24 Oct 2017 17:28:01 +0000 (18:28 +0100)]
examples/flow_classify: add sample application

The flow_classify sample application exercises the following
librte_flow_classify API's:

rte_flow_classifier_create
rte_flow_classifier_query
rte_flow_classify_table_create
rte_flow_classify_table_entry_add
rte_flow_classify_table_entry_delete

It sets up the IPv4 ACL field definitions.
It creates table_acl and adds and deletes rules using the
librte_table API.

It uses a file of IPv4 five tuple rules for input.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agoflow_classify: introduce flow classify library
Ferruh Yigit [Tue, 24 Oct 2017 17:28:00 +0000 (18:28 +0100)]
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>
7 years agolpm6: set errno on creation error
Igor Ryzhov [Tue, 24 Oct 2017 13:29:45 +0000 (16:29 +0300)]
lpm6: set errno on creation error

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agolpm: set errno on creation error
Igor Ryzhov [Tue, 24 Oct 2017 13:28:30 +0000 (16:28 +0300)]
lpm: set errno on creation error

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agonet/virtio: fix Tx packet length stats
Zhiyong Yang [Tue, 24 Oct 2017 03:06:14 +0000 (11:06 +0800)]
net/virtio: fix Tx packet length stats

In the function virtqueue_enqueue_xmit(), when can_push is true,
vtnet_hdr_size is added to pkt_len by calling rte_pktmbuf_prepend.
which is wrong for pkt stats, virtio header length should be subtracted
before calling stats function.

Fixes: 58169a9c8153 ("net/virtio: support Tx checksum offload")
Cc: stable@dpdk.org
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agovhost: fix dequeue offload support
Tiwei Bie [Tue, 24 Oct 2017 03:12:30 +0000 (11:12 +0800)]
vhost: fix dequeue offload support

When offload is enabled, vhost needs to access the first mbuf
to get the packet info, e.g. TCP header. So we couldn't delay
the data copy in this case.

Fixes: e5c494a7a22b ("vhost: batch small guest memory copies")

Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agonet/virtio: check error on setting non block flag
Sebastian Basierski [Tue, 24 Oct 2017 08:17:38 +0000 (10:17 +0200)]
net/virtio: check error on setting non block flag

Report an error message if the flag O_NONBLOCK setting fails,
then return from function.

Coverity issue: 143439
Fixes: ef53b6030039 ("net/virtio-user: support LSC")
Cc: stable@dpdk.org
Signed-off-by: Sebastian Basierski <sebastianx.basierski@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agodoc: add virtio LSC note
Zhiyong Yang [Mon, 16 Oct 2017 05:41:21 +0000 (13:41 +0800)]
doc: add virtio LSC note

Virtio PMD already has supported link status change(lsc), but VM which
must be created by qemu 2.7.0 and above can support it when vhost
user disconnects, since the capability to detect vhost user disconnection
is introduced in qemu 2.7.0. The patch updates doc to let user know that.

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agonet/virtio: flush Rx queues on start
Tiwei Bie [Fri, 20 Oct 2017 02:09:28 +0000 (10:09 +0800)]
net/virtio: flush Rx queues on start

After starting a device, the driver shouldn't deliver the
packets that already existed before the device is started
to applications. Otherwise it will lead to incorrect packet
collection for port state. This patch fixes this issue by
flushing the Rx queues when starting the device.

Fixes: a85786dc816f ("virtio: fix states handling during initialization")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agovhost: fix vring addresses not translated
Maxime Coquelin [Mon, 16 Oct 2017 14:56:27 +0000 (16:56 +0200)]
vhost: fix vring addresses not translated

Commit 3ea7052f4b1b ("vhost: postpone rings addresses translation")
moves rings addresses translation at either vring kick or enable
time, depending on whether protocol features are enabled or not.
This is done not interpret ring information as long as the vring
is not fully initialized.

The problem is that with old QEMU versions, like v2.5, the ring
is enabled before addresses are sent, so addresses are never
translated.

This patch fixes the issue by doing the translation in
VHOST_USER_SET_VRING_ADDR handling if ring is already enabled.

Fixes: 3ea7052f4b1b ("vhost: postpone rings addresses translation")

Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agotable: update library version
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:53 +0000 (16:03 +0100)]
table: update library version

Updated map file to current API and bumped up ABI version.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: update copyright
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:52 +0000 (16:03 +0100)]
table: update copyright

Removed incorrect white spaces and updated year in copyrigh headers.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: apply cosmetic enhancements to API
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:51 +0000 (16:03 +0100)]
table: apply cosmetic enhancements to API

Consolidated hash tables into functional groups.
Minor changes in comments.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agoapps: add mask-based hash functions
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:50 +0000 (16:03 +0100)]
apps: add mask-based hash functions

Introduce mask-based hash functions in hash_func.h.

Propagate their usage in test/test, test/test-pipeline and
examples/ip_pipeline.

Remove the non-mask-based hash function prototype from API (which
was previously used as build workaround).

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework cuckoo hash table
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:49 +0000 (16:03 +0100)]
table: rework cuckoo hash table

Rework for the cuckoo hash table to use the unified parameter
structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework 32-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:48 +0000 (16:03 +0100)]
table: rework 32-byte key hash tables

Rework for the 32-byte key hash tables (both the extendible
bucket and LRU)to use the mask-based hash function and the
unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework 16-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:47 +0000 (16:03 +0100)]
table: rework 16-byte key hash tables

Rework for the 16-byte key hash tables (both the extendible
bucket and LRU)to use the mask-based hash function and the
unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework 8-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:46 +0000 (16:03 +0100)]
table: rework 8-byte key hash tables

Rework for the 8-byte key hash tables (both the extendible
bucket and LRU)to use the mask-based hash function and the
unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework variable size key lru hash table
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:45 +0000 (16:03 +0100)]
table: rework variable size key lru hash table

Rework for the variable size key LRU hash table to use the
mask-based hash function and the unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework variable size key ext hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:44 +0000 (16:03 +0100)]
table: rework variable size key ext hash tables

Rework for the variable size key extendible bucket (EXT) hash
table to use the mask-based hash function and the unified
parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: add unified params struct and mask-based hash func
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:43 +0000 (16:03 +0100)]
table: add unified params struct and mask-based hash func

Add unified parameter structure for all hash tables in librte_table.

Add mask-based hash function prototype, which is input parameter for
all hash tables.

Renamed the non-mask-based hash function prototype and all the calls
to it (to be removed later).

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rename cuckoo hash table ops
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:42 +0000 (16:03 +0100)]
table: rename cuckoo hash table ops

The dosig particle is eliminated from the cuckoo hash ops name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: remove deprecated variable size key lru hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:41 +0000 (16:03 +0100)]
table: remove deprecated variable size key lru hash tables

The non-dosig version of the variable size key Least Recently Used
(LRU) hash tables are removed. The remaining hash tables are renamed
to eliminate the dosig particle from their name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: remove deprecated variable size key ext hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:40 +0000 (16:03 +0100)]
table: remove deprecated variable size key ext hash tables

The non-dosig version of the variable size key extendible bucket
hash tables are removed. The remaining hash tables are renamed to
eliminate the dosig particle from their name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>