AgeCommit message (Collapse)Author
2019-11-22net/e1000: fix memory barrier usage in Tx18.11Xiao Zhang
[ upstream commit d6956e92390c8fb2fcbd0f3363169b88a012154c] Use rte_cio_wmb instead of rte_wmb when writing TX descriptor since it's CIO memory. Replace rte_io_wmb and E1000_PCI_REG_WRITE_RELAXED with E1000_PCI_REG_WRITE since it has rte_io_wmb inside, which will be more clear. Fixes: 1fc9701238ed ("net/e1000: fix i219 hang on reset/close") Signed-off-by: Xiao Zhang <> Reviewed-by: Gavin Hu <> Reviewed-by: Xiaolong Ye <>
2019-11-22net/e1000: fix i219 hang on reset/closeXiao Zhang
[ upstream commit 1fc9701238edcf0541289b9ae15565b6d9d7ab30] [ upstream commit 675f65dc660805eff1953e3dfb6242ec076a9444] Squashing these commits because an issue was identified with the first commit after it was applied on master but before backported to stable. The second commit fixes the issue introduced in the first commit. commit 1fc9701238edcf0541289b9ae15565b6d9d7ab30 Author: Xiao Zhang <> Date: Mon Jul 22 23:11:52 2019 +0800 net/e1000: fix i219 hang on reset/close Unit hang may occur if multiple descriptors are available in the rings during reset or close. This state can be detected by configure status by bit 8 in register. If the bit is set and there are pending descriptors in one of the rings, we must flush them before reset or close. Fixes: 805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)") Signed-off-by: Xiao Zhang <> Reviewed-by: Xiaolong Ye <> commit 675f65dc660805eff1953e3dfb6242ec076a9444 Author: Xiao Zhang <> Date: Wed Sep 11 01:40:55 2019 +0800 net/e1000: fix MAC type checking The mac types of i219 are e1000_pch_spt and e1000_pch_cnp, correct the checking code of mac type when flushing i219 descriptor rings. Fixes: 1fc9701238ed ("net/e1000: fix i219 hang on reset/close") Reported-by: Kevin Traynor <> Signed-off-by: Xiao Zhang <> Acked-by: Kevin Traynor <> Reviewed-by: Xiaolong Ye <> Signed-off-by: Kevin Traynor <>
2019-11-22ci: add missing dependencies for documentationDavid Marchand
[ upstream commit 7632da0b875f0e2ca9b5c1bc03e8a43bc25c9f9e] Install missing dependencies so that doc can be generated. While at it, explicitly configure that we want the doc to be generated. Missing dependencies are then reported as an error rather than silently ignored. Because of these extra dependencies, only build them in dedicated travis jobs. Fixes: ad2b2cfb1ea3 ("ci: enable unit tests with Travis") Signed-off-by: David Marchand <> Acked-by: Aaron Conole <>
2019-11-22net/qede: fix stats flow as per new allocation methodShahed Shaikh
[ upstream commit 0aa3e7b925e1ebefdcb9e49d4b1a4c4bc9a127c9 ] As per new method, need to consider hw stats of queues from both engines. This patch fixes the stats collection flow accordingly. Fixes: 2af14ca79c0a ("net/qede: support 100G") Signed-off-by: Shahed Shaikh <>
2019-11-22net/qede: fix RSS configuration as per new allocation methodShahed Shaikh
[ upstream commit 235cbe4c22728dd70cd9f1fed4b7910d2e07983e ] With old design, RETA was configured in round-robin fashion since queue allocation was distributed across both engines alternately. Now, we need to configure RETA symmetrically on both engines since both engines have same number of queues. Fixes: 2af14ca79c0a ("net/qede: support 100G") Signed-off-by: Shahed Shaikh <>
2019-11-22net/qede: fix odd number of queues usage in 100G modeShahed Shaikh
[ upstream commit 8de0c42019260813b71699748a08bc94b608b5d9 ] As per HW design of 100Gb mode, device internally uses 2 engines (eng0 and eng1), and both engines need to be configured symmetrically. Based on this requirement, driver design chose an approach to allow user to allocate only even number of queues and split those queues on both engines equally. This approach puts a limitation on number of queues to be allocated - i.e. user can't configure odd number of queues on 100Gb mode. OVS configures DPDK port with 1 rxq and 1 txq, which causes initialization of qede port to fail. Issue is fixed by changing the implementation of queue allocation and assignment to hw engines only for 100Gb devices and allowing user to configure odd number queues. New approach works as below - - Create 'struct qede_fastpath_cmt' to hold hw queue pair of both engines and provide it to rte_ethdev's Rx/Tx queues structure. - So ethdev will see only one queue for underlying queue pair created for hw engine pair. - Install separate Rx/Tx data path handlers for 100Gb mode and regular mode - Rx/Tx handlers for 100Gb mode will split packet processing across both engines by providing hw queue structures from 'struct qede_fastpath_cmt' passed by Rx/Tx callbacks to respective engines. Fixes: 2af14ca79c0a ("net/qede: support 100G") Signed-off-by: Shahed Shaikh <>
2019-11-22net/qede: refactor Rx and Tx queue setupShahed Shaikh
[ upstream commit 642f25da9c561f6e831cb5ea6f7d79c04d804081 ] This patch refactors Rx and Tx queue setup flow required to allow odd number of queues to be configured in next patch. This is the first patch of the series required to fix an issue where qede port initialization in ovs-dpdk fails due to 1 Rx/Tx queue configuration. Detailed explanation is given in next patch. Fixes: 2af14ca79c0a ("net/qede: support 100G") Signed-off-by: Shahed Shaikh <>
2019-11-22net/mlx5: fix Rx CQ doorbell synchronization on aarch64Phil Yang
[ upstream commit 94a24aaf6c5bd0a03c2828e7411d30a4fc0ac075 ] The Rx completion queue doorbell field needs to be updated after the last CQE decompressed. For the weaker memory model processors, the compiler barrier is not sufficient to guarantee the order of these operations, so use the coherent I/O memory barrier to make sure these fields are updated in order. Fixes: 570acdb1da8a ("net/mlx5: add vectorized Rx/Tx burst for ARM") Suggested-by: Gavin Hu <> Signed-off-by: Phil Yang <> Reviewed-by: Gavin Hu <> Acked-by: Matan Azrad <>
2019-11-22net/i40e: downgrade error logEelco Chaudron
[ upstream commit 9763595925aa0488392035dbb15522dc2200c6d4 ] When receiving the unsupported AQ messages, it's taken as an error. It's not appropriate and triggers too much unnecessary print. This commit is similar to commit e130425300b0 ("net/i40e: downgrade unnecessary error log") which made the same change for the PF instance. Fixes: ae19955e7c86 ("i40evf: support reporting PF reset") Signed-off-by: Eelco Chaudron <> Reviewed-by: David Marchand <> Reviewed-by: Xiaolong Ye <>
2019-11-22drivers/crypto: remove some invalid commentsThierry Herbelot
[ upstream commit 310d2ea6328c6146ccca6eac42426e060a99fedc ] A comment valid in AESNI PMD was copied and pasted in other code Fixes: 8a61c83af2fa ("crypto/mrvl: add mrvl crypto driver") Fixes: 169ca3db550c ("crypto/armv8: add PMD optimized for ARMv8 processors") Fixes: d61f70b4c918 ("crypto/libcrypto: add driver for OpenSSL library") Signed-off-by: Thierry Herbelot <> Acked-by: Akhil Goyal <>
2019-11-22cryptodev: fix initialization on multi-processJulien Meunier
[ upstream commit 1a60db7f354a52add0c1ea66e55ba7beba1a9716 ] Primary process is responsible to initialize the data struct of each crypto devices. Secondary process should not override this data during the initialization. Fixes: d11b0f30df88 ("cryptodev: introduce API and framework for crypto devices") Signed-off-by: Julien Meunier <> Acked-by: Akhil Goyal <>
2019-11-22examples/fips_validation: fix null dereferencesChaitanya Babu Talluri
[ upstream commit 75b3dddf95ea0d5a1356115f748e1cc43de67886 ] One issue caught by Coverity 343408 *deref_parm: Directly dereferencing parameter val->val. In writeback_tdes_hex_str(), tmp_val is initialised to null. tmp_val.val is updated only if keys are found. If keys are not found,it doesn't fails but continues to invoke writeback_hex_str(),where val->val is accessed without null check. The fix is to return the error, if keys are not found in writeback_tdes_hex_str(). Coverity issue: 343408 Fixes: 527cbf3d5e ("examples/fips_validation: support TDES parsing") Signed-off-by: Chaitanya Babu Talluri <> Acked-by: Akhil Goyal <>
2019-11-22doc: fix AESNI-GCM limitations in crypto guideFan Zhang
[ upstream commit 185059c0f3ebdf396aa12877689e51880d47027e ] This patch fixes the aesni-gcm cryptodev documentation by filling the lacked unsupported chained mbuf description. Fixes: 6f16aab09a91 ("crypto/aesni_gcm: migrate to Multi-buffer library") Signed-off-by: Fan Zhang <>
2019-11-22crypto/octeontx: enable unbindingThierry Herbelot
[ upstream commit 1378ddce50eaa482891fcb7ee28c5a9248335bc6 ] Like for Ethernet ports, the OCTEON TX crypto engines must first be unbound from their kernel module, then rebound to vfio-pci, before being used in DPDK. As this capability is detected at runtime by dpdk-pmdinfo, add the info in the PMD registering directives. Then an external script can be used for bind and unbind. Fixes: bfe2ae495ee2 ("crypto/octeontx: add PMD skeleton") Signed-off-by: Thierry Herbelot <> Acked-by: Anoob Joseph <>
2019-11-22crypto/dpaa_sec: fix IOVA tableThierry Herbelot
[ upstream commit 12e5842945bf6debe431adbdbefd9a5a53c72003 ] dpaa_sec needs translations between physical and virtual addresses. V to P translation is relatively fast, as memory is managed in contiguous segments. The result of each V to P translation is used to update the DPAA iova table, which should be updated by a Mem event callback, but is not. Then the DPAA iova table has entries for all needed memory ranges. With this patch, dpaa_mem_ptov will always use dpaax_iova_table_get_va, which ensures optimal performance. Fixes: 5a7dbb934d75 ("dpaa: enable dpaax library") Signed-off-by: Thierry Herbelot <> Acked-by: Hemant Agrawal <>
2019-11-22crypto/qat: fix digest length in XCBC capabilityFiona Trahe
[ upstream commit 0996ed0d5ad65b6419e3ce66a420199c3ed45ca9 ] Digest length in RTE_CRYPTO_AUTH_AES_XCBC_MAC capability was incorrectly marked 16 bytes, should be 12. Fixes: 6a3c87bc6a6c ("crypto/qat: refactor capabilities infrastructure") Signed-off-by: Fiona Trahe <> Acked-by: Arek Kusztal <>
2019-11-22security: fix doxygen fieldsRadu Nicolau
[ upstream commit 382df9dfb6a8449b595e80d7ec391f90e3420d15 ] Replace /**< with /** for multiline doxygen comments. Fixes: c261d1431bd8 ("security: introduce security API and framework") Signed-off-by: Radu Nicolau <> Acked-by: Akhil Goyal <> Acked-by: Anoob Joseph <>
2019-11-22examples/ipsec-secgw: fix access to freed packetAnoob Joseph
[ upstream commit 1f868d90241cc6be2b378faa9dd43002b218226a ] For unknown/unsupported packets, the packet would get checked for inline offloads after the packet is freed. Fixes: 0ccfd14bc10d ("examples/ipsec-secgw: support inline protocol") Signed-off-by: Anoob Joseph <> Acked-by: Akhil Goyal <>
2019-11-22examples/ipsec-secgw: fix unchecked return valueBernard Iremonger
[ upstream commit 23742f21f74a9d8380367c39b8ee4561e6dd1526 ] Check the return value of the rte_eth_dev_rss_hash_conf_get function. Coverity issue: 344970 Fixes: 3a690d5a65e2 ("examples/ipsec-secgw: fix first packet with inline crypto") Signed-off-by: Bernard Iremonger <> Acked-by: Akhil Goyal <>
2019-11-22bus/pci: fix Intel IOMMU sysfs access checkStephen Hemminger
[ upstream commit 2e8d5cf7631cbc5efb4b3abf7393d2526dee0424 ] Just open the sysfs file and handle failure, rather than using access(). This eliminates Coverity warnings about TOCTOU "time of check versus time of use"; although for this sysfs file that is not really an issue anyway. Coverity issue: 347276 Fixes: 54a328f552ff ("bus/pci: forbid IOVA mode if IOMMU address width too small") Signed-off-by: Stephen Hemminger <> Reviewed-by: David Marchand <>
2019-11-22test/interrupt: account for race with callbackAaron Conole
[ upstream commit 73afc9df00d8ba4ff58d4a7a86691ca10520d462 ] Because the eal interrupt framework can race when invoking the callback and a separate unregister call, the test needs to accommodate the chance that the two collide. Do this by checking the return value of unregister against the race-condition flag (EAGAIN). Fixes: f1a6c22424ce ("app/test: update interrupts test") Signed-off-by: Aaron Conole <> Reviewed-by: David Marchand <>
2019-11-22net/mlx: fix build with make and recent gccThomas Monjalon
[ upstream commit b38a54aeb16cb36e42d638c4335b8314aa0b1794 ] With VERBOSE=1, this error was seen in debug mode with gcc 9.1: In file included from /tmp/ In file included from rdma-core/build/include/infiniband/mlx5dv.h:47: In file included from rdma-core/build/include/infiniband/verbs.h:46: In file included from rdma-core/build/include/infiniband/verbs_api.h:66: In file included from rdma-core/build/include/infiniband/ib_user_ioctl_verbs.h:38: include/rdma/ib_user_verbs.h:161:28: fatal error: zero size arrays are an extension [-Wzero-length-array] __aligned_u64 driver_data0; ^ 1 error generated. As a result, buildtools/ was not generating a correct autoconf file, so the compilation was generating such error: fatal error: redefinition of 'mlx5_ib_uapi_flow_action_packet_reformat_type' It is fixed by disabling -pedantic option when calling from the makefile-based system. Signed-off-by: Thomas Monjalon <> Acked-by: Luca Boccassi <> Acked-by: Matan Azrad <>
2019-11-22net/mlx: fix meson build with custom dependency pathThomas Monjalon
[ upstream commit de38dd8cf5e60d9d87eefe9f2cb60a35d4d86705 ] If rdma-core is not installed in a standard directory of the system, it is possible to specify the location of the pkgconfig file via an environment variable: PKG_CONFIG_PATH=$PKG_CONFIG_PATH:~/rdma-core/build/lib/pkgconfig In this case, the dependency may become mandatory to specify for the configuration tests (checking dependency symbols or fields). Some spacing is also fixed around. Fixes: 8e4937640022 ("net/mlx4: add external allocator for Verbs object") Fixes: 1dd7c7e38c19 ("net/mlx4: support meson build") Fixes: 96d7c62a70c7 ("net/mlx5: support meson build") Suggested-by: Luca Boccassi <> Signed-off-by: Thomas Monjalon <> Acked-by: Luca Boccassi <> Acked-by: Matan Azrad <>
2019-11-22build: remove redundant libs from pkgconfigThomas Monjalon
[ upstream commit 167d9c67975fb2207e03644ce7b5e23d56b73e70 ] As explained in drivers/, " For the find_library() case (but not with dependency()) we also need to specify the "-l" flags in pkgconfig_extra_libs variable too, so that it can be reflected in the pkgconfig output for static builds. " The commit e30b4e566f47 ("build: improve dependency handling") must be followed up with this one in order to remove more occurences of pkgconfig_extra_libs redundant with use of dependency(). Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD") Fixes: 3c32e89f68e1 ("compress/isal: add skeleton ISA-L compression PMD") Signed-off-by: Thomas Monjalon <> Acked-by: Luca Boccassi <>
2019-11-22doc: fix format in virtio guideTiwei Bie
[ upstream commit 2afa82430f0a60824fa4e0bf2a23191a5bc32a6d ] This patch removes an unwanted empty line in a sentence. Fixes: 71afcefbd53e ("doc: update virtio ring size and header size") Signed-off-by: Tiwei Bie <> Reviewed-by: Maxime Coquelin <>
2019-11-22doc: fix typo in virtio in-order Rx function nameTiwei Bie
[ upstream commit 3afba6e92e1797934181093879b2f4bd2f23ad1b ] The Rx function that will be used when in-order is enabled should be virtio_recv_mergeable_pkts_inorder() instead of virtio_xmit_pkts_inorder(). Fixes: 8f3bd7e8702d ("net/virtio: add in-order Rx/Tx into selection") Signed-off-by: Tiwei Bie <> Reviewed-by: Maxime Coquelin <>
2019-11-22net/virtio: remove remaining simple Tx related stuffTiwei Bie
[ upstream commit 1d2aa48b876148715680c9a1d69c195a929bad14 ] The simple Tx path in virtio has been removed in below commit. This patch removes an undefined function declaration of simple Tx and all related descriptions in the doc. Fixes: 57f818963d80 ("net/virtio: remove simple Tx path") Signed-off-by: Tiwei Bie <> Reviewed-by: Maxime Coquelin <>
2019-11-21net/ixgbe: fix VF RSS offloads configurationWei Zhao
[ upstream commit 9594db99c73b62c398310d812726cc90889297af ] x550 NIC VF port has the capacity to set RSS hash, so device info get function should report that. Fixes: 2144f6630fca ("ixgbe: add redirection table size in device info") Signed-off-by: Wei Zhao <> Acked-by: Xiaolong Ye <>
2019-11-21net/ixgbe: enable new PF host mbox versionWei Zhao
[ upstream commit 5e0a2c935bf6724b8419ad8f9237c48a564bb2ff ] A new mail box version of ixgbe_mbox_api_13 need to be enabled for PF host, in order that it can communicate with VF for queue number. Fixes: 46b14c231106 ("ixgbe: get VF queue number") Signed-off-by: Wei Zhao <> Acked-by: Xiaolong Ye <>
2019-11-21net/ixgbe: fix queue interrupt for X552/557Junyu Jiang
[ upstream commit f26f416d4c3ac8b77cd8dd84f72628b37fec7283 ] Interrupt mode is not working on X552/557 device because this device doesn't enable the queue interrupt mapping, this patch fixed the issue. Fixes: d2e72774e58c ("ixgbe/base: support X550") Signed-off-by: Junyu Jiang <> Acked-by: Qiming Yang <>
2019-11-21ethdev: fix typos for ENOTSUPXiaolong Ye
[ upstream commit e8c7df5d7d3a47446aa3f90d5ee1ca2662fd0531 ] Fixes: af75078fece3 ("first public release") Signed-off-by: Xiaolong Ye <> Acked-by: Stephen Hemminger <> Reviewed-by: Ferruh Yigit <>
2019-11-21net/vmxnet3: remove IP checksum from capabilitiesMaxime Leroy
[ upstream commit 86536da001c03d2bcbdb38ccdcd023e6d744f5b8 ] The vmxnet3_prep_pkts function set rte_errno to ENOTSUP for any packets having PKT_TX_IP_CHECKSUM set in ol_flags. But the vmxnet3 has DEV_TX_OFFLOAD_IPV4_CKSUM set in this tx offload capa. This issue has been introduced with the new Rx offload API. DEV_TX_OFFLOAD_IPV4_CKSUM and DEV_RX_OFFLOAD_IPV4_CKSUM has been added to the tx/rx offloads capa, but the vmxnet3 driver doesn't support it. To fix the issue, DEV_TX/RX_OFFLOAD_IPV4_CKSUM needs to be removed from tx/rx offload capa. Fixes: 95e4a96ccbf1 ("net/vmxnet3: convert to new Rx offload API") Signed-off-by: Maxime Leroy <> Acked-by: Yong Wang <>
2019-11-21net/ixgbe: remove redundant assignmentYong Wang
[ upstream commit e573264c71de3de67e8fa81b0872c10bf4650f15 ] Since "link.link_duplex" has been assigned to ETH_LINK_FULL_DUPLEX just before switch statement, the assignment in switch-case statement is redundant. Remove it. Fixes: 82113036e4e5 ("ethdev: redesign link speed config") Signed-off-by: Yong Wang <> Reviewed-by: Xiaolong Ye <>
2019-11-21net/ixgbe: remove memory barrier from NEON RxRuifeng Wang
[ upstream commit 18b7d4eb3dca9e24208c8be59a8972e7f9d7d1cf ] The memory barrier was intended for descriptor data integrity (see comments in [1]). As later NEON loads were implemented and a whole entry is loaded in one-run and atomic, that makes the ordering of partial loading unnecessary. Remove it accordingly. Corrected couple of code comments. In terms of performance, observed slightly higher average throughput in tests with 82599ES NIC. [1] Fixes: 989a84050542 ("net/ixgbe: fix received packets number for ARM NEON") Signed-off-by: Ruifeng Wang <> Reviewed-by: Gavin Hu <>
2019-11-21net/i40e: remove compiler barrier from NEON RxGavin Hu
[ upstream commit f1f0f39806d97a9a4d74d47ce7fb04e9b4943e08 ] As packet length extraction code was simplified,the ordering was not necessary any more.[1] 2% performance gain was measured on Marvell ThunderX2. 4.3% performance gain was measured on Ampere eMAG80 [1] Fixes: ae0eb310f253 ("net/i40e: implement vector PMD for ARM") Signed-off-by: Gavin Hu <> Reviewed-by: Ruifeng Wang <> Reviewed-by: Steve Capper <>
2019-11-21net/i40e: remove memory barrier from NEON RxGavin Hu
[ upstream commit 78b50591c8e7ae3d010e8f4005e0e95c17800941 ] For x86, the descriptors needs to be loaded in order, so in between two descriptors loading, there is a compiler barrier in place.[1] For aarch64, a patch [2] is in place to survive with discontinuous DD bits, the barriers can be removed to take full advantage of out-of-order execution. 50% performance gain in the RFC2544 NDR test was measured on ThunderX2. 12.50% performance gain in the RFC2544 NDR test was measured on Ampere eMAG80 platform. [1] [2] Fixes: ae0eb310f253 ("net/i40e: implement vector PMD for ARM") Signed-off-by: Gavin Hu <> Reviewed-by: Ruifeng Wang <> Reviewed-by: Steve Capper <>
2019-11-21net/mlx4: fix build on ppc64Christian Ehrhardt
[ upstream commit ceadf1a405d9951c6d15ed27e010f5b1a80dbdf5 ] The AltiVec header file breaks boolean type: error: incompatible types when initializing type '__vector _bool int' {aka '_vector(4) __bool int'} using type 'int' If __APPLE_ALTIVEC__ is defined, then bool type is redefined and conflicts with stdbool.h. There is no good solution to fix it for the whole project without breaking something else, so a workaround is inserted in mlx5 PMD. This workaround is not compatible with C++ but there is no C++ in DPDK. Related to: 725f5dd0bfb5 ("net/mlx5: fix build on PPC64") Signed-off-by: Christian Ehrhardt <> Tested-by: David Christensen <> Acked-by: Matan Azrad <>
2019-11-21net/atlantic: remove double function declarationIvan Ilchenko
[ upstream commit 5fdd61136babc3ec4a371ed09372c551da3e79b3 ] atl_dev_info_get() is declared twice in atl_ethdev.c. Delete one of these declarations. Fixes: bb42aa9ffe4e ("net/atlantic: configure device start/stop") Signed-off-by: Ivan Ilchenko <> Signed-off-by: Andrew Rybchenko <> Acked-by: Igor Russkikh <>
2019-11-21app/testpmd: remove duplicated Rx offload commandsFlavia Musatescu
[ upstream commit e5db17a1e54e419419751f83bb804ef34eb15bff ] The testpmd application provides two sets of commands for RX offload flags configuration. The purpose of this patch is to eliminate this duplication by removing the old set of commands: “port config all crc-strip|scatter|rx-cksum|rx-timestamp|hw-vlan| hw-vlan-filter|hw-vlan-strip|hw-vlan-extend on|off” The other commands set that can be used instead in order to enable or disable the same RX offloading flags on all RX queues of a port is: "port config <port_id> rx_offload crc_strip|scatter|ipv4_cksum| udp_cksum|tcp_cksum|timestamp|vlan_strip|vlan_filter|vlan_extend on|off" This patch also fixes the "drop-en" command, which enables packets dropping on all RX queues of all ports when no receive buffers available “port config all drop-en on|off” Fixes: 384161e00627 ("app/testpmd: adjust on the fly VLAN configuration") Signed-off-by: Flavia Musatescu <> Reviewed-by: Ferruh Yigit <>
2019-11-21net/af_packet: fix stale socketsAbhishek Sachan
[ upstream commit 7c3bcc7b6dc14623bd17960fa3236e6fa9e2711b ] af_packet driver is leaving stale socket after device is removed. Ring buffers are memory mapped when device is added using rte_dev_probe. There is no corresponding munmap call when device is removed/closed. This commit fixes the issue by calling munmap from rte_pmd_af_packet_remove(). Bugzilla ID: 339 Fixes: e6ee4db01b4d ("af_packet: make the device detachable") Signed-off-by: Abhishek Sachan <> Reviewed-by: John W. Linville <>
2019-11-21ethdev: fix doc reference to FDIR disabled modeAndrew Rybchenko
[ upstream commit 3c5f2cdb56d769755962a6c184e2a0a0ad70d93f ] There is no RTE_FDIR_DISABLE. The right name is RTE_FDIR_MODE_NONE. Fixes: af75078fece3 ("first public release") Signed-off-by: Andrew Rybchenko <>
2019-11-21net/i40e: fix VF runtime queues RSS configXiao Zhang
[ upstream commit 2da3ba7467955bce812f5f2c79c6c57859689bb6 ] I40evf queue can not work properly with kernel pf driver for X722 vf. Eg. when configure 8 queues pair, only 4 queues can receive packets, and half packets will be lost if using 2 queues pair. This issue is caused by misconfiguration of look up table, the original code of LUT configuration did not work for X722 vf, use aq command to setup the LUT to make it work properly. Fixes: cea7a51c1750 ("i40evf: support RSS") Acked-by: Beilei Xing <> Signed-off-by: Xiao Zhang <>
2019-11-21net/bonding: fix unicast packets filteringDavid Marchand
[ upstream commit 0ec234460b9282c96033282a9679e88d2df5e58e ] By default, the 802.3ad code enables promisc mode on all slaves. To avoid all packets going to the application (unless the application asked for promiscuous mode), all frames are supposed to be filtered in the rx burst handler. However the incriminated commit broke this because non pure ethernet frames (basically any unicast Ether()/IP() packet) are not filtered anymore. Fixes: 71b7b37ec959 ("net/bonding: use ptype flags for LACP Rx filtering") Signed-off-by: David Marchand <> Acked-by: Chas Williams <>
2019-11-21net/bonding: fix LACP fast queue Rx handlerDavid Marchand
[ upstream commit 58729b54949598cc43d56e22ef813b620651bb6a ] Fast queue Rx burst function is missing checks on promisc and the slave collecting state. Define an inline wrapper to have a common base. Fixes: 112891cd27e5 ("net/bonding: add dedicated HW queues for LACP control") Signed-off-by: David Marchand <> Acked-by: Chas Williams <>
2019-11-21net/bonding: fix out of bound access in LACP modeDavid Marchand
[ upstream commit 8ff0003c19412b04f70bfbe59fa52822417f86c3 ] We'd better consolidate the fast queue and the normal tx burst functions under a common inline wrapper for maintenance. But looking closer at the bufs_slave_port_idxs[] mapping array in those tx burst functions, its size is invalid since up to nb_bufs are handled here. A previous patch [1] fixed this issue for balance tx burst function without mentioning it. 802.3ad and balance modes are functionally equivalent on transmit. The only difference is on the slave id distribution. Add an additional inline wrapper to consolidate even more and fix this issue. [1]: Fixes: 09150784a776 ("net/bonding: burst mode hash calculation") Signed-off-by: David Marchand <> Acked-by: Chas Williams <>
2019-11-15version: 18.11.5HEADv18.11.5masterKevin Traynor
Signed-off-by: Kevin Traynor <>
2019-11-15vhost: fix vring requests validation broken if no FDZhike Wang
[ upstream commit 1407b0752eee2353160701d0182c7e911ccb538a] When VHOST_USER_VRING_NOFD_MASK is set, the fd_num is 0, so validate_msg_fds() will return error. In this case, the negotiation of vring message between vhost user front end and back end would fail, and as a result, vhost user link could NOT be up. How to reproduce: 1.Run dpdk testpmd insides VM, which locates at host with ovs+dpdk. 2.Notice that inside ovs there are endless logs regarding failure to handle VHOST_USER_SET_VRING_CALL, and link of vm could NOT be up. Fixes: f8898927bb16 ("vhost: fix possible denial of service by leaking FDs") Signed-off-by: Zhike Wang <> Reviewed-by: Maxime Coquelin <> Reviewed-by: Tiwei Bie <>
2019-11-12version: 18.11.4v18.11.4Kevin Traynor
Signed-off-by: Kevin Traynor <>
2019-11-04vhost: fix possible denial of service by leaking FDsMaxime Coquelin
A malicious Vhost-user master could send in loop hand-crafted vhost-user messages containing more file descriptors the vhost-user slave expects. Doing so causes the application using the vhost-user library to run out of FDs. This issue has been assigned CVE-2019-14818 Fixes: 8f972312b8f4 ("vhost: support vhost-user") Signed-off-by: Maxime Coquelin <>
2019-11-04vhost: fix possible denial of service on SET_VRING_NUMMaxime Coquelin
vhost_user_set_vring_num() performs multiple allocations without checking whether data were previously allocated. It may cause a denial of service because of the memory leaks that happen if a malicious vhost-user master keeps sending VHOST_USER_SET_VRING_NUM request until the slave runs out of memory. This issue has been assigned CVE-2019-14818 Reported-by: Jason Wang <> Signed-off-by: Maxime Coquelin <>