dpdk.git
4 years agonet/hns3: add build and doc infrastructure
Wei Hu (Xavier) [Thu, 26 Sep 2019 14:01:47 +0000 (22:01 +0800)]
net/hns3: add build and doc infrastructure

This patch adds build and doc infrastructure for hns3 PMD driver.

Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Signed-off-by: Chunsong Feng <fengchunsong@huawei.com>
Signed-off-by: Hao Chen <chenhao164@huawei.com>
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agonet/ena: change license clause to SPDX tags
Maciej Bielski [Fri, 27 Sep 2019 11:41:45 +0000 (13:41 +0200)]
net/ena: change license clause to SPDX tags

Signed-off-by: Maciej Bielski <mba@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
4 years agoapp/testpmd: fix build for 16-byte Rx descriptor mode
Tao Zhu [Wed, 25 Sep 2019 18:03:15 +0000 (02:03 +0800)]
app/testpmd: fix build for 16-byte Rx descriptor mode

This minor patch fixes unused variable ‘ret’ compile error When
CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC was selected.

Fixes: 6f51deb903b2 ("app/testpmd: check status of getting ethdev info")

Signed-off-by: Tao Zhu <taox.zhu@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agoapp/testpmd: fix crash on port reset
Shougang Wang [Tue, 24 Sep 2019 04:49:03 +0000 (04:49 +0000)]
app/testpmd: fix crash on port reset

port reset cause crash when ports are not stopped. Fixed by refusing the
reset when port is not stopped.

Fixes: 97f1e196799f ("app/testpmd: add port reset command")
Cc: stable@dpdk.org
Signed-off-by: Shougang Wang <shougangx.wang@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
4 years agonet/ipn3ke: setup MTU during HW init
Andy Pei [Wed, 4 Sep 2019 01:52:46 +0000 (09:52 +0800)]
net/ipn3ke: setup MTU during HW init

Set up MTU to the minimum among Tx MTU, Rx MTU and
IPN3KE_MAC_FRAME_SIZE_MAX.

Signed-off-by: Andy Pei <andy.pei@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Rosen Xu <rosen.xu@intel.com>
4 years agonet/ice: remove legacy Rx descriptor definition
Haiyue Wang [Tue, 24 Sep 2019 02:38:09 +0000 (10:38 +0800)]
net/ice: remove legacy Rx descriptor definition

Since now the ice PMD only handles Rx Flex descriptor, so remove the
legacy descriptor definition.

Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice: switch to Rx flexible descriptor in AVX path
Leyi Rong [Tue, 24 Sep 2019 02:38:08 +0000 (10:38 +0800)]
net/ice: switch to Rx flexible descriptor in AVX path

Switch to Rx flexible descriptor format instead of legacy
descriptor format.

Signed-off-by: Leyi Rong <leyi.rong@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice: switch to flexible descriptor in SSE path
Wenzhuo Lu [Tue, 24 Sep 2019 02:38:07 +0000 (10:38 +0800)]
net/ice: switch to flexible descriptor in SSE path

With this path, the flexible descriptor is supported
in SSE path. And the legacy descriptor is not supported.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice: support protocol extraction per Rx queue
Haiyue Wang [Tue, 24 Sep 2019 02:38:06 +0000 (10:38 +0800)]
net/ice: support protocol extraction per Rx queue

The ice has the feature to extract protocol fields into flex descriptor
by programming per queue. Currently, the ice PMD will put the protocol
fields into rte_mbuf::udata64 with different type format. Application
can access the protocol fields quickly.

Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice: handle Rx flex descriptor
Haiyue Wang [Tue, 24 Sep 2019 02:38:05 +0000 (10:38 +0800)]
net/ice: handle Rx flex descriptor

Set the RXDID with flex descriptor type by default, change the Rx
function to support new descriptor handling.

Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice: add Rx flex descriptor definition
Haiyue Wang [Tue, 24 Sep 2019 02:38:04 +0000 (10:38 +0800)]
net/ice: add Rx flex descriptor definition

The Rx flex descriptor has 16B and 32B size, with different
field definitions compared to legacy type.

Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/i40e: limit the number of VF messages
Alvin Zhang [Tue, 24 Sep 2019 14:24:43 +0000 (22:24 +0800)]
net/i40e: limit the number of VF messages

PF driver supports counting VF adminQ messages. If any VF driver
sends much more adminQ messages to its PF driver in a period of
time, it will trigger the PF's message limitation, then in the
next certain amount of seconds the PF driver will ignore any new
adminQ message from that VF.

Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice/base: remove unused code
Qi Zhang [Mon, 23 Sep 2019 07:44:48 +0000 (15:44 +0800)]
net/ice/base: remove unused code

Remove unused 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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: support switch for IPv6 TC field
Qi Zhang [Mon, 23 Sep 2019 07:44:47 +0000 (15:44 +0800)]
net/ice/base: support switch for IPv6 TC field

