Commit Graph

20491 Commits

Author SHA1 Message Date
Harry van Haaren
505a2b0c64 test/service: fix wait for service core
This commit fixes a sporadic failure of the service_autotest
unit test, as seen in the DPDK CI. The failure occurs as the main test
thread did not wait on the service-thread to return, and allowing it
to read a flag before the service was able to write to it.

The fix changes the wait API call to specific the service-core ID,
and this waits for cores with both ROLE_RTE and ROLE_SERVICE.

The rte_eal_mp_wait_lcore() call does not (and should not) wait
for service cores, so must not be used to wait on service-cores.

Fixes: f038a81e1c ("service: add unit tests")
Cc: stable@dpdk.org

Reported-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
2019-11-27 21:23:17 +01:00
Pavan Nikhilesh
4a21216674 event/octeontx: fix partial Rx packet handling
When net/octeontx is connected to event/octeontx as an event Rx adapter,
PKI aka 'net/octeontx' can forward packets directly to SSO aka
'event/octeontx'.
When pumping traffic to PKI if flow control is disabled internal FIFOs
might be overrun causing partial l2 packets to be enqueued.
SSO receives <31:0> TAG tag calculated by PKI, in normal cases <31:28>
is always 0 which signifies RTE_EVENT_TYPE_ETHDEV. But in case of
partial received packets PKI sets the <31:0> TAG as 0xFFFFFFFF which
is an invalid event type.

Add a check to see if TAG is 0xFFFFFFFF and free the partial receive
packet.

Fixes: d0d6549860 ("net/octeontx: support event Rx adapter")
Cc: stable@dpdk.org

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
2019-11-27 19:05:18 +01:00
Viacheslav Ovsiienko
c8a1a172ae net/mlx5: fix legacy inline multi-packet performance
The legacy multi-packet write is the feature allowing to
put multiple packets into one transmitting descriptor,
this feature is supported by only NIC ConnectX-4LX.
The number of packets should be limited to provide
optimal size descriptor and better performance.

Fixes: 18a1c20044 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2019-11-27 16:27:00 +01:00
Viacheslav Ovsiienko
57725162f0 net/mlx5: fix legacy non-inline multi-packet performance
The legacy multi-packet write is the feature allowing to
put multiple packets into one transmitting descriptor,
this feature is supported by only NIC ConnectX-4LX.
The number of packets should be limited to provide
optimal size descriptor and better performance.

Fixes: 18a1c20044 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2019-11-27 16:25:11 +01:00
Viacheslav Ovsiienko
a0865f6f07 net/mlx5: fix default mark copy flow
In extensive metadata mode the MARK copy table is engaged,
if the application creates the flow with zero MARK ID action:

flow create 1 ingress pattern eth / ... / end actions mark id 0 / .. end

And then destroys that, the traffic to the port stops. This happens
due to default flow for the copy table has the zero ID and is removed
with the application rule. The patch extends internal ID variable
to 64 bits and provide the UINT64_MAX ID for the copy table default
rule.

Fixes: dd3c774f6f ("net/mlx5: add metadata register copy table")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
2019-11-27 16:15:10 +01:00
Thomas Monjalon
20bbb9e045 ethdev: limit maximum number of queues
A buffer overflow happens in testpmd with some drivers
since the queue arrays are limited to RTE_MAX_QUEUES_PER_PORT.

The advertised capabilities of mlx4, mlx5 and softnic
for the number of queues were the maximum number: UINT16_MAX.
They must be limited by the configured RTE_MAX_QUEUES_PER_PORT
that applications expect to be respected.

The limitation is applied at ethdev level (function rte_eth_dev_info_get),
in order to force the configured limit for all drivers.

