History log of /dpdk/drivers/net/mlx5/ (Results 1 – 25 of 2393)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
64fcadea03-May-2022 Thomas Monjalon <[email protected]>

avoid AltiVec keyword vector

The AltiVec header file is defining "vector", except in C++ build.
The keyword "vector" may conflict easily.
As a rule, it is better to use the alternative keyword "__ve

avoid AltiVec keyword vector

The AltiVec header file is defining "vector", except in C++ build.
The keyword "vector" may conflict easily.
As a rule, it is better to use the alternative keyword "__vector",
so we will be able to #undef vector after including AltiVec header.

Later it may become possible to #undef vector in rte_altivec.h
with a compatibility breakage.

Signed-off-by: Thomas Monjalon <[email protected]>
Reviewed-by: David Christensen <[email protected]>

show more ...


/dpdk/MAINTAINERS
/dpdk/app/test-eventdev/evt_main.c
/dpdk/app/test-eventdev/evt_test.h
/dpdk/app/test-eventdev/test_perf_atq.c
/dpdk/app/test-eventdev/test_perf_common.c
/dpdk/app/test-eventdev/test_perf_common.h
/dpdk/app/test-eventdev/test_perf_queue.c
/dpdk/app/test-eventdev/test_pipeline_atq.c
/dpdk/app/test-eventdev/test_pipeline_common.c
/dpdk/app/test-eventdev/test_pipeline_common.h
/dpdk/app/test-eventdev/test_pipeline_queue.c
/dpdk/app/test/meson.build
/dpdk/app/test/test_eventdev.c
/dpdk/app/test/test_pmd_perf.c
/dpdk/app/test/test_ring.h
/dpdk/app/test/test_threads.c
/dpdk/doc/guides/eventdevs/features/cnxk.ini
/dpdk/doc/guides/eventdevs/features/default.ini
/dpdk/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
/dpdk/doc/guides/prog_guide/eventdev.rst
/dpdk/doc/guides/rel_notes/release_22_07.rst
/dpdk/drivers/common/cnxk/roc_sso.c
/dpdk/drivers/common/cnxk/roc_sso_priv.h
/dpdk/drivers/common/cnxk/roc_tim.c
/dpdk/drivers/crypto/cnxk/cn10k_cryptodev_ops.c
/dpdk/drivers/crypto/cnxk/cn10k_cryptodev_ops.h
/dpdk/drivers/crypto/cnxk/cn9k_cryptodev_ops.c
/dpdk/drivers/crypto/cnxk/cn9k_cryptodev_ops.h
/dpdk/drivers/event/cnxk/cn10k_eventdev.c
/dpdk/drivers/event/cnxk/cn10k_worker.c
/dpdk/drivers/event/cnxk/cn10k_worker.h
/dpdk/drivers/event/cnxk/cn9k_eventdev.c
/dpdk/drivers/event/cnxk/cn9k_worker.c
/dpdk/drivers/event/cnxk/cn9k_worker.h
/dpdk/drivers/event/cnxk/cnxk_eventdev.c
/dpdk/drivers/event/cnxk/cnxk_eventdev.h
/dpdk/drivers/event/cnxk/cnxk_eventdev_selftest.c
/dpdk/drivers/event/cnxk/cnxk_worker.h
/dpdk/drivers/event/dlb2/dlb2.c
/dpdk/drivers/event/dlb2/dlb2_priv.h
/dpdk/drivers/event/dlb2/pf/dlb2_pf.c
/dpdk/drivers/gpu/cuda/cuda.c
/dpdk/drivers/net/i40e/i40e_rxtx_vec_altivec.c
mlx5_rxtx_vec_altivec.h
/dpdk/drivers/net/virtio/virtio_rxtx_simple_altivec.c
/dpdk/examples/eventdev_pipeline/pipeline_common.h
/dpdk/examples/eventdev_pipeline/pipeline_worker_generic.c
/dpdk/examples/eventdev_pipeline/pipeline_worker_tx.c
/dpdk/examples/ipsec-secgw/ipsec_worker.c
/dpdk/examples/l2fwd-event/l2fwd_common.c
/dpdk/examples/l2fwd-event/l2fwd_common.h
/dpdk/examples/l2fwd-event/l2fwd_event.c
/dpdk/examples/l3fwd/l3fwd_altivec.h
/dpdk/examples/l3fwd/l3fwd_em.c
/dpdk/examples/l3fwd/l3fwd_event.c
/dpdk/examples/l3fwd/l3fwd_event.h
/dpdk/examples/l3fwd/l3fwd_fib.c
/dpdk/examples/l3fwd/l3fwd_lpm.c
/dpdk/examples/l3fwd/l3fwd_lpm_altivec.h
/dpdk/lib/acl/acl_run_altivec.h
/dpdk/lib/eal/common/eal_common_dev.c
/dpdk/lib/eal/freebsd/include/rte_os.h
/dpdk/lib/eal/freebsd/meson.build
/dpdk/lib/eal/include/rte_common.h
/dpdk/lib/eal/include/rte_thread.h
/dpdk/lib/eal/ppc/include/rte_vect.h
/dpdk/lib/eal/unix/rte_thread.c
/dpdk/lib/eal/version.map
/dpdk/lib/eal/windows/eal_lcore.c
/dpdk/lib/eal/windows/eal_windows.h
/dpdk/lib/eal/windows/include/rte_os.h
/dpdk/lib/eal/windows/rte_thread.c
/dpdk/lib/eal/x86/include/rte_memcpy.h
/dpdk/lib/eventdev/eventdev_pmd.h
/dpdk/lib/eventdev/rte_event_eth_rx_adapter.c
/dpdk/lib/eventdev/rte_event_timer_adapter.c
/dpdk/lib/eventdev/rte_eventdev.c
/dpdk/lib/eventdev/rte_eventdev.h
/dpdk/lib/eventdev/version.map
/dpdk/lib/hash/meson.build
/dpdk/lib/hash/rte_crc_arm64.h
/dpdk/lib/hash/rte_crc_generic.h
/dpdk/lib/hash/rte_crc_sw.h
/dpdk/lib/hash/rte_crc_x86.h
/dpdk/lib/hash/rte_hash_crc.h
/dpdk/lib/lpm/rte_lpm_altivec.h
18ca4a4e12-May-2022 Raja Zidane <[email protected]>