Add support for IPv6 traffic class (tc) field for switch rule.
Correct ice_ipv6_hdr based on the IPv6 Protocol using bitfields.
Add big/little endian convert for tc field before it is inserted,
since tc is only one byte and also does not have a byte-aligned
offset.

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: fix packet type bitmap
Qi Zhang [Mon, 23 Sep 2019 07:44:46 +0000 (15:44 +0800)]
net/ice/base: fix packet type bitmap

Before this patch, IPv4 and UDP inner hash rule will be over
written by later rules after RSS initialization phase. This is
because the PTYPE bitmap table cover some PTYPEs belong to another
PTGs. And some PTYPEs are reserved. Remove these PTYPEs in TCP,
UDP, SCTP and ipv4 bitmap table.

Fixes: aa1cd410fa64 ("net/ice/base: add flow module")

Signed-off-by: Zhirun Yan <zhirun.yan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: fix alignment
Qi Zhang [Mon, 23 Sep 2019 07:44:45 +0000 (15:44 +0800)]
net/ice/base: fix alignment

As title says, fix an alignment issue.

Fixes: 51d04e4933e3 ("net/ice/base: add flexible pipeline module")
Cc: stable@dpdk.org
Signed-off-by: Tony Nguyen <anthony.l.nguyen@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: use bitmap copy where appropriate
Qi Zhang [Mon, 23 Sep 2019 07:44:44 +0000 (15:44 +0800)]
net/ice/base: use bitmap copy where appropriate

ice_cp_bitmap() already exists and should be used instead of
using ice_memcpy().  Note, there are a couple comments that suggest
using a bitmap-specific copy function, but those are not correct
since the source block of memory is not a bitmap.

Signed-off-by: Bruce Allan <bruce.w.allan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: remove unnecessary error log
Qi Zhang [Mon, 23 Sep 2019 07:44:43 +0000 (15:44 +0800)]
net/ice/base: remove unnecessary error log

Remove the error log message when attempting to download a
package that has an unsupported version.

Signed-off-by: Dan Nowlin <dan.nowlin@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: fix 4 bytes alignment for PPPoE dummy packet
Qi Zhang [Mon, 23 Sep 2019 07:44:42 +0000 (15:44 +0800)]
net/ice/base: fix 4 bytes alignment for PPPoE dummy packet

Add two bytes to meet the requirement of 4 bytes alignment for dummy
packet for creating switch rule for PPPoE.

Fixes: d1c2f76b440a ("net/ice/base: support GTP and PPPoE protocols")

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: search field vector indices for result slots
Qi Zhang [Mon, 23 Sep 2019 07:44:41 +0000 (15:44 +0800)]
net/ice/base: search field vector indices for result slots

Previously, switch code would use only pre-reserved index
slots at the end of each field vector for recipe result index
locations. This patch adds code that detects other internal
empty index slots that could potentially be used. For each
recipe that is added, a determ ination is made as to whether
any of these additional index slots alige with all the profiles
selected for the recipe; if alignment is achieved, then these
result index slots can be used.

Signed-off-by: Dan Nowlin <dan.nowlin@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: remove unused DDP package macros
Qi Zhang [Mon, 23 Sep 2019 07:44:40 +0000 (15:44 +0800)]
net/ice/base: remove unused DDP package macros

Macros no longer be used and can be removed

Signed-off-by: Bruce Allan <bruce.w.allan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: fix segment in remove existing RSS rule
Qi Zhang [Mon, 23 Sep 2019 07:44:39 +0000 (15:44 +0800)]
net/ice/base: fix segment in remove existing RSS rule

Before this patch, RSS tunneled rules can not be destroyed at runtime.
This is because it can not find the existing matching profile for tunnels.
segs[0] should always be zero and all matched, segs[1] for inner part.
It only construct one segment.

This patch modifies construct segment in ice_rem_rss_cfg_sync() to
match ice_add_rss_cfg_sync().

Fixes: b7d34ccc47b5 ("net/ice/base: packet encapsulation for RSS")

Signed-off-by: Zhirun Yan <zhirun.yan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: fix bitmap for TCP in RSS
Qi Zhang [Mon, 23 Sep 2019 07:44:38 +0000 (15:44 +0800)]
net/ice/base: fix bitmap for TCP in RSS

Before this patch, if set rule for IPv4 first and then set rule
for TCP with IPv4. The first rule for inner IP will be overwritten
by TCP rule. This is because MAC_IPV6_TUN_MAC_IPV4_PAY using the
same ptgs PTG_TUN_INNER_IPV4_OTHER with MAC_IPV4_TUN_MAC_IPV4_PAY,
this ptype should not in TCP bitmap.
Remove this bit in TCP bitmap.

Fixes: aa1cd410fa64 ("net/ice/base: add flow module")
Cc: stable@dpdk.org
Signed-off-by: Zhirun Yan <zhirun.yan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: support FDIR for GTPU QFI field
Qi Zhang [Mon, 23 Sep 2019 07:44:37 +0000 (15:44 +0800)]
net/ice/base: support FDIR for GTPU QFI field

