8993 Commits

Author SHA1 Message Date
Stephen Hemminger
e9bffce781 test: remove duplicate includes
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2017-07-16 17:30:25 +02:00
Stephen Hemminger
7a881bc7e6 app/testpmd: remove duplicate includes
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2017-07-16 17:30:24 +02:00
Stephen Hemminger
9e66618466 app/procinfo: remove duplicate include
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2017-07-16 17:30:24 +02:00
Stephen Hemminger
7d47868c26 drivers/net: remove duplicate includes
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2017-07-16 17:30:24 +02:00
Stephen Hemminger
ba9219fe42 drivers/dpaa2: remove duplicate includes
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-16 17:30:06 +02:00
Stephen Hemminger
d24b29d167 lib: remove duplicate includes
Include files only need to be refrenced once per file.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2017-07-16 17:30:06 +02:00
Hemant Agrawal
645bd25ad8 drivers: add newline in dpaa2 logs
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 16:01:30 +02:00
Hemant Agrawal
f60a9f98ec config: enable virtual IOVA by default for DPAA2
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:58:57 +02:00
Hemant Agrawal
d62d95bcb6 bus/fslmc: align object name log to real resource name
the DPAA2 resources are named with ".", so changing
"-" with "."

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:56:39 +02:00
Hemant Agrawal
de85636da0 bus/fslmc: set the dpaa2 device name
rte_eth_dev_allocated expect the device name to be filled.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:55:18 +02:00
Hemant Agrawal
29eed50e37 event/dpaa2: fix debug build
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:54:30 +02:00
Hemant Agrawal
c4138d89eb bus/fslmc: fix debug build
Fixes: 9ccb76b24c1d ("bus/fslmc: enable portal interrupt handling")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:53:57 +02:00
Hemant Agrawal
f090a4c3c6 net/dpaa2: fix flow control switch case break
Fixes: 977d0006ada1 ("net/dpaa2: add support for flow control")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:51:54 +02:00
Hemant Agrawal
6a95466d78 crypto/dpaa2_sec: fix build with gcc 7.1
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:51:24 +02:00
Qiming Yang
82d708384f test/alarm: add delay tolerance
Because accuracy of timing to the microsecond is not guaranteed
in rte_eal_alarm_set, this function will not be called before
the requested time, but may be called a period of time
afterwards which can not be calculated. In order to ensure
test alarm running success, this patch added the delay time
before check the flag.

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
2017-07-14 11:57:54 +02:00
Vasily Philipov
7ee3e94462 app/testpmd: add --flow-isolate-all option
Providing this parameter requests flow API isolated mode on all ports at
initialization time. It ensures all traffic is received through the
configured flow rules only (see flow command).

Ports that do not support this mode are automatically discarded.

Signed-off-by: Vasily Philipov <vasilyf@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2017-07-13 11:48:48 +02:00
Thomas Monjalon
722de4c3e7 ethdev: fix build with gcc 5.4.0
Seen on Ubuntu 16.04 with GCC 5.4.0:

lib/librte_ether/rte_ethdev.c: In function 'get_mac_addr_index':
lib/librte_ether/rte_ethdev.c:2369:26: error:
'dev_info.max_mac_addrs' may be used uninitialized in this function

Indeed, rte_eth_dev_info_get() do not write into dev_info
if the port_id is not valid.
So we need to check the port_id and return in case of error.

This extra check should not be needed because the port_id is always
checked before calling get_mac_addr_index().
However it does not hurt.

