diff mbox

[NEXT,PATCHv2] changelog: summary of changes for odp v1.13.0.0

Message ID 20170113161404.20152-1-bill.fischofer@linaro.org
State Accepted
Commit b99095485be4ac14d16bef372b5c6521b396abaa
Headers show

Commit Message

Bill Fischofer Jan. 13, 2017, 4:14 p.m. UTC
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

---
 CHANGELOG | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 178 insertions(+)

-- 
2.9.3

Comments

Maxim Uvarov Jan. 13, 2017, 6:26 p.m. UTC | #1
Looks good for me.

Maxim.

On 01/13/17 19:14, Bill Fischofer wrote:
> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

> ---

>  CHANGELOG | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

>  1 file changed, 178 insertions(+)

> 

> diff --git a/CHANGELOG b/CHANGELOG

> index 17afe44..72bf225 100644

> --- a/CHANGELOG

> +++ b/CHANGELOG

> @@ -1,3 +1,181 @@

> +== OpenDataPlane (1.13.0.0)

> +

> +=== New Features

> +

> +==== APIs

> +ODP v1.13.0.0 represents the initial preview of the Tiger Moth release series

> +and as such introduces new APIs and extensions that will be built on as this

> +release matures.

> +

> +===== Crypto Parameter Normalization

> +Many ODP APIs take parameter structs of type `odp_xxx_param_t`. The crypto APIs,

> +for historical reasons, failed to follow this convention, using instead structs

> +of type `odp_crypto_params_t`, etc. These pluralized names are now deprecated

> +and their singular forms are introduced as the preferred names for these

> +structs. The old names are retained (for now) to ease migration, however

> +applications should convert to the new forms at their convenience as these

> +deprecated forms will be removed in the final Tiger Moth release.

> +

> +The changes introduced for this include:

> +

> +* `odp_crypto_op_params_t` => `odp_crypto_op_param_t`

> +* `odp_crypto_session_params_t` => `odp_crypto_session_param_t`

> +

> +===== Crypto Decouple Key Length from Algorithm Specification

> +To provide a more flexible programming for handling all possible

> +key/digest/iv length combinations, the enums used for crypto specification

> +are split to decouple lengths from algorithm names. The only exception

> +is the SHA-2 family of hash routines, which have well-established naming

> +conventions that incorporate digest lengths (SHA-224, SHA-256, etc.)

> +

> +Changes included with this restructure include:

> +

> +* The `odp_crypto_capability_t` structure returned by the

> +`odp_crypto_capability()` API contains streamlined `odp_crypto_cipher_algos_t`

> +and `odp_crypto_auth_algos_t` substructures.

> +* A new `odp_crypto_cipher_capability()` API is added to return detailed

> +information about available cipher capabilities.

> +* A new `odp_crypto_auth_capability()` API is added to return detailed

> +information about available authentication capabilities.

> +

> +===== `odp_crypto_session_param_init()` API

> +For completeness the `odp_crypto_session_param_init()` API is provided to

> +enable platform-independent initialization of the `odp_crypto_session_param_t`

> +structure used as input to `odp_crypto_session_create()`.

> +

> +===== Bitfield and Byteorder Cleanup

> +The `ODP_BITFIELD_ORDER` define is added to the ODP specification to parallel

> +the existing `ODP_BYTEFIELD_ORDER` define. This will be set to the value

> +`ODP_BIG_ENDIAN_BITFIELD` or `ODP_LITTLE_ENDIAN_BITFIELD`. This also addresses

> +https://bugs.linaro.org/show_bug.cgi?id=2402[Bug 2402], however since fixing

> +this required a small API change this was deferred until an API release

> +boundary.

> +

> +===== Improved Name Argument Definitions in `odp_xxx_create()` Functions

> +The use of name arguments to the various resource creation APIs has

> +been standardized and documentation improved to clarify that unique

> +names are not required and that these may be specified as NULL for

> +anonymous resource creation. When non-unique resource names are used, it is

> +unspecified which of these are returned by a corresponding lookup API.

> +

> +===== Pool Parameters for Packet Pools

> +The `odp_pool_param_t` structure adds the new field `max_len` to be used in

> +packet pools to advise the implementation of the maximum sized packet that

> +the application will allocate with a single `odp_packet_alloc()` call. This

> +may enable storage pool optimization.

> +