net/mlx5: support ESP SPI match and RSS hash

In packets with ESP header, the inner IP will be encrypted, and
its fields cannot be used for RSS hashing. So, ESP packets
can be hashed only by the oute

net/mlx5: support ESP SPI match and RSS hash

In packets with ESP header, the inner IP will be encrypted, and
its fields cannot be used for RSS hashing. So, ESP packets
can be hashed only by the outer IP layer.
So, when using RSS on ESP packets, hashing may not be efficient,
because the fields used by the hash functions are only the outer IPs,
causing all traffic belonging to all tunnels between a given
pair of GWs to land on one core.
Adding the SPI hash field can extend the spreading of IPsec packets.

Signed-off-by: Raja Zidane <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

fc72110914-Apr-2022 Shun Hao <[email protected]>

net/mlx5: fix no-green metering with RSS

When a meter with RSS action being used, there might be several
sub-flows using different sub-policies in the flow splitting stage.
If there's no green actio

net/mlx5: fix no-green metering with RSS

When a meter with RSS action being used, there might be several
sub-flows using different sub-policies in the flow splitting stage.
If there's no green action, there's an error that will always use the
same sub-policy for all sub-flows, some resources will be
overwritten and cannot be released, leading assert during port close.

This patch fixes this issue by checking both green and yellow queue
index during getting a blank sub-policy, to avoid the incorrect
resource overwrite.

Fixes: b38a12272b3a ("net/mlx5: split meter color policy handling")
Cc: [email protected]

Signed-off-by: Shun Hao <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...


