diff mbox

changelog: summary of changes for odp v1.10.2.0

Message ID 1479351970-25316-1-git-send-email-bill.fischofer@linaro.org
State Superseded
Headers show

Commit Message

Bill Fischofer Nov. 17, 2016, 3:06 a.m. UTC
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

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

-- 
2.7.4

Comments

Bill Fischofer Nov. 17, 2016, 3:08 a.m. UTC | #1
Since we did make some minor changes to the Traffic Manager API in this
release, need to discuss whether this should be v1.10.2.0 or v1.12.0.0.
I'll send a v2 if we want to pick a different release number.

It would be good to bump this to v1.12 since Monarch-LTS is v1.11 and this
is a higher level so continuing with v1.10 looks odd here even apart from
the API difference.

On Wed, Nov 16, 2016 at 9:06 PM, Bill Fischofer <bill.fischofer@linaro.org>
wrote:

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

> ---

>  CHANGELOG | 211 ++++++++++++++++++++++++++++++

> ++++++++++++++++++++++++++++++++

>  1 file changed, 211 insertions(+)

>

> diff --git a/CHANGELOG b/CHANGELOG

> index d8230cd..3ab7354 100644

> --- a/CHANGELOG

> +++ b/CHANGELOG

> @@ -1,3 +1,214 @@

> +== OpenDataPlane (1.10.2.0)

> +

> +=== New Features

> +

> +==== APIs

> +ODP v1.10.2.0 is a minor API revision level and introduces a small change

> to

> +the Traffic Manager API as well as some documentation clarification

> surrounding

> +other APIs.

> +

> +==== Traffic Manager Egress Function

> +The `odp_tm_egress_t` struct has been changed to add an explicit Boolean

> +(`egress_fcn_supported`) that indicates whether the TM system supports

> +a user-provided egress function. When specified this function is called to

> +"output" a packet rather than having TM transmit it directly to a PktIO

> +interface.

> +

> +==== Traffic Manager Coupling Change

> +The `odp_tm_egress_t` struct has been changed to associate a TM system

> with an

> +output `odp_pktio_t` rather than the previous `odp_pktout_queue_t`. This

> makes

> +an explicit 1-to-1 map between a TM system and a PktIO interface.

> +

> +==== Default huge page size clarification

> +The documentation for the `odp_sys_huge_page_size()` API has been

> reworded to

> +clarify that this API refers to default huge page size.

> +

> +==== Strict Priority (SP) Scheduler

> +Building on the modular scheduler framework added in v1.10.1.0, an

> alternate

> +Strict Priority (SP) Scheduler is now available for latency-sensitive

> +workloads. Applications wishing to use the SP scheduler should specify

> +the `./configure` option `--enable-schedule-sp`. This scheduler

> emphasizes low

> +latency processing of high priority events at the expense of throughput.

> This

> +alternate scheduler is considered experimental and should not be used for

> +production at this time.

> +

> +==== Application Binary Interface (ABI) Support

> +Support is added to enable ODP applications to be binary compatible across

> +different implementations of ODP sharing the same Instruction Set

> Architecture

> +(ISA). This support introduces a new `configure` option:

> +

> +`--enable-abi-compat=yes`::

> +This is the default and specifies that the ODP library is to be built to

> +support ABI compatibility mode. In this mode ODP APIs are never inlined.

> ABI

> +compatibility ensures maximum application portability in cloud

> environments.

> +

> +`--enable-abi-compat=no`::

> +Specify this option to enable the inlining of ODP APIs. This may result in

> +improved performance at the cost of ABI compatibility and is suitable for

> +applications running in embedded environments.

> +

> +Note that ODP applications retain source code portability between ODP

> +implementations regardless of the ABI mode chosen. To move to a different

> ODP

> +application running on a different ISA, code need simply be recompiled

> against

> +that target ODP implementation.

> +

> +==== SCTP Parsing Support

> +The ODP classifier adds support for recognizing Stream Control

> Transmission

> +Protocol (SCTP) packets. The APIs for this were previously not

> implemented.

> +

> +=== Packaging and Implementation Refinements

> +

> +==== Remove dependency on Linux headers

> +ODP no longer has a dependency on Linux headers. This will help make the

> +odp-linux reference implementation more easily portable to non-Linux

> +environments.

> +

> +==== Remove dependency on helpers

> +The odp-linux implementation has been made independent of the helper

> library

> +to avoid circular dependency issues with packaging. Helper functions may

> use

> +ODP APIs, however ODP implementations should not use helper functions.

