13562 Commits

Author SHA1 Message Date
Jay Ding
327cf9fd10 net/bnxt: return error in stats if init is not complete
return error if init is not complete before accessing stats.

Fixes: ed2ced6fe927 ("net/bnxt: check initialization before accessing stats")
Cc: stable@dpdk.org

Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-05-14 22:31:49 +01:00
Ajit Khaparde
3d911af860 net/bnxt: fix MTU calculation
We were not considering the case of nested VLANs while
calculating MTU. This patch takes care of the same.

Fixes: daef48efe5e5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org

Signed-off-by: Qingmin Liu <qingmin.liu@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Jay Ding <jay.ding@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-05-14 22:31:49 +01:00
Qingmin Liu
a1a716c1c6 net/bnxt: set MTU in dev config for jumbo packets
MTU setting does not take effect after rte_eth_dev_configure
is called with jumbo enable unless it is configured using the
set_mtu dev_op.

Fixes: daef48efe5e5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org

Signed-off-by: Qingmin Liu <qingmin.liu@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Jay Ding <jay.ding@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-05-14 22:31:48 +01:00
Rahul Gupta
f7b36e8f36 net/bnxt: validate structs and pointers before use
Validate pointers aren't pointing to uninitialized areas
including txq and rxq before using them to avoid
bnxt driver from crashing.

Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Tested-by: Randy Schacher <stuart.schacher@broadcom.com>
2018-05-14 22:31:48 +01:00
Jay Ding
a42b152aba net/bnxt: update returned error on invalid max ring
Return EINVAL instead of ENOSPC when invalid queue_idx passed in
during rx and tx queue_setup_op routines.

Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-05-14 22:31:48 +01:00
Scott Branden
6070ed8eab net/bnxt: rename driver version from Cumulus to NetXtreme
Rename driver version from "Broadcom Cumulus driver" to
"Broadcom NetXtreme driver" to reflect this driver is applicable to
NetXtreme family beyond Cumulus.

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-05-14 22:31:48 +01:00
Scott Branden
0e7e22b36d net/bnxt: rename function checking MAC address
rename check_zero_bytes to bnxt_check_zero_bytes to match proper prefix.

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-05-14 22:31:48 +01:00
Qingmin Liu
c2faa1d196 net/bnxt: add support for LSC interrupt event
Add support to bnxt driver to register RTE_ETH_EVENT_INTR_LSC
event and monitor physical link status.

Signed-off-by: Qingmin Liu <qingmin.liu@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
2018-05-14 22:31:48 +01:00
Adrien Mazarguil
bf959ec58b net/mlx4: fix UDP flow rule limitation enforcement
For some unknown reason, priorities do not have any effect on flow rules
that happen to match UDP destination ports. Those are always matched first
regardless.

This patch is a workaround that enforces this limitation at the PMD level;
such flow rules can only be created at the highest priority level for
correctness.

Fixes: a5171594fc3b ("net/mlx4: expose support for flow rule priorities")
Cc: stable@dpdk.org

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2018-05-14 22:31:48 +01:00
Nélio Laranjeiro
b7a7c97a40 net/mlx5: fix flow validation
Item spec and last are wrongly compared to the NIC capability causing a
validation failure when the mask is null.
This validation function should only verify the user is not configuring
unsupported matching fields.

Fixes: 2097d0d1e2cc ("net/mlx5: support basic flow items and actions")
Cc: stable@dpdk.org

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2018-05-14 22:31:48 +01:00
Shahaf Shuler
012ad9944d net/mlx5: fix probe return value polarity
mlx5 prefixed function returns a negative errno value.
the error handler on mlx5_pci_probe is doing the same.

Fixes: a6d83b6a9209 ("net/mlx5: standardize on negative errno values")

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2018-05-14 22:31:48 +01:00
Shahaf Shuler
eac9cd58de net/mlx5: fix socket connection return value
Upon success, mlx5_socket_connect should return the fd descriptor of the
primary process

