History log of /dpdk/lib/ (Results 1 – 25 of 9276)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
21cab84f24-Jan-2025 Tyler Retzlaff <roretzla@linux.microsoft.com>

bitops: find first set bit

Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in
intrinsics.
Add associated unit tests.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Si

bitops: find first set bit

Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in
intrinsics.
Add associated unit tests.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>

show more ...

feb9fd6a24-Jan-2025 Tyler Retzlaff <roretzla@linux.microsoft.com>

eal/x86: add write combining store for MSVC

MSVC does not support inline assembly. Instead it provides compiler
intrinsics. Provide conditional compile for MSVC for movdiri using the
_directstoreu_u

eal/x86: add write combining store for MSVC

MSVC does not support inline assembly. Instead it provides compiler
intrinsics. Provide conditional compile for MSVC for movdiri using the
_directstoreu_u32 intrinsic.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>

show more ...


/dpdk/drivers/common/idpf/idpf_common_rxtx_avx512.c
/dpdk/drivers/net/axgbe/axgbe_rxtx.h
/dpdk/drivers/net/cpfl/cpfl_rxtx_vec_common.h
/dpdk/drivers/net/dpaa2/dpaa2_rxtx.c
/dpdk/drivers/net/fm10k/fm10k_rxtx_vec.c
/dpdk/drivers/net/hns3/hns3_rxtx_vec_neon.h
/dpdk/drivers/net/i40e/i40e_recycle_mbufs_vec_common.c
/dpdk/drivers/net/i40e/i40e_rxtx_common_avx.h
/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_common.h
/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c
/dpdk/drivers/net/i40e/i40e_rxtx_vec_sse.c
/dpdk/drivers/net/iavf/iavf_rxtx_vec_avx2.c
/dpdk/drivers/net/iavf/iavf_rxtx_vec_avx512.c
/dpdk/drivers/net/iavf/iavf_rxtx_vec_common.h
/dpdk/drivers/net/iavf/iavf_rxtx_vec_neon.c
/dpdk/drivers/net/iavf/iavf_rxtx_vec_sse.c
/dpdk/drivers/net/ice/ice_rxtx_common_avx.h
/dpdk/drivers/net/ice/ice_rxtx_vec_avx2.c
/dpdk/drivers/net/ice/ice_rxtx_vec_avx512.c
/dpdk/drivers/net/ice/ice_rxtx_vec_common.h
/dpdk/drivers/net/ice/ice_rxtx_vec_sse.c
/dpdk/drivers/net/idpf/idpf_rxtx_vec_common.h
/dpdk/drivers/net/ixgbe/ixgbe_recycle_mbufs_vec_common.c
/dpdk/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
/dpdk/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c
/dpdk/drivers/net/mlx5/mlx5_flow.c
/dpdk/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
/dpdk/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
/dpdk/drivers/net/mlx5/mlx5_rxtx_vec_sse.h
/dpdk/drivers/net/ngbe/ngbe_rxtx_vec_neon.c
/dpdk/drivers/net/tap/tap_flow.c
/dpdk/drivers/net/txgbe/txgbe_rxtx_vec_neon.c
/dpdk/drivers/net/virtio/virtio_rxtx_simple.c
eal/x86/include/rte_io.h
a1b873f121-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

eal: add casting and GCC diagnostics macros

"GCC diagnostic ignored" pragmas have been commonly sprinkled
over the code.
Clang supports GCC's pragma for compatibility with existing
source code, so #

eal: add casting and GCC diagnostics macros