> +

> +==== Reorganization of `test` directory

> +The `test` directory has been reorganized to better support a unified

> approach

> +to ODP component testing. API tests now live in

> +`test/common_plat/validation/api` instead of the former

> +`test/validation`. With this change performance and validation tests, as

> well

> +as common and platform-specific tests can all be part of a unified test

> +hierarchy.

> +

> +The resulting test tree now looks like:

> +

> +.New `test` directory hierarchy

> +-----

> +test

> +├── common_plat

> +│   ├── common

> +│   ├── m4

> +│   ├── miscellaneous

> +│   ├── performance

> +│   └── validation

> +│       └── api

> +│           ├── atomic

> +│           ├── barrier

> +│           ├── buffer

> +│           ├── classification

> +│           ├── cpumask

> +│           ├── crypto

> +│           ├── errno

> +│           ├── hash

> +│           ├── init

> +│           ├── lock

> +│           ├── packet

> +│           ├── pktio

> +│           ├── pool

> +│           ├── queue

> +│           ├── random

> +│           ├── scheduler

> +│           ├── shmem

> +│           ├── std_clib

> +│           ├── system

> +│           ├── thread

> +│           ├── time

> +│           ├── timer

> +│           └── traffic_mngr

> +├── linux-generic

> +│   ├── m4

> +│   ├── mmap_vlan_ins

> +│   ├── performance

> +│   ├── pktio_ipc

> +│   ├── ring

> +│   └── validation

> +│       └── api

> +│           ├── pktio

> +│           └── shmem

> +└── m4

> +-----

> +

> +==== Pools

> +The maximum number of pools that may be created in the odp-linux reference

> +implementation has been raised from 16 to 64.

> +

> +==== Upgrade to DPDK 16.07

> +The DPDK pktio support in odp-linux has been upgraded to work with DPDK

> 16.07.

> +A number of miscellaneous fixes and performance improvements in this

> support

> +are also present.

> +

> +==== PktIO TAP Interface Classifier Support

> +Packet I/O interfaces operating in TAP mode now can feed packets to the

> ODP

> +classifier the same as other pktio modes can do.

> +

> +=== Performance Improvements

> +

> +==== Thread-local cache optimizations

> +The thread-local buffer cache has been reorganized and optimized for

> burst-mode

> +operation, yielding a measurable performance gain in almost all cases.

> +

> +==== Burst-mode buffer allocation

> +The scheduler and pktio components have been reworked to use burst-mode

> +buffer allocation/deallocation, yielding a measurable performance gain in

> +almost all cases.

> +

> +==== Burst-mode queue operations

> +ODP queues internally now attempt to use burst-mode enq/deq operations to

> +accelerate performance where applicable.

> +

> +==== Ring-based Scheduler Priority Queues

> +The ODP scheduler has been enhanced to use ring-based priority queues,

> resulting

> +in significantly better scalability in many core environments.

> +

> +==== GitHub Automation Support

> +ODP now supports the Travis framework needed to trigger CI automation in

> +conjunction with GitHub. This support is considered experimental for now.

> +

> +=== Examples

> +

> +==== New `l3fwd` Example

> +A new example application is provided that illustrates use

> +of ODP for simple Layer 3 forwarding across multiple interfaces.

> +

> +==== "Hello World" Example Application

> +A basic "hello world" ODP application has been added to the `example`

> +directory to illustrate the basic setup and control flow needed by ODP

> +applications.

> +

> +=== Documentation

> +

> +==== Pure API Documentation

> +ODP now generates "pure" (implementation independent) doxygen

> documentation in

> +addition to the specific documentation for the odp-linux implementation.

> The

> +pure version is applicable to any ODP implementation as it simply

> describes

> +the ODP API specification. Implementation-specific versions of this

> +documentation describe both the APIs as well as specifics concerning

> typedefs,

> +enums, etc. This should help clarify what aspects of ODP are platform

> +independent.

> +

> +==== Clarify ODP Thread Definition

> +The definition of an ODP thread in odp-linux has been clarified to

> specify that

> +for this implementation ODP threads are Linux pthreads or Linux processes.

> +Currently threads as processes is considered experimental in odp-linux.

> +

> +=== Bug Fixes

> +Numerous refinements have been incorporated to make

> +validation tests more robust in API coverage as well as correcting corner

> +cases in the implementation of many ODP APIs. Notable fixes include:

> +

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

> +`ODP_TIMEOUT_INVALID` is now defined consistently with other pool

> elements so

