dpdk.git
7 years agomempool/octeontx: add build and log infrastructure
Santosh Shukla [Sun, 8 Oct 2017 12:40:03 +0000 (18:10 +0530)]
mempool/octeontx: add build and log infrastructure

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agomempool/octeontx: add HW constants
Santosh Shukla [Sun, 8 Oct 2017 12:40:02 +0000 (18:10 +0530)]
mempool/octeontx: add HW constants

add HW constants of octeontx fpa mempool device.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoigb_uio: fix build on arm64 kernel
Hemant Agrawal [Sun, 8 Oct 2017 09:17:32 +0000 (14:47 +0530)]
igb_uio: fix build on arm64 kernel

IGB_UIO compilation recently got enabled for ARM64 by default

The igb_uio compilation against ARM64 based stock 4.x (e.g. 4.13)
kernel is giving compilation warnings:

igb_uio.c: In function ‘igbuio_pci_irqcontrol’:
igb_uio.c:115:25: error: implicit declaration of function
‘irq_get_irq_dat ’ [-Werror=implicit-function-declaration]
  struct irq_data *irq = irq_get_irq_data(udev->info.irq);
                         ^
igb_uio.c:115:25: error: initialization makes pointer from integer without
a cast [-Werror=int-conversion]

Fixes: d196343a258e ("igb_uio: use kernel functions for masking MSI-X")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
7 years agohash: optimize Toeplitz RSS computation
Yangchao Zhou [Tue, 22 Aug 2017 12:02:35 +0000 (20:02 +0800)]
hash: optimize Toeplitz RSS computation

Use rte_bsf32 and fast bit unset operation to optimize the
softrss computation.
The following measurements shows improvement over the default
softrss computation function.

tuple lens old(cycles) new(cycles)
    3        1225         337
    9        3743         992

Signed-off-by: Yangchao Zhou <zhouyates@gmail.com>
Reviewed-by: Vladimir Medvedkin <medvedkinv@gmail.com>
7 years agohash: fix eviction counter
Pablo de Lara [Fri, 22 Sep 2017 04:25:43 +0000 (05:25 +0100)]
hash: fix eviction counter

When adding a new entry in a hash table, there is
a maximum number of evictions that can be
performed. When the counter of these evictions reaches
this maximum, the entry cannot be added, as it is considered
that the algorithm has encountered an infinite loop.

The problem with the current implementation, is that this
counter was declared as a static variable.
If there are multiple threads adding entries in the same table
or in different tables, they should access different counters,
one per core and per table.

Therefore, the variable has been modified to be non-static.

Fixes: 243e93a5046f ("hash: fix unlimited cuckoo path")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoigb_uio: use UIO macro instead of hardcoded value
Tonghao Zhang [Mon, 18 Sep 2017 07:46:57 +0000 (00:46 -0700)]
igb_uio: use UIO macro instead of hardcoded value

This is not bugfix, but it's convenient to help developer
to review and maintain the igbuio codes.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
7 years agoigb_uio: add MSI IRQ mode
Markus Theil [Tue, 5 Sep 2017 12:04:06 +0000 (14:04 +0200)]
igb_uio: add MSI IRQ mode

This patch adds MSI IRQ mode in a way, that should
also work on older kernel versions. The base for my patch
was an attempt to do this in cf705bc36c which was later
reverted in d8ee82745a. Compilation was tested on Linux 3.2,
4.10 and 4.12.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoigb_uio: use kernel functions for masking MSI-X
Markus Theil [Tue, 5 Sep 2017 12:04:05 +0000 (14:04 +0200)]
igb_uio: use kernel functions for masking MSI-X

This patch removes the custom MSI-X mask/unmask code and
uses already existing kernel functions.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoigb_uio: release in exact reverse order
Markus Theil [Tue, 5 Sep 2017 12:04:04 +0000 (14:04 +0200)]
igb_uio: release in exact reverse order

For better readability throughout the module, the destruction
order is changed to the exact inverse construction order.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoigb_uio: fix MSI-X IRQ assignment with new IRQ function
Markus Theil [Tue, 5 Sep 2017 12:04:03 +0000 (14:04 +0200)]
igb_uio: fix MSI-X IRQ assignment with new IRQ function

The patch which introduced the usage of pci_alloc_irq_vectors
came after the patch which switched to non-threaded ISR (f0d1896fa1),
but did not use non-threaded ISR, if pci_alloc_irq_vectors
is used.

Fixes: 99bb58f3adc7 ("igb_uio: switch to new irq function for MSI-X")
Cc: stable@dpdk.org
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoigb_uio: fix IRQ disable on recent kernels
Markus Theil [Tue, 5 Sep 2017 12:04:02 +0000 (14:04 +0200)]
igb_uio: fix IRQ disable on recent kernels

igb_uio already allocates irqs using pci_alloc_irq_vectors on
recent kernels >= 4.8. The interrupt disable code was not
using the corresponding pci_free_irq_vectors, but the also
deprecated pci_disable_msix, before this fix.

Fixes: 99bb58f3adc7 ("igb_uio: switch to new irq function for MSI-X")
Cc: stable@dpdk.org
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoigb_uio: refactor IRQ enable/disable into own functions
Markus Theil [Tue, 5 Sep 2017 12:04:01 +0000 (14:04 +0200)]
igb_uio: refactor IRQ enable/disable into own functions