Fixes: 14b53e27b3 ("ethdev: fix crash with multiprocess")
Cc: stable@dpdk.org

Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
2019-11-27 16:04:40 +01:00
Thomas Monjalon
2d0cfc0e05 version: 19.11-rc4
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-11-27 00:43:18 +01:00
Kirill Rybalchenko
ba30ec5d3d maintainers: claim maintainership of ptpclient example
Claim maintainership of examples/ptpclient/

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2019-11-27 00:36:53 +01:00
Allain Legacy
1a714d2009 maintainers: replace for AVP
Resigning my maintainership of the AVP driver and adding Steve Webster
as a new maintainer.

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
2019-11-27 00:35:29 +01:00
Xiaolong Ye
c66049221e maintainers: update for ifpga
Add raw/ifpga to next-net-intel tree.

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2019-11-27 00:30:26 +01:00
John McNamara
92c083915a doc: update release notes for 19.11
Fix grammar, spelling and formatting of DPDK 19.11 release notes.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
2019-11-27 00:10:25 +01:00
Thomas Monjalon
463b11bd4c doc: sort features in 19.11 release notes
Move cryptodev feature near other crypto features.

Group ethdev features together.
Sort drivers/net features with new PMDs first.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-11-27 00:00:24 +01:00
Ray Kinsella
da585123a0 doc: add ABI policy changes to release notes
Add some pointers to the releases notes on the changes to the abi policy,
the introduction of project-level ABI management and the deprecation of
library-level management.

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: John McNamara <john.mcnamara@intel.com>
2019-11-27 00:00:24 +01:00
Pavan Nikhilesh
4362312431 usertools: fix device binding module detection
Some kernel modules use '-' in their name when registering through
`pci_register_driver` and the same name  is populated in
'/sys/bus/pci/drivers/'.
But the kernel always populates modules names replacing '-' with '_'
in '/sys/module/'.

Example:
	# ./usertools/dpdk-devbind.py -b octeontx2-nicpf 0002:03:00.0
	Error: Driver 'octeontx2-nicpf' is not loaded.

	# ls /sys/bus/pci/drivers/octeontx2-nicpf
	bind  module  new_id  remove_id  uevent  unbind
	# ls /sys/module/octeontx2_nicpf/
	drivers  uevent  version

The patch addresses it by always replacing '-' with '_' when looking in
'/sys/module/'

Signed-off-by: Phanendra Vukkisala <pvukkisala@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
2019-11-27 00:00:24 +01:00
David Marchand
1e3acc6f70 ci: add minimal check on testpmd
Try to start testpmd with two vdevs without hugepages.
This is a really basic check, but better than nothing.

Signed-off-by: David Marchand <david.marchand@redhat.com>
2019-11-27 00:00:24 +01:00
Suanming Mou
4a73c86ff6 net/mlx5: fix crash on GRE flow rule parsing
When set the GRE item, GRE key should follow after GRE header, or the
header gre_item pointer used by the key will be invalid.

Currently in the mlx5_flow_validate_item_gre_key() function, the header
gre_item pointer is access before checking if the key is after the
header or not. Once the key item is before the header, invalid gre_item
pointer access happens.

Move the gre_item pointer access after the GRE header check to avoid the
crash issue.

Fixes: a7a0365565 ("net/mlx5: match GRE key and present bits")
Cc: stable@dpdk.org

Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
2019-11-26 18:22:27 +01:00
Suanming Mou
4acb96fd52 net/mlx5: add GENEVE in tunnel offloads capabilities
GENEVE is available in tunnel offloads. Add it as the default support
option.

Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
2019-11-26 18:22:27 +01:00
Ali Alnubani
373c6114f5 net/mlx5: fix build with dlopen linkage
The header mlx5_glue.h includes rte_byteorder.h, which isn't
pulled by global_inc. This patch adds the missing include directory
and fixes the build error:

  In file included from drivers/net/mlx5/mlx5_glue.c:31:
  drivers/net/mlx5/mlx5_glue.h:12:10: fatal error:
  rte_byteorder.h: No such file or directory

The build failure can be triggered with:
  meson -Dibverbs_link=dlopen build && ninja -C build

Fixes: 400d985eb5 ("net/mlx5: add VLAN push/pop DR commands to glue")

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2019-11-26 18:22:27 +01:00
Viacheslav Ovsiienko
82e75f8323 net/mlx5: fix legacy multi-packet Tx descriptors
ConnectX-4LX supports multiple packets within the single Tx
descriptor. This feature is named as "Legacy Multi-Packet Write"
and imposes a lot of limitations:

  - no ACLs, it means no NIC Tx Flows are supported and Tx metadata
    become meaningless
  - the required minimal inline data must be zero
  - no SR-IOV, it means no support in E-Switch configurations,
  - no priority and dscp forcing
  - no VLAN insertion
  - no TSO
  - all packets within MPW session must have the same size