Add GTPU qfi field support for flow director. Note that for GTPU pkt,
only qfi field (6 bits) can be set for FD. The supported GTPU pkts are
defined as:
ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_UDP,
ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP,
ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_ICMP,
ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_OTHER (FRAG and PAY belong to this)

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: replace alloc-followed-by-copy with memdup
Qi Zhang [Mon, 23 Sep 2019 07:44:36 +0000 (15:44 +0800)]
net/ice/base: replace alloc-followed-by-copy with memdup

ice_memdup() is preferred over an alloc immediately followed by a copy.

Signed-off-by: Bruce Allan <bruce.w.allan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: enable symmetric hash for RSS
Qi Zhang [Mon, 23 Sep 2019 07:44:35 +0000 (15:44 +0800)]
net/ice/base: enable symmetric hash for RSS

Add parameter "symm" to rss configuration APIs.
When symm is 1, Symmetric Teoplitz Hash can be enabled by
configuring GLQF_HSYMM properly.

NOTE:
Symmetric Teoplitz hash will work only if hash schema of
VSIQF_HASH_CTL be configured to 01b and it is assumed be enabled
in PMD.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: update FW API minor version
Qi Zhang [Mon, 23 Sep 2019 07:44:34 +0000 (15:44 +0800)]
net/ice/base: update FW API minor version

Update FW API minor version to align to current value advertised
by FW in NVM images.

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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: support destination MAC field for FDIR
Qi Zhang [Mon, 23 Sep 2019 07:44:33 +0000 (15:44 +0800)]
net/ice/base: support destination MAC field for FDIR

Add dest MAC address support so that this field can be matched when
we set Flow Director filter with dst addr for MAC.

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: enable setting up FDIR counters
Qi Zhang [Mon, 23 Sep 2019 07:44:32 +0000 (15:44 +0800)]
net/ice/base: enable setting up FDIR counters

Enable getting value from input to set up flow director counters,
so that the FDIR counters can count none, packets only, bytes only
or both packets and bytes as demanded.

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: enable FDIR queue region
Qi Zhang [Mon, 23 Sep 2019 07:44:31 +0000 (15:44 +0800)]
net/ice/base: enable FDIR queue region

Add fdir queue region support.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: enable RSS for PPPoE with SCTP
Qi Zhang [Mon, 23 Sep 2019 07:44:30 +0000 (15:44 +0800)]
net/ice/base: enable RSS for PPPoE with SCTP

Add two ptypes(MAC_PPPOE_IPV4_SCTP and MAC_PPPOE_IPV6_SCTP) in
sctp ptype bitmap to enable rss.

Signed-off-by: Zhirun Yan <zhirun.yan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: associate switch recipe to profiles
Qi Zhang [Mon, 23 Sep 2019 07:44:29 +0000 (15:44 +0800)]
net/ice/base: associate switch recipe to profiles

Properly associate switch recipes to profiles. Previous code was
using the wrong bitfield for updating the associations, which was
causing other PFs to not properly identify and use existing
recipes. This sometimes resulted in rules not being added when it
should have been possible.

Signed-off-by: Dan Nowlin <dan.nowlin@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: refactor data structure
Qi Zhang [Mon, 23 Sep 2019 07:44:28 +0000 (15:44 +0800)]
net/ice/base: refactor data structure

When declaring the ice_prot_ext, and ice_prot_id_tbl structure,
we can use a fixed length array instead of a variable length one
which helps us catch future code changes that might desynchronize
the enum ice_protocol_type and the structs.  This change also
necessitates removing the last member of the structs which was
just there to be a placeholder.

Also reorder the ice_prot_ext struct to match the ordering in the
associated enum ice_protocol_type.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: support switch rule about VLAN PPPoE
Qi Zhang [Mon, 23 Sep 2019 07:44:27 +0000 (15:44 +0800)]
net/ice/base: support switch rule about VLAN PPPoE

Add support for switch rule about single-VLAN-PPPoE. Note that double
VLAN is not supported by the hardware at this point, therefore only
single-VLAN support for PPPoE is added.

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: remove RSS code as iavf host
Qi Zhang [Mon, 23 Sep 2019 07:44:26 +0000 (15:44 +0800)]
net/ice/base: remove RSS code as iavf host

The DPDK PF doesn't support SRIOV so remove the related iavf host
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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: remove null check of port info
Qi Zhang [Mon, 23 Sep 2019 07:44:25 +0000 (15:44 +0800)]
net/ice/base: remove null check of port info

The code in ice_sched_cleanup_all checks whether the port info is NULL
prior to calling ice_sched_clear_port.

More importantly, it also checks whether the port structure has been
initialized by checking its port_state field as well.

Signed-off-by: Jacob Keller <jacob.e.keller@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: propagate errors from functions
Qi Zhang [Mon, 23 Sep 2019 07:44:24 +0000 (15:44 +0800)]
net/ice/base: propagate errors from functions

There could be an error returned from ice_fill_adv_dummy_packet()
so we need to propagate that to the caller. Additionally, the
call to ice_flow_xtract_pkt_flags() could also return an error so
we need to propagate it as well.

Also add in the correct offsets for GENEVE and VXLAN_GPE to the
dummy packets.

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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: fix mask for checking protocol header
Qi Zhang [Mon, 23 Sep 2019 07:44:23 +0000 (15:44 +0800)]
net/ice/base: fix mask for checking protocol header