Interrupt setup code in igb_uio has to deal with multiple
types of interrupts and kernel versions. This patch moves
the setup and teardown code into own functions, to make
it more readable.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Tested-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoapp/procinfo: fix compilation with -O3
Keith Wiles [Tue, 15 Aug 2017 13:53:05 +0000 (08:53 -0500)]
app/procinfo: fix compilation with -O3

When using EXTRA_CFLAGS="-g -O3" in the build the -O3 causes
compiler warnings. Using Ubuntu 17.04 gcc compiler.

Signed-off-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
7 years agokni: fix SLE version detection
Nirmoy Das [Fri, 11 Aug 2017 16:33:14 +0000 (18:33 +0200)]
kni: fix SLE version detection

detect SLE version reverse chronologically as ">=" is being used.

Fixes: 2972254ce163 ("kni: fix build on Suse 12 SP3")
Cc: stable@dpdk.org
Signed-off-by: Nirmoy Das <ndas@suse.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoconfig: enable igb_uio on arm64
Jianbo Liu [Thu, 14 Sep 2017 03:53:47 +0000 (11:53 +0800)]
config: enable igb_uio on arm64

The kernel patch was merged to support pci resource mapping.
https://patchwork.kernel.org/patch/9677441/

So enable igu_uio in the default arm64 configuration.

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agomempool: notify memory area to pool
Santosh Shukla [Sun, 1 Oct 2017 09:29:02 +0000 (14:59 +0530)]
mempool: notify memory area to pool

HW pool manager e.g. Octeontx SoC demands s/w to program start and end
address of pool. Currently, there is no such api in external mempool.
Introducing rte_mempool_ops_register_memory_area api which will let HW(pool
manager) to know when common layer selects hugepage:
For each hugepage - Notify its start/end address to HW pool manager.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomempool: introduce block size alignment flag
Santosh Shukla [Sun, 1 Oct 2017 09:29:01 +0000 (14:59 +0530)]
mempool: introduce block size alignment flag

Some mempool hw like octeontx/fpa block, demands block size
(/total_elem_sz) aligned object start address.

Introducing an MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS flag.
If this flag is set:
- Align object start address(vaddr) to a multiple of total_elt_sz.
- Allocate one additional object. Additional object is needed to make
  sure that requested 'n' object gets correctly populated.

Example:
- Let's say that we get 'x' size of memory chunk from memzone.
- And application has requested 'n' object from mempool.
- Ideally, we start using objects at start address 0 to...(x-block_sz)
  for n obj.
- Not necessarily first object address i.e. 0 is aligned to block_sz.
- So we derive 'offset' value for block_sz alignment purpose i.e..'off'.
- That 'off' makes sure that start address of object is blk_sz aligned.
- Calculating 'off' may end up sacrificing first block_sz area of
  memzone area x. So total number of the object which can fit in the
  pool area is n-1, Which is incorrect behavior.

Therefore we request one additional object (/block_sz area) from memzone
when MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS flag is set.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomempool: detect physical contiguous objects
Santosh Shukla [Sun, 1 Oct 2017 09:29:00 +0000 (14:59 +0530)]
mempool: detect physical contiguous objects

The memory area containing all the objects must be physically
contiguous.
Introducing MEMPOOL_F_CAPA_PHYS_CONTIG flag for such use-case.

The flag useful to detect whether pool area has sufficient space
to fit all objects. If not then return -ENOSPC.
This way, we make sure that all object within a pool is contiguous.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomempool: get capabilities
Santosh Shukla [Sun, 1 Oct 2017 09:28:59 +0000 (14:58 +0530)]
mempool: get capabilities

Allow the mempool driver to advertise his pool capabilities.
For that pupose, an api(rte_mempool_ops_get_capabilities)
and ->get_capabilities() handler has been introduced.
- Upon ->get_capabilities() call, mempool driver will advertise
his capabilities to mempool flags param.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agodoc: remove mempool deprecation notice
Santosh Shukla [Sun, 1 Oct 2017 09:28:58 +0000 (14:58 +0530)]
doc: remove mempool deprecation notice

Removed mempool deprecation notice and
updated change info in release_17.11.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomempool: add flags arg in xmem size and usage
Santosh Shukla [Sun, 1 Oct 2017 09:28:57 +0000 (14:58 +0530)]
mempool: add flags arg in xmem size and usage

xmem_size and xmem_usage need to know the status of mempool flags,
so add 'flags' arg in _xmem_size/usage() api.

Following patch will make use of that.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomempool: change flags from int to unsigned int
Santosh Shukla [Sun, 1 Oct 2017 09:28:56 +0000 (14:58 +0530)]
mempool: change flags from int to unsigned int

mp->flags is int and mempool API writes unsigned int
value in 'flags', so fix the 'flags' data type.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomempool: remove unused flags argument
Santosh Shukla [Sun, 1 Oct 2017 09:28:55 +0000 (14:58 +0530)]
mempool: remove unused flags argument

* Remove redundant 'flags' API description from
  - __mempool_generic_put
  - __mempool_generic_get
  - rte_mempool_generic_put
  - rte_mempool_generic_get

