Skip to content

[PATCH v1] Merge ODP linux-generic v1.49.0.0#258

Open
MatiasElo wants to merge 160 commits intoOpenDataPlane:masterfrom
MatiasElo:dev/release
Open

[PATCH v1] Merge ODP linux-generic v1.49.0.0#258
MatiasElo wants to merge 160 commits intoOpenDataPlane:masterfrom
MatiasElo:dev/release

Conversation

@MatiasElo
Copy link
Contributor

No description provided.

TuomasTaipale and others added 30 commits July 24, 2025 11:57
Fix MTU related error message.

Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
With _odp_strcpy() function array-bounds and stringop-overflow pragmas are
no longer required.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Validate thread mask passed by user to odp_schedule_group_create() and
odp_schedule_group_create_2(). Fixes out-of-bounds access warning from
Coverity.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Allocate large tables from SHM instead of stack memory. This fixes
stack_use warnings from Coverity.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Pass LSO profile parameters as a pointer to avoid pass_by_value warning
from Coverity.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Pass pktio capabilities as a pointer to avoid pass_by_value warning from
Coverity.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Check sscanf() return value to avoid checked_return warning from Coverity.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Initialize test data arrays using array initialization syntax instead
of constant strings. This silences warnings about dropped terminating
null characters with GCC-15.

Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Check that the 'num' parameter of odp_cunit_thread_join(num) is
positive and not larger than ODP_THREAD_MAX_NUM. This also gets
rid of a bogus warning from LTO buils using GCC-15.

Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Initialize the 'tail' variable that is supposed to get written by
odp_packet_extend_tail() and odp_packet_trunc_tail(). If the functions
(which are being tested) do not work as intended, 'tail' may not be
initialized at the later CU_ASSERT(tail != NULL), likely causing the
CU_ASSERT not fail. This change can also get rid of bogus maybe-
uninitialized warnings even when the ODP functions work correctly.

Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Fix compilation with Clang on x86 when the target architecture supports
RDRAND. ODP implementation uses low level GCC specific compiler builtin
functions that are not available with Clang. Clang does support the
higher level intrinsics like _rdrand64_step() but this commit does
not switch to use them but simply falls back to the generic code when
Clang is being used.

Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
New option -W/--wait_ns to wait a number of nsecs between events being
dequeued and enqueued.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
New option -M/--memcpy to perform x bytes memcpy between events being
dequeued and enqueued.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Flush stdout and stderr just before fork so that buffered data does not
end up in the child process in addition to the parent process and then
get output twice. The lack of flushing caused the printouts made by
_odp_system_info_init(), which is run before forking fdserver, getting
cloned to the fdserver process and written out when fdserver was
terminated at odp_term_global(). Sometimes this screwed up the output
enough to make CI scripts that parse output unhappy.

Using fork() without immediate exec() in a library used by multithreaded
programs is highly fragile for multiple reasons. This commit is not a real
fix for that but just a bandaid to fix the stdio buffering problem (with
the assumption that there are no other application threads outputting to
stdio simultaneously).

Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
- Add common pktio test functions for ODP tests as a new
header file.
- Move functions for link info printing and link status check + wait
from odp_packet_gen.c to newly created pktio_common.h to allow use
in other tests
- Call these newly moved functions from odp_packet_gen.c
- Pktio link info is now always printed in odp_packet_gen.c

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Implement --wait_link option to allow the test to wait for the links
to be up before proceeding with the test.
Pktio link info is now always printed.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Implement --wait_link option to allow the test to wait for the links
to be up before proceeding with the test.
Pktio link info is now always printed.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Implement --wait_link option to allow the test to wait for the links
to be up before proceeding with the test.
Pktio link info is now always printed.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Add --wait_link 10 to allow some wait time for the link to be up before
killing the test.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Add option --schedule_prefetch to allow events to be prefetched.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add option --cache_stash to enable cache stasing.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Replace the fixed 10 ms schedule wait with 4 * period_ns so the scheduler
has enough time to deliver timeout events when the timer period is close to
the wait time. Previously, leftover timeouts could remain in completion
queues and cause queue_destroy() to fail.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Add test for checking that odp_ml_compl_t events can be freed with
odp_event_free().

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Added a burst mode -b/--burst <num> where events are enqueued and
scheduled in bursts with odp_queue_enq_multi() and odp_schedule_multi().
Latency is measured and reported over whole bursts in burst mode.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
odp_cunit_thread_create() used to claim return value to be 0 on success.
Actually returns number of threads created on success.
This has now been corrected.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add new validation test for verifying scheduling group functionality.
Each worker has its own schedule group and scheduled queue.
Source queue of scheduled events is verified to be from the workers'
private schedule group.