> +the restriction on using Pool 0 as a timer pool is removed.

> +

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

> +The `odp_packet_copy()` API now correctly handles user areas between

> pools that

> +are configured with different sized per-packet user area definitions.

> +

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

> +Corrects the implementation of AES GCM decryption in the ODP crypto API.

> +

> +=== Known Issues

> +

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

> +The Timer validation test fails sporadically in environments with high

> core

> +counts.

> +

>  == OpenDataPlane (1.10.1.0)

>

>  === New Features

> --

> 2.7.4

>

>
Mike Holmes Nov. 17, 2016, 9:17 p.m. UTC | #2
On 16 November 2016 at 22:06, Bill Fischofer <bill.fischofer@linaro.org> wrote:
> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

> ---

>  CHANGELOG | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

>  1 file changed, 211 insertions(+)

>

> diff --git a/CHANGELOG b/CHANGELOG

> index d8230cd..3ab7354 100644

> --- a/CHANGELOG

> +++ b/CHANGELOG

> @@ -1,3 +1,214 @@

> +== OpenDataPlane (1.10.2.0)


https://git.linaro.org/lng/odp.git

latest tag is v1.11.0.0_monarch  should the mainline be 1.11.1.0
since mainline is monarch + latest stuff

> +

> +=== New Features

> +

> +==== APIs

> +ODP v1.10.2.0 is a minor API revision level and introduces a small change to

> +the Traffic Manager API as well as some documentation clarification surrounding

> +other APIs.

> +

> +==== Traffic Manager Egress Function

> +The `odp_tm_egress_t` struct has been changed to add an explicit Boolean

> +(`egress_fcn_supported`) that indicates whether the TM system supports

> +a user-provided egress function. When specified this function is called to

> +"output" a packet rather than having TM transmit it directly to a PktIO

> +interface.

> +

> +==== Traffic Manager Coupling Change

> +The `odp_tm_egress_t` struct has been changed to associate a TM system with an

> +output `odp_pktio_t` rather than the previous `odp_pktout_queue_t`. This makes

> +an explicit 1-to-1 map between a TM system and a PktIO interface.

> +

> +==== Default huge page size clarification

> +The documentation for the `odp_sys_huge_page_size()` API has been reworded to

> +clarify that this API refers to default huge page size.

> +

> +==== Strict Priority (SP) Scheduler

> +Building on the modular scheduler framework added in v1.10.1.0, an alternate

> +Strict Priority (SP) Scheduler is now available for latency-sensitive

> +workloads. Applications wishing to use the SP scheduler should specify

> +the `./configure` option `--enable-schedule-sp`. This scheduler emphasizes low

> +latency processing of high priority events at the expense of throughput. This

> +alternate scheduler is considered experimental and should not be used for

> +production at this time.

> +

> +==== Application Binary Interface (ABI) Support

> +Support is added to enable ODP applications to be binary compatible across

> +different implementations of ODP sharing the same Instruction Set Architecture

> +(ISA). This support introduces a new `configure` option:

> +

> +`--enable-abi-compat=yes`::

> +This is the default and specifies that the ODP library is to be built to

> +support ABI compatibility mode. In this mode ODP APIs are never inlined. ABI

> +compatibility ensures maximum application portability in cloud environments.

> +

> +`--enable-abi-compat=no`::

> +Specify this option to enable the inlining of ODP APIs. This may result in

> +improved performance at the cost of ABI compatibility and is suitable for

> +applications running in embedded environments.

> +

> +Note that ODP applications retain source code portability between ODP

> +implementations regardless of the ABI mode chosen. To move to a different ODP

> +application running on a different ISA, code need simply be recompiled against

> +that target ODP implementation.

> +

> +==== SCTP Parsing Support

> +The ODP classifier adds support for recognizing Stream Control Transmission

> +Protocol (SCTP) packets. The APIs for this were previously not implemented.

> +

> +=== Packaging and Implementation Refinements

> +

> +==== Remove dependency on Linux headers

> +ODP no longer has a dependency on Linux headers. This will help make the

> +odp-linux reference implementation more easily portable to non-Linux

> +environments.

> +

> +==== Remove dependency on helpers

> +The odp-linux implementation has been made independent of the helper library

> +to avoid circular dependency issues with packaging. Helper functions may use

> +ODP APIs, however ODP implementations should not use helper functions.

> +

> +==== Reorganization of `test` directory

> +The `test` directory has been reorganized to better support a unified approach

> +to ODP component testing. API tests now live in

> +`test/common_plat/validation/api` instead of the former