* Remove unused 'flags' argument from
  - rte_mempool_generic_put
  - rte_mempool_generic_get

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agoethdev: get supported mempool per port
Santosh Shukla [Fri, 6 Oct 2017 07:45:30 +0000 (13:15 +0530)]
ethdev: get supported mempool per port

Now that dpdk supports more than one mempool drivers and
each mempool driver works best for specific PMD, example:
- sw ring based mempool for Intel PMD drivers.
- dpaa2 HW mempool manager for dpaa2 PMD driver.
- fpa HW mempool manager for Octeontx PMD driver.

Application would like to know the best mempool handle
for any port.

Introducing rte_eth_dev_pool_ops_supported() API,
which allows PMD driver to advertise
his supported pool capability to the application.

Supported pools are categorized in below priority:-
- Best mempool handle for this port (Highest priority '0')
- Port supports this mempool handle (Priority '1')

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agoeal: allow user to override default mempool driver
Santosh Shukla [Fri, 6 Oct 2017 07:45:29 +0000 (13:15 +0530)]
eal: allow user to override default mempool driver

DPDK has support for both sw and hw mempool and
currently user is limited to use ring_mp_mc pool.
In case user want to use other pool handle,
need to update config RTE_MEMPOOL_OPS_DEFAULT, then
build and run with desired pool handle.

Introducing eal option to override default pool handle.

Now user can override the RTE_MEMPOOL_OPS_DEFAULT by passing
pool handle to eal `--mbuf-pool-ops-name=""`.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomem: honor IOVA mode in malloc virt2phy
Santosh Shukla [Fri, 6 Oct 2017 11:03:46 +0000 (16:33 +0530)]
mem: honor IOVA mode in malloc virt2phy

Check iova mode and accordingly return phy addr.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agomem: honor IOVA mode in virt2phy
Santosh Shukla [Fri, 6 Oct 2017 11:03:45 +0000 (16:33 +0530)]
mem: honor IOVA mode in virt2phy

Check iova mode and accordingly return phy addr.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agovfio: honor IOVA mode before mapping
Santosh Shukla [Fri, 6 Oct 2017 11:03:44 +0000 (16:33 +0530)]
vfio: honor IOVA mode before mapping

Check iova mode and accordingly map iova to pa or va.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoeal: auto detect IOVA mode
Santosh Shukla [Fri, 6 Oct 2017 11:03:43 +0000 (16:33 +0530)]
eal: auto detect IOVA mode

iova autodetection depends on rte_bus_scan result. Result of bus scan will
have updated device_list and each device in that list has its '.kdev' state
updated. That kdrv state used to detect iova mapping mode for that device.

_device_parse() has dependency on rt_bus_scan so,
Below calls moved up in the eal initialization order:
- eal_option_device_parse
- rte_bus_scan

And based on the result of rte_bus_scan_iommu_class - select iova
mapping mode.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoeal: introduce helper API for IOVA mode
Santosh Shukla [Fri, 6 Oct 2017 11:03:42 +0000 (16:33 +0530)]
eal: introduce helper API for IOVA mode

Introducing rte_eal_iova_mode() helper API. This API
used by non-eal library for detecting iova mode.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus: get IOMMU class
Santosh Shukla [Fri, 6 Oct 2017 11:03:41 +0000 (16:33 +0530)]
bus: get IOMMU class

API(rte_bus_get_iommu_class) helps to automatically detect and select
appropriate iova mapping scheme for iommu capable device on that bus.

Algorithm for iova scheme selection for bus:
0. Iterate through bus_list.
1. Collect each bus iova mode value and update into 'mode' var.
2. Mode selection scheme is:
if mode == 0 then iova mode is _pa,
if mode == 1 then iova mode is _pa,
if mode == 2 then iova mode is _va,
if mode == 3 then iova mode ia _pa.

So mode !=2  will be default iova mode (_pa).

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agopci: get IOMMU class on Linux
Santosh Shukla [Fri, 6 Oct 2017 11:03:40 +0000 (16:33 +0530)]
pci: get IOMMU class on Linux

Get iommu class of PCI device on the bus and returns preferred iova
mapping mode for that bus.

Patch also introduces RTE_PCI_DRV_IOVA_AS_VA drv flag.
Flag used when driver needs to operate in iova=va mode.

Algorithm for iova scheme selection for PCI bus:
0. If no device bound then return with RTE_IOVA_DC mapping mode,
else goto 1).
1. Look for device attached to vfio kdrv and has .drv_flag set
to RTE_PCI_DRV_IOVA_AS_VA.
2. Look for any device attached to UIO class of driver.
3. Check for vfio-noiommu mode enabled.

If 2) & 3) is false and 1) is true then select
mapping scheme as RTE_IOVA_VA. Otherwise use default
mapping scheme (RTE_IOVA_PA).

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agopci: get IOMMU class
Santosh Shukla [Fri, 6 Oct 2017 11:03:39 +0000 (16:33 +0530)]
pci: get IOMMU class

Introducing rte_pci_get_iommu_class API which helps to get iommu class
of PCI device on the bus and returns preferred iova mapping mode for
PCI bus.

Patch also adds rte_pci_get_iommu_class definition for:
- bsdapp: api returns default iova mode.
- linuxapp: Has stub implementation, Followup patch has complete
  implementation.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
