Releases: OpenDataPlane/odp
Releases · OpenDataPlane/odp
v1.38.0.0
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 callodp_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
OpenDataPlane (1.37.2.0)
Backward compatible API changes
CPU Mask
- Allow usage of NULL pointer with
odp_cpumask_default_worker()
andodp_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()
andodp_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 inodp_stash_create()
and read withodp_stash_stats()
.
v1.37.1.0
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 thanmax_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
OpenDataPlane (1.37.0.0)
Backward incompatible API changes
Classifier
- Deprecate
odp_cos_with_l3_qos()
function. Use newODP_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
, andODP_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
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. Useodp_crypto_op()
orodp_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 withodp_cls_cos_stats()
.
Common
- Convert
unsigned int
types touint32_t
.
Traffic Manager
- Remove unused TM shaper color enum
odp_tm_shaper_color_t
andODP_NUM_SHAPER_COLORS
define.
v1.35.0.0
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
, andODP_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()
andodp_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 capabilitiesodp_pktio_capability_t.min_output_queue_size
andodp_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()
andodp_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
andODP_CIPHER_ALG_AES128_GCM
. - Remove deprecated old style authentication algorithm enumerations
ODP_AUTH_ALG_MD5_96
,ODP_AUTH_ALG_SHA256_128
, andODP_AUTH_ALG_AES128_GCM
. - Remove deprecated fields
aes128_cbc
andaes128_gcm
fromodp_crypto_cipher_algos_t
. - Remove deprecated fields
md5_96
,sha256_128
, andaes128_gcm
fromodp_crypto_auth_algos_t
. - Remove deprecated data range specifier
odp_crypto_data_range_t
. - Remove deprecated
iv
field fromodp_crypto_session_param_t
. - Remove deprecated
odp_crypto_session_params_t
type. - Remove deprecated
override_iv_ptr
field fromodp_crypto_op_param_t
. - Remove deprecated
override_iv_ptr
field fromodp_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 byodp_api.h
.
v1.34.0.0
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
andODP_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
OpenDataPlane (1.33.0.0)
Backward incompatible API changes
Shared Memory
- Added a bit mask capability
odp_shm_capability_t.flags
forODP_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
, andodp_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 usingodp_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 inodp_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 inodp_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
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()
andodp_stash_get_u32()
functions - Added 64-bit only
odp_stash_put_u64()
andodp_stash_get_u64()
functions - Added pointer only
odp_stash_put_ptr()
andodp_stash_get_ptr()
functions
Helper (1.3.0)
Backward incompatible changes
CLI
- Removed unused
instance
parameter fromodph_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. Useodph_thread_create()
instead. - Deprecated
odph_odpthreads_join()
function. Useodph_thread_join()
instead. - Deprecated unused
odph_thread_param_t.instance
struct member - Deprecated
odph_odpthread_t
andodph_odpthread_params_t
types
v1.32.0.0
OpenDataPlane (1.32.0.0)
Backward incompatible API changes
IPsec
- Added destination queue capabilities
odp_ipsec_capability_t.queue_type_sched
andodp_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 withodph_cli_run()
, which doesn't automatically create a separate thread for running the CLI server.
Linux
- Deprecated
odph_odpthread_t
andodph_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.