Signed-off-by: Ray Sointula <ray.sointula@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add possibility to measure execution times also in cycles in addition to
nanoseconds. This makes coexistence of basic bench and tm suites less
cumbersome.

Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add new option to choose measurement unit of benchmarked latencies. This
streamlines options with other microbenchmark testers; by default,
latencies are now measured in cycles instead of nanoseconds.

Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Invert tm suite test function return value logic to match basic bench
suite logic. This makes coexistence of the basic bench and tm suites less
cumbersome.

Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add new option to control measurement mode. Two modes are provided, one
for throughput and one for latency. Throughput mode keeps track of
average execution times and is basically the current operation mode of
the tester. Latency mode utilizes the bench tm suite and additionally
tracks function minimum and maximum execution times.

Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Remove deprecated odp_pktio_capability_t.tx_compl.mode_all field.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Reviewed-By: Nithin Dabilpurm <ndabilpuram@marvell.com>
Update CHANGELOG to use standard Markdown heading syntax. Improves
compatibility with Markdown tools and eases copying release notes to
GitHub.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Increment API version number to reflect the following changes:

Backward compatible:
- barrier: clarify that a barrier must be initialized before first use and
  can be reinitialized if not in use
- barrier: clarify that a barrier can be reused without initializing it
  again
- barrier: clarify that no more than N threads may be inside
  odp_barrier_wait() for a barrier of N threads
- classifier: clarify that event aggregation is performed automatically for
  classified packets when aggregation is enabled in CoS parameters
- classifier: clarify that classifier accessor functions return always base
  queue handles
- crypto: add SNOW5G cipher and integrity algorithms
  ODP_CIPHER_ALG_SNOW5G_NEA4 and ODP_AUTH_ALG_SNOW5G_NIA4
- crypto: change description of odp_crypto_session_param_t.output_pool
- pktio: clarify that event aggregation is performed automatically for
  incoming packets when aggregation is enabled in packet input queue
  parameters
- pktio: clarify that odp_pktin_event_queue() returns always base input
  queue handles
- queue: add new 'type' and 'aggr_config' fields to odp_queue_info_t and
  document struct contents better for event aggregator queues

Remove deprecated APIs:
- crypto: remove deprecated ODP_CRYPTO_OP_TYPE_LEGACY op type
- pktio: remove deprecated odp_pktio_capability_t.tx_compl.mode_all field
- pktio: remove deprecated odp_pktout_config_opt_t.bit.tx_compl_ena field
- pktio: remove deprecated ODP_PACKET_TX_COMPL_ALL define
- timer: remove deprecated odp_timer_pool_start() function

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Merge ODP linux-generic v1.49.0.0 into linux-dpdk.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Use odp_packet_has_ref() function for checking if packet has references to
enable loop pktio code reuse with odp-dpdk.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
…ader

Move evendev RX adapter function prototypes into a separate header to avoid
naming conflicts from other eventdev internal types in
odp_eventdev_internal.h.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
The classifier implementation enqueues packets directly to the destination
queues, so the eventdev specific enqueue function for classified packets is
no longer required.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…ol_start() function"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…ent hdr"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…rts"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…start"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…n unsupported device"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…pdate DPDK_MIN_RX_BURST"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…tion"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…on type"

Port original commit from linux-generic.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
…lues

Explicitly set odp_crypto_session_param_t nonzero default values.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_packet_pull_head() and odp_packet_push_head()
functions.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_packet_tail() function.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_packet_pull_tail() and odp_packet_push_tail()
functions.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_buffer_alloc() and odp_buffer_alloc_multi()
functions.

When odp_buffer_alloc()/odp_buffer_alloc_multi() functions are used by a
dynamically linked application, depending on the used linker flags the
application may see a separate copy of DPDK TLS variables compared to ODP
library. rte_mempool_get_bulk() internally uses rte_lcore_id() function,
which maps to a TLS variable. This can break per thread pool cache usage.
To avoid this use rte_mempool_generic_get() function and select used cache
manually.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
When odp_buffer_free()/odp_buffer_free_multi() functions are used by a
dynamically linked application, depending on the used linker flags the
application may see a separate copy of DPDK TLS variables compared to ODP
library. rte_mempool_put_bulk() internally uses rte_lcore_id() function,
which maps to a TLS variable. This can break per thread pool cache usage.
To fix this use rte_mempool_generic_put() function and select used cache
manually.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Some threads may simultaneously be sending or receiving packets while
odp_pktio_stop() is called, which caused segmentation faults in DPDK PMD
code. To fix this leave the pktio device running and only stop the DPDK
side when the device is closed.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Add warning when multi segment send (pktio_dpdk: tx_offload_multi_segs) is
not enabled in the config file.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
Include DPDK pktio config file options in odp_pktio_print() output.

Signed-off-by: Matias Elo <matias.elo@nokia.com>
@odpbuild odpbuild changed the title Merge ODP linux-generic v1.49.0.0 [PATCH v1] Merge ODP linux-generic v1.49.0.0 Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants