Skip to content

Releases: OpenDataPlane/odp

v1.38.0.0

30 Sep 08:01
Compare
Choose a tag to compare

OpenDataPlane (1.38.0.0)

Backward incompatible API changes

Pool

  • Change odp_pool_capability_t.pkt.max_uarea_size specification to state that the value of zero means user area is not supported.
  • 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 API changes

Buffer

  • Add odp_buffer_user_area() function which returns pointer to the user area configured with pool create parameters.

Crypto

  • Add experimental ZUC-256 support.

Packet

  • Add odp_packet_vector_user_area() function which returns pointer to the user area configured with pool create parameters.
  • Add new user flag metadata to packets (odp_packet_user_flag(), odp_packet_user_flag_set()) and packet vectors (odp_packet_vector_user_flag(), odp_packet_vector_user_flag_set()).

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 to state that thread IDs are assigned sequentially starting from 0 in the order threads call odp_init_local().

Timer

  • Add odp_timeout_user_area() function which returns pointer to the user area configured with pool create parameters.

v1.37.2.0

15 Jul 05:13
Compare
Choose a tag to compare

OpenDataPlane (1.37.2.0)

Backward compatible API changes

CPU Mask

  • Allow usage of NULL pointer with odp_cpumask_default_worker() and odp_cpumask_default_control() calls. This enables applications to check the number of worker/control CPUs without allocating a temporary mask.
  • Clarify odp_cpumask_default_worker() and odp_cpumask_default_control() specifications to mention that system may allow usage of other CPUs as well.

Packet IO

  • Specify that interfaces that support promiscuous mode set operation have promiscuous mode disabled by default.

Pool

  • Add new statistics counters (odp_pool_stats_t.thread.cache_available) for reading per thread pool cache usage.

Stash

  • Add odp_stash_print() function for printing implementation specific debug information to the ODP log.
  • Add statistics counters to stash API. Counter support is defined by stash capabilities (odp_stash_capability_t.stats). Supported counters can be enabled in odp_stash_create() and read with odp_stash_stats().

v1.37.1.0

03 Jun 07:39
Compare
Choose a tag to compare

OpenDataPlane (1.37.1.0)

Backward compatible API changes

Packet IO

  • Clarify that odp_pktout_send_lso() can be used also for packets that have payload less than max_payload_len bytes.

Stash

  • Change 32-bit and 64-bit specific get/put functions' parameter names to avoid name conflicts.

Traffic Manager

  • Add option to do rate limiting instead of rate shaping in TM nodes and queues.

v1.37.0.0

06 May 11:50
Compare
Choose a tag to compare

OpenDataPlane (1.37.0.0)

Backward incompatible API changes

Classifier

  • Deprecate odp_cos_with_l3_qos() function. Use new ODP_PMR_IP_DSCP PMR term instead.

Backward compatible API changes

Classifier

  • Add new PMR term enumeration ODP_PMR_IP_DSCP for Differentiated Services Code Point (DSCP) bits in IP header.
  • Add new PMR term enumeration ODP_PMR_VLAN_PCP_0 for Priority Code Point (PCP) bits in VLAN header.
  • Clarify ODP_PMR_ETHTYPE_0, ODP_PMR_VLAN_ID_0, and ODP_PMR_VLAN_ID_X PMR term specifications.
  • Remove unused odp_cos_hdr_flow_fields_t enumeration.

Scheduler

  • Add new odp_schedule_order_wait() function which waits until the currently held scheduling context is the first in order.

Implementation

Packet IO

  • Add new experimental AF_XDP socket based packet IO device.

v1.36.0.0

13 Apr 14:34
Compare
Choose a tag to compare

OpenDataPlane (1.36.0.0)

Backward incompatible API changes

Classifier

  • Add an action parameter odp_cos_action_t to CoS parameters (odp_cls_cos_param_t). Action may be to enqueue or drop the packet classified to the CoS. The old methods of creating a drop CoS have been replaced by the new drop action.

Crypto

  • Deprecate odp_crypto_operation(), the associated data structures, and the completion event. Use odp_crypto_op() or odp_crypto_op_enq() instead.

