aboutsummaryrefslogtreecommitdiff
path: root/helper
AgeCommit message (Collapse)Author
2021-01-12Merge branch 'master' of https://github.com/OpenDataPlane/odp into odp-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2020-12-21helper: add odph_igmp header descriptionKiran Kumar K
Adds IGMP header description struct odph_igmphdr_t in helper directory. This structure is used for accessing IGMP header information from the packet. Signed-off-by: Kiran Kumar K <kirankumark@marvell.com> Signed-off-by: Satheesh Paul <psatheesh@marvell.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-12-21helper: add odph_gtp header descriptionKiran Kumar K
Adds GTP header description struct odph_gtphdr_t in helper directory. This structure is used for accessing GTPU header information from the packet. Signed-off-by: Kiran Kumar K <kirankumark@marvell.com> Signed-off-by: Satheesh Paul <psatheesh@marvell.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-12-16Merge branch 'master' of https://github.com/OpenDataPlane/odp into odp-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2020-11-03helper: checksum: point header field with unaligned typePetri Savolainen
GCC9 warns about pointing to a field of a packed structure with a regular (uint16_t) pointer type. Use an unaligned type (odp_una16_t) instead to fix those warnings. GCC warning: taking address of packed member of struct may result in an unaligned pointer value [-Waddress-of-packed-member] Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
2020-11-03helper: ethernet: fix sscanf type mismatchMohammad Iqbal Ahmad
Update data type of "byte" variable to unsigned int, to align with the sscanf format specification. Signed-off-by: Mohammad Iqbal Ahmad <mahmad@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-10-20Merge branch 'master' of https://github.com/OpenDataPlane/odp into odp-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2020-10-14build: fix permission error during distcheckSunil Kumar Kori
During 'make distcheck' scripts are copied into distribution directory twice. In first iteration scripts are successfully copied into destination path with read/execute permission and in second iteration build system throws permission error because file already exist. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-09-21build: fix build for linux-generic platformMatias Elo
Fix linux-generic platform build by isolating linux-dpdk specific build system modifications. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-09-11build: simplify remote target testingStanislaw Kardach
It is often beneficial to run "make check" on a remote target platform. However in order to run it, a full build-system has to be present which may not be efficient or possible for embedded platforms. Alternatively autotools offer a mechanism which may be used: LOG_COMPILER environment variable. If specified, all test invocations are prepended with its contents. This allows injecting a wrapper script which will ensure the test is run remotely (i.e. through ssh). Prior to that the binaries have to be transported to the remote system. This cannot be done in the script itself as it has no knowledge on the dependencies of the test program, only its path. Test could be relying on some files stored in srcdir or builddir. An issue exists that if ODP is built in out-of-tree method (builddir != srcdir), only the compiled test programs are copied to the builddir. scripts and script data files remain in srcdir and wrapper script is called with an absolute path to the script located in srcdir. This would require to copy the srcdir to exactly the same path on the target as on build host. This may alias with some paths already there. To prevent this from happening add make target wrappers which copy scripts and script data to build directory which allows the autotools test harness to produce a proper wrapper script invocation with a relative path and allows to only copy the builddir to the target to a strictly controlled location. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-09-10Merge branch 'master' of https://github.com/OpenDataPlane/odp into odp-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2020-09-07helper: thread: print pthread_create() return value to error logMatias Elo
Print pthread_create() return value to error log on failure. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-09-07build: re-format autoconf argument defaultsStanislaw Kardach
Make sure that all autoconf arguments defined by ODP use default value description similar to built-in arguments. That is: [default=<value>]. Also make sure that all arguments use AS_HELP_STRING for uniform text formatting. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-09-03helper: fixup internal doxygen docsStanislaw Kardach
@internal is improperly used to hide the internal documentation of the helper. Newer doxygen (1.8.17) reports syntax errors on most of the doxytags in the file in this commit. Analysing the commit history it seems that most of the tags were added to remove doxygen warnings. Therefore switch to a method which is widely used in other places in ODP. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
2020-08-25validation: pool: honor max_align capabilityJerin Jacob
Honor the odp_pool_capability_t::buf.max_align attribute while creating the pool. Some implementation chooses to optimize odp_buffer_t handling in such a way that implementation-specific metadata and actual data can be in the same cache-line as a performance optimization while accessing the odp_buffer_t. As a fix, except helpers, let the application uses the default alignment from odp_pool_param_init(). Signed-off-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-07-03Merge branch 'master' of https://github.com/OpenDataPlane/odp into odp-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-06-16build: do not define libodp as part of helperStanislaw Kardach
This prevents multiple inclusion of libodp-linux during builds, once as part of libodphelper and then directly by the application. This causes problems when linking statically with LTO enabled. On tested compiler (9.2.1-9ubuntu2) such duplication causes constructor symbols to be defined multiple times. This means that constructors will be run multiple times which leads to unexpected behavior. To fix this, remove libodp from helper link list. This works when compiling applications because there is no point in using libodphelper without libodp-linux, therefore both libraries have to be provided. After removing library order in example/Makefile.inc is required to ensure the proper linking. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-06-11helper: do not ignore the return value of odp_pool_destroy()Janne Peltonen
Either check the return value of odp_pool_destroy() or explicitly cast it to void to silence complaints from a static analyzer. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-11-21linux-gen: include only ODP defines in autogenerated header filesMatias Elo
The config.h file has been split into three parts: autoheader_build.h: should NOT be included by ANY source file autoheader_external.h: can be included by any source file, including public headers autoheader_internal.h: can be included by any internal source file, but NOT by public headers autoheader_external.h and autoheader_internal.h are generated based on matching template files (*.in) and include only ODP defines. autoheader_build.h includes all build defines and should not be included by any source file. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-11-21linux-gen: include config.h header in install directoryMatias Elo
Previously, config.h header was not included in install dir. This caused a compilation failure when an application tried to include ODP helper headers. config.h has been moved to include/odp subdirectory to avoid naming conflicts and unnecessary includes have been removed. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reported-by: Mikko Parpala <mikko.parpala@nokia.com>
2019-11-21helper: debug: remove duplicate ODPH_UNUSED macroMatias Elo
ODP API already has ODP_UNUSED macro. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-11-21helper: debug: add missing config header includeMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-10-07linux-gen: include only ODP defines in autogenerated header filesMatias Elo
The config.h file has been split into three parts: autoheader_build.h: should NOT be included by ANY source file autoheader_external.h: can be included by any source file, including public headers autoheader_internal.h: can be included by any internal source file, but NOT by public headers autoheader_external.h and autoheader_internal.h are generated based on matching template files (*.in) and include only ODP defines. autoheader_build.h includes all build defines and should not be included by any source file. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-09-27linux-gen: include config.h header in install directoryMatias Elo
Previously, config.h header was not included in install dir. This caused a compilation failure when an application tried to include ODP helper headers. config.h has been moved to include/odp subdirectory to avoid naming conflicts and unnecessary includes have been removed. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reported-by: Mikko Parpala <mikko.parpala@nokia.com>
2019-09-19helper: debug: remove duplicate ODPH_UNUSED macroMatias Elo
ODP API already has ODP_UNUSED macro. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-09-19helper: debug: add missing config header includeMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-08-22Merge ODP linux-generic v1.22.0.0 into linux-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-08-20helper: debug: add test application for helper debugPetri Savolainen
Test that macros are defined and use assert. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2019-08-20helper: debug: move odph_debug.h into helper APIPetri Savolainen
Moved the debug header to be part of the helper API. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2019-08-20helper: debug: add ODPH_ASSERT macroPetri Savolainen
Added assert macro to be used by test applications. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2019-07-01helper: fix variable may be used uninitialized warningsPetri Savolainen
Fix compiler warning: "X may be used uninitialized in this function". These warnings were found when building with link time optimization (-flto flag). Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com>
2019-05-15Merge branch 'master' of https://github.com/OpenDataPlane/odp into odp-dpdkMatias Elo
# Conflicts: # .travis.yml # configure.ac # scripts/ci/check.sh # scripts/ci/coverage.sh Signed-off-by: Matias Elo <matias.elo@nokia.com>
2019-05-09helper: fix out-of-tree buildPetri Savolainen
Fix out-of-tree build issue introduced by addition of the new version.h file. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Stanislaw Kardach <skardach@marvell.com>
2019-05-09helper: thread: implement new thread create and joinPetri Savolainen
Implemented new thread create and join functions. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Stanislaw Kardach <skardach@marvell.com>
2019-05-09helper: thread: new thread create and join callsPetri Savolainen
Defined new versions of thread create and join calls. New calls explicitly support thread create and join in multiple steps. Also per thread and common parameters are improved. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Stanislaw Kardach <skardach@marvell.com>
2019-05-09helper: add helper version definesPetri Savolainen
Added helper library version defines, so that application can track helper version independent of ODP API version. Added also function for easy print out of the versions number. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Stanislaw Kardach <skardach@marvell.com>
2018-12-20example: helper fix distcheckMaxim Uvarov
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2018-12-05Merge tag 'v1.20.0.0' of https://github.com/Linaro/odp into odp-dpdkMatias Elo
== OpenDataPlane (1.20.0.0) === Summary of Changes ODP v1.20.0.0 is a refresh of ODP, incorporating significant configurability and performance improvements as well as new APIs and API restructures. ==== APIs ===== Symbol `ODP_SHM_NULL` Removed. An invalid `odp_shm_t` has the value `ODP_SHM_INVALID`, consistent with other ODP types. The legacy synonym `ODP_SHM_NULL` is now removed for consistency. ===== New 3GPP Crypto Algorithm Support New support for 3GPP crypto algorithms is added by defining symbols for * `ODP_CIPHER_ALG_KASUMI_F8` * `ODP_CIPHER_ALG_SNOW3G_UEA2` * `ODP_CIPHER_ALG_ZUC_EEA3` In addition new authentication algorithm symbols are defined for * `ODP_AUTH_ALG_KASUMI_F9` * `ODP_AUTH_ALG_SNOW3G_UIA2` * `ODP_AUTH_ALG_ZUC_EIA3` These values are returned as ODP capabilities as well as being accepted in crypto session creation for implementations that indicate support for them. ===== Crypto Capability for Bitwise Operation The new `bit_mode` capability Boolean is added to the `odp_crypto_cipher_capability_t` struct to indicate that an implementation supports operating in bit mode. When operating in bit mode, field offsets and lengths are expressed in terms of bits rather than bytes. However, such lengths must always be specified in multiples of 8. ===== Improved Crypto Spec Documentation The ODP crypto API specification is tightened to specify default values for cipher and authentication algorithms. Also documented when key and IV parameters need to be set. ===== IPsec Extensions IPsec requires "salt" (extra keying material) when the GMAC authentication algorithm is used. To accommodate this the `auth_key_extra` field is added to the `odp_ipsec_crypto_param_t` struct and documentation is added clarifying when this field is needed and how it should be used. ===== Classifier Type Rename The `odp_pmr_t` type name for an invalid value is renamed from `ODP_PMR_INVAL` to `ODP_PMR_INVALID` for consistency with the rest of ODP type names. The old symbol is still available when ODP is configured with `--enable-deprecated`. ===== New API for Packet Event Subtypes The `odp_packet_subtype()` API is added that returns the subtype of a packet event directly. ===== Streamlined Packet Parsing Results The `odp_packet_parse_result()` API is added that returns the result of packet parsing as a single `odp_packet_parse_result_t` struct. This can offer efficiency improvements for applications that need all parse results rather than making individual parse result calls. ===== PktIO Extensions to Support per-Queue Configuration PktIO interfaces support multiple input queues to enable increased parallelism in I/O processing. Previously, all of these input queues were required to belong to the same scheduler group. The `odp_pktin_queue_param_t` struct is now extended with an optional `odp_pktin_queue_param_ovr_t` struct that permits individual pktin queues to be assigned to separate scheduler groups. This may permit improved performance for advanced application use cases. ===== Timer Pool Capabilities The `odp_timer_capability_t` struct is extended to return three additional pieces of information: `max_pools_combined`:: The total number of timer pools that can be created combining different clock sources `max_pools`:: The maximum number of timer pools for a given clock source. `max_timers`:: The maximum number of timers in a single pool. A zero value means number is limited only by available memory. ===== Add Scheduler mix/max/default Priority Functions Three new APIs: `odp_schedule_max_prio()`, `odp_schedule_min_prio()`, and `odp_schedule_default_prio()` are added that return the min, max, and default values specified for the `prio` field in the `odp_schedule_param_t` struct. With the introduction of these scheduling priority functions the previously defined macros (`ODP_SCHED_PRIO_HIGHEST`, `ODP_SCHED_PRIO_NORMAL`, and `ODP_SCHED_PRIO_LOWEST`) are now deprecated and should no longer be used. ===== Specification of `odp_schedule_prio_t` as an `int` Previously, the `odp_schedule_prio_t` type definition was left to each implementation. With the addition of explicit schedule priority ranges, this type is now specified to be an `int` to permit efficient implementation (including inlining) of these functions. ====== New Scheduler APIs The new scheduler APIs `odp_schedule_multi_wait()` and `odp_schedule_multi_no_wait()` are added to provide more efficiently implementable versions of these functions. The existing scheduler APIs remain unchanged. These new APIs can simply provide a fastpath for some applications/implementations as an alternative to specifying a parameter on `odp_schedule_multi()`. ===== Memory Model in `odp_init_global()` The `odp_init_t` parameter passed to `odp_init_global()` is extended to add the `mem_model` field. This field is defined by the new `odp_mem_model_t` struct and is used to specify whether the application will be using a thread (`ODP_MEM_MODEL_THREAD`) or process (`ODP_MEM_MODEL_PROCESS`) memory model. The default is a thread model is used for compatibility with previous levels of ODP. ==== ABI Changes A number of changes to the ODP ABI have also been made in this release to improve application binary portability. ===== Strong Typing for Timer Pools The `odp_timer_pool_t` is now strongly typed. ===== Consistent Initialization The values of the various `ODP_xxx_INVALID` symbols for ODP abstract types in the `odp-linux` reference implementation are now consistently zeros. This reduces errors and improves portability. === Implementation Improvements ==== Configuration File A new configuration file mechanism is introduced that makes use of https://www.hyperrealm.com/libconfig/libconfig_manual.html[libconfig] to enable various runtime ODP parameters to be specified dynamically. Default configuration values for the `odp-linux` reference implementation are contained in the `config/odp-linux-generic.conf` file. Users may override these default values by supplying their own configuration file. At `odp_init_global()` time, if the `ODP_CONFIG_FILE` environment variable is set, this is used to locate the path to the override configuration file. ==== Process Mode Support The `odp-linux` reference implementation now supports applications that run in process mode (`mem_model` = `ODP_MEM_MODEL_PROCESS`) as well as the default thread mode. This support only applies within a single ODP instance, so any `fork()` calls must be done only _after_ `odp_init_global()` has been called to initialize ODP on a root process. ==== Removal of `iQuery` Scheduler The `iQuery` scheduler is removed from the `odp-linux` reference implementation, as it offers no performance advantages and has not seen application use. ==== Number of CPUs The `odp-linux` reference implementation now supports up to 256 CPUs by default (increased from 128). ==== Support for Large Burst Sizes The `odp-linux` reference implementation now supports large burst sizes for both I/O and non-I/O scheduled events. Large bursts (when available) are received directly to the application without any stashing for improved throughput. Burst sizes are configurable via the new configuration file mechanism, as described above. ==== `--without-openssl` Warnings When building `odp-linux` using `--without-openssl` a warning will be issued cautioning that strong cryptography will not be available. ==== Inline Queue Enq/Deq APIs The various enq/deq APIs are now subject to inlining when `odp-linux` is built with `--disable-abi-compat`. ==== Configurable Timer Controls Inline timers are now controlled via a config file option. Timer polling frequency is similarly controlled via the config file. ==== Huge Page Configuration The config file is now used to specify the huge page usage limit. ==== Single and Multi-Consumer/Producer Rings The queue implementation in `odp-linux` now automatically makes use of optimized single and multi-consumer/producer rings to significantly speed up enq/deq processing. ==== `odp_shm_print_all()` Improvements The output from `odp_shm_print_all()` is reworked to provide more useful and comprehensive shared memory usage information in `odp-linux`. ==== IPsec Improvements SA lifetime checking is now more scalable to multiple threads. This significantly reduces overhead for multithreaded IPsec applications. ==== Native Builds When running in non-ABI compatibility mode, `odp-linux` now enables native machine-specific optimizations for the CPU architecture of the local machine. === Validation Test Improvements ==== SCTP Test Packets SCTP test packets are now used in parser testing. SCTP headers are added to ODP and ODP helpers and SCTP checksums are now inserted and verified as part of validation testing. ==== `odp_packet_reset()` Test The packet validation test suite now properly tests `odp_packet_reset()`. === Helper Changes In support of process mode, ODP helper functions have been changed to better match these new capabilities ==== New `enum` The `odph_linux_thread_type_t enum` has been replaced with the new `odp_mem_model_t` type. ==== Helper Options The new `odph_options()` getter function is added that returns applicable options in effect via the new `odph_helper_options_t` struct. This currently includes the memory model (thread or process) that is in use. ==== SCTP Helpers The new helper APIs `odph_sctp_chksum_set()` and `odph_sctp_chksum_verify()` are added to facilitate working with SCTP packet checksums. === Performance Test Improvements ==== Pool Performance A new `odp_pool_perf` test has been added that stress-tests ODP pool functions in a multithreaded environment to generate performance statistics. ==== Scheduler Performance A new `odp_sched_perf` test has been added that stress-tests the scheduler in a multithreaded environment. ==== CPU Performance A new `odp_cpu_bench` performance test has been added that runs compute-intensive packet operations in a multithreaded environment and prints the observed maximum throughput for each thread. === Example Improvements ==== Classifier Example changes The `odp_classifier` example program now uses a reduced number of threads by default to reduce elapsed run time. `ODP_THREAD_COUNT_MAX` is also now used as the max worker count. ==== Generator Improvements The `odp_generator` example has numerous cleanups and performance improvements. ==== IPsec Example The `odp_ipsec` example now properly stops and closes pktio devices on exit. ==== Packet Dumping A new `odp_packet_dump` example is added that prints received packets to the terminal. This is useful for debugging packet I/O interfaces. ==== Sysinfo Example A new `odp_sysinfo` example is provided that prints system information. Useful for checking the ODP environment during debugging. This includes providing detailed information about the various crypto facilities supported, as well as the feature flags used at build time (_e.g.,_ if the binary was built with ARMv8.0 or ARMv8.1 instructions). ==== Traffic Manager Example The traffic manager example now properly destroys all TM queues it creates for improved reliability. It also now always prints a proper termination summary message. === Bug Fixes ==== Numbered Bugs/Issues ===== https://bugs.linaro.org/show_bug.cgi?id=3983[Bug 3983] Compile fails on OpenSuSE 42.2 Leap with error: negative width in bit field '__error_if_negative' ===== https://bugs.linaro.org/show_bug.cgi?id=3989[Bug 3989] odp_system_info_init() issues ===== https://bugs.linaro.org/show_bug.cgi?id=3999[Bug 3999] IPsec antireplay check drops packets when sequence number jumps. ===== https://bugs.linaro.org/show_bug.cgi?id=4002[Bug 4002] IPsec SA creation must fail for ESN-enabled SAs ===== https://bugs.linaro.org/show_bug.cgi?id=4013[Bug 4013] Per-SA IPv4 ID allocation may cause duplicate IDs. ===== https://bugs.linaro.org/show_bug.cgi?id=4017[Bug 4017] Unexpected IP ID causes IPsec API validation to fail ===== https://github.com/Linaro/odp/issues/662[Issue 662] rte_mempool_ops_alloc() is not dpdk api ==== Unnumbered Bugs/Issues * Fixed enq/deq issues encountered on architectures with weak memory ordering. * Return 0 from `odp_sys_huge_page_size_all()` if hugepages are not supported/detected. Tests modified to not treat this as an error. * Set `ODP_CACHE_LINE_SIZE` to 128 on ppc64le systems. * iplookuptable fix putting values into table * DPDK pktio support now works properly across multiple ODP instances. * Zero timer pool memory on reserve (fixes timer failures due to uninitialized variables). * `-march=native` disabled for `clang`. This fixes a known issue with recent levels of clang. === Known Issues ==== https://bugs.linaro.org/show_bug.cgi?id=3998[Bug 3998] IPsec extended sequence number support is missing ==== https://bugs.linaro.org/show_bug.cgi?id=4014[Bug 4014] Separate IP ID allocation for transport and tunnel mode SAs may cause duplicate IDs ==== https://bugs.linaro.org/show_bug.cgi?id=4018[Bug 4018] Unexpected IV causes IPsec API validation to fail ==== https://bugs.linaro.org/show_bug.cgi?id=4040[Bug 4040] Clang build fails on Ubuntu 18.04 # Conflicts: # .travis.yml # example/packet/Makefile.am
2018-11-28helper: test: add test for new odph_options() functionMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-11-28helper: threads: add odph_options() getter functionMatias Elo
Add function for reading parsed linux helper options. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-11-28helper: threads: replace odph_linux_thread_type_t with odp_mem_model_tMatias Elo
Replace enum odph_odpthread_linuxtype_t with odp_mem_model_t. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-10-15helper: iplookup: check capabilitiesPetri Savolainen
Check pool and queue capabilities instead of assuming e.g. that 1M events can be stored into a queue. Reduced table defines (pool / queue size requirement) as an easy fix to pass tests. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-10-04helper: threads: add ODPH_PROC_MODE environment variableMatias Elo
ODPH_PROC_MODE environment variable can be used to enable process mode. Setting environment variable is simpler in CI compared to using command line arguments. Signed-off-by: Matias Elo <matias.elo@nokia.com> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-09-13helper: iplookuptable fix puting values to tableMaxim Uvarov
On putting values to table we have to validate input data and reject unaccepted data (cidr bits - Classless Inter-Domain Routing is in range of 0 to 32). Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
2018-09-05Merge branch 'master' of https://github.com/Linaro/odp into odp-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> # Conflicts: # .travis.yml
2018-08-22helper: add SCTP handling functionsDmitry Eremin-Solenikov
Add functions to set and verify SCTP packet checksum. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-08-22helper: add SCTP protocol headerDmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-05-16Merge branch 'master' of https://github.com/Linaro/odp into odp-dpdkPetri Savolainen
2018-05-14helper: thread: don't use getopt libraryPetri Savolainen
Don't use getopt library calls for helper options. Getopt library reset is not portable in practice. Library interface includes global variables and different internal state variables depending on POSIX version. There's no need for helper to use getopt calls or set getopt global variables at all. It's much more simple (and portable) to remove helper options from argv[] and return new value for argc. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-04-03linux-dpdk: use libodp-linux library nameDmitry Eremin-Solenikov
Use ABI-defined libodp-linux name for odp-dpdk implementation. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-and-tested-by: Matias Elo <matias.elo@nokia.com> Reviewed-and-tested-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>