Fixes: a6d83b6a9209 ("net/mlx5: standardize on negative errno values")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2018-05-14 22:31:48 +01:00
Shahaf Shuler
d11d651f6d net/mlx5: add Rx and Tx tuning parameters
A new ethdev API was exposed by
commit 3be82f5cc5e3 ("ethdev: support PMD-tuned Tx/Rx parameters")

Enabling the PMD to provide default parameters in case no strict request
from application in order to improve the out of the box experience.

While the current API lacks the means for the PMD to provide the best
possible value, providing the best default the PMD can guess.
The values are based on Mellanox performance report and depends on the
underlying NIC capabilities.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2018-05-14 22:31:48 +01:00
Shahaf Shuler
7d2e32f76c net/mlx5: fix ethtool link setting call order
According to ethtool_link_setting API recommendation ETHTOOL_GLINKSETTINGS
should be called before ETHTOOL_GSET as the later one deprecated.

Fixes: f47ba80080ab ("net/mlx5: remove kernel version check")

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2018-05-14 22:31:48 +01:00
Wei Zhao
088aed4b89 net/i40e: fix flow RSS key array error
This is a bug introduced into RSS key array span.

Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-05-14 22:31:48 +01:00
Yanglong Wu
956ef01f50 net/i40e: fix missing some offload capabilities
MULTI_SEGS and JUMBO_FRAME offload capability should be exposed
both VF and PF since i40e does support it.

Fixes: c3ac7c5b0b8a ("net/i40e: convert to new Rx offloads API")
Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")

Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-05-14 22:31:48 +01:00
Chas Williams
03f518d040 net/e1000: add minimum support for Broadcom 54616 PHY
If we find a Broadcom 54616, handle as a e1000_phy_none assuming that
the NIC reset has initialized the PHY to a sane state.

Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-05-14 22:31:48 +01:00
Rosen Xu
cae18d2b0f net/i40e: add workaround promiscuous disable
In scenario of Kernel Driver runs on PF and PMD runs on VF, PMD exit
doesn't disable promiscuous mode, this will cause vlan filter set by
Kernel Driver will not take effect.

This patch will fix it, add promiscuous disable at device disable.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-05-14 22:31:48 +01:00
Shweta Choudaha
c2071c19ad net/ixgbe: add API to update SBP bit
Add ixgbe API to enable SBP bit in FCTRL register
to allow receiving packets that may otherwise be
considered length errors by ixgbe and dropped

Signed-off-by: Shweta Choudaha <shweta.choudaha@att.com>
Reviewed-by: Chas Williams <chas3@att.com>
Reviewed-by: Luca Boccassi <bluca@debian.org>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-05-14 22:31:47 +01:00
Jianfeng Tan
169a9da64a net/virtio-user: fix hugepage files enumeration
After the commit 2a04139f66b4 ("eal: add single file segments option"),
one hugepage file could contain multiple hugepages which are further
mapped to different memory regions.

Original enumeration implementation cannot handle this situation.

This patch filters out the duplicated files; and adjust the size after
the enumeration.

Fixes: 6a84c37e3975 ("net/virtio-user: add vhost-user adapter layer")

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:31:47 +01:00
Ciara Loftus
aee6c97f00 net/vhost: initialise device as inactive
rte_eth_vhost_get_vid_from_port_id returns a value of 0 if
called before the first call to the new_device callback.
A vid value >=0 suggests the device is active which is not
the case in this instance. Initialise vid to a negative
value to prevent this.

Fixes: ee584e9710b9 ("vhost: add driver on top of the library")
Cc: stable@dpdk.org

Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:31:37 +01:00
Fan Zhang
dc3530ec0d vhost/crypto: fix symmetric ciphering
A bracket was misplaced in a condition check, this patch
fixes it.