> +`test/validation`. With this change performance and validation tests, as well

> +as common and platform-specific tests can all be part of a unified test

> +hierarchy.

> +

> +The resulting test tree now looks like:

> +

> +.New `test` directory hierarchy

> +-----

> +test

> +├── common_plat

> +│   ├── common

> +│   ├── m4

> +│   ├── miscellaneous

> +│   ├── performance

> +│   └── validation

> +│       └── api

> +│           ├── atomic

> +│           ├── barrier

> +│           ├── buffer

> +│           ├── classification

> +│           ├── cpumask

> +│           ├── crypto

> +│           ├── errno

> +│           ├── hash

> +│           ├── init

> +│           ├── lock

> +│           ├── packet

> +│           ├── pktio

> +│           ├── pool

> +│           ├── queue

> +│           ├── random

> +│           ├── scheduler

> +│           ├── shmem

> +│           ├── std_clib

> +│           ├── system

> +│           ├── thread

> +│           ├── time

> +│           ├── timer

> +│           └── traffic_mngr

> +├── linux-generic

> +│   ├── m4

> +│   ├── mmap_vlan_ins

> +│   ├── performance

> +│   ├── pktio_ipc

> +│   ├── ring

> +│   └── validation

> +│       └── api

> +│           ├── pktio

> +│           └── shmem

> +└── m4

> +-----

> +

> +==== Pools

> +The maximum number of pools that may be created in the odp-linux reference

> +implementation has been raised from 16 to 64.

> +

> +==== Upgrade to DPDK 16.07

> +The DPDK pktio support in odp-linux has been upgraded to work with DPDK 16.07.

> +A number of miscellaneous fixes and performance improvements in this support

> +are also present.

> +

> +==== PktIO TAP Interface Classifier Support

> +Packet I/O interfaces operating in TAP mode now can feed packets to the ODP

> +classifier the same as other pktio modes can do.

> +

> +=== Performance Improvements

> +

> +==== Thread-local cache optimizations

> +The thread-local buffer cache has been reorganized and optimized for burst-mode

> +operation, yielding a measurable performance gain in almost all cases.

> +

> +==== Burst-mode buffer allocation

> +The scheduler and pktio components have been reworked to use burst-mode

> +buffer allocation/deallocation, yielding a measurable performance gain in

> +almost all cases.

> +

> +==== Burst-mode queue operations

> +ODP queues internally now attempt to use burst-mode enq/deq operations to

> +accelerate performance where applicable.

> +

> +==== Ring-based Scheduler Priority Queues

> +The ODP scheduler has been enhanced to use ring-based priority queues, resulting

> +in significantly better scalability in many core environments.

> +

> +==== GitHub Automation Support

> +ODP now supports the Travis framework needed to trigger CI automation in

> +conjunction with GitHub. This support is considered experimental for now.

> +

> +=== Examples

> +

> +==== New `l3fwd` Example

> +A new example application is provided that illustrates use

> +of ODP for simple Layer 3 forwarding across multiple interfaces.

> +

> +==== "Hello World" Example Application

> +A basic "hello world" ODP application has been added to the `example`

> +directory to illustrate the basic setup and control flow needed by ODP

> +applications.

> +

> +=== Documentation

> +

> +==== Pure API Documentation

> +ODP now generates "pure" (implementation independent) doxygen documentation in

> +addition to the specific documentation for the odp-linux implementation. The

> +pure version is applicable to any ODP implementation as it simply describes

> +the ODP API specification. Implementation-specific versions of this

> +documentation describe both the APIs as well as specifics concerning typedefs,

> +enums, etc. This should help clarify what aspects of ODP are platform

> +independent.

> +

> +==== Clarify ODP Thread Definition

> +The definition of an ODP thread in odp-linux has been clarified to specify that

> +for this implementation ODP threads are Linux pthreads or Linux processes.

> +Currently threads as processes is considered experimental in odp-linux.

> +

> +=== Bug Fixes

> +Numerous refinements have been incorporated to make

> +validation tests more robust in API coverage as well as correcting corner

> +cases in the implementation of many ODP APIs. Notable fixes include:

> +

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

> +`ODP_TIMEOUT_INVALID` is now defined consistently with other pool elements so

> +the restriction on using Pool 0 as a timer pool is removed.

> +

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

> +The `odp_packet_copy()` API now correctly handles user areas between pools that

> +are configured with different sized per-packet user area definitions.

> +

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

> +Corrects the implementation of AES GCM decryption in the ODP crypto API.

