[dpdk-dev] Why DPDK is not using compressed TRIE for LPM6 ?

2017-05-24 Thread ankit bhardwaj
Hello All, I was doing some experiments related to LPM6 look up and I have added 20K entries in the table. By looking at the rte_lpm6_lookup() code I found an opportunity to compress the TRIE and there is a significant improvement after compression. Here are my questions: Q1: Why DPDK is not doin

Re: [dpdk-dev] IXBGE VF: link state detection

2017-05-24 Thread Gregory Etelson
Hello, In that case if I need reliable link state detection the only option is PF link verification. Is it so ? Thank you. Regards, Gregory On Thursday, 25 May 2017 08:44:56 IDT Lu, Wenzhuo wrote: Hi Gregory, Yes, I remember i40e kernel driver has the watchdog too. I guess maybe all the NICs

Re: [dpdk-dev] IXBGE VF: link state detection

2017-05-24 Thread Lu, Wenzhuo
Hi Gregory, Yes, I remember i40e kernel driver has the watchdog too. I guess maybe all the NICs’ kernel driver has the similar mechanism. Not sure as I haven’t checked ☺ Best regards Wenzhuo Lu From: Gregory Etelson [mailto:greg...@weka.io] Sent: Thursday, May 25, 2017 1:22 PM To: Lu, Wenzhuo C

Re: [dpdk-dev] IXBGE VF: link state detection

2017-05-24 Thread Gregory Etelson
Hello, What about i40e VF PMD ? Does it have reliable link state monitoring ? Thank you. Regards, Gregory On Thursday, 25 May 2017 08:01:00 IDT Lu, Wenzhuo wrote: Hi Gregory, The mechanism is different. Kernel driver has a watchdog to check the link state periodically. So, it can reset the l

Re: [dpdk-dev] IXBGE VF: link state detection

2017-05-24 Thread Lu, Wenzhuo
Hi Gregory, The mechanism is different. Kernel driver has a watchdog to check the link state periodically. So, it can reset the link automatically. Best regards Wenzhuo Lu From: Gregory Etelson [mailto:greg...@weka.io] Sent: Thursday, May 25, 2017 11:45 AM To: Lu, Wenzhuo Cc: dev@dpdk.org; us..

Re: [dpdk-dev] IXBGE VF: link state detection

2017-05-24 Thread Gregory Etelson
Hello, After the revert, my environment reproduced link up detection failure almost immediately With the patch the fault is rare. Regards, Gregory On Wednesday, 24 May 2017 16:26:47 IDT Olivier Matz wrote: > Hi Gregory, > > On Wed, 24 May 2017 12:50:19 +0300, Gregory Etelson wrote: > > Hello,

Re: [dpdk-dev] IXBGE VF: link state detection

2017-05-24 Thread Gregory Etelson
Hello, In this case I would expect ixgbe VF bound to kernel driver also fail on link up detection In my tests, VFs bound to kernel drivers operate correctly. Regards, Gregory On Thursday, 25 May 2017 03:56:34 IDT Lu, Wenzhuo wrote: Hi Gregory, After you turned the port donw/up, PF will re-init

[dpdk-dev] [dpdk-announce] OPNFV Summit Beijing - DPDK and FD.io MiniSummit - Discount Code

2017-05-24 Thread St Leger, Jim
DPDK Community: If you're heading to OPNFV Summit in Beijing next month or thinking of heading there you might consider also registering for the joint DPDK and FD.io MiniSummit event that will be coincident with the bigger summit. You can find additional information here: http://

Re: [dpdk-dev] [dpdk-stable] 16.11.2 (LTS) patches review and test

2017-05-24 Thread Yuanhan Liu
On Wed, May 24, 2017 at 12:10:57PM +0100, Kevin Traynor wrote: > On 05/22/2017 06:20 AM, Yuanhan Liu wrote: > > Hi all, > > > > Here is a list of patches targeted for 16.11.2 (LTS) release. Please > > help review and test. The planned date for the final release is 31th, > > May. Before that, pleas

Re: [dpdk-dev] IXBGE VF: link state detection