This legacy MPW feature is mainly intended for test purposes.
To explicitly engage the feature on ConnectX-4LX the devargs
should be specified:

  - txq_mpw_en=1

This feature was dropped in 19.08, this patch reverts it back.

Fixes: 18a1c20044 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2019-11-26 18:22:27 +01:00
Ferruh Yigit
2ad5482b51 net/kni: fix crash caused by double stop
'close()' calls 'stop()' and 'stop()' cancels pthread without any check.
Calling 'stop()' & 'close()' sequentially tries to cancel pthread twice
which will cause a crash.

Adding a state check in 'stop()' before canceling the pthread to prevent
multiple stop.

Fixes: 696fbc7bb4 ("net/kni: remove resources when port is closed")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Yinan Wang <yinan.wang@intel.com>
2019-11-26 18:22:27 +01:00
Matan Azrad
64edb05e29 ethdev: fix item expansion for RSS flow
When the last item in flow pattern includes "next protocol" field which
is relevant for RSS flow expansion, a new item is added to the pattern
according to the "next protocol" field. This field is called missed
field.

The missed field wrongly was not initialized what caused to some of the
flow item fields to contain garbage values.

As a result, the PMDs internal flow engine may crash.

For example, the spec value may include garbage pointer and to cause
crash.

Initialize the missed field with zeroes.

Fixes: fc2dd8dd49 ("ethdev: fix expand RSS flows")
Cc: stable@dpdk.org

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
2019-11-26 18:05:15 +01:00
Xiao Wang
ac466a1d6c net/ifc: check VFIO query error
It's possible that we fail to get the IOMMU group of ifcvf device, this
patch adds a check on the return value.

Coverity issue: 349894
Fixes: a3f8150eac ("net/ifcvf: add ifcvf vDPA driver")
Cc: stable@dpdk.org

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
2019-11-26 18:05:15 +01:00
Dekel Peled
0adf23adcb net/mlx5: fix flow engine choice
Commit in fixes line sets the DV (Direct Verbs) flow engine as default.
Newer versions of DV flow engine use the DR (Direct Rules) features.
DR is supported from RDMA Core library version rdma-core-24.0.
This cause failure to start port when using older rdma-core version,
without DR support.

This patch selects DV flow engine if rdma-core version is v24.0 or
higher. Verbs flow engine is selected otherwise.

Fixes: cd4569d2bf ("net/mlx5: change default flow engine to DV")

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
2019-11-26 18:05:15 +01:00
Sunil Kumar Kori
c2c0aa75cd net/octeontx2: fix loopback config return for VF
loopback mode is not supported for VFs so returning error if
VF is being configured with loopback mode.

Fixes: 920717e4d8 ("net/octeontx2: add device start operation")
Cc: stable@dpdk.org

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
2019-11-26 18:05:15 +01:00
Lunyuan Cui
a407d7c2dd net/e1000: fix link status
The link status got from link status register was not correct,
because register has been reset when ports reset.
After port reset, set the link status down.

Fixes: c431ec66c5 ("net/igb: support setting link up or down")
Cc: stable@dpdk.org

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2019-11-26 18:05:15 +01:00
Lunyuan Cui
c3f2fbff78 net/ixgbe: fix link status
The link status for 82599eb got from link status register was not
correct. Check the enable/disable flag of tx laser, set the link
status down if tx laser disabled. Then, we can get correct status.
But after port reset, tx laser register will be reset enable.
Link status will always be up. So set tx laser disable when port resets.

When hw->mac.autotry_restart is true, whether tx laser is disable or
enable, it will be set enable in ixgbe_flap_tx_laser_multispeed_fiber().
hw->mac.autotry_restart can be set true in both port init and port start.
Because we don't need this treatment before port starts, set
hw->mac.autotry_restart false when port init.

Fixes: 0408f47ba4 ("net/ixgbe: fix busy polling while fiber link update")
Cc: stable@dpdk.org

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2019-11-26 18:05:15 +01:00
Lunyuan Cui
e7c1d6b2d8 net/e1000: fix link status update
Meaningless to judge the link state according to the memset'ed
link variable, this patch fixes this logical issue.