> +

> +=== Known Issues

> +

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

> +The Timer validation test fails sporadically in environments with high core

> +counts.

> +

>  == OpenDataPlane (1.10.1.0)

>

>  === New Features

> --

> 2.7.4

>




-- 
Mike Holmes
Program Manager - Linaro Networking Group
Linaro.org │ Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"
Bill Fischofer Nov. 18, 2016, 12:35 a.m. UTC | #3
OK, sent v2 with level changed to v1.11.1.0

On Thu, Nov 17, 2016 at 3:17 PM, Mike Holmes <mike.holmes@linaro.org> wrote:

> On 16 November 2016 at 22:06, Bill Fischofer <bill.fischofer@linaro.org>

> wrote:

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

> > ---

> >  CHANGELOG | 211 ++++++++++++++++++++++++++++++

> ++++++++++++++++++++++++++++++++

> >  1 file changed, 211 insertions(+)

> >

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

> > index d8230cd..3ab7354 100644

> > --- a/CHANGELOG

> > +++ b/CHANGELOG

> > @@ -1,3 +1,214 @@

> > +== OpenDataPlane (1.10.2.0)

>

> https://git.linaro.org/lng/odp.git

>

> latest tag is v1.11.0.0_monarch  should the mainline be 1.11.1.0

> since mainline is monarch + latest stuff

>

> > +

> > +=== New Features

> > +

> > +==== APIs

> > +ODP v1.10.2.0 is a minor API revision level and introduces a small

> change to

> > +the Traffic Manager API as well as some documentation clarification

> surrounding

> > +other APIs.

> > +

> > +==== Traffic Manager Egress Function

> > +The `odp_tm_egress_t` struct has been changed to add an explicit Boolean

> > +(`egress_fcn_supported`) that indicates whether the TM system supports

> > +a user-provided egress function. When specified this function is called

> to

> > +"output" a packet rather than having TM transmit it directly to a PktIO

> > +interface.

> > +

> > +==== Traffic Manager Coupling Change

> > +The `odp_tm_egress_t` struct has been changed to associate a TM system

> with an

> > +output `odp_pktio_t` rather than the previous `odp_pktout_queue_t`.

> This makes

> > +an explicit 1-to-1 map between a TM system and a PktIO interface.

> > +

> > +==== Default huge page size clarification

> > +The documentation for the `odp_sys_huge_page_size()` API has been

> reworded to

> > +clarify that this API refers to default huge page size.

> > +

> > +==== Strict Priority (SP) Scheduler

> > +Building on the modular scheduler framework added in v1.10.1.0, an

> alternate

> > +Strict Priority (SP) Scheduler is now available for latency-sensitive

> > +workloads. Applications wishing to use the SP scheduler should specify

> > +the `./configure` option `--enable-schedule-sp`. This scheduler

> emphasizes low

> > +latency processing of high priority events at the expense of

> throughput. This

> > +alternate scheduler is considered experimental and should not be used

> for

> > +production at this time.

> > +

> > +==== Application Binary Interface (ABI) Support

> > +Support is added to enable ODP applications to be binary compatible

> across

> > +different implementations of ODP sharing the same Instruction Set

> Architecture

> > +(ISA). This support introduces a new `configure` option:

> > +

> > +`--enable-abi-compat=yes`::

> > +This is the default and specifies that the ODP library is to be built to

> > +support ABI compatibility mode. In this mode ODP APIs are never

> inlined. ABI

> > +compatibility ensures maximum application portability in cloud

> environments.

> > +

> > +`--enable-abi-compat=no`::

> > +Specify this option to enable the inlining of ODP APIs. This may result

> in

> > +improved performance at the cost of ABI compatibility and is suitable

> for

> > +applications running in embedded environments.

> > +

> > +Note that ODP applications retain source code portability between ODP

> > +implementations regardless of the ABI mode chosen. To move to a

> different ODP

> > +application running on a different ISA, code need simply be recompiled

> against

> > +that target ODP implementation.

> > +

> > +==== SCTP Parsing Support

> > +The ODP classifier adds support for recognizing Stream Control

> Transmission

> > +Protocol (SCTP) packets. The APIs for this were previously not

> implemented.

> > +

> > +=== Packaging and Implementation Refinements

> > +

> > +==== Remove dependency on Linux headers

> > +ODP no longer has a dependency on Linux headers. This will help make the

> > +odp-linux reference implementation more easily portable to non-Linux

> > +environments.

> > +

> > +==== Remove dependency on helpers

