dpdk.git
6 years agombuf: rename deprecated VLAN flags
Olivier Matz [Wed, 25 Oct 2017 15:12:57 +0000 (17:12 +0200)]
mbuf: rename deprecated VLAN flags

PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT are deprecated for a while.
As explained in [1], these flags were kept to let the applications and
PMDs move to the new flag. There is also a need to support Rx vlan
offload without vlan strip (at least for the ixgbe driver).

This patch renames the old flags for this feature, knowing that some
PMDs were using PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT to indicate that
the vlan tci has been saved in the mbuf structure.

It is likely that some PMDs do not set the proper flags when doing vlan
offload, and it would be worth making a pass on all of them.

Link: [1] http://dpdk.org/ml/archives/dev/2017-June/067712.html

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agopci: propagate PMD removal error value for unplug
Gaetan Rivet [Tue, 24 Oct 2017 10:35:39 +0000 (12:35 +0200)]
pci: propagate PMD removal error value for unplug

If a PCI device detach removal fails, returns the actual removal
operator error value.

Use this value within pci->unplug, as it may help applications solve an
issue with the feature or more accurately warn their users.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoethdev: remove detachable device flag
Gaetan Rivet [Tue, 24 Oct 2017 10:35:38 +0000 (12:35 +0200)]
ethdev: remove detachable device flag

This flag is not necessary at the ether layer anymore.
Buses are able to advertise their hotplug support. The ether layer can
rely upon this capability instead of a special flag.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoethdev: do not rely on detachable flag in detach
Gaetan Rivet [Tue, 24 Oct 2017 10:35:37 +0000 (12:35 +0200)]
ethdev: do not rely on detachable flag in detach

This flag is deprecated and should not be used to check for the device
ability to be detached.

The rte_dev library call will fail with the relevant error code if
detaching this port is not possible.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/bnxt: check VLANs from pool map only for VMDq
Ajit Khaparde [Tue, 24 Oct 2017 21:19:53 +0000 (16:19 -0500)]
net/bnxt: check VLANs from pool map only for VMDq

Fixes: 75cd6fb1d901 ("net/bnxt: fix the association of a MACVLAN per VNIC")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix an unused value
Ajit Khaparde [Tue, 24 Oct 2017 21:19:52 +0000 (16:19 -0500)]
net/bnxt: fix an unused value

return value stored in "rc" but it has been overwritten before use.

Coverity issue: 147216
Fixes: 7a5b0874440e ("net/bnxt: support to add a VF MAC address")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix a pointer deref before null check
Ajit Khaparde [Tue, 24 Oct 2017 21:19:51 +0000 (16:19 -0500)]
net/bnxt: fix a pointer deref before null check

Coverity issue: 158634
Fixes: daef48efe5e5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix a potential null pointer dereference
Ajit Khaparde [Tue, 24 Oct 2017 21:19:50 +0000 (16:19 -0500)]
net/bnxt: fix a potential null pointer dereference

Coverity issue: 158634
Fixes: daef48efe5e5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix a potential null pointer dereference
Ajit Khaparde [Tue, 24 Oct 2017 21:19:49 +0000 (16:19 -0500)]
net/bnxt: fix a potential null pointer dereference

Coverity issue: 195046
Fixes: f7ecea911ec5 ("net/bnxt: fix interrupt handler")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix a potential null pointer dereference
Ajit Khaparde [Tue, 24 Oct 2017 21:19:48 +0000 (16:19 -0500)]
net/bnxt: fix a potential null pointer dereference

Coverity issue: 195017
Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix a pointer deref before null check
Ajit Khaparde [Tue, 24 Oct 2017 21:19:47 +0000 (16:19 -0500)]
net/bnxt: fix a pointer deref before null check

Coverity issue: 195015
Fixes: b7435d660a8c ("net/bnxt: add ntuple filtering support")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix a potential null pointer dereference
Ajit Khaparde [Tue, 24 Oct 2017 21:19:46 +0000 (16:19 -0500)]
net/bnxt: fix a potential null pointer dereference

Fix a potential null pointer reported by Coverity.

Coverity issue: 195001
Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix a bit shift operation
Ajit Khaparde [Tue, 24 Oct 2017 21:19:45 +0000 (16:19 -0500)]
net/bnxt: fix a bit shift operation

We are left shifting more bits than we should be doing.
This patch fixes that.

Coverity issue: 127546
Fixes: 778b759ba10e ("net/bnxt: add MAC address")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix redirecting traffic to a VF
Ajit Khaparde [Tue, 24 Oct 2017 21:19:44 +0000 (16:19 -0500)]
net/bnxt: fix redirecting traffic to a VF

The case to handle redirect a flow to a VF is not handled.
This patch fixes it.

Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: remove redundant code parsing pool map
Ajit Khaparde [Tue, 24 Oct 2017 21:19:43 +0000 (16:19 -0500)]
net/bnxt: remove redundant code parsing pool map

This patch removes some redundant code from bnxt_mq_rx_configure().

Fixes: 75cd6fb1d901 ("net/bnxt: fix the association of a MACVLAN per VNIC")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: handle Rx multi queue creation properly
Ajit Khaparde [Tue, 24 Oct 2017 21:19:42 +0000 (16:19 -0500)]
net/bnxt: handle Rx multi queue creation properly

This patch simplifies logic for RSS queue creation.
1) Do not hardcode number of VNIC pools in case of RSS
2) Log a message if Number of queues is > RTE_ETHDEV_QUEUE_STAT_CNTRS
3) Move the check for allocation of l2_filter inside the for loop.

Fixes: 6133f207970c ("net/bnxt: add Rx queue create/destroy")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix Rx offload capability
Ajit Khaparde [Tue, 24 Oct 2017 21:19:41 +0000 (16:19 -0500)]
net/bnxt: fix Rx offload capability

We are not setting the rx_offload capabilities. Fixing that.

Fixes: 0a6d2a720078 ("net/bnxt: get device infos")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: fix Tx offload capability
Ajit Khaparde [Tue, 24 Oct 2017 21:19:40 +0000 (16:19 -0500)]
net/bnxt: fix Tx offload capability

We are not indicating VLAN insert capability of HW. Fixing it.

Fixes: 0a6d2a720078 ("net/bnxt: get device infos")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agonet/bnxt: update HWRM to 1.8.2
Ajit Khaparde [Tue, 24 Oct 2017 21:19:39 +0000 (16:19 -0500)]
net/bnxt: update HWRM to 1.8.2

This patch updates the HWRM API to version 1.8.2

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
6 years agoapp/testpmd: refine xstats show
Elza Mathew [Fri, 20 Oct 2017 17:09:48 +0000 (10:09 -0700)]
app/testpmd: refine xstats show

When using "show port xstats all" command to show xstats, the output
is usually too long to obtain what you really want, especially when
multi-queue is enabled.

Added an option to set whether zero values should be displayed
or not for xstats. The "set xstats-hide-zero on|off" command enables
the user to decide if the zero values should be shown while
displaying xstats.

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Signed-off-by: Elza Mathew <elza.mathew@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/i40e: fix queue number error in queue region
Wei Zhao [Tue, 24 Oct 2017 08:45:10 +0000 (16:45 +0800)]
net/i40e: fix queue number error in queue region

when VSI is enabled with smaller number of queues, for example 1 or 6,
it will cause error.

64 is the max number of queues that can be used for RSS, but VSI might
be created with only few queues.

Fixes: 7cbecc2f742 ("net/i40e: support queue region set and flush")

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoethdev: document new error code for reset
Luca Boccassi [Tue, 24 Oct 2017 13:19:05 +0000 (14:19 +0100)]
ethdev: document new error code for reset

When VF reset will be supported by drivers, the API will most likely
have to return -EAGAIN to avoid blocking when the VF cannot be reset
because the PF is down.
Document it immediately even if it's not yet supported, so that users
and developers can already take into account about this use case, and
thus avoid an API-incompatible change later on.

This is based on real-world production usage and customer escalations,
using earlier patches from Intel [1].

[1]
http://dpdk.org/ml/archives/dev/2017-October/079692.html

Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoethdev: document error codes of reset
Luca Boccassi [Tue, 24 Oct 2017 13:19:04 +0000 (14:19 +0100)]
ethdev: document error codes of reset

This new function returns 0 on success and various error codes on
different failures. Attempt to document them.

Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: add switch restart support to fm10k guide
Xiao Wang [Tue, 24 Oct 2017 13:45:52 +0000 (06:45 -0700)]
doc: add switch restart support to fm10k guide

Document how DPDK app should handle the event of switch quit-restart
to resume its network without an app-level restart.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agonet/fm10k: support switch restart on VF
Xiao Wang [Tue, 24 Oct 2017 13:45:51 +0000 (06:45 -0700)]
net/fm10k: support switch restart on VF

For VF events indicating a change in the state of the switch manager,
the driver will restore the basic port configurations and then pass this
event to application so that the application can restore any additional
configurations if required.

In this way, once the switch manager restarts, the DPDK application can
resume its network.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/fm10k: support switch restart on PF
Xiao Wang [Tue, 24 Oct 2017 13:45:50 +0000 (06:45 -0700)]
net/fm10k: support switch restart on PF

For PF events indicating a change in the state of the switch manager,
the driver will restore the basic port configurations and then pass this
event to application so that the application can restore any additional
configurations if required.

In this way, once the switch manager restarts, the DPDK application can
resume its network.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/fm10k: redefine link status semantics
Xiao Wang [Tue, 24 Oct 2017 13:45:49 +0000 (06:45 -0700)]
net/fm10k: redefine link status semantics

As fm10k host interface is not directly connected to PHY, marking the
link status as UP doesn't mean a lot to the application.

So, this patch basically redefines the link status as the state of
switch manager: when switch manager is running, it's LINK_UP;
when switch manager goes down by calling the fmTerminate function,
status turns to LINK_DOWN.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/mlx5: fix flow director flow add
Nélio Laranjeiro [Tue, 24 Oct 2017 15:18:18 +0000 (17:18 +0200)]
net/mlx5: fix flow director flow add

