[dpdk-dev] [PATCH v6 12/12] net/mlx5: support the native port id actions for mirroring

2020-09-08 Thread Jiawei Wang
This patch to support the mirroring with native port id action even without the sample action in the flow. The flow would be like: flow create 0 ingress transfer pattern eth / end actions port_id id 1 / port_id id 2 / end Ingress packet match from uplink, send to VF1

[dpdk-dev] [PATCH v6 10/12] net/mlx5: update translate function for mirror

2020-09-08 Thread Jiawei Wang
Translate the attribute of sample action that include sample ratio and sub actions list. PMD will check the destination action number in current flow, if found multiple destination action, then create the new group rdma action for each destination, these group rdma actions will be used for creating

[dpdk-dev] [PATCH v6 03/12] common/mlx5: query sampler object capability via DevX

2020-09-08 Thread Jiawei Wang
Update function mlx5_devx_cmd_query_hca_attr() to add the NIC Flow Table attributes query, then get the log_max_flow_sampler_num from flow table properties. Add the related structs definition in mlx5_prm.h. Signed-off-by: Jiawei Wang Acked-by: Ori Kam --- drivers/common/mlx5/mlx5_devx_cmds.c |

[dpdk-dev] [PATCH v6 11/12] app/testpmd: add port and encap support for sample action

2020-09-08 Thread Jiawei Wang
Use sample action with ratio is 1 for mirroring flow, add supports to set the different port or encap action for mirrored packets. The example of test-pmd command: 1. set sample_actions 1 port_id id 1 / end flow create 0 ... pattern eth / end actions sample ratio 1 index 1 / port_id id

[dpdk-dev] [PATCH v6 06/12] net/mlx5: update translate function for sample action

2020-09-08 Thread Jiawei Wang
Translate the attribute of sample action that include sample ratio and sub actions list, then create the sample DR action. The metadata register value will be lost in the default path after Sampler in FDB due to CX5 HW limitation. Since source vport also be shared with metadata register c0, MLX5 PM

[dpdk-dev] [PATCH v6 02/12] common/mlx5: glue for sample action

2020-09-08 Thread Jiawei Wang
rdma-core introduce a new DR sample action. Add the rdma-core commands in glue to create this action. Sample action is used for creating the sample object to implement the sampling/mirroring function. Signed-off-by: Jiawei Wang --- drivers/common/mlx5/linux/meson.build | 2 ++ drivers/common/

[dpdk-dev] [PATCH v6 01/12] ethdev: introduce sample action for rte flow

2020-09-08 Thread Jiawei Wang
When using full offload, all traffic will be handled by the HW, and directed to the requested VF or wire, the control application loses visibility on the traffic. So there's a need for an action that will enable the control application some visibility. The solution is introduced a new action that

[dpdk-dev] [PATCH v6 05/12] net/mlx5: split sample flow into two sub flows

2020-09-08 Thread Jiawei Wang
Add the sampler action resource structs definition. The flow with sample action will be splited into two sub flows, the prefix flow with sample action, the suffix flow with the left actions. For the prefix flow, add the extra the tag action with unique id to metadata register, and suffix flow wil

[dpdk-dev] [PATCH v6 09/12] net/mlx5: update validation for mirroring flow

2020-09-08 Thread Jiawei Wang
Mirroring flow using sample action with ratio is 1, and it doesn't support jump action with the same one flow. Sample action must have destination actions like port or queue for mirroring, and don't need split function as sampling flow. Signed-off-by: Jiawei Wang --- drivers/net/mlx5/mlx5_flow.

[dpdk-dev] [PATCH v6 08/12] common/mlx5: add glue function for mirroring

2020-09-08 Thread Jiawei Wang
Using extend Destination list in the FTE to implement the mirroring feature. Add two new rdma-core command for create group action and multiple destination action. Group action which is a group of sub-action will be used together for input to multiple destination action. Multiple destination act

[dpdk-dev] [PATCH v6 00/12] support the flow-based traffic sampling

2020-09-08 Thread Jiawei Wang
This patch set implement the flow sampling for mlx5 driver. The solution is introduced a new rte_flow action that will sample the incoming traffic and send a duplicated traffic with the specified ratio to the application, while the original packet will continue to the target destination. If the

[dpdk-dev] [PATCH v6 07/12] app/testpmd: add testpmd command for sample action

2020-09-08 Thread Jiawei Wang
Add a new testpmd command 'set sample_actions' that supports the multiple sample actions list configuration by using the index: set sample_actions The examples for the sample flow use case and result as below: 1. set sample_actions 0 mark id 0x8 / queue index 2 / end .. pattern eth / end action

[dpdk-dev] [PATCH v6 04/12] net/mlx5: add the validate sample action

2020-09-08 Thread Jiawei Wang
Add sample action validate function. For Sample flow support NIC-RX and FDB domain, must include an action of a dest TIR in NIC_RX. Only NIC_RX support with addition optional actions. FDB doesn't support any optional action, the sampled packets is always goes to e-switch manager port. Signed-off