Traffic Manager

  • Split odp_tm_capabilities_t.tm_queue_threshold capability into byte and packet modes.
  • Split odp_tm_level_capabilities_t.tm_node_threshold capability into byte and packet modes.

Backward compatible API changes

Classifier

  • Add CoS specific statistics counters (odp_cls_cos_stats_t) and matching capabilities (odp_cls_stats_capability_t). Statistics counters can be read with odp_cls_cos_stats().

Common

  • Convert unsigned int types to uint32_t.

Traffic Manager

  • Remove unused TM shaper color enum odp_tm_shaper_color_t and ODP_NUM_SHAPER_COLORS define.

v1.35.0.0

03 Mar 15:31
Compare
Choose a tag to compare

OpenDataPlane (1.35.0.0)

Backward incompatible API changes

Scheduler

  • Deprecate scheduling priority level defines ODP_SCHED_PRIO_HIGHEST, ODP_SCHED_PRIO_NORMAL, ODP_SCHED_PRIO_LOWEST, and ODP_SCHED_PRIO_DEFAULT. These defines have been replaced by matching functions.

Traffic Manager

  • Change meaning of odp_tm_enq_multi() return value of zero from failure code to part of normal operation.

Backward compatible API changes

Packet

  • Remove references to deprecated odp_pktin_ts_res() and odp_pktin_ts_from_ns() functions.

Packet IO

  • Add ODP_PKTOUT_MAX_QUEUES define for the maximum number of packet output queues.
  • 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.
  • Clarify odp_pktio_config() usage in the interface setup sequence.
  • Allow large send offload (LSO) usage with traffic manager (odp_pktio_config_t.enable_lso).

Timer

  • Clarify timer tick properties and especially that it may run with a higher frequency than the requested timer pool resolution.
  • Add new timer pool parameter (odp_timer_pool_param_t.exp_mode), which application can use to select if timer expiration may happen before or only after the specified time.
  • Add new odp_timer_start() and odp_timer_restart() functions.
  • Add support for periodic timers. New capabilities, parameters, and functions are added to create/start/ack periodic timers.

Traffic Manager

  • Add odp_tm_enq_multi_lso() function which does also LSO as part of the TM
    output operation.

Remove deprecated APIs

Classifier

  • Remove deprecated ODP_PMR_INVAL define.

Crypto

  • Remove deprecated old style cipher algorithm enumerations ODP_CIPHER_ALG_AES128_CBC and ODP_CIPHER_ALG_AES128_GCM.
  • Remove deprecated old style authentication algorithm enumerations ODP_AUTH_ALG_MD5_96, ODP_AUTH_ALG_SHA256_128, and ODP_AUTH_ALG_AES128_GCM.
  • Remove deprecated fields aes128_cbc and aes128_gcm from odp_crypto_cipher_algos_t.
  • Remove deprecated fields md5_96, sha256_128, and aes128_gcm from odp_crypto_auth_algos_t.
  • Remove deprecated data range specifier odp_crypto_data_range_t.
  • Remove deprecated iv field from odp_crypto_session_param_t.
  • Remove deprecated odp_crypto_session_params_t type.
  • Remove deprecated override_iv_ptr field from odp_crypto_op_param_t.
  • Remove deprecated override_iv_ptr field from odp_crypto_packet_op_param_t.
  • Remove deprecated odp_crypto_op_params_t type.
  • Remove deprecated odp_crypto_compl_status_t type.

Packet IO

  • Remove deprecated parser layer defines (ODP_PKTIO_PARSER_LAYER_*).
  • Remove deprecated odp_pktio_capability_t.loop_supported capability.
  • Remove deprecated odp_pktio_mtu() function.

Queue

  • Remove deprecated scheduled queue capabilities from odp_queue_capability_t.

Miscellaneous

  • Remove deprecated odp.h header file which has been replaced by odp_api.h.

v1.34.0.0

02 Feb 06:22
Compare
Choose a tag to compare

OpenDataPlane (1.34.0.0)

Backward incompatible API changes