In addition, this patch changes the variable from link_check to link_up
according to its real meaning.

Fixes: 80ba61115e ("net/e1000: use link status helper functions")
Cc: stable@dpdk.org

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2019-11-26 18:05:15 +01:00
Andrew Rybchenko
f3e7fb09c6 ethdev: remove deprecation notice about RSS hash flag
The offload flag was added, but the deprecation notice was not removed.

Fixes: 5d30897295 ("ethdev: add mbuf RSS update as an offload")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-11-26 18:05:15 +01:00
Andrew Rybchenko
6355f12370 ethdev: remove deprecation notice for packet type set
The functionality is added, but the deprecation notice is not
removed.

Fixes: 5d4813acda ("ethdev: add packet type range function")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-11-26 18:05:15 +01:00
Wei Hu (Xavier)
8f64f2846d net/hns3: fix checking enough Tx BDs
In .tx_pkt_burst ops implementation function of hns3 PMD driver,
there is one check whether there are enough BDs in the TX queue.
If not, driver will stop sending the packets.

Currently in the 'for' process loop, the next_to_use member of
TX queue is not updated in time after processing BDs of one packet,
which results in the invalid action of checking whether there are
enough BDs and failure in sending packets.

This patch fixes it by moving the assignment statment of the
next_to_use member of TX queue to the place after porcessing TX BDs
in the 'for' loop.

Fixes: bba6366983 ("net/hns3: support Rx/Tx and related operations")
Cc: stable@dpdk.org

Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2019-11-26 18:05:15 +01:00
Rasesh Mody
e28bfe3355 doc: update qede guide
- Add note for sharing an adapter between DPDK and Linux drivers.
- Update the firmware version in example.
- Add Config note for potential error due to lack of memzone descriptor
  count.

Signed-off-by: Rasesh Mody <rmody@marvell.com>
2019-11-26 18:05:15 +01:00
Pavan Nikhilesh
e75eb0c8a2 net/octeontx2: fix packet type parsing disabled by default
Enable packet type parsing by default, only disable when
`rte_eth_dev_set_ptypes()` is called with ptype_mask as 0.
This would enable applications that are dependent on packet type parsing
like l3fwd.

Also this patch preserves configuration set by `rte_eth_dev_set_ptypes`
across multiple calls of `rte_eth_dev_configure()`

Fixes: d2706e15e6 ("net/octeontx2: support reduced set of packet types")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
2019-11-26 18:05:15 +01:00
Viacheslav Ovsiienko
771e5af073 doc: update metadata feature in mlx5 guide
Legacy Verbs supports MARK and FLAG metadata actions only.

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
2019-11-26 18:05:15 +01:00
Viacheslav Ovsiienko
8723061aa6 net/mlx5: fix getting metadata register for E-Switch domain
The metadata register used for META item/action within E-Switch
steering domain should be altered depending on dv_xmeta_en
devarg value.

Fixes: 3e8edd0ef8 ("net/mlx5: update metadata register ID query")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2019-11-26 18:05:15 +01:00
Suanming Mou
7c1852e48f net/mlx5: fix chosen L3/L4 layer with tunnel
For tunnel mode, there may be two L3/L4 layer match pattern items, one
for inner and one for outer layers. The L3 TTL and L4 port header
modify actions should handle the outermost layer items.

Currently flow_dv_attr_init() doesn't distinguish between outer and
inner layers, since inner layer comes later than the outer layer, this
may cause inner layer values also set to the flow attributes and may
lead actions to use inner L3/L4 pattern items.

Adding a check in flow_dv_attr_init() to prevent inner layer to set the
flow attribute if the previous L3/L4 outer pattern exist.

Fixes: 4bb14c83df ("net/mlx5: support modify header using Direct Verbs")
Cc: stable@dpdk.org

Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2019-11-26 18:05:15 +01:00
Pavan Nikhilesh
7392ad06f5 app/testpmd: use better randomness for Tx split
Use rte_rand() instead of random() for better randomness.

Coverity issue: 337666
Fixes: 79bec05b32 ("app/testpmd: add ability to split outgoing packets")
Cc: stable@dpdk.org

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-11-26 18:05:15 +01:00
Min Hu (Connor)
4c5b169990 net/hns3: fix duplicated VLAN entry
When setting vlan, hns3 driver will add vlan entry to vlan linked list
each time, and this is unreasonable.