Re: [dpdk-dev] [PATCH v3 0/5] fix vector rx burst for PMDs

2020-09-08 Thread Wang, Haiyue
> -Original Message- > From: Guo, Jia > Sent: Wednesday, September 9, 2020 14:37 > To: Yang, Qiming ; Xing, Beilei > ; Zhao1, Wei > ; Zhang, Qi Z ; Wu, Jingjing > > Cc: Richardson, Bruce ; dev@dpdk.org; Guo, Jia > ; Zhang, > Helin ; m...@smartsharesystems.com; Yigit, Ferruh > ; Wang,

[dpdk-dev] [PATCH v3 3/5] net/i40e: fix vector rx burst for i40e

2020-09-08 Thread Jeff Guo
The limitation of burst size in vector rx was removed, since it should retrieve as much received packets as possible. And also the scattered receive path should use a wrapper function to achieve the goal of burst maximizing. And do some code cleaning for vector rx path. Signed-off-by: Jeff Guo --

[dpdk-dev] [PATCH v3 0/5] fix vector rx burst for PMDs

2020-09-08 Thread Jeff Guo
The limitation of burst size in vector rx was removed, since it should retrieve as much received packets as possible. And also the scattered receive path should use a wrapper function to achieve the goal of burst maximizing. This patch set aims to maximize vector rx burst for for ixgbe/i40e/ice/ia

[dpdk-dev] [PATCH v3 1/5] net/iavf: fix vector rx burst for iavf

2020-09-08 Thread Jeff Guo
The limitation of burst size in vector rx was removed, since it should retrieve as much received packets as possible. And also the scattered receive path should use a wrapper function to achieve the goal of burst maximizing. And do some code cleaning for vector rx path. Signed-off-by: Jeff Guo --

[dpdk-dev] [PATCH v3 5/5] net/fm10k: fix vector rx burst for fm10k

2020-09-08 Thread Jeff Guo
The scattered receive path should use a wrapper function to achieve the goal of burst maximizing. And do some code cleaning for vector rx path. Signed-off-by: Jeff Guo --- drivers/net/fm10k/fm10k_rxtx_vec.c | 42 +++--- 1 file changed, 33 insertions(+), 9 deletions(-) di

[dpdk-dev] [PATCH v3 2/5] net/ixgbe: fix vector rx burst for ixgbe

2020-09-08 Thread Jeff Guo
The limitation of burst size in vector rx was removed, since it should retrieve as much received packets as possible. And also the scattered receive path should use a wrapper function to achieve the goal of burst maximizing. And do some code cleaning for vector rx path. Signed-off-by: Jeff Guo --

[dpdk-dev] [PATCH v3 4/5] net/ice: fix vector rx burst for ice

2020-09-08 Thread Jeff Guo
The limitation of burst size in vector rx was removed, since it should retrieve as much received packets as possible. And also the scattered receive path should use a wrapper function to achieve the goal of burst maximizing. And do some code cleaning for vector rx path. Signed-off-by: Jeff Guo --

Re: [dpdk-dev] [dpdk-stable] [PATCH v4] lib/table: fix cache alignment issue

2020-09-08 Thread Xu, Ting
Hi, All Sorry to bother you again. Since the next release is coming, and this patch is deferred for some time, I'd like to know that shall we continue to merge it? What is the key issue that blocks us? Thanks! Best Regards, Xu Ting > -Original Message- > From: Kevin Traynor > Sent: Th

Re: [dpdk-dev] [PATCH v1 1/3] lib/mirror: introduce traffic mirror API

2020-09-08 Thread Fu, Patrick
> -Original Message- > From: Wang, Haiyue > Sent: Wednesday, September 9, 2020 9:10 AM > To: Fu, Patrick ; dev@dpdk.org > Cc: tho...@monjalon.net; Yigit, Ferruh ; > maxime.coque...@redhat.com; Richardson, Bruce > ; mm6...@att.com; Wang, Zhihong > ; Wang, Liang-min ; > Ananyev, Konstantin ;

Re: [dpdk-dev] [PATCH v3] net/iavf: refactor RSS

2020-09-08 Thread Zhang, Qi Z
> -Original Message- > From: Guo, Jia > Sent: Wednesday, September 9, 2020 1:16 PM > To: Zhang, Qi Z > Cc: Guo, Junfeng ; Zhang, AlvinX > ; dev@dpdk.org; Xing, Beilei > Subject: RE: [PATCH v3] net/iavf: refactor RSS > > Acked-by: Jeff Guo > > Best regards, > Jeff Guo > > > -Or

[dpdk-dev] [PATCH 2/2] config: add Graviton2(arm64) defconfig

2020-09-08 Thread Vimal Chungath
Add make configuration for Graviton2 platform with 64-bit ARM Neoverse N1 cores. Sample build steps: make config T=arm64-graviton2-linux-gcc O=arm64-build make -C arm64-build OR make config T=graviton2 O=arm64-build make -C arm64-build For more information about Graviton2 platform, refer to: http

[dpdk-dev] [PATCH 0/2] build: add Graviton2(arm64) config