> +===== Packet Clarifications

> +API documentation for `odp_packet_concat()` and `odp_packet_copy_from_pkt()`

> +is clarified to specify that the source and destination packets supplied to

> +these APIs should not refer to the same packet.

> +

> +===== Packet Allocation Length Clarification

> +API documentation for `odp_packet_alloc()` is clarified to specify that

> +the supplied length for requested packet allocation should be greater

> +than zero.

> +

> +===== Random API Changes

> +The APIs provided for working with random data have been revised. The third

> +parameter to `odp_random_data()` is now of type `odp_random_kind_t`, which is

> +an `enum` that is used to specify the quality of random data required. The

> +kinds of random data defined are:

> +

> +`ODP_RANDOM_BASIC`::

> +No specific quality guarantees. This is assumed to be pseudo-random data

> +generated by software where speed of generation is more important than the

> +quality of the results.This is the lowest kind of random.

> +

> +`ODP_RANDOM_CRYPTO`::

> +Random data suitable for use in cryptographic operations.

> +

> +`ODP_RANDOM_TRUE`::

> +True random data generated from a hardware entropy source. This is the

> +highest kind of random.

> +

> +The `odp_random_max_kind()` API is provided that returns the highest kind of

> +data available on this implementation. Requests for higher kinds than can be

> +supplied will fail.

> +

> +For testing purposes it is often desirable to generate "random" sequences that

> +are repeatable. To support this use case, the `odp_random_test_data()` API is

> +introduced. This always returns BASIC random data but uses a user-supplied

> +64-byte seed parameter that is update for each call and can be used to

> +repeat the same sequence as needed.

> +

> +===== Shared Memory Improvements

> +The `odp_shm_reserve()` API adds two new additional flags to support external

> +memory.

> +

> +* `ODP_SHM_SINGLE_VA` guarantees that all ODP threads sharing this memory

> +will see the block at the same virtual address regardless of whether threads

> +are implemented as pthreads or processes and when `fork()` calls are made to

> +create them.

> +

> +* `ODP_SHM_EXPORT` allows the memory block to be visible to other ODP

> +instances. Other ODP instances can retrieve this block via the new

> +`odp_shm_import()` API.

> +

> +===== Classification Clarifications

> +The relationship between classification and queue configuration in the

> +`odp_pktin_queue_param_t` structure is clarified to emphasize that

> +classification subsumes queue-based I/O processing. This is an API

> +documentation change only.

> +

> +=== Helpers

> +New helper APIs are introduced for IP table lookup support for longest prefix

> +matching as well as cuckoo hash tables. These are designed to provide analogs

> +to functions available in DPDK to assist applications being ported to ODP.

> +

> +=== Performance Improvements

> +The odp-linux reference implementation includes a number of improvements to

> +make it more suitable for production use on platforms that rely on software

> +implementations of key ODP APIs.

> +

> +==== Ring-based Pool Implementation

> +Storage pools used for buffers and packets are now implemented via lockless

> +ring structures that support burst mode read/writes to local caches for

> +significantly improved multi-core scalability

> +

> +==== Buffer/Packet Header Optimizations

> +The layout of the structs used to support buffers and packets has been

> +optimized to reduce cache footprint and minimize path lengths in packet

> +manipulation.

> +

> +==== Ordered Queue Improvements

> +The implementation of ordered queues has been streamlined and made more

> +scaleable in multi-core systems.

> +

> +==== Packet Segmentation Improvements

> +The more advance segmentation capabilities present in the new ODP packet

> +implementation are used to streamline the implementation of APIs like

> +`odp_packet_concat()` and the head/tail extend/trunc APIs.

> +

> +=== Bug Fixes

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2405[Bug 2405]

> +A number of "todos" were removed from the packet validation test suite.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2472[Bug 2472]

> +The CPU affinity is now correctly read from the cpuset.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2496[Bug 2496]

> +The PktIO validation test no longer uses invalid MAC addresses.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2512[Bug 2512]

> +The TCP checksum is now properly calculated for generated packets.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2798[Bug 2798]

> +The odp-linux reference implementation makes use of the OpenSSL library to

> +support the `odp_random_xxx()` APIs and some crypto operations. To support

> +OpenSSL versions prior to 1.1.0, which are not thread safe, support is added

> +for OpenSSL locking callbacks that use ODP ticketlocks to provide OpenSSL thread