2017-05-24 Thread Lu, Wenzhuo
Hi Gregory, After you turned the port donw/up, PF will re-init the VF's registers. So, VF cannot work correctly. That's why you can know link down but not link up and have to reset the process. Best regards Wenzhuo Lu From: Gregory Etelson [mailto:greg...@weka.io] Sent: Wednesday, May 24, 2017

[dpdk-dev] PCI domain size

2017-05-24 Thread Stephen Hemminger
While working on SR-IOV support on Azure, it was discovered that some applications and drivers do not support full size PCI domains. On Azure environment the PCI pass through device has a synthetic domain value (ie generated by host) which is > 16 bits. The common PCI utilities (pci-utils) and

Re: [dpdk-dev] [PATCH 1/6] net/vmxnet3: retain counters on restart

2017-05-24 Thread Shrikrishna Khare
On Fri, 19 May 2017, Charles (Chas) Williams wrote: > From: Nachiketa Prachanda > > Most nics like virtio, igb/ixgbe etc. don't reset counters on > dev_start and arguably this helps in monitoring the counters > across a longer time span with multiple device start/stops. > vmxnet3 behavior is o

Re: [dpdk-dev] 2nd try: problem with ixgbe_dev_link_update() for multi-speed fiber [was] Re: [PATCH v4] net/ixgbe: ensure link status is updated

2017-05-24 Thread Roger B. Melton
Hi Wei, I am using ixgbe: 00:02.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) The debug output you requested is below showing the results for both far end link up and far end link down. In the case of far end link up, the elapse time is to

[dpdk-dev] [PATCH v2 13/14] devargs: generic device types

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_devargs.c | 4 ++-- lib/librte_eal/common/eal_common_options.c | 13 +++-- lib/librte_eal/common/eal_common_pci.c | 6 +++--- lib/librte_eal/common/eal_common_vdev.c | 1 - lib/librte_eal/common/include/rte_dev

[dpdk-dev] [PATCH v2 14/14] devargs: introduce cleaner parsing helper

2017-05-24 Thread Gaetan Rivet
Introduce a more versatile helper to parse device strings. This helper expects a generic rte_devargs structure as storage in order not to require any API changes in the future, should this structure be updated. The old equivalent function is thus being deprecated, as its API does not allow to acco

[dpdk-dev] [PATCH v2 12/14] net/virtio: do not reference device type

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- drivers/net/virtio/virtio_pci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c index b7b3d61..cd48fb5 100644 --- a/drivers/net/virtio/virtio_pci.c +++ b/drivers/net/virtio/v

[dpdk-dev] [PATCH v2 11/14] devargs: generic device representation

2017-05-24 Thread Gaetan Rivet
Remove the dependency of this subsystem upon bus specific device representation. Devargs only validates that a device declaration is correct and handled by a bus. The device interpretation is done afterward within the bus. Signed-off-by: Gaetan Rivet --- app/test-pmd/testpmd.c

[dpdk-dev] [PATCH v2 10/14] devargs: parse bus policies

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_devargs.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c index 8bb72a2..a5014bf 100644 --- a/lib/librte_eal/common/eal_co

[dpdk-dev] [PATCH v2 09/14] bus: introduce bus scan policies

2017-05-24 Thread Gaetan Rivet
Scan policies describe the way a bus should scan the system to search for possible devices. Three flags are introduced: RTE_BUS_SCAN_UNDEFINED: Configuration is irrelevant for this bus RTE_BUS_SCAN_WHITELIST: Scanning should be limited to declared devices RTE_BUS_SCAN_BLACKLIST: Scanning sho

[dpdk-dev] [PATCH v2 08/14] dev: device kernel module is a device attribute

2017-05-24 Thread Gaetan Rivet
It is used in generic device structures and must not be tied to a bus. Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/include/rte_dev.h | 12 lib/librte_eal/common/include/rte_pci.h | 9 - 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/librte_eal

[dpdk-dev] [PATCH v2 07/14] app/testpmd: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- app/test-pmd/testpmd.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index a15598b..d61a4ad 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -34,6 +34,8 @@ #ifndef _TESTPMD_H_ #define _TES

[dpdk-dev] [PATCH v2 06/14] net/sfc: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/sfc/sfc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h index fad0ce0..ec82e87 100644 --- a/drivers/net/sfc/sfc.h +++ b/drivers/net/sfc/sfc.h @@ -34,6 +34,7 @@ #include +#inc