Flows are added by priv_flow_create() in the associated list, adding them a
second time corrupts the list causing an infinite loop when parsing it.

Fixes: 4c3e9bcdd52e ("net/mlx5: support flow director")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix reception when VLAN is added
Nélio Laranjeiro [Tue, 24 Oct 2017 15:18:17 +0000 (17:18 +0200)]
net/mlx5: fix reception when VLAN is added

When VLAN is enabled in the Rx side, only packets matching this VLAN are
expected, this also includes the broadcast and all multicast packets.

Fixes: 272733b5ebfd ("net/mlx5: use flow to enable unicast traffic")
Fixes: 6a6b6828fe6a ("net/mlx5: use flow to enable all multi mode")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix mark action with drop action
Nélio Laranjeiro [Tue, 24 Oct 2017 15:18:16 +0000 (17:18 +0200)]
net/mlx5: fix mark action with drop action

Marking a packet which will not be received by the NIC is useless, even
if this action remains possible, it blocks the creation of the flow
counter which embed a mark action to a drop queue to be created.

Fixes: 31ba9997f11a ("net/mlx5: fully convert a flow to verbs in validate")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix flow director drop action
Nélio Laranjeiro [Tue, 24 Oct 2017 15:18:15 +0000 (17:18 +0200)]
net/mlx5: fix flow director drop action

Flow director drop action as not been brought back with the new
implementation on top of rte flow.

Fixes: 4c3e9bcdd52e ("net/mlx5: support flow director")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix drop flows when port is stopped
Nélio Laranjeiro [Tue, 24 Oct 2017 15:18:14 +0000 (17:18 +0200)]
net/mlx5: fix drop flows when port is stopped

Fix the drop queue rule creation when the port is stopped.

Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix work queue array size
Nélio Laranjeiro [Tue, 24 Oct 2017 15:18:13 +0000 (17:18 +0200)]
net/mlx5: fix work queue array size

Indirection table size must be in log to communicate with verbs when the
number of queue is not a power of two, the maximum indirection table
size is use, but not converted to log2.  This makes a memory corruption.

Fixes: 4c7a0f5ff876 ("net/mlx5: make indirection tables shareable")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix segfault on flow creation
Nélio Laranjeiro [Tue, 24 Oct 2017 15:18:12 +0000 (17:18 +0200)]
net/mlx5: fix segfault on flow creation

When ports are stopped, the hash Rx queue should not be created.

Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agoapp/testpmd: fix build without ixgbe and bnxt PMDs
Aviad Yehezkel [Tue, 24 Oct 2017 14:48:16 +0000 (17:48 +0300)]
app/testpmd: fix build without ixgbe and bnxt PMDs

Fixes: 4cfe399f6550 ("net/bnxt: support to set VF rxmode")
Fixes: 36735a932ca7 ("net/bnxt: support set VF QOS and MAC anti spoof")
Cc: stable@dpdk.org
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/mlx4: fix targetless internal rule creation
Matan Azrad [Tue, 24 Oct 2017 10:05:59 +0000 (10:05 +0000)]
net/mlx4: fix targetless internal rule creation

The corrupted code allowed to create internal rule with no any target
queue in case the rule creation occurred before queues creation.

For example, when user calls rte_eth_dev_default_mac_addr_set after
probe and before dev_configure, mlx4 fails because the RSS queue number
was 0.

The fix prevents internal rules creation before queues creation based on
future creation before traffic start.

Fixes: 7d8675956f57 ("net/mlx4: add RSS support outside flow API")
Fixes: bdcad2f4843a ("net/mlx4: refactor internal flow rules")

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agonet/i40e: fix unsecure usage of strncpy function
Kirill Rybalchenko [Tue, 24 Oct 2017 09:22:38 +0000 (10:22 +0100)]
net/i40e: fix unsecure usage of strncpy function

Use more secure snprintf function instead of strncpy
to prevent memory access violation.

Fixes: 40d1324423a4 ("net/i40e: get ddp profile protocol info")

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
6 years agonet/i40e: add support for packet template to flow director
Kirill Rybalchenko [Tue, 24 Oct 2017 14:08:13 +0000 (15:08 +0100)]
net/i40e: add support for packet template to flow director

For complex packets use raw flow type with pre-constructed packet buffer
instead of creating a packet internally in PMD.

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/mlx5: fix packet type flags for Ethernet only frame
Shahaf Shuler [Tue, 24 Oct 2017 06:16:09 +0000 (09:16 +0300)]
net/mlx5: fix packet type flags for Ethernet only frame

Considering the PMD supports only Ethernet transport, packet which
arrives without any packet type flags in the completion should be
marked with L2_ETHER flag.

Fixes: ea16068c0064 ("net/mlx5: fix L4 packet type support")
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agoapp/testpmd: fix mapping of user priority to DCB TC
Wei Dai [Mon, 23 Oct 2017 07:25:16 +0000 (15:25 +0800)]
app/testpmd: fix mapping of user priority to DCB TC

When number of DCB traffic class is 4, user priority should be
mapped to traffic class 0/1/2/3.