> +safety.

> +

> +=== Known Issues

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]

> +Make check fails on a single core VM in the process mode helper test.

> +

>  == OpenDataPlane (1.12.0.0)

>  

>  === New Features

>
Mike Holmes Jan. 18, 2017, 3:29 p.m. UTC | #2
On 13 January 2017 at 11:14, Bill Fischofer <bill.fischofer@linaro.org> wrote:
> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>


Reviewed-by: Mike Holmes <mike.holmes@linaro.org>


> ---

>  CHANGELOG | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

>  1 file changed, 178 insertions(+)

>

> diff --git a/CHANGELOG b/CHANGELOG

> index 17afe44..72bf225 100644

> --- a/CHANGELOG

> +++ b/CHANGELOG

> @@ -1,3 +1,181 @@

> +== OpenDataPlane (1.13.0.0)

> +

> +=== New Features

> +

> +==== APIs

> +ODP v1.13.0.0 represents the initial preview of the Tiger Moth release series

> +and as such introduces new APIs and extensions that will be built on as this

> +release matures.

> +

> +===== Crypto Parameter Normalization

> +Many ODP APIs take parameter structs of type `odp_xxx_param_t`. The crypto APIs,

> +for historical reasons, failed to follow this convention, using instead structs

> +of type `odp_crypto_params_t`, etc. These pluralized names are now deprecated

> +and their singular forms are introduced as the preferred names for these

> +structs. The old names are retained (for now) to ease migration, however

> +applications should convert to the new forms at their convenience as these

> +deprecated forms will be removed in the final Tiger Moth release.

> +

> +The changes introduced for this include:

> +

> +* `odp_crypto_op_params_t` => `odp_crypto_op_param_t`

> +* `odp_crypto_session_params_t` => `odp_crypto_session_param_t`

> +

> +===== Crypto Decouple Key Length from Algorithm Specification

> +To provide a more flexible programming for handling all possible

> +key/digest/iv length combinations, the enums used for crypto specification

> +are split to decouple lengths from algorithm names. The only exception

> +is the SHA-2 family of hash routines, which have well-established naming

> +conventions that incorporate digest lengths (SHA-224, SHA-256, etc.)

> +

> +Changes included with this restructure include:

> +

> +* The `odp_crypto_capability_t` structure returned by the

> +`odp_crypto_capability()` API contains streamlined `odp_crypto_cipher_algos_t`

> +and `odp_crypto_auth_algos_t` substructures.

> +* A new `odp_crypto_cipher_capability()` API is added to return detailed

> +information about available cipher capabilities.

> +* A new `odp_crypto_auth_capability()` API is added to return detailed

> +information about available authentication capabilities.

> +

> +===== `odp_crypto_session_param_init()` API

> +For completeness the `odp_crypto_session_param_init()` API is provided to

> +enable platform-independent initialization of the `odp_crypto_session_param_t`

> +structure used as input to `odp_crypto_session_create()`.

> +

> +===== Bitfield and Byteorder Cleanup

> +The `ODP_BITFIELD_ORDER` define is added to the ODP specification to parallel

> +the existing `ODP_BYTEFIELD_ORDER` define. This will be set to the value

> +`ODP_BIG_ENDIAN_BITFIELD` or `ODP_LITTLE_ENDIAN_BITFIELD`. This also addresses

> +https://bugs.linaro.org/show_bug.cgi?id=2402[Bug 2402], however since fixing

> +this required a small API change this was deferred until an API release

> +boundary.

> +

> +===== Improved Name Argument Definitions in `odp_xxx_create()` Functions

> +The use of name arguments to the various resource creation APIs has

> +been standardized and documentation improved to clarify that unique

> +names are not required and that these may be specified as NULL for

> +anonymous resource creation. When non-unique resource names are used, it is

> +unspecified which of these are returned by a corresponding lookup API.

> +

> +===== Pool Parameters for Packet Pools

> +The `odp_pool_param_t` structure adds the new field `max_len` to be used in

> +packet pools to advise the implementation of the maximum sized packet that

> +the application will allocate with a single `odp_packet_alloc()` call. This

> +may enable storage pool optimization.

> +

> +===== Packet Clarifications

> +API documentation for `odp_packet_concat()` and `odp_packet_copy_from_pkt()`

> +is clarified to specify that the source and destination packets supplied to