2020-09-08 Thread Vimal Chungath
These two patches add meson and make build configuration for AWS Graviton2 platform. I plan to send platform guide patch separately. Vimal Chungath (2): config: add Graviton2(arm64) meson configuration config: add Graviton2(arm64) defconfig config/arm/arm64_graviton2_linux_gcc | 17

[dpdk-dev] [PATCH 1/2] config: add Graviton2(arm64) meson configuration

2020-09-08 Thread Vimal Chungath
Add meson build configuration for Graviton2 platform with 64-bit ARM Neoverse N1 cores. This patch makes the following changes to generic Neoverse N1 config: 1. increase lcore limit to 64 2. increase memory support to 1TB 3. remove +crc from -march as that is default when setting armv8.2 For more

[dpdk-dev] [RFC v2 1/1] app/testpmd: distinguish ICMP identifier fields in packet

2020-09-08 Thread Li Zhang
Ability to distinguish ICMP identifier fields in packets. Dstinguish ICMP sequence number field too. Already supports ICMP code and type fields in current version. Existing fields in ICMP header contain the required information. ICMP header already is supported and no code change in RTE FLOW. Exten

Re: [dpdk-dev] [RFC] app/testpmd: distinguish ICMP identifier fields in packet

2020-09-08 Thread Li Zhang
Thanks! I update it now. Regards, Li Zhang -Original Message- From: Thomas Monjalon Sent: Tuesday, September 8, 2020 8:56 PM To: Li Zhang Cc: Dekel Peled ; Ori Kam ; Slava Ovsiienko ; Matan Azrad ; dev@dpdk.org; Raslan Darawsheh Subject: Re: [RFC] app/testpmd: distinguish ICMP ident

[dpdk-dev] [RFC v2 1/1] app/testpmd: distinguish ICMP identifier fields in packet

2020-09-08 Thread Li Zhang
From: lizh Ability to distinguish ICMP identifier fields in packets. Dstinguish ICMP sequence number field too. Already supports ICMP code and type fields in current version. Existing fields in ICMP header contain the required information. ICMP header already is supported and no code change in RT

[dpdk-dev] [PATCH v1] net/iavf: support flex desc metadata extraction

2020-09-08 Thread Jeff Guo
Enable metadata extraction for flexible descriptors in AVF, that would allow network function directly get metadata without additional parsing which would reduce the CPU cost for VFs. The enabling metadata extractions involve the metadata of VLAN/IPv4/IPv6/IPv6-FLOW/TCP/OVS/ MPLS flexible descripto

[dpdk-dev] [PATCH V2 2/3] net/hns3: support FEC

2020-09-08 Thread Min Hu (Connor)
Forward error correction (FEC) is a bit error correction mode. It adds error correction information to data packets at the transmit end, and uses the error correction information to correct the bit errors generated during data packet transmission at the receive end. This improves signal quality but

[dpdk-dev] [PATCH V2 3/3] app/testpmd: add FEC command

2020-09-08 Thread Min Hu (Connor)
This commit adds testpmd capability to query and config FEC function of device. This includes: - show FEC capabilities, example: testpmd> show port 0 fec capabilities - show FEC mode, example: testpmd> show port 0 fec_mode - config FEC mode, example: testpmd> set port 0

[dpdk-dev] [PATCH V2 1/3] ethdev: introduce FEC API

2020-09-08 Thread Min Hu (Connor)
This patch adds Forward error correction(FEC) support for ethdev. Introduce APIs which support query and config FEC information in hardware. Signed-off-by: Min Hu (Connor) Reviewed-by: Wei Hu (Xavier) Reviewed-by: Chengwen Feng Reviewed-by: Chengchang Tang --- lib/librte_ethdev/rte_ethdev.c

[dpdk-dev] [PATCH V2 0/3] add FEC support

2020-09-08 Thread Min Hu (Connor)
This series add FEC support for ethdev. Min Hu (Connor) (3): ethdev: introduce FEC API net/hns3: support FEC app/testpmd: add FEC command app/test-pmd/cmdline.c | 219 +++ app/test-pmd/config.c| 54 app/test-pmd/te

Re: [dpdk-dev] [RFC] ethdev: make rte flow API thread safe

2020-09-08 Thread Suanming Mou
> -Original Message- > From: Stephen Hemminger > Sent: Wednesday, September 9, 2020 12:03 AM > To: NBU-Contact-Thomas Monjalon > Cc: Suanming Mou ; Ori Kam ; > Matan Azrad ; Shahaf Shuler ; > Viacheslav Ovsiienko ; Ferruh Yigit > ; Andrew Rybchenko ; > dev@dpdk.org; joyce.k...@arm.com;

Re: [dpdk-dev] [RFC] ethdev: make rte flow API thread safe

2020-09-08 Thread Suanming Mou
> -Original Message- > From: Stephen Hemminger > Sent: Tuesday, September 8, 2020 10:52 PM > To: Suanming Mou > Cc: Ori Kam ; John McNamara > ; Marko Kovacevic ; > Matan Azrad ; Shahaf Shuler ; > Viacheslav Ovsiienko ; NBU-Contact-Thomas > Monjalon ; Ferruh Yigit ; > Andrew Rybchenko ;

