AgeCommit message (Collapse)Author
12 daysdoc: sort features in 19.11 release notesThomas Monjalon
Move cryptodev feature near other crypto features. Group ethdev features together. Sort drivers/net features with new PMDs first. Signed-off-by: Thomas Monjalon <>
12 daysdoc: add ABI policy changes to release notesRay Kinsella
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 <> Acked-by: John McNamara <>
12 daysusertools: fix device binding module detectionPavan Nikhilesh
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/ -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 <> Signed-off-by: Pavan Nikhilesh <>
12 daysci: add minimal check on testpmdDavid Marchand
Try to start testpmd with two vdevs without hugepages. This is a really basic check, but better than nothing. Signed-off-by: David Marchand <>
12 daysnet/mlx5: fix crash on GRE flow rule parsingSuanming Mou
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: a7a0365565a4 ("net/mlx5: match GRE key and present bits") Cc: Signed-off-by: Suanming Mou <> Acked-by: Ori Kam <>
12 daysnet/mlx5: add GENEVE in tunnel offloads capabilitiesSuanming Mou
GENEVE is available in tunnel offloads. Add it as the default support option. Signed-off-by: Suanming Mou <> Acked-by: Ori Kam <>
12 daysnet/mlx5: fix build with dlopen linkageAli Alnubani
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: 400d985eb586 ("net/mlx5: add VLAN push/pop DR commands to glue") Signed-off-by: Ali Alnubani <> Acked-by: Thomas Monjalon <>
12 daysnet/mlx5: fix legacy multi-packet Tx descriptorsViacheslav Ovsiienko
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: 18a1c20044c0 ("net/mlx5: implement Tx burst template") Cc: Signed-off-by: Viacheslav Ovsiienko <> Acked-by: Matan Azrad <>
12 daysnet/kni: fix crash caused by double stopFerruh Yigit
'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: 696fbc7bb4fc ("net/kni: remove resources when port is closed") Signed-off-by: Ferruh Yigit <> Tested-by: Yinan Wang <>
12 daysethdev: fix item expansion for RSS flowMatan Azrad
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: fc2dd8dd492f ("ethdev: fix expand RSS flows") Cc: Signed-off-by: Matan Azrad <> Acked-by: Ori Kam <>
12 daysnet/ifc: check VFIO query errorXiao Wang
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: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver") Cc: Signed-off-by: Xiao Wang <> Reviewed-by: Xiaolong Ye <>
12 daysnet/mlx5: fix flow engine choiceDekel Peled
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: cd4569d2bf3c ("net/mlx5: change default flow engine to DV") Signed-off-by: Dekel Peled <> Acked-by: Ori Kam <>
12 daysnet/octeontx2: fix loopback config return for VFSunil Kumar Kori
loopback mode is not supported for VFs so returning error if VF is being configured with loopback mode. Fixes: 920717e4d8ba ("net/octeontx2: add device start operation") Cc: Signed-off-by: Sunil Kumar Kori <> Acked-by: Jerin Jacob <>
12 daysnet/e1000: fix link statusLunyuan Cui
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: c431ec66c54c ("net/igb: support setting link up or down") Cc: Signed-off-by: Lunyuan Cui <> Acked-by: Wenzhuo Lu <>
12 daysnet/ixgbe: fix link statusLunyuan Cui
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: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update") Cc: Signed-off-by: Lunyuan Cui <> Acked-by: Wenzhuo Lu <>
12 daysnet/e1000: fix link status updateLunyuan Cui
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: 80ba61115e77 ("net/e1000: use link status helper functions") Cc: Signed-off-by: Lunyuan Cui <> Acked-by: Xiaolong Ye <> Acked-by: Wenzhuo Lu <>
12 daysethdev: remove deprecation notice about RSS hash flagAndrew Rybchenko
The offload flag was added, but the deprecation notice was not removed. Fixes: 5d308972954c ("ethdev: add mbuf RSS update as an offload") Signed-off-by: Andrew Rybchenko <> Acked-by: Ferruh Yigit <>
12 daysethdev: remove deprecation notice for packet type setAndrew Rybchenko
The functionality is added, but the deprecation notice is not removed. Fixes: 5d4813acda2c ("ethdev: add packet type range function") Signed-off-by: Andrew Rybchenko <> Acked-by: Ferruh Yigit <>
12 daysnet/hns3: fix checking enough Tx BDsWei Hu (Xavier)
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: bba636698316 ("net/hns3: support Rx/Tx and related operations") Cc: Signed-off-by: Hongbo Zheng <> Signed-off-by: Huisong Li <> Signed-off-by: Wei Hu (Xavier) <>
12 daysdoc: update qede guideRasesh Mody
- 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 <>
12 daysnet/octeontx2: fix packet type parsing disabled by defaultPavan Nikhilesh
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: d2706e15e6fb ("net/octeontx2: support reduced set of packet types") Signed-off-by: Pavan Nikhilesh <> Acked-by: Jerin Jacob <>
12 daysdoc: update metadata feature in mlx5 guideViacheslav Ovsiienko
Legacy Verbs supports MARK and FLAG metadata actions only. Signed-off-by: Viacheslav Ovsiienko <>
12 daysnet/mlx5: fix getting metadata register for E-Switch domainViacheslav Ovsiienko
The metadata register used for META item/action within E-Switch steering domain should be altered depending on dv_xmeta_en devarg value. Fixes: 3e8edd0ef848 ("net/mlx5: update metadata register ID query") Signed-off-by: Viacheslav Ovsiienko <> Acked-by: Matan Azrad <>
12 daysnet/mlx5: fix chosen L3/L4 layer with tunnelSuanming Mou
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: 4bb14c83df95 ("net/mlx5: support modify header using Direct Verbs") Cc: Signed-off-by: Suanming Mou <> Acked-by: Matan Azrad <>
12 daysapp/testpmd: use better randomness for Tx splitPavan Nikhilesh
Use rte_rand() instead of random() for better randomness. Coverity issue: 337666 Fixes: 79bec05b32b7 ("app/testpmd: add ability to split outgoing packets") Cc: Signed-off-by: Pavan Nikhilesh <> Reviewed-by: Ferruh Yigit <>
12 daysnet/hns3: fix duplicated VLAN entryMin Hu (Connor)
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: 411d23b9eafb ("net/hns3: support VLAN") Cc: Signed-off-by: Min Hu (Connor) <> Signed-off-by: Wei Hu (Xavier) <>
12 daysnet/hns3: fix VF link statusHuisong Li
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: a5475d61fa34 ("net/hns3: support VF") Cc: Signed-off-by: Huisong Li <> Signed-off-by: Wei Hu (Xavier) <>
12 daysnet/hns3: fix mailbox response lengthChengchang Tang
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: 463e748964f5 ("net/hns3: support mailbox") Cc: Signed-off-by: Chengchang Tang <> Signed-off-by: Wei Hu (Xavier) <>
12 daysnet/hns3: fix sending packets less than 60 bytesWei Hu (Xavier)
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: bba636698316 ("net/hns3: support Rx/Tx and related operations") Cc: Signed-off-by: Huisong Li <> Signed-off-by: Wei Hu (Xavier) <>
12 daysnet/hns3: fix VF configuration after abnormal exitWei Hu (Xavier)
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: a5475d61fa34 ("net/hns3: support VF") Cc: Signed-off-by: Hongbo Zheng <> Signed-off-by: Wei Hu (Xavier) <>
12 daysnet/hns3: fix RSS hardware configuration restoreHao Chen
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: c37ca66f2b27 ("net/hns3: support RSS") Cc: Signed-off-by: Hao Chen <> Signed-off-by: Wei Hu (Xavier) <>
12 daysapp/testpmd: reduce memory consumptionDavid Marchand
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 [1]: Signed-off-by: David Marchand <> Acked-by: Ferruh Yigit <> Acked-by: Thomas Monjalon <>
12 daysnet/bnxt: fix freeing all VNICs during port stopSomnath Kotur
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: fcdd7210aa1f ("net/bnxt: fix flow creation with non-consecutive group ids") Signed-off-by: Somnath Kotur <> Reviewed-by: Ajit Khaparde <>
12 daysdoc: update release notes for bnxtAjit Khaparde
Update release doc briefly describing updates to bnxt PMD for 19.11 release. The support for these was added in the following commits: 1) b150a7e7ee66 ("net/bnxt: support LRO on Thor adapters") 2) be14720def9c ("net/bnxt: support FW reset") 3) df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW") 4) 698aa7e95325 ("net/bnxt: add code to determine the Tx COS queue") 5) 04102f2ffc8c ("net/bnxt: update HWRM API to version") Signed-off-by: Ajit Khaparde <>
12 daysdoc: update bnxt feature listAjit Khaparde
Updating bnxt.ini file. These features were added earlier under the following commits. 1) 94d4afd2d167 ("net/bnxt: advertise scatter Rx offload capability") 2) 57d5e5bc86e4 ("net/bnxt: add statistics") 3) 88920136688c ("net/bnxt: support xstats get by id") Signed-off-by: Ajit Khaparde <>
12 daysnet/mlx5: fix selection between encap and decapOri Kam
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: 8ba9eee4ce32 ("net/mlx5: add raw data encap/decap to Direct Verbs") Cc: Signed-off-by: Ori Kam <> Acked-by: Matan Azrad <>
12 daysdoc: fix tap guideAndrzej Ostruszka
Corrected one typo and IP address according RFC5735. Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions") Cc: Signed-off-by: Andrzej Ostruszka <> Reviewed-by: Ferruh Yigit <>
12 daysnet/ixgbe: fix performance drop caused by MACsecShougang Wang
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: 50556c88104c ("net/ixgbe: fix MACsec setting") Cc: Signed-off-by: Shougang Wang <> Reviewed-by: Xiaolong Ye <>
12 daysnet/mlx5: fix flow tag hash list conversionMatan Azrad
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: 860897d2895a ("net/mlx5: reorganize flow tables with hash list") Signed-off-by: Matan Azrad <>
12 daysnet/virtio-user: drop attribute unused for memory callbackTiwei Bie
The "addr" param has been used since the event callbacks are enabled for external memory. So the "__rte_unused" should be dropped. Besides, slightly refine the coding style by consistently assuming tabs are 8 characters. Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory") Cc: Signed-off-by: Tiwei Bie <> Reviewed-by: Maxime Coquelin <>
12 daysapp/testpmd: fix memory leak on detachStephen Hemminger
The RTE_FOREACH_MATCHING_DEV iterator requires that if a break is done before the end of the loop, the function rte_eth_iterator_cleanup() must be called. Fixes: 55e51c962432 ("app/testpmd: add device related commands") Cc: Signed-off-by: Stephen Hemminger <> Acked-by: Bernard Iremonger <>
12 daysnet/ice: support flow director for normal GTPUYahui Cao
Add FDIR support for normal GTP-U packet, which doesn't contain GTP_PSC extension header. Fixes: efc16c621415 ("net/ice: support flow director GTPU tunnel") Signed-off-by: Yahui Cao <> Acked-by: Qi Zhang <>
12 daysnet/ice: fix pattern name of GTPU with extension headerYahui Cao
Pattern name of GTP-U flow with extension header should be xxx_gtpu_eh_xxx. So it will not conflict with the pattern name of a GTP-U flow that does not contains extension header. Fixes: 3e4eab9c2192 ("net/ice: add pattern manifest") Signed-off-by: Yahui Cao <> Acked-by: Qi Zhang <>
12 daysnet/ice: fix flow director conflictQi Zhang
Flow type "IPv4 + UDP" or "IPv4 + TCP" is conflict with "IPv4 + any" flow type. If a rule for IPv4 + any is created, we should reject any rule for IPv4 + UDP otherwise the first rule may be impacted, same decision should be made on a reverse order. For IPv6 and IPv4 GTPU inner case, we have the same limitation. Fixes: 109e8e06249e ("net/ice: configure HW flow director rule") Signed-off-by: Qi Zhang <> Tested-by: Beilei Xing <> Acked-by: Beilei Xing <> Acked-by: Xiaolong Ye <>
12 daysdoc: fix a typo in EAL guideAnatoly Burakov
The correct name for virt2memseg API is `rte_mem_virt2memseg`, not `rte_virt2memseg`. Fixes: 950e8fb4e194 ("mem: allow registering external memory areas") Cc: Signed-off-by: Anatoly Burakov <>
12 daysdoc: add core queries in power example guideDavid Hunt
This patch adds some minor updates for the vm_power_manager and guest_cli example applications. Now that the virtio-serial channels between vm_power manager and the guest_cli has bi-directional capability, there are some new commands. Firstly, the command in vm_power_manager to enable queries for a given VM: * set_query {vm_name} enable|disable Then, commands to query the frequencies and capabilities of the cores in the VM: * query_cpu_freq {core_num}|all * query_cpu_caps {core_num}|all Signed-off-by: David Hunt <> Acked-by: John McNamara <>
12 dayseal: fix header file install with mesonAli Alnubani
The header file 'rte_vfio.h' might be required by some external apps. This patch adds it to the list of common_headers so that it's installed by meson. Fixes: 610beca42ea4 ("build: remove library special cases") Cc: Signed-off-by: Ali Alnubani <> Reviewed-by: Thomas Monjalon <> Acked-by: Bruce Richardson <>
12 daysexamples/ioat: fix possible null dereferenceBruce Richardson
When searching for raw devices with the correct type, we check the driver name using strcmp, without first checking that the call to info get succeeded and assigned a value to that pointer. If the call to get the device info fails, we can treat it as if the device didn't match, and continue the loop, so the easiest fix is just to skip the strcmp if the driver_name is null. [A non-null value from a previous failed match is ok as it too causes the same behaviour of another loop iteration]. Coverity issue: 350353 Fixes: 2328542ed84e ("examples/ioat: add rawdev copy mode") Signed-off-by: Bruce Richardson <>
12 daysexamples/ioat: handle error when querying number of statsBruce Richardson
To get the amount of memory needed for stats, we call the xstats_get_names function with a NULL parameter, which can return -1 on error. This negative value was not previously handled correctly, so we adjust things to quit the stats printing routine if this basic call fails. Coverity issue: 350346 Fixes: 632bcd9b5d4f ("examples/ioat: print statistics") Signed-off-by: Bruce Richardson <>
12 daysexamples/ioat: handle failure case for ioat dequeueBruce Richardson
On a failure with the ioat dequeue, -1 is returned, which was not properly handled. This could lead to out-of-bounds reads on a later loop which assumed a positive return value. Fix this by treating an error as though a dequeue of 0 had been encountered. Coverity issue: 350342 Coverity issue: 350349 Fixes: 2328542ed84e ("examples/ioat: add rawdev copy mode") Signed-off-by: Bruce Richardson <>