/dpdk/.ci/linux-build.sh
/dpdk/.github/workflows/build.yml
/dpdk/MAINTAINERS
/dpdk/app/test-crypto-perf/cperf_ops.c
/dpdk/app/test-crypto-perf/cperf_options.h
/dpdk/app/test-crypto-perf/cperf_options_parsing.c
/dpdk/app/test-crypto-perf/cperf_test_common.c
/dpdk/app/test-crypto-perf/cperf_test_common.h
/dpdk/app/test-crypto-perf/cperf_test_latency.c
/dpdk/app/test-crypto-perf/cperf_test_vectors.c
/dpdk/app/test-crypto-perf/cperf_test_vectors.h
/dpdk/app/test-crypto-perf/cperf_test_verify.c
/dpdk/app/test-crypto-perf/data/aes_gcm_128.data
/dpdk/app/test-crypto-perf/main.c
/dpdk/app/test-pmd/cmdline.c
/dpdk/app/test-pmd/config.c
/dpdk/app/test-pmd/testpmd.c
/dpdk/app/test/meson.build
/dpdk/app/test/test_cryptodev.c
/dpdk/app/test/test_cryptodev_security_ipsec.c
/dpdk/app/test/test_cryptodev_security_ipsec.h
/dpdk/app/test/test_cryptodev_security_ipsec_test_vectors.h
/dpdk/app/test/test_hash_readwrite.c
/dpdk/app/test/test_memory.c
/dpdk/app/test/test_table_tables.c
/dpdk/config/arm/arm64_armv8_linux_clang_ubuntu
/dpdk/config/arm/arm64_armv8_linux_clang_ubuntu1804
/dpdk/config/ppc/ppc64le-power8-linux-gcc-ubuntu
/dpdk/config/ppc/ppc64le-power8-linux-gcc-ubuntu1804
/dpdk/doc/api/doxy-api-index.md
/dpdk/doc/api/doxy-api.conf.in
/dpdk/doc/guides/cryptodevs/cnxk.rst
/dpdk/doc/guides/nics/cnxk.rst
/dpdk/doc/guides/nics/features/cnxk.ini
/dpdk/doc/guides/nics/features/cnxk_vec.ini
/dpdk/doc/guides/nics/features/cnxk_vf.ini
/dpdk/doc/guides/nics/features/iavf.ini
/dpdk/doc/guides/nics/features/ice_dcf.ini
/dpdk/doc/guides/nics/ice.rst
/dpdk/doc/guides/prog_guide/vhost_lib.rst
/dpdk/doc/guides/rel_notes/release_22_07.rst
/dpdk/doc/guides/tools/cryptoperf.rst
/dpdk/doc/guides/vdpadevs/mlx5.rst
/dpdk/drivers/bus/dpaa/rte_dpaa_bus.h
/dpdk/drivers/bus/fslmc/mc/fsl_dpmng.h
/dpdk/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
/dpdk/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
/dpdk/drivers/common/cnxk/cnxk_security.c
/dpdk/drivers/common/cnxk/hw/nix.h
/dpdk/drivers/common/cnxk/roc_api.h
/dpdk/drivers/common/cnxk/roc_cpt.c
/dpdk/drivers/common/cnxk/roc_errata.h
/dpdk/drivers/common/cnxk/roc_ie_ot.h
/dpdk/drivers/common/cnxk/roc_mbox.h
/dpdk/drivers/common/cnxk/roc_model.c
/dpdk/drivers/common/cnxk/roc_nix.h
/dpdk/drivers/common/cnxk/roc_nix_debug.c
/dpdk/drivers/common/cnxk/roc_nix_fc.c
/dpdk/drivers/common/cnxk/roc_nix_inl.c
/dpdk/drivers/common/cnxk/roc_nix_inl.h
/dpdk/drivers/common/cnxk/roc_nix_inl_dev.c
/dpdk/drivers/common/cnxk/roc_nix_inl_dev_irq.c
/dpdk/drivers/common/cnxk/roc_nix_inl_priv.h
/dpdk/drivers/common/cnxk/roc_nix_priv.h
/dpdk/drivers/common/cnxk/roc_nix_queue.c
/dpdk/drivers/common/cnxk/roc_nix_tm.c
/dpdk/drivers/common/cnxk/roc_nix_tm_mark.c
/dpdk/drivers/common/cnxk/roc_nix_tm_ops.c
/dpdk/drivers/common/cnxk/roc_nix_tm_utils.c
/dpdk/drivers/common/cnxk/roc_npc.c
/dpdk/drivers/common/cnxk/roc_npc.h
/dpdk/drivers/common/cnxk/roc_npc_mcam.c
/dpdk/drivers/common/cnxk/roc_npc_parse.c
/dpdk/drivers/common/cnxk/roc_npc_priv.h
/dpdk/drivers/common/cnxk/roc_npc_utils.c
/dpdk/drivers/common/cnxk/roc_platform.h
/dpdk/drivers/common/cnxk/version.map
/dpdk/drivers/common/dpaax/caamflib/desc/ipsec.h
/dpdk/drivers/common/dpaax/caamflib/desc/pdcp.h
/dpdk/drivers/common/dpaax/caamflib/desc/sdap.h
/dpdk/drivers/common/dpaax/caamflib/rta/fifo_load_store_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/header_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/jump_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/key_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/math_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/move_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/nfifo_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/operation_cmd.h
/dpdk/drivers/common/dpaax/caamflib/rta/protocol_cmd.h
/dpdk/drivers/common/iavf/virtchnl.h
/dpdk/drivers/compress/octeontx/include/zip_regs.h
/dpdk/drivers/compress/octeontx/otx_zip.c
/dpdk/drivers/compress/octeontx/otx_zip.h
/dpdk/drivers/compress/octeontx/otx_zip_pmd.c
/dpdk/drivers/crypto/cnxk/cn10k_ipsec.c
/dpdk/drivers/crypto/cnxk/cn10k_ipsec_la_ops.h
/dpdk/drivers/crypto/cnxk/cn9k_ipsec.c
/dpdk/drivers/crypto/cnxk/cnxk_cryptodev.h
/dpdk/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
/dpdk/drivers/crypto/cnxk/cnxk_ipsec.h
/dpdk/drivers/crypto/cnxk/cnxk_se.h
/dpdk/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
/dpdk/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h
/dpdk/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c
/dpdk/drivers/crypto/dpaa_sec/dpaa_sec.c
/dpdk/drivers/crypto/dpaa_sec/dpaa_sec.h
/dpdk/drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c
/dpdk/drivers/crypto/mlx5/mlx5_crypto.c
/dpdk/drivers/net/bnxt/bnxt.h
/dpdk/drivers/net/bnxt/bnxt_ethdev.c
/dpdk/drivers/net/bnxt/bnxt_filter.c
/dpdk/drivers/net/bnxt/bnxt_flow.c
/dpdk/drivers/net/bnxt/bnxt_hwrm.c
/dpdk/drivers/net/bnxt/bnxt_hwrm.h
/dpdk/drivers/net/bnxt/bnxt_reps.c
/dpdk/drivers/net/bnxt/bnxt_rxq.c
/dpdk/drivers/net/bnxt/bnxt_rxq.h
/dpdk/drivers/net/bnxt/bnxt_rxr.c
/dpdk/drivers/net/bnxt/bnxt_rxtx_vec_neon.c
/dpdk/drivers/net/bnxt/bnxt_txq.c
/dpdk/drivers/net/bnxt/bnxt_txq.h
/dpdk/drivers/net/bnxt/hsi_struct_def_dpdk.h
/dpdk/drivers/net/bonding/rte_eth_bond_pmd.c
/dpdk/drivers/net/cnxk/cn10k_ethdev.c
/dpdk/drivers/net/cnxk/cn10k_ethdev.h
/dpdk/drivers/net/cnxk/cn10k_ethdev_sec.c
/dpdk/drivers/net/cnxk/cn10k_rx.h
/dpdk/drivers/net/cnxk/cn10k_tx.h
/dpdk/drivers/net/cnxk/cn9k_ethdev.c
/dpdk/drivers/net/cnxk/cn9k_ethdev_sec.c
/dpdk/drivers/net/cnxk/cn9k_tx.h
/dpdk/drivers/net/cnxk/cnxk_ethdev.c
/dpdk/drivers/net/cnxk/cnxk_ethdev.h
/dpdk/drivers/net/cnxk/cnxk_ethdev_devargs.c
/dpdk/drivers/net/cnxk/cnxk_ethdev_ops.c
/dpdk/drivers/net/cnxk/cnxk_ethdev_sec.c
/dpdk/drivers/net/cnxk/cnxk_ethdev_telemetry.c
/dpdk/drivers/net/cnxk/cnxk_flow.c
/dpdk/drivers/net/cnxk/cnxk_link.c
/dpdk/drivers/net/cnxk/meson.build
/dpdk/drivers/net/cnxk/rte_pmd_cnxk.h
/dpdk/drivers/net/cnxk/version.map
/dpdk/drivers/net/cxgbe/base/adapter.h
/dpdk/drivers/net/cxgbe/base/common.h
/dpdk/drivers/net/cxgbe/base/t4_hw.c
/dpdk/drivers/net/cxgbe/base/t4_hw.h
/dpdk/drivers/net/cxgbe/base/t4vf_hw.c
/dpdk/drivers/net/cxgbe/cxgbe_main.c
/dpdk/drivers/net/cxgbe/sge.c
/dpdk/drivers/net/dpaa/dpaa_ethdev.c
/dpdk/drivers/net/dpaa2/dpaa2_ethdev.h
/dpdk/drivers/net/dpaa2/dpaa2_rxtx.c
/dpdk/drivers/net/dpaa2/mc/dpni.c
/dpdk/drivers/net/dpaa2/mc/fsl_dpni.h
/dpdk/drivers/net/dpaa2/mc/fsl_dpni_cmd.h
/dpdk/drivers/net/hns3/hns3_ethdev.c
/dpdk/drivers/net/hns3/hns3_ethdev.h
/dpdk/drivers/net/hns3/hns3_ethdev_dump.c
/dpdk/drivers/net/hns3/hns3_ethdev_vf.c
/dpdk/drivers/net/hns3/hns3_flow.c
/dpdk/drivers/net/hns3/hns3_rss.c
/dpdk/drivers/net/hns3/hns3_rss.h
/dpdk/drivers/net/hns3/hns3_rxtx.c
/dpdk/drivers/net/hns3/hns3_rxtx.h
/dpdk/drivers/net/hns3/hns3_stats.c
/dpdk/drivers/net/hns3/hns3_stats.h
/dpdk/drivers/net/iavf/iavf.h
/dpdk/drivers/net/iavf/iavf_ethdev.c
/dpdk/drivers/net/iavf/iavf_rxtx.c
/dpdk/drivers/net/iavf/iavf_rxtx.h
/dpdk/drivers/net/iavf/iavf_rxtx_vec_common.h
/dpdk/drivers/net/iavf/iavf_vchnl.c
/dpdk/drivers/net/ice/ice_dcf.c
/dpdk/drivers/net/ice/ice_dcf.h
/dpdk/drivers/net/ice/ice_dcf_ethdev.c
/dpdk/drivers/net/ice/ice_dcf_ethdev.h
/dpdk/drivers/net/ice/ice_ethdev.c
/dpdk/drivers/net/ixgbe/rte_pmd_ixgbe.h
/dpdk/drivers/net/ixgbe/version.map
mlx5_flow_dv.c
/dpdk/drivers/net/netvsc/hn_ethdev.c
/dpdk/drivers/net/netvsc/hn_var.h
/dpdk/drivers/net/netvsc/hn_vf.c
/dpdk/drivers/net/nfp/nfp_common.c
/dpdk/drivers/net/nfp/nfp_common.h
/dpdk/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
/dpdk/drivers/net/tap/rte_eth_tap.c
/dpdk/drivers/net/tap/tap_intr.c
/dpdk/drivers/net/vhost/rte_eth_vhost.c
/dpdk/drivers/net/virtio/meson.build
/dpdk/drivers/net/virtio/virtio_user/vhost_kernel.c
/dpdk/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
/dpdk/drivers/net/virtio/virtio_user/vhost_kernel_tap.h
/dpdk/drivers/net/virtio/virtio_user/vhost_user.c
/dpdk/drivers/vdpa/mlx5/mlx5_vdpa.c
/dpdk/drivers/vdpa/mlx5/mlx5_vdpa.h
/dpdk/drivers/vdpa/mlx5/mlx5_vdpa_event.c
/dpdk/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
/dpdk/drivers/vdpa/mlx5/mlx5_vdpa_steer.c
/dpdk/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
/dpdk/examples/l2fwd-crypto/main.c
/dpdk/examples/vhost/main.c
/dpdk/examples/vhost/main.h
/dpdk/examples/vhost_blk/blk_spec.h
/dpdk/lib/eal/common/malloc_elem.h
/dpdk/lib/eal/common/malloc_heap.c
/dpdk/lib/eal/freebsd/eal_memory.c
/dpdk/lib/eal/include/rte_common.h
/dpdk/lib/eal/include/rte_dev.h
/dpdk/lib/eal/linux/eal_memory.c
/dpdk/lib/ethdev/ethdev_profile.h
/dpdk/lib/ethdev/rte_ethdev.c
/dpdk/lib/security/rte_security.h
/dpdk/lib/vhost/rte_vhost_async.h
/dpdk/lib/vhost/version.map
/dpdk/lib/vhost/vhost.c
/dpdk/lib/vhost/vhost_user.c
/dpdk/lib/vhost/vhost_user.h
7a99336825-Apr-2022 Michael Baum <[email protected]>