[dpdk-dev] [PATCH v2] raw/dpaa2_qdma: fix missing parentheses

2020-09-08 Thread wangyunjian
From: Yunjian Wang This issue detected by coverity, CID#279443(Structurally dead code). Coverity issue: 279443 Fixes: c22fab9a6c34 ("raw/dpaa2_qdma: support configuration APIs") Cc: sta...@dpdk.org Signed-off-by: Yunjian Wang --- v2: fix spelling in commit log --- drivers/raw/dpaa2_qdma/dpaa2

Re: [dpdk-dev] [PATCH v1 1/3] lib/mirror: introduce traffic mirror API

2020-09-08 Thread Wang, Haiyue
> -Original Message- > From: dev On Behalf Of Patrick Fu > Sent: Wednesday, September 9, 2020 08:23 > To: dev@dpdk.org > Cc: tho...@monjalon.net; Yigit, Ferruh ; > maxime.coque...@redhat.com; > Richardson, Bruce ; mm6...@att.com; Wang, Zhihong > ; > Wang, Liang-min ; Ananyev, Konstantin

[dpdk-dev] [PATCH v1 2/3] lib/mirror: add port based mirroring

2020-09-08 Thread Patrick Fu
This patch add port based mirroring support for the mirror lib. The port based mirroring is unconditional traffic mirroring between 2 ethdev ports. Signed-off-by: Liang-min Wang Signed-off-by: Patrick Fu Signed-off-by: Timothy Miskell --- lib/librte_mirror/rte_mirror.c | 57 +++

[dpdk-dev] [PATCH v1 0/3] lib: introduce traffic mirroring lib

2020-09-08 Thread Patrick Fu
Network Test Access Point (TAP) is the network monitoring service commonly adotpted in SDN-based network infrastructures. When VMs are inter-connected over virtual switches, TAP requires vSwitch to mirror out network traffics from specific workload VM ports to the TAP device/VM ports. Classical mir

[dpdk-dev] [PATCH v1 1/3] lib/mirror: introduce traffic mirror API

2020-09-08 Thread Patrick Fu
Network Test Access Point (TAP) is the network monitoring service commonly adotpted in SDN-based network infrastructures. When VMs are inter-connected over virtual switches, TAP requires vSwitch to mirror out network traffics from specific workload VM ports to the TAP device/VM ports. This patch i

[dpdk-dev] [PATCH v1 3/3] lib/mirror: add flow based mirroring

2020-09-08 Thread Patrick Fu
This patch add flow based mirroring support to the mirror lib. The flow based mirroring is traffic mirroring with flow rules. Applications may either use a customized callback to apply their own flow rules, or use MAC matching rules implemented by mirror lib. Signed-off-by: Liang-min Wang Signed-

Re: [dpdk-dev] [EXT] Re: [PATCH v7 1/3] ethdev: add level support for RSS offload types

2020-09-08 Thread Ajit Khaparde
On Mon, Sep 7, 2020 at 1:12 AM Andrew Rybchenko wrote: > On 9/3/20 4:14 PM, Ferruh Yigit wrote: > > On 9/3/2020 11:11 AM, Kiran Kumar Kokkilagadda wrote: > >> *From:* Ajit Khaparde > >> *Sent:* Tuesday, September 1, 2020 10:42 PM > >> *To:* Kiran Kumar Kokkilagadda > >> *Cc:* Ferruh Yigit ; Tho

Re: [dpdk-dev] [PATCH v2] regex/mlx5: add teardown flow to fastpath buffers

2020-09-08 Thread Thomas Monjalon
Yuval Avnery wrote: > Added missing code to free Input/Output buffers and memory > registration. > Also added calls to this code in case of error in the qp setup > procedure. > The rollback code itself did not handle rollback properly > and did not check return value from the fastpath setup. > > S

Re: [dpdk-dev] [PATCH v5] usertools: add huge page setup script

2020-09-08 Thread Thomas Monjalon
07/09/2020 10:58, Bruce Richardson: > On Mon, Sep 07, 2020 at 09:54:29AM +0100, Ferruh Yigit wrote: > > On 9/6/2020 4:42 AM, Stephen Hemminger wrote: > > > This is an improved version of the setup of huge pages > > > bases on earlier DPDK setup. Differences are: > > >* it autodetects NUMA vs no

Re: [dpdk-dev] [PATCH v4] usertools/dpdk-devbind: add support for PCI wildcards

2020-09-08 Thread Thomas Monjalon
28/08/2020 17:48, Ferruh Yigit: > On 8/24/2020 6:04 PM, Bruce Richardson wrote: > > When binding or unbinding a range of devices, it can be useful to use > > wildcards to specify the devices rather than repeating the same prefix > > multiple times. We can use the python "glob" module to give us thi

Re: [dpdk-dev] [PATCH 20.11] usertools/dpdk-devbind: hide "if" value for non-network devs