> > +The odp-linux implementation has been made independent of the helper

> library

> > +to avoid circular dependency issues with packaging. Helper functions

> may use

> > +ODP APIs, however ODP implementations should not use helper functions.

> > +

> > +==== Reorganization of `test` directory

> > +The `test` directory has been reorganized to better support a unified

> approach

> > +to ODP component testing. API tests now live in

> > +`test/common_plat/validation/api` instead of the former

> > +`test/validation`. With this change performance and validation tests,

> as well

> > +as common and platform-specific tests can all be part of a unified test

> > +hierarchy.

> > +

> > +The resulting test tree now looks like:

> > +

> > +.New `test` directory hierarchy

> > +-----

> > +test

> > +├── common_plat

> > +│   ├── common

> > +│   ├── m4

> > +│   ├── miscellaneous

> > +│   ├── performance

> > +│   └── validation

> > +│       └── api

> > +│           ├── atomic

> > +│           ├── barrier

> > +│           ├── buffer

> > +│           ├── classification

> > +│           ├── cpumask

> > +│           ├── crypto

> > +│           ├── errno

> > +│           ├── hash

> > +│           ├── init

> > +│           ├── lock

> > +│           ├── packet

> > +│           ├── pktio

> > +│           ├── pool

> > +│           ├── queue

> > +│           ├── random

> > +│           ├── scheduler

> > +│           ├── shmem

> > +│           ├── std_clib

> > +│           ├── system

> > +│           ├── thread

> > +│           ├── time

> > +│           ├── timer

> > +│           └── traffic_mngr

> > +├── linux-generic

> > +│   ├── m4

> > +│   ├── mmap_vlan_ins

> > +│   ├── performance

> > +│   ├── pktio_ipc

> > +│   ├── ring

> > +│   └── validation

> > +│       └── api

> > +│           ├── pktio

> > +│           └── shmem

> > +└── m4

> > +-----

> > +

> > +==== Pools

> > +The maximum number of pools that may be created in the odp-linux

> reference

> > +implementation has been raised from 16 to 64.

> > +

> > +==== Upgrade to DPDK 16.07

> > +The DPDK pktio support in odp-linux has been upgraded to work with DPDK

> 16.07.

> > +A number of miscellaneous fixes and performance improvements in this

> support

> > +are also present.

> > +

> > +==== PktIO TAP Interface Classifier Support

> > +Packet I/O interfaces operating in TAP mode now can feed packets to the

> ODP

> > +classifier the same as other pktio modes can do.

> > +

> > +=== Performance Improvements

> > +

> > +==== Thread-local cache optimizations

> > +The thread-local buffer cache has been reorganized and optimized for

> burst-mode

> > +operation, yielding a measurable performance gain in almost all cases.

> > +

> > +==== Burst-mode buffer allocation

> > +The scheduler and pktio components have been reworked to use burst-mode

> > +buffer allocation/deallocation, yielding a measurable performance gain

> in

> > +almost all cases.

> > +

> > +==== Burst-mode queue operations

> > +ODP queues internally now attempt to use burst-mode enq/deq operations

> to

> > +accelerate performance where applicable.

> > +

> > +==== Ring-based Scheduler Priority Queues

> > +The ODP scheduler has been enhanced to use ring-based priority queues,

> resulting

> > +in significantly better scalability in many core environments.

> > +

> > +==== GitHub Automation Support

> > +ODP now supports the Travis framework needed to trigger CI automation in

> > +conjunction with GitHub. This support is considered experimental for

> now.

> > +

> > +=== Examples

> > +

> > +==== New `l3fwd` Example

> > +A new example application is provided that illustrates use

> > +of ODP for simple Layer 3 forwarding across multiple interfaces.

> > +

> > +==== "Hello World" Example Application

> > +A basic "hello world" ODP application has been added to the `example`

> > +directory to illustrate the basic setup and control flow needed by ODP

> > +applications.

> > +

> > +=== Documentation

> > +

> > +==== Pure API Documentation

> > +ODP now generates "pure" (implementation independent) doxygen

> documentation in

> > +addition to the specific documentation for the odp-linux

> implementation. The

> > +pure version is applicable to any ODP implementation as it simply

> describes

> > +the ODP API specification. Implementation-specific versions of this

> > +documentation describe both the APIs as well as specifics concerning

> typedefs,

> > +enums, etc. This should help clarify what aspects of ODP are platform

> > +independent.

> > +

> > +==== Clarify ODP Thread Definition

> > +The definition of an ODP thread in odp-linux has been clarified to