7 years agopci: export match function
Santosh Shukla [Fri, 6 Oct 2017 11:03:38 +0000 (16:33 +0530)]
pci: export match function

Export rte_pci_match() function as it needed in the followup patch.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agodrivers/dpaa: remove duplicate includes
Thomas Monjalon [Fri, 6 Oct 2017 16:08:29 +0000 (18:08 +0200)]
drivers/dpaa: remove duplicate includes

Fixes: 866c306ff03f ("mempool/dpaa: support NXP DPAA mempool")
Fixes: 37f9b54bd3cf ("net/dpaa: support Tx and Rx queue setup")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoethdev: fix port id type in flow API
Adrien Mazarguil [Fri, 6 Oct 2017 12:32:33 +0000 (14:32 +0200)]
ethdev: fix port id type in flow API

As for the testpmd flow command which uses uint16_t since the beginning by
chance, switch to portid_t for consistency.

Fixes: 14ab03825b1d ("ethdev: increase port id range")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agombuf: increase port initialization value
Zhiyong Yang [Fri, 29 Sep 2017 07:17:27 +0000 (15:17 +0800)]
mbuf: increase port initialization value

In order to support more than 256 virtual ports, the field "port"
in rte_mbuf has been increased to 16 bits. The initialization/reset
value of the field "port" should be changed from 0xff to 0xffff
accordingly.

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agoethdev: increase port id range
Zhiyong Yang [Fri, 29 Sep 2017 07:17:24 +0000 (15:17 +0800)]
ethdev: increase port id range

Extend port_id definition from uint8_t to uint16_t in lib and drivers
data structures, specifically rte_eth_dev_data. Modify the APIs,
drivers and app using port_id at the same time.

Fix some checkpatch issues from the original code and remove some
unnecessary cast operations.

release_17_11 and deprecation docs have been updated in this patch.

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/bonding: remove old ABI
Zhiyong Yang [Fri, 29 Sep 2017 07:17:23 +0000 (15:17 +0800)]
net/bonding: remove old ABI

There are two bonding APIs using ABI versioning, and both have
port_id as parameter. Since we are already breaking ABI, no need
to keep older versions of APIs.

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agobus/fslmc: add devices in sorted order
Shreyansh Jain [Sat, 16 Sep 2017 10:52:41 +0000 (16:22 +0530)]
bus/fslmc: add devices in sorted order

Before this patch, the devices discovered from VFIO layer were
being added in the device list in the order received from directory
scan. This causes an issue in case devices are reordered.

This patch makes all the devices inserted in the device list in
sorted order according to their name.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agobus/fslmc: improve debug log messages
Hemant Agrawal [Sat, 16 Sep 2017 10:52:40 +0000 (16:22 +0530)]
bus/fslmc: improve debug log messages

enable the printing of objects during debuging.
use RTE_LOG to avoid function name printing for object name.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: improve debug messaging
Hemant Agrawal [Sat, 16 Sep 2017 10:52:39 +0000 (16:22 +0530)]
net/dpaa2: improve debug messaging

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: checksum support as per user config
Hemant Agrawal [Sat, 16 Sep 2017 10:52:38 +0000 (16:22 +0530)]
net/dpaa2: checksum support as per user config

Instead of enabling the RX checksum by default, make it
enable only with user ethernet configuration

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: log that VLAN extend offload not supported
Hemant Agrawal [Sat, 16 Sep 2017 10:52:37 +0000 (16:22 +0530)]
net/dpaa2: log that VLAN extend offload not supported

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: fix the Tx handling of non HW pool bufs
Hemant Agrawal [Sat, 16 Sep 2017 10:52:36 +0000 (16:22 +0530)]
net/dpaa2: fix the Tx handling of non HW pool bufs

The current code is sending 8 packet in each internal loop.
In some of the conditions, mbuf is being allocated or freed.
In case of error, the code is returning without taking care of
such buffer. It is better to send already prepared buffer and err
for the current failure only.

Fixes: 9e5f3e6d3658 ("net/dpaa2: handle non-hardware backed buffer pool")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support extra stats
Hemant Agrawal [Sat, 16 Sep 2017 10:52:35 +0000 (16:22 +0530)]
net/dpaa2: support extra stats

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support RSS hash update and get
Hemant Agrawal [Sat, 16 Sep 2017 10:52:34 +0000 (16:22 +0530)]
net/dpaa2: support RSS hash update and get

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: remove RSS restriction with num of queues
Hemant Agrawal [Sat, 16 Sep 2017 10:52:33 +0000 (16:22 +0530)]
net/dpaa2: remove RSS restriction with num of queues