This patch adds a check whether the VLAN to be added already exists
in the linked list and prevents adding duplicated vlan.

Fixes: 411d23b9ea ("net/hns3: support VLAN")
Cc: stable@dpdk.org

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2019-11-26 18:05:15 +01:00
Huisong Li
958edf6627 net/hns3: fix VF link status
Currently, port link status is "up" in VF driver after user calling the
rte_eth_dev_stop API. This is unreasonable.

Therefore, this patch adjusts the strategy of getting link status from
PF driver for VF. VF driver should stop getting link status from PF by
canceling the alarm that VF driver send mailbox message to PF driver,
when the rte_eth_dev_stop API is called. And VF driver should restore
the alarm when the rte_eth_dev_start API is called.

Fixes: a5475d61fa ("net/hns3: support VF")
Cc: stable@dpdk.org

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2019-11-26 18:05:15 +01:00
Chengchang Tang
e4eae34a8c net/hns3: fix mailbox response length
Remove the macro 'HNS3_REG_MSG_DATA_OFFSET' which is used to prevent
access violation for response array by limiting the response data length
to 4.
But the limit value is too short to get some longer information such as
6 byte MAC address.

This patch modifies the length of response data from mailbox to allow
the response data length to be 8. So that the VF driver could get more
data from PF driver by mailbox.

Fixes: 463e748964 ("net/hns3: support mailbox")
Cc: stable@dpdk.org

Signed-off-by: Chengchang Tang <tangchengchang@hisilicon.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2019-11-26 18:05:15 +01:00
Wei Hu (Xavier)
de620754a1 net/hns3: fix sending packets less than 60 bytes
Ethernet minimum packet length is 64 bytes. If upper application
sends packets with less than 60 bytes in length(no CRC), driver
adds padding processing to avoid failure.

Fixes: bba6366983 ("net/hns3: support Rx/Tx and related operations")
Cc: stable@dpdk.org

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2019-11-26 18:05:15 +01:00
Wei Hu (Xavier)
9e4dc67564 net/hns3: fix VF configuration after abnormal exit
When the application using VF device exits abnormally, for example,
when it is killed by 'kill -9', kernel PF netdev driver also stores
the corresponding configuration table entries of VF device.

This patch fixes it by adding message of deleting VF configuration
table entry corresponds to the revision of kernel hns3 netdev
driver, the new message is added to notify the kernel PF netdev
driver to clean up the VF configuration initialization during VF
initialization.

This revision is compatible with the old version of kernel hns3
netdev driver. The old version of kernel pf netdev driver will
ignore this message.

Fixes: a5475d61fa ("net/hns3: support VF")
Cc: stable@dpdk.org

Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2019-11-26 18:05:15 +01:00
Hao Chen
ccf93f56e0 net/hns3: fix RSS hardware configuration restore
This patch fixes the bug that hardware configuration called
tc_size doesn't restore to the initial value when starting
the app, configuring PFC and then restarting the app,
because of the tc_mode didn't initial when rss is disabled.

Fixes: c37ca66f2b ("net/hns3: support RSS")
Cc: stable@dpdk.org

Signed-off-by: Hao Chen <chenhao164@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2019-11-26 18:05:15 +01:00
David Marchand
9e6b36c34c app/testpmd: reduce memory consumption
Following [1], testpmd memory consumption has skyrocketted.
The rte_port structure has gotten quite fat.