2020-09-08 Thread Thomas Monjalon
28/07/2020 12:12, Burakov, Anatoly: > On 27-Jul-20 2:44 PM, Bruce Richardson wrote: > > The "if", or interface, field in the status display of dpdk-devbind is only > > relevant for network interfaces, so don't display it for other device > > types. > > > > Signed-off-by: Bruce Richardson > > ---

[dpdk-dev] Minutes of Technical Board Meeting 2020-07-15

2020-09-08 Thread Stephen Hemminger
Members Attending - Bruce - Ferruh - Honnappa - Jerin - Kevin - Konstantin - Olivier - Stephen (chair) - Thomas The technical board meetings takes place every second Wednesday on IRC channel #dpdk-board, at 3pm UTC. Meetings are public and DPDK community members are welcome to attend. Next me

[dpdk-dev] [PATCH v3 41/41] examples/pipeline: add VXLAN encapsulation example

2020-09-08 Thread Cristian Dumitrescu
Add VXLAN encapsulation example to the SWX pipeline application. The VXLAN tunnels can be generated with the vxlan_table.py script. Example command line: ./build/pipeline -l0-1 -- -s ./examples/vxlan.cli Signed-off-by: Cristian Dumitrescu --- examples/pipeline/examples/vxlan.cli | 27

[dpdk-dev] [PATCH v3 40/41] examples/pipeline: add l2fwd with MAC swap example

2020-09-08 Thread Cristian Dumitrescu
Add L2 Forwarding example with MAC destination and source address swap to the SWX pipeline application. Example command line: ./build/pipeline -l0-1 -- -s ./examples/l2fwd_macswp.cli Signed-off-by: Cristian Dumitrescu --- examples/pipeline/examples/l2fwd_macswp.cli | 25 examples/pipe

[dpdk-dev] [PATCH v3 34/41] port: add source and sink SWX ports

2020-09-08 Thread Cristian Dumitrescu
Add the PCAP file-based source (input) and sink (output) port types for the SWX pipeline. The sink port is typically used to implement the packet drop pipeline action. Used under the hood by the pipeline rx and tx instructions. Signed-off-by: Cristian Dumitrescu --- lib/librte_port/meson.build

[dpdk-dev] [PATCH v3 36/41] examples/pipeline: add new example application

2020-09-08 Thread Cristian Dumitrescu
Add new example application to showcase the API of the newly introduced SWX pipeline type. Signed-off-by: Cristian Dumitrescu --- examples/meson.build | 1 + examples/pipeline/Makefile| 51 examples/pipeline/main.c | 52 examples/pipeline/meson.build | 16 + exam

[dpdk-dev] [PATCH v3 39/41] examples/pipeline: add l2fwd example

2020-09-08 Thread Cristian Dumitrescu
Add L2 Forwarding example to the SWX pipeline application. Example command line: ./build/pipeline -l0-1 -- -s ./examples/l2fwd.cli Signed-off-by: Cristian Dumitrescu --- examples/pipeline/examples/l2fwd.cli | 25 ++ examples/pipeline/examples/l2fwd.spec | 42 + examples/pi

[dpdk-dev] [PATCH v3 38/41] examples/pipeline: add configuration commands

2020-09-08 Thread Cristian Dumitrescu
Add CLI commands for application configuration and query. Signed-off-by: Cristian Dumitrescu --- examples/pipeline/Makefile|1 + examples/pipeline/cli.c | 1400 + examples/pipeline/cli.h | 19 + examples/pipeline/main.c | 11 +- exampl

[dpdk-dev] [PATCH v3 37/41] examples/pipeline: add message passing mechanism

2020-09-08 Thread Cristian Dumitrescu
Add network-based connectivity mechanism for the application to allow for the exchange of configuration messages through the network as opposed to local CLI only. Signed-off-by: Cristian Dumitrescu --- examples/pipeline/Makefile| 1 + examples/pipeline/conn.c | 331 +++

[dpdk-dev] [PATCH v3 35/41] table: add exact match SWX table

2020-09-08 Thread Cristian Dumitrescu
Add the exact match table type for the SWX pipeline. Used under the hood by the SWX pipeline table instruction. Signed-off-by: Cristian Dumitrescu --- lib/librte_table/meson.build | 6 +- lib/librte_table/rte_swx_table_em.c| 851 + lib/librte_table/rte_swx

[dpdk-dev] [PATCH v3 32/41] pipeline: add SWX pipeline specification file

2020-09-08 Thread Cristian Dumitrescu
Add support for building the SWX pipeline based on specification file with syntax aligned to the P4 language. The specification file may be generated by the P4C compiler in the future. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/meson.build |1 + lib/librte_pipeli

[dpdk-dev] [PATCH v3 27/41] pipeline: add SWX instruction verifier

2020-09-08 Thread Cristian Dumitrescu
Instruction verifier. Executes at instruction translation time during SWX pipeline build, i.e. at initialization instead of run-time. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 51 ++ 1 file changed, 51 insertions(+) diff --git a/lib/

[dpdk-dev] [PATCH v3 33/41] port: add ethernet device SWX port