> specify that

> > +for this implementation ODP threads are Linux pthreads or Linux

> processes.

> > +Currently threads as processes is considered experimental in odp-linux.

> > +

> > +=== Bug Fixes

> > +Numerous refinements have been incorporated to make

> > +validation tests more robust in API coverage as well as correcting

> corner

> > +cases in the implementation of many ODP APIs. Notable fixes include:

> > +

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

> > +`ODP_TIMEOUT_INVALID` is now defined consistently with other pool

> elements so

> > +the restriction on using Pool 0 as a timer pool is removed.

> > +

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

> > +The `odp_packet_copy()` API now correctly handles user areas between

> pools that

> > +are configured with different sized per-packet user area definitions.

> > +

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

> > +Corrects the implementation of AES GCM decryption in the ODP crypto API.

> > +

> > +=== Known Issues

> > +

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

> > +The Timer validation test fails sporadically in environments with high

> core

> > +counts.

> > +

> >  == OpenDataPlane (1.10.1.0)

> >

> >  === New Features

> > --

> > 2.7.4

> >

>

>

>

> --

> Mike Holmes

> Program Manager - Linaro Networking Group

> Linaro.org │ Open source software for ARM SoCs

> "Work should be fun and collaborative, the rest follows"

>
diff mbox

Patch