net/mlx5: fix LRO configuration in drop Rx queue

The driver wrongly set the LRO configurations to the TIR of the DevX
drop queue even when LRO is not supported.
Actually, the LRO configuration is no

net/mlx5: fix LRO configuration in drop Rx queue

The driver wrongly set the LRO configurations to the TIR of the DevX
drop queue even when LRO is not supported.
Actually, the LRO configuration is not relevant to the drop queue at
all.

This causes failure in the initialization of the device, which doesn't
support LRO where the drop queue is created.

Probably, the drop queue creation by DevX missed the fact that LRO is
set by default in the TIR creation function and didn't unset it in the
drop queue case like other cases that unset LRO.

Move the default LRO configuration to unset it and set it only in the
case of all the TIR queues configured with LRO.

Fixes: bc5bee028ebc ("net/mlx5: create drop queue using DevX")
Cc: [email protected]

Signed-off-by: Michael Baum <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

a213b86825-Apr-2022 Michael Baum <[email protected]>

net/mlx5: fix LRO validation in Rx setup

The mlx5_rx_queue_setup() get LRO offload from user.

When LRO is configured, the LRO flag in rxq_data is set to 1.

This patch adds validation to make sure

net/mlx5: fix LRO validation in Rx setup

The mlx5_rx_queue_setup() get LRO offload from user.