Before this patch, the logic of protocol header checking only support
non-tunneled packet. This patch remove the inner protocol in L3/L4 RSS
seg hdr mask and change the protocol header validation to reflect this.
So, for ice_add_rss_cfg(), the last parameter addl_hdrs could specify
the protocol header for tunnel.

Signed-off-by: Zhirun Yan <zhirun.yan@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: add non-word aligned IPv6 field support
Qi Zhang [Mon, 23 Sep 2019 07:44:22 +0000 (15:44 +0800)]
net/ice/base: add non-word aligned IPv6 field support

Add non-word aligned field support for IPv6 with hlim, tc and proto.
All these fields are one byte within one word. In order to match
bytes within the IPv6 header for flow director we need to use a mask.

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: add non-word aligned IPv4 field support
Qi Zhang [Mon, 23 Sep 2019 07:44:21 +0000 (15:44 +0800)]
net/ice/base: add non-word aligned IPv4 field support

Add non-word aligned field support for ipv4 with ttl, tos and proto.
All these fields are one byte within one word. In order to match
bytes within the IPv4 header for flow director we need to use a mask.

Signed-off-by: Junfeng Guo <junfeng.guo@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: support tunnel packets
Qi Zhang [Mon, 23 Sep 2019 07:44:20 +0000 (15:44 +0800)]
net/ice/base: support tunnel packets

Add VXLAN tunnel training packets to flow director and change the
interface to support tunnel packets.

Signed-off-by: Henry Tieman <henry.w.tieman@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: Qiming Yang <qiming.yang@intel.com>
4 years agonet/ice/base: remove redundant empty lines
Qi Zhang [Mon, 23 Sep 2019 07:44:19 +0000 (15:44 +0800)]
net/ice/base: remove redundant empty lines

Remove redundant empty lines

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: Qiming Yang <qiming.yang@intel.com>
4 years agoexamples/ipv4_multicast: check allmulticast enable status
Ivan Ilchenko [Tue, 24 Sep 2019 12:56:13 +0000 (13:56 +0100)]
examples/ipv4_multicast: check allmulticast enable status

rte_eth_allmulticast_enable()/rte_eth_allmulticast_disable() return
value was changed from void to int, so this patch modify usage
of these functions across examples/ipv4_multicast
according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp/testpmd: check code of allmulticast mode switch
Ivan Ilchenko [Tue, 24 Sep 2019 12:56:12 +0000 (13:56 +0100)]
app/testpmd: check code of allmulticast mode switch

rte_eth_allmulticast_enable()/rte_eth_allmulticast_disable() return
value was changed from void to int, so this patch modify usage
of these functions across app/test-pmd
according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoethdev: do nothing if all-multicast mode is applied again
Andrew Rybchenko [Tue, 24 Sep 2019 12:56:11 +0000 (13:56 +0100)]
ethdev: do nothing if all-multicast mode is applied again

Since driver callbacks return status code now, there is no necessity
to enable or disable all-multicast mode once again if it is already
successfully enabled or disabled.

Configuration restore at startup tries to ensure that configured
all-multicast mode is applied and start will return error if it fails.

Also it avoids theoretical cases when already configured all-multicast
mode is applied once again and fails. In this cases it is unclear
which value should be reported on get (configured or opposite).

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoethdev: change allmulticast callbacks to return status
Ivan Ilchenko [Tue, 24 Sep 2019 12:56:10 +0000 (13:56 +0100)]
ethdev: change allmulticast callbacks to return status

Enabling/disabling of allmulticast mode is not always successful and
it should be taken into account to be able to handle it properly.

When correct return status is unclear from driver code, -EAGAIN is used.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
4 years agonet/bonding: check code of allmulticast mode switch
Ivan Ilchenko [Tue, 24 Sep 2019 12:56:09 +0000 (13:56 +0100)]
net/bonding: check code of allmulticast mode switch

rte_eth_allmulticast_enable()/rte_eth_allmulticast_disable() return
value was changed from void to int, so this patch modify usage
of these functions across net/bonding
according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agonet/failsafe: check code of allmulticast mode switch
Ivan Ilchenko [Tue, 24 Sep 2019 12:56:08 +0000 (13:56 +0100)]
net/failsafe: check code of allmulticast mode switch

rte_eth_allmulticast_enable()/rte_eth_allmulticast_disable() return
value was changed from void to int, so this patch modify usage
of these functions across net/failsafe according to new return type.

Try to keep all-multicast mode consistent across all active
devices in the case of failure.

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>
4 years agoethdev: change allmulticast mode API to return errors
Ivan Ilchenko [Tue, 24 Sep 2019 12:56:07 +0000 (13:56 +0100)]
ethdev: change allmulticast mode API to return errors

Change rte_eth_allmulticast_enable()/rte_eth_allmulticast_disable()
return value from void to int and return negative errno values
in case of error conditions.
Modify usage of these functions 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>
4 years agoethdev: change owner delete function to return int
Igor Romanov [Tue, 10 Sep 2019 09:02:16 +0000 (10:02 +0100)]
ethdev: change owner delete function to return int

