Lee Daly [Tue, 23 Jan 2018 16:45:29 +0000 (16:45 +0000)]
examples/l3fwd: convert Altivec files to SPDX license tag
This updates the Intel and IBM license on files in examples to be
the standard BSD-3-Clause license used for the rest of DPDK,
bringing the files in compliance with the DPDK licensing policy.
Lee Daly [Thu, 8 Feb 2018 14:03:54 +0000 (14:03 +0000)]
examples/performance-thread: convert license to SPDX tag
This updates the Intel and Cavium license on files in examples to be
the standard BSD-3-Clause license used for the rest of DPDK, bringing
the files in compliance with the DPDK licensing policy.
Signed-off-by: Lee Daly <lee.daly@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
If build fails because of failed experimental check and stdout is
redirected to /dev/null, it is absolutely unclear why build fails.
Fixes: a4bcd61de82d ("buildtools: add script to check experimental API exports") Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Neil Horman <nhorman@tuxdriver.com>
This reverts commit 15692396fd68932b6a81f00f12d4b0da12baa7d3
(eal/ppc64: implement arch-specific TSC freq query).
We intended to derive pkt/sec estimation with cpu clock frequency.
As timebase register serves the timer purpose, we need to stick with it
for calculating pkt/sec, hence reverting the change.
Ferruh Yigit [Thu, 8 Feb 2018 12:08:03 +0000 (12:08 +0000)]
app/testpmd: enable CRC strip without capability check
Some hardware doesn't support disabling CRC strip. In techboard it has
been decided to enable CRC strip always.
The testpmd update in commit 8b9bd0efe0b6, enables CRC strip only if
PMD reports CRC strip capability. Not all PMDs updated to report CRC
strip.
For the PMDs not reporting CRC strip testpmd behavior changed and
disabling CRC strip for them. And this may generate error for PMDs that
doesn't support disabling CRC strip.
Removing capability check for this release. In long term there can be
option to remove CRC strip flag completely or adding a new flag to let
PMD say disabling is not supported.
Fixes: 8b9bd0efe0b6 ("app/testpmd: disable Rx VLAN offloads by default") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Olivier Matz [Thu, 8 Feb 2018 08:24:17 +0000 (09:24 +0100)]
net/bnxt: fix packet type
The hw flags are not read correctly: the defines
RX_PKT_CMPL_FLAGS_ITYPE_* are not bits but values, so the should not be
tested with if (value & X) but with if ((value & MASK) == X).
This was resulting in a wrong packet type.
For instance, an IPv4/ICMP packet was returning a value of 7 for
the layer 4, which is undefined.
This patch rework the way packet types are processed, to ensure
that only valid packet types will be advertised.
Olivier Matz [Tue, 6 Feb 2018 13:39:31 +0000 (14:39 +0100)]
net/bnxt: fix Rx checksum flags
Fix the Rx offload flags when the IP or L4 checksum is seen as incorrect
by the hardware. In this case, the proper value is PKT_RX_IP_CKSUM_BAD.
PKT_RX_IP_CKSUM_NONE means that the checksum may be incorrect in the
packet headers, but the integrity of the IP header is verified. This is
mostly useful for virtual drivers.
Fixes: 7ec39d8c524b ("net/bnxt: update status of Rx IP/L4 CKSUM") Cc: stable@dpdk.org Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Moti Haimovsky [Mon, 5 Feb 2018 16:17:20 +0000 (18:17 +0200)]
net/tap: fix cleanup on allocation failure
This patch complements the partial cleanup done inside
eth_dev_tap_create when the routine failed.
Such a failure left a non-functional device attached to the system.
Fixes: 050fe6e9ff97 ("drivers/net: use ethdev allocation helper for vdev") Cc: stable@dpdk.org Signed-off-by: Moti Haimovsky <motih@mellanox.com> Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
Xiaoyun Li [Thu, 8 Feb 2018 05:45:15 +0000 (13:45 +0800)]
net/ixgbe: fix CRC stripping capability
testpmd needs to get CRC strip offload from rx_offload_capa with a
recent change. This patch adds CRC strip flag to rx_offload_capa
for ixgbe and ixgbevf, as they have the capability.
Fixes: 8b9bd0efe0b6 ("app/testpmd: disable Rx VLAN offloads by default") Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Neil Horman [Thu, 1 Feb 2018 12:19:11 +0000 (07:19 -0500)]
compat: relicense some files
Received a note the other day from the Linux Foundation governance board
for DPDK indicating that several files I have copyright on need to be
relicensed to be compliant with the DPDK licensing guidelines. I have
some concerns with some parts of the request, but am not opposed to
other parts. So, for those pieces that we are in consensus on, I'm
proposing that we change their license from BSD 2 clause to 3 clause.
I'm also updating the files to use the SPDX licensing scheme
Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Vipin Varghese [Mon, 5 Feb 2018 17:32:07 +0000 (23:02 +0530)]
doc: update minimum requirement of l2fwd-crypto
Added note section to update information for use cases working with
multiple crypto devices.
Signed-off-by: Vipin Varghese <vipin.varghese@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Nikhil Rao [Sun, 4 Feb 2018 18:18:31 +0000 (23:48 +0530)]
eventdev: check error in default Rx conf callback
The default adapter configuration callback is invoked when a Rx
queue is added to the adapter and the adapter detects that a SW
service is needed. The adapter needs to re-configure the device
with an additional port and to do do, it needs to stop the
device and restart it after it is done reconfiguring it. This
patch adds code to check the return code of
rte_event_dev_start() for both when the reconfiguration fails
and when it succeeds and introduces a new error code (-EIO)
for the first case.
Beilei Xing [Tue, 6 Feb 2018 05:33:31 +0000 (13:33 +0800)]
net/i40e: fix Rx interrupt
This patch fixes interval error and corrects macros when
enabling Rx interrupt mode. The patch also fixes a logical
error during supporting multiple drivers.
Should be not possible to load conflicting DDP profiles. Only DDP
profiles of the same group (not 0) can be loaded together. If DDP
profile group is 0, it is exclusive, i.e. it cannot be loaded with
any other DDP profile. If DDP profile groups are different, these
profiles cannot be loaded together.
Fixes: b319712f53c8 ("net/i40e: extended list of operations for DDP processing") Cc: stable@dpdk.org Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com> Acked-by: Andrey Chilikin <andrey.chilikin@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Bao-Long Tran [Wed, 31 Jan 2018 08:48:16 +0000 (15:48 +0700)]
examples/ip_pipeline: fix timer period unit
The timer_period option specified by users via config file
should have unit of 1 millisecond. However timer_period is
internally converted to unit of 10 millisecond.
When querying either the name or the value of a stat using the xstats
APIs, a check is done to see if the regular stats API or the xstats APIs
for the driver need to be used. However, the id of the stat requested is
checked to see if it is greater than the number of basic stats, rather
than checking for greater-or-equal, meaning that the xstat with the lowest
id gets incorrectly treated as a basic stat.
This problem manifests itself when you call proc_info using "--xstats-id"
for the first xstat, you get no name of the stat printed, and a random(ish)
stat value.
Fixes: 4773152f850b ("ethdev: optimize xstats by ids APIs") Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Jerin Jacob [Tue, 6 Feb 2018 17:14:55 +0000 (22:44 +0530)]
bus/fslmc: fix build with latest glibc
Fix the following build error with latest glibc-headers(
Part of aarch64-linux-gnu-gcc-7.3.0 toolchain)
In file included from drivers/bus/fslmc/mc/fsl_mc_sys.h:30:0,
from drivers/bus/fslmc/mc/dpmng.c:7:
/usr/aarch64-linux-gnu/usr/include/libio.h:21:2: error:
#warning "<libio.h> is deprecated; use <stdio.h> instead." [-Werror=cpp]
Fixes: 3af733ba8da8 ("bus/fslmc: introduce MC object functions") Cc: stable@dpdk.org Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Matan Azrad [Mon, 5 Feb 2018 14:09:22 +0000 (14:09 +0000)]
app/testpmd: fix port topology in RSS forward config
The testpmd user can configure port topology mode to define the port
topology between the testpmd forward ports(paired, chained and loop).
When multi-queue ports are configured by the user, the testpmd
streams are created by rss_fwd_config_setup() function, this function
doesn't take into account the chained topology mode and configures the
forward streams with paired topology mode in this case.
Configure the stream Tx port by dedicated function which calculates
a valid Tx port index as a function of the topology mode and the Rx
port index.
Matan Azrad [Mon, 5 Feb 2018 14:09:21 +0000 (14:09 +0000)]
app/testpmd: fix port index in RSS forward config
When multi-queue ports are configured by the user, the testpmd streams
are created by rss_fwd_config_setup() function.
This function may configure to the streams either invalid Rx ports or
invalid Tx ports.
An invalid Tx port is configured when the number of ports is odd.
In this case, the last Tx port will be always invalid.
An invalid Rx port is configured when NUMA support is configured by the
user and the number of forward ports is much smaller than the number of
all ports. In this case, also the Tx port is invalid.
Shreyansh Jain [Tue, 6 Feb 2018 06:43:38 +0000 (12:13 +0530)]
raw/skeleton: fix device start test
Device can only be started if firmware is loaded, as per Skeleton
rawdev driver semantics. This patch fixes original implementation
which attempted to start the device without loading firmware.
Herbert Guan [Wed, 31 Jan 2018 07:39:19 +0000 (15:39 +0800)]
build: add more implementers IDs and PNs for ARM
1) Add native PN option '-march=native' to allow automatic detection.
Set 'arm_force_native_march' to 'true' in config/arm/meson.build
to use native PN option.
2) Add implementer_pn option for part num selection in cross compile
3) Add known Arm cortex PN support
4) Add known implementers' IDs (use generic flags/archs by default)
5) Sync build options with config/common_armv8a_linuxapp
Signed-off-by: Herbert Guan <herbert.guan@arm.com> Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Since rdma-core glue libraries are intrinsically tied to their respective
PMDs and used as internal plug-ins, their presence in the default search
path among other system libraries for the dynamic linker is not necessarily
desired.
This commit enables their installation and subsequent look-up at run time
in RTE_EAL_PMD_PATH if configured to a nonempty string. This path can also
be overridden by environment variables MLX[45]_GLUE_PATH.
When built as separate objects, these libraries do not have unique names.
Since they do not maintain a stable ABI, loading an incompatible library
may result in a crash (e.g. in case multiple versions are installed).
This patch addresses the above by versioning glue libraries, both on the
file system (version suffix) and by comparing a dedicated version field
member in glue structures.
David Harton [Sat, 3 Feb 2018 14:55:23 +0000 (09:55 -0500)]
net/virtio: fix crash while freeing mbufs
virtio_dev_free_mbufs was recently modified to free the
virtqueues but failed to check whether the array was
allocated. Added a check to ensure vqs was non-null.
Fixes: bdb32afbb610 ("net/virtio: rationalize queue flushing") Signed-off-by: David Harton <dharton@cisco.com> Reviewed-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Ophir Munk [Mon, 5 Feb 2018 14:40:42 +0000 (14:40 +0000)]
net/tap: fix eBPF handling of non-RSS flows
The eBPF classifier (section "cls_q" in tap_bpf_program.c) is tracing
marked packets in which skb->cb[1] contains an RSS queue number, and
redirects those packets to the matched queue.
It is expected that skb->cb[1] has been previously set with a valid RSS
queue number during an eBPF action (section "l3_l4" in tap_bpf_program.c).
However, for non-RSS flows, skb->cb[1] may contain a random unset value,
which could falsely be interpreted as a valid RSS queue.
To avoid this potential error, tap_bpf_program.c has been updated as
follows:
1. After calculating the RSS queue number, it is added a unique offset in
order to uniquely identify it as a valid RSS queue number.
2. After matching an RSS queue to a packet, skb->cb[1] is set to 0.
Ophir Munk [Mon, 5 Feb 2018 10:59:08 +0000 (10:59 +0000)]
net/tap: fix multi segments capability
TAP device is supporting multi segments Tx, however this capability is
not reported when querying the TAP device.
This commit adds this capability report.
Fixes: 818fe14a9891 ("net/tap: use new Tx offloads API") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
Maxime Coquelin [Mon, 5 Feb 2018 15:04:56 +0000 (16:04 +0100)]
vhost: fix IOTLB pool out-of-memory handling
In the unlikely case the IOTLB memory pool runs out of memory,
an issue may happen if all entries are used by the IOTLB cache,
and an IOTLB miss happen. If the iotlb pending list is empty,
then no memory is freed and allocation fails a second time.
This patch fixes this by doing an IOTLB cache random evict if
the IOTLB pending list is empty, ensuring the second allocation
try will succeed.
In the same spirit, the opposite is done when inserting an
IOTLB entry in the IOTLB cache fails due to out of memory. In
this case, the IOTLB pending is flushed if the IOTLB cache is
empty to ensure the new entry can be inserted.
Fixes: d012d1f293f4 ("vhost: add IOTLB helper functions") Fixes: f72c2ad63aeb ("vhost: add pending IOTLB miss request list and helpers") Cc: stable@dpdk.org Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Failsafe reported Tx offloads capabilities are the AND result of its
default capabilities and those of its sub-devices.
In the corrupted code failsafe default Tx capabilities were set to 0.
As a result when running testpmd with "--tx-offloads=0x8000" parameter
(request for multi segments offload) - an error was returned:
PMD: net_failsafe:
Some Tx offloads are not supported, requested 0x8000 supported 0x0
To fix this, failsafe default Tx offload capabilities are set to
DEV_TX_OFFLOAD_MULTI_SEGS |
DEV_TX_OFFLOAD_IPV4_CKSUM |
DEV_TX_OFFLOAD_UDP_CKSUM |
DEV_TX_OFFLOAD_TCP_CKSUM,
Matan Azrad [Mon, 5 Feb 2018 12:48:22 +0000 (12:48 +0000)]
net/vdev_netvsc: fix device detection error check
The vdev_netvsc driver does periodic detection of PCI devices matched
to the netvsc existed interfaces.
When it finds a match, the PCI address is written to the pipe of the
associated fail-safe PMD instance and a positive value is returned to
the periodic check which is wrongly considered as error.
Change the check to consider only a negative value as error.
Rasesh Mody [Sat, 3 Feb 2018 06:03:18 +0000 (22:03 -0800)]
net/qede: fix few log messages
Fixes: 9e334305178f ("net/qede: fix MTU set and max Rx length") Fixes: 22d07d939c3c ("net/qede/base: update") Cc: stable@dpdk.org Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
Harish Patil [Sat, 3 Feb 2018 06:03:17 +0000 (22:03 -0800)]
net/qede: fix VF port creation sequence
Few adjustments are required to effectively handle VF vport create/delete
sequence. The problem is exposed by recent ethdev TX offload changes
which requires port to be in down state before applying TX offloads.
- Move vport creation from dev_init() to dev_configure()
- Force to stop vport if it was already started due to previous run
(restart case)
- Move link state enable/disable to dev_init() and dev_close()
respectively.
- For MTU change, recreate vport with new MTU value and restore old
config. This is necessary since VF MTU value can be changed only upon
vport creation.
Stefan Hajnoczi [Wed, 31 Jan 2018 17:48:28 +0000 (17:48 +0000)]
examples/vhost_scsi: drop unimplemented event index feature
The vhost_scsi example application negotiates the
VIRTIO_RING_F_EVENT_IDX feature bit but does not honor it when accessing
vrings.
In particular, commit e37ff954405addb8ea422426a2d162d00dcad196 ("vhost:
support virtqueue interrupt/notification suppression") broke vring call
because vq->last_used_idx is never updated by vhost_scsi. The
vq->last_used_idx field is not even available via the librte_vhost
public API, so VIRTIO_RING_F_EVENT_IDX is currently only usable by the
built-in virtio_net.c driver in librte_vhost.
This patch drops VIRTIO_RING_F_EVENT_IDX from vhost_scsi so that vring
call works again.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Stefan Hajnoczi [Wed, 31 Jan 2018 17:46:51 +0000 (17:46 +0000)]
vhost: drop virtqueues only with built-in virtio driver
Commit e29109323595beb3884da58126ebb3b878cb66f5 ("vhost: destroy unused
virtqueues when multiqueue not negotiated") broke vhost-scsi by removing
virtqueues when the virtio-net-specific VIRTIO_NET_F_MQ feature bit is
missing.
The vhost_user.c code shouldn't assume all devices are vhost net device
backends. Use the new VIRTIO_DEV_BUILTIN_VIRTIO_NET flag to check
whether virtio_net.c is being used.
This fixes examples/vhost_scsi.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Stefan Hajnoczi [Wed, 31 Jan 2018 17:46:50 +0000 (17:46 +0000)]
vhost: add flag for built-in virtio driver
The librte_vhost API is used in two ways:
1. As a vhost net device backend via rte_vhost_enqueue/dequeue_burst().
2. As a library for implementing vhost device backends.
There is no distinction between the two at the API level or in the
librte_vhost implementation. For example, device state is kept in
"struct virtio_net" regardless of whether this is actually a net device
backend or whether the built-in virtio_net.c driver is in use.
The virtio_net.c driver should be a librte_vhost API client just like
the vhost-scsi code and have no special access to vhost.h internals.
Unfortunately, fixing this requires significant librte_vhost API
changes.
This patch takes a different approach: keep the librte_vhost API
unchanged but track whether the built-in virtio_net.c driver is in use.
See the next patch for a bug fix that requires knowledge of whether
virtio_net.c is in use.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Shahaf Shuler [Thu, 1 Feb 2018 18:53:53 +0000 (20:53 +0200)]
net/mlx5: fix CRC strip capability query
IBV_WQ_FLAGS_SCATTER_FCS is a WQ flag to be used to configure the CRC
strip on a queue upon creation.
Using IBV_RAW_PACKET_CAP_SCATTER_FCS instead to query to capability.
Even though this is RAW_QP capability, it is being used by rdma-core to
indicate for both RAW_QP and WQ.
Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core") Cc: stable@dpdk.org Reported-by: Alex Rosenbaum <alexr@mellanox.com> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
Nélio Laranjeiro [Tue, 30 Jan 2018 13:36:52 +0000 (14:36 +0100)]
net/mlx5: fix port stop by verify flows are still present
priv_flow_stop() may be called several times, in such situation flows are
already removed from the NIC and thus all associated objects are no present
in the flow object (ibv_flow, indirection tables, ....).
Adrien Mazarguil [Wed, 31 Jan 2018 15:33:06 +0000 (16:33 +0100)]
net/mlx4: fix drop flow resources leak
Resources allocated for drop flow rules are not freed properly. This causes
a memory leak and triggers an assertion failure on a reference counter when
compiled in debug mode.
This issue can be reproduced with testpmd by entering the following
commands:
flow create 0 ingress pattern eth / end actions drop / end
port start all
port stop all
port start all
port stop all
quit
The reason is additional references are taken when re-enabling existing
flow rules, a common occurrence when rehashing configuration.
Fixes: d3a7e09234e4 ("net/mlx4: allocate drop flow resources on demand") Cc: stable@dpdk.org Reported-by: Moti Haimovsky <motih@mellanox.com> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>