Fixes: cb60ede6e3b6 ("ethdev: rename DCB field in config structs")
Cc: stable@dpdk.org
Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
6 years agonet/ixgbe: fix PF DCB info
Wei Dai [Mon, 23 Oct 2017 06:43:57 +0000 (14:43 +0800)]
net/ixgbe: fix PF DCB info

When SRIOV is active, the function ixgbe_dev_get_dcb_info( )
should return the DCB traffic class info of its own queues,
not including any DCB info of the queues of any its VF.

When VMDQ is active, all queues are belonged to the PF,
the function ixgbe_dev_get_dcb_info can return DCB info
of all queues.

Fixes: 89d6728c7837 ("ethdev: get DCB information")
Cc: stable@dpdk.org
Signed-off-by: Wei Dai <wei.dai@intel.com>
Reviewed-by: Jingjing Wu <jingjing.wu@intel.com>
6 years agoethdev: check more errors in xstats retrieval
Ferruh Yigit [Thu, 19 Oct 2017 23:39:52 +0000 (00:39 +0100)]
ethdev: check more errors in xstats retrieval

Some function calls in xstat functions can return negative values
to indicate the error, check return values for those cases.

Coverity issue: 195028, 195026
Fixes: 8c49d5f1c219 ("ethdev: rework xstats retrieve by id")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoethdev: fix xstats get by id APIs
Ferruh Yigit [Wed, 18 Oct 2017 22:51:43 +0000 (23:51 +0100)]
ethdev: fix xstats get by id APIs

xstats _by_id() APIs are broken because ids known by user sent directly
to the PMDs.

ethdev xstat get by id APIs:
rte_eth_xstats_get_names_by_id() and rte_eth_xstats_get_by_id()
work on ids calculated as "basic stats + extended stats"

When an application asking for id less than "basic stats count", it is
indeed asking basic stats not extended stats.

The dev_ops PMDs implements work on extended stats ids.

This patch adds a check if all requested stats are xstats and if so
converts ids to xstats ids before passing them to PMDs.

This conversion wasn't required before commit 8c49d5f1c219, because
_by_id dev_ops were always used to get whole stats via NULL ids.

Fixes: 8c49d5f1c219 ("ethdev: rework xstats retrieve by id")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Tested-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoethdev: extract xstat basic stat count calculation
Ferruh Yigit [Thu, 19 Oct 2017 22:39:55 +0000 (23:39 +0100)]
ethdev: extract xstat basic stat count calculation

Extract into static inline function so that can be used by other
functions.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/mlx5: fix icc compiler warning
Xueming Li [Tue, 17 Oct 2017 02:46:43 +0000 (10:46 +0800)]
net/mlx5: fix icc compiler warning

Initialize variable to avoid ICC compiler warning:
http://www.dpdk.org/ml/archives/dev/2017-October/077971.html

Fixes: f8b9a3bad467 ("net/mlx5: install a socket to exchange a file descriptor")

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/enic: fix packet loss after MTU change
John Daley [Mon, 23 Oct 2017 20:23:00 +0000 (13:23 -0700)]
net/enic: fix packet loss after MTU change

If multiple Rx queues and Rx Scatter are used and the MTU is
modified so that the number of mbufs per packet changes, packet
loss is possible.

The enic completion queue index was miscalculated leaving the
upper half of the queues uninitialized after an MTU change, possibly
leading to completions on those queues not getting processed.

Fixes: c3e09182bcd6 ("net/enic: support scatter Rx in MTU update")
Cc: stable@dpdk.org
Signed-off-by: John Daley <johndale@cisco.com>
6 years agonet/mlx5: fix RSS hash update
Nélio Laranjeiro [Mon, 23 Oct 2017 11:17:57 +0000 (13:17 +0200)]
net/mlx5: fix RSS hash update

Few bugs fixes in both configuration get and hash update where inputs
are not handled as expected by the ethdev layer.

RSS structure may not be totally usable, the PMD should try to take as
most information from it has it can when it is an hash update or it
should try to fill as most as possible in the configuration get.
This means that in the RSS configuration structure, the memory space for
the RSS hash key may not be present, but the PMD should consider the
hash field valid and process/set it.

Fixes: 29c1d8bb3e79 ("net/mlx5: handle a single RSS hash key for all protocols")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agoapp/testpmd: fix RSS structure initialisation
Nélio Laranjeiro [Mon, 23 Oct 2017 11:17:56 +0000 (13:17 +0200)]
app/testpmd: fix RSS structure initialisation

Struct rss_conf.rss_key_len is not initialised forcing the user to
verify the rss_conf.rss_key pointer to know if the key is present
or not.  rss_conf.rss_key_len should have a valid length according
to the size of the rss_key pointed.

Fixes: 560e02ee5237 ("app/testpmd: configure RSS without restart")
Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix flow priority for queue action
Nélio Laranjeiro [Mon, 23 Oct 2017 11:17:55 +0000 (13:17 +0200)]
net/mlx5: fix flow priority for queue action