Change rte_eth_dev_owner_delete() return value from void to int
and return negative errno values in case of error conditions.

Right now there is only one error case for rte_eth_dev_owner_delete() -
invalid owner, but it still makes sense to return error to catch bugs
in the code which uses the function.

Also update the usage of the function in drivers/netvsc
according to the new return type.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoexamples: check status of getting MAC address
Igor Romanov [Tue, 10 Sep 2019 08:52:20 +0000 (09:52 +0100)]
examples: check status of getting MAC address

The return value of rte_eth_macaddr_get() was changed from void to int.
Update the usage of the functions according to the new return type.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp: check status of getting MAC address
Igor Romanov [Tue, 10 Sep 2019 08:52:17 +0000 (09:52 +0100)]
app: check status of getting MAC address

The return value of rte_eth_macaddr_get() was changed from void to int.
Update the usage of the functions according to the new return type.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp/testpmd: check status of getting MAC address
Igor Romanov [Tue, 10 Sep 2019 08:52:16 +0000 (09:52 +0100)]
app/testpmd: check status of getting MAC address

Add a wrapper for rte_eth_macaddr_get() that prints an
error and returns a status code if the function fails.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoethdev: change MAC address get function to return int
Igor Romanov [Tue, 10 Sep 2019 08:52:15 +0000 (09:52 +0100)]
ethdev: change MAC address get function to return int

Change rte_eth_macaddr_get() return value from void to int
and return negative errno values in case of error conditions.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoexamples: check status of getting link info
Igor Romanov [Tue, 10 Sep 2019 08:25:50 +0000 (09:25 +0100)]
examples: check status of getting link info

The return value of rte_eth_link_get() and rte_eth_link_get_nowait()
was changed from void to int. Update the usage of the functions
according to the new return type.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp: check status of getting link info
Igor Romanov [Tue, 10 Sep 2019 08:25:47 +0000 (09:25 +0100)]
app: check status of getting link info

The return value of rte_eth_link_get() and rte_eth_link_get_nowait()
was changed from void to int. Update the usage of the functions
according to the new return type.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp/pipeline: check status of getting link info
Andrew Rybchenko [Tue, 10 Sep 2019 08:25:49 +0000 (09:25 +0100)]
app/pipeline: check status of getting link info

The return value of rte_eth_link_get_nowait() was changed from void to int.
Update the usage of the function according to the new return type.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agonet/memif: check status of getting link info
Andrew Rybchenko [Tue, 10 Sep 2019 08:25:46 +0000 (09:25 +0100)]
net/memif: check status of getting link info

The return value of rte_eth_link_get() was changed from void to int.
Update the usage of the function according to the new return type.

Just log error if something goes wrong.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agonet/ixgbe: check status of getting link info
Igor Romanov [Tue, 10 Sep 2019 08:25:45 +0000 (09:25 +0100)]
net/ixgbe: check status of getting link info

The return value of rte_eth_link_get() and rte_eth_link_get_nowait()
was changed from void to int. Update the usage of the functions
according to the new return type.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agonet/bonding: check status of getting link info
Igor Romanov [Tue, 10 Sep 2019 08:25:44 +0000 (09:25 +0100)]
net/bonding: check status of getting link info

The return value of rte_eth_link_get() and rte_eth_link_get_nowait()
was changed from void to int. Update the usage of the functions
according to the new return type.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp/testpmd: check status of getting link info
Igor Romanov [Tue, 10 Sep 2019 08:25:43 +0000 (09:25 +0100)]
app/testpmd: check status of getting link info

Add a wrapper for rte_eth_eth_link_get_nowait() that prints an
error and returns a status code if the function fails.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoethdev: change link status get functions to return int
Igor Romanov [Tue, 10 Sep 2019 08:25:42 +0000 (09:25 +0100)]
ethdev: change link status get functions to return int

Change rte_eth_link_get() and rte_eth_link_get_nowait() return value
from void to int and return negative errno values in case of error
conditions.

Return value of link_update callback is ignored since the callback
returns not errors but whether link up status has changed or not.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agonet/bonding: fix link speed update in broadcast mode
Igor Romanov [Tue, 10 Sep 2019 08:25:41 +0000 (09:25 +0100)]
net/bonding: fix link speed update in broadcast mode

Fix the issue that the link speed of the bond device was set to the
link speed of the first active slave in broadcast mode.

Set the link speed of the bond device to the minimum value across
all of the slaves in that case.

Fixes: deba8a2f8b0b ("net/bonding: fix link properties management")
Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Chas Williams <chas3@att.com>
4 years agoethdev: make stats and xstats reset callbacks return int
Igor Romanov [Fri, 6 Sep 2019 14:34:54 +0000 (15:34 +0100)]
ethdev: make stats and xstats reset callbacks return int

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

Both callbacks are updated together because a large number of
drivers assign the same function to both callbacks.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agoethdev: change xstats reset function to return int
Igor Romanov [Fri, 6 Sep 2019 14:34:53 +0000 (15:34 +0100)]
ethdev: change xstats reset function to return int