"GCC diagnostic ignored" pragmas have been commonly sprinkled
over the code.
Clang supports GCC's pragma for compatibility with existing
source code, so #pragma GCC diagnostic and #pragma clang
diagnostic are synonyms for Clang
(https://clang.llvm.org/docs/UsersManual.html).

Now that effort is being made to make the code compatible with MSVC
these expressions would become more complex. It makes sense to hide
this complexity behind macros. This makes maintenance easier as these
macros are defined in a single place. As a plus the code becomes
more readable as well.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>

show more ...

4d2aa15014-Jan-2025 Ariel Otilibili <otilibil@eurecom.fr>

vhost: remove check around mutex init

pthread_mutex_init always returns 0. The other mutex functions
return 0 on success and a non-zero error code on error.

Link: https://man7.org/linux/man-pages/m

vhost: remove check around mutex init

pthread_mutex_init always returns 0. The other mutex functions
return 0 on success and a non-zero error code on error.

Link: https://man7.org/linux/man-pages/man3/pthread_mutex_lock.3.html
Bugzilla ID: 1586

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

show more ...

c171a2d519-Dec-2024 Stephen Hemminger <stephen@networkplumber.org>

vhost: use strlcpy instead of strncpy

Some tools such as gcc address sanitizer will complain if strncpy
is used to completely fill a string since it will not be null
terminated. Since the previous c

vhost: use strlcpy instead of strncpy

Some tools such as gcc address sanitizer will complain if strncpy
is used to completely fill a string since it will not be null
terminated. Since the previous code forced as null at end,
use strlcpy() to get the same effect.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>

show more ...

5b85620614-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

eal/x86: fix some intrinsics header include for Windows

Error reported:
../lib/net/net_crc_sse.c:49:17: error: call to undeclared function
'_mm_clmulepi64_si128'; ISO C99 and later do not support im

eal/x86: fix some intrinsics header include for Windows

Error reported:
../lib/net/net_crc_sse.c:49:17: error: call to undeclared function
'_mm_clmulepi64_si128'; ISO C99 and later do not support implicit
function declarations [-Wimplicit-function-declaration]

The fix is to remove the unnecessary ifdef around the inclusion of
header file immintrin.h. This header also contains functions that do
not require AVX instructions, so should not be included only when AVX
is available.

Bugzilla ID: 1595
Fixes: da826b7135a4 ("eal: introduce ymm type for AVX 256-bit")
Cc: stable@dpdk.org

Reported-by: Pier Damouny <pdamouny@nvidia.com>
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>

show more ...

4b4ed9cc22-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

eal: add inlining hints for MSVC

MSVC supports forcing code to be inlined or forcing code to not be
inlined, like other compilers. It does not support the "hot" hint
though.

This patch fixes existi

eal: add inlining hints for MSVC

MSVC supports forcing code to be inlined or forcing code to not be
inlined, like other compilers. It does not support the "hot" hint
though.

This patch fixes existing macros __rte_noinline and
__rte_always_inline so that they also do what is expected from them
when used with MSVC.

__rte_hot is updated to become a noop when MSVC is used.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>

show more ...

6d7e741b16-Jan-2025 Maxime Coquelin <maxime.coquelin@redhat.com>

vhost: improve RARP handling in dequeue paths

With previous refactoring, we can now simplify the RARP
packet injection handling in both the sync and async
dequeue paths.

Signed-off-by: Maxime Coque

vhost: improve RARP handling in dequeue paths

With previous refactoring, we can now simplify the RARP
packet injection handling in both the sync and async
dequeue paths.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Chenbo Xia <chenbox@nvidia.com>

show more ...

6ee0cf8016-Jan-2025 Maxime Coquelin <maxime.coquelin@redhat.com>

vhost: rework dequeue paths error handling

This patch refactors the error handling in the Vhost
dequeue paths to ease its maintenance and readability.

Suggested-by: David Marchand <david.marchand@r

vhost: rework dequeue paths error handling

This patch refactors the error handling in the Vhost
dequeue paths to ease its maintenance and readability.

Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Chenbo Xia <chenbox@nvidia.com>

show more ...

8b96508a16-Jan-2025 Maxime Coquelin <maxime.coquelin@redhat.com>

vhost: reset packets count when not ready

This patch fixes the rte_vhost_dequeue_burst return value
when the virtqueue is not ready. Without it, a discrepancy
between the packet array and its size i

vhost: reset packets count when not ready

This patch fixes the rte_vhost_dequeue_burst return value
when the virtqueue is not ready. Without it, a discrepancy
between the packet array and its size is faced by the caller
of this API when the virtqueue is not ready.

Fixes: 9fc93a1e2320 ("vhost: fix virtqueue access check in datapath")
Cc: stable@dpdk.org

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Chenbo Xia <chenbox@nvidia.com>

show more ...

2742921909-Jan-2025 Maxime Coquelin <maxime.coquelin@redhat.com>

vhost: fix log when setting max queue num

rte_vhost_driver_set_max_queue_num API returns early when
called for a Vhost-user device, as this API is intended to
limit the maximum number of queue pairs

vhost: fix log when setting max queue num

rte_vhost_driver_set_max_queue_num API returns early when
called for a Vhost-user device, as this API is intended to
limit the maximum number of queue pairs supported by VDUSE
devices. However, a log mentioning the maximum number of
queue pairs is being set is emitted unconditionally, which
may confuse the end user.

This patch moves this log after the backend type is
checked, so that it is only called with VDUSE backends.
The check on the requested value is also moved at the same
place.

Fixes: e1808999d36b ("vhost: restrict set max queue pair API to VDUSE")
Cc: stable@dpdk.org

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Chenbo Xia <chenbox@nvidia.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>

show more ...

7023f3e520-Dec-2024 Yunjian Wang <wangyunjian@huawei.com>

vhost: check GSO size validity

The value of tso_segsz cannot be 0, instead check that value of
gso_size was set.

Fixes: d0cf91303d73 ("vhost: add Tx offload capabilities")
Cc: stable@dpdk.org

Sign

vhost: check GSO size validity

The value of tso_segsz cannot be 0, instead check that value of
gso_size was set.

Fixes: d0cf91303d73 ("vhost: add Tx offload capabilities")
Cc: stable@dpdk.org

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

show more ...

1846fe7627-Nov-2024 Jianping Zhao <zhao305149619@gmail.com>

vhost: clear ring addresses when getting vring base

Clear ring addresses during vring base retrieval to handle guest reboot
scenarios correctly. This is particularly important for vdpa-blk devices
w

vhost: clear ring addresses when getting vring base

Clear ring addresses during vring base retrieval to handle guest reboot
scenarios correctly. This is particularly important for vdpa-blk devices
where the following issue occurs:

When a guest OS with vdpa-blk device reboots, during UEFI stage, only
one vring is actually used and configured. However, QEMU still sends
enable messages for all configured queues. The remaining queues retain
their addresses from before reboot, which reference invalid memory
mappings in the rebooted guest.

The issue manifests in vq_is_ready():

static bool
vq_is_ready(struct virtio_net *dev, struct vhost_virtqueue *vq)
{
/* Only checks pointer validity, not address freshness */
rings_ok = vq->desc && vq->avail && vq->used;
...
}

vq_is_ready() incorrectly considers these queues as ready because it
only checks if desc/avail/used pointers are non-NULL, but cannot
detect that these addresses are stale from the previous boot.

Clear the ring addresses in vhost_user_get_vring_base() to force
the guest driver to reconfigure them before use. This ensures that
vq_is_ready() will return false for queues with stale addresses
until they are properly reconfigured by the guest driver.

Fixes: 3ea7052f4b1b ("vhost: postpone rings addresses translation")
Cc: stable@dpdk.org

Signed-off-by: Jianping Zhao <zhao305149619@gmail.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

show more ...

b5458e2c06-Dec-2024 Konstantin Ananyev <konstantin.ananyev@huawei.com>

ring: introduce staged ordered ring

Staged-Ordered-Ring (SORING) provides a SW abstraction for 'ordered' queues
with multiple processing 'stages'.
It is based on conventional DPDK rte_ring, re-uses

ring: introduce staged ordered ring

Staged-Ordered-Ring (SORING) provides a SW abstraction for 'ordered' queues
with multiple processing 'stages'.
It is based on conventional DPDK rte_ring, re-uses many of its concepts,
and even substantial part of its code.
It can be viewed as an 'extension' of rte_ring functionality.
In particular, main SORING properties:
- circular ring buffer with fixed size objects
- producer, consumer plus multiple processing stages in the middle.
- allows to split objects processing into multiple stages.
- objects remain in the same ring while moving from one stage to the other,
initial order is preserved, no extra copying needed.
- preserves the ingress order of objects within the queue across multiple
stages, i.e.:
at the same stage multiple threads can process objects from the ring in
any order, but for the next stage objects will always appear in the
original order.
- each stage (and producer/consumer) can be served by single and/or
multiple threads.
- number of stages, size and number of objects in the ring are
configurable at ring initialization time.

Data-path API provides four main operations:
- enqueue/dequeue works in the same manner as for conventional rte_ring,
all rte_ring synchronization types are supported.
- acquire/release - for each stage there is an acquire (start) and
release (finish) operation.
after some objects are 'acquired' - given thread can safely assume that
it has exclusive possession of these objects till 'release' for them is
invoked.
Note that right now user has to release exactly the same number of
objects that was acquired before.
After 'release', objects can be 'acquired' by next stage and/or dequeued
by the consumer (in case of last stage).

Expected use-case: applications that uses pipeline model
(probably with multiple stages) for packet processing, when preserving
incoming packet order is important. I.E.: IPsec processing, etc.

Signed-off-by: Eimear Morrissey <eimear.morrissey@huawei.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...

700989f506-Dec-2024 Eimear Morrissey <eimear.morrissey@huawei.com>

ring: make dump function more verbose

The current rte_ring_dump function uses the generic rte_ring_headtail
structure to access head/tail positions. This is incorrect for the RTS
case where the head

ring: make dump function more verbose

The current rte_ring_dump function uses the generic rte_ring_headtail
structure to access head/tail positions. This is incorrect for the RTS
case where the head is stored in a different offset in the union of
structs. Switching to a separate function for each sync type allows
to dump correct head/tail values and extra metadata.

Signed-off-by: Eimear Morrissey <eimear.morrissey@huawei.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...

e4251abd06-Dec-2024 Konstantin Ananyev <konstantin.ananyev@huawei.com>

ring: make copying functions generic

Note upfront: that change doesn't introduce any functional
or performance changes.
It is just a code-reordering for:
- improve code modularity and re-usability

ring: make copying functions generic

Note upfront: that change doesn't introduce any functional
or performance changes.
It is just a code-reordering for:
- improve code modularity and re-usability
- ability in future to re-use the same code to introduce new functionality

There is no real need for enqueue_elems()/dequeue_elems()
to get pointer to actual rte_ring structure, instead it is enough to pass
a pointer to actual elements buffer inside the ring.
In return, we'll get a copying functions that could be used for other
queueing abstractions that do have circular ring buffer inside.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...

3197a1ff06-Dec-2024 Konstantin Ananyev <konstantin.ananyev@huawei.com>

ring: deduplicate move head functions

Note upfront: that change doesn't introduce any functional or
performance changes.
It is just a code-reordering for:
- code deduplication
- ability in future

ring: deduplicate move head functions

Note upfront: that change doesn't introduce any functional or
performance changes.
It is just a code-reordering for:
- code deduplication
- ability in future to re-use the same code to introduce new functionality

For each sync mode corresponding move_prod_head() and
move_cons_head() are nearly identical to each other,
the only differences are:
- do we need to use a @capacity to calculate number of entries or not.
- what we need to update (prod/cons) and what is used as
read-only counterpart.
So instead of having 2 copies of nearly identical functions,
introduce a new common one that could be used by both functions:
move_prod_head() and move_cons_head().

As another positive thing - we can get rid of referencing whole rte_ring
structure in that new common sub-function.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...

154303b010-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

eal: deprecate legacy packed attribute

Macro __rte_packed was marked as deprecated and replaced with
__rte_packed_begin/__rte_packed_end.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>


/dpdk/app/test-pmd/csumonly.c
/dpdk/app/test/test_efd.c
/dpdk/app/test/test_hash.c
/dpdk/app/test/test_member.c
/dpdk/doc/guides/nics/ark.rst
/dpdk/doc/guides/rel_notes/release_25_03.rst
/dpdk/drivers/baseband/acc/acc_common.h
/dpdk/drivers/baseband/fpga_5gnr_fec/agx100_pmd.h
/dpdk/drivers/baseband/fpga_5gnr_fec/fpga_5gnr_fec.h
/dpdk/drivers/baseband/fpga_5gnr_fec/vc_5gnr_pmd.h
/dpdk/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
/dpdk/drivers/baseband/la12xx/bbdev_la12xx_ipc.h
/dpdk/drivers/bus/dpaa/include/fsl_bman.h
/dpdk/drivers/bus/dpaa/include/fsl_fman.h
/dpdk/drivers/bus/dpaa/include/fsl_qman.h
/dpdk/drivers/bus/ifpga/bus_ifpga_driver.h
/dpdk/drivers/bus/vmbus/rte_vmbus_reg.h
/dpdk/drivers/common/cnxk/hw/sdp.h
/dpdk/drivers/common/cnxk/roc_npc.h
/dpdk/drivers/common/cnxk/roc_npc_mcam_dump.c
/dpdk/drivers/common/cnxk/roc_platform.h
/dpdk/drivers/common/dpaax/compat.h
/dpdk/drivers/common/iavf/iavf_osdep.h
/dpdk/drivers/common/iavf/virtchnl_inline_ipsec.h
/dpdk/drivers/common/idpf/base/idpf_osdep.h
/dpdk/drivers/common/mlx5/mlx5_common_mr.h
/dpdk/drivers/common/mlx5/mlx5_common_utils.h
/dpdk/drivers/common/mlx5/mlx5_prm.h
/dpdk/drivers/common/qat/qat_adf/icp_qat_fw_la.h
/dpdk/drivers/common/qat/qat_common.h
/dpdk/drivers/compress/qat/qat_comp.h
/dpdk/drivers/crypto/caam_jr/caam_jr.c
/dpdk/drivers/crypto/caam_jr/caam_jr_desc.h
/dpdk/drivers/crypto/caam_jr/caam_jr_hw_specific.h
/dpdk/drivers/crypto/dpaa_sec/dpaa_sec.h
/dpdk/drivers/crypto/ionic/ionic_crypto_if.h
/dpdk/drivers/crypto/mlx5/mlx5_crypto.h
/dpdk/drivers/crypto/mlx5/mlx5_crypto_gcm.c
/dpdk/drivers/crypto/qat/qat_sym.h
/dpdk/drivers/crypto/qat/qat_sym_session.h
/dpdk/drivers/dma/dpaa/dpaa_qdma.h
/dpdk/drivers/dma/dpaa2/dpaa2_qdma.h
/dpdk/drivers/dma/ioat/ioat_hw_defs.h
/dpdk/drivers/event/octeontx/timvf_evdev.c
/dpdk/drivers/event/octeontx/timvf_evdev.h
/dpdk/drivers/mempool/octeontx/octeontx_fpavf.c
/dpdk/drivers/net/ark/ark_ddm.h
/dpdk/drivers/net/ark/ark_pktchkr.h
/dpdk/drivers/net/ark/ark_pktdir.h
/dpdk/drivers/net/ark/ark_pktgen.h
/dpdk/drivers/net/ark/ark_udm.h
/dpdk/drivers/net/atlantic/hw_atl/hw_atl_utils.h
/dpdk/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
/dpdk/drivers/net/avp/rte_avp_common.h
/dpdk/drivers/net/bnxt/bnxt.h
/dpdk/drivers/net/bnxt/hsi_struct_def_dpdk.h
/dpdk/drivers/net/bnxt/tf_core/tf_resources.h
/dpdk/drivers/net/bnxt/tf_core/v3/tfc_mpc_table.c
/dpdk/drivers/net/bonding/rte_eth_bond_8023ad.h
/dpdk/drivers/net/cnxk/cn10k_rxtx.h
/dpdk/drivers/net/cnxk/cn20k_rxtx.h
/dpdk/drivers/net/cnxk/cn9k_ethdev.h
/dpdk/drivers/net/cnxk/cnxk_rep_msg.h
/dpdk/drivers/net/dpaa/dpaa_rxtx.h
/dpdk/drivers/net/dpaa/fmlib/fm_ext.h
/dpdk/drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h
/dpdk/drivers/net/dpaa2/dpaa2_recycle.c
/dpdk/drivers/net/enic/base/vnic_devcmd.h
/dpdk/drivers/net/enic/base/vnic_flowman.h
/dpdk/drivers/net/gve/base/gve_osdep.h
/dpdk/drivers/net/hns3/hns3_mbx.h
/dpdk/drivers/net/hns3/hns3_rxtx.h
/dpdk/drivers/net/i40e/base/i40e_osdep.h
/dpdk/drivers/net/iavf/iavf_ipsec_crypto.h
/dpdk/drivers/net/iavf/iavf_rxtx.c
/dpdk/drivers/net/ice/base/ice_osdep.h
/dpdk/drivers/net/ionic/ionic_if.h
/dpdk/drivers/net/memif/memif.h
/dpdk/drivers/net/mlx4/mlx4_mr.h
/dpdk/drivers/net/mlx5/hws/mlx5dr.h
/dpdk/drivers/net/mlx5/mlx5.h
/dpdk/drivers/net/mlx5/mlx5_flow.h
/dpdk/drivers/net/mlx5/mlx5_hws_cnt.h
/dpdk/drivers/net/mlx5/mlx5_utils.h
/dpdk/drivers/net/netvsc/hn_nvs.h
/dpdk/drivers/net/netvsc/ndis.h
/dpdk/drivers/net/nfp/flower/nfp_flower_cmsg.h
/dpdk/drivers/net/nfp/flower/nfp_flower_flow.h
/dpdk/drivers/net/nfp/nfd3/nfp_nfd3.h
/dpdk/drivers/net/nfp/nfp_rxtx.h
/dpdk/drivers/net/nfp/nfpcore/nfp_nsp.c
/dpdk/drivers/net/ntnic/dbsconfig/ntnic_dbsconfig.c
/dpdk/drivers/net/octeon_ep/otx_ep_mbox.h
/dpdk/drivers/net/octeontx/base/octeontx_pki_var.h
/dpdk/drivers/net/pfe/pfe_hif.h
/dpdk/drivers/net/virtio/virtio.h
/dpdk/drivers/net/virtio/virtio_cvq.h
/dpdk/drivers/net/virtio/virtio_user/vhost_user.c
/dpdk/drivers/net/zxdh/zxdh_common.c
/dpdk/drivers/net/zxdh/zxdh_msg.h
/dpdk/drivers/net/zxdh/zxdh_pci.h
/dpdk/drivers/net/zxdh/zxdh_queue.h
/dpdk/drivers/net/zxdh/zxdh_rxtx.h
/dpdk/drivers/raw/ifpga/afu_pmd_n3000.h
/dpdk/drivers/raw/ifpga/base/opae_hw_api.h
/dpdk/drivers/regex/cn9k/cn9k_regexdev.c
/dpdk/drivers/regex/mlx5/mlx5_rxp.h
/dpdk/drivers/vdpa/ifc/base/ifcvf.h
/dpdk/drivers/vdpa/mlx5/mlx5_vdpa.h
/dpdk/examples/common/neon/port_group.h
/dpdk/examples/ip_pipeline/cli.c
/dpdk/examples/ipsec-secgw/ipsec.h
/dpdk/examples/l3fwd-power/main.c
/dpdk/examples/l3fwd/l3fwd_route.h
/dpdk/examples/ptpclient/ptpclient.c
/dpdk/examples/vhost_blk/blk_spec.h
eal/include/rte_common.h
fba9875510-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

lib: replace packed attributes

MSVC struct packing is not compatible with GCC. Replace macro
__rte_packed with __rte_packed_begin to push existing pack value
and set packing to 1-byte and macro __rt

lib: replace packed attributes

MSVC struct packing is not compatible with GCC. Replace macro
__rte_packed with __rte_packed_begin to push existing pack value
and set packing to 1-byte and macro __rte_packed_end to restore
the pack value prior to the push.

Macro __rte_packed_end is deliberately utilized to trigger a
MSVC compiler warning if no existing packing has been pushed allowing
easy identification of locations where the __rte_packed_begin is
missing.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>

show more ...

3cd0547a10-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

net: remove packed attribute on IPv6 scope

This change affects the storage size of a variable of enum
rte_ipv6_mc_scope (at least with gcc). It should be OK from an ABI POV
though: there is one (inl

net: remove packed attribute on IPv6 scope

This change affects the storage size of a variable of enum
rte_ipv6_mc_scope (at least with gcc). It should be OK from an ABI POV
though: there is one (inline) helper using this type, and nothing else
in DPDK takes a IPv6 multicast scope as input.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>

show more ...

5dc68f2b10-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

eal: remove some packed attributes

Removed the packed attributes from some structures that don't need
them.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>

fac4bc0d10-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

eal: add packing macros for MSVC

MSVC struct packing is not compatible with GCC. Add macro
__rte_packed_begin which can be used to push existing pack value
and set packing to 1-byte. Add macro __rte

eal: add packing macros for MSVC

MSVC struct packing is not compatible with GCC. Add macro
__rte_packed_begin which can be used to push existing pack value
and set packing to 1-byte. Add macro __rte_packed_end to restore
the pack value prior to the push.

Macro __rte_packed_end is deliberately utilized to trigger a
MSVC compiler warning if no existing packing has been pushed allowing
easy identification of locations where the __rte_packed_begin is
missing.

Ensure __rte_packed_begin and __rte_packed_end show up in pairs
when checking patches.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>

show more ...


/dpdk/app/test-acl/main.c
/dpdk/app/test-eventdev/evt_common.h
/dpdk/app/test-mldev/ml_common.h
/dpdk/app/test-pmd/testpmd.h
/dpdk/devtools/checkpatches.sh
/dpdk/drivers/bus/cdx/cdx_logs.h
/dpdk/drivers/bus/dpaa/include/fman.h
/dpdk/drivers/bus/dpaa/rte_dpaa_logs.h
/dpdk/drivers/bus/fslmc/fslmc_logs.h
/dpdk/drivers/bus/fslmc/qbman/include/compat.h
/dpdk/drivers/bus/ifpga/ifpga_logs.h
/dpdk/drivers/bus/uacce/uacce.c
/dpdk/drivers/common/dpaax/compat.h
/dpdk/drivers/common/dpaax/dpaax_logs.h
/dpdk/drivers/common/idpf/base/idpf_osdep.h
/dpdk/drivers/compress/octeontx/otx_zip.h
/dpdk/drivers/compress/zlib/zlib_pmd_private.h
/dpdk/drivers/crypto/caam_jr/caam_jr_log.h
/dpdk/drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h
/dpdk/drivers/crypto/dpaa_sec/dpaa_sec_log.h
/dpdk/drivers/crypto/virtio/virtio_logs.h
/dpdk/drivers/dma/dpaa/dpaa_qdma_logs.h
/dpdk/drivers/dma/dpaa2/dpaa2_qdma_logs.h
/dpdk/drivers/dma/idxd/idxd_internal.h
/dpdk/drivers/dma/ioat/ioat_internal.h
/dpdk/drivers/event/dlb2/dlb2_log.h
/dpdk/drivers/event/dlb2/pf/base/dlb2_osdep.h
/dpdk/drivers/event/dpaa/dpaa_eventdev.h
/dpdk/drivers/event/dpaa2/dpaa2_eventdev_logs.h
/dpdk/drivers/event/dsw/dsw_evdev.h
/dpdk/drivers/event/sw/sw_evdev_log.h
/dpdk/drivers/mempool/dpaa/dpaa_mempool.h
/dpdk/drivers/mempool/dpaa2/dpaa2_hw_mempool_logs.h
/dpdk/drivers/net/ark/ark_logs.h
/dpdk/drivers/net/bnxt/tf_core/cfa_tcam_mgr.h
/dpdk/drivers/net/bnxt/tf_core/tfp.h
/dpdk/drivers/net/bnxt/tf_ulp/bnxt_tf_common.h
/dpdk/drivers/net/dpaa/dpaa_ethdev.h
/dpdk/drivers/net/dpaa/fmlib/fm_ext.h
/dpdk/drivers/net/dpaa2/dpaa2_pmd_logs.h
/dpdk/drivers/net/e1000/base/e1000_osdep.h
/dpdk/drivers/net/ena/base/ena_plat_dpdk.h
/dpdk/drivers/net/enetc/enetc_logs.h
/dpdk/drivers/net/enetfec/enet_pmd_logs.h
/dpdk/drivers/net/enic/enic_compat.h
/dpdk/drivers/net/fm10k/base/fm10k_osdep.h
/dpdk/drivers/net/hns3/hns3_logs.h
/dpdk/drivers/net/i40e/base/i40e_osdep.h
/dpdk/drivers/net/ice/base/ice_osdep.h
/dpdk/drivers/net/igc/base/igc_osdep.h
/dpdk/drivers/net/ipn3ke/ipn3ke_logs.h
/dpdk/drivers/net/ixgbe/base/ixgbe_osdep.h
/dpdk/drivers/net/ngbe/base/ngbe_osdep.h
/dpdk/drivers/net/ngbe/ngbe_logs.h
/dpdk/drivers/net/pfe/pfe_logs.h
/dpdk/drivers/net/qede/qede_ethdev.h
/dpdk/drivers/net/qede/qede_logs.h
/dpdk/drivers/net/sfc/sfc_debug.h
/dpdk/drivers/net/txgbe/base/txgbe_osdep.h
/dpdk/drivers/net/txgbe/txgbe_logs.h
/dpdk/drivers/raw/dpaa2_cmdif/dpaa2_cmdif_logs.h
/dpdk/drivers/raw/ifpga/base/opae_osdep.h
/dpdk/drivers/raw/ifpga/base/osdep_rte/osdep_generic.h
/dpdk/drivers/raw/ifpga/ifpga_rawdev.h
/dpdk/drivers/raw/skeleton/skeleton_rawdev.h
/dpdk/drivers/raw/skeleton/skeleton_rawdev_test.c
/dpdk/drivers/vdpa/ifc/base/ifcvf_osdep.h
eal/include/rte_common.h
ba9fb27929-Nov-2024 Robin Jarry <rjarry@redhat.com>

log: fix double free on cleanup

Fix the following crash when closing a log file after rte_eal_cleanup():

double free or corruption (!prev)

Thread 1 "grout" received signal SIGABRT, Aborted

log: fix double free on cleanup

Fix the following crash when closing a log file after rte_eal_cleanup():

double free or corruption (!prev)

Thread 1 "grout" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>,
signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
...
#10 _IO_new_fclose (fp=0xb63090) at iofclose.c:74
#11 0x000000000049c04e in dpdk_fini () at ../main/dpdk.c:204
#12 0x0000000000402ab8 in main (...) at ../main/main.c:217
(gdb) up 11
#11 0x000000000049c04e in dpdk_fini () at ../main/dpdk.c:204
202 rte_eal_cleanup();
203 if (log_stream != NULL)
204 fclose(log_stream);

When the application has passed a custom file via rte_openlog_stream()
DPDK should not call fclose() on it.

Add an internal is_internal_file field to track whether the file has
been allocated by DPDK (syslog or journald) to determine if it should be
closed or not.

Fixes: 985130369be3 ("log: rework syslog handling")
Cc: stable@dpdk.org

Signed-off-by: Robin Jarry <rjarry@redhat.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...

4dc4e33f28-Nov-2024 Olivier Matz <olivier.matz@6wind.com>

net/virtio: fix Rx checksum calculation

If hdr->csum_start is larger than packet length, the len argument passed
to rte_raw_cksum_mbuf() overflows and causes a segmentation fault.

Ignore checksum c

net/virtio: fix Rx checksum calculation

If hdr->csum_start is larger than packet length, the len argument passed
to rte_raw_cksum_mbuf() overflows and causes a segmentation fault.

Ignore checksum computation in this case.

CVE-2024-11614

Fixes: ca7036b4af3a ("vhost: fix offload flags in Rx path")

Signed-off-by: Maxime Gouin <maxime.gouin@6wind.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

show more ...


/dpdk/.ci/linux-build.sh
/dpdk/.github/workflows/build.yml
/dpdk/.mailmap
/dpdk/ABI_VERSION
/dpdk/MAINTAINERS
/dpdk/VERSION
/dpdk/app/test-pmd/cmdline_flow.c
/dpdk/app/test-pmd/config.c
/dpdk/app/test/test_cfgfile.c
/dpdk/app/test/test_common.c
/dpdk/app/test/test_cryptodev.c
/dpdk/app/test/test_eal_flags.c
/dpdk/app/test/test_event_crypto_adapter.c
/dpdk/app/test/test_hash_readwrite_lf_perf.c
/dpdk/app/test/test_link_bonding.c
/dpdk/app/test/test_red.c
/dpdk/app/test/test_security_inline_proto_vectors.h
/dpdk/buildtools/call-sphinx-build.py
/dpdk/devtools/build-dict.sh
/dpdk/devtools/git-log-fixes.sh
/dpdk/doc/api/meson.build
/dpdk/doc/guides/contributing/patches.rst
/dpdk/doc/guides/faq/faq.rst
/dpdk/doc/guides/howto/index.rst
/dpdk/doc/guides/howto/security.rst
/dpdk/doc/guides/nics/features.rst
/dpdk/doc/guides/nics/mlx5.rst
/dpdk/doc/guides/prog_guide/cryptodev_lib.rst
/dpdk/doc/guides/prog_guide/rte_security.rst
/dpdk/doc/guides/rel_notes/index.rst
/dpdk/doc/guides/rel_notes/release_24_11.rst
/dpdk/doc/guides/rel_notes/release_25_03.rst
/dpdk/doc/guides/sample_app_ug/cmd_line.rst
/dpdk/doc/guides/sample_app_ug/dma.rst
/dpdk/doc/guides/sample_app_ug/ethtool.rst
/dpdk/doc/guides/sample_app_ug/flow_filtering.rst
/dpdk/doc/guides/sample_app_ug/hello_world.rst
/dpdk/doc/guides/sample_app_ug/intro.rst
/dpdk/doc/guides/sample_app_ug/ip_frag.rst
/dpdk/doc/guides/sample_app_ug/ip_reassembly.rst
/dpdk/doc/guides/sample_app_ug/ipv4_multicast.rst
/dpdk/doc/guides/sample_app_ug/keep_alive.rst
/dpdk/doc/guides/sample_app_ug/l2_forward_cat.rst
/dpdk/doc/guides/sample_app_ug/l2_forward_crypto.rst
/dpdk/doc/guides/sample_app_ug/l2_forward_event.rst
/dpdk/doc/guides/sample_app_ug/l2_forward_job_stats.rst
/dpdk/doc/guides/sample_app_ug/l2_forward_macsec.rst
/dpdk/doc/guides/sample_app_ug/l2_forward_real_virtual.rst
/dpdk/doc/guides/sample_app_ug/l3_forward.rst
/dpdk/doc/guides/sample_app_ug/l3_forward_graph.rst
/dpdk/doc/guides/sample_app_ug/l3_forward_power_man.rst
/dpdk/doc/guides/sample_app_ug/link_status_intr.rst
/dpdk/doc/guides/sample_app_ug/multi_process.rst
/dpdk/doc/guides/sample_app_ug/ptpclient.rst
/dpdk/doc/guides/sample_app_ug/rxtx_callbacks.rst
/dpdk/doc/guides/sample_app_ug/server_node_efd.rst
/dpdk/doc/guides/sample_app_ug/skeleton.rst
/dpdk/drivers/net/ixgbe/ixgbe_ethdev.c
/dpdk/drivers/net/octeon_ep/cnxk_ep_rx_neon.c
/dpdk/drivers/net/octeon_ep/cnxk_ep_rx_sse.c
/dpdk/dts/framework/testbed_model/node.py
/dpdk/examples/ptpclient/ptpclient.c
vhost/virtio_net.c
/dpdk/usertools/cpu_layout.py
/dpdk/usertools/dpdk-devbind.py
/dpdk/usertools/dpdk-hugepages.py
0cbf275220-Nov-2024 Stephen Hemminger <stephen@networkplumber.org>

pcapng: avoid potential unaligned data

The buffer used to construct headers (which contain 32 bit values)
was declared as uint8_t which can lead to unaligned access.
Change to declare buffer as uint

pcapng: avoid potential unaligned data

The buffer used to construct headers (which contain 32 bit values)
was declared as uint8_t which can lead to unaligned access.
Change to declare buffer as uint32_t.

Fixes: dc2d6d20047e ("pcapng: avoid using alloca")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...

12345678910>>...372