> +these APIs should not refer to the same packet.

> +

> +===== Packet Allocation Length Clarification

> +API documentation for `odp_packet_alloc()` is clarified to specify that

> +the supplied length for requested packet allocation should be greater

> +than zero.

> +

> +===== Random API Changes

> +The APIs provided for working with random data have been revised. The third

> +parameter to `odp_random_data()` is now of type `odp_random_kind_t`, which is

> +an `enum` that is used to specify the quality of random data required. The

> +kinds of random data defined are:

> +

> +`ODP_RANDOM_BASIC`::

> +No specific quality guarantees. This is assumed to be pseudo-random data

> +generated by software where speed of generation is more important than the

> +quality of the results.This is the lowest kind of random.

> +

> +`ODP_RANDOM_CRYPTO`::

> +Random data suitable for use in cryptographic operations.

> +

> +`ODP_RANDOM_TRUE`::

> +True random data generated from a hardware entropy source. This is the

> +highest kind of random.

> +

> +The `odp_random_max_kind()` API is provided that returns the highest kind of

> +data available on this implementation. Requests for higher kinds than can be

> +supplied will fail.

> +

> +For testing purposes it is often desirable to generate "random" sequences that

> +are repeatable. To support this use case, the `odp_random_test_data()` API is

> +introduced. This always returns BASIC random data but uses a user-supplied

> +64-byte seed parameter that is update for each call and can be used to

> +repeat the same sequence as needed.

> +

> +===== Shared Memory Improvements

> +The `odp_shm_reserve()` API adds two new additional flags to support external

> +memory.

> +

> +* `ODP_SHM_SINGLE_VA` guarantees that all ODP threads sharing this memory

> +will see the block at the same virtual address regardless of whether threads

> +are implemented as pthreads or processes and when `fork()` calls are made to

> +create them.

> +

> +* `ODP_SHM_EXPORT` allows the memory block to be visible to other ODP

> +instances. Other ODP instances can retrieve this block via the new

> +`odp_shm_import()` API.

> +

> +===== Classification Clarifications

> +The relationship between classification and queue configuration in the

> +`odp_pktin_queue_param_t` structure is clarified to emphasize that

> +classification subsumes queue-based I/O processing. This is an API

> +documentation change only.

> +

> +=== Helpers

> +New helper APIs are introduced for IP table lookup support for longest prefix

> +matching as well as cuckoo hash tables. These are designed to provide analogs

> +to functions available in DPDK to assist applications being ported to ODP.

> +

> +=== Performance Improvements

> +The odp-linux reference implementation includes a number of improvements to

> +make it more suitable for production use on platforms that rely on software

> +implementations of key ODP APIs.

> +

> +==== Ring-based Pool Implementation

> +Storage pools used for buffers and packets are now implemented via lockless

> +ring structures that support burst mode read/writes to local caches for

> +significantly improved multi-core scalability

> +

> +==== Buffer/Packet Header Optimizations

> +The layout of the structs used to support buffers and packets has been

> +optimized to reduce cache footprint and minimize path lengths in packet

> +manipulation.

> +

> +==== Ordered Queue Improvements

> +The implementation of ordered queues has been streamlined and made more

> +scaleable in multi-core systems.

> +

> +==== Packet Segmentation Improvements

> +The more advance segmentation capabilities present in the new ODP packet

> +implementation are used to streamline the implementation of APIs like

> +`odp_packet_concat()` and the head/tail extend/trunc APIs.

> +

> +=== Bug Fixes

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2405[Bug 2405]

> +A number of "todos" were removed from the packet validation test suite.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2472[Bug 2472]

> +The CPU affinity is now correctly read from the cpuset.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2496[Bug 2496]

> +The PktIO validation test no longer uses invalid MAC addresses.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2512[Bug 2512]

> +The TCP checksum is now properly calculated for generated packets.

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2798[Bug 2798]

> +The odp-linux reference implementation makes use of the OpenSSL library to

> +support the `odp_random_xxx()` APIs and some crypto operations. To support

> +OpenSSL versions prior to 1.1.0, which are not thread safe, support is added

> +for OpenSSL locking callbacks that use ODP ticketlocks to provide OpenSSL thread

> +safety.

> +

> +=== Known Issues

> +

> +==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]

> +Make check fails on a single core VM in the process mode helper test.

> +

>  == OpenDataPlane (1.12.0.0)

>

>  === New Features

> --

> 2.9.3

>




-- 
Mike Holmes
Program Manager - Linaro Networking Group
Linaro.org │ Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"
Maxim Uvarov Jan. 18, 2017, 3:58 p.m. UTC | #3
Merged,
Maxim.

On 01/18/17 18:29, Mike Holmes wrote:
> On 13 January 2017 at 11:14, Bill Fischofer <bill.fischofer@linaro.org> wrote:

>> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

> 

> Reviewed-by: Mike Holmes <mike.holmes@linaro.org>

> 

>> ---

>>  CHANGELOG | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

>>  1 file changed, 178 insertions(+)

>>

>> diff --git a/CHANGELOG b/CHANGELOG

>> index 17afe44..72bf225 100644

>> --- a/CHANGELOG

>> +++ b/CHANGELOG

>> @@ -1,3 +1,181 @@

>> +== OpenDataPlane (1.13.0.0)

>> +

>> +=== New Features

>> +

>> +==== APIs

>> +ODP v1.13.0.0 represents the initial preview of the Tiger Moth release series

>> +and as such introduces new APIs and extensions that will be built on as this

>> +release matures.

>> +

>> +===== Crypto Parameter Normalization

>> +Many ODP APIs take parameter structs of type `odp_xxx_param_t`. The crypto APIs,

>> +for historical reasons, failed to follow this convention, using instead structs

>> +of type `odp_crypto_params_t`, etc. These pluralized names are now deprecated

>> +and their singular forms are introduced as the preferred names for these

>> +structs. The old names are retained (for now) to ease migration, however

>> +applications should convert to the new forms at their convenience as these

>> +deprecated forms will be removed in the final Tiger Moth release.

>> +

>> +The changes introduced for this include:

>> +

>> +* `odp_crypto_op_params_t` => `odp_crypto_op_param_t`

>> +* `odp_crypto_session_params_t` => `odp_crypto_session_param_t`

>> +

>> +===== Crypto Decouple Key Length from Algorithm Specification

>> +To provide a more flexible programming for handling all possible

>> +key/digest/iv length combinations, the enums used for crypto specification

>> +are split to decouple lengths from algorithm names. The only exception

>> +is the SHA-2 family of hash routines, which have well-established naming

>> +conventions that incorporate digest lengths (SHA-224, SHA-256, etc.)

>> +

>> +Changes included with this restructure include:

>> +

>> +* The `odp_crypto_capability_t` structure returned by the

>> +`odp_crypto_capability()` API contains streamlined `odp_crypto_cipher_algos_t`

>> +and `odp_crypto_auth_algos_t` substructures.

>> +* A new `odp_crypto_cipher_capability()` API is added to return detailed

>> +information about available cipher capabilities.

>> +* A new `odp_crypto_auth_capability()` API is added to return detailed

>> +information about available authentication capabilities.

>> +

>> +===== `odp_crypto_session_param_init()` API

>> +For completeness the `odp_crypto_session_param_init()` API is provided to

>> +enable platform-independent initialization of the `odp_crypto_session_param_t`

>> +structure used as input to `odp_crypto_session_create()`.

>> +

>> +===== Bitfield and Byteorder Cleanup

>> +The `ODP_BITFIELD_ORDER` define is added to the ODP specification to parallel

>> +the existing `ODP_BYTEFIELD_ORDER` define. This will be set to the value

>> +`ODP_BIG_ENDIAN_BITFIELD` or `ODP_LITTLE_ENDIAN_BITFIELD`. This also addresses

>> +https://bugs.linaro.org/show_bug.cgi?id=2402[Bug 2402], however since fixing

>> +this required a small API change this was deferred until an API release

>> +boundary.

>> +

>> +===== Improved Name Argument Definitions in `odp_xxx_create()` Functions

>> +The use of name arguments to the various resource creation APIs has

>> +been standardized and documentation improved to clarify that unique

>> +names are not required and that these may be specified as NULL for

>> +anonymous resource creation. When non-unique resource names are used, it is

>> +unspecified which of these are returned by a corresponding lookup API.

>> +

>> +===== Pool Parameters for Packet Pools

>> +The `odp_pool_param_t` structure adds the new field `max_len` to be used in

>> +packet pools to advise the implementation of the maximum sized packet that

>> +the application will allocate with a single `odp_packet_alloc()` call. This

>> +may enable storage pool optimization.

>> +

>> +===== Packet Clarifications

>> +API documentation for `odp_packet_concat()` and `odp_packet_copy_from_pkt()`

>> +is clarified to specify that the source and destination packets supplied to

>> +these APIs should not refer to the same packet.

>> +

>> +===== Packet Allocation Length Clarification

>> +API documentation for `odp_packet_alloc()` is clarified to specify that

>> +the supplied length for requested packet allocation should be greater

>> +than zero.

>> +

>> +===== Random API Changes

>> +The APIs provided for working with random data have been revised. The third

>> +parameter to `odp_random_data()` is now of type `odp_random_kind_t`, which is

>> +an `enum` that is used to specify the quality of random data required. The

>> +kinds of random data defined are:

>> +

>> +`ODP_RANDOM_BASIC`::

>> +No specific quality guarantees. This is assumed to be pseudo-random data

>> +generated by software where speed of generation is more important than the

>> +quality of the results.This is the lowest kind of random.

>> +

>> +`ODP_RANDOM_CRYPTO`::

>> +Random data suitable for use in cryptographic operations.

>> +

>> +`ODP_RANDOM_TRUE`::

>> +True random data generated from a hardware entropy source. This is the

>> +highest kind of random.

>> +

>> +The `odp_random_max_kind()` API is provided that returns the highest kind of

>> +data available on this implementation. Requests for higher kinds than can be

>> +supplied will fail.

>> +

>> +For testing purposes it is often desirable to generate "random" sequences that

>> +are repeatable. To support this use case, the `odp_random_test_data()` API is

>> +introduced. This always returns BASIC random data but uses a user-supplied

>> +64-byte seed parameter that is update for each call and can be used to

>> +repeat the same sequence as needed.

>> +

>> +===== Shared Memory Improvements

>> +The `odp_shm_reserve()` API adds two new additional flags to support external

>> +memory.

>> +

>> +* `ODP_SHM_SINGLE_VA` guarantees that all ODP threads sharing this memory

>> +will see the block at the same virtual address regardless of whether threads

>> +are implemented as pthreads or processes and when `fork()` calls are made to

>> +create them.

>> +

>> +* `ODP_SHM_EXPORT` allows the memory block to be visible to other ODP

>> +instances. Other ODP instances can retrieve this block via the new

>> +`odp_shm_import()` API.

>> +

>> +===== Classification Clarifications

>> +The relationship between classification and queue configuration in the

>> +`odp_pktin_queue_param_t` structure is clarified to emphasize that

>> +classification subsumes queue-based I/O processing. This is an API

>> +documentation change only.

>> +

>> +=== Helpers

>> +New helper APIs are introduced for IP table lookup support for longest prefix

>> +matching as well as cuckoo hash tables. These are designed to provide analogs

>> +to functions available in DPDK to assist applications being ported to ODP.

>> +

>> +=== Performance Improvements

>> +The odp-linux reference implementation includes a number of improvements to

>> +make it more suitable for production use on platforms that rely on software

>> +implementations of key ODP APIs.

>> +

>> +==== Ring-based Pool Implementation

>> +Storage pools used for buffers and packets are now implemented via lockless

>> +ring structures that support burst mode read/writes to local caches for

>> +significantly improved multi-core scalability

>> +

>> +==== Buffer/Packet Header Optimizations

>> +The layout of the structs used to support buffers and packets has been

>> +optimized to reduce cache footprint and minimize path lengths in packet

>> +manipulation.

>> +

>> +==== Ordered Queue Improvements

>> +The implementation of ordered queues has been streamlined and made more

>> +scaleable in multi-core systems.

>> +

>> +==== Packet Segmentation Improvements

>> +The more advance segmentation capabilities present in the new ODP packet

>> +implementation are used to streamline the implementation of APIs like

>> +`odp_packet_concat()` and the head/tail extend/trunc APIs.

>> +

>> +=== Bug Fixes

>> +

>> +==== https://bugs.linaro.org/show_bug.cgi?id=2405[Bug 2405]

>> +A number of "todos" were removed from the packet validation test suite.

>> +

>> +==== https://bugs.linaro.org/show_bug.cgi?id=2472[Bug 2472]

>> +The CPU affinity is now correctly read from the cpuset.

>> +

