[dpdk-dev] [PATCH 0/5] add external mempool manager

2016-01-29 Thread Hunt, David
On 28/01/2016 17:26, Jerin Jacob wrote: > On Tue, Jan 26, 2016 at 05:25:50PM +, David Hunt wrote: >> Hi all on the list. >> >> Here's a proposed patch for an external mempool manager >> >> The External Mempool Manager is an extension to the mempool API that allows >> users to add and use an

[dpdk-dev] [PATCH 0/9] prepare for rte_device / rte_driver

2016-01-29 Thread David Marchand
Following discussions with Jan [1] and some cleanup I started on pci code, here is a patchset that reworks pdev drivers registration and hotplug api. The structures changes mentioned in [1] are still to be done, but at least, I think we are one step closer to it. Before this patchset, rte_driver

[dpdk-dev] [PATCH 1/9] pci: no need for dynamic tailq init

2016-01-29 Thread David Marchand
These lists can be initialized once and for all at build time. With this, those lists are only manipulated in a common place (and we could even make them private). A nice side effect is that pci drivers can now register in constructors. Signed-off-by: David Marchand ---

[dpdk-dev] [PATCH 2/9] pci: register all pdev as pci drivers

2016-01-29 Thread David Marchand
pdev drivers are actually pci drivers. Wrappers for ethdev and crypto pci drivers, that assume a 1 to 1 association between pci device and upper device, have been added so that current drivers are not impacted. Signed-off-by: David Marchand --- drivers/crypto/qat/rte_qat_cryptodev.c |

[dpdk-dev] [PATCH 3/9] drivers: no more pdev drivers

2016-01-29 Thread David Marchand
Now that pdev drivers have been converted to pci drivers, there is nothing left in their init functions that can't go in a constructor. pdev / vdev drivers init order is changed by this commit, but I can't see why we would need to preserve it. Signed-off-by: David Marchand ---

[dpdk-dev] [PATCH 4/9] eal/linux: move back interrupt thread init before setting affinity

2016-01-29 Thread David Marchand
Now that virtio pci driver is initialized in a constructor, we only need to move the interrupt thread init after loading the plugins. This way, chelsio driver should be happy again [1]. [1] http://dpdk.org/ml/archives/dev/2015-November/028289.html Signed-off-by: David Marchand ---

[dpdk-dev] [PATCH 5/9] eal: get rid of pmd type

2016-01-29 Thread David Marchand
Now that we only have vdev drivers, there is no need for a pmd type in rte_driver. rte_driver is now purely a vdev thing, and could be renamed later (then .init would become .probe, .uninit would become .remove). Signed-off-by: David Marchand --- drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 2

[dpdk-dev] [PATCH 6/9] eal: initialize vdevs right next to pci devices

2016-01-29 Thread David Marchand
This way, the resources probing happens in a common place. Signed-off-by: David Marchand --- lib/librte_eal/bsdapp/eal/eal.c | 7 +++ lib/librte_eal/common/include/rte_dev.h | 2 +- lib/librte_eal/linuxapp/eal/eal.c | 7 +++ 3 files changed, 15 insertions(+), 1 deletion(-)

[dpdk-dev] [PATCH 7/9] pci: add a helper for device name

2016-01-29 Thread David Marchand
eal is a better place than ethdev for naming resources. Add a helper here, and make use of it in ethdev hotplug code. Signed-off-by: David Marchand --- lib/librte_eal/common/include/rte_pci.h | 28 lib/librte_ether/rte_ethdev.c | 22 ++

[dpdk-dev] [PATCH 8/9] pci: add a helper to refresh a device

2016-01-29 Thread David Marchand
It will be used mainly for hotplug code. Signed-off-by: David Marchand --- lib/librte_eal/bsdapp/eal/eal_pci.c | 49 +++ lib/librte_eal/common/eal_private.h | 13 ++ lib/librte_eal/linuxapp/eal/eal_pci.c | 13 ++ 3 files changed, 75

[dpdk-dev] [PATCH 9/9] eal: relocate hotplug code from ethdev