2020-09-08 Thread Cristian Dumitrescu
Add the Ethernet device input/output port type for the SWX pipeline. Used under the hood by the pipeline rx and tx instructions. Signed-off-by: Cristian Dumitrescu --- lib/librte_port/meson.build | 6 +- lib/librte_port/rte_port_version.map | 3 +- lib/librte_port/rte_swx_port_eth

[dpdk-dev] [PATCH v3 26/41] pipeline: add SWX instruction description

2020-09-08 Thread Cristian Dumitrescu
Added SWX instruction set reference table. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.h | 109 + 1 file changed, 109 insertions(+) diff --git a/lib/librte_pipeline/rte_swx_pipeline.h b/lib/librte_pipeline/rte_swx_pipeline.h index fb83a88

[dpdk-dev] [PATCH v3 28/41] pipeline: add SWX instruction optimizer

2020-09-08 Thread Cristian Dumitrescu
Instruction optimizer. Detects frequent patterns and replaces them with some more powerful vector-like pipeline instructions without any user effort. Executes at instruction translation, not at run-time. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 226

[dpdk-dev] [PATCH v3 31/41] pipeline: add SWX table update high level API

2020-09-08 Thread Cristian Dumitrescu
High-level transaction-oriented API for SWX pipeline table updates. It supports multi-table atomic updates, i.e. multiple tables can be updated in a single step with only the before and after table set visible to the packets. Uses the lower-level table update mechanisms. Signed-off-by: Cristian Du

[dpdk-dev] [PATCH v3 29/41] pipeline: add SWX pipeline query API

2020-09-08 Thread Cristian Dumitrescu
Query API to be used by the control plane to detect the configuration and state of the SWX pipeline and its internal objects. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_pipeline_version.map | 10 + lib/librte_pipeline/rte_swx_ctl.h| 313 +++ lib/l

[dpdk-dev] [PATCH v3 30/41] pipeline: add SWX pipeline flush

2020-09-08 Thread Cristian Dumitrescu
Flush the packets currently buffered by the SWX pipeline output ports. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_pipeline_version.map | 1 + lib/librte_pipeline/rte_swx_pipeline.c | 13 + lib/librte_pipeline/rte_swx_pipeline.h | 12 3 fi

[dpdk-dev] [PATCH v3 25/41] pipeline: introduce SWX jmp and return instructions

2020-09-08 Thread Cristian Dumitrescu
The jump instructions are either unconditional (jmp) or conditional on positive/negative tests such as header validity (jmpv/jmpnv), table lookup hit/miss (jmph/jmpnh), executed action (jmpa/jmpna), equality (jmpeq/jmpneq), comparison result (jmplt/jmpgt). The return instruction resumes the pipelin

[dpdk-dev] [PATCH v3 19/41] pipeline: introduce SWX or instruction

2020-09-08 Thread Cristian Dumitrescu
The or (i.e. bitwise or) instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipelin

[dpdk-dev] [PATCH v3 22/41] pipeline: introduce SWX shr instruction

2020-09-08 Thread Cristian Dumitrescu
The shr (i.e. shift right) instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipel

[dpdk-dev] [PATCH v3 24/41] pipeline: introduce SWX extern instruction

2020-09-08 Thread Cristian Dumitrescu
The extern instruction calls one of the member functions of a given extern object or it calls the given extern function. The function arguments must be written in advance in the maibox. The results are available in the same place after execution. Signed-off-by: Cristian Dumitrescu --- lib/librte

[dpdk-dev] [PATCH v3 23/41] pipeline: introduce SWX table instruction

2020-09-08 Thread Cristian Dumitrescu
The table instruction looks up the input key into the table and then it triggers the execution of the action found in the table entry. On lookup miss, the default table action is executed. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 100 +++

[dpdk-dev] [PATCH v3 21/41] pipeline: introduce SWX shl instruction

2020-09-08 Thread Cristian Dumitrescu
The shl (i.e. shift left) instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeli

[dpdk-dev] [PATCH v3 18/41] pipeline: introduce SWX and instruction

2020-09-08 Thread Cristian Dumitrescu
The and (i.e. bitwise and) instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipel

[dpdk-dev] [PATCH v3 20/41] pipeline: introduce SWX xor instruction

2020-09-08 Thread Cristian Dumitrescu
The xor (i.e. bitwise exclusive or) instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_

[dpdk-dev] [PATCH v3 17/41] pipeline: introduce SWX cksub instruction

2020-09-08 Thread Cristian Dumitrescu
The cksub (i.e. checksum subtract) instruction is used to update the 1's complement sum commonly used by protocols such as IPv4, TCP or UDP. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 116 + 1 file changed, 116 insertions(+) diff --gi

[dpdk-dev] [PATCH v3 16/41] pipeline: introduce SWX ckadd instruction

2020-09-08 Thread Cristian Dumitrescu
The ckadd (i.e. checksum add) instruction is used to either compute, verify or update the 1's complement sum commonly used by protocols such as IPv4, TCP or UDP. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 230 + 1 file changed, 230 ins