Coverity issue: 277232, 277237
Fixes: 3bb595ecd682 ("vhost/crypto: add request handler")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:31:03 +01:00
Maxime Coquelin
8eac207d49 vhost: fix header copy to discontiguous desc buffer
In the loop to copy virtio-net header to the descriptor buffer,
destination pointer was incremented instead of the source
pointer.

Fixes: fb3815cc614d ("vhost: handle virtually non-contiguous buffers in Rx-mrg")
Fixes: 6727f5a739b6 ("vhost: handle virtually non-contiguous buffers in Rx")
Cc: stable@dpdk.org

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:31:03 +01:00
Maxime Coquelin
55dfc375cf examples/vhost: fix header copy to discontiguous desc buffer
In the loop to copy virtio-net header to the descriptor buffer,
destination pointer was incremented instead of the source
pointer.

Coverity issue: 277240
Fixes: 82c93a567d3b ("examples/vhost: move to safe GPA translation API")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:31:03 +01:00
Tonghao Zhang
bfbf0143d1 vhost: fix typo in comment
Fixes: 3670686ab99f ("vhost: fix race for connection fd")
Cc: stable@dpdk.org

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:31:03 +01:00
Tonghao Zhang
52d874dc67 vhost: fix crash on closing in client mode
when rte_vhost_driver_unregister detstroy the vsocket, we
should set it to NULL after freeing it, because in client mode,
the conn may be added to reconnect thread while vsocket is
destroyed. In one case, if qemu create vhostuser port as a
server with the same unix path, the reconnect thread will
reconnect to it while vsocket is destroyed.

To fix this:
1. set vsocket to NULL after free it.
2. remove the reconnection from reconnection thread in suitable
   position.

Cc: stable@dpdk.org

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:30:48 +01:00
Tonghao Zhang
8b4b949144 vhost: fix dead lock on closing in server mode
When qemu close the unix socket fd of the vhostuser as a
server, and then immediately delete the vhostuser port on
openvswitch. There will be a deadlock.

A thread (fdset event thread):       B thread:
1. fdset_event_dispatch              rte_vhost_driver_unregister
2. set the fd busy to 1.             lock vsocket->conn_mutex
3. vhost_user_read_cb                fdset_del waits busy changed to 0.
4. vhost peer closed, remove the
   conn from vsocket->conn_list:
   lock vsocket->conn_mutex

5. set the fd busy to 0

Fixes: 65388b43f592 ("vhost: fix fd leaks for vhost-user server mode")
Cc: stable@dpdk.org

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:29:59 +01:00
Junjie Chen
a24e7032f7 doc/vhost: update zero copy performance tip
In VM2NIC case zero copy may need some tuning to get best performance.
This patch describes the zero copy starved case and provides a tuning
tip.

Signed-off-by: Junjie Chen <junjie.j.chen@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-05-14 22:26:36 +01:00
Pavan Nikhilesh
28abade0a7 net/thunderx: remove deprecated Txq flags
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2018-05-14 22:26:36 +01:00
Pavan Nikhilesh
2fd41a152e net/octeontx: fix missing offload flags
Fix missing DEV_RX_OFFLOAD_CHECKSUM flag in RX offloads.
Remove depricated txq_flags field.

Fixes: a92870896b4a ("net/octeontx: use the new offload APIs")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2018-05-14 22:26:36 +01:00
Ajit Khaparde
ac0ba3e151 net/bnxt: remove unused Txq flags
We are still using the txq_flags which is no longer needed with the
new offload API. Cleaning it up.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-05-14 22:26:36 +01:00
Qi Zhang
1778ef67e2 net/fm10k: remove dependence on Tx queue flags
Since we move to new offload APIs, txq_flags is no long needed.
This patch remove the dependence on that.