Priority is wrongly configured when the action is queue, using the
Ethernet layer priority instead of the most specific layer found.

Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/failsafe: add timestamp to stats snapshot
Matan Azrad [Sat, 21 Oct 2017 20:54:46 +0000 (20:54 +0000)]
net/failsafe: add timestamp to stats snapshot

Fail-safe attempts to read an ultimate statistics on removal time; if
that fails, it uses the latest recorded snapshot.

This patch adds timestamp for each stats snapshot to allow a time report
since the last snapshot in case of the above failure.

By this way, the user can estimate the stats read accuracy.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
6 years agonet/failsafe: improve stats accuracy
Matan Azrad [Sat, 21 Oct 2017 20:54:45 +0000 (20:54 +0000)]
net/failsafe: improve stats accuracy

The stats_get API was changed to signal a potential failure to read
stats. Furthermore, some PMDs are able to provide statistics even
after a removal event occurred.

Considering this, the fail-safe can try to access the latest
statistics of a PMD to improve statistics accuracy.

Attempt an ultimate statistics read on removal time; if that
fails, use the latest recorded snapshot.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
6 years agonet/mlx4: fix restriction on TCP/UDP flow rules
Adrien Mazarguil [Fri, 20 Oct 2017 12:39:58 +0000 (14:39 +0200)]
net/mlx4: fix restriction on TCP/UDP flow rules

The code as currently written requires TCP/UDP source and destination
ports to be always specified.

No such restriction is enforced by hardware; all TCP and UDP traffic
can be matched by providing an empty mask for these fields.

Fixes: 680d5280c20b ("net/mlx4: refactor flow item validation code")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/i40e: fix flow director issue
Beilei Xing [Fri, 20 Oct 2017 03:37:16 +0000 (11:37 +0800)]
net/i40e: fix flow director issue

For L3 or L4 packets, PCtype is parsed wrongly when
input set is VLAN only.
This patch fixes the issue.

Fixes: 15018d79f0be ("net/i40e: add FDIR support for GTP-C and GTP-U")
Fixes: 7d83c152a207 ("net/i40e: parse flow director filter")
Cc: stable@dpdk.org
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
6 years agonet/i40e: update parsing inner packet info
Beilei Xing [Fri, 20 Oct 2017 03:23:15 +0000 (11:23 +0800)]
net/i40e: update parsing inner packet info

Since meta data in profile is updated, parsing inner
packet information needs to be updated, too.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
6 years agonet/i40e: fix string overflow issue
Beilei Xing [Fri, 20 Oct 2017 02:21:19 +0000 (10:21 +0800)]
net/i40e: fix string overflow issue

This patch fixes the coverity STRING_OVERFLOW issue.

Coverity issue: 195002
Fixes: e163c18a15b0 ("net/i40e: update ptype and pctype info")

Reported-by: John McNamara <john.mcnamara@intel.com>
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
6 years agonet/failsafe: fix PCI devices init
Raslan Darawsheh [Thu, 19 Oct 2017 21:15:00 +0000 (00:15 +0300)]
net/failsafe: fix PCI devices init

When trying to attach a port as a sub-device, the ethdev port
was compared with devargs.
In the case of a PCI device, the name in devargs is the PCI address.
And since DPDK 17.08, the devargs name of the underlying device was
used to match an ethdev port:
        a1e7c17555e8 ("ethdev: use device name from device structure")

But the recent commit 72e3efb149cc has reverted this wrong matching
to use the ethdev port name as identifier of the port.
It impacts functions like rte_eth_dev_allocated() used in failsafe
for matching ports with given devargs.
The fix is to search for matching devargs in underlying device of
all ethdev ports.
If many ports match the same PCI device, only the first one is matched.

This limitation was already present in previous implementation of
rte_eth_dev_allocated(), and must be adressed later with a better
devargs syntax.

Fixes: 72e3efb149cc ("ethdev: revert use port name from device structure")
Cc: stable@dpdk.org
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
6 years agonet/mlx4: relax Rx queue configuration order
Adrien Mazarguil [Thu, 19 Oct 2017 16:11:09 +0000 (18:11 +0200)]
net/mlx4: relax Rx queue configuration order

Various hardware limitations apply to RSS indirection tables, one of
them being they must be an exact 1:1 mapping of the configured Rx queue
indices.

While this restriction is enforced when creating RSS flow rules, it is
not the case when Rx queues themselves are created; underlying WQ
numbers are assigned in turn, not according to queue index.

Applications such as l3fwd-power that create Rx queues from highest to
lowest index (or any other non-sequential order) thus fail to get a
working RSS context.

This commit postpones WQ initialization to dev_start(), once all Rx
queues are configured in order to address this issue.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/mlx4: fix indirection table error rollback
Adrien Mazarguil [Thu, 19 Oct 2017 16:11:07 +0000 (18:11 +0200)]
net/mlx4: fix indirection table error rollback

In case of error occurring while setting up indirection table and
related RSS context resources, intermediate objects are not cleaned up.

Moreover although unlikely, an error other than EINVAL (e.g. ENOMEM)
may be returned.

A description of mlx4_rss_attach()'s return value is also missing.

