dpdk.git
5 years agonet/ice/base: add SFF EEPROM AQ command
Qi Zhang [Thu, 29 Aug 2019 02:36:02 +0000 (10:36 +0800)]
net/ice/base: add SFF EEPROM AQ command

read/write module eeprom on i2c bus.

Signed-off-by: Scott W Taylor <scott.w.taylor@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: remove debug code
Qi Zhang [Thu, 29 Aug 2019 02:36:01 +0000 (10:36 +0800)]
net/ice/base: remove debug code

Remove firmware logging debug code.

Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: correct argument port info
Qi Zhang [Thu, 29 Aug 2019 02:36:00 +0000 (10:36 +0800)]
net/ice/base: correct argument port info

correct argument pi(port_info) passed in function
ice_sched_get_first_node(), otherwise it will return the incorrect
node.

functions ice_sched_get_agg_node and ice_sched_cfg_sibl_node_prio:
change argument from hw to pi for it to align to correct port.

Moved saving tc node bw info from hardware structure(hw) to port info
structure(pi). This change allows multiple ports to save and replay
the information correctly.

Signed-off-by: Tarun Singh <tarun.k.singh@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: add read PBA module function
Qi Zhang [Thu, 29 Aug 2019 02:35:59 +0000 (10:35 +0800)]
net/ice/base: add read PBA module function

New support function added - ice_get_pfa_module_tlv(), the driver or
other modules can make use of this function to read the pfa area.

Signed-off-by: Tarun Singh <tarun.k.singh@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: store number of functions for the device
Qi Zhang [Thu, 29 Aug 2019 02:35:58 +0000 (10:35 +0800)]
net/ice/base: store number of functions for the device

Store the number of functions the device has.  This value can be
very useful when calculating how to best allocate global resources.

Signed-off-by: Kevin Scott <kevin.c.scott@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: support init RXDID descs fields
Qi Zhang [Thu, 29 Aug 2019 02:35:57 +0000 (10:35 +0800)]
net/ice/base: support init RXDID descs fields

Add new switch cases to init RXDID descs MD fields.

Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: support NVM rollback detection
Qi Zhang [Thu, 29 Aug 2019 02:35:56 +0000 (10:35 +0800)]
net/ice/base: support NVM rollback detection

This patch adds code to detect NVM rollback. The rollback detection
is done as part of the HW init flow. When NVM rollback is detected,
a warning message is printed along with the FW/NVM version data.
To do this, this patch adds a helper function ice_get_nvm_version.

Also, a pointer to hw->nvm is already available in ice_init_nvm. Just use
this instead of &hw->nvm.

Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: add function to get FW mode
Qi Zhang [Thu, 29 Aug 2019 02:35:55 +0000 (10:35 +0800)]
net/ice/base: add function to get FW mode

Add a helper function to get FW mode. The FW mode can be normal,
debug, recovery or rollback.

This makes ice_is_fw_in_rec_mode redundant, so remove it.

Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/ice/base: enhance NVM read
Qi Zhang [Thu, 29 Aug 2019 02:35:54 +0000 (10:35 +0800)]
net/ice/base: enhance NVM read

Add an option to read NVM from flash directly.

Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/vmxnet3: remove unused variable attribute
Ferruh Yigit [Fri, 13 Sep 2019 18:49:10 +0000 (19:49 +0100)]
net/vmxnet3: remove unused variable attribute

No functional change, just removing unused variable tag from a used
variable.

Fixes: 643fba770705 ("net/vmxnet3: add v4 boot and guest UDP RSS config")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Yong Wang <yongwang@vmware.com>
5 years agonet/memif: allow for full key size in socket name
Stephen Hemminger [Tue, 16 Jul 2019 17:20:57 +0000 (10:20 -0700)]
net/memif: allow for full key size in socket name

The key size for memif is 256 but the unix domain socket structure has
space for 100 bytes. Change it to use a larger buffer and not hard
code the keysize everywhere.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Tested-by: Jakub Grajciar <jgrajcia@cisco.com>
5 years agonet/ena: use dynamic log type for debug logging
Stephen Hemminger [Tue, 16 Jul 2019 20:43:27 +0000 (13:43 -0700)]
net/ena: use dynamic log type for debug logging

The generic RTE_LOGTYPE_PMD is a historical relic and should
not be used. Every driver must use dynamic logtypes.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Tested-by: Michal Krawczyk <mk@semihalf.com>
5 years agonet/kni: remove resources when port is closed
Ferruh Yigit [Fri, 26 Jul 2019 16:33:04 +0000 (17:33 +0100)]
net/kni: remove resources when port is closed

Add .dev_close to clean resources on device close,
also set RTE_ETH_DEV_CLOSE_REMOVE device flag to cause all ethdev
resources removed on 'rte_eth_dev_close()' call.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/sfc: fix missing notification on link status change
Andrew Rybchenko [Fri, 6 Sep 2019 10:49:49 +0000 (11:49 +0100)]
net/sfc: fix missing notification on link status change