Fixes: 30f3ce999e6a ("net/fm10k: convert to new Tx offloads API")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-05-14 22:26:36 +01:00
Qi Zhang
2b64a8e3e0 net/e1000: remove dependence on Tx queue flags
Since we move to new offload APIs, txq_flags is no long needed.
This patch remove the dependence on that.

Fixes: e5c05e6590ea ("net/e1000: convert to new Tx offloads API")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-05-14 22:26:36 +01:00
Qi Zhang
2999456952 net/ixgbe: remove dependence on Tx queue flags
Since we move to new offload APIs, txq_flags is no long needed.
This patch remove the dependence on that.

Fixes: 51215925a32f ("net/ixgbe: convert to new Tx offloads API")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-05-14 22:26:36 +01:00
Andrew Rybchenko
c8f24b8a9e net/sfc: rely on ethdev mapping of Tx offloads to TxQ flags
There is no necessity to fill in TxQ flags since ethdev maps
Tx offloads to TxQ flags on device info get for apps which are
not converted yet to Tx offloads API.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-05-14 22:26:36 +01:00
Qi Zhang
5be6a3605b ethdev: convert Tx offloads to Tx queue config
Tx offload will be converted to txq_flags automatically during
rte_eth_dev_info_get and rte_eth_tx_queue_info_get. So PMD can
clean the code to get rid of txq_flags at all while keep old APP
not be impacted.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-05-14 22:26:36 +01:00
Qi Zhang
aed545af1b net/i40e: fix Tx queue info get
Add missing Tx queue offload assignment in i40e_txq_info_get.

Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
2018-05-14 22:26:36 +01:00
Li Han
3375e7f286 ip_frag: fix some debug logs
In ip_frag_process, some IP_FRAG_LOG content is wrong.

Fixes: 4f1a8f633862 ("ip_frag: add IPv6 reassembly")
Cc: stable@dpdk.org

Signed-off-by: Li Han <han.li1@zte.com.cn>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-05-14 21:14:49 +02:00
Anatoly Burakov
4aa0d0121a app/testpmd: fix initialization
Patch adding configurable locking has reshuffled some init stages, but
did not put them back in correct order. Fix order of init by moving
everything that was before arguments parsing into correct places.

Fixes: e505d84c64ab ("app/testpmd: make locking memory configurable")

Reported-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-05-14 20:35:31 +02:00
Konstantin Ananyev
3d5cf3005e bpf: add missed experimental tags
- add EXPERIMENTAL tag for the section in MAINTAINERS.
- add EXPERIMENTAL tag to BPF public API files.
- add attribute __rte_experimental to BPF public API declarations.

Fixes: 94972f35a02e ("bpf: add BPF loading and execution framework")
Fixes: 5dba93ae5f2d ("bpf: add ability to load eBPF program from ELF object file")
Fixes: a93ff62a8938 ("bpf: introduce basic Rx/Tx filters")

Reported-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-05-14 17:42:43 +02:00
Jasvinder Singh
37181824cc test/pipeline: fix type of table entry parameter
Fixes the wrong argument in table action miss function.

Fixes: 4c387fcdf777 ("pipeline: add new functions for action handlers")
Cc: stable@dpdk.org

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
2018-05-14 17:32:28 +02:00
Kirill Rybalchenko
1bdea6110a examples/ipsec-secgw: fix IP address parsing
In strlcpy function parameters there was no allowance for
null terminator, so ip address was copied without last character.

Fixes: ae943ebe1ed3 ("examples/ipsec-secgw: replace strncpy with strlcpy")
Cc: stable@dpdk.org

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-14 13:57:08 +02:00
Zhiyong Yang
adea04c495 app/testpmd: fix log after detach
The second parameter "name" in the function rte_eth_dev_detach
has been already redefined as "char *name __rte_unused",
"port_id" is printed instead of "name" in testpmd.