Change rte_eth_xstats_reset() return value from void to int and
return negative errno values in case of error conditions.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agoexamples: take promiscuous mode switch result into account
Ivan Ilchenko [Sat, 14 Sep 2019 11:37:33 +0000 (12:37 +0100)]
examples: take promiscuous mode switch result into account

rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable() return
value was changed from void to int, so this patch modify usage
of these functions across examples according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp: check code of promiscuous mode switch
Ivan Ilchenko [Sat, 14 Sep 2019 11:37:26 +0000 (12:37 +0100)]
app: check code of promiscuous mode switch

rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable() return
value was changed from void to int, so this patch modify usage
of these functions across apps according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoapp/testpmd: check code of promiscuous mode switch
Ivan Ilchenko [Sat, 14 Sep 2019 11:37:27 +0000 (12:37 +0100)]
app/testpmd: check code of promiscuous mode switch

rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable() return
value was changed from void to int, so this patch modify usage
of these functions across app/testpmd
according to 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>
4 years agokni: check code of promiscuous mode switch
Ivan Ilchenko [Sat, 14 Sep 2019 11:37:31 +0000 (12:37 +0100)]
kni: check code of promiscuous mode switch

rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable() return
value was changed from void to int, so modify usage of these
functions across lib/librte_kni according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoethdev: do nothing if promiscuous mode is applied again
Andrew Rybchenko [Sat, 14 Sep 2019 11:37:25 +0000 (12:37 +0100)]
ethdev: do nothing if promiscuous mode is applied again

Since driver callbacks return status code now, there is no necessity
to enable or disable promiscuous mode once again if it is already
successfully enabled or disabled.

Configuration restore at startup tries to ensure that configured
promiscuous mode is applied and start will return error if it fails.

Also it avoids theoretical cases when already configured promiscuous
mode is applied once again and fails. In this cases it is unclear
which value should be reported on get (configured or opposite).

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agoethdev: change promiscuous callbacks to return status
Andrew Rybchenko [Sat, 14 Sep 2019 11:37:24 +0000 (12:37 +0100)]
ethdev: change promiscuous callbacks to return status

Enabling/disabling of promiscuous mode is not always successful and
it should be taken into account to be able to handle it properly.

When correct return status is unclear from driver code, -EAGAIN is used.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Matan Azrad <matan@mellanox.com>
Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
4 years agonet/bonding: check code of promiscuous mode switch
Ivan Ilchenko [Sat, 14 Sep 2019 11:37:23 +0000 (12:37 +0100)]
net/bonding: check code of promiscuous mode switch

rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable() return
value was changed from void to int, so this patch modify usage
of these functions across net/bonding according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
4 years agonet/failsafe: check code of promiscuous mode switch
Ivan Ilchenko [Sat, 14 Sep 2019 11:37:22 +0000 (12:37 +0100)]
net/failsafe: check code of promiscuous mode switch

rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable() return
value was changed from void to int, so this patch modify usage
of these functions across net/failsafe according to new return type.

Try to keep promiscuous mode consistent across all active
devices in the case of failure.

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>
4 years agoethdev: change promiscuous mode controllers to return errors
Ivan Ilchenko [Sat, 14 Sep 2019 11:37:21 +0000 (12:37 +0100)]
ethdev: change promiscuous mode controllers to return errors

Change rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable()
return value from void to int and return negative errno values
in case of error conditions.
Modify usage of these functions 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>
4 years agodoc: cleanup license in bnx2x guide
Rasesh Mody [Thu, 19 Sep 2019 21:11:57 +0000 (14:11 -0700)]
doc: cleanup license in bnx2x guide

Removed redundant BSD boilerplate text from bnx2x guide.

Signed-off-by: Rasesh Mody <rmody@marvell.com>
4 years agonet/octeontx2: add packet type translation for ICMP6
Nithin Dabilpuram [Wed, 4 Sep 2019 08:04:32 +0000 (13:34 +0530)]
net/octeontx2: add packet type translation for ICMP6

Update ptype translation logic with ICMP6
in both outer and inner layers.

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agonet/octeontx2: fix packet type translation
Nithin Dabilpuram [Wed, 4 Sep 2019 08:04:31 +0000 (13:34 +0530)]
net/octeontx2: fix packet type translation

Extract and use layer type LB..LE for non-tunnel ptype and
LF..LH as tunnel ptype translation.

Fixes: 6e892eabce11 ("net/octeontx2: support packet type")
Cc: stable@dpdk.org
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agonet/octeontx2: fix port Tx VLAN insertion
Nithin Dabilpuram [Fri, 16 Aug 2019 04:19:55 +0000 (09:49 +0530)]
net/octeontx2: fix port Tx VLAN insertion

This patch fixes configuration for port Tx vlan insertion feature.
As per latest Tx KEX profile, pf_func should be at
KW[0](47:32) and not KW[1](63:48).

Fixes: 168c59cfe42b ("net/octeontx2: add flow MCAM utility functions")
Cc: stable@dpdk.org
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agonet/octeontx2: fix packet type get overflow
Pavan Nikhilesh [Wed, 14 Aug 2019 09:41:13 +0000 (15:11 +0530)]
net/octeontx2: fix packet type get overflow