rte_eth_linkstatus_set() returns 0 when link up status changes.

Fixes: 4abe903e5078 ("net/sfc: use link status helper functions")
Cc: stable@dpdk.org
Reported-by: Shuki Katzenelson <shuki@lightbitslabs.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agoexamples: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:29 +0000 (17:42 +0100)]
examples: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
examples according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agoexamples/vhost: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:49 +0000 (17:42 +0100)]
examples/vhost: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
examples/vhost according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
5 years agoexamples/qos_sched: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:38 +0000 (17:42 +0100)]
examples/qos_sched: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
examples/qos_sched according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
5 years agoexamples/flow_filtering: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:39 +0000 (17:42 +0100)]
examples/flow_filtering: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
examples/flow_filtering according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Ori Kam <orika@mellanox.com>
5 years agoexamples/flow_classify: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:54 +0000 (17:42 +0100)]
examples/flow_classify: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
examples/flow_classify according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
5 years agoexamples/ipsec-secgw: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:58 +0000 (17:42 +0100)]
examples/ipsec-secgw: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
examples/ipsec-secgw according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agoethdev: change device info get callback to return int
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:28 +0000 (17:42 +0100)]
ethdev: change device info get callback to return int

Change eth_dev_infos_get_t return value from void to int.
Make eth_dev_infos_get_t implementations across all drivers to return
negative errno values if case of error conditions.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/softnic: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:27 +0000 (17:42 +0100)]
net/softnic: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
net/softnic according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/netvsc: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:26 +0000 (17:42 +0100)]
net/netvsc: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to int,
so this patch modify rte_eth_dev_info_get() usage across
net/netvsc according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/failsafe: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:25 +0000 (17:42 +0100)]
net/failsafe: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
net/failsafe according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
5 years agonet/bonding: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:24 +0000 (17:42 +0100)]
net/bonding: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
net/bonding according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/bnxt: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:23 +0000 (17:42 +0100)]
net/bnxt: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to int, so
this patch modify rte_eth_dev_info_get() usage across
net/bnxt according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
5 years agoapp: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:15 +0000 (17:42 +0100)]
app: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to int, so
this patch modify rte_eth_dev_info_get() usage across apps
according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agoapp/testpmd: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:14 +0000 (17:42 +0100)]
app/testpmd: check status of getting ethdev info

Add eth_dev_info_get_print_err() which is a wrapper for
rte_eth_dev_info_get() printing error if rte_eth_dev_info_get()
fails and returning its status code.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
5 years agopdump: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:18 +0000 (17:42 +0100)]
pdump: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to int,
so this patch modify rte_eth_dev_info_get() usage across
pdump component according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agolatency: check status of getting ethdev info
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:17 +0000 (17:42 +0100)]
latency: check status of getting ethdev info

rte_eth_dev_info_get() return value was changed from void to
int, so this patch modify rte_eth_dev_info_get() usage across
latency component according to its new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agoethdev: add return code to device info get function
Ivan Ilchenko [Thu, 12 Sep 2019 16:42:13 +0000 (17:42 +0100)]
ethdev: add return code to device info get function

Change rte_eth_dev_info_get() return value from void to int and return
negative errno values in case of error conditions.
Modify rte_eth_dev_info_get() usage across the ethdev according
to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agoethdev: remove redundant device info cleanup before get
Andrew Rybchenko [Thu, 12 Sep 2019 16:42:12 +0000 (17:42 +0100)]
ethdev: remove redundant device info cleanup before get

rte_eth_dev_info_get() always fills in device information memory
with zeros on entry.

Fixes: b6719879855d ("ethdev: avoid getting uninitialized info for bad port")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/qede: implement flow drop action
Shahed Shaikh [Thu, 12 Sep 2019 15:24:16 +0000 (08:24 -0700)]
net/qede: implement flow drop action

Add support to configure drop action in rte_flow
infrastructure and add counter for dropped
packets due to this filter action "rx_gft_filter_drop".

Also, update supported flows and actions in qede guide.

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/qede: fix stats flow as per new allocation method
Shahed Shaikh [Thu, 12 Sep 2019 15:24:15 +0000 (08:24 -0700)]
net/qede: fix stats flow as per new allocation method

As per new method, need to consider hw stats of queues from
both engines. This patch fixes the stats collection flow accordingly.

Fixes: 2af14ca79c0a ("net/qede: support 100G")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/qede: fix RSS configuration as per new allocation method
Shahed Shaikh [Thu, 12 Sep 2019 15:24:14 +0000 (08:24 -0700)]
net/qede: fix RSS configuration as per new allocation method