[dpdk-dev] [PATCH v3 15/41] pipeline: introduce SWX sub instruction

2020-09-08 Thread Cristian Dumitrescu
The sub (i.e. subtract) instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline

[dpdk-dev] [PATCH v3 14/41] pipeline: introduce SWX add instruction

2020-09-08 Thread Cristian Dumitrescu
The add instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 302 +++

[dpdk-dev] [PATCH v3 13/41] pipeline: add SWX dma instruction

2020-09-08 Thread Cristian Dumitrescu
The DMA instruction handles the bulk read transfer of one header from the table entry action data. Typically used to generate headers, i.e. headers that are not extracted from the input packet. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 207 ++

[dpdk-dev] [PATCH v3 12/41] pipeline: add SWX mov instruction

2020-09-08 Thread Cristian Dumitrescu
The mov (i.e. move) instruction source can be header field (H), meta-data field (M), extern object (E) or function (F) mailbox field, table entry action data field (T) or immediate value (I). The destination is HMEF. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c |

[dpdk-dev] [PATCH v3 10/41] pipeline: add SWX tx and emit instructions

2020-09-08 Thread Cristian Dumitrescu
Add header emit and packet transmission instructions. Emit adds to the output packet a header that is either generated (e.g. read from table entry by action) or extracted from the input packet. TX ends the pipeline processing; discard is implemented by tx to special port. Signed-off-by: Cristian D

[dpdk-dev] [PATCH v3 11/41] pipeline: add header validate and invalidate SWX instructions

2020-09-08 Thread Cristian Dumitrescu
Add instructions to flag a header as valid or invalid. This flag can be tested by the jmpv (jump if header valid) and jmpnv (jump if header not valid) instructions. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_swx_pipeline.c | 108 + 1 file changed, 108

[dpdk-dev] [PATCH v3 09/41] pipeline: add SWX rx and extract instructions

2020-09-08 Thread Cristian Dumitrescu
Add packet reception and header extraction instructions. The RX must be the first pipeline instruction. Each extracted header is logically removed from the packet, then it can be read/written by instructions, emitted into the outgoing packet or discarded. Signed-off-by: Cristian Dumitrescu --- l

[dpdk-dev] [PATCH v3 07/41] pipeline: add SWX pipeline tables

2020-09-08 Thread Cristian Dumitrescu
Add tables to the SWX pipeline. The match fields are flexibly selected from the headers and meta-data. The set of table actions is flexibly selected for each table from the set of pipeline actions. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/meson.build | 3 +- lib/

[dpdk-dev] [PATCH v3 06/41] pipeline: add SWX pipeline action

2020-09-08 Thread Cristian Dumitrescu
Add SWX actions that are dynamically-defined through instructions as opposed to pre-defined. The actions are subroutines of the pipeline program that triggered by table lookup. The input arguments are the action data from the table entry (format defined by struct), the headers and meta-data are in/

[dpdk-dev] [PATCH v3 05/41] pipeline: add SWX extern objects and funcs

2020-09-08 Thread Cristian Dumitrescu
Add extern objects and functions to plug into the SWX pipeline any functionality that cannot be efficiently implemented with existing instructions, e.g. special checksum/ECC, crypto, meters, stats arrays, heuristics, etc. In/out arguments are passed through mailbox with format defined by struct. S

[dpdk-dev] [PATCH v3 04/41] pipeline: add SWX headers and meta-data

2020-09-08 Thread Cristian Dumitrescu
Add support for dynamically-defined packet headers and meta-data to the SWX pipeline. The header and meta-data format are defined by the struct type they instantiate. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_pipeline_version.map | 3 + lib/librte_pipeline/rte_swx_pipeline

[dpdk-dev] [PATCH v3 08/41] pipeline: add SWX pipeline instructions

2020-09-08 Thread Cristian Dumitrescu
The SWX pipeline instructions represent the main program that defines the life of the packet. As packets go through tables that trigger action subroutines, the headers and meta-data get transformed along the way. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/rte_pipeline_version.map

[dpdk-dev] [PATCH v3 01/41] pipeline: add new SWX pipeline type

2020-09-08 Thread Cristian Dumitrescu
Add new improved Software Switch (SWX) pipeline type that supports dynamically-defined packet headers, meta-data, actions and pipelines. Actions and pipelines are defined through instructions. Signed-off-by: Cristian Dumitrescu --- lib/librte_pipeline/meson.build | 10 ++- lib/librt

[dpdk-dev] [PATCH v3 02/41] pipeline: add SWX pipeline input port

2020-09-08 Thread Cristian Dumitrescu
Add input ports to the newly introduced SWX pipeline type. Each port instantiates a port type that defines the port operations, e.g. ethdev port, PCAP port, etc. The RX interface is single packet, with packet batching internally for performance. Signed-off-by: Cristian Dumitrescu --- lib/librte_

[dpdk-dev] [PATCH v3 00/41] Pipeline alignment with the P4 language