>> +==== https://bugs.linaro.org/show_bug.cgi?id=2496[Bug 2496]

>> +The PktIO validation test no longer uses invalid MAC addresses.

>> +

>> +==== https://bugs.linaro.org/show_bug.cgi?id=2512[Bug 2512]

>> +The TCP checksum is now properly calculated for generated packets.

>> +

>> +==== https://bugs.linaro.org/show_bug.cgi?id=2798[Bug 2798]

>> +The odp-linux reference implementation makes use of the OpenSSL library to

>> +support the `odp_random_xxx()` APIs and some crypto operations. To support

>> +OpenSSL versions prior to 1.1.0, which are not thread safe, support is added

>> +for OpenSSL locking callbacks that use ODP ticketlocks to provide OpenSSL thread

>> +safety.

>> +

>> +=== Known Issues

>> +

>> +==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]

>> +Make check fails on a single core VM in the process mode helper test.

>> +

>>  == OpenDataPlane (1.12.0.0)

>>

>>  === New Features

>> --

>> 2.9.3

>>

> 

> 

>
diff mbox

Patch

diff --git a/CHANGELOG b/CHANGELOG
index 17afe44..72bf225 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,181 @@ 
+== OpenDataPlane (1.13.0.0)
+
+=== New Features
+
+==== APIs
+ODP v1.13.0.0 represents the initial preview of the Tiger Moth release series
+and as such introduces new APIs and extensions that will be built on as this
+release matures.
+
+===== Crypto Parameter Normalization
+Many ODP APIs take parameter structs of type `odp_xxx_param_t`. The crypto APIs,
+for historical reasons, failed to follow this convention, using instead structs
+of type `odp_crypto_params_t`, etc. These pluralized names are now deprecated
+and their singular forms are introduced as the preferred names for these
+structs. The old names are retained (for now) to ease migration, however
+applications should convert to the new forms at their convenience as these
+deprecated forms will be removed in the final Tiger Moth release.
+
+The changes introduced for this include:
+
+* `odp_crypto_op_params_t` => `odp_crypto_op_param_t`
+* `odp_crypto_session_params_t` => `odp_crypto_session_param_t`
+
+===== Crypto Decouple Key Length from Algorithm Specification
+To provide a more flexible programming for handling all possible
+key/digest/iv length combinations, the enums used for crypto specification
+are split to decouple lengths from algorithm names. The only exception
+is the SHA-2 family of hash routines, which have well-established naming
+conventions that incorporate digest lengths (SHA-224, SHA-256, etc.)
+
+Changes included with this restructure include:
+
+* The `odp_crypto_capability_t` structure returned by the
+`odp_crypto_capability()` API contains streamlined `odp_crypto_cipher_algos_t`
+and `odp_crypto_auth_algos_t` substructures.
+* A new `odp_crypto_cipher_capability()` API is added to return detailed
+information about available cipher capabilities.
+* A new `odp_crypto_auth_capability()` API is added to return detailed
+information about available authentication capabilities.
+
+===== `odp_crypto_session_param_init()` API
+For completeness the `odp_crypto_session_param_init()` API is provided to
+enable platform-independent initialization of the `odp_crypto_session_param_t`
+structure used as input to `odp_crypto_session_create()`.
+
+===== Bitfield and Byteorder Cleanup
+The `ODP_BITFIELD_ORDER` define is added to the ODP specification to parallel
+the existing `ODP_BYTEFIELD_ORDER` define. This will be set to the value
+`ODP_BIG_ENDIAN_BITFIELD` or `ODP_LITTLE_ENDIAN_BITFIELD`. This also addresses
+https://bugs.linaro.org/show_bug.cgi?id=2402[Bug 2402], however since fixing
+this required a small API change this was deferred until an API release
+boundary.
+
+===== Improved Name Argument Definitions in `odp_xxx_create()` Functions
+The use of name arguments to the various resource creation APIs has
+been standardized and documentation improved to clarify that unique
+names are not required and that these may be specified as NULL for
+anonymous resource creation. When non-unique resource names are used, it is
+unspecified which of these are returned by a corresponding lookup API.
+
+===== Pool Parameters for Packet Pools
+The `odp_pool_param_t` structure adds the new field `max_len` to be used in
+packet pools to advise the implementation of the maximum sized packet that
+the application will allocate with a single `odp_packet_alloc()` call. This
+may enable storage pool optimization.
+
+===== Packet Clarifications
+API documentation for `odp_packet_concat()` and `odp_packet_copy_from_pkt()`
+is clarified to specify that the source and destination packets supplied to
+these APIs should not refer to the same packet.
+
+===== Packet Allocation Length Clarification
+API documentation for `odp_packet_alloc()` is clarified to specify that
+the supplied length for requested packet allocation should be greater
+than zero.
+
+===== Random API Changes
+The APIs provided for working with random data have been revised. The third
+parameter to `odp_random_data()` is now of type `odp_random_kind_t`, which is
+an `enum` that is used to specify the quality of random data required. The
+kinds of random data defined are:
+
+`ODP_RANDOM_BASIC`::
+No specific quality guarantees. This is assumed to be pseudo-random data
+generated by software where speed of generation is more important than the
+quality of the results.This is the lowest kind of random.
+
+`ODP_RANDOM_CRYPTO`::
+Random data suitable for use in cryptographic operations.
+
+`ODP_RANDOM_TRUE`::
+True random data generated from a hardware entropy source. This is the
+highest kind of random.
+
+The `odp_random_max_kind()` API is provided that returns the highest kind of
+data available on this implementation. Requests for higher kinds than can be
+supplied will fail.
+
+For testing purposes it is often desirable to generate "random" sequences that
+are repeatable. To support this use case, the `odp_random_test_data()` API is
+introduced. This always returns BASIC random data but uses a user-supplied
+64-byte seed parameter that is update for each call and can be used to
+repeat the same sequence as needed.
+
+===== Shared Memory Improvements
+The `odp_shm_reserve()` API adds two new additional flags to support external
+memory.
+
+* `ODP_SHM_SINGLE_VA` guarantees that all ODP threads sharing this memory
+will see the block at the same virtual address regardless of whether threads
+are implemented as pthreads or processes and when `fork()` calls are made to
+create them.
+
+* `ODP_SHM_EXPORT` allows the memory block to be visible to other ODP
+instances. Other ODP instances can retrieve this block via the new
+`odp_shm_import()` API.
+
+===== Classification Clarifications
+The relationship between classification and queue configuration in the
+`odp_pktin_queue_param_t` structure is clarified to emphasize that
+classification subsumes queue-based I/O processing. This is an API
+documentation change only.
+
+=== Helpers
+New helper APIs are introduced for IP table lookup support for longest prefix
+matching as well as cuckoo hash tables. These are designed to provide analogs
+to functions available in DPDK to assist applications being ported to ODP.
+
+=== Performance Improvements
+The odp-linux reference implementation includes a number of improvements to
+make it more suitable for production use on platforms that rely on software
+implementations of key ODP APIs.
+
+==== Ring-based Pool Implementation
+Storage pools used for buffers and packets are now implemented via lockless
+ring structures that support burst mode read/writes to local caches for
+significantly improved multi-core scalability
+
+==== Buffer/Packet Header Optimizations
+The layout of the structs used to support buffers and packets has been
+optimized to reduce cache footprint and minimize path lengths in packet
+manipulation.
+
+==== Ordered Queue Improvements
+The implementation of ordered queues has been streamlined and made more
+scaleable in multi-core systems.
+
+==== Packet Segmentation Improvements
+The more advance segmentation capabilities present in the new ODP packet
+implementation are used to streamline the implementation of APIs like
+`odp_packet_concat()` and the head/tail extend/trunc APIs.
+
+=== Bug Fixes
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2405[Bug 2405]
+A number of "todos" were removed from the packet validation test suite.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2472[Bug 2472]
+The CPU affinity is now correctly read from the cpuset.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2496[Bug 2496]
+The PktIO validation test no longer uses invalid MAC addresses.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2512[Bug 2512]
+The TCP checksum is now properly calculated for generated packets.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2798[Bug 2798]
+The odp-linux reference implementation makes use of the OpenSSL library to
+support the `odp_random_xxx()` APIs and some crypto operations. To support
+OpenSSL versions prior to 1.1.0, which are not thread safe, support is added
+for OpenSSL locking callbacks that use ODP ticketlocks to provide OpenSSL thread
+safety.
+
+=== Known Issues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]
+Make check fails on a single core VM in the process mode helper test.
+
 == OpenDataPlane (1.12.0.0)
 
 === New Features