With old design, RETA was configured in round-robin fashion since
queue allocation was distributed across both engines alternately.
Now, we need to configure RETA symmetrically on both engines since
both engines have same number of queues.

Fixes: 2af14ca79c0a ("net/qede: support 100G")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/qede: fix odd number of queues usage in 100G mode
Shahed Shaikh [Thu, 12 Sep 2019 15:24:13 +0000 (08:24 -0700)]
net/qede: fix odd number of queues usage in 100G mode

As per HW design of 100Gb mode, device internally uses 2 engines
(eng0 and eng1), and both engines need to be configured symmetrically.
Based on this requirement, driver design chose an approach
to allow user to allocate only even number of queues and split
those queues on both engines equally.

This approach puts a limitation on number of queues to be allocated -
i.e. user can't configure odd number of queues on 100Gb mode.
OVS configures DPDK port with 1 rxq and 1 txq, which causes initialization
of qede port to fail.

Issue is fixed by changing the implementation of queue allocation and
assignment to hw engines only for 100Gb devices and allowing user to
configure odd number queues.

New approach works as below -
- Create 'struct qede_fastpath_cmt' to hold hw queue pair of both engines
  and provide it to rte_ethdev's Rx/Tx queues structure.
- So ethdev will see only one queue for underlying queue pair created for
  hw engine pair.
- Install separate Rx/Tx data path handlers for 100Gb mode and regular mode
- Rx/Tx handlers for 100Gb mode will split packet processing across both
  engines by providing hw queue structures from 'struct qede_fastpath_cmt'
  passed by Rx/Tx callbacks to respective engines.

Fixes: 2af14ca79c0a ("net/qede: support 100G")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/qede: refactor Rx and Tx queue setup
Shahed Shaikh [Thu, 12 Sep 2019 15:24:12 +0000 (08:24 -0700)]
net/qede: refactor Rx and Tx queue setup

This patch refactors Rx and Tx queue setup flow required to allow
odd number of queues to be configured in next patch.

This is the first patch of the series required to fix an issue
where qede port initialization in ovs-dpdk fails due to 1 Rx/Tx queue
configuration. Detailed explanation is given in next patch.

Fixes: 2af14ca79c0a ("net/qede: support 100G")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/mlx5: fix Rx CQ doorbell synchronization on aarch64
Phil Yang [Thu, 5 Sep 2019 10:55:07 +0000 (18:55 +0800)]
net/mlx5: fix Rx CQ doorbell synchronization on aarch64

The Rx completion queue doorbell field needs to be updated after
the last CQE decompressed. For the weaker memory model processors,
the compiler barrier is not sufficient to guarantee the order of
these operations, so use the coherent I/O memory barrier to make
sure these fields are updated in order.

Fixes: 570acdb1da8a ("net/mlx5: add vectorized Rx/Tx burst for ARM")
Cc: stable@dpdk.org
Suggested-by: Gavin Hu <gavin.hu@arm.com>
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Matan Azrad <matan@mellanox.com>
5 years agonet/mlx5: skip table zero to improve insertion rate
Dekel Peled [Wed, 11 Sep 2019 11:03:36 +0000 (14:03 +0300)]
net/mlx5: skip table zero to improve insertion rate

E-switch tables one and above provide higher insertion rate
than table zero, as well as enhanced functionality.

This patch adds a mechanism to utilize these advantages, by creating
a default rule on port start, which directs all packets from e-switch
table zero to table one.
Other flow rules, requested for group n, will be created in
e-switch table n+1.
Jump action to e-switch group n will be created to group n+1.

Utility function mlx5_flow_group_to_table() is added to translate the
rte_flow group value to HW table value, and is called by PMD flow
engine on flow rule validation and creation.

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/i40e: downgrade error log
Eelco Chaudron [Thu, 12 Sep 2019 10:38:35 +0000 (06:38 -0400)]
net/i40e: downgrade error log

When receiving the unsupported AQ messages, it's taken as an
error. It's not appropriate and triggers too much unnecessary print.

This commit is similar to
commit e130425300b0 ("net/i40e: downgrade unnecessary error log")
which made the same change for the PF instance.

Fixes: ae19955e7c86 ("i40evf: support reporting PF reset")
Cc: stable@dpdk.org
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/e1000: fix memory barrier usage in Tx
Xiao Zhang [Tue, 10 Sep 2019 17:41:18 +0000 (01:41 +0800)]
net/e1000: fix memory barrier usage in Tx

Use rte_cio_wmb instead of rte_wmb when writing TX descriptor since it's
CIO memory.
Replace rte_io_wmb and E1000_PCI_REG_WRITE_RELAXED with
E1000_PCI_REG_WRITE since it has rte_io_wmb inside, which will be more
clear.

