aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)Author
2024-02-06configure: enable -Wshadow warningsPetri Savolainen
Enables compiler warnings (-Wshadow=local) when a local variable shadows another local variable or parameter. For example: for (int i = 0; i < N; ++i) { ... for (int i = 0; i < M; ++i) { ... } } Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2023-12-22api: increment ODP API version to 1.43.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - cls: add new odp_cls_capability_t.max_pmr and odp_cls_capability_t.max_pmr_per_cos capabilities - cls: rename odp_cls_capability_t.max_pmr_terms field to odp_cls_capability_t.max_terms_per_pmr - time: change local/global time specification to allow timestamp values to start from an implementation defined value - timer: deprecate odp_timer_set_t type - timer: deprecate odp_timer_pool_start() function - timer: deprecate odp_timeout_fresh() function - timer: change odp_timer_free() specification to remove the possibility to free a timer that is running - timer: change odp_timer_pool_create() specification to state that timer pool handles must not be used by other APIs before being started Backward compatible: - event: add odp_event_pool() function - hints: fix a type conversion issue in odp_unlikely() implementation - packet: clarify that ODP_PACKET_FREE_CTRL_DONT_FREE option does not affect direct packet free calls - packet: clarify that packet IO time is specific to the packet IO interface - pool: clarify that disabled/unused per thread statistics counters will not necessarily be zeroed by odp_pool_stats() - sched: clarify event ordering in ordered scheduling contexts - thread: add new functions odp_thread_control_count_max() and odp_thread_worker_count_max() - thread: add new functions odp_thread_control_count() and odp_thread_worker_count() - time: add odp_time_add_ns() function - time: add odp_time_startup() function - time: clarify odp_time_sum() specification by adding a notification that resulting timestamp may wrap around - timer: add odp_timer_pool_start_multi() function - timer: clarify that timer ticks and related nanosecond values are specific to a timer pool and may not start from zero Removed deprecated APIs: - cls: odp_cls_drop_t enum - cls: odp_cos_drop_set() function - cls: odp_cos_drop() function - cls: odp_cos_with_l2_priority() function - cls: odp_cos_with_l3_qos() function - crypto: ODP_CRYPTO_SES_CREATE_ERR_NONE, ODP_CRYPTO_SES_CREATE_ERR_ENOMEM, ODP_CRYPTO_SES_CREATE_ERR_INV_CIPHER, and ODP_CRYPTO_SES_CREATE_ERR_INV_AUTH defines - crypto: odp_crypto_alg_err_t.ODP_CRYPTO_ALG_ERR_KEY_SIZE and odp_crypto_alg_err_t.ODP_CRYPTO_ALG_ERR_IV_INVALID enums - crypto: odp_crypto_hw_err_t enum - crypto: odp_crypto_packet_result_t.ok field - sched: ODP_SCHED_PRIO_HIGHEST, ODP_SCHED_PRIO_NORMAL, ODP_SCHED_PRIO_LOWEST, and ODP_SCHED_PRIO_DEFAULT defines - timer: ODP_CLOCK_CPU and ODP_CLOCK_EXT defines - timer: ODP_TIMER_TOOEARLY, ODP_TIMER_TOOLATE and ODP_TIMER_NOEVENT defines - timer: odp_timer_set_abs() function - timer: odp_timer_set_rel() function Helper library (1.5.0): Backward incompatible: - threads: remove deprecated odph_odpthread_t and odph_odpthread_params_t types - threads: remove deprecated odph_thread_param_t.instance field - threads: remove deprecated odph_odpthreads_create() and odph_odpthreads_join() functions Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2023-12-21configure: add -Wno-error=stringop-overflow also to CXXFLAGSJere Leppänen
Also c++ programs need -Wno-error=stringop-overflow flag, in order to avoid errors during linking, when using LTO. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2023-10-23api: increment ODP API version to 1.42.1Matias Elo
Increment API version number to reflect the following changes: Backward compatible: - cls: add odp_cls_pmr_create_multi() function - cls: add odp_cls_pmr_destroy_multi() function - cls: add odp_cls_cos_create_multi() function - cls: add odp_cos_destroy_multi() function - crypto: clarify packet ordering of async crypto ops - crypto: add null_crypto crypto op flag for skipping crypto - crypto: allow both basic and out-of-place ops in one session - pktio: add ODP_PKTIO_MAX_INDEX define - queue: add odp_queue_create_multi() function - queue: add odp_queue_destroy_multi() function - queue: clarify odp_queue_param_t default value specification - system: add new ARMv8 and v9 enumerations - timer: clean up odp_timer_pool_param_t.num_timers description - timer: add odp_timeout_alloc_multi() function - timer: add odp_timeout_free_multi() function Helper library (1.4.0): Backward incompatible: - protocols: rename ODP_GTP_HLEN define to ODPH_GTP_HLEN - protocols: rename ODP_IGMP_HLEN define to ODPH_IGMP_HLEN - protocols: remove unused ICMP defines and add missing ODPH_ prefix to the remaining defines Backward compatible: - macros: add ODPH_MIN() and ODPH_MAX() helper macros - macros: add ODPH_ARRAY_SIZE() helper macro - macros: add ODPH_ABS() helper macro Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2023-09-01configure: enable parallel ltoMatias Elo
Add 'auto' argument to '-flto' to enable parallel LTO jobs, which may reduce linking duration. Also, fixes "using serial compilation of N LTRANS jobs" warnings when using GCC-12. The '-flto=auto' and '-ffat-lto-objects' options are currently not supported by clang. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2023-07-12api: increment ODP API version to 1.42.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - crypto: change 'bit_mode' cipher/auth capability flag to indicate whether bit mode is supported in addition to byte mode that is always supported - crypto: add 'cipher_range_in_bits' and 'auth_range_in_bits' session parameters Backward compatible: - barrier: add memory barriers odp_mb_sync(), odp_mb_sync_load(), and odp_mb_sync_store() - crypto: allow non-zero-length cipher and auth ranges for the null cipher and auth algorithms in the OOP operation type - dma: add 'uarea_persistence' pool capability - dma: add 'uarea_init' pool parameters 'init_fn' and 'args' - dma: move odp_dma_seg_t structure fields - event: add odp_event_types_multi() function - event: add odp_event_user_area_and_flag() function - init: add ODP_LOG_WARN log level to odp_log_level_t - packet: change odp_packet_user_flag() and odp_packet_vector_user_flag() documentations to specify that the return values are positive - pool: add 'uarea_persistence' pool capability - pool: add 'uarea_init' pool parameters 'init_fn' and 'args' - timer: add odp_timeout_from_event_multi() function - timer: clarify odp_timer_alloc() and odp_timer_restart() documentation Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2023-06-09api: increment ODP API version to 1.41.1Matias Elo
Increment API version number to reflect the following changes: Backward compatible: - dma: add odp_dma_compl_user_area() function for reading user area pointer - dma: clarify that DMA session names don't need to be unique - event: odp_event_user_area() function for reading user area pointer - init: add odp_term_abnormal() function that can be used to abnormally terminate an ODP application after a non-recoverable error - packet: extend packet transmit completion with poll mode - packet: add odp_packet_free_ctrl_set() function for controlling packet output interface to not free a packet after transmitting it - packet: add odp_packet_free_ctrl() function for reading packet's free control option value - pool: relax odp_pool_stats() specification to allow implementations to have some delay until pool statistics are updated - pool: add new function odp_pool_stats_selected() for reading only selected pool statistic(s) - timer: split odp_timer_cancel() failure reason into timing related and other failures - timer: rename odp_timer_set_t to odp_timer_retval_t - timer: add odp_timer_sample_ticks() function that samples tick value of multiple timer pools simultaneously - timer: allow implementation to place the first timer as close as it can to one period when starting a periodic timer with first_tick set to 0 - timer: clarify that periodic timer base frequency uses fractional numbers the same way as timer tick info - timer: clarify that odp_timer_periodic_capability() call does not overwrite the base frequency value when 1 is returned - timer: clarify that some implementations may support only certain periodic timer base frequencies and those depend on source clock frequency Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2023-04-13api: increment ODP API version to 1.41.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - cls: require that PMRs must be destroyed before the CoS they refer to is destroyed - crypto: deprecate the old session creation error names (ODP_CRYPTO_SES_CREATE_ERR_NONE, ODP_CRYPTO_SES_CREATE_ERR_ENOMEM, ODP_CRYPTO_SES_CREATE_ERR_INV_CIPHER, ODP_CRYPTO_SES_CREATE_ERR_INV_AUTH) - crypto: change return value of odp_crypto_result() to indicate crypto operation success/failure - crypto: deprecate odp_crypto_packet_result_t.ok field - crypto: specify that the status fields of odp_crypto_packet_result_t are valid only when the operation failed - crypto: deprecate odp_crypto_hw_err_t type and odp_crypto_op_status_t.hw_err field - crypto: deprecate ODP_CRYPTO_ALG_ERR_KEY_SIZE and ODP_CRYPTO_ALG_ERR_IV_INVALID error codes - crypto: require that cipher range and auth range have zero offset and zero length when used with null cipher and null auth algorithm, respectively, with the out-of-place operation type - errno: remove mention about errno values specified in the API spec - pktio: remove legacy reference to errno from odp_pktio_open() function - stash: remove special meaning of odp_stash_capability_t.max_num_obj value zero - timer: remove legacy references to errno from odp_timer_pool_create() and odp_timer_alloc() functions Backward compatible: - cls: clarify that the CoS to be destroyed with odp_cos_destroy() must not be in use - cls: clarify that odp_cos_queue() returns ODP_QUEUE_INVALID if the queue is not set - cls: allow CoS pool (odp_cls_cos_param_t.pool) to be set to ODP_POOL_INVALID - cls: clarify when CoS queue may and may not be invalid - crypto: change IV and AAD pointers to pointers to constants - crypto: clarify that algorithm order is ignored with null algorithms - crypto: clarify when cipher and auth ranges are ignored - crypto: allow the result pointer for odp_crypto_result() to be null - crypto: clarify the description of ODP_CRYPTO_ALG_ERR_DATA_SIZE - crypto: add a new crypto operation error ODP_CRYPTO_ALG_ERR_OTHER - crypto: clarify that null cipher and auth algorithms ignore key length, IV length, digest length, etc. session parameters - crypto: clarify that crypto operations do not affect parse flags in packet metadata and thus odp_packet_has_error() cannot be used for checking operation result - pktio: allow the default CoS to be removed by passing ODP_COS_INVALID to odp_pktio_default_cos_set() - pool: clarify that the pool to be destroyed with odp_pool_destroy() must not be in use - pool: clarify that odp_pool_capability_t.max_pools is used for all pool types defined in odp_pool_type_t - stash: add new stash create parameter odp_stash_param_t.strict_size for performance optimization and remove the total object count limitation from stash put functions - stash: add new capabilities for maximum number of object handles per stash for each object size (odp_stash_capability_t.max_num) - timer: clarify that zero odp_timer_periodic_start_t.first_tick means that the first expiration time is one period after the current time, not at the current time Removed deprecated APIs: - crypto: odp_crypto_compl_t crypto completion event - crypto: odp_crypto_op_param_t type - crypto: odp_crypto_op_result_t type - crypto: odp_crypto_session_param_t.pref_mode field - crypto: odp_crypto_compl_from_event() function - crypto: odp_crypto_compl_to_event() function - crypto: odp_crypto_compl_free() function - crypto: odp_crypto_operation() function - crypto: odp_crypto_compl_result() function - crypto: odp_crypto_compl_to_u64() function - event: ODP_EVENT_CRYPTO_COMPL event type Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2023-02-13api: increment ODP API version to 1.40.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - packet: specify which packet metadata flags cannot be set simultaneously using odp_packet_has_XX_set() functions - timer: use ODP_DEPRECATE() macro for odp_timer_set_abs() and odp_timer_set_rel() functions - timer: deprecate old timer pool clock sources ODP_CLOCK_CPU and ODP_CLOCK_EXT - timer: deprecate old timer set return values ODP_TIMER_TOOEARLY, ODP_TIMER_TOOLATE, and ODP_TIMER_NOEVENT Backward compatible: - crypto: add new operation type session parameter odp_crypto_session_param_t.op_type - crypto: add ODP_CRYPTO_OP_TYPE_BASIC operation type - crypto: add ODP_CRYPTO_OP_TYPE_OOP operation type - crypto: clarify odp_crypto_op() documentation regarding packet data and metadata copy - crypto: require that odp_crypto_result() is called before accessing packet data of asynchronously processed packets in non-legacy modes - crypto: fix EIA2 IV length in API documentation - packet: clarify odp_packet_has_vlan() and odp_packet_has_vlan_qinq() specifications Removed deprecated APIs: - crypto: per-session IV configuration - pktio: in_unknown_protos field from odp_pktio_stats_t - pktio: odp_pktin_ts_res() function - pktio: odp_pktin_ts_from_ns() function - shm: ODP_SHM_SW_ONLY define - tm: odp_tm_capabilities() function - tm: commit_bps field from odp_tm_shaper_params_t - tm: peak_bps field from odp_tm_shaper_params_t Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-12-02api: increment ODP API version to 1.39.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - cls: deprecate odp_cos_with_l2_priority() function - cls: deprecate packet drop policy option and related functions - shm: disallow usage of invalid SHM handles with odp_shm_info() Backward compatible: - buffer: add multi variants of event conversion functions - cls: add PFC priority level to back pressure parameters - cls: clarify PMR specification for the case of multiple PMRs matching within a CoS - crypto: fix a stale reference to renamed hash_result_not_in_auth_range session parameter - packet: add support for additional L3 and L4 protocol types - pktio: add ODP_PKTIN_MAX_QUEUES define for maximum number of packet input queues - pktio: add new packet input queue size configuration option and matching capabilities - pktio: add missing documentation to pktio link enumerations - pktio: add ODP_PKTIO_LINK_PFC_ON enumeration for PFC flow control mode - pktio: add capabilities and configuration parameters to control reception and transmission of Ethernet pause frames - shm: add odp_shm_segment_info() function for retrieving information about each memory segment of an SHM block - shm: clarified odp_shm_reserve() operation with the default options (no flags) - system: add odp_system_meminfo() function for retrieving information about ODP memory usage Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-10-26Revert "test: misc: in installcheck, work around bug in legacy pkgconfig"Jere Leppänen
This reverts commit e924ab56a026b584aab1c10f7e7210a77d51bb9f. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Carl Wallen <carl.wallen@nokia.com>
2022-10-19test: misc: in installcheck, work around bug in legacy pkgconfigJere Leppänen
pkgconfig-0.27 returns linker option in the wrong order. Detect pkgconfig version and add the static libraries explicitly to the compiler command. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2022-10-19test: misc: build and run a test application during installcheckJere Leppänen
During installcheck, build and run a test application (odp_api_headers), to verify the install. When cross compiling, the application is built, but not run. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2022-09-30api: increment ODP API version to 1.38.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - pool: change odp_pool_capability_t.pkt.max_uarea_size to state that the value of zero means user area is not supported - pool: specify that the default value of odp_pool_param_t.pkt.uarea_size is zero and implementation may round up the given value Backward compatible: - buffer: add odp_buffer_user_area() function which returns pointer to the user area - crypto: add experimental ZUC-256 support - packet: add odp_packet_vector_user_area() function which returns pointer to the user area - packet: add new user flag metadata to packets and packet vectors - pool: add user area size capability and parameter into buffer, timeout, and vector event pools - stash: add batch variants of all put/get functions and capabilities for maximum supported batch sizes - thread: clarify odp_thread_id() specification - timer: add odp_timeout_user_area() function which returns pointer to the user area Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-09-09configure: remove unused user_cflagsJere Leppänen
The variable user_cflags is not used, remove it. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2022-09-09configure: use ODP_*FLAGS instead of *FLAGSJere Leppänen
Instead of setting CFLAGS (and CXXFLAGS, LDFLAGS) in configure, use ODP_CFLAGS instead. Then, in main level Makefile.inc, set AM_CFLAGS based on ODP_CFLAGS. Consequently, program_CFLAGS will work as intended. Also, don't do AC_SUBST([LIBS]). LIBS is handled automatically, since it's a preset variable. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2022-07-14api: increment ODP API version to 1.37.2Matias Elo
Increment API version number to reflect the following changes: Backward compatible: - cpumask: allow usage of NULL pointer with odp_cpumask_default_worker() and odp_cpumask_default_control() calls - cpumask: clarify odp_cpumask_default_worker() and odp_cpumask_default_control() specifications - pktio: specify that interfaces that support promiscuous mode set operation have promiscuous mode disabled by default - pool: add new statistics counters for reading per thread pool cache usage - stash: add odp_stash_print() function for printing implementation specific debug information to the ODP log - stash: add statistics counters to stash API Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
2022-06-06configure: rename point to patch versionPetri Savolainen
Renamed the fourth digit of library version number to patch version, which is more commonly used term for this purpose. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
2022-06-06configure: clarify version number definesPetri Savolainen
ODP API version number consist of three digits (generation.major.minor), whereas ODP linux-generic library version number contains four digits (API version number + "point" version number). If a new linux-generic version is released/tagged without any API changes, only the "point" version number is incremented. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
2022-06-03api: increment ODP API version to 1.37.1Matias Elo
Increment API version number to reflect the following changes: Backward compatible: - pktio: clarify that LSO send handles small packets - stash: change get/put function parameter names - tm: add rate limit mode in shapers Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-05-06api: increment ODP API version to 1.37.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - cls: deprecate odp_cos_with_l3_qos() function Backward compatible: - cls: add new PMR term ODP_PMR_IP_DSCP - cls: add new PMR term ODP_PMR_VLAN_PCP_0 - cls: clarify ODP_PMR_ETHTYPE_0, ODP_PMR_VLAN_ID_0, and ODP_PMR_VLAN_ID_X PMR term specifications - cls: remove unused odp_cos_hdr_flow_fields_t enumeration - sched: add new odp_schedule_order_wait() function Implementation: - pktio: add new experimental AF_XDP socket based packet IO device Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-04-13api: increment ODP API version to 1.36.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - cls: add action parameter odp_cos_action_t to CoS parameters - crypto: deprecate odp_crypto_operation() and the associated data structures and the completion event - tm: split odp_tm_capabilities_t.tm_queue_threshold capability into byte and packet modes - tm: split odp_tm_level_capabilities_t.tm_node_threshold capability into byte and packet modes Backward compatible: - cls: add CoS specific statistics counters (odp_cls_cos_stats_t) and matching capabilities (odp_cls_stats_capability_t) - common: convert 'unsigned int' types to 'uint32_t' - tm: remove unused TM shaper color enum odp_tm_shaper_color_t and ODP_NUM_SHAPER_COLORS define Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2022-03-31configure: remove fallbacks for standard int types and inlineJanne Peltonen
Remove checking whether the compilation environment supports the inline keyword and the standard fixed-width integer types. This also removes the fallback preprocessor macros that autoconf would create if the keyword or some of the types were not supported. The checking and the fallback mechanism is unnecessary since ODP requires C11 and stdint.h. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-03-31configure: remove unused function and header checksJanne Peltonen
Remove checks for the existence of a set of function and header files. The HAVE_ macros resulting from the checks are not used for anything. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-03-03api: increment ODP API version to 1.35.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - sched: deprecate scheduling priority level defines ODP_SCHED_PRIO_HIGHEST, ODP_SCHED_PRIO_NORMAL, ODP_SCHED_PRIO_LOWEST, and ODP_SCHED_PRIO_DEFAULT - tm: change meaning of odp_tm_enq_multi() return value of zero from failure code to part of normal operation Backward compatible: - packet: remove references to deprecated odp_pktin_ts_res() and odp_pktin_ts_from_ns() functions - pktio: add ODP_PKTOUT_MAX_QUEUES define for the maximum number of packet output queues - pktio: add new packet output queue size configuration option odp_pktout_queue_param_t.queue_size and matching capabilities odp_pktio_capability_t.min_output_queue_size and odp_pktio_capability_t.max_output_queue_size - pktio: clarify odp_pktio_config() usage in the interface setup sequence - pktio: allow large send offload (LSO) usage with traffic manager - timer: clarify timer tick properties - timer: add new timer pool parameter odp_timer_pool_param_t.exp_mode - timer: add new odp_timer_start() and odp_timer_restart() functions - timer: add support for periodic timers - tm: add odp_tm_enq_multi_lso() function Removed deprecated APIs: - cls: ODP_PMR_INVAL define - crypto: old style cipher algorithm enumerations ODP_CIPHER_ALG_AES128_CBC and ODP_CIPHER_ALG_AES128_GCM - crypto: old style authentication algorithm enumerations ODP_AUTH_ALG_MD5_96, ODP_AUTH_ALG_SHA256_128, and ODP_AUTH_ALG_AES128_GCM - crypto: fields aes128_cbc and aes128_gcm from odp_crypto_cipher_algos_t - crypto: fields md5_96, sha256_128, and aes128_gcm from odp_crypto_auth_algos_t - crypto: data range specifier odp_crypto_data_range_t - crypto: iv field from odp_crypto_session_param_t - crypto: odp_crypto_session_params_t type - crypto: override_iv_ptr field from odp_crypto_op_param_t - crypto: override_iv_ptr field from odp_crypto_packet_op_param_t - crypto: odp_crypto_op_params_t type - crypto: odp_crypto_compl_status_t type - pktio: parser layer defines (ODP_PKTIO_PARSER_LAYER_*) - pktio: odp_pktio_capability_t.loop_supported capability - pktio: odp_pktio_mtu() function - queue: scheduled queue capabilities from odp_queue_capability_t - misc: odp.h header file replaced by odp_api.h Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-02-01api: increment ODP API version to 1.34.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - crypto: specify that the hash result field is not cleared in hash generation in encode sessions - crypto: specify that the hash result field is left to an undefined value after verification - crypto: add a new session parameter odp_crypto_session_param_t.hash_result_in_auth_range to indicate if the hash result location may overlap the authenticated range - crypto: define new fields for cipher and auth IV lengths in the session parameter structure odp_crypto_session_param_t. Deprecate the old fields for cipher and auth IV lengths. - crypto: deprecate the mechanism of configuring initialization vectors in sessions since reusing the same IV with the same key is almost always wrong. Require that IV is provided for each packet in the operation parameters. - tm: add capabilities to odp_tm_level_capabilities_t for platforms to express shaper rate and burst min and max limits - tm: remove support for min and max shaper rate via platform defined macros ODP_TM_MIN_SHAPER_BW and ODP_TM_MAX_SHAPER_BW Backward compatible: - crypto: clarify that in case of AEAD algorithms the odp_crypto_op_param_t.auth_range parameter is not used, except with AES-GMAC. - crypto: clarify ODP_AUTH_ALG_AES_GMAC API text to not sound as if ODP did not use AAD as defined in the GMAC algorithm specification - crypto: make the names of session creation errors (odp_crypto_ses_create_err_t) a bit shorter but retain the old names for backward compatibility - crypto: add crypto session creation error codes (odp_crypto_ses_create_err_t) for cases where the requested combination of algorithms, order of algorithms or other combination of creation parameters is not supported. - random: explicitly state that the same series of odp_random_test_data() calls is required to generate the same data - tm: clarify that peak rate and peak burst are ignored when dual rate is set to false in odp_tm_shaper_params_t, indicating that the single rate is commit rate. - tm: define the default values for many parameters to be set by various init functions ABI: - Removed mips64 architecture support. MIPS devices may still use ODP by utilizing the generic default architecture. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2022-01-28arch: remove mips64 architecture supportMatias Elo
MIPS architecture is not used anymore by any relevant HW platforms and the development of the architecture has ceased. Remove mips64 architecture specific files to ease codebase maintenance. MIPS devices may still use ODP by utilizing the generic default architecture. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
2021-12-10api: increment ODP API version to 1.33.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - shm: added a bit mask capability odp_shm_capability_t.flags for ODP_SHM_* flags - timer: added initialization function odp_timer_pool_param_init() for timer pool parameters. Application must use it to initialize parameters to their default values. Backward compatible: - classifier: added missing default values for odp_cls_cos_param_t.num_queue, odp_cls_cos_param_t.red.enable, odp_cls_cos_param_t.bp.enable, and odp_pmr_param_t.range_term - crypto: clarified that odp_crypto_session_create() parameters, including the key and IV data, can be freed after session creation. - dma: added new DMA module which enables applications to offload memory transfers (copies) to DMA hardware. See include/odp/api/spec/dma.h for more information. - ipsec: added possibility to request completed packets as packet vector events instead of packet events - ipsec: clarified that odp_ipsec_sa_create() parameters, including the various memory buffers pointed to by the parameters, can be freed after SA creation. - packet_io: clarified odp_pktin_vector_config_t.enable documentation to state that when packet vectors are enabled, packets may be delivered both as packet vector events and packet events. Packet vectors are disabled by default. - packet_io: clarified that the type of input queues is deduced from the pktio input mode in odp_pktin_queue_config(), and that the default queue type value and the queue type value passed in odp_pktin_queue_param_t.queue_param are ignored. - pool: added new pool type for DMA completion event pools. These pools are created with odp_dma_pool_create() and pool capability is included in odp_dma_capability_t. Otherwise, pool APIs are used normally for these pools. - shm: added ODP_SHM_NO_HP flag which can be used to prevent the implementation from allocating the shared memory block from huge pages - std: added DMA flag to odp_feature_t Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-12-08configure: move openssl options under linux-gen platformMatias Elo
OpenSSL crypto and random implementations are platform specific, so move the configuration options under linux-genec platform. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-11-25configure: add option to disable openssl randomJere Leppänen
Add configure option --disable-openssl-rand, which disables the use of OpenSSL RAND_bytes() to generate basic random and crypto random data. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2021-11-12api: increment ODP API version to 1.32.1.0Matias Elo
Increment API version number to reflect the following changes: Backward compatible: - init: added odp_instance() function for reading the current ODP instance handle - ipsec: clarified bit field unions' 'all' member intended usage - packet: clarified odp_proto_chksums_t.all_chksum intended usage - packet_io: clarified odp_pktin_hash_proto_t.all_bits intended usage - pool: added odp_pool_print_all() function for printing implementation defined information about all created pools to the ODP log - pool: clarified odp_pool_param_t.pkt.seg_len documentation - stash: added 32-bit only odp_stash_put_u32() and odp_stash_get_u32() functions - stash: added 64-bit only odp_stash_put_u64() and odp_stash_get_u64() functions - stash: added pointer only odp_stash_put_ptr() and odp_stash_get_ptr() functions Helper library (1.3.0): Backward incompatible: - cli: removed unused instance parameter from odph_cli_init() - deprecation: added a framework to enable controlled API deprecation - linux: deprecated odph_odpthreads_create() function. Use odph_thread_create() instead. - linux: deprecated odph_odpthreads_join() function. Use odph_thread_join() instead. - linux: deprecated unused odph_thread_param_t.instance struct member - linux: deprecated odph_odpthread_t and odph_odpthread_params_t types Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-11-12helper: implement deprecationJere Leppänen
Implement deprecation in the helper library. Deprecated helper APIs may be enabled with the --enable-helper-deprecated configure option. By default, deprecated helper APIs are not enabled. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-10-12configure.ac: move project to C standard revision 11Matias Elo
Some C11 features (e.g. anonymous structures and unions) have been already used by the project. Move from C99 to C11 to be standard compliant and enable usage of new features. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-10-12configure.ac: break long linesLifang Zhang
Break long lines into multiple ones to improve readability. Signed-off-by: Lifang Zhang <lifang.zhang@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-10-01api: increment ODP API version to 1.32.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: * ipsec: added destination queue capabilities odp_ipsec_capability_t.queue_type_sched and odp_ipsec_capability_t.queue_type_plain * ipsec: modified specification to not promise the original packet back after all error cases Backward compatible: - ipsec: added original ESP/AH packet length into IPsec packet result (odp_ipsec_packet_result_t.orig_ip_len) - packet: added odp_packet_reass_info() function for reading completed reassembly details - std: moved all contents of support and feature modules into ODP Std module Helper library (1.2.0): Backward incompatible: - cli: replaced odph_cli_start() function with odph_cli_run(), which doesn't automatically create a separate thread for running the CLI server. - linux: deprecated odph_odpthread_t and odph_odpthread_params_t types - linux: added odph_thread_param_init() function for initializing thread parameters - linux: added odph_thread_common_param_init() function for initializing thread common parameters Backward compatible: - cli: added odph_cli_param_t.hostname parameter for providing a custom CLI prompt hostname - cli: added odph_cli_log_va() function for user defined CLI commands - linux: added odph_thread_param_t.stack_size parameter for configuring minimum thread stack size - linux: added odph_thread_common_param_t.sync_timeout parameter for configuring synchronized thread creation timeout Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-07-21api: increment ODP API version to 1.31.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - traffic manager: added new feature capabilities and an egress specific capability function odp_tm_egress_capabilities() - traffic manager: deprecated odp_tm_capabilities() function which is replaced by odp_tm_egress_capabilities() - traffic manager: added maximum number of schedulers per TM node capability - traffic manager: added support for non-global packet priority mode Backward compatible: - classifier: added odp_cls_queue_stats() for reading queue specific statistics counters - ipsec: added ICV length into SA configuration parameters - packet: added odp_packet_disassemble(), odp_packet_reassemble(), and other new functions for packets allocated from external memory pools - packet: added per packet protocol statistics functions - packet_io: added packet output configuration option for enabling packet protocol statistics updates - pool: added new concept of external memory pools, which are populated with application provided memory - pool: added new odp_pool_type_t enumeration - proto_stats: added new generic protocol statistics framework - traffic manager: increased scheduling weight parameter size (uint8_t to uint32_t) - traffic manager: added odp_tm_queue_stats() for reading queue specific statistics counters - traffic manager: added odp_tm_enq_multi() function for enqueueing multiple packets at a time - traffic manager: added odp_tm_queue_params_t.ordered_enqueue option which can be used to control if ordering is enabled Helper library: - ipsec: added odph_ipsec_auth_icv_len_default() function for returning the default ICV length of an algorithm - ipsec: added support for AES-CMAC into odph_ipsec_alg_check() - ipsec: added default ICV length check into odph_ipsec_alg_check() Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com>
2021-06-23api: increment ODP API version to 1.30.1.0Matias Elo
Increment API version number to reflect the following changes: Backward compatible: - packet_io: added odp_pktio_stats_capability_t struct to odp_pktio_capability_t to inform about supported statistics counters - packet_io: added new statistics counters and related capabilities for received/transmitted multicast and broadcast Ethernet packets (in_mcast_pkts, in_bcast_pkts, out_mcast_pkts, out_bcast_pkts) - packet_io: added new pktio input/output queue specific statistics counters and related functions and capabilities - packet_io: added new functions for reading and printing ODP implementation specific custom packet IO statistics counters: odp_pktio_extra_stat_info() , odp_pktio_extra_stats(), odp_pktio_extra_stats_print() - packet_io: specified that loopback mode is disabled by default - packet_io: modified odp_pktio_stats_t.in_octets/out_octets definitions to not include CRC (4 bytes) - ipsec: specified default values for reassembly enables - scheduler: added odp_schedule_print() function for printing debug information about scheduler status into the ODP log - std_types: added odp_fract_u64_t type which can be used to define fractional numbers accurately - std_types: added odp_fract_u64_to_dbl() function for converting odp_fract_u64_t fractional numbers into doubles - timer: added timer tick info as part of odp_timer_pool_info_t. This enables timer implementation to specify tick frequency and duration very accurately. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-06-01api: increment ODP API version to 1.30.0.0Matias Elo
Increment API version number to reflect the following changes: Backward compatible: - traffic manager: add option to enable packet mode shaper (packets per second as opposed to bits per second) - packet io: specify explicitly that an application may enqueue to packet input side event queues, and cannot dequeue from output side event queues - ipsec: include success bytes in stats (odp_ipsec_stats_t.success_bytes) - time: added new time stamp read functions which read time stamp value more strictly in the program order: odp_time_local_strict(), odp_time_local_strict_ns(), odp_time_global_strict(), odp_time_global_strict_ns() - timer: added new default clock source enumeration ODP_CLOCK_DEFAULT (=ODP_CLOCK_SRC_0) and support for multiple clock sources (ODP_CLOCK_SRC_1, ODP_CLOCK_SRC_2...). The old ODP_CLOCK_CPU and ODP_CLOCK_EXT enumerations will be deprecated in the future. - timer: rename set operation return codes (odp_timer_set_t) to better document expiration time position to current time: ODP_TIMER_TOOEARLY -> ODP_TIMER_TOO_NEAR ODP_TIMER_TOOLATE -> ODP_TIMER_TOO_FAR - timer: rename set operation failure code (odp_timer_set_t) to cover all error cases: ODP_TIMER_NOEVENT -> ODP_TIMER_FAIL Backward incompatible: - traffic manager: add new mandatory odp_tm_start() and odp_tm_stop() calls for starting and stopping traffic manager system - traffic manager: add capabilities (odp_tm_capabilities_t) for supported dynamic configuration updates - traffic manager: deprecate shaper commit information rate bps (odp_tm_shaper_params_t.commit_bps) and peak information rate bps (odp_tm_shaper_params_t.peak_bps) fields. odp_tm_shaper_params_t.commit_rate and odp_tm_shaper_params_t.peak_rate fields should be used instead. Helper library: - cli: added new mandatory odph_cli_init() and odph_cli_term() functions for initializing and terminating the helper - cli: added odph_cli_register_command() function for registering user defined commands Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-06-01helper: increment library version to 1.1.0Jere Leppänen
Increment helper library version number due to changes in CLI helper API. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-05-06api: increment ODP API version to 1.29.0.0Matias Elo
Increment API version number to reflect the following changes: Backward incompatible: - Modified packet IO statistics counters (odp_pktio_stats_t) definitions - Deprecated packet IO statistics field odp_pktio_stats_t.in_unknown_protos Backward compatible: - New APIs for inline IP reassembly offload for packet input and IPsec - New odp_log_thread_fn_set() function for setting a thread specific log function - New packet IO statistics counters odp_pktio_stats_t.in_packets/out_packets Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-04-23configure: change abi compatibility default value to disabledMatias Elo
Disable ABI compatibility by default. This way the ODP implementation will offer the best available performance without the user having to change the default configuration. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-04-01api: increment ODP API version to 1.28.0Matias Elo
Increment API version number to reflect the following changes: Backward-incompatible: - New crypto capabilities for defining if a queue type (scheduled/plain) can be used as a crypto completion event destination Backward-compatible: - New packet TX completion event type and related functions - New packet APIs for requesting packet TX completion events - New packet APIS for requesting packet TX drop based on packet age - New odp_cls_print_all() function for printing implementation specific debug information about all classifier rules - New enumerations for ARMv8.7-A, ARMv9.0-A, ARMv9.1-A, and ARMv9.2-A ISA versions Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-03-18configure: allow user to override *FLAGSJere Leppänen
Place user provided options at the end of CFLAGS, CXXFLAGS and LDFLAGS, so that they override other options. This way we also don't have to refrain from using the -march option just because user has provided some CFLAGS. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-03-10configure.ac: remove obsolete autoconf macroAshwin Sekhar T K
Replace obsolete autoconf macro AM_CONFIG_HEADER with AC_CONFIG_HEADERS. Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-02-23api: increment ODP API version to 1.27.0Matias Elo
Increment API version number to reflect the following changes: Backward-incompatible: - IPsec post-processing happens in the odp_ipsec_result() function that must be called at least once before packet data or metadata may be accessed. Backward-compatible: - New 128-bit atomic operations: init, store, load, and CAS - Clarify that atomic CAS operations are strong type - New odp_ipsec_test_sa_update() function for SA testing - odp_ipsec_sa_info() may return non-exact copy of SA parameters - Specify default values for more IPsec SA parameter fields - Changed odp_timer_alloc() user context pointer argument to const - New odp_timer_pool_print() function for printing timer pool debug information - New odp_timer_print() function for printing timer debug information - New odp_timeout_print() function for printing timeout debug information - New odp_queue_print_all() function for printing debug information about all queues Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-02-23helper: increment library version to 1.0.6Jere Leppänen
Increment helper library version number to reflect the addition of CLI helper. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-02-23helper: add CLI helper API and implementationJere Leppänen
CLI helper API allows starting and stopping ODP CLI server, which may be connected to using a telnet client. CLI commands may be used to get information from an ODP instance, for debugging purposes. This implementation depends on libcli. If libcli is not available, CLI helper is automatically excluded. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-02-23helper: create autoheaderJere Leppänen
Create autoheader_external for helper and move there the ODPH_* defines from odp autoheader_external. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-02-08api: increment ODP API version to 1.26.0Matias Elo
Increment API version number to reflect the following changes: Backward-incompatible: - Only ODP_SCHED_NO_WAIT variants of schedule calls are allowed after calling odp_schedule_pause() - IPsec config must have been completed before enabling inbound inline IPsec in pktio Backward-compatible: - New odp_pktio_maxlen_set() function (and related capabilities) for configuring input/output maximum frame lengths - New Large Send Offload (LSO) APIs - Clarify odp_schedule_capability_t.max_groups capability definition - Added configure option to enable/disable predefined scheduling groups Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-02-08helper: increment library version to 1.0.5Matias Elo
Increment helper library version number to reflect the addition of new IPsec algorithm support check function odph_ipsec_alg_check(). Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>