Fixes: 078b8b452e6b ("net/mlx4: add RSS flow rule action support")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/mlx4: fix useless flow rules synchronization
Adrien Mazarguil [Thu, 19 Oct 2017 16:11:05 +0000 (18:11 +0200)]
net/mlx4: fix useless flow rules synchronization

According to the original commit, Rx queues cannot be created nor
destroyed while the device is started. Synchronizing flow rules during
such events is unnecessary as it occurs later when starting the device.

Fixes: 79770826499b ("net/mlx4: drop live queue reconfiguration support")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/mlx4: use dedicated list iterator
Adrien Mazarguil [Thu, 19 Oct 2017 16:11:02 +0000 (18:11 +0200)]
net/mlx4: use dedicated list iterator

Dumb unconditional iteration on flow rules should be performed using the
dedicated macro.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/softnic: fix integer overflow
Jasvinder Singh [Thu, 19 Oct 2017 09:39:45 +0000 (10:39 +0100)]
net/softnic: fix integer overflow

Fixed integer overflow by casting hard_rate to uint64_t type.

Coverity issue: 195020
Fixes: 8316b9816b79 ("net/softnic: support traffic management")

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoapp/testpmd: fix integer overflow
Jasvinder Singh [Thu, 19 Oct 2017 09:38:18 +0000 (10:38 +0100)]
app/testpmd: fix integer overflow

Fixed integer overflow by casting link_params.link_speed to
uint64_t type.

Coverity issue: 195016
Fixes: 5b590fbe09b6 ("app/testpmd: add traffic management forwarding mode")

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agodoc: update release note for DPAA PMD support
Shreyansh Jain [Thu, 19 Oct 2017 09:33:58 +0000 (15:03 +0530)]
doc: update release note for DPAA PMD support

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: update mlx5 flow count limitations
Ori Kam [Thu, 19 Oct 2017 06:09:26 +0000 (09:09 +0300)]
doc: update mlx5 flow count limitations

Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/qede: fix to re-enable LRO during device start
Harish Patil [Thu, 19 Oct 2017 01:13:31 +0000 (18:13 -0700)]
net/qede: fix to re-enable LRO during device start

Move LRO configuration from dev_configure to dev_start so that
LRO configuration can be re-enabled following a port restart.

Fixes: 9a6d30ae6d46 ("net/qede: refactoring vport handling code")
Cc: stable@dpdk.org
Signed-off-by: Harish Patil <harish.patil@cavium.com>
6 years agonet/qede: add support for VXLAN UDP port config over VF
Harish Patil [Thu, 19 Oct 2017 01:13:30 +0000 (18:13 -0700)]
net/qede: add support for VXLAN UDP port config over VF

- Allow VXLAN enable/disable over VF using udp_tunnel_port_add/del APIs.
  Only default MAC/VLAN classification is supported.
- Enable VxLAN before UDP port configuration.
- Change VxLAN default UDP port to 4789 instead of 8472.

Signed-off-by: Harish Patil <harish.patil@cavium.com>
6 years agonet/qede: fix supported packet types
Harish Patil [Thu, 19 Oct 2017 01:13:29 +0000 (18:13 -0700)]
net/qede: fix supported packet types

Update/fix supported ptypes to return both inner and outer headers,
tunnel_type, fragmented and VLAN packet types.

Fixes: 3d4bb4411683 ("net/qede: add fastpath support for VXLAN tunneling")
Fixes: 2ea6f76aff40 ("qede: add core driver")
Cc: stable@dpdk.org
Signed-off-by: Harish Patil <harish.patil@cavium.com>
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
6 years agonet/sfc: fix Tx reap behaviour on port stop on EF10 datapath
Ivan Malov [Wed, 18 Oct 2017 09:39:57 +0000 (10:39 +0100)]
net/sfc: fix Tx reap behaviour on port stop on EF10 datapath

Tx reap mechanism on EF10 native datapath was altered by one
of the recent patches to introduce performance optimisations
using the common technique of freeing mbuf segments in bulks.

From this perspective, the way of associating SW descriptors
with individual mbuf segments rather than with whole packets
was adopted as a key requirement for the entire optimisation.

However, only the fast path reap function was amended to fit
the new scheme whilst the corresponding function on the port
stop path was left intact by mistake. This implies incorrect
usage of rte_pktmbuf_free() with regard to separate segments
rather than calling rte_pktmbuf_free_seg() and must be fixed.

Fixes: d321954343c8 ("net/sfc: free mbufs in bulks on EF10 native Tx reap")

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>
6 years agonet/mlx5: fix interrupt management fields assignment
Shahaf Shuler [Tue, 17 Oct 2017 12:04:57 +0000 (15:04 +0300)]
net/mlx5: fix interrupt management fields assignment

Rxq creation was missing assignment for cq fields required for interrupt
management.

Fixes: 09cb5b581762 ("net/mlx5: separate DPDK from verbs Rx queue objects")

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/mlx5: fix segfault on interrupt disable
Shahaf Shuler [Tue, 17 Oct 2017 12:04:56 +0000 (15:04 +0300)]
net/mlx5: fix segfault on interrupt disable