The function `rte_eth_dev_get_supported_ptypes` expects the underlying
ethernet device to return array of supported ptypes. The ethernet device
needs to set `RTE_PTYPE_UNKNOWN` as the last element which signifies
thats its the end of the ptype array.
Else the function `rte_eth_dev_get_supported_ptypes` might overflow.

Fixes: 6e892eabce11 ("net/octeontx2: support packet type")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agodoc: update octeontx2 supported SoCs
Jerin Jacob [Thu, 5 Sep 2019 13:42:40 +0000 (19:12 +0530)]
doc: update octeontx2 supported SoCs

CNF95XX SoC part is not available for general availability.
Update the documentation to reflect the status.

Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
4 years agovhost: fix slave request fd leak
Tiwei Bie [Thu, 5 Sep 2019 11:01:25 +0000 (19:01 +0800)]
vhost: fix slave request fd leak

We need to close the old slave request fd if any first
before taking the new one.

Fixes: 275c3f944730 ("vhost: support slave requests channel")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
4 years agovhost: add device op when notification to guest is sent
Eelco Chaudron [Wed, 28 Aug 2019 14:49:39 +0000 (10:49 -0400)]
vhost: add device op when notification to guest is sent

This patch adds an operation callback which gets called every time
the library is waking up the guest trough an eventfd_write() call.

This can be used by 3rd party application, like OVS, to track the
number of times interrupts where generated. This might be of
interest to find out system-call were called in the fast path.

Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
4 years agonet/virtio: add Altivec Rx
David Christensen [Wed, 14 Aug 2019 17:49:53 +0000 (12:49 -0500)]
net/virtio: add Altivec Rx

Added the file virtio_rxtx_simple_altivec.c which implements Altivec
code for the virtio vectorized RX functions. Updated the various build
files.

Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
4 years agonet/ice: support device-specific DDP package loading
Ting Xu [Tue, 17 Sep 2019 13:02:28 +0000 (13:02 +0000)]
net/ice: support device-specific DDP package loading

This patch adds the feature that supports loading DDP package
according to the device serial number. Prior to loading the
default DDP package (ice.pkg), the driver will check for the
presence of a device-specific DDP package with the name containing
64-bit PCIe Device Serial Number (ice-xxxxxxxxxxxxxxxx.pkg)
during initialization. Users can use "lspci -vs" to get the device
serial number.
The pkg search path are /lib/firmware/updates/intel/ice/ddp/
and /lib/firmware/intel/ice/ddp/. If the package exists,
the driver will download it to the device instead of the default
one. The loaded package type (OS default and COMMS) will be
stored in ice_adapter->active_pkg_type. The package version is
stored in ice_hw->active_pkg_ver.

Signed-off-by: Ting Xu <ting.xu@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice/base: ignore inverse switch recipes
Qi Zhang [Thu, 29 Aug 2019 02:36:56 +0000 (10:36 +0800)]
net/ice/base: ignore inverse switch recipes

When looking for an existing recipes, never choose an inverse
recipe as these are used for anti-spoofing. Choosing inverse
recipes for source MAC address rules was causing errors while
adding the rule.

Signed-off-by: Dan Nowlin <dan.nowlin@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>
4 years agonet/ice/base: update profile to recipe bitmap array
Qi Zhang [Thu, 29 Aug 2019 02:36:55 +0000 (10:36 +0800)]
net/ice/base: update profile to recipe bitmap array

Correctly update profile to recipe bitmap array after adding and
associating recipes. This fixes an issue where determining unused
recipe result index slots was incorrect.

Signed-off-by: Dan Nowlin <dan.nowlin@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>
4 years agonet/ice/base: add GENEVE offset
Qi Zhang [Thu, 29 Aug 2019 02:36:54 +0000 (10:36 +0800)]
net/ice/base: add GENEVE offset

Add Geneve offset for tunneled packets to allow dummy packets to be
properly created.

Signed-off-by: Doug Dziggel <douglas.a.dziggel@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>
4 years agonet/ice/base: enable RSS with ether layer for PPPoE
Qi Zhang [Thu, 29 Aug 2019 02:36:53 +0000 (10:36 +0800)]
net/ice/base: enable RSS with ether layer for PPPoE

Add these two ptype(MAC_PPPOD_PAY and MAC_PPPOE_PAY) in outer mac
bitmap, so it can hash for outer mac.

Signed-off-by: Zhirun Yan <zhirun.yan@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>
4 years agonet/ice/base: remove Rx flex descriptor programming
Qi Zhang [Thu, 29 Aug 2019 02:36:52 +0000 (10:36 +0800)]
net/ice/base: remove Rx flex descriptor programming

Removing Rx flex descriptor metadata and flag programming from the code,
these registers cannot be written to as they are read only.
The programming for all fields per RxDID is now handled differently.

Signed-off-by: Vignesh Sridhar <vignesh.sridhar@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>
4 years agonet/ice/base: add AQC get link topology handle support
Qi Zhang [Thu, 29 Aug 2019 02:36:51 +0000 (10:36 +0800)]
net/ice/base: add AQC get link topology handle support