2020-09-08 Thread Cristian Dumitrescu
This patch set introduces a new pipeline type that combines the DPDK performance with the flexibility of the P4-16 language[1]. The new API can be used either by itself to code a complete software switch (SWX) or data plane app, or in combination with the open-source P4 compiler P4C [2], potentiall

[dpdk-dev] [PATCH v3 03/41] pipeline: add SWX pipeline output port

2020-09-08 Thread Cristian Dumitrescu
Add output ports to the newly introduced SWX pipeline type. Each port instantiates a port type that defines the port operations, e.g. ethdev port, PCAP port, etc. The TX interface is single packet, with packet batching internally for performance. Signed-off-by: Cristian Dumitrescu --- lib/librte

[dpdk-dev] [PATCH v2 4/4] app/testpmd: support tunnel offload API

2020-09-08 Thread Gregory Etelson
Tunnel Offload API provides hardware independent, unified model to offload tunneled traffic. Key model elements are: - apply matches to both outer and inner packet headers during entire offload procedure; - restore outer header of partially offloaded packet; - model is implemented as a set of

[dpdk-dev] [PATCH v2 3/4] net/mlx5: implement tunnel offload API

2020-09-08 Thread Gregory Etelson
From: Gregory Etelson Tunnel Offload API provides hardware independent, unified model to offload tunneled traffic. Key model elements are: - apply matches to both outer and inner packet headers during entire offload procedure; - restore outer header of partially offloaded packet; - model is

[dpdk-dev] [PATCH v2 1/4] ethdev: allow negative values in flow rule types

2020-09-08 Thread Gregory Etelson
From: Gregory Etelson RTE flow items & actions use positive values in item & action type. Negative values are reserved for PMD private types. PMD items & actions usually are not exposed to application and are not used to create RTE flows. The patch allows applications with access to PMD flow ite

[dpdk-dev] [PATCH v2 2/4] ethdev: tunnel offload model

2020-09-08 Thread Gregory Etelson
From: Eli Britstein Rte_flow API provides the building blocks for vendor agnostic flow classification offloads. The rte_flow match and action primitives are fine grained, thus enabling DPDK applications the flexibility to offload network stacks and complex pipelines. Applications wishing to off

[dpdk-dev] [PATCH v2 0/4] Tunnel Offload API

2020-09-08 Thread Gregory Etelson
Tunnel Offload API provides hardware independent, unified model to offload tunneled traffic. Key model elements are: - apply matches to both outer and inner packet headers during entire offload procedure; - restore outer header of partially offloaded packet; - model is implemented as a set of

[dpdk-dev] [PATCH] timer: remove experimental tag for some APIs

2020-09-08 Thread Erik Gabriel Carrillo
Some new APIs were added to the timer library in the 19.05 release, and there have been no changes to their interfaces since then. These functions can be considered stable enough to remove their 'experimental' tag. Signed-off-by: Erik Gabriel Carrillo --- lib/librte_timer/rte_timer.h |

Re: [dpdk-dev] [PATCH v2 0/1] doc: document vfio-pci usage with QAT PMD

2020-09-08 Thread Mcnamara, John
> -Original Message- > From: Dybkowski, AdamX > Sent: Tuesday, September 8, 2020 5:20 PM > To: dev@dpdk.org; Trahe, Fiona ; > akhil.go...@nxp.com; Mcnamara, John > Cc: Dybkowski, AdamX > Subject: [PATCH v2 0/1] doc: document vfio-pci usage with QAT PMD > >... > > doc/guides/cryptodevs

[dpdk-dev] [PATCH v7 1/2] net/ark: remove compile time log macros in favor of run time log control

2020-09-08 Thread Ed Czeck
Use ARK_PMD_LOG in place of PMD_DRV_LOG, PMD_DEBUG_LOG, PMD_FUNC_LOG, PMD_STATS_LOG, PMD_RX_LOG, and PMD_TX_LOG. Review and adjust log levels and messages as needed. Signed-off-by: Ed Czeck --- doc/guides/nics/ark.rst | 13 -- drivers/net/ark/ark_ddm.c | 12 ++--- drivers/net/a

[dpdk-dev] [PATCH v7 2/2] net/ark: remove RTE_LIBRTE_ARK_PAD_TX configuration macro

2020-09-08 Thread Ed Czeck
Replace behavior with RTE_LIBRTE_ARK_MIN_TX_PKTLEN with a default value of 0. Update documentation as needed. Signed-off-by: Ed Czeck --- v7: -- add ARK_MIN_TX_PKTLEN to conditional expression to avoid compile warning with icc. -- restore CONFIG_RTE_LIBRTE_ARK_PMD doc as requested. --- d

[dpdk-dev] [PATCH v2 0/1] doc: document vfio-pci usage with QAT PMD

2020-09-08 Thread Adam Dybkowski
This patch marks the old igb-uio driver as unsecure when used with the QAT PMD and updates all examples to recommend using vfio-pci instead. It also mentions security issues with the QAT CPM and provides information about the new vfio-pci parameter 'disable_denylist' available in Linux kernels 5.9

  1   2   >