Interrupt disable can be called when the interrupt vector is not yet
allocated. Such case ends up with segmentation fault.

Fixing it by adding verification for interrupt vector validity.

Fixes: 09cb5b581762 ("net/mlx5: separate DPDK from verbs Rx queue objects")

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/mrvl: update copyright holders
Tomasz Duszynski [Wed, 18 Oct 2017 08:59:45 +0000 (10:59 +0200)]
net/mrvl: update copyright holders

Add Marvell International Ltd. to the copyright holders.

Fixes: 0ddc9b815b11 ("net/mrvl: add net PMD skeleton")
Fixes: 1a286a1139f2 ("doc: add mrvl NIC guide")

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
6 years agonet/mrvl: remove DMA buffer size from configuration
Tomasz Duszynski [Tue, 17 Oct 2017 09:49:54 +0000 (11:49 +0200)]
net/mrvl: remove DMA buffer size from configuration

RTE_MRVL_MUSDK_DMA_MEMSIZE can be removed from DPDK configuration
as it's no longer used as a synchronization point for net and crypto
mrvl pmds.

Fixes: 0ddc9b815b11 ("net/mrvl: add net PMD skeleton")

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
6 years agonet/mlx5: fix secondary process Tx error
Xueming Li [Tue, 17 Oct 2017 07:51:17 +0000 (15:51 +0800)]
net/mlx5: fix secondary process Tx error

Uninitialized UAR mmap offset caused secondary tx doorbell mapped to
wrong address. This patch restores missing UAR mmap offset init code
overridden by wrong merge.

Fixes: faf2667fe8d5 ("net/mlx5: separate DPDK from verbs Tx queue objects")

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/i40e: fix parent when adding TM node
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:40 +0000 (13:50 +0800)]
net/i40e: fix parent when adding TM node

Queue's parent is TC not port. It's wrong to always set
the parent to root.

Fixes: e0ff4d304ccf ("net/ixgbe: support adding TM node")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/ixgbe: fix not supporting NULL TM profile
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:39 +0000 (13:50 +0800)]
net/ixgbe: fix not supporting NULL TM profile

It's by design that APP can add a TM node without shaper
profile. But ixgbe doesn't support it currently.

Fixes: e0ff4d304ccf ("net/ixgbe: support adding TM node")
Fixes: 5713ade69776 ("net/ixgbe: support committing TM hierarchy")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/i40e: fix not supporting NULL TM profile
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:38 +0000 (13:50 +0800)]
net/i40e: fix not supporting NULL TM profile

It's by design that APP can add a TM node without shaper
profile. But i40e doesn't support it currently.

Fixes: 03a249b62bbd ("net/i40e: support adding TM node")
Fixes: cac29c3c00a4 ("net/i40e: support committing TM hierarchy")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/ixgbe: fix TM level capability getting
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:37 +0000 (13:50 +0800)]
net/ixgbe: fix TM level capability getting

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when getting the TM level capability.

Fixes: 596988e193f7 ("net/ixgbe: support getting TM level capability")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
6 years agonet/ixgbe: fix TM node parameter checking
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:36 +0000 (13:50 +0800)]
net/ixgbe: fix TM node parameter checking

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when checking the parameters of the TM nodes.

Fixes: e0ff4d304ccf ("net/ixgbe: support adding TM node")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/i40e: fix TM level capability getting
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:35 +0000 (13:50 +0800)]
net/i40e: fix TM level capability getting

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when getting the TM level capability.

Fixes: 0fb1ef1e7930 ("net/i40e: support getting TM level capability")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/i40e: fix TM node parameter checking
Wenzhuo Lu [Tue, 17 Oct 2017 05:50:34 +0000 (13:50 +0800)]
net/i40e: fix TM node parameter checking

Only queue nodes should be taken as leaf nodes, all
the other nodes are non-leaf nodes.
Correct it when checking the parameters of the TM nodes.

Fixes: 03a249b62bbd ("net/i40e: support adding TM node")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agonet/mlx5: fix parsing flags of multi-packet send
Yongseok Koh [Mon, 16 Oct 2017 17:41:56 +0000 (10:41 -0700)]
net/mlx5: fix parsing flags of multi-packet send

Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agodoc: update release notes for mlx5 driver
Shahaf Shuler [Mon, 16 Oct 2017 13:32:00 +0000 (16:32 +0300)]
doc: update release notes for mlx5 driver

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agoapp/testpmd: remove useless function declarations
Zhiyong Yang [Mon, 16 Oct 2017 02:30:44 +0000 (10:30 +0800)]
app/testpmd: remove useless function declarations

The four function declarations have no function implementation,
remove them.

Fixes: 0db70a803028 ("app/testpmd: add commands for filters")
Cc: stable@dpdk.org
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
6 years agoexamples/ipsec-secgw: support security offload
Akhil Goyal [Wed, 25 Oct 2017 15:07:27 +0000 (20:37 +0530)]
examples/ipsec-secgw: support security offload