diff --git a/CHANGELOG b/CHANGELOG
index d8230cd..3ab7354 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,214 @@ 
+== OpenDataPlane (1.10.2.0)
+
+=== New Features
+
+==== APIs
+ODP v1.10.2.0 is a minor API revision level and introduces a small change to
+the Traffic Manager API as well as some documentation clarification surrounding
+other APIs.
+
+==== Traffic Manager Egress Function
+The `odp_tm_egress_t` struct has been changed to add an explicit Boolean
+(`egress_fcn_supported`) that indicates whether the TM system supports
+a user-provided egress function. When specified this function is called to
+"output" a packet rather than having TM transmit it directly to a PktIO
+interface.
+
+==== Traffic Manager Coupling Change
+The `odp_tm_egress_t` struct has been changed to associate a TM system with an
+output `odp_pktio_t` rather than the previous `odp_pktout_queue_t`. This makes
+an explicit 1-to-1 map between a TM system and a PktIO interface.
+
+==== Default huge page size clarification
+The documentation for the `odp_sys_huge_page_size()` API has been reworded to
+clarify that this API refers to default huge page size.
+
+==== Strict Priority (SP) Scheduler
+Building on the modular scheduler framework added in v1.10.1.0, an alternate
+Strict Priority (SP) Scheduler is now available for latency-sensitive
+workloads. Applications wishing to use the SP scheduler should specify
+the `./configure` option `--enable-schedule-sp`. This scheduler emphasizes low
+latency processing of high priority events at the expense of throughput. This
+alternate scheduler is considered experimental and should not be used for
+production at this time.
+
+==== Application Binary Interface (ABI) Support
+Support is added to enable ODP applications to be binary compatible across
+different implementations of ODP sharing the same Instruction Set Architecture
+(ISA). This support introduces a new `configure` option:
+
+`--enable-abi-compat=yes`::
+This is the default and specifies that the ODP library is to be built to
+support ABI compatibility mode. In this mode ODP APIs are never inlined. ABI
+compatibility ensures maximum application portability in cloud environments.
+
+`--enable-abi-compat=no`::
+Specify this option to enable the inlining of ODP APIs. This may result in
+improved performance at the cost of ABI compatibility and is suitable for
+applications running in embedded environments.
+
+Note that ODP applications retain source code portability between ODP
+implementations regardless of the ABI mode chosen. To move to a different ODP
+application running on a different ISA, code need simply be recompiled against
+that target ODP implementation.
+
+==== SCTP Parsing Support
+The ODP classifier adds support for recognizing Stream Control Transmission
+Protocol (SCTP) packets. The APIs for this were previously not implemented.
+
+=== Packaging and Implementation Refinements
+
+==== Remove dependency on Linux headers
+ODP no longer has a dependency on Linux headers. This will help make the
+odp-linux reference implementation more easily portable to non-Linux
+environments.
+
+==== Remove dependency on helpers
+The odp-linux implementation has been made independent of the helper library
+to avoid circular dependency issues with packaging. Helper functions may use
+ODP APIs, however ODP implementations should not use helper functions.
+
+==== Reorganization of `test` directory
+The `test` directory has been reorganized to better support a unified approach
+to ODP component testing. API tests now live in
+`test/common_plat/validation/api` instead of the former
+`test/validation`. With this change performance and validation tests, as well
+as common and platform-specific tests can all be part of a unified test
+hierarchy.
+
+The resulting test tree now looks like:
+
+.New `test` directory hierarchy
+-----
+test
+├── common_plat
+│   ├── common
+│   ├── m4
+│   ├── miscellaneous
+│   ├── performance
+│   └── validation
+│       └── api
+│           ├── atomic
+│           ├── barrier
+│           ├── buffer
+│           ├── classification
+│           ├── cpumask
+│           ├── crypto
+│           ├── errno
+│           ├── hash
+│           ├── init
+│           ├── lock
+│           ├── packet
+│           ├── pktio
+│           ├── pool
+│           ├── queue
+│           ├── random
+│           ├── scheduler
+│           ├── shmem
+│           ├── std_clib
+│           ├── system
+│           ├── thread
+│           ├── time
+│           ├── timer
+│           └── traffic_mngr
+├── linux-generic
+│   ├── m4
+│   ├── mmap_vlan_ins
+│   ├── performance
+│   ├── pktio_ipc
+│   ├── ring
+│   └── validation
+│       └── api
+│           ├── pktio
+│           └── shmem
+└── m4
+-----
+
+==== Pools
+The maximum number of pools that may be created in the odp-linux reference
+implementation has been raised from 16 to 64.
+
+==== Upgrade to DPDK 16.07
+The DPDK pktio support in odp-linux has been upgraded to work with DPDK 16.07.
+A number of miscellaneous fixes and performance improvements in this support
+are also present.
+
+==== PktIO TAP Interface Classifier Support
+Packet I/O interfaces operating in TAP mode now can feed packets to the ODP
+classifier the same as other pktio modes can do.
+
+=== Performance Improvements
+
+==== Thread-local cache optimizations
+The thread-local buffer cache has been reorganized and optimized for burst-mode
+operation, yielding a measurable performance gain in almost all cases.
+
+==== Burst-mode buffer allocation
+The scheduler and pktio components have been reworked to use burst-mode
+buffer allocation/deallocation, yielding a measurable performance gain in
+almost all cases.
+
+==== Burst-mode queue operations
+ODP queues internally now attempt to use burst-mode enq/deq operations to
+accelerate performance where applicable.
+
+==== Ring-based Scheduler Priority Queues
+The ODP scheduler has been enhanced to use ring-based priority queues, resulting
+in significantly better scalability in many core environments.
+
+==== GitHub Automation Support
+ODP now supports the Travis framework needed to trigger CI automation in
+conjunction with GitHub. This support is considered experimental for now.
+
+=== Examples
+
+==== New `l3fwd` Example
+A new example application is provided that illustrates use
+of ODP for simple Layer 3 forwarding across multiple interfaces.
+
+==== "Hello World" Example Application
+A basic "hello world" ODP application has been added to the `example`
+directory to illustrate the basic setup and control flow needed by ODP
+applications.
+
+=== Documentation
+
+==== Pure API Documentation
+ODP now generates "pure" (implementation independent) doxygen documentation in
+addition to the specific documentation for the odp-linux implementation. The
+pure version is applicable to any ODP implementation as it simply describes
+the ODP API specification. Implementation-specific versions of this
+documentation describe both the APIs as well as specifics concerning typedefs,
+enums, etc. This should help clarify what aspects of ODP are platform
+independent.
+
+==== Clarify ODP Thread Definition
+The definition of an ODP thread in odp-linux has been clarified to specify that
+for this implementation ODP threads are Linux pthreads or Linux processes.
+Currently threads as processes is considered experimental in odp-linux.
+
+=== Bug Fixes
+Numerous refinements have been incorporated to make
+validation tests more robust in API coverage as well as correcting corner
+cases in the implementation of many ODP APIs. Notable fixes include:
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2316[Bug 2316]
+`ODP_TIMEOUT_INVALID` is now defined consistently with other pool elements so
+the restriction on using Pool 0 as a timer pool is removed.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2310[Bug 2310]
+The `odp_packet_copy()` API now correctly handles user areas between pools that
+are configured with different sized per-packet user area definitions.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2571[Bug 2571]
+Corrects the implementation of AES GCM decryption in the ODP crypto API.
+
+=== Known Issues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2309[Bug 2309]
+The Timer validation test fails sporadically in environments with high core
+counts.
+
 == OpenDataPlane (1.10.1.0)
 
 === New Features