Fixes: 1fc9701238ed ("net/e1000: fix i219 hang on reset/close")
Cc: stable@dpdk.org
Signed-off-by: Xiao Zhang <xiao.zhang@intel.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/e1000: fix MAC type checking
Xiao Zhang [Tue, 10 Sep 2019 17:40:55 +0000 (01:40 +0800)]
net/e1000: fix MAC type checking

The mac types of i219 are e1000_pch_spt and e1000_pch_cnp, correct the
checking code of mac type when flushing i219 descriptor rings.

Fixes: 1fc9701238ed ("net/e1000: fix i219 hang on reset/close")
Cc: stable@dpdk.org
Reported-by: Kevin Traynor <ktraynor@redhat.com>
Signed-off-by: Xiao Zhang <xiao.zhang@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
5 years agonet/mlx5: fix netlink RDMA socket callback routine
Viacheslav Ovsiienko [Tue, 10 Sep 2019 13:51:51 +0000 (13:51 +0000)]
net/mlx5: fix netlink RDMA socket callback routine

The mlx5 PMD uses Netlink socket to communicate with Infiniband
devices kernel drivers to perform some control and setup operations.
The kernel drivers send the information back to the user mode
with Netlink messages which are processed in libnl callback routine.
This routine perform reply message (or set of messages) processing
and returned the processing result in ibindex field of provided
context structure (of mlx5_nl_ifindex_data type). The zero ibindex
value meant an error of reply message processing. It was found in
some configurations the zero is valid value for ibindex and error
was wrongly raised. To avoid this the new flags field is provided
in context structure, attribute processing flags are introduced
and these flags are used to decide whether no error occurred and
valid queried values are returned.

Fixes: e505508a3858 ("net/mlx5: modify get ifindex routine for multiport IB")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: support reading module EEPROM data
Dekel Peled [Mon, 9 Sep 2019 11:04:35 +0000 (14:04 +0300)]
net/mlx5: support reading module EEPROM data

This patch implements ethdev operations get_module_info and
get_module_eeprom, to support ethtool commands ETHTOOL_GMODULEINFO
and ETHTOOL_GMODULEEEPROM.

New functions mlx5_get_module_info() and mlx5_get_module_eeprom()
added in mlx5_ethdev.c.

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: support modify VLAN ID on existing VLAN header
Moti Haimovsky [Mon, 9 Sep 2019 15:56:49 +0000 (18:56 +0300)]
net/mlx5: support modify VLAN ID on existing VLAN header

This commit adds support for modifying the VID of the outermost VLAN
header already present in the packet.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: support modify VLAN ID on new VLAN header
Moti Haimovsky [Mon, 9 Sep 2019 15:56:48 +0000 (18:56 +0300)]
net/mlx5: support modify VLAN ID on new VLAN header

This commit adds support for modifying the VLAN ID (VID) field
in an about-to-be-pushed VLAN header.
This feature can only modify the VID field of a new VLAN header yet
to be pushed. It does not support modifying an existing or already
pushed VLAN headers.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: support modifying VLAN priority on VLAN header
Moti Haimovsky [Mon, 9 Sep 2019 15:56:47 +0000 (18:56 +0300)]
net/mlx5: support modifying VLAN priority on VLAN header

This commit adds support for modifying the VLAN priority (PCP) field
in about-to-be-pushed VLAN header.
This feature can only modify the PCP field of a new VLAN header yet
to be pushed. It does not support modifying an existing or already
pushed VLAN headers.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: support push flow action on VLAN header
Moti Haimovsky [Mon, 9 Sep 2019 15:56:46 +0000 (18:56 +0300)]
net/mlx5: support push flow action on VLAN header

This commit adds support for RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN using
direct verbs flow rules.
If present in the flow, The VLAN default values are taken from the
VLAN item configuration.
In this commit only the VLAN TPID value can be set since VLAN
modification actions are not supported yet.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: support pop flow action on VLAN header
Moti Haimovsky [Mon, 9 Sep 2019 15:56:45 +0000 (18:56 +0300)]
net/mlx5: support pop flow action on VLAN header

This commit adds support for RTE_FLOW_ACTION_TYPE_OF_POP_VLAN via
direct verbs flow rules.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: add VLAN push/pop DR commands to glue
Moti Haimovsky [Mon, 9 Sep 2019 15:56:44 +0000 (18:56 +0300)]
net/mlx5: add VLAN push/pop DR commands to glue

This commit adds the mlx5dv VLAN push and pop commands to mlx5_glue
interface.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: support flow action search in a list
Moti Haimovsky [Mon, 9 Sep 2019 15:56:43 +0000 (18:56 +0300)]
net/mlx5: support flow action search in a list

This commit adds a helper routine that supports searching for a
specific action in a list of actions.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
5 years agonet/mlx5: fix Tx descriptor with VLAN insertions
Viacheslav Ovsiienko [Tue, 3 Sep 2019 12:35:05 +0000 (12:35 +0000)]
net/mlx5: fix Tx descriptor with VLAN insertions