[dpdk-dev] [PATCH v2 04/14] net/e1000: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/e1000/e1000_ethdev.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h index 8352d0a..6f25428 100644 --- a/drivers/net/e1000/e1000_ethdev.h +++ b/drivers/net/e100

[dpdk-dev] [PATCH v2 05/14] net/ixgbe: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/ixgbe/ixgbe_ethdev.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index b576a6f..fc39a3e 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgb

[dpdk-dev] [PATCH v2 03/14] net/mlx5: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- drivers/net/mlx5/mlx5.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 67fd742..50c4fdd 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -54,6 +54,7 @@ #ifdef PEDANTIC #pragma GCC d

[dpdk-dev] [PATCH v2 01/14] net/bonding: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- drivers/net/bonding/rte_eth_bond_args.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c index e3bdad9..b6a924e 100644 --- a/drivers/net/bonding/rte_eth_bond_args.c +++ b/drivers/

[dpdk-dev] [PATCH v2 02/14] net/bnxt: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/bnxt/bnxt.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 4418c7f..678a844 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -37,6 +37,7 @@ #include

[dpdk-dev] [PATCH v2 00/14] Generic devargs parsing

2017-05-24 Thread Gaetan Rivet
The second part of the work outlined in [1] and [2]. The first part is at [3]. In this patchset, the representation of devices in rte_devargs is made generic to remove some dependencies of the EAL on specific buses implementations. Following the device types being characterized by their bus, the D

[dpdk-dev] [PATCH v2 9/9] devargs: parse bus info

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_devargs.c | 17 - lib/librte_eal/common/eal_common_vdev.c | 6 -- lib/librte_eal/common/include/rte_devargs.h | 3 +++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/librte_eal/common/

[dpdk-dev] [PATCH v2 8/9] vdev: expose bus name

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_vdev.c | 2 +- lib/librte_eal/common/include/rte_vdev.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 9c9a1de..5580295

[dpdk-dev] [PATCH v2 6/9] bus: add helper to find bus from a name

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 7 +++ lib/librte_eal/common/eal_common_bus.c | 19 +++ lib/librte_eal/common/include/rte_bus.h | 14 ++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 7 +++

[dpdk-dev] [PATCH v2 7/9] bus: add helper to find a bus from a device name

2017-05-24 Thread Gaetan Rivet
Find which bus should be able to parse this device name into an internal device representation. Signed-off-by: Gaetan Rivet --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/eal_common_bus.c | 15 +++ lib/librte_eal/common/include/rte_bus.h

[dpdk-dev] [PATCH v2 5/9] pci: implement parse bus operation

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_pci.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 8428006..44cfa3c 100644 --- a/lib/librte_eal/common/eal_common_pci

[dpdk-dev] [PATCH v2 4/9] vdev: implement parse bus operation

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_vdev.c | 62 ++--- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 2095b01..9c9a1de 100644 --- a/li

[dpdk-dev] [PATCH v2 3/9] bus: introduce parsing functionality

2017-05-24 Thread Gaetan Rivet
This operation can be used either to validate that a device representation can be understood by a bus, as well as store the resulting specialized device representation in any format determined by the bus. Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/include/rte_bus.h | 21 ++

[dpdk-dev] [PATCH v2 1/9] bus: fix bus name registration

2017-05-24 Thread Gaetan Rivet
The default bus registration function should not result in buses registering with double quotes within their names. Fixes: a97725791eec ("bus: introduce bus abstraction") Cc: sta...@dpdk.org Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/include/rte_bus.h | 2 +- 1 file changed, 1 insert

[dpdk-dev] [PATCH v2 2/9] bus: verify bus name on registration

2017-05-24 Thread Gaetan Rivet
Verify that a bus name is legal. Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_bus.c | 13 + lib/librte_eal/common/eal_private.h| 16 2 files changed, 29 insertions(+) diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/commo

[dpdk-dev] [PATCH v2 0/9] rte_bus parse API

2017-05-24 Thread Gaetan Rivet
Following the evolutions announced in [1], here is the first part of the rte_devargs rework planned for 17.08. The rationale has been partially explained in [2]. This first part covers the introduction of the necessary facilities in rte_bus to allow for generic device parsing. This API is implemen