DPAA2 HW does not have such restrictions.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: increase the dist param to 64 bit
Hemant Agrawal [Sat, 16 Sep 2017 10:52:32 +0000 (16:22 +0530)]
net/dpaa2: increase the dist param to 64 bit

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: improve error and logs for flow distribution
Hemant Agrawal [Sat, 16 Sep 2017 10:52:31 +0000 (16:22 +0530)]
net/dpaa2: improve error and logs for flow distribution

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: check physical link state on up cmd
Hemant Agrawal [Sat, 16 Sep 2017 10:52:30 +0000 (16:22 +0530)]
net/dpaa2: check physical link state on up cmd

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: enable link status interrupt
Hemant Agrawal [Sat, 16 Sep 2017 10:52:29 +0000 (16:22 +0530)]
bus/fslmc: enable link status interrupt

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support link status event
Hemant Agrawal [Sat, 16 Sep 2017 10:52:28 +0000 (16:22 +0530)]
net/dpaa2: support link status event

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: cleanup the dpaa2 interrupt support
Hemant Agrawal [Sat, 16 Sep 2017 10:52:27 +0000 (16:22 +0530)]
bus/fslmc: cleanup the dpaa2 interrupt support

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support check of dpbp presence
Hemant Agrawal [Sat, 16 Sep 2017 10:52:26 +0000 (16:22 +0530)]
bus/fslmc: support check of dpbp presence

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support congestion overhead
Hemant Agrawal [Sat, 16 Sep 2017 10:52:25 +0000 (16:22 +0530)]
net/dpaa2: support congestion overhead

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support LX2160 platform
Ashish Jain [Sat, 16 Sep 2017 10:52:24 +0000 (16:22 +0530)]
bus/fslmc: support LX2160 platform

Signed-off-by: Ashish Jain <ashish.jain@nxp.com>
7 years agoconfig/dpaa2: change max lcores to 16
Ashish Jain [Sat, 16 Sep 2017 10:52:23 +0000 (16:22 +0530)]
config/dpaa2: change max lcores to 16

To support new LX2 series

Signed-off-by: Ashish Jain <ashish.jain@nxp.com>
7 years agobus/fslmc: clean the QBMAN support code
Hemant Agrawal [Sat, 16 Sep 2017 10:52:22 +0000 (16:22 +0530)]
bus/fslmc: clean the QBMAN support code

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: cleanup compat file
Hemant Agrawal [Sat, 16 Sep 2017 10:52:21 +0000 (16:22 +0530)]
bus/fslmc: cleanup compat file

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: remove unused funcs and align names in QBMAN
Hemant Agrawal [Sat, 16 Sep 2017 10:52:20 +0000 (16:22 +0530)]
bus/fslmc: remove unused funcs and align names in QBMAN

name alignment for check command and result functions
putting them as separate functions instead of changing the original
functions.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: enhance the QBMAN CENA mode
Haiying Wang [Sat, 16 Sep 2017 10:52:19 +0000 (16:22 +0530)]
bus/fslmc: enhance the QBMAN CENA mode

Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support up to 32 frames in one volatile dequeue
Haiying Wang [Sat, 16 Sep 2017 10:52:18 +0000 (16:22 +0530)]
bus/fslmc: support up to 32 frames in one volatile dequeue

QMan5.0 supports up to 32 frames in one volatile dequeue
command. For the older Qman versions which only support
up to 16 frames, the highest bit in NUMF will be ignored.

Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: add QBMAN API to do enqueue with multiple frames
Haiying Wang [Sat, 16 Sep 2017 10:52:17 +0000 (16:22 +0530)]
bus/fslmc: add QBMAN API to do enqueue with multiple frames

Clean it up and update the prototype.

Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: remove the export for QBMAN version
Hemant Agrawal [Sat, 16 Sep 2017 10:52:16 +0000 (16:22 +0530)]
bus/fslmc: remove the export for QBMAN version

This func is not required to be used outside of the qbman driver.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: replace word copy with memcpy in QBMAN
Haiying Wang [Sat, 16 Sep 2017 10:52:15 +0000 (16:22 +0530)]
bus/fslmc: replace word copy with memcpy in QBMAN

The word_copy is not as efficient as expected, so remove it from
this driver.

Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoapp/test-crypto-perf: fix compilation with -Og
Olivier Matz [Mon, 11 Sep 2017 15:13:33 +0000 (17:13 +0200)]
app/test-crypto-perf: fix compilation with -Og

The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:

  CC cperf_test_verify.o