Crypto

  • Specify that hash result field is not cleared in hash generation in encode sessions. Applications can do the clearing if needed if the hash result lies within the authenticated range.
  • Specify that the hash result field is left to an undefined value after verification.
  • 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. Leaving the flag unset may enable optimizations in the implementation.
  • Define new fields for cipher and auth IV lengths in the session parameter structure odp_crypto_session_param_t. Deprecated the old fields for cipher and auth IV lengths.
  • 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.

Traffic Manager

  • Add capabilities to odp_tm_level_capabilities_t for platforms to express shaper rate and burst min and max limits.
  • Remove support for min and max shaper rate via platform defined macros ODP_TM_MIN_SHAPER_BW and ODP_TM_MAX_SHAPER_BW. Min and Max shaper bandwidths can be read from TM per level capabilities (odp_tm_level_capabilities_t).

Backward compatible API changes

Crypto

  • Clarify that in case of AEAD algorithms the odp_crypto_op_param_t.auth_range parameter is not used, except with AES-GMAC.
  • 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.
  • Make the names of session creation errors (odp_crypto_ses_create_err_t) a bit shorter but retain the old names for backward compatibility.
  • 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.

Traffic Manager

  • 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.
  • Define the default values for many parameters to be set by various init functions.

ABI changes

  • Removed mips64 architecture support. MIPS devices may still use ODP by utilizing the generic default architecture.

v1.33.0.0

10 Dec 08:19
Compare
Choose a tag to compare

OpenDataPlane (1.33.0.0)

Backward incompatible API changes

Shared Memory

  • 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 API changes

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. Packet vector capabilities are provided by odp_ipsec_capability_t.vector and the configuration is done using odp_ipsec_config_t.vector.
  • 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.
  • Clarified that the type of input queues (scheduled versus plain) 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.

Shared Memory

  • 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

v1.32.1.0

12 Nov 11:51
Compare
Choose a tag to compare

OpenDataPlane (1.32.1.0)

Backward compatible API changes

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
  • Clarified odp_pool_param_t.pkt.seg_len documentation

Stash

  • Added 32-bit only odp_stash_put_u32() and odp_stash_get_u32() functions
  • Added 64-bit only odp_stash_put_u64() and odp_stash_get_u64() functions
  • Added pointer only odp_stash_put_ptr() and odp_stash_get_ptr() functions

Helper (1.3.0)

Backward incompatible changes

CLI

  • Removed unused instance parameter from odph_cli_init()

Deprecation Framework

Added a deprecation framework to enable controlled API deprecation.

When a helper API is deprecated, validation tests will be updated to use the replacement API. By
default, attempts to compile code with deprecated helper APIs will fail. To make moving to a new API
version easier, helper library supports --enable-helper-deprecated configure option, which makes
the deprecated APIs visible again.

Linux

  • Deprecated odph_odpthreads_create() function. Use odph_thread_create() instead.
  • Deprecated odph_odpthreads_join() function. Use odph_thread_join() instead.
  • Deprecated unused odph_thread_param_t.instance struct member
  • Deprecated odph_odpthread_t and odph_odpthread_params_t types

v1.32.0.0

01 Oct 07:47
Compare
Choose a tag to compare

OpenDataPlane (1.32.0.0)

Backward incompatible API changes

IPsec

  • Added destination queue capabilities odp_ipsec_capability_t.queue_type_sched and odp_ipsec_capability_t.queue_type_plain
  • Modified specification to not promise the original packet back after all error cases

Backward compatible API changes

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 (1.2.0)

Backward incompatible changes

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
  • Added odph_thread_param_init() function for initializing thread parameters
  • Added odph_thread_common_param_init() function for initializing thread common parameters

Backward compatible changes

CLI

  • Added odph_cli_param_t.hostname parameter for providing a custom CLI prompt hostname
  • 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
  • Added odph_thread_common_param_t.sync_timeout parameter for configuring synchronized thread creation timeout

Implementation

Crypto

  • AES-EEA2 and AES-EIA2 crypto algorithms that operate in bit mode interpret the crypto/auth offset now as bits as specified in the ODP API. This correction requires corresponding changes in applications that have relied on the old, incorrect behavior that interpreted the offset in bytes.