2016-01-29 Thread David Marchand
hotplug which deals with resources should come from the layer that already handles them, i.e. eal. Signed-off-by: David Marchand --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 8 + lib/librte_eal/common/eal_common_dev.c | 39 lib/librte_eal/common/eal_common_pci.c

[dpdk-dev] [PATCH] pmd/snow3g: add new SNOW 3G SW PMD

2016-01-29 Thread Pablo de Lara
Added new SW PMD which makes use of the libsso SW library, which provides wireless algorithms SNOW 3G UEA2 and UIA2 in software. This PMD supports cipher-only, hash-only and chained operations ("cipher then hash" and "hash then cipher") of the following algorithms: -

[dpdk-dev] [PATCH v2 0/9] pci cleanup and blacklist rework

2016-01-29 Thread David Marchand
Before 2.2.0 release, while preparing for more changes in eal (and fixing a problem reported by Roger M. [1]), I came up with this (part of) patchset that tries to make the pci code more compact and easier to read. I ended up introducing some hooks in the pci layer to customize pci blacklist /

[dpdk-dev] [PATCH v2 1/9] pci: add internal device list helpers

2016-01-29 Thread David Marchand
Remove duplicate code by moving this to helpers in common. Signed-off-by: David Marchand --- Changes since v1: - moved helpers to eal_private.h --- lib/librte_eal/bsdapp/eal/eal_pci.c| 34 --- lib/librte_eal/common/eal_common_pci.c | 76 --

[dpdk-dev] [PATCH v2 2/9] pci/linux: minor cleanup

2016-01-29 Thread David Marchand
Those are the only fields that are explicitly set to 0 while the global dev pointer is set to 0 a few lines before. Signed-off-by: David Marchand --- lib/librte_eal/linuxapp/eal/eal_pci.c | 9 ++--- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git

[dpdk-dev] [PATCH v2 3/9] pci/linux: rework sysfs parsing for driver

2016-01-29 Thread David Marchand
There is no use for pci_get_kernel_driver_by_path() apart recognising kernel driver and fill kdrv field. Signed-off-by: David Marchand --- Changes since v1: - updated the commitlog, Huawei already did the "unknown" -> "none" change, so this patch ends up just refactoring code ---

[dpdk-dev] [PATCH v2 6/9] pci: factorize driver search

2016-01-29 Thread David Marchand
Same idea as a few commits before, no need to implement the same logic in probe and detach functions. Here, the driver matching is done by a helper, then probe / detach functions are called respectively. Signed-off-by: David Marchand --- lib/librte_eal/common/eal_common_pci.c | 96

[dpdk-dev] [PATCH v2 5/9] pci: cosmetic change

2016-01-29 Thread David Marchand
Indent previous commit, rename functions (internal and local functions do not need rte_eal_ prefix). Signed-off-by: David Marchand --- lib/librte_eal/common/eal_common_pci.c | 106 - 1 file changed, 52 insertions(+), 54 deletions(-) diff --git

[dpdk-dev] [PATCH v2 4/9] pci: factorize probe/detach code

2016-01-29 Thread David Marchand
Move pci id matching to a helper and reuse it in probe and detach functions. Signed-off-by: David Marchand --- lib/librte_eal/common/eal_common_pci.c | 67 -- 1 file changed, 23 insertions(+), 44 deletions(-) diff --git a/lib/librte_eal/common/eal_common_pci.c

[dpdk-dev] [PATCH v2 7/9] pci: remove driver lookup from detach

2016-01-29 Thread David Marchand
A device is linked to a driver at probe time. When detaching, we should call this same driver detach() function and no need for a driver lookup. Signed-off-by: David Marchand --- Changes since v1: - moved some logs for consistency --- lib/librte_eal/common/eal_common_pci.c | 19

[dpdk-dev] [PATCH v2 8/9] pci: implement blacklist using a hook