Reported-by: Matan Azrad <matan@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Matan Azrad <matan@mellanox.com>
2017-07-13 11:36:57 +02:00
Wenzhuo Lu
5713ade697 net/ixgbe: support committing TM hierarchy
Add the support of the Traffic Management API,
rte_tm_hierarchy_commit.
When calling this API, the driver tries to enable
the TM configuration on HW.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:17 +02:00
Wenzhuo Lu
cb2ffec595 net/ixgbe: support getting TM node capability
Add the support of the Traffic Management API,
rte_tm_node_capabilities_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:16 +02:00
Wenzhuo Lu
596988e193 net/ixgbe: support getting TM level capability
Add the support of the Traffic Management API,
rte_tm_level_capabilities_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:16 +02:00
Wenzhuo Lu
850dba2c5f net/ixgbe: support getting TM node type
Add the support of the Traffic Management API,
rte_tm_node_type_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:15 +02:00
Wenzhuo Lu
e52551842a net/ixgbe: support deleting TM node
Add the support of the Traffic Management API,
rte_tm_node_delete.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:14 +02:00
Wenzhuo Lu
e0ff4d304c net/ixgbe: support adding TM node
Add the support of the Traffic Management API,
rte_tm_node_add.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:14 +02:00
Wenzhuo Lu
80337aed53 net/ixgbe: support deleting TM shaper profile
Add the support of the Traffic Management API,
rte_tm_shaper_profile_delete.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:13 +02:00
Wenzhuo Lu
fa199f1c6f net/ixgbe: support adding TM shaper profile
Add the support of the Traffic Management API,
rte_tm_shaper_profile_add.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:07:12 +02:00
Wenzhuo Lu
553940af53 net/ixgbe: support getting TM capability
Add the support of the Traffic Management API,
rte_tm_capabilities_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 20:06:39 +02:00
Wenzhuo Lu
2aaecb14bd net/ixgbe: support getting TM ops
To support QoS scheduler APIs, create a new C file for
the TM (Traffic Management) ops but without any function
implemented.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:31 +02:00
Wenzhuo Lu
cac29c3c00 net/i40e: support committing TM hierarchy
Add the support of the Traffic Management API,
rte_tm_hierarchy_commit.
When calling this API, the driver tries to enable
the TM configuration on HW.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:30 +02:00
Wenzhuo Lu
8936f28b66 net/i40e: support getting TM node capability
Add the support of the Traffic Management API,
rte_tm_node_capabilities_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:30 +02:00
Wenzhuo Lu
0fb1ef1e79 net/i40e: support getting TM level capability
Add the support of the Traffic Management API,
rte_tm_level_capabilities_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:30 +02:00
Wenzhuo Lu
ba3a083772 net/i40e: support getting TM node type
Add the support of the Traffic Management API,
rte_tm_node_type_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:29 +02:00
Wenzhuo Lu
a1c1746d99 net/i40e: support deleting TM node
Add the support of the Traffic Management API,
rte_tm_node_delete.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:29 +02:00
Wenzhuo Lu
03a249b62b net/i40e: support adding TM node
Add the support of the Traffic Management API,
rte_tm_node_add.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:29 +02:00
Wenzhuo Lu
2d472efc64 net/i40e: support deleting TM shaper profile
Add the support of the Traffic Management API,
rte_tm_shaper_profile_delete.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:28 +02:00
Wenzhuo Lu
725956e6d1 net/i40e: support adding TM shaper profile
Add the support of the Traffic Management API,
rte_tm_shaper_profile_add.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:57:28 +02:00
Wenzhuo Lu
2b546d23b8 net/i40e: support getting TM capability
Add the support of the Traffic Management API,
rte_tm_capabilities_get.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:56:51 +02:00
Wenzhuo Lu
b979301340 net/i40e: support getting TM ops
To support QoS scheduler APIs, create a new C file for
the TM (Traffic Management) ops but without any function
implemented.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2017-07-11 19:40:15 +02:00
Cristian Dumitrescu
5d109deffa ethdev: add traffic management API
This patch introduces the generic ethdev API for the traffic manager
capability, which includes: hierarchical scheduling, traffic shaping,
congestion management, packet marking.

Main features:
- Exposed as ethdev plugin capability (similar to rte_flow)
- Capability query API per port, per level and per node
- Scheduling algorithms: Strict Priority (SP), Weighed Fair Queuing (WFQ)
- Traffic shaping: single/dual rate, private (per node) and shared (by
  multiple nodes) shapers
- Congestion management for hierarchy leaf nodes: algorithms of tail drop,
  head drop, WRED; private (per node) and shared (by multiple nodes) WRED
  contexts