If VLAN tag insertion transmit offload is engaged
(DEV_TX_OFFLOAD_VLAN_INSERT in tx queue configuration is set)
the transmit descriptor may be built with wrong format, due to
packet length is not adjusted. Also, the ring buffer wrap up
is not handled correctly.

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
5 years agoevent/dpaa: support crypto adapter
Akhil Goyal [Fri, 4 Oct 2019 11:26:59 +0000 (16:56 +0530)]
event/dpaa: support crypto adapter

event dpaa device support both ethernet as well as
crypto queues to be attached to it. eth_rx_adapter
provide infrastructure to attach ethernet queues and
crypto_adapter provide support for crypto queues.

This patch add support for dpaa_eventdev to attach
dpaa_sec queues.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa_sec: support event crypto adapter
Akhil Goyal [Fri, 4 Oct 2019 11:26:58 +0000 (16:56 +0530)]
crypto/dpaa_sec: support event crypto adapter

dpaa_sec hw queues can be attached to a hw dpaa event
device and the application can configure the event
crypto adapter to access the dpaa_sec packets using
hardware events.
This patch defines APIs which can be used by the
dpaa event device to attach/detach dpaa_sec queues.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/octeontx: fix global log variable definition
Anoob Joseph [Fri, 4 Oct 2019 09:44:35 +0000 (15:14 +0530)]
crypto/octeontx: fix global log variable definition

'cpt_logtype' & 'otx_cryptodev_driver_id' global variables are defined
in a header file which was causing multiple definitions of the
variables. Fixed it by moving the required vars to the .c file and
introducing a new macro so the CPT_LOG macros in common/cpt would use
the associated PMD log var.

Issue has been detected by '-fno-common' gcc flag.

Fixes: bfe2ae495ee2 ("crypto/octeontx: add PMD skeleton")
Cc: stable@dpdk.org
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Reported-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agocrypto/virtio: allocate private data by NUMA affinity
Xiao Wang [Wed, 4 Sep 2019 13:21:51 +0000 (21:21 +0800)]
crypto/virtio: allocate private data by NUMA affinity

It's better to allocate device private data on the same NUMA node with
device, rather than with the main thread. This helps avoid cross-NUMA
access for worker thread.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Jay Zhou <jianjay.zhou@huawei.com>
5 years agoapp/bbdev: enable fpga_lte_fec support in shared builds
Bruce Richardson [Fri, 4 Oct 2019 17:19:13 +0000 (18:19 +0100)]
app/bbdev: enable fpga_lte_fec support in shared builds

Now that the necessary function is exported from the fpga_lte_fec driver,
we can enable the code paths using it in shared-library builds.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>
5 years agobaseband/fpga_lte_fec: add public API to map file
Bruce Richardson [Fri, 4 Oct 2019 17:19:12 +0000 (18:19 +0100)]
baseband/fpga_lte_fec: add public API to map file

To allow shared library builds of e.g. test-bbdev app, we need to export
the configure function. Since this needs to be exported as experimental by
default, we update the header file to add the experimental tag there too.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agodrivers/baseband: remove override of driver names
Bruce Richardson [Fri, 4 Oct 2019 17:19:11 +0000 (18:19 +0100)]
drivers/baseband: remove override of driver names

Now that all driver names follow a consistent pattern, remove the override
of the name in each driver which adds the prefix. Instead we can just add
the prefix at a higher level.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agobaseband/fpga_lte_fec: align naming to other bbdevs
Bruce Richardson [Fri, 4 Oct 2019 17:19:10 +0000 (18:19 +0100)]
baseband/fpga_lte_fec: align naming to other bbdevs

The fpga_lte_fec is the only bbdev driver that does not use bbdev in the
name, so modify it to keep consistency with the other bbdev drivers. This
will then allow later simplification due to all drivers using the same
basic naming format.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agodrivers/baseband: align meson defines with make
Bruce Richardson [Fri, 4 Oct 2019 17:19:09 +0000 (18:19 +0100)]
drivers/baseband: align meson defines with make

For baseband drivers, the macros used to indicate the presence of a
particular driver were subtly different from that used in make. The make
values hand "PMD" before the individual driver name, while in meson it came
afterwards. Update meson to put the "PMD" part first.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agocrypto/qat: handle Single Pass Crypto Requests on GEN3
Adam Dybkowski [Tue, 8 Oct 2019 12:44:33 +0000 (14:44 +0200)]
crypto/qat: handle Single Pass Crypto Requests on GEN3

This patch improves the performance of AES GCM by using
the Single Pass Crypto Request functionality when running
on GEN3 QAT. Falls back to the classic 2-pass mode on older
hardware.

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agocommon/qat: add GEN3 definitions
Adam Dybkowski [Tue, 8 Oct 2019 12:44:32 +0000 (14:44 +0200)]
common/qat: add GEN3 definitions