[dpdk-dev] [RFC] eal/memory: introducing an option to set iova as va

2017-05-24 Thread Santosh Shukla
Some NPU hardware like OCTEONTX follows push model to get the packet from the pktio device. Where packet allocation and freeing done by the HW. Since HW can operate only on IOVA with help of SMMU/IOMMU, When packet receives from the Ethernet device, It is the IOVA address(which is PA in existing sc

[dpdk-dev] [PATCH] net/tap: support flow API isolated mode

2017-05-24 Thread Pascal Mazon
With this patch, it is possible to enable or disable the isolate feature anytime, even immediately after a probe while the tap has not been configured yet. It will do its job as soon as the netdevice gets created. A specific implicit flow rule is created with the lowest priority (all other flow ru

[dpdk-dev] [PATCH 12/12] cryptodev: remove unused cryptodev driver

2017-05-24 Thread Pablo de Lara
Signed-off-by: Pablo de Lara --- lib/librte_cryptodev/rte_cryptodev.h | 2 - lib/librte_cryptodev/rte_cryptodev_pmd.h | 64 2 files changed, 66 deletions(-) diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h index 7f6fb

[dpdk-dev] [PATCH 11/12] cryptodev: remove unused PCI probe/remove

2017-05-24 Thread Pablo de Lara
Signed-off-by: Pablo de Lara --- lib/librte_cryptodev/rte_cryptodev.c | 103 - lib/librte_cryptodev/rte_cryptodev_pmd.h | 13 lib/librte_cryptodev/rte_cryptodev_version.map | 10 +-- 3 files changed, 1 insertion(+), 125 deletions(-) diff --git a/lib

[dpdk-dev] [PATCH 09/12] crypto/qat: do not use cryptodev driver

2017-05-24 Thread Pablo de Lara
Signed-off-by: Pablo de Lara --- drivers/crypto/qat/qat_crypto.c| 1 + drivers/crypto/qat/qat_qp.c| 8 +--- drivers/crypto/qat/rte_qat_cryptodev.c | 32 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/drivers/crypto/qat/q

[dpdk-dev] [PATCH 10/12] crypto/dpaa2_sec: do not use cryptodev driver

2017-05-24 Thread Pablo de Lara
Signed-off-by: Pablo de Lara --- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 4e01fe8..e32b27e 100644 --- a/drivers/crypto/d

[dpdk-dev] [PATCH 08/12] cryptodev: add PCI driver helpers

2017-05-24 Thread Pablo de Lara
Add PCI probe/remove/init/uninit functions in a separate file rte_cryptodev_pci.h, which do not use cryptodev driver, in order to be removed in next commits. Signed-off-by: Pablo de Lara --- lib/librte_cryptodev/Makefile| 1 + lib/librte_cryptodev/rte_cryptodev_pci.h | 177

[dpdk-dev] [PATCH 07/12] cryptodev: release device if PCI device probing fails

2017-05-24 Thread Pablo de Lara
Call rte_cryptodev_pmd_release_device() if probing a PCI crypto device, instead of accessing the variables directly. This will be useful when rte_cryptodev_pci_probe() gets moved to a separate file. Signed-off-by: Pablo de Lara --- lib/librte_cryptodev/rte_cryptodev.c | 13 - 1 file

[dpdk-dev] [PATCH 06/12] cryptodev: move vdev functions to a separate file

2017-05-24 Thread Pablo de Lara
Move all functions handling virtual devices to a separate header file "rte_cryptodev_vdev.h", in order to leave only generic functions for any device in the rest of the files. Signed-off-by: Pablo de Lara --- drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 1 + drivers/crypto/aesni_mb/rte_aes

[dpdk-dev] [PATCH 05/12] cryptodev: only set PCI info when device is PCI

2017-05-24 Thread Pablo de Lara
Do not set PCI information in the device information structure for any crypto device, just for the ones that are PCI, so this is set internally in the PCI crypto PMDs (only QAT now). Signed-off-by: Pablo de Lara --- drivers/crypto/qat/qat_crypto.c | 5 +++-- lib/librte_cryptodev/rte_cryptod

[dpdk-dev] [PATCH 03/12] cryptodev: rename device retrieval argument

2017-05-24 Thread Pablo de Lara
rte_cryptodev_devices_get() function was parsing a crypto device name as an argument, but the function actually returns device identifiers of devices that share the same crypto driver, so the argument should be driver name, instead. Fixes: 38227c0e3ad2 ("cryptodev: retrieve device info") CC: sta..

[dpdk-dev] [PATCH 04/12] cryptodev: simplify device list retrieval logic

2017-05-24 Thread Pablo de Lara
rte_cryptodev_devices_get() function returns an array of devices sharing the same driver. Instead of having two different paths depending on the device being virtual or physical, retrieve the driver name from rte_device structure. Signed-off-by: Pablo de Lara --- lib/librte_cryptodev/rte_crypto

[dpdk-dev] [PATCH 02/12] cryptodev: set driver name for all devices

2017-05-24 Thread Pablo de Lara
When retrieving device information for a crypto driver, driver name was only set when it was a PCI driver. Getting the driver name from rte_device structure allows rte_cryptodev_get_info() function to return it regardless they are virtual or physical devices. Signed-off-by: Pablo de Lara --- lib

[dpdk-dev] [PATCH 01/12] cryptodev: store device pointer in virtual devices

2017-05-24 Thread Pablo de Lara
Only non virtual devices were storing the pointer to rte_device structure in rte_cryptodev, which will be needed to retrieve the driver name for any device. Signed-off-by: Pablo de Lara --- drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 3 ++- drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 4 +++- d

[dpdk-dev] [PATCH 00/12] Remove cryptodev driver

2017-05-24 Thread Pablo de Lara
Following the same aproach taken for ethdev, this patch series removes the PCI specific structure cryptodev driver from rte_cryptodev. The patchset makes the following changes: - Moves the virtual and PCI device specific functions to separate files, so other cryptodev header files contain only

[dpdk-dev] [PATCH v3 11/11] net/failsafe: support flow API isolation mode

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- drivers/net/failsafe/failsafe_ether.c | 12 drivers/net/failsafe/failsafe_flow.c| 29 + drivers/net/failsafe/failsafe_private.h | 4 3 files changed, 45 insertions(+) diff --git a/drivers/net/failsafe/failsafe_e

[dpdk-dev] [PATCH v3 10/11] net/failsafe: support link status change event

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- doc/guides/nics/features/failsafe.ini | 1 + drivers/net/failsafe/failsafe.c | 1 + drivers/net/failsafe/failsafe_ether.c | 15 +++ drivers/net/failsafe/failsafe_ops.c | 23 +++ drivers/net/failsafe/failsafe_private

[dpdk-dev] [PATCH v3 09/11] net/failsafe: add fast burst functions

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet Acked-by: Olga Shern --- doc/guides/nics/fail_safe.rst | 14 drivers/net/failsafe/failsafe.c | 1 + drivers/net/failsafe/failsafe_args.c| 13 +++ drivers/net/failsafe/failsafe_eal.c | 3 +- drivers/net/failsafe/failsafe_ether.c |

[dpdk-dev] [PATCH v3 08/11] net/failsafe: support offload capabilities

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet Acked-by: Olga Shern --- doc/guides/nics/features/failsafe.ini | 6 ++ drivers/net/failsafe/failsafe_ops.c | 131 +- 2 files changed, 135 insertions(+), 2 deletions(-) diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guide

[dpdk-dev] [PATCH v3 06/11] net/failsafe: add flexible device definition

2017-05-24 Thread Gaetan Rivet
Add the "exec" device type. The parameters given to this type of device will be executed in a shell. The output of this command is then used as a definition for a device. That command can be re-interpreted if the related device is not plugged-in. It allows for a device definition to react to syste

[dpdk-dev] [PATCH v3 07/11] net/failsafe: support flow API

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet Acked-by: Olga Shern --- doc/guides/nics/features/failsafe.ini | 1 + drivers/net/failsafe/Makefile | 1 + drivers/net/failsafe/failsafe.c | 1 + drivers/net/failsafe/failsafe_eal.c | 1 + drivers/net/failsafe/failsafe_ether.c | 70 +

[dpdk-dev] [PATCH v3 04/11] net/failsafe: add fail-safe PMD

2017-05-24 Thread Gaetan Rivet
Introduce the fail-safe poll mode driver initialization and enable its build infrastructure. This PMD allows for applications to benefit from true hot-plugging support without having to implement it. It intercepts and manages Ethernet device removal events issued by slave PMDs and re-initializes

[dpdk-dev] [PATCH v3 05/11] net/failsafe: add plug-in support

2017-05-24 Thread Gaetan Rivet
Periodically check for the existence of a device. If a device has not been initialized and exists on the system, then it is probed and configured. The configuration process strives to synchronize the states between the plugged-in sub-device and the fail-safe device. Signed-off-by: Gaetan Rivet A

[dpdk-dev] [PATCH v3 02/11] ethdev: add deferred intermediate device state

2017-05-24 Thread Gaetan Rivet
This device state means that the device is managed externally, by whichever party has set this state (PMD or application). Note: this new device state is only an information. The related device structure and operators are still valid and can be used normally. It is however made private by device

[dpdk-dev] [PATCH v3 03/11] ethdev: count devices consistently

2017-05-24 Thread Gaetan Rivet
Make the rte_eth_dev_count() return the number of available devices even after some are detached by the hotplug API or put in a deferred state. Signed-off-by: Gaetan Rivet --- lib/librte_ether/rte_ethdev.c | 16 +--- lib/librte_ether/rte_ethdev.h | 13 ++--- 2 files changed,

[dpdk-dev] [PATCH v3 01/11] ethdev: save VLAN filter setting

2017-05-24 Thread Gaetan Rivet
Other configuration items (i.e. MAC addresses) are stored within rte_eth_dev_data, but not this one. Signed-off-by: Gaetan Rivet --- lib/librte_ether/rte_ethdev.c | 19 ++- lib/librte_ether/rte_ethdev.h | 10 ++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git

[dpdk-dev] [PATCH v3 00/11] introduce fail-safe PMD

2017-05-24 Thread Gaetan Rivet
This PMD intercepts and manages Ethernet device removal events issued by slave PMDs and re-initializes them transparently when brought back so that existing applications do not need to be modified to benefit from true hot-plugging support. The stacked PMD approach shares many similarities with the

[dpdk-dev] [PATCH 3/3] vdev: use standard bus registration function

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_vdev.c | 18 +- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 4e83326..55d53c2 100644 --- a/lib/librte_eal/comm

[dpdk-dev] [PATCH 1/3] pci: implement attach/detach bus operation

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_pci.c | 50 ++ 1 file changed, 50 insertions(+) diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 6d9fdda..269abb8 100644 --- a/lib/librte_eal/common

[dpdk-dev] [PATCH 2/3] vdev: implement attach bus operation

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_dev.c | 53 +++-- lib/librte_eal/common/eal_common_vdev.c | 8 - 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_

[dpdk-dev] [PATCH 0/3] eal: complete attach / detach support

2017-05-24 Thread Gaetan Rivet
Implements attach / detach for the PCI bus, and a streamlined attach for the virtual bus. This is necessary to remove the final dependencies of the EAL on the virtual and PCI buses, due to the rte_eal_dev_attach and rte_eal_dev_detach functions. This patchset depends on: pci: implement find_devi

[dpdk-dev] [PATCH 14/14] devargs: introduce cleaner parsing helper

2017-05-24 Thread Gaetan Rivet
Introduce a more versatile helper to parse device strings. This helper expects a generic rte_devargs structure as storage in order not to require any API changes in the future, should this structure be updated. The old equivalent function is thus being deprecated, as its API does not allow to acco

[dpdk-dev] [PATCH 13/14] devargs: generic device types

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_devargs.c | 4 ++-- lib/librte_eal/common/eal_common_options.c | 13 +++-- lib/librte_eal/common/eal_common_pci.c | 6 +++--- lib/librte_eal/common/eal_common_vdev.c | 1 - lib/librte_eal/common/include/rte_dev

[dpdk-dev] [PATCH 12/14] net/virtio: do not reference device type

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- drivers/net/virtio/virtio_pci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c index b7b3d61..cd48fb5 100644 --- a/drivers/net/virtio/virtio_pci.c +++ b/drivers/net/virtio/v

[dpdk-dev] [PATCH 11/14] devargs: generic device representation

2017-05-24 Thread Gaetan Rivet
Remove the dependency of this subsystem upon bus specific device representation. Devargs only validates that a device declaration is correct and handled by a bus. The device interpretation is done afterward within the bus. Signed-off-by: Gaetan Rivet --- app/test-pmd/testpmd.c

[dpdk-dev] [PATCH 10/14] devargs: parse bus policies

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_devargs.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c index 8bb72a2..a5014bf 100644 --- a/lib/librte_eal/common/eal_co

[dpdk-dev] [PATCH 09/14] bus: introduce bus scan policies

2017-05-24 Thread Gaetan Rivet
Scan policies describe the way a bus should scan the system to search for possible devices. Three flags are introduced: RTE_BUS_SCAN_UNDEFINED: Configuration is irrelevant for this bus RTE_BUS_SCAN_WHITELIST: Scanning should be limited to declared devices RTE_BUS_SCAN_BLACKLIST: Scanning sho

[dpdk-dev] [PATCH 08/14] dev: device kernel module is a device attribute

2017-05-24 Thread Gaetan Rivet
It is used in generic device structures and must not be tied to a bus. Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/include/rte_dev.h | 12 lib/librte_eal/common/include/rte_pci.h | 9 - 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/librte_eal

[dpdk-dev] [PATCH 07/14] app/testpmd: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- app/test-pmd/testpmd.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index a15598b..d61a4ad 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -34,6 +34,8 @@ #ifndef _TESTPMD_H_ #define _TES

[dpdk-dev] [PATCH 06/14] net/sfc: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/sfc/sfc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h index fad0ce0..ec82e87 100644 --- a/drivers/net/sfc/sfc.h +++ b/drivers/net/sfc/sfc.h @@ -34,6 +34,7 @@ #include +#inc

[dpdk-dev] [PATCH 04/14] net/e1000: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/e1000/e1000_ethdev.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h index 8352d0a..6f25428 100644 --- a/drivers/net/e1000/e1000_ethdev.h +++ b/drivers/net/e100

[dpdk-dev] [PATCH 05/14] net/ixgbe: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/ixgbe/ixgbe_ethdev.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index b576a6f..fc39a3e 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgb

[dpdk-dev] [PATCH 03/14] net/mlx5: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- drivers/net/mlx5/mlx5.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 67fd742..50c4fdd 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -54,6 +54,7 @@ #ifdef PEDANTIC #pragma GCC d

[dpdk-dev] [PATCH 02/14] net/bnxt: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
From: Gaetan Rivet Signed-off-by: Gaetan Rivet --- drivers/net/bnxt/bnxt.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 4418c7f..678a844 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -37,6 +37,7 @@ #include

[dpdk-dev] [PATCH 00/14] Generic devargs parsing

2017-05-24 Thread Gaetan Rivet
The second part of the work outlined in [1] and [2]. The first part is at [3]. In this patchset, the representation of devices in rte_devargs is made generic to remove some dependencies of the EAL on specific buses implementations. Following the device types being characterized by their bus, the D

[dpdk-dev] [PATCH 01/14] net/bonding: properly reference PCI header

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- drivers/net/bonding/rte_eth_bond_args.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c index e3bdad9..b6a924e 100644 --- a/drivers/net/bonding/rte_eth_bond_args.c +++ b/drivers/

[dpdk-dev] [PATCH 9/9] devargs: parse bus info

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_devargs.c | 17 - lib/librte_eal/common/eal_common_vdev.c | 6 -- lib/librte_eal/common/include/rte_devargs.h | 3 +++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/librte_eal/common/

[dpdk-dev] [PATCH 8/9] vdev: expose bus name

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_vdev.c | 2 +- lib/librte_eal/common/include/rte_vdev.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 9c9a1de..5580295

[dpdk-dev] [PATCH 7/9] bus: add helper to find a bus from a device name

2017-05-24 Thread Gaetan Rivet
Find which bus should be able to parse this device name into an internal device representation. Signed-off-by: Gaetan Rivet --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/eal_common_bus.c | 15 +++ lib/librte_eal/common/include/rte_bus.h

[dpdk-dev] [PATCH 6/9] bus: add helper to find bus from a name

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 7 +++ lib/librte_eal/common/eal_common_bus.c | 19 +++ lib/librte_eal/common/include/rte_bus.h | 14 ++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 7 +++

[dpdk-dev] [PATCH 5/9] pci: implement parse bus operation

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_pci.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 8428006..0f171ec 100644 --- a/lib/librte_eal/common/eal_common_pci

[dpdk-dev] [PATCH 4/9] vdev: implement parse bus operation

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_vdev.c | 62 ++--- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 2095b01..9c9a1de 100644 --- a/li

[dpdk-dev] [PATCH 3/9] bus: introduce parsing functionality

2017-05-24 Thread Gaetan Rivet
This operation can be used either to validate that a device representation can be understood by a bus, as well as store the resulting specialized device representation in any format determined by the bus. Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/include/rte_bus.h | 21 ++

[dpdk-dev] [PATCH 1/9] bus: fix bus name registration

2017-05-24 Thread Gaetan Rivet
The default bus registration function should not result in buses registering with double quotes within their names. Fixes: a97725791eec ("bus: introduce bus abstraction") Cc: sta...@dpdk.org Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/include/rte_bus.h | 2 +- 1 file changed, 1 insert

[dpdk-dev] [PATCH 2/9] bus: verify bus name on registration

2017-05-24 Thread Gaetan Rivet
Verify that a bus name is legal. Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_bus.c | 13 + lib/librte_eal/common/eal_private.h| 16 2 files changed, 29 insertions(+) diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/commo

[dpdk-dev] [PATCH 0/9] rte_bus parse API

2017-05-24 Thread Gaetan Rivet
Following the evolutions announced in [1], here is the first part of the rte_devargs rework planned for 17.08. The rationale has been partially explained in [2]. This first part covers the introduction of the necessary facilities in rte_bus to allow for generic device parsing. This API is implemen

[dpdk-dev] [PATCH] pci: implement find_device bus operation

2017-05-24 Thread Gaetan Rivet
Signed-off-by: Gaetan Rivet --- This patch depends on: bus: attach / detach API http://dpdk.org/ml/archives/dev/2017-May/066330.html http://dpdk.org/dev/patchwork/patch/24489/ --- lib/librte_eal/common/eal_common_pci.c | 14 ++ 1 file changed, 14 insertions(+) diff --git a/lib/librt

[dpdk-dev] [PATCH 9/9] ethdev: Use embedded rte_device to detach driver

2017-05-24 Thread Gaetan Rivet
From: Jan Blunck Signed-off-by: Jan Blunck --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/eal_common_dev.c| 43 --- lib/librte_eal/common/include/rte_dev.h | 11 +++ lib/librte_ether/rte_ethdev.c | 3 +-

[dpdk-dev] [PATCH 8/9] eal: make virtual driver probe and remove take rte_vdev_device

2017-05-24 Thread Gaetan Rivet
From: Jan Blunck This is a preparation to embed the generic rte_device into the rte_eth_dev also for virtual devices. Signed-off-by: Jan Blunck --- lib/librte_eal/common/eal_common_dev.c | 93 ++ 1 file changed, 71 insertions(+), 22 deletions(-) diff --git a/li

[dpdk-dev] [PATCH 7/9] vdev: implement detach bus operation

2017-05-24 Thread Gaetan Rivet
From: Jan Blunck Signed-off-by: Jan Blunck --- lib/librte_eal/common/eal_common_vdev.c | 12 1 file changed, 12 insertions(+) diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 5fc516f..2095b01 100644 --- a/lib/librte_eal/common/e

[dpdk-dev] [PATCH 6/9] vdev: implement find_device bus operation

2017-05-24 Thread Gaetan Rivet
From: Jan Blunck Signed-off-by: Jan Blunck --- lib/librte_eal/common/eal_common_vdev.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 0037a64..5fc516f 100644 --- a/lib/librte_eal/commo

[dpdk-dev] [PATCH 5/9] bus: introduce attach/detach functionality

2017-05-24 Thread Gaetan Rivet
From: Jan Blunck Signed-off-by: Jan Blunck --- lib/librte_eal/common/eal_common_bus.c | 3 +++ lib/librte_eal/common/include/rte_bus.h | 16 2 files changed, 19 insertions(+) diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c index

  1   2   >