- Packet marking: IEEE 802.1q (VLAN DEI), IETF RFC 3168 (IPv4/IPv6 ECN for
  TCP and SCTP), IETF RFC 2597 (IPv4 / IPv6 DSCP)

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Balasubramanian Manoharan <balasubramanian.manoharan@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-11 19:38:02 +02:00
Cristian Dumitrescu
530beded12 ethdev: add traffic management ops get API
The rte_flow feature breaks the monolithic approach for ethdev by
introducing the new rte_flow API to ethdev using a plugin-like approach.

Basically, the rte_flow API is still logically part of ethdev:
- It extends the ethdev functionality: rte_flow is a new feature/
  capability of ethdev;
- all its functions work on an Ethernet device: the first parameter of the
  rte_flow functions is Ethernet device port ID.

Also, the rte_flow API is a sort of capability plugin for ethdev:
- the rte_flow API functions have their own name space: they are called
  rte_flow_operationXYZ() as opposed to rte_eth_dev_flow_operationXYZ());
- the rte_flow API functions are placed in separate files in the same
  librte_ether folder as opposed to rte_ethdev.[hc].

The way it works is by using the existing ethdev API function
rte_eth_dev_filter_ctrl() to query the current Ethernet device port ID for
the support of the rte_flow capability and return the pointer to the
rte_flow operations when supported and NULL otherwise:

struct rte_flow_ops *eth_flow_ops;
int rte = rte_eth_dev_filter_ctrl(eth_port_id,
	RTE_ETH_FILTER_GENERIC, RTE_ETH_FILTER_GET, &eth_flow_ops);

This patch reuses the same approach for ethdev Traffic Management API.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-11 19:16:39 +02:00
Pablo de Lara
f51fd44d64 cryptodev: fix build with icc
Removed unnecessary macro RTE_STD_C11, which is used
for unnamed structs.
Since there is no longer an unnamed structure in
rte_cryptodev_sym_session, this is not needed and
it is actually breaking compilation on icc:

lib/librte_cryptodev/rte_cryptodev.h(887): error: expected a declaration
  	__extension__ void *sess_private_data[0];
  	^
Fixes: 7c110ce7aa4e ("cryptodev: remove mempool from session")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2017-07-12 14:40:40 +02:00
Jan Blunck
db2592be2f bus/vdev: allocate empty arguments string
Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-07-12 14:16:51 +02:00
Jan Blunck
48af1214f9 bus/vdev: use local bus reference
It isn't necessary to use rte_bus_find_by_name() to find a reference to
our own bus.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-07-12 14:16:17 +02:00
Jan Blunck
f671351752 bus/vdev: get name from embedded generic device
Instead of getting the name from the devargs lets take it from the
rte_device.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-07-12 14:15:44 +02:00
Hemant Agrawal
441ea8899e bus/fslmc: fix missing brace
Fixes: c7fe1eea8a74 ("bus: simplify finding starting point")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-11 11:22:03 +02:00
Radu Nicolau
a6e3149d0c doc: notify bypass API change
Added API change description - moved bypass functions
from the rte_ethdev library to ixgbe PMD

Fixes: e261265e42a1 ("ethdev: move bypass functions to ixgbe PMD")

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2017-07-10 21:25:21 +02:00
Jerin Jacob
9e534c0a20 net/thunderx: remove libm dependency
Used rte_log2_u32() to replace integer log2() to
remove libm dependency.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
2017-07-10 16:50:46 +02:00
Jerin Jacob
05c4345ef5 test: add unit test for integer log2 function
add a unit testcase for rte_log2_u32.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
2017-07-10 16:49:11 +02:00
Shreyansh Jain
fcee050aa1 update NXP copyright headers
NXP Copyright has been wrongly worded with '(c)' at various places.
This patch removes these extra characters. It also removes
"All rights reserved".

Only NXP copyright syntax is changed. Freescale copyright is not
modified.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2017-07-10 12:26:40 +02:00
Jerin Jacob
c553139afa eal/armv7: emulate vaddvq u16 variant
vaddvq_u16() is not available for armv7.
Emulate the vaddvq_u16() using armv7 NEON intrinsics.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
2017-07-10 09:37:42 +02:00
Thomas Monjalon
bdd7083174 version: 17.08-rc1
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
v17.08-rc1
2017-07-10 00:55:30 +02:00