Fixes: b65ecf199324 ("devargs: rename legacy API")
Cc: stable@dpdk.org

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2018-05-14 12:51:37 +02:00
Shreyansh Jain
d00fa50779 config: increase max lcore to 16 for DPAA
With this change, DPAA and DPAA2 configuration compiled applications
are interoperable without any impact on the functional behavior.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-05-14 12:47:30 +02:00
Tianfei Zhang
5cdcf9a3a1 raw/ifpga/base: fix build with icc
fix compile error on icc compiler

Fixes: 56bb54ea1bdf ("raw/ifpga/base: add Intel FPGA OPAE share code")

Signed-off-by: Tianfei Zhang <tianfei.zhang@intel.com>
Tested-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-14 12:40:11 +02:00
David Hunt
803ee2ebd3 examples/performance-thread: fix return type of threads
The function pthread_create() expects void *(*func) (void *)
for function pointer, however, lthread_func_t was defined as
void (*func) (void *), so now gcc 8.1 warns that the cast is
incorrect, causing a compilation failure. This patch changes
the declaration of lthread_func_t from returning a void to
returning a void*, and then changes the sample app in the
relevant places that are affected by the typedef change.

Fixes: 116819b9ed0d ("examples/performance-thread: add lthread subsystem")
Cc: stable@dpdk.org

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-14 12:20:14 +02:00
Abhinandan Gujjar
a68bc62fd1 test: fix build with icc
This patch provides fix for icc compilation issue with event
crypto adapter test application.
Currently, number of elements in the session mempool is defined
by max_nb_sessions & this is replaced with a macro.

Fixes: 3c2c535ecfc0 ("test: add event crypto adapter auto-test")

Reported-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-14 11:10:24 +02:00
Matan Azrad
3b97888ab2 app/testpmd: fix asynchronic port removal
When a removable device is plugged-out, a RMV interrupt is invoked and
the application can catch the event in order to stop the device
management.

The Testpmd wrong behavior in this case is to detach the removed device
using the EAL detach API.

The EAL API does not invalidate the ethdev port and the port keeps
appearing as valid from the ethdev point of view.

Thus, the next operations for the ethtev port X may trigger an invalid
rte_device access. For example, calling "show port info X" may cause
segfault.

Moreover, the removed port is not removed from the Testpmd data-path
structures. Therefore, the invalid device may still be used by the
Testpmd data-path.

Call the Testpmd detach_port() function which uses the ethdev detach
API, and prepare the Testpmd forward ports database for a new
forwarding session without the detached port.

Fixes: 284c908cc588 ("app/testpmd: request device removal interrupt")
Cc: stable@dpdk.org

Signed-off-by: Matan Azrad <matan@mellanox.com>
2018-05-14 04:20:33 +02:00
Matan Azrad
0da2a62bf9 app/testpmd: fix removed device link status asking
In the RMV device event callback, there is a call for the removed
device stop operation which triggers a link status operation for the
removed device.

It may casue an error from the removed device PMD.

Skip the link status operation in the above described case.

Fixes: 284c908cc588 ("app/testpmd: request device removal interrupt")
Cc: stable@dpdk.org

Signed-off-by: Matan Azrad <matan@mellanox.com>
2018-05-14 04:20:25 +02:00
Matan Azrad
03ce2c53a3 app/testpmd: fix synchronic port hotplug
When the user uses the synchronic hot-plug commands, attach\detach, in
order to insert\remove a port from the system, the forward ports list
update is missed in the current implementation.

Thus, an invalid port may be used for data-path in case of detach
because the detached port was not removed from the forward port list.

In addition, a new port is not used for data-path in case of attach, as the
default behavior of Testpmd, because the attached port was not inserted
to the forward port list.

Update the forward port list in the above cases to allow the correct
port usage for data-path in the next packet forwarding start.

Fixes: edab33b1c01d ("app/testpmd: support port hotplug")
Cc: stable@dpdk.org

Signed-off-by: Matan Azrad <matan@mellanox.com>
2018-05-14 04:10:42 +02:00