struct rte_port {
[...]
  struct rte_eth_rxconf rx_conf[65536];            /* 266280 3145728 */
  /* --- cacheline 53312 boundary (3411968 bytes) was 40 bytes ago --- */
  struct rte_eth_txconf tx_conf[65536];            /* 3412008 3670016 */
  /* --- cacheline 110656 boundary (7081984 bytes) was 40 bytes ago --- */
[...]
  /* size: 8654936, cachelines: 135234, members: 31 */
[...]

testpmd handles RTE_MAX_ETHPORTS ports (32 by default) which means that it
needs ~256MB just for this internal representation.

The reason is that a testpmd rte_port (the name is quite confusing, as
it is a local type) maintains configurations for all queues of a port.
But where you would expect testpmd to use RTE_MAX_QUEUES_PER_PORT as the
maximum queue count, the rte_port uses MAX_QUEUE_ID set to 64k.

Prefer the ethdev maximum value.

After this patch:
struct rte_port {
[...]
  struct rte_eth_rxconf      rx_conf[1025];        /*  8240 49200 */
  /* --- cacheline 897 boundary (57408 bytes) was 32 bytes ago --- */
  struct rte_eth_txconf      tx_conf[1025];        /* 57440 57400 */
  /* --- cacheline 1794 boundary (114816 bytes) was 24 bytes ago --- */
[...]
  /* size: 139488, cachelines: 2180, members: 31 */
[...]

With this, we can ask for less memory in test-null.sh.

[1]: https://git.dpdk.org/dpdk/commit/?id=436b3a6b6e62

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2019-11-26 18:05:15 +01:00
Somnath Kotur
b7e5f647e2 net/bnxt: fix freeing all VNICs during port stop
Now that vnics are created only as part of the flow creation cmds
and not during init, we cannot rely on iterating only through
'nr_vnics'. We need to sweep all the vnics by using 'max_vnics'
otherwise a vnic with a stale 'rx_queue_cnt' might be left lingering
post a port stop/start operation. This could lead to a segfault.
This change is required because of the recent fix made by commit to
"fix flow creation with non-consecutive group ids".

Fixes: fcdd7210aa ("net/bnxt: fix flow creation with non-consecutive group ids")

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2019-11-26 18:05:15 +01:00
Ajit Khaparde
b6d42ce526 doc: update release notes for bnxt
Update release doc briefly describing updates to bnxt PMD for
19.11 release.

The support for these was added in the following commits:
1) b150a7e7ee ("net/bnxt: support LRO on Thor adapters")
2) be14720def ("net/bnxt: support FW reset")
3) df6cd7c1f7 ("net/bnxt: handle reset notify async event from FW")
4) 698aa7e953 ("net/bnxt: add code to determine the Tx COS queue")
5) 04102f2ffc ("net/bnxt: update HWRM API to version 1.10.1.6")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2019-11-26 18:05:15 +01:00
Ajit Khaparde
67f96b2c9e doc: update bnxt feature list
Updating bnxt.ini file.
These features were added earlier under the following commits.
1) 94d4afd2d1 ("net/bnxt: advertise scatter Rx offload capability")
2) 57d5e5bc86 ("net/bnxt: add statistics")
3) 8892013668 ("net/bnxt: support xstats get by id")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2019-11-26 18:05:15 +01:00
Ori Kam
9e0d81c1a1 net/mlx5: fix selection between encap and decap
The current raw_encap function selects if to decap or encap
based on the egress/ingress attribute. This concepts doesn't work
in case of FDB since all flows are considered ingress.

To solve this issue we moved to check the encap size.
if the encap size is larger then eth + ipv4 it means we are
trying to encap.

Fixes: 8ba9eee4ce ("net/mlx5: add raw data encap/decap to Direct Verbs")
Cc: stable@dpdk.org

Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2019-11-26 18:05:15 +01:00
Andrzej Ostruszka
781088dad5 doc: fix tap guide
Corrected one typo and IP address according RFC5735.

Fixes: de96fe68ae ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org

Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2019-11-26 18:05:15 +01:00
Shougang Wang
54aedfe1c0 net/ixgbe: fix performance drop caused by MACsec
Currently macsec offload will be enabled every time when device starts.
It will cause QoS sample application performance drop issue. This patch
adds check in dev_start ops to make sure macsec is only enabled when
required explicitly.

Fixes: 50556c8810 ("net/ixgbe: fix MACsec setting")
Cc: stable@dpdk.org

Signed-off-by: Shougang Wang <shougangx.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
2019-11-26 18:05:15 +01:00
Matan Azrad
1ef4cdef26 net/mlx5: fix flow tag hash list conversion
When DR is not supported and DV is supported, tag action still can be
used by the metadata feature.

Wrongly, the tag hash list was not created what caused failure in
metadata action creation.

Create the tag hash list for each DV case.

Fixes: 860897d289 ("net/mlx5: reorganize flow tables with hash list")

Signed-off-by: Matan Azrad <matan@mellanox.com>
2019-11-26 18:05:15 +01:00