Add AQC get link topology handle support. This is needed to determine
Direct Attach (DA) or backplane media type for PHY types that support
either. Get link topology handle cage node type request can be used to
determine if a cage is present or not. If a cage is present for PHY
types that supports both DA and backplane media type, then the media
type is DA, else the media type is backplane.

Signed-off-by: Paul Greenwalt <paul.greenwalt@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>
4 years agonet/ice/base: delay less
Qi Zhang [Thu, 29 Aug 2019 02:36:50 +0000 (10:36 +0800)]
net/ice/base: delay less

Shorten the delay for SQ responses, but increase the number of loops.
Max delay time is unchanged, but some operations complete much more
quickly.

In the process, add a new define to make the delay count and delay time
more explicit, and simplify the code so it's the same for both switch
and NIC mode. Add comments to make things more explicit.

Signed-off-by: Mitch Williams <mitch.a.williams@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>
4 years agonet/ice/base: replace open-code duplication
Qi Zhang [Thu, 29 Aug 2019 02:36:49 +0000 (10:36 +0800)]
net/ice/base: replace open-code duplication

Use BIT_ULL() instead of ICE_FLOW_HASH_FLD() which does the same bit shift
operation.

Signed-off-by: Bruce Allan <bruce.w.allan@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>
4 years agonet/ice/base: update to register definition file
Qi Zhang [Thu, 29 Aug 2019 02:36:48 +0000 (10:36 +0800)]
net/ice/base: update to register definition file

Added register definitions for GL_MDCK_TX_TDPU and GL_MDET_TX_TDPU.

Signed-off-by: Bruce Allan <bruce.w.allan@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>
4 years agonet/ice/base: correct abbreviations
Qi Zhang [Thu, 29 Aug 2019 02:36:47 +0000 (10:36 +0800)]
net/ice/base: correct abbreviations

Correct abbreviation issues found by running abbrevcheck.

Signed-off-by: Tony Nguyen <anthony.l.nguyen@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>
4 years agonet/ice/base: remove unnecessary if branch
Qi Zhang [Thu, 29 Aug 2019 02:36:46 +0000 (10:36 +0800)]
net/ice/base: remove unnecessary if branch

We are already in the branch "if (fm_list->vsi_count == 1)"
no need to exit and re-enter.

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>
4 years agonet/ice/base: remove unnecessary dummy packet finding
Qi Zhang [Thu, 29 Aug 2019 02:36:45 +0000 (10:36 +0800)]
net/ice/base: remove unnecessary dummy packet finding

We don't need to find a dummy packet when removing a rule so remove
the call to get the dummy packet. This also obviates some variables
so remove them also.

Also reduce the scope of rule_buf_sz.

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>
4 years agonet/ice/base: update switch training packets with open ports
Qi Zhang [Thu, 29 Aug 2019 02:36:44 +0000 (10:36 +0800)]
net/ice/base: update switch training packets with open ports

This patch updates UDP tunneled training packets with an appropriate
UDP dest port. For the correct profile to be chosen, an open tunnel
port must be included in the training packet.

Added GENEVE tunnel labels in the test package in order to test GENEVE
tunnel rule creation.

Signed-off-by: Dan Nowlin <dan.nowlin@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>
4 years agonet/ice/base: maximize switch recipe words per line
Qi Zhang [Thu, 29 Aug 2019 02:36:43 +0000 (10:36 +0800)]
net/ice/base: maximize switch recipe words per line

Remove grouping rules to maximize the number of words placed into
a recipe line. This will allow more recipes to be added by reducing
the number of result indices required.

Signed-off-by: Dan Nowlin <dan.nowlin@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>
4 years agonet/ice/base: refactor removal of VLAN promiscuous rules
Qi Zhang [Thu, 29 Aug 2019 02:36:42 +0000 (10:36 +0800)]
net/ice/base: refactor removal of VLAN promiscuous rules

Currently ice_clear_vsi_promisc() detects if the VLAN ID sent is not 0
and sets the recipe_id to ICE_SW_LKUP_PROMISC_VLAN in that case and
ICE_SW_LKUP_PROMISC if the VLAN_ID is 0. However this doesn't allow VLAN
0 promiscuous rules to be removed, but they can be added. Fix this by
checking if the promisc_mask contains ICE_PROMISC_VLAN_RX or
ICE_PROMISC_VLAN_TX. This change was made to match what is being done
for ice_set_vsi_promisc().

Signed-off-by: Brett Creeley <brett.creeley@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>
4 years agonet/ice/base: fix flag settings in AQ call
Qi Zhang [Thu, 29 Aug 2019 02:36:41 +0000 (10:36 +0800)]
net/ice/base: fix flag settings in AQ call

Removed setting Read flag in the Get Allocated Resource Descriptors AQ
command (0x020A). The read flag is not required for this command and
causes the FW to return an error.

Fixes: d781ccbdd15d ("net/ice/base: add functions to get allocated resources")
Cc: stable@dpdk.org
Signed-off-by: Dan Nowlin <dan.nowlin@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>