This patch adds few definitions specific to GEN3 QAT.

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agotest/crypto: add more AES-GCM cases for QAT
Adam Dybkowski [Tue, 8 Oct 2019 12:44:31 +0000 (14:44 +0200)]
test/crypto: add more AES-GCM cases for QAT

This patch adds 256-bit AES GCM tests for QAT PMD
(which already existed for AESNI and OpenSSL) and also adds
a number of negative unit tests for AES GCM for QAT PMD, in order
to verify authenticated encryption and decryption with modified data.

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agodrivers/crypto: remove some invalid comments
Thierry Herbelot [Mon, 30 Sep 2019 07:51:44 +0000 (09:51 +0200)]
drivers/crypto: remove some invalid comments

A comment valid in AESNI PMD was copied and pasted in other code

Fixes: 8a61c83af2fa ("crypto/mrvl: add mrvl crypto driver")
Fixes: 169ca3db550c ("crypto/armv8: add PMD optimized for ARMv8 processors")
Fixes: d61f70b4c918 ("crypto/libcrypto: add driver for OpenSSL library")
Cc: stable@dpdk.org
Signed-off-by: Thierry Herbelot <thierry.herbelot@6wind.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agotest/crypto: add cases for Nitrox
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:36 +0000 (06:41 +0000)]
test/crypto: add cases for Nitrox

Add aes chain test cases for Nitrox in-pace and
out-of-place operations.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/nitrox: add cipher auth chain processing
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:33 +0000 (06:41 +0000)]
crypto/nitrox: add cipher auth chain processing

Add cipher auth crypto chain processing functionality in symmetric
request manager. Update the release notes.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/nitrox: add burst enqueue and dequeue ops
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:31 +0000 (06:41 +0000)]
crypto/nitrox: add burst enqueue and dequeue ops

Add burst enqueue and dequeue operations along with interface for
symmetric request manager.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/nitrox: add session management
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:29 +0000 (06:41 +0000)]
crypto/nitrox: add session management

Add all the session management operations.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/nitrox: add hardware queue management
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:27 +0000 (06:41 +0000)]
crypto/nitrox: add hardware queue management

Add hardware queue management code corresponding to
queue pair setup and release functions.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/nitrox: add software queue management
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:25 +0000 (06:41 +0000)]
crypto/nitrox: add software queue management

Add software queue management code corresponding to
queue pair setup and release functions.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/nitrox: create symmetric cryptodev
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:23 +0000 (06:41 +0000)]
crypto/nitrox: create symmetric cryptodev

Add Nitrox symmetric cryptodev with following operations,
- dev_configure
- dev_start
- dev_stop
- dev_close
- dev_infos_get

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/nitrox: introduce Nitrox driver
Nagadheeraj Rottela [Tue, 1 Oct 2019 06:41:20 +0000 (06:41 +0000)]
crypto/nitrox: introduce Nitrox driver

Add bare minimum Nitrox PMD library which handles pci probe, remove and
hardware initialization. Add logs, documentation and update maintainers
file.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agoapp/crypto-perf: add check for out-of-place case
Hemant Agrawal [Fri, 27 Sep 2019 08:03:15 +0000 (13:33 +0530)]
app/crypto-perf: add check for out-of-place case

Segmented frames not supported for out-of-place case.
This patch returns err if such config is requested.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocommon/cpt: support new firmware
Ankur Dwivedi [Wed, 14 Aug 2019 09:40:31 +0000 (15:10 +0530)]
common/cpt: support new firmware

With the latest firmware, there are few changes for zuc and snow3g.

1. The iv_source is present in bitfield 7 of minor opcode. In the
old firmware this was present in bitfield 6.

2. Algorithm type is a 2 bit field in new firmware. In the old
firmware it was named as cipher type and it was a 1 bit field.

Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
5 years agocryptodev: fix initialization on multi-process
Julien Meunier [Wed, 7 Aug 2019 08:39:23 +0000 (11:39 +0300)]
cryptodev: fix initialization on multi-process

Primary process is responsible to initialize the data struct of each
crypto devices.

Secondary process should not override this data during the
initialization.

Fixes: d11b0f30df88 ("cryptodev: introduce API and framework for crypto devices")
Cc: stable@dpdk.org
Signed-off-by: Julien Meunier <julien.meunier@nokia.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agotest/crypto: add negative cases for NXP drivers
Hemant Agrawal [Tue, 1 Oct 2019 11:41:19 +0000 (17:11 +0530)]
test/crypto: add negative cases for NXP drivers

Negative cases with wrong cipher/auth text added
to dpaa_sec and dpaa2_sec PMD test suites.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agotest/crypto: change failure condition check
Hemant Agrawal [Tue, 1 Oct 2019 11:41:18 +0000 (17:11 +0530)]
test/crypto: change failure condition check

