Anatoly Burakov [Wed, 4 Apr 2018 14:40:45 +0000 (15:40 +0100)]
mem: do not use physical addresses in IOVA as VA mode
We already use VA addresses for IOVA purposes everywhere if we're in
RTE_IOVA_VA mode:
1) rte_malloc_virt2phy()/rte_malloc_virt2iova() always return VA addresses
2) Because of 1), memzone's IOVA is set to VA address on reserve
3) Because of 2), mempool's IOVA addresses are set to VA addresses
The only place where actual physical addresses are stored is in memsegs at
init time, but we're not using them anywhere, and there is no external API
to get those addresses (aside from manually iterating through memsegs), nor
should anyone care about them in RTE_IOVA_VA mode.
So, fix EAL initialization to allocate VA-contiguous segments at the start
without regard for physical addresses (as if they weren't available), and
use VA to set final IOVA addresses for all pages.
Fixes:
62196f4e0941 ("mem: rename address mapping function to IOVA")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Anatoly Burakov [Wed, 4 Apr 2018 14:40:44 +0000 (15:40 +0100)]
app/crypto-perf: fix IOVA translation
IOVA addresses should be found by calling rte_virt2iova() as
opposed to rte_virt2phy(), as physical address may not be
equal to IOVA address.
Fixes:
2eb6a1a3e5fc ("app/crypto-perf: fix crypto op init")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Hemant Agrawal [Mon, 9 Apr 2018 08:58:37 +0000 (14:28 +0530)]
usertools: change to SPDX license identifier
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Hemant Agrawal [Mon, 9 Apr 2018 08:58:36 +0000 (14:28 +0530)]
usertools: add missing SPDX identifier
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Shahaf Shuler [Tue, 20 Mar 2018 19:20:35 +0000 (21:20 +0200)]
align SPDX Mellanox copyrights
Aligning Mellanox SPDX copyrights to a single format.
In addition replace to SPDX licence files which were missed.
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Jan Viktorin [Mon, 9 Apr 2018 22:15:58 +0000 (00:15 +0200)]
eal/arm: use SPDX tag for Cavium and RehiveTech copyright file
Replace the BSD license header with the SPDX tag for files
with a RehiveTech and Cavium copyright on them.
Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Jan Viktorin [Mon, 9 Apr 2018 22:15:53 +0000 (00:15 +0200)]
use SPDX tag for RehiveTech copyright files
Replace the BSD license header with the SPDX tag for files
with only an RehiveTech copyright on them.
Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Pablo de Lara [Wed, 28 Mar 2018 19:30:40 +0000 (20:30 +0100)]
maintainers: call out subtree committers
The MAINTAINERS file contains information of the maintainers
of the different components on DPDK.
However, it does not give any information on who maintains the
different subtrees which accept new commits for these components.
This commit adds a list of the subtree committers.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Wed, 4 Apr 2018 15:13:03 +0000 (16:13 +0100)]
maintainers: maintain avf PMD in next-net-intel
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Yong Wang [Fri, 30 Mar 2018 21:57:02 +0000 (14:57 -0700)]
maintainers: claim responsibility for vmxnet3
Signed-off-by: Yong Wang <yongwang@vmware.com>
Pavan Nikhilesh [Sun, 4 Mar 2018 14:58:31 +0000 (20:28 +0530)]
hash: fix missing spinlock unlock in add key
Fix missing spinlock unlock during add key when key is already present.
Fixes:
be856325cba3 ("hash: add scalable multi-writer insertion with Intel TSX")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Jasvinder Singh [Tue, 10 Apr 2018 09:51:32 +0000 (10:51 +0100)]
examples/ip_pipeline: skip in FreeBSD build
IP_Pipeline app is not supported in FreeBSD environment. Therefore,
skip it while building the sample apps on FreeBSD.
Fixes:
4bbf8e30aa5e ("examples/ip_pipeline: add CLI interface")
Fixes:
2f74ae28e23f ("examples/ip_pipeline: add tap object")
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 5 Apr 2018 11:49:59 +0000 (12:49 +0100)]
doc: add meter API change to release notes
Update the release notes with meter api change to support configuration
profiles.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Fri, 30 Mar 2018 14:31:08 +0000 (15:31 +0100)]
examples/ip_pipeline: add ECMP route example
Add example to build pipeline to demonstrate equal-cost multi-path
routing example.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Fri, 30 Mar 2018 14:31:07 +0000 (15:31 +0100)]
examples/ip_pipeline: fix load balance table action
Fix bug in load balance action for pipeline table.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:08 +0000 (19:32 +0100)]
examples/ip_pipeline: add flow classification example
Add example to build pipeline with hash table to classify the
ingress traffic.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:07 +0000 (19:32 +0100)]
examples/ip_pipeline: add firewall example
Add example to built pipeline with ACL table to demonstrate
the firewall operation.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:06 +0000 (19:32 +0100)]
examples/ip_pipeline: add route example
Add example to built pipeline with LPM table to demonstrate layer 3
routing.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:05 +0000 (19:32 +0100)]
examples/ip_pipeline: add TAP port example
Add example to illustrate the pipeline functioning with TAP
interface.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:04 +0000 (19:32 +0100)]
examples/ip_pipeline: add KNI port example
Add example to illustrate the pipeline functioning with KNI
interface.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:03 +0000 (19:32 +0100)]
examples/ip_pipeline: add l2fwd example
This patch add the configuration file for l2fwd example. It
includes commands to build the packet processing stage (pipeline),
defining action, add rules to its table, etc.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:02 +0000 (19:32 +0100)]
examples/ip_pipeline: add load balance action command
Add command for load balance action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:01 +0000 (19:32 +0100)]
examples/ip_pipeline: add TTL stats command
Add command to read the ttl stats.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:32:00 +0000 (19:32 +0100)]
examples/ip_pipeline: add DSCP table update command
Add command to update the dscp table for traffic meter and traffic
manager.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:59 +0000 (19:31 +0100)]
examples/ip_pipeline: add meter stats command
Add command to read traffic meter stats.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:58 +0000 (19:31 +0100)]
examples/ip_pipeline: add meter profile commands
Add commands to configure the traffic meter profile.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:57 +0000 (19:31 +0100)]
examples/ip_pipeline: add table entry stats command
Add command to read the pipeline table entry stats.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:56 +0000 (19:31 +0100)]
examples/ip_pipeline: add table bulk add command
Add cli for adding bulk entries to pipeline table.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:55 +0000 (19:31 +0100)]
examples/ip_pipeline: add table entry delete command
Add command to delete the pipeline table entry.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:54 +0000 (19:31 +0100)]
examples/ip_pipeline: add table entry commands
Add commands to add pipeline table entries which contains match and
action part.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:53 +0000 (19:31 +0100)]
examples/ip_pipeline: add stats read commands
Add commands to read the pipeline port in, port out
and table stats.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:52 +0000 (19:31 +0100)]
examples/ip_pipeline: add port enable and disable commands
Add commands to enable and disable the pipeline ports.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:51 +0000 (19:31 +0100)]
examples/ip_pipeline: add enable and disable commands
Add commands to enable and disable the pipeline on the thread.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:50 +0000 (19:31 +0100)]
examples/ip_pipeline: add thread runtime
Add runtime thread functions for the pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:49 +0000 (19:31 +0100)]
examples/ip_pipeline: add threads
Add threads data structure and initialisation functions to run
the pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:48 +0000 (19:31 +0100)]
examples/ip_pipeline: add pipeline object
Add pipeline object implementation to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:47 +0000 (19:31 +0100)]
examples/ip_pipeline: add action profile objects
Add action profile object implementation to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:46 +0000 (19:31 +0100)]
examples/ip_pipeline: add KNI object
Add kni object implementation to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:45 +0000 (19:31 +0100)]
examples/ip_pipeline: add tap object
Add tap object implementation to the application
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:44 +0000 (19:31 +0100)]
examples/ip_pipeline: add traffic manager object
Add traffic manager object implementation to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:43 +0000 (19:31 +0100)]
examples/ip_pipeline: add sw queue object
Add swq object implementation to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:42 +0000 (19:31 +0100)]
examples/ip_pipeline: add link object
Add link object implementation to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:41 +0000 (19:31 +0100)]
examples/ip_pipeline: add mempool object
Add mempool object implementation to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:40 +0000 (19:31 +0100)]
examples/ip_pipeline: add CLI interface
CLI interface allowing connectivity with external agent (e.g. telnet,
netcat, Python script, etc) is added to the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:39 +0000 (19:31 +0100)]
examples/ip_pipeline: remove infra code
All the actions associated with application pipelines
tables and ports are now implemented using the new action
APIs. Therefore, thousands of lines of code are eliminated
from the application. The reduced code size is easier to
maintain and extend.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:38 +0000 (19:31 +0100)]
examples/ip_pipeline: remove config
Remove application configuration and script files.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:37 +0000 (19:31 +0100)]
examples/ip_pipeline: remove master pipeline
remove master pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:36 +0000 (19:31 +0100)]
examples/ip_pipeline: remove firewall pipeline
Remove firewall pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:35 +0000 (19:31 +0100)]
examples/ip_pipeline: remove flow actions pipeline
Remove flow actions pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:34 +0000 (19:31 +0100)]
examples/ip_pipeline: remove flow classification pipeline
Remove flow classification pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:33 +0000 (19:31 +0100)]
examples/ip_pipeline: remove routing pipeline
Remove routing pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:32 +0000 (19:31 +0100)]
examples/ip_pipeline: remove passthrough pipeline
remove passthrough pipeline.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:31 +0000 (19:31 +0100)]
table: remove incorrect check for ACL
Remove wrong check for table entry pointer.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:30 +0000 (19:31 +0100)]
pipeline: add port in action APIs
This API provides a common set of actions for pipeline input ports to speed
up application development.
Each pipeline input port can be assigned an action handler to be executed
on every input packet during the pipeline execution.
The pipeline library allows the user to define his own input port actions
by providing customized input port action handler. While the user can
still follow this process, this API is intended to provide a quicker
development alternative for a set of predefined actions.
The typical steps to use this API are:
* Define an input port action profile.
* Instantiate the input port action profile to create input port action
objects.
* Use the input port action to generate the input port action handler
invoked by the pipeline.
* Use the input port action object to generate the internal data structures
used by the input port action handler based on given action parameters.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:29 +0000 (19:31 +0100)]
pipeline: add load balance action
Add implementation of the load balance action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:28 +0000 (19:31 +0100)]
pipeline: add timestamp action
Add implementation of timestamp action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:27 +0000 (19:31 +0100)]
pipeline: add statistics read action
Add implementation of stats read action
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:26 +0000 (19:31 +0100)]
pipeline: add TTL update action
Add implementation of ttl update action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:25 +0000 (19:31 +0100)]
pipeline: add NAT action
Add implementation of Network Address Translation(NAT) action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:24 +0000 (19:31 +0100)]
pipeline: add packet encapsulation action
Add implementation of different type of packet encap
such as vlan, qinq, mpls, pppoe, etc.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:23 +0000 (19:31 +0100)]
pipeline: add traffic manager action
Add implementation of traffic manager action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:22 +0000 (19:31 +0100)]
pipeline: add traffic metering action
Add traffic metering action implementation.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:21 +0000 (19:31 +0100)]
pipeline: get table action params
Add API to specify action related parameters such as action
handler, table entry data size, etc. for the pipeline table.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Thu, 29 Mar 2018 18:31:20 +0000 (19:31 +0100)]
pipeline: add table action APIs
This API provides a common set of actions for pipeline tables to speed up
application development.
Each match-action rule added to a pipeline table has associated data
that stores the action context. This data is input to the table
action handler called for every input packet that hits the rule as
part of the table lookup during the pipeline execution.
The pipeline library allows the user to define his own table
actions by providing customized table action handlers (table
lookup) and complete freedom of setting the rules and their data
(table rule add/delete). While the user can still follow this
process, this API is intended to provide a quicker development
alternative for a set of predefined actions.
The typical steps to use this API are:
* Define a table action profile.
* Instantiate the table action profile to create table action objects.
* Use the table action object to generate the pipeline table action
handlers (invoked by the pipeline table lookup operation).
* Use the table action object to generate the rule data (for the
pipeline table rule add operation) based on given action parameters.
* Use the table action object to read action data (e.g. stats counters)
for any given rule.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Gaetan Rivet [Thu, 22 Mar 2018 10:28:44 +0000 (11:28 +0100)]
bus/fslmc: fix find device start condition
If start is set and a device before it matches the data,
this device is returned.
Fixes:
c7fe1eea8a74 ("bus: simplify finding starting point")
Cc: stable@dpdk.org
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Anatoly Burakov [Sat, 31 Mar 2018 17:08:13 +0000 (18:08 +0100)]
eal: provide API for querying valid socket ids
During lcore scan, find all socket ID's and store them, and
provide public API to query valid socket id's. This will break
the ABI, so bump ABI version.
Also, remove deprecation notice corresponding to this change.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Anatoly Burakov [Sat, 31 Mar 2018 17:06:16 +0000 (18:06 +0100)]
eal: add IPC asynchronous request
This API is similar to the blocking API that is already present,
but reply will be received in a separate callback by the caller
(callback specified at the time of request, rather than registering
for it in advance).
Under the hood, we create a separate thread to deal with replies to
asynchronous requests, that will just wait to be notified by the
main thread, or woken up on a timer.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Sat, 31 Mar 2018 17:06:15 +0000 (18:06 +0100)]
eal: rename IPC request as synchronous one
Rename rte_mp_request to rte_mp_request_sync to indicate
that this request will be done synchronously (as opposed to
asynchronous request, which comes in next patch).
Also, fix alphabetical ordering for .map file.
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Sat, 31 Mar 2018 17:06:14 +0000 (18:06 +0100)]
eal: rename IPC sync request to pending request
Originally, there was only one type of request which was used
for multiprocess synchronization (hence the name - sync request).
However, now that we are going to have two types of requests,
synchronous and asynchronous, having it named "sync request" is
very confusing, so we will rename it to "pending request". This
is internal-only, so no externally visible API changes.
Suggested-by: Jianfeng Tan <jianfeng.tan@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Pavan Nikhilesh [Wed, 4 Apr 2018 14:30:25 +0000 (20:00 +0530)]
common/octeontx: move mbox to common folder
Move commonly used functions across mempool, event and net devices to a
common folder in drivers.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Pavan Nikhilesh [Wed, 4 Apr 2018 14:30:24 +0000 (20:00 +0530)]
drivers: add common folder
Add driver/common folder and skeleton makefile for adding commonly used
functions across mempool, event and net devices.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Stephen Hemminger [Thu, 29 Mar 2018 17:05:30 +0000 (10:05 -0700)]
mbuf: fix truncated strncpy
Gcc-8 discovers issue with platform_mempool_ops.
rte_mbuf_pool_ops.c:26:3: error: ‘strncpy’ output truncated before
terminating nul copying as many bytes from a string as its length
[-Werror=stringop-truncation]
strncpy(mz->addr, ops_name, strlen(ops_name));
Since the ops_name is already checked for size, using strncpy
here is unnecessary; just use strcpy.
Fixes:
a3acc3144a76 ("mbuf: add pool ops selection functions")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Remy Horton [Tue, 20 Feb 2018 16:05:59 +0000 (16:05 +0000)]
metrics: fix potential missing string termination
Fixes a potential memory overrun detected by Coverity.
This overrun cannot currently happen in practice because
rte_metrics_reg_names() explicitly forces the last name
character to be a NULL terminator.
This patches uses strlcpy instead of strncpy to copy name strings.
Coverity issue: 143434
Fixes:
349950ddb9c5 ("metrics: add information metrics library")
Fixes:
710cab6f675a ("metrics: fix out of bound access")
Signed-off-by: Remy Horton <remy.horton@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Bruce Richardson [Mon, 12 Mar 2018 11:33:00 +0000 (11:33 +0000)]
convert snprintf to strlcpy
Since we have support for the strlcpy function in DPDK, replace all
instances where a string is copied using snprintf.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
Bruce Richardson [Mon, 12 Mar 2018 11:32:59 +0000 (11:32 +0000)]
eal: support strlcpy function
The strncpy function is error prone for doing "safe" string copies, so
we generally try to use "snprintf" instead in the code. The function
"strlcpy" is a better alternative, since it better conveys the
intention of the programmer, and doesn't suffer from the non-null
terminating behaviour of it's n'ed brethern.
The downside of this function is that it is not available by default
on linux, though standard in the BSD's. It is available on most
distros by installing "libbsd" package.
This patch therefore provides the following in rte_string_fns.h to ensure
that strlcpy is available there:
* for BSD, include string.h as normal
* if RTE_USE_LIBBSD is set, include <bsd/string.h>
* if not set, fallback to snprintf for strlcpy
Using make build system, the RTE_USE_LIBBSD is a hard-coded value to "n",
but when using meson, it's automatically set based on what is available
on the platform.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
Pavan Nikhilesh [Wed, 4 Apr 2018 13:20:16 +0000 (18:50 +0530)]
eal: add functions for previous power of 2 alignment
Add 32b and 64b API's to align the given integer to the previous power
of 2. Update common auto test to include test for previous power of 2 for
both 32 and 64bit integers.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Pavan Nikhilesh [Tue, 20 Mar 2018 13:24:34 +0000 (18:54 +0530)]
eal: add macros to align value to multiple
Add macros to align given value to the multiple of the supplied
integer.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Stephen Hemminger [Thu, 15 Feb 2018 22:25:50 +0000 (14:25 -0800)]
mem: use z specifier to format size_t
The recommended way to format size_t in printf is to use the
z modifier which handles the case where size_t maybe 32 or 64 bits.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Thu, 15 Feb 2018 22:25:49 +0000 (14:25 -0800)]
pci: use z specifier to format size_t
This addresses potential issues where size_t and off_t can vary
on some platforms. For size_t the best way to format the value
is to use the z modifier to printf. For off_t need to cast to
long long to handle 64 bit offset on 32 bit platforms.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Fri, 16 Feb 2018 20:02:39 +0000 (12:02 -0800)]
config: remove old log level option
The old RTE_LOG_LEVEL has been replaced by RTE_DP_LOG_LEVEL and
is not used anywhere in the current source tree.
It is a merge leftover.
Fixes:
43e9f17ce7b8 ("log: remove log level config option")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Jerin Jacob [Mon, 2 Apr 2018 07:51:47 +0000 (13:21 +0530)]
doc: update Marvell driver link
Change the incorrect driver documentation link to fix
following documentation build warning.
$ make doc-guides-html
sphinx processing guides-html...
doc/guides/rel_notes/release_17_11.rst:58:
WARNING: unknown document: ../nics/mrvl
Fixes:
fe93968722af ("net/mrvl: rename PMD as mvpp2")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
Pablo de Lara [Thu, 29 Mar 2018 10:36:45 +0000 (11:36 +0100)]
devtools: do not create kernel dir
get-maintainer script requires the creation of
some folders, including "kernel". Since now this folder
exists in DPDK folder, it is not required to create it.
Fixes:
acaa9ee991b5 ("move kernel modules directories")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Thomas Monjalon [Mon, 2 Apr 2018 21:49:55 +0000 (23:49 +0200)]
config: remove useless lines for DPAA2
Some comments are not relevant in a config which only overrides
the default config.
The option CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER is already disabled
by default so it can be removed from this file.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Shreyansh Jain [Mon, 2 Apr 2018 14:06:01 +0000 (19:36 +0530)]
crypto/dpaa2_sec: support dynamic logging
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Shreyansh Jain [Mon, 2 Apr 2018 14:06:00 +0000 (19:36 +0530)]
crypto/dpaa2_sec: fix debug logs
Digest and IV length variable declarations have changed.
These were escaping builds as the debugging macro was disabled.
During dynamic logging change, they were discoverd.
Fixes:
0fbd75a99fc9 ("cryptodev: move IV parameters to session")
Fixes:
7f0034275a24 ("cryptodev: remove digest length from crypto op")
Cc: stable@dpdk.org
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Shreyansh Jain [Mon, 2 Apr 2018 14:05:59 +0000 (19:35 +0530)]
bus/fslmc: remove unused debug macros
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Shreyansh Jain [Mon, 2 Apr 2018 14:05:58 +0000 (19:35 +0530)]
event/dpaa2: support dynamic logging
Some changes had already been pushed via SHA:
72654f090a11 patch. This
patch updates them.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
Shreyansh Jain [Mon, 2 Apr 2018 14:05:57 +0000 (19:35 +0530)]
net/dpaa2: support dynamic logging
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Shreyansh Jain [Mon, 2 Apr 2018 14:05:56 +0000 (19:35 +0530)]
mempool/dpaa2: support dynamic logging
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Shreyansh Jain [Mon, 2 Apr 2018 14:05:55 +0000 (19:35 +0530)]
bus/fslmc: support dynamic logging
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Beilei Xing [Thu, 29 Mar 2018 06:33:58 +0000 (14:33 +0800)]
net/i40e: remove unnecessary FDIR mask configuration
Remove unnecessary FDIR mask configuration, otherwise
flow directory mask will be changed when configuring
hash input set.
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Reviewed-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Jianfeng Tan [Wed, 28 Mar 2018 06:56:07 +0000 (06:56 +0000)]
vhost: avoid populate guest memory
It's not necessary to populate guest memory from vhost side unless
zerocopy is enabled or users want better performance.
Update the doc for guest memory requirement clarification.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tonghao Zhang [Wed, 28 Mar 2018 05:49:25 +0000 (22:49 -0700)]
vhost: add pipe event for optimizing negotiation
When vhost-user connects qemu successfully, dpdk will call
the vhost_user_add_connection to add unix socket fd to poll.
And fdset_add only set the socket fd to a fdentry while poll
may sleep now. In a general case, this is no problem. But if
we use hot update for vhost-user, most downtime of VMs network
is 750+ms. This patch adds pipe event, so after connections are
ok, dpdk rebuild the poll immediately. With this patch, the
most downtime is 20~30ms.
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tonghao Zhang [Wed, 28 Mar 2018 05:49:24 +0000 (22:49 -0700)]
vhost: move stdbool include
The vhost.h file uses bool type, but not include stdbool
header file. If other c files include vhost.h directly,
there will be a compile error.
This patch will be used in the next patch.
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tonghao Zhang [Fri, 23 Mar 2018 02:18:51 +0000 (19:18 -0700)]
vhost: add fdset-event thread name
This patch adds the name for vhost fdset thread.
It can help us to know whether the thread is running.
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Tonghao Zhang [Fri, 23 Mar 2018 02:18:50 +0000 (19:18 -0700)]
vhost: raise error on fdset-thread creation
When first call the 'rte_vhost_driver_start', the
fdset_event_dispatch thread should be created successfully.
Because the vhost uses it to poll socket events for vhost
server or clients. Without it, for example, vhost will not
get the connection event.
This patch returns err code directly when created not successful.
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Junjie Chen [Fri, 30 Mar 2018 06:58:31 +0000 (14:58 +0800)]
net/vhost: fix crash when creating vdev dynamically
When creating vdev dynamically, vhost pmd driver starts directly without
checking TX/RX queues are ready or not, and thus causes segmentation fault
when vhost library accesses queues. This patch adds a flag to check whether
queues are setup or not, and adds queues setup into dev_start function to
allow user to start them after setting up.
Fixes:
aed0b12930b3 ("net/vhost: fix socket file deleted on stop")
Cc: stable@dpdk.org
Signed-off-by: Junjie Chen <junjie.j.chen@intel.com>
Tested-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Maxime Coquelin [Wed, 21 Mar 2018 15:44:13 +0000 (16:44 +0100)]
vhost: avoid concurrency when logging dirty pages
This patch aims at fixing a migration performance regression
faced since atomic operation is used to log pages as dirty when
doing live migration.
Instead of setting a single bit by doing an atomic read-modify-write
operation to log a page as dirty, this patch write 0xFF to the
corresponding byte, and so logs 8 page as dirty.
The advantage is that it avoids concurrent atomic operations by
multiple PMD threads, the drawback is that some clean pages are
marked as dirty and so are transferred twice.
Fixes:
897f13a1f726 ("vhost: make page logging atomic")
Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Matan Azrad [Wed, 28 Mar 2018 12:10:30 +0000 (12:10 +0000)]
ethdev: fix port accessing after release
rte_eth_dev_pci_release() function wrongly releases an ethdev port and
then releases internal fields of this port.
This behavior is problematic, because after the release, the port may
be reallocated again by another thread or just be invalid for any
usage.
Move the release operation to the end of the function.
Fixes:
dcd5c8112bc3 ("ethdev: add PCI driver helpers")
Cc: stable@dpdk.org
Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Harish Patil [Wed, 28 Mar 2018 00:15:55 +0000 (17:15 -0700)]
net/qede: fix to prevent overwriting packet type
Fixes:
3f72dd780e10 ("net/qede: check tunnel L3 header")
Cc: stable@dpdk.org
Signed-off-by: Harish Patil <harish.patil@cavium.com>