cperf_test_verify.c: In function ‘cperf_verify_op’:
cperf_test_verify.c:382:5: error: ‘auth’ may be used uninitialized
                           in this function
                           [-Werror=maybe-uninitialized]
  if (auth == 1) {
     ^
cperf_test_verify.c:371:5: error: ‘cipher’ may be used uninitialized
                           in this function
   [-Werror=maybe-uninitialized]
  if (cipher == 1) {
     ^
cperf_test_verify.c:384:11: error: ‘auth_offset’ may be used
    uninitialized in this function
    [-Werror=maybe-uninitialized]
    res += memcmp(data + auth_offset,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
      vector->digest.data,
      ~~~~~~~~~~~~~~~~~~~~
      options->digest_sz);
      ~~~~~~~~~~~~~~~~~~~
cperf_test_verify.c:377:11: error: ‘cipher_offset’ may be used
                            uninitialized in this function
                            [-Werror=maybe-uninitialized]
    res += memcmp(data + cipher_offset,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      vector->plaintext.data,
      ~~~~~~~~~~~~~~~~~~~~~~~
      options->test_buffer_size);
      ~~~~~~~~~~~~~~~~~~~~~~~~~~

There is no default case in the switch statement, so if options->op_type
is an unknown value, the function will use uninitialized values. Fix it
by adding a default.

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoapp/test-crypto-perf: fix memory leak
Olivier Matz [Mon, 11 Sep 2017 15:13:32 +0000 (17:13 +0200)]
app/test-crypto-perf: fix memory leak

data is allocated but never freed.

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agometrics: fix compilation with -Og
Olivier Matz [Mon, 11 Sep 2017 15:13:30 +0000 (17:13 +0200)]
metrics: fix compilation with -Og

The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:

  CC rte_metrics.o
  rte_metrics.c: In function
  ‘rte_metrics_reg_names’: rte_metrics.c:153:22: error: ‘entry’
                           may be used uninitialized in this function
                           [-Werror=maybe-uninitialized]
    entry->idx_next_set = 0;
    ~~~~~~~~~~~~~~~~~~~~^~~

This is a false positive, gcc is not able to see that we always go in
the loop at least once, initializing entry.

Fix the warning by initializing entry to NULL.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agocmdline: fix compilation with -Og
Olivier Matz [Mon, 11 Sep 2017 15:13:29 +0000 (17:13 +0200)]
cmdline: fix compilation with -Og

The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:

  CC cmdline_parse.o
  cmdline_parse.c: In function ‘match_inst’:
  cmdline_parse.c:227:5: error: ‘token_p’ may be used uninitialized in
                         this function [-Werror=maybe-uninitialized]
    if (token_p) {
       ^

This is a false positive, gcc is not able to see that we always go in
the loop at least once, initializing token_p.

Fix the warning by initializing token_p to NULL.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agouio: fix compilation with -Og
Olivier Matz [Mon, 11 Sep 2017 15:13:28 +0000 (17:13 +0200)]
uio: fix compilation with -Og

The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:

  CC eal_pci_uio.o
  eal_pci_uio.c: In function ‘pci_get_uio_de ’:
  eal_pci_uio.c:221:9: error: ‘uio_num’ may be used uninitialized in
                       this function [-Werror=maybe-uninitialized]
  return uio_num;
         ^~~~~~~

This is a false positive: gcc is not able to see that when e != NULL,
uio_num is always set. Fix the warning by initializing uio_num to -1,
and by the way, change the type to int.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agonet/qede: fix compilation with -Og
Olivier Matz [Mon, 11 Sep 2017 15:13:25 +0000 (17:13 +0200)]
net/qede: fix compilation with -Og

The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:

  CC qede_rxtx.o
  qede_rxtx.c: In function ‘qede_start_queues’:
  qede_rxtx.c:797:9: error: ‘rc’ may be used uninitialized in this
                            function [-Werror=maybe-uninitialized]
    return rc;
           ^~

If there is no Rx or Tx queue, rc will not be initialized. Fix it
by initializing rc to -1.

Fixes: 4c4bdadfa9e7 ("net/qede: refactoring multi-queue implementation")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Harish Patil <harish.patil@cavium.com>
7 years agonet/bnxt: fix compilation with -Og
Olivier Matz [Mon, 11 Sep 2017 15:13:24 +0000 (17:13 +0200)]
net/bnxt: fix compilation with -Og

The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:

  CC rte_pmd_bnxt.o
  rte_pmd_bnxt.c: In function ‘rte_pmd_bnxt_set_all_queues_drop_en’:
  rte_pmd_bnxt.c:116:6: error: ‘rc’ may be used uninitialized in this
                        function [-Werror=maybe-uninitialized]
    int rc;
        ^~

This can happen if both bp->nr_vnics and bp->pf.active_vfs are 0.
Fix it by initializing rc to -EINVAL.

Fixes: 49947a13ba9e ("net/bnxt: support Tx loopback, set VF MAC and queues drop")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agonet/mlx5: fix overflow of Rx SW ring
Yongseok Koh [Thu, 5 Oct 2017 21:37:29 +0000 (14:37 -0700)]
net/mlx5: fix overflow of Rx SW ring

If vectorized Rx burst is short of mbufs in replenishment, Rx SW ring can
overflow as the Rx burst handles 4 packets in a loop. This is because the
function fills SW ring and its mbufs first and checks validity of
each completion later. So, there should be some buffer slots at the tail of
the ring to protect mbufs which are already owned by application.

Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")
Cc: stable@dpdk.org
Reported-by: Martin Weiser <martin.weiser@allegro-packets.com>
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
7 years agonet/tap: allow RSS flow action
Matan Azrad [Tue, 3 Oct 2017 14:55:56 +0000 (14:55 +0000)]
net/tap: allow RSS flow action

One of the main identified use cases for the tap PMD is to be used in
combination with the fail-safe PMD as a fallback for a physical device.

Fail-safe is very strict about making sure its current configuration is
properly applied to all slave devices, they get rejected otherwise in
order to maintain a consistent state.

The problem is that tap's RSS support is currently limited to the
default (non-Toeplitz) balancing performed by the kernel on all Rx
queues. While proper RSS support emulation in the tap PMD is a work in
progress, the lack of rte_flow counterpart prevents validation of the
above use case in the meantime.

Given that unlike most PMDs, tap is more about convenience than
performance, support for the RSS action can be temporarily faked with
a minimum amount of code and mostly correct behavior by treating it
like a QUEUE action. Traffic is directed to the first queue of the set.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
7 years agonet/i40e: enable cloud filter for GTP-C and GTP-U
Beilei Xing [Thu, 5 Oct 2017 08:14:57 +0000 (16:14 +0800)]
net/i40e: enable cloud filter for GTP-C and GTP-U

This patch sets TEID of GTP-C and GTP-U as filter type
by replacing existed filter types inner_mac and TUNNEL_KEY.
This configuration will be set when adding GTP-C or
GTP-U filter rules, and it will be invalid only by
NIC core reset.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agonet/i40e: add cloud filter parsing function for GTP
Beilei Xing [Thu, 5 Oct 2017 08:14:56 +0000 (16:14 +0800)]
net/i40e: add cloud filter parsing function for GTP

This patch adds i40e_flow_parse_gtp_filter parsing
function for GTP-C and GTP-U to support cloud filter.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agonet/i40e: add FDIR support for GTP-C and GTP-U
Beilei Xing [Thu, 5 Oct 2017 08:14:55 +0000 (16:14 +0800)]
net/i40e: add FDIR support for GTP-C and GTP-U

This patch adds FDIR support for GTP-C and GTP-U. The
input set of GTP-C and GTP-U is TEID.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Reviewed-by: Seán Harte <seanbh@gmail.com>
7 years agonet/i40e: finish integration FDIR with generic flow API
Beilei Xing [Thu, 5 Oct 2017 08:14:54 +0000 (16:14 +0800)]
net/i40e: finish integration FDIR with generic flow API

rte_eth_fdir_* structures are still used in FDIR functions.
This patch adds i40e private FDIR related structures and
functions to finish integration FDIR with generic flow API.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
7 years agoethdev: add GTP items to support flow API
Beilei Xing [Thu, 5 Oct 2017 08:14:53 +0000 (16:14 +0800)]
ethdev: add GTP items to support flow API

This patch adds GTP, GTPC and GTPU items for
generic flow API, and also exposes item fields
through the flow command.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Reviewed-by: Seán Harte <seanbh@gmail.com>
7 years agonet/i40e: update ptype and pctype info
Beilei Xing [Thu, 5 Oct 2017 08:14:52 +0000 (16:14 +0800)]
net/i40e: update ptype and pctype info

Update new packet type and new pctype info when downloading
profile.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agombuf: support GTP in software packet type parser
Beilei Xing [Thu, 5 Oct 2017 08:14:51 +0000 (16:14 +0800)]
mbuf: support GTP in software packet type parser

Add support of GTP-C and GTP-U tunnels in rte_net_get_ptype().

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Seán Harte <seanbh@gmail.com>
7 years agonet/bnxt: add missing PMD feature list
Ajit Khaparde [Thu, 5 Oct 2017 15:06:45 +0000 (10:06 -0500)]
net/bnxt: add missing PMD feature list

bnxt.ini was not updated correctly. This patch fixes it.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: fix number of MAC addresses for VMDq
Ajit Khaparde [Thu, 5 Oct 2017 15:06:44 +0000 (10:06 -0500)]
net/bnxt: fix number of MAC addresses for VMDq

We were hardcoding the max MAC addresses to 32, while the HW
can support more than that. This was restricting the number of VMDQ
pools that we could support. Use the value obtained from FW instead.

Fixes: 804e746c7b73 ("net/bnxt: add hardware resource manager init code")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: add ntuple filtering support
Ajit Khaparde [Thu, 5 Oct 2017 15:06:43 +0000 (10:06 -0500)]
net/bnxt: add ntuple filtering support

Add support for ntuple filtering.
Only RTE_5TUPLE_FLAGS is supported currently.
RTE_2TUPLE_FLAGS is not supported.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agoethdev: remove unnecessary check for new flow type
Kirill Rybalchenko [Wed, 4 Oct 2017 12:52:13 +0000 (13:52 +0100)]
ethdev: remove unnecessary check for new flow type

Remove unnecessary check for new flow type for rss hash filter update.

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoapp/testpmd: support updating pctype mapping
Kirill Rybalchenko [Wed, 4 Oct 2017 12:52:12 +0000 (13:52 +0100)]
app/testpmd: support updating pctype mapping

Add new commands to manipulate with dynamic flow type to
pctype mapping table in i40e PMD.
Commands allow to print table, modify it and reset to default value.

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/i40e: support updating pctype mapping table
Kirill Rybalchenko [Wed, 4 Oct 2017 12:52:11 +0000 (13:52 +0100)]
net/i40e: support updating pctype mapping table

Add new functions which allow modify, return or reset to default
the contents of flow type to pctype dynamic mapping table.

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/i40e: add dynamic mapping of SW flow types to HW pctypes
Kirill Rybalchenko [Wed, 4 Oct 2017 12:52:10 +0000 (13:52 +0100)]
net/i40e: add dynamic mapping of SW flow types to HW pctypes

Implement dynamic mapping of software flow types to hardware pctypes.
This allows to add new flow types and pctypes for DDP without changing
API of the driver. The mapping table is located in private
data area for particular network adapter and can be individually
modified with set of appropriate functions.

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/i40e: remove unnecessary bit operations
Kirill Rybalchenko [Wed, 4 Oct 2017 12:52:09 +0000 (13:52 +0100)]
net/i40e: remove unnecessary bit operations

Remove unnecessary bit operations in I40E_PFQF_HENA
and I40E_VFQF_HENA registers.

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoapp/testpmd: get ddp profile protocol info
Kirill Rybalchenko [Wed, 4 Oct 2017 14:00:04 +0000 (15:00 +0100)]
app/testpmd: get ddp profile protocol info

Update 'ddp get info' command to display protocols defined in  a profile

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/i40e: get ddp profile protocol info
Kirill Rybalchenko [Wed, 4 Oct 2017 14:00:03 +0000 (15:00 +0100)]
net/i40e: get ddp profile protocol info

This patch adds new package info types to get list of protocols,
pctypes and ptypes defined in a profile

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agodoc: add details on ethdev offloads API
Shahaf Shuler [Wed, 4 Oct 2017 08:18:01 +0000 (11:18 +0300)]
doc: add details on ethdev offloads API

Add the programmers guide details on the new offloads API introduced
by commits:

commit 67a1a59b597f ("ethdev: introduce Rx queue offloads API")
commit f883eb32e2d4 ("ethdev: introduce Tx queue offloads API")

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoethdev: add mbuf fast free Tx offload
Shahaf Shuler [Wed, 4 Oct 2017 08:18:00 +0000 (11:18 +0300)]
ethdev: add mbuf fast free Tx offload

PMDs which expose this offload cap supports optimization for fast release
of mbufs following successful Tx.
Such optimization requires that per queue, all mbufs come from the same
mempool and has refcnt = 1.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoethdev: introduce Tx queue offloads API
Shahaf Shuler [Wed, 4 Oct 2017 08:17:59 +0000 (11:17 +0300)]
ethdev: introduce Tx queue offloads API

Introduce a new API to configure Tx offloads.

In the new API, offloads are divided into per-port and per-queue
offloads. The PMD reports capability for each of them.
Offloads are enabled using the existing DEV_TX_OFFLOAD_* flags.
To enable per-port offload, the offload should be set on both device
configuration and queue configuration. To enable per-queue offload, the
offloads can be set only on queue configuration.

In addition the Tx offloads will be disabled by default and be
enabled per application needs. This will much simplify PMD management of
the different offloads.

Applications should set the ETH_TXQ_FLAGS_IGNORE flag on txq_flags
field in order to move to the new API.

The old Tx offloads API is kept for the meanwhile, in order to enable a
smooth transition for PMDs and application to the new API.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoethdev: introduce Rx queue offloads API
Shahaf Shuler [Wed, 4 Oct 2017 08:17:58 +0000 (11:17 +0300)]
ethdev: introduce Rx queue offloads API

Introduce a new API to configure Rx offloads.

In the new API, offloads are divided into per-port and per-queue
offloads. The PMD reports capability for each of them.
Offloads are enabled using the existing DEV_RX_OFFLOAD_* flags.
To enable per-port offload, the offload should be set on both device
configuration and queue configuration. To enable per-queue offload, the
offloads can be set only on queue configuration.

Applications should set the ignore_offload_bitfield bit on rxmode
structure in order to move to the new API.

The old Rx offloads API is kept for the meanwhile, in order to enable a
smooth transition for PMDs and application to the new API.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agonet/sfc: add device state check to reta update
Ivan Malov [Wed, 4 Oct 2017 07:34:26 +0000 (08:34 +0100)]
net/sfc: add device state check to reta update

The callback must not attempt to program RSS table to the HW
in non-started state; the new table must be remembered and
applied on the next start

Fixes: 32bcfb0a50b1 ("net/sfc: update RSS redirection table")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>
7 years agonet/igb: add i210 flashless device ids
Markus Theil [Mon, 21 Aug 2017 11:47:25 +0000 (13:47 +0200)]
net/igb: add i210 flashless device ids

This patch adds two missing device IDs for Intel i210 chips in flashless
mode. Copper flashless mode was tested on a PC Engines APU2C4 board.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
7 years agoapp/testpmd: port info prints dynamically mapped flow types
Kirill Rybalchenko [Wed, 20 Sep 2017 15:06:27 +0000 (16:06 +0100)]
app/testpmd: port info prints dynamically mapped flow types

Port info command prints information about all supported flow types,
including dynamically mapped ones.

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agonet/bonding: support bifurcated driver in eal
Gowrishankar Muthukrishnan [Wed, 20 Sep 2017 18:04:58 +0000 (23:34 +0530)]
net/bonding: support bifurcated driver in eal

At present, creating bonding devices using --vdev is broken for PMD like
mlx5 as it is neither UIO nor VFIO based and hence PMD driver is unknown
to find_port_id_by_pci_addr(), as below.

testpmd <EAL args> --vdev 'net_bonding0,mode=1,slave=<PCI>,socket_id=0'

PMD: bond_ethdev_parse_slave_port_kvarg(150) - Invalid slave port value
 (<PCI ID>) specified
EAL: Failed to parse slave ports for bonded device net_bonding0

This patch fixes parsing PCI ID from bonding device params by verifying
it in RTE PCI bus, rather than checking dev->kdrv.

Fixes: eac901ce29be ("ethdev: decouple from PCI device")
Cc: stable@dpdk.org
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Reviewed-by: Gaetan Rivet <gaetan.rivet@6wind.com>