When LRO is configured, the LRO flag in rxq_data is set to 1.

This patch adds validation to make sure the LRO is supported.

Fixes: 17ed314 ("net/mlx5: allow LRO per Rx queue")
Cc: [email protected]

Signed-off-by: Michael Baum <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

d2fa263221-Apr-2022 Dariusz Sosnowski <[email protected]>

net/mlx5: fix RSS hash types adjustment

When an indirect action was created with an RSS action configured to
hash on both source and destination L3 addresses (or L4 ports), it caused
shared hrxq to

net/mlx5: fix RSS hash types adjustment

When an indirect action was created with an RSS action configured to
hash on both source and destination L3 addresses (or L4 ports), it caused
shared hrxq to be configured to hash only on destination address
(or port).

This patch fixes this behavior by refining RSS types specified in
configuration before calculating hash types used for hrxq. Refining RSS
types removes *_SRC_ONLY and *_DST_ONLY flags if they are both set.

Fixes: 212d17b6a650 ("net/mlx5: fix missing shared RSS hash types")
Cc: [email protected]

Signed-off-by: Dariusz Sosnowski <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

773a7de220-Apr-2022 Raja Zidane <[email protected]>

net/mlx5: fix Rx/Tx stats concurrency

Queue statistics are being continuously updated in Rx/Tx burst
routines while handling traffic. In addition to that, statistics
can be reset (written with zeroe

net/mlx5: fix Rx/Tx stats concurrency

Queue statistics are being continuously updated in Rx/Tx burst
routines while handling traffic. In addition to that, statistics
can be reset (written with zeroes) on statistics reset in other
threads, causing a race condition, which in turn could result in
wrong stats.

The patch provides an approach with reference values, allowing
the actual counters to be writable within Rx/Tx burst threads
only, and updating reference values on stats reset.

Fixes: 87011737b715 ("mlx5: add software counters")
Cc: [email protected]

Signed-off-by: Raja Zidane <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

26f22fa613-Apr-2022 Dariusz Sosnowski <[email protected]>

net/mlx5: fix GTP handling in header modify action

GTP items were ignored during conversion of modify header actions. This
caused modify TTL action to generate a wrong modify header command when
tun

net/mlx5: fix GTP handling in header modify action

GTP items were ignored during conversion of modify header actions. This
caused modify TTL action to generate a wrong modify header command when
tunnel and inner headers used different IP versions.

This patch adds GTP item handling to modify header action conversion.

Fixes: 04233f36c712 ("net/mlx5: fix layer type in header modify action")
Cc: [email protected]

Signed-off-by: Dariusz Sosnowski <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

cb91f12f10-Apr-2022 Adham Masarwah <[email protected]>

net/mlx5: support MTU settings on Windows

Mlx5Devx library has new API's for setting and getting MTU.
Added new glue functions that wrap the new mlx5devx lib API's.
Implemented the os_ethdev callbac

net/mlx5: support MTU settings on Windows

Mlx5Devx library has new API's for setting and getting MTU.
Added new glue functions that wrap the new mlx5devx lib API's.
Implemented the os_ethdev callbacks to use the new glue
functions in Windows.

Signed-off-by: Adham Masarwah <[email protected]>
Tested-by: Idan Hackmon <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

3014718f10-Apr-2022 Adham Masarwah <[email protected]>

net/mlx5: support promiscuous modes on Windows

Support of the set promiscuous modes by calling the new API
In Mlx5DevX Lib.
Added new glue API for Windows which will be used to communicate
with Wind

net/mlx5: support promiscuous modes on Windows

Support of the set promiscuous modes by calling the new API
In Mlx5DevX Lib.
Added new glue API for Windows which will be used to communicate
with Windows driver to enable/disable PROMISC or ALLMC.

Signed-off-by: Adham Masarwah <[email protected]>
Tested-by: Idan Hackmon <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

d37b0b4d10-Apr-2022 Michael Baum <[email protected]>

net/mlx5: remove redundant check for hairpin queue

The mlx5_rxq_is_hairpin() function checks whether RxQ type is Hairpin.
It is done by reading a flag in Rx control structure coming from
mlx5_rxq_ct

net/mlx5: remove redundant check for hairpin queue

The mlx5_rxq_is_hairpin() function checks whether RxQ type is Hairpin.
It is done by reading a flag in Rx control structure coming from
mlx5_rxq_ctrl_get() function.

The function verifies that the queue index is valid even though it has
been checked within the mlx5_rxq_ctrl_get() function.

This patch removes the redundant check.

Signed-off-by: Michael Baum <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

1573b07210-Apr-2022 Michael Baum <[email protected]>

net/mlx5: restrict Rx queue array access to boundary

The mlx5_rxq_get() function gets RxQ index and return RxQ priv
accordingly.

When it gets an invalid index, it accesses out of array bounds which

net/mlx5: restrict Rx queue array access to boundary

The mlx5_rxq_get() function gets RxQ index and return RxQ priv
accordingly.

When it gets an invalid index, it accesses out of array bounds which
might cause undefined behavior.

This patch adds a check for invalid indexes before accessing to array.

Fixes: 0cedf34da78f ("net/mlx5: move Rx queue reference count")
Cc: [email protected]

Signed-off-by: Michael Baum <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

1b0037b110-Apr-2022 Michael Baum <[email protected]>

net/mlx5: fix setting flags to external Rx queue

The flow_drv_rxq_flags_set sets the Rx queue flags (Mark/Flag and Tunnel
Ptypes) according to the device flow.

It tries to get the RxQ control struc

net/mlx5: fix setting flags to external Rx queue

The flow_drv_rxq_flags_set sets the Rx queue flags (Mark/Flag and Tunnel
Ptypes) according to the device flow.

It tries to get the RxQ control structure to update its ptype. However,
external RxQs don't have control structure to update and it may cause a
crash.

This patch add check whether this Queue is external.

Fixes: 311b17e669ab ("net/mlx5: support queue/RSS actions for external Rx queue")
Cc: [email protected]

Signed-off-by: Michael Baum <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

4fa1452b06-Apr-2022 Shun Hao <[email protected]>

net/mlx5: fix counter in non-termination meter

In rte_flow, if a counter action is before a meter which has
non-termination policy, the counter value only includes packets not
being dropped.

This p

net/mlx5: fix counter in non-termination meter

In rte_flow, if a counter action is before a meter which has
non-termination policy, the counter value only includes packets not
being dropped.

This patch fixes this issue by differentiating the order of counter and
non-termination meter:
1. counter + meter, counts all packets hitting this flow.
2. meter + counter, only counts packets not being dropped.

Fixes: 51ec04dc7bcf ("net/mlx5: connect meter policy to created flows")
Cc: [email protected]

Signed-off-by: Shun Hao <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

f956d3d406-Apr-2022 Rongwei Liu <[email protected]>

net/mlx5: fix probing with secondary bonding member

Users can probe primary or secondary PCIe id when bonding is
configured.
1. -a 0a:00.0,representor=pf[0-1]vf[0-1], PMD probes 5 ports
totally: bon

net/mlx5: fix probing with secondary bonding member

Users can probe primary or secondary PCIe id when bonding is
configured.
1. -a 0a:00.0,representor=pf[0-1]vf[0-1], PMD probes 5 ports
totally: bonding device plus 4 representor ports.
2. -a 0a:00.1,representor=pf[0-1]vf[0-1], PMD only probes 2
representor ports.

Under the 2nd condition, bonding IB device doesn't have the same
PCIe id and PMD needs to check bonding relationship otherwise
probe failure.

Fixes: 6856efa54eea ("net/mlx5: fix PF leak on PCI probing failure")
Cc: [email protected]

Signed-off-by: Rongwei Liu <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

e2259f9331-Mar-2022 Dmitry Kozlyuk <[email protected]>

net/mlx5: fix Tx when inlining is impossible

When txq_inline_max is too large and an mbuf is multi-segment
it may be impossible to inline data and build a valid WQE,
because WQE length would be larg

net/mlx5: fix Tx when inlining is impossible

When txq_inline_max is too large and an mbuf is multi-segment
it may be impossible to inline data and build a valid WQE,
because WQE length would be larger then HW can represent.
It is impossible to detect misconfiguration at startup,
because the condition depends on the mbuf composition.
The check on the data path to prevent the error
treated the length limit as expressed in 64B units,
while the calculated length and limit are in 16B units.
Fix the condition to avoid subsequent TxQ failure and recovery.

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")
Cc: [email protected]

Signed-off-by: Dmitry Kozlyuk <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

3a29cb3a11-Mar-2022 Alexander Kozyrev <[email protected]>

net/mlx5: handle MPRQ incompatibility with external buffers

Multi-Packet Rx queue uses PMD-managed buffers to store packets.
These buffers are externally attached to user mbufs.
This conflicts with

net/mlx5: handle MPRQ incompatibility with external buffers

Multi-Packet Rx queue uses PMD-managed buffers to store packets.
These buffers are externally attached to user mbufs.
This conflicts with the feature that allows using user-managed
externally attached buffers in an application.
Fall back to SPRQ in case external buffers mempool is configured.
The limitation is already documented in mlx5 guide.

Signed-off-by: Alexander Kozyrev <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...


/dpdk/.ci/linux-build.sh
/dpdk/.ci/linux-setup.sh
/dpdk/.github/workflows/build.yml
/dpdk/.travis.yml
/dpdk/ABI_VERSION
/dpdk/MAINTAINERS
/dpdk/VERSION
/dpdk/app/test/test_bpf.c
/dpdk/devtools/libabigail.abignore
/dpdk/doc/guides/freebsd_gsg/build_dpdk.rst
/dpdk/doc/guides/freebsd_gsg/intro.rst
/dpdk/doc/guides/howto/pvp_reference_benchmark.rst
/dpdk/doc/guides/linux_gsg/build_dpdk.rst
/dpdk/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
/dpdk/doc/guides/linux_gsg/enable_func.rst
/dpdk/doc/guides/linux_gsg/intro.rst
/dpdk/doc/guides/linux_gsg/linux_drivers.rst
/dpdk/doc/guides/linux_gsg/sys_reqs.rst
/dpdk/doc/guides/nics/intel_vf.rst
/dpdk/doc/guides/prog_guide/cryptodev_lib.rst
/dpdk/doc/guides/rel_notes/index.rst
/dpdk/doc/guides/rel_notes/release_22_03.rst
/dpdk/doc/guides/rel_notes/release_22_07.rst
/dpdk/drivers/common/iavf/virtchnl.h
/dpdk/drivers/gpu/cuda/cuda.c
/dpdk/drivers/gpu/cuda/devices.h
/dpdk/drivers/net/cnxk/cn10k_rx.h
/dpdk/drivers/net/cnxk/cnxk_ethdev_mtr.c
/dpdk/drivers/net/dpaa2/dpaa2_mux.c
/dpdk/drivers/net/i40e/i40e_flow.c
/dpdk/drivers/net/i40e/i40e_rxtx.c
/dpdk/drivers/net/i40e/i40e_rxtx_vec_altivec.c
/dpdk/drivers/net/i40e/i40e_rxtx_vec_avx2.c
/dpdk/drivers/net/i40e/i40e_rxtx_vec_avx512.c
/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c
/dpdk/drivers/net/i40e/i40e_rxtx_vec_sse.c
/dpdk/drivers/net/iavf/iavf.h
/dpdk/drivers/net/iavf/iavf_ethdev.c
/dpdk/drivers/net/iavf/iavf_rxtx.c
/dpdk/drivers/net/iavf/iavf_tm.c
/dpdk/drivers/net/iavf/iavf_vchnl.c
/dpdk/drivers/net/ice/ice_ethdev.c
/dpdk/drivers/net/ice/ice_ethdev.h
/dpdk/drivers/net/ice/ice_fdir_filter.c
/dpdk/drivers/net/ice/ice_generic_flow.c
/dpdk/drivers/net/ice/ice_hash.c
/dpdk/drivers/net/ice/ice_rxtx.c
/dpdk/drivers/net/ixgbe/base/ixgbe_phy.c
mlx5_rx.h
mlx5_rxq.c
/dpdk/drivers/net/netvsc/hn_rxtx.c
/dpdk/drivers/net/sfc/sfc_mae.c
/dpdk/drivers/raw/ifpga/ifpga_rawdev.c
/dpdk/examples/bond/main.c
/dpdk/lib/eal/common/eal_common_launch.c
/dpdk/lib/eal/common/eal_common_thread.c
/dpdk/lib/eal/common/eal_thread.h
/dpdk/lib/eal/freebsd/eal.c
/dpdk/lib/eal/freebsd/eal_thread.c
/dpdk/lib/eal/include/generic/rte_spinlock.h
/dpdk/lib/eal/include/rte_common.h
/dpdk/lib/eal/linux/eal.c
/dpdk/lib/eal/linux/eal_thread.c
/dpdk/lib/eal/unix/eal_unix_thread.c
/dpdk/lib/eal/unix/meson.build
/dpdk/lib/eal/windows/eal.c
/dpdk/lib/eal/windows/eal_thread.c
/dpdk/lib/eal/windows/eal_windows.h
/dpdk/lib/eal/windows/include/rte_windows.h
/dpdk/lib/eal/x86/include/rte_atomic_32.h
/dpdk/lib/eal/x86/include/rte_atomic_64.h
9011af7109-Mar-2022 Thinh Tran <[email protected]>

net/mlx5: fix CPU socket ID for Rx queue creation

The default CPU socket ID was used while creating the Rx queue and this caused
creation failure in case if hardware was not resided on the default s

net/mlx5: fix CPU socket ID for Rx queue creation

The default CPU socket ID was used while creating the Rx queue and this caused
creation failure in case if hardware was not resided on the default socket.

The patch sets the correct CPU socket ID for the mlx5_rxq_ctrl before
calling the mlx5_rxq_create_devx_rq_resources() which eventually calls
mlx5_devx_rq_create() with correct CPU socket ID.

Fixes: bc5bee028ebc ("net/mlx5: create drop queue using DevX")
Cc: [email protected]

Signed-off-by: Thinh Tran <[email protected]>
Reviewed-by: David Christensen <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

04c0d3f207-Mar-2022 Jiawei Wang <[email protected]>

net/mlx5: fix port matching in sample flow rule

If there are an explicit port match and sample action in the same flow,
mlx5 PMD pushes the explicit port match in the prefix subflow, and
uses the ta

net/mlx5: fix port matching in sample flow rule

If there are an explicit port match and sample action in the same flow,
mlx5 PMD pushes the explicit port match in the prefix subflow, and
uses the tag item match in the suffix subflow.

The explicit port match was translated into source vport match so
the sample suffix subflow lost this match after flow split.

This patch copies the explicit port match to the sample suffix subflow,
and the latter gets the correct source vport value in the flow matcher.

Fixes: b4c0ddbfcc58 ("net/mlx5: split sample flow into two sub-flows")
Cc: [email protected]

Signed-off-by: Jiawei Wang <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

0f845cc710-Mar-2022 Jiawei Wang <[email protected]>

net/mlx5: fix implicit tag insertion with sample action

A flow rule with sample action was split into two sub-flows,
and the implicit tag action with unique id was added in the prefix
sub-flow, the

net/mlx5: fix implicit tag insertion with sample action

A flow rule with sample action was split into two sub-flows,
and the implicit tag action with unique id was added in the prefix
sub-flow, the suffix sub-flow used the tag item to match with that
unique id, and the implicit set tag action was inserted next to
the sample action.

While there's either PUSH VLAN action or ENCAP action preceding the
sample action, implicit set tag action was added after PUSH VLAN or
ENCAP actions, causing flow creation failure due to rdma-core
does not support this action order.

This patch ensures the implicit set tag action is inserted before
either PUSH VLAN or encap action (if any) in the prefix sub-flow.

Fixes: 6a951567c159 ("net/mlx5: support E-Switch mirroring and jump in one flow")
Cc: [email protected]

Signed-off-by: Jiawei Wang <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

4a9e5c9909-Mar-2022 Rongwei Liu <[email protected]>

net/mlx5: forbid multiple ASO actions in a single rule

For now, only one ASO action is supported in a single flow rule.
Flow rule with more than one ASO action should be rejected in the
validation s

net/mlx5: forbid multiple ASO actions in a single rule

For now, only one ASO action is supported in a single flow rule.
Flow rule with more than one ASO action should be rejected in the
validation stage.

Flow rule with action non-shared AGE and COUNT together should be
treated as non-ASO because AGE will fall back to use HW counter,
not ASO hit object.

Group 0 will use HW counter for AGE action even if no COUNT action.

This commit will reject patterns (no matter which group if transfer)
like:
1. group 1 pattern... / end actions age / meter / end
2. group 1 pattern... / end actions conntrack / meter / end
3. group 1 pattern... / end actions age / conntrack... / end

If AGE comes together with COUNT in the above patterns, it's allowed.

Fixes: daed4b6e ("net/mlx5: use aging by counter when counter exists")
Cc: [email protected]

Signed-off-by: Rongwei Liu <[email protected]>
Acked-by: Xiaoyu Min <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

9a72636009-Mar-2022 Jiawei Wang <[email protected]>

net/mlx5: fix sample flow action on trusted device

A flow rule with sample action will be split into two sub flows,
and a tag action was added implicitly in the sample prefix sub flow,
the reserved

net/mlx5: fix sample flow action on trusted device

A flow rule with sample action will be split into two sub flows,
and a tag action was added implicitly in the sample prefix sub flow,
the reserved metadata regC index was used for this tag action.

The reserved metadata regC was shared with metering action,
for ConnectX-5 trusted device (VF/SF), the reserved metadata regC was
invalid since PF only supported the legacy metering.

This patch adds the checking for the tag index and back to use the
application tag if a failure happened.

Fixes: a9b6ea45bed6 ("net/mlx5: fix tag ID conflict with sample action")
Cc: [email protected]

Signed-off-by: Jiawei Wang <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

7c0c63c909-Mar-2022 Dariusz Sosnowski <[email protected]>

net/mlx5: fix VLAN push action validation

Flow domain and direction was validated when OF_PUSH_VLAN action
appears in flow actions. Flow was rejected whenever this action:

- was used in NIC domain,

net/mlx5: fix VLAN push action validation

Flow domain and direction was validated when OF_PUSH_VLAN action
appears in flow actions. Flow was rejected whenever this action:

- was used in NIC domain, in ingress direction;
- was used in FDB domain, in ingress direction, on ConnectX-5.

This validation logic rejected a valid case when the OF_PUSH_VLAN
action was used when directing traffic to the hairpin queue,
configured in TX implicit mode.

This patch moves code responsible for OF_PUSH_VLAN validation of
domain and direction from flow_dv_validate_push_vlan() to
flow_dv_validate(). Domain and direction are now validated when either
non-hairpin queue is used or hairpin queue is configured in Tx explicit
mode.

Fixes: 96f85ec489db ("net/mlx5: check VLAN push/pop support")
Cc: [email protected]

Signed-off-by: Dariusz Sosnowski <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

c3130c7807-Mar-2022 Rongwei Liu <[email protected]>

net/mlx5: fix meter creation default state

Disable means there is no packet drop in the meter. Meter is
active always but programmed with another CIR/CBS value.

If the user wants to disable the met

net/mlx5: fix meter creation default state

Disable means there is no packet drop in the meter. Meter is
active always but programmed with another CIR/CBS value.

If the user wants to disable the meter in creation, PMD calls
the disable() API manually after meter initialized.

Fixes: 444320186393 ("net/mlx5: support meter creation with policy")
Cc: [email protected]

Signed-off-by: Rongwei Liu <[email protected]>
Acked-by: Matan Azrad <[email protected]>

show more ...

3ef1894003-Mar-2022 Bing Zhao <[email protected]>

net/mlx5: fix configuration without Rx queue

None Rx queue configured in a DPDK application should be supported.
In this mode, the NIC can be used to generate packets without
receiving any ingress t

net/mlx5: fix configuration without Rx queue

None Rx queue configured in a DPDK application should be supported.
In this mode, the NIC can be used to generate packets without
receiving any ingress traffic.

In the current implementation, once there is no Rx queue specified,
the array to store the queues' pointers is NULL after allocation.
Then the checking of the array allocation prevents the application
from starting up.

By adding another condition checking of the Rx queue number, the
application with none Rx queue can start up successfully.

Fixes: 4cda06c3c35e ("net/mlx5: split Rx queue into shareable and private")
Cc: [email protected]

Signed-off-by: Bing Zhao <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>

show more ...

12345678910>>...96