Ipsec-secgw application is modified so that it can support
following type of actions for crypto operations
1. full protocol offload using crypto devices.
2. inline ipsec using ethernet devices to perform crypto operations
3. full protocol offload using ethernet devices.
4. non protocol offload

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
6 years agocrypto/dpaa2_sec: support protocol offload IPsec
Akhil Goyal [Wed, 25 Oct 2017 15:07:26 +0000 (20:37 +0530)]
crypto/dpaa2_sec: support protocol offload IPsec

Driver implementation to support rte_security APIs

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agonet/ixgbe: enable inline IPsec
Radu Nicolau [Wed, 25 Oct 2017 15:07:25 +0000 (20:37 +0530)]
net/ixgbe: enable inline IPsec

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
6 years agodoc: add details of security library
Akhil Goyal [Wed, 25 Oct 2017 15:07:24 +0000 (20:37 +0530)]
doc: add details of security library

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agosecurity: introduce security API and framework
Akhil Goyal [Wed, 25 Oct 2017 15:07:23 +0000 (20:37 +0530)]
security: introduce security API and framework

rte_security library provides APIs for security session
create/free for protocol offload or offloaded crypto
operation to ethernet device.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
6 years agoethdev: add flow action for crypto
Boris Pismenny [Wed, 25 Oct 2017 15:07:22 +0000 (20:37 +0530)]
ethdev: add flow action for crypto

The crypto action is specified by an application to request
crypto offload for a flow.

Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Reviewed-by: John McNamara <john.mcnamara@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agoethdev: support security APIs
Declan Doherty [Wed, 25 Oct 2017 15:07:21 +0000 (20:37 +0530)]
ethdev: support security APIs

rte_flow_action type and ethdev updated to support rte_security
sessions for crypto offload to ethernet device.

Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agombuf: add security crypto flags and fields
Boris Pismenny [Wed, 25 Oct 2017 15:07:20 +0000 (20:37 +0530)]
mbuf: add security crypto flags and fields

Add security crypto flags and update mbuf fields to support
IPsec crypto offload for transmitted packets, and to indicate
crypto result for received packets.

Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
6 years agonet: add ESP header to generic flow steering
Boris Pismenny [Wed, 25 Oct 2017 15:07:19 +0000 (20:37 +0530)]
net: add ESP header to generic flow steering

The ESP header is required for IPsec crypto actions.

Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Aviad Yehezkel <aviadye@mellanox.com>
6 years agocryptodev: support security APIs
Akhil Goyal [Wed, 25 Oct 2017 15:07:18 +0000 (20:37 +0530)]
cryptodev: support security APIs

Security ops are added to crypto device to support
protocol offloaded security operations.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
6 years agocryptodev: extend info get function documentation
Billy O'Mahony [Tue, 24 Oct 2017 14:53:27 +0000 (15:53 +0100)]
cryptodev: extend info get function documentation

Extend the Doxygen documentation of rte_cryptodev_info_get,
to describe how it returns the capabilities of a device.

Signed-off-by: Billy O'Mahony <billy.o.mahony@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
6 years agocryptodev: break dependency on PCI device bus
Declan Doherty [Wed, 25 Oct 2017 12:00:36 +0000 (13:00 +0100)]
cryptodev: break dependency on PCI device bus

Removes any dependency of librte_cryptodev on the PCI device
infrastructure code and removes the functions which were virtual
device specific.

Updates QAT crypto PMD to remove dependencies on rte_cryptodev_pci.h
and replaces those calls with the new bus independent functions.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: break dependency on virtual device bus
Declan Doherty [Wed, 25 Oct 2017 12:00:35 +0000 (13:00 +0100)]
cryptodev: break dependency on virtual device bus

Removes any dependency of librte_cryptodev on the virtual device
infrastructure code and removes the functions which were virtual
device specific.

Updates all virtual PMDs to remove dependencies on rte_cryptodev_vdev.h
and replaces those calls with the new bus independent functions.

Due to these changes, the cryptodev ABI version gets bumped.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Tested-by: Tomasz Duszynski <tdu@semihalf.com>
6 years agocryptodev: add APIs to assist PMD initialisation
Declan Doherty [Wed, 25 Oct 2017 12:00:34 +0000 (13:00 +0100)]
cryptodev: add APIs to assist PMD initialisation

Adds new PMD assist functions which are bus independent for driver to
create and destroy new device instances.

Also includes function to parse parameters which can be passed to
driver on device initialisation.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/qat: fix HMAC supported digest sizes
Pablo de Lara [Mon, 23 Oct 2017 10:37:09 +0000 (11:37 +0100)]
crypto/qat: fix HMAC supported digest sizes

For HMAC algorithms (MD5-HMAC, SHAx-HMAC), the supported
digest sizes are not a fixed value, but a range between
1 and the maximum digest size for those algorithms.

Fixes: 26c2e4ad5ad4 ("cryptodev: add capabilities discovery")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
6 years agocryptodev: move user callback initialization
Jan Blunck [Fri, 6 Oct 2017 08:39:32 +0000 (10:39 +0200)]
cryptodev: move user callback initialization

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: remove obsolete vdev include
Jan Blunck [Fri, 6 Oct 2017 08:39:31 +0000 (10:39 +0200)]
cryptodev: remove obsolete vdev include

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>