2016-01-29 Thread David Marchand
The idea is to prepare a generic hook system for all bus, but I am still unsure if this approach will be the right one, hence, keeping this as private for now. Here, blacklisting policy is removed from pci scan code, making it possible to override it later by the application (once the api is

[dpdk-dev] [PATCH v2 9/9] pci: implement automatic bind/unbind

2016-01-29 Thread David Marchand
Reuse pci hook to implement automatic bind / unbind. The more I look at this, the more I think this should go to the PMDs themselves (with options per devices to control this), with EAL offering helpers to achieve this. Signed-off-by: David Marchand --- lib/librte_eal/bsdapp/eal/eal_pci.c

[dpdk-dev] [RFC PATCH 0/2] Fix examples/distributor build issue for non x86

2016-01-29 Thread Bruce Richardson
On Fri, Jan 29, 2016 at 08:51:41AM +0530, Jerin Jacob wrote: > On Sun, Dec 06, 2015 at 08:54:28PM +0530, Jerin Jacob wrote: > > Introduced rte_prefetch_non_temporal() to remove IA specific > > _mm_prefect(addr, 0) > > gcc intrinsic and build examples/distributor for non 86 platform > > ping for

[dpdk-dev] [PATCH 1/4] lib/librte_port: add PCAP file support to source port

2016-01-29 Thread Zhang, Roy Fan
Hi Panu, Thank you for the careful review and comments. On 28/01/2016 11:54, Panu Matilainen wrote: > On 01/27/2016 07:39 PM, Fan Zhang wrote: >> Originally, source ports in librte_port is an input port used as packet >> generator. Similar to Linux kernel /dev/zero character device, it >>

[dpdk-dev] [PATCH 3/4] lib/librte_port: add packet dumping to PCAP file support in sink port

2016-01-29 Thread Zhang, Roy Fan
Hi Panu, Thank you again for careful review and comments. On 28/01/2016 11:43, Panu Matilainen wrote: > On 01/27/2016 07:39 PM, Fan Zhang wrote: >> Originally, sink ports in librte_port releases received mbufs back to >> mempool. This patch adds optional packet dumping to PCAP feature in sink >>

[dpdk-dev] [PATCH v2 1/1] jobstats: added function abort for job

2016-01-29 Thread Marcin Kerlin
This patch adds new function rte_jobstats_abort. It marks *job* as finished and time of this work will be add to management time instead of execution time. This function should be used instead of rte_jobstats_finish if condition occurs, condition is defined by the application for example when

[dpdk-dev] [PATCH 0/4] DPDK polling-mode driver for Amazon Elastic Network Adapters (ENA)

2016-01-29 Thread Jan Mędala
Hello Thomas, 2016-01-28 16:40 GMT+01:00 Thomas Monjalon : > > lib/librte_eal/linuxapp/ena_uio/ena_uio_driver.c | 276 +++ > > Sorry the kernel module party is over. > One day, igb_uio will be removed. > I suggest to make a first version without interrupt support > and work with Linux

[dpdk-dev] [PATCH 2/2] kdp: add virtual PMD for kernel slow data path communication

2016-01-29 Thread Yigit, Ferruh
On Thu, Jan 28, 2016 at 08:16:09AM +, Xu, Qian Q wrote: > Any dependencies with kernel versions? What kernel versions should it > support? > Hi Qian, Kernel module dependencies is same as KNI, and DPDK supports Kernel version >= 2.6.34, this is valid for KDP. For PMD, it is not dependent

[dpdk-dev] [PATCH 0/4] DPDK polling-mode driver for Amazon Elastic Network Adapters (ENA)

2016-01-29 Thread Thomas Monjalon
2016-01-29 16:42, Jan M?dala: > Hello Thomas, > > 2016-01-28 16:40 GMT+01:00 Thomas Monjalon : > > > > lib/librte_eal/linuxapp/ena_uio/ena_uio_driver.c | 276 +++ > > > > Sorry the kernel module party is over. > > One day, igb_uio will be removed. > > I suggest to make a first version without

[dpdk-dev] [PATCH v7 3/5] ethdev: redesign link speed config API

2016-01-29 Thread Nélio Laranjeiro
Hi Marc, On Fri, Jan 29, 2016 at 01:42:05AM +0100, Marc Sune wrote: >[...] > /** > - * Device supported speeds > - */ > -#define ETH_SPEED_CAP_NOT_PHY(0) /*< No phy media > */ > -#define ETH_SPEED_CAP_10M_HD (1 << 0) /*< 10 Mbps half-duplex> */ > -#define ETH_SPEED_CAP_10M_FD (1 << 1)

[dpdk-dev] [PATCH 0/3] null driver improvements for testability

2016-01-29 Thread Paul Atkins
This patchset adds functionality to the null driver help when testing a dataplane that uses dpdk. The idea is that the the dataplane can have multiple null interfaces attached, and each of theses can be assigned a mac address. Packets can then be injected into the null drivers by adding them to a

[dpdk-dev] [PATCH 1/3] null: add a new arg to allow users to specify ether address

2016-01-29 Thread Paul Atkins
Add a new argument to the null driver to allow the user to specify the ether address to be used instead of the default which is all zeroes. This also allows the user to specify an address per device instead of them all using the same default one. Signed-off-by: Paul Atkins ---

[dpdk-dev] [PATCH 2/3] null: add rings to allow user to provide the mbufs for rx/tx

2016-01-29 Thread Paul Atkins
When using the null driver it is useful to be able to provide a set of mbufs to be received on the interface. Add an option to specify a ring that the driver can poll to provide the set of packets that have been received. Add a similar ring for the tx side where the packets that are being

[dpdk-dev] [PATCH 3/3] null: add xstats to provide the number of rx polls

2016-01-29 Thread Paul Atkins
When using the null driver and passing in packets via the rx ring, it is useful to know that the driver has polled the ring. Add a count of rx polls to the xstats to provide this information. Signed-off-by: Paul Atkins --- drivers/net/null/rte_eth_null.c | 70

[dpdk-dev] [PATCH 0/3] null driver improvements for testability

2016-01-29 Thread Thomas Monjalon
Hi Paul, 2016-01-29 16:18, Paul Atkins: > This patchset adds functionality to the null driver help when testing > a dataplane that uses dpdk. The idea is that the the dataplane can > have multiple null interfaces attached, and each of theses can be > assigned a mac address. Packets can then be

[dpdk-dev] [PATCH 0/3] null driver improvements for testability

2016-01-29 Thread Paul Atkins
Hi Thomas, On 29/01/16 16:31, Thomas Monjalon wrote: > Hi Paul, > > 2016-01-29 16:18, Paul Atkins: >> This patchset adds functionality to the null driver help when testing >> a dataplane that uses dpdk. The idea is that the the dataplane can >> have multiple null interfaces attached, and each of

[dpdk-dev] [PATCH] examples: l3fwd exact-match path rework

2016-01-29 Thread Tomasz Kulasek
Current implementation of Exact-Match uses different execution path than for LPM. Unifying them allows to reuse big part of LPM code and sightly increase performance of Exact-Match. Main changes: - * Packet classification stage is separated from the rest of path for both LPM and EM.

[dpdk-dev] [RFC PATCH 0/2] Fix examples/distributor build issue for non x86

2016-01-29 Thread Jerin Jacob
On Fri, Jan 29, 2016 at 08:03:37AM -0700, Bruce Richardson wrote: > On Fri, Jan 29, 2016 at 08:51:41AM +0530, Jerin Jacob wrote: > > On Sun, Dec 06, 2015 at 08:54:28PM +0530, Jerin Jacob wrote: > > > Introduced rte_prefetch_non_temporal() to remove IA specific > > > _mm_prefect(addr, 0) > > > gcc

[dpdk-dev] which driver to bind for the NIC interfacesg

2016-01-29 Thread Bruce Richardson
On Mon, Jan 25, 2016 at 06:17:23PM +0530, Nagaraj Trivedi wrote: > Hi all, in the Getting Started Guide for Linux, Release 2.2.0 it is > mentioned that we need to bind the ports to uio_pci_generic, igb_uio or > vfio-pci. > > I would like to know exactly among uio_pci_generic, igb_uio or

[dpdk-dev] [PATCH 0/5] add external mempool manager

2016-01-29 Thread Jerin Jacob
On Fri, Jan 29, 2016 at 01:40:40PM +, Hunt, David wrote: > On 28/01/2016 17:26, Jerin Jacob wrote: > >On Tue, Jan 26, 2016 at 05:25:50PM +, David Hunt wrote: > >>Hi all on the list. > >> > >>Here's a proposed patch for an external mempool manager > >> > >>The External Mempool Manager is an

[dpdk-dev] [PATCH 0/3] clean-up on virtual PMDs

2016-01-29 Thread Ferruh Yigit
This is a clean-up patch, no defect fixed, no functional difference expected. Patch mainly removes duplicated fields between data->dev_private and data (struct rte_eth_dev_data). There are a few minor cleanups that: pcap: move a common code into a function ring: remove duplicated

[dpdk-dev] [PATCH 1/3] pcap: remove duplicate fields in internal data struct

2016-01-29 Thread Ferruh Yigit
1- Remove duplicate nb_rx/tx_queues fields from internals 2- Move duplicate code into a common function Signed-off-by: Ferruh Yigit --- drivers/net/pcap/rte_eth_pcap.c | 130 +++- 1 file changed, 61 insertions(+), 69 deletions(-) diff --git

[dpdk-dev] [PATCH 2/3] ring: remove duplicate fields in internal data struct

2016-01-29 Thread Ferruh Yigit
1- Remove duplicate nb_rx/tx_queues fields from internals 2- Remove data->rx/tx_queues allocation, whose auto allocated by libether 3- Remove duplicate data->rx/tx_queues[i] assignments Signed-off-by: Ferruh Yigit --- drivers/net/ring/rte_eth_ring.c | 52

[dpdk-dev] [PATCH 3/3] null: remove duplicate fields in internal data struct

2016-01-29 Thread Ferruh Yigit
1- remove duplicate nb_rx/tx_queues fields from internals 2- remove duplicate numa_node field from internals Signed-off-by: Ferruh Yigit --- drivers/net/null/rte_eth_null.c | 36 1 file changed, 12 insertions(+), 24 deletions(-) diff --git

[dpdk-dev] [PATCH] eal: make resource initialization more robust

2016-01-29 Thread Jianfeng Tan
Current issue: DPDK is not that friendly to container environment, which caused by that it pre-alloc resource like cores and hugepages. But there are this or that resource limitations, for examples, cgroup, rlimit, cpuset, etc. For cores, this patch makes use of pthread_getaffinity_np to further

[dpdk-dev] [PATCH v6 1/8] eal: pci: add api to rd/wr pci bar region

2016-01-29 Thread Santosh Shukla
Introducing below api for pci bar region rd/wr. Api's are: - rte_eal_pci_read_bar - rte_eal_pci_write_bar Signed-off-by: Santosh Shukla --- v5-->v6: - update api infor in rte_eal_version.map file suggested by david manchand. lib/librte_eal/bsdapp/eal/eal_pci.c | 19

[dpdk-dev] [PATCH v6 2/8] linuxapp/vfio: ignore mapping for ioport region

2016-01-29 Thread Santosh Shukla
vfio_pci_mmap() try to map all pci bars. ioport region are not mapped in vfio/kernel so ignore mmaping for ioport. Signed-off-by: Santosh Shukla --- lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 20 1 file changed, 20 insertions(+) diff --git

[dpdk-dev] [PATCH v6 3/8] eal/linux: never check iopl for arm

2016-01-29 Thread Santosh Shukla
iopl() syscall not supported in linux-arm/arm64 so always return 0 value. Signed-off-by: Santosh Shukla Suggested-by: Stephen Hemminger Acked-by: Jan Viktorin Acked-by: David Marchand --- lib/librte_eal/linuxapp/eal/eal.c |2 ++ 1 file changed, 2 insertions(+) diff --git

[dpdk-dev] [PATCH v6 4/8] virtio: Introduce config RTE_VIRTIO_INC_VECTOR

2016-01-29 Thread Santosh Shukla
- virtio_recv_pkts_vec and other virtio vector friend apis are written for sse/avx instructions. For arm64 in particular, virtio vector implementation does not exist(todo). So virtio pmd driver wont build for targets like i686, arm64. By making RTE_VIRTIO_INC_VECTOR=n, Driver can build for

[dpdk-dev] [PATCH v6 5/8] virtio: move io header and api from virtio_pci.h

2016-01-29 Thread Santosh Shukla
Moving io api and header file i.e. sys/io.h to separate file virtio_io.h Signed-off-by: Santosh Shukla --- v5-->v6: - included new file virtio_io.h, has in/out api and sys/io.h. drivers/net/virtio/virtio_io.h | 114 +++ drivers/net/virtio/virtio_pci.c |

[dpdk-dev] [PATCH v6 6/8] virtio: add vfio api to rd/wr ioport space

2016-01-29 Thread Santosh Shukla
For vfio case - Use pread/pwrite api to access virtio ioport space. Signed-off-by: Santosh Shukla Signed-off-by: Rizwan Ansari Signed-off-by: Rakesh Krishnamurthy --- v5-->v6: - renamed inport_in/out to vfio_in/out - Renamed file from virtio_vfio_rw.h to virtio_vfio_io.h

[dpdk-dev] [PATCH v6 7/8] virtio: extend pci rw api for vfio

2016-01-29 Thread Santosh Shukla
So far virtio handle rw access for uio / ioport interface, This patch to extend the support for vfio. Signed-off-by: Santosh Shukla --- drivers/net/virtio/virtio_io.h |2 +- drivers/net/virtio/virtio_pci.c | 110 ++- 2 files changed, 98 insertions(+),

[dpdk-dev] [PATCH v6 8/8] virtio: do not parse if interface is vfio

2016-01-29 Thread Santosh Shukla
If virtio interface attached to vfio driver then do not parse for virtio resource. Instead exit with return 0; Signed-off-by: Santosh Shukla --- v5-->v6: - Removed _noimmu and using deafult rte_kdrv_vfio for drv check. drivers/net/virtio/virtio_pci.c |4 +++- 1 file changed, 3

[dpdk-dev] [PATCH v6 0/8] Add virtio support for arm/arm64

2016-01-29 Thread Santosh Shukla
Hi, Patch series to allow access to virtio using vfio interface. Tested for vfio-noiommu mode for x86_64/arm64{thunderX} platform. patch series builds successfully for armv7/v8/x86_64/i686. Patchset rebased on yuan's under review virtio-1.0 v2 patchset. Refer my public branch [1] Step to enable

[dpdk-dev] [PATCH] example/ipsec-secgw: ipsec security gateway

2016-01-29 Thread Sergio Gonzalez Monroy
Sample app implementing an IPsec Security Geteway. The main goal of this app is to show the use of cryptodev framework in a real world application. Currently only supported static IPv4 IPsec tunnels using AES-CBC and HMAC-SHA1. Also, currently not supported: - SA auto negotiation (No IKE

[dpdk-dev] i40evf DPDK init_adminq failed: -53

2016-01-29 Thread Saurabh Mishra
Has anybody seen this before? What's the workaround or fix? We are using dpdk-2.2.0 on KVM centos: Host PF version: 1.0.11-k on Centos7 [root@ ~]# ./symmetric_mp fakeelf -c 2 -m2048 -n4 --proc-type=primary -- -p 3 --num-procs=2 --proc-id=0 [.] EAL: Virtual area found at 0x7fff7580 (size =

[dpdk-dev] Increasing the number of traffic classes

2016-01-29 Thread Sridhar.V.Iyer
Hi, I know that this topic have been covered in the youtube video and mailing list (http://dpdk.org/ml/archives/dev/2015-June/018875.html ) in the past. The solution suggested was to have 4 queues per traffic classes and each of those

<    1   2