In some of the cases, the test is looking for a specific
failure returned from the CryptoDev. Not all cryptodev
support returning specific errors.
This patch changes such checks to NOT-SUCCESS

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agoexamples/ipsec-secgw: update required Scapy version
Marcin Smoczynski [Wed, 2 Oct 2019 08:50:15 +0000 (10:50 +0200)]
examples/ipsec-secgw: update required Scapy version

Update Scapy version requirement from 2.4.3rc1 to 2.4.3, which has been
used because 2.4.2 had a bug which made this version unable to install.
Accept future versions of Scapy too.

Signed-off-by: Marcin Smoczynski <marcinx.smoczynski@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agotest/crypto: support wireless algos for dpaa2-sec
Akhil Goyal [Mon, 30 Sep 2019 19:27:46 +0000 (00:57 +0530)]
test/crypto: support wireless algos for dpaa2-sec

SNOW and ZUC plain crypto operations for cipher only
and auth only are now supported in dpaa2_sec.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agotest/crypto: add PDCP cases for scatter gather
Akhil Goyal [Mon, 30 Sep 2019 19:27:45 +0000 (00:57 +0530)]
test/crypto: add PDCP cases for scatter gather

Test cases for PDCP with scattered input and output
buffers are added for both inplace and out of place scenarios.
1. input SG - output non SG
2. input and output both SG and inplace buffers
3. input and output both SG with different segment sizes
4. input SG and output non-SG

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agotest/crypto: add PDCP U-Plane decap cases
Akhil Goyal [Mon, 30 Sep 2019 19:27:44 +0000 (00:57 +0530)]
test/crypto: add PDCP U-Plane decap cases

This patch add test cases for user plane PDCP
5/7/12/15/18 bit SN test cases for decapsulation of
cipher only and 12/18 bit for cipher + integrity
for all algo combinations.

Test vectors are reused from the encap cases
by swapping the input and output data.

The case are added to DPAA_SEC and DPAA2_SEC
testsuite.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agotest/crypto: add PDCP U-Plane encap with integrity cases
Akhil Goyal [Mon, 30 Sep 2019 19:27:43 +0000 (00:57 +0530)]
test/crypto: add PDCP U-Plane encap with integrity cases

PDCP User/Data plane can optionally support integrity
along with confidentiality.
This patch add test cases and test vectors for all
supported algos combos for cipher+integrity for 12
and 18bit SN.

The test cases are added in DPAA_SEC and DPAA2_SEC
test suite as a reference.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agotest/crypto: add PDCP U-Plane encap cases
Akhil Goyal [Mon, 30 Sep 2019 19:27:42 +0000 (00:57 +0530)]
test/crypto: add PDCP U-Plane encap cases

PDCP User/Data plane can support 5/7/12/15/18 bit
sequence number. This patch add test cases and test
vectors for all supported algos for cipher only.
(NULL, AES, SNOW, ZUC ciphers)

The test cases are added in DPAA_SEC and DPAA2_SEC
test suite as a reference.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agotest/crypto: add PDCP C-Plane decap cases
Akhil Goyal [Mon, 30 Sep 2019 19:27:41 +0000 (00:57 +0530)]
test/crypto: add PDCP C-Plane decap cases

This patch add test cases for control plane PDCP
5 and 12 bit SN test cases for decapsulation of
cipher+integrity for all algo combinations

Test vectors are reused from the encap cases
by swapping the input and output data.

The case are added to DPAA_SEC and DPAA2_SEC testsuite.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agotest/crypto: add PDCP C-Plane encap cases
Akhil Goyal [Mon, 30 Sep 2019 19:27:40 +0000 (00:57 +0530)]
test/crypto: add PDCP C-Plane encap cases

PDCP control plane can support 5 bit and 12 bit
sequence number. This patch add test cases and test
vectors for all supported algo combinations of cipher+integrity
(NULL+NULL, NULL+AES, NULL+SNOW, NULL+ZUC,
 AES+NULL,  AES+SNOW, AES+AES,   AES+ZUC,
 SNOW+NULL, SNOW+AES, SNOW+SNOW, SNOW+ZUC,
 ZUC+NULL,  ZUC+AES,  ZUC+SNOW,  ZUC+ZUC).

The test cases are added in DPAA_SEC and DPAA2_SEC
test suite as a reference.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agoexamples/fips_validation: fix null dereferences
Chaitanya Babu Talluri [Wed, 25 Sep 2019 06:31:34 +0000 (07:31 +0100)]
examples/fips_validation: fix null dereferences

One issue caught by Coverity 343408
*deref_parm: Directly dereferencing parameter val->val.

In writeback_tdes_hex_str(), tmp_val is initialised to null.
tmp_val.val is updated only if keys are found.
If keys are not found,it doesn't fails but continues
to invoke writeback_hex_str(),where val->val is accessed
without null check.

The fix is to return the error,
if keys are not found in writeback_tdes_hex_str().

Coverity issue: 343408
Fixes: 527cbf3d5e ("examples/fips_validation: support TDES parsing")
Cc: stable@dpdk.org
Signed-off-by: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec: improve debug logging
Hemant Agrawal [Mon, 30 Sep 2019 14:41:04 +0000 (20:11 +0530)]
crypto/dpaa2_sec: improve debug logging

unnecessary debug logs in data path are removed
and hardware debug logs are compiled off.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa_sec: change per device pool to per qp
Akhil Goyal [Mon, 30 Sep 2019 14:41:03 +0000 (20:11 +0530)]
crypto/dpaa_sec: change per device pool to per qp

In cases where single cryptodev is used by multiple cores
using multiple queues, there will be contention for mempool
resources and may eventually get exhausted.
Basically, mempool should be defined per core.
Now since qp is used per core, mempools are defined in qp setup.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa_sec: allocate context dynamically for SG
Hemant Agrawal [Mon, 30 Sep 2019 14:41:02 +0000 (20:11 +0530)]
crypto/dpaa_sec: allocate context dynamically for SG

This patch allocate/clean the SEC context dynamically
based on the number of SG entries in the buffer.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec: allocate context as per num segs
Hemant Agrawal [Mon, 30 Sep 2019 14:41:01 +0000 (20:11 +0530)]
crypto/dpaa2_sec: allocate context as per num segs

DPAA2_SEC hardware can support any number of SG entries.
This patch allocate as many SG entries as are required.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec: support ZUC ciphering/integrity
Hemant Agrawal [Mon, 30 Sep 2019 14:41:00 +0000 (20:11 +0530)]
crypto/dpaa2_sec: support ZUC ciphering/integrity

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec/hw: support ZUCE and ZUCA
Vakul Garg [Mon, 30 Sep 2019 14:40:59 +0000 (20:10 +0530)]
crypto/dpaa2_sec/hw: support ZUCE and ZUCA

This patch add support for ZUC Encryption and ZUC Authentication.
Before passing to CAAM, the 16-byte ZUCA IV is converted to 8-byte
format which consists of 38-bits of count||bearer|direction.

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec/hw: support KASUMI
Vakul Garg [Mon, 30 Sep 2019 14:40:58 +0000 (20:10 +0530)]
crypto/dpaa2_sec/hw: support KASUMI

Add Kasumi processing for non PDCP proto offload cases.
Also add support for pre-computed IV in Kasumi-f9

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec: support SNOW3G cipher/integrity
Hemant Agrawal [Mon, 30 Sep 2019 14:40:57 +0000 (20:10 +0530)]
crypto/dpaa2_sec: support SNOW3G cipher/integrity

Adding basic framework to use snow3g f8 and f9 based
ciphering or integrity with direct crypto apis.
This patch does not support any combo usages yet.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec/hw: support SNOW-f9
Vakul Garg [Mon, 30 Sep 2019 14:40:56 +0000 (20:10 +0530)]
crypto/dpaa2_sec/hw: support SNOW-f9

Add support for snow-f9 in non pdcp protocol offload mode.
This essentially add support to pass pre-computed IV to SEC.

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec/hw: support SNOW-f8
Vakul Garg [Mon, 30 Sep 2019 14:40:55 +0000 (20:10 +0530)]
crypto/dpaa2_sec/hw: support SNOW-f8

This patch add support for non-protocol offload mode
of snow-f8 algo

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec/hw: support SNOW-SNOW 18-bit PDCP
Vakul Garg [Mon, 30 Sep 2019 14:40:54 +0000 (20:10 +0530)]
crypto/dpaa2_sec/hw: support SNOW-SNOW 18-bit PDCP

This patch support SNOW-SNOW (enc-auth) 18bit PDCP case
for devices which do not support PROTOCOL command

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec/hw: support ZUC-ZUC 18-bit PDCP
Vakul Garg [Mon, 30 Sep 2019 14:40:53 +0000 (20:10 +0530)]
crypto/dpaa2_sec/hw: support ZUC-ZUC 18-bit PDCP

This patch support ZUC-ZUC PDCP enc-auth case for
devices which do not support PROTOCOL command for 18bit.

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/dpaa2_sec/hw: support AES-AES 18-bit PDCP
Vakul Garg [Mon, 30 Sep 2019 14:40:52 +0000 (20:10 +0530)]
crypto/dpaa2_sec/hw: support AES-AES 18-bit PDCP

This patch support AES-AES PDCP enc-auth case for
devices which do not support PROTOCOL command for 18bit

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>