[PATCHv2] changelog: summary of changes for odp v1.11.1.0

Message ID 1479429284-5902-1-git-send-email-bill.fischofer@linaro.org
State New
Headers show

Commit Message

Bill Fischofer Nov. 18, 2016, 12:34 a.m.
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

---
Changes for v2:
- Changed release level to v1.11.1.0 per Mike

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

-- 
2.7.4

Comments

Anders Roxell Nov. 18, 2016, 7:52 p.m. | #1
On 18 November 2016 at 01:34, Bill Fischofer <bill.fischofer@linaro.org> wrote:
> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

> ---

> Changes for v2:

> - Changed release level to v1.11.1.0 per Mike

>

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

>  1 file changed, 211 insertions(+)

>

> diff --git a/CHANGELOG b/CHANGELOG

> index d8230cd..66488e5 100644

> --- a/CHANGELOG

> +++ b/CHANGELOG

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

> +== OpenDataPlane (1.11.1.0)

> +

> +=== New Features

> +

> +==== APIs

> +ODP v1.11.1.0 is a minor API revision level beyond the Monarch Long Term

> +Support (LTS) release 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.


This means that we should bump the ODP's SO-version as well, since
we changed the struct that you mention + that we added "odp_bool_t
egress_fcn_supported;" to the same struct.

> +

> +==== 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.


before we do a new release I think we need to resolve what we
talked about in this thread [1].
Basically, if we disable ABI compat mode I think we should set the
SO-version to 0:0:0, to make it clear that we don't try to be ABI
compatible.

Cheers,
Anders
[1] https://lists.linaro.org/pipermail/lng-odp/2016-September/025734.html

> +

> +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

>
Maxim Uvarov Nov. 18, 2016, 8:44 p.m. | #2
On 11/18/16 22:52, Anders Roxell wrote:
> On 18 November 2016 at 01:34, Bill Fischofer <bill.fischofer@linaro.org> wrote:

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

>> ---

>> Changes for v2:

>> - Changed release level to v1.11.1.0 per Mike

>>

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

>>   1 file changed, 211 insertions(+)

>>

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

>> index d8230cd..66488e5 100644

>> --- a/CHANGELOG

>> +++ b/CHANGELOG

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

>> +== OpenDataPlane (1.11.1.0)

>> +

>> +=== New Features

>> +

>> +==== APIs

>> +ODP v1.11.1.0 is a minor API revision level beyond the Monarch Long Term

>> +Support (LTS) release 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.

> This means that we should bump the ODP's SO-version as well, since

> we changed the struct that you mention + that we added "odp_bool_t

> egress_fcn_supported;" to the same struct.



good point, thanks. I will send patch for review.

>> +

>> +==== 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.

> before we do a new release I think we need to resolve what we

> talked about in this thread [1].

> Basically, if we disable ABI compat mode I think we should set the

> SO-version to 0:0:0, to make it clear that we don't try to be ABI

> compatible.

>

> Cheers,

> Anders

> [1] https://lists.linaro.org/pipermail/lng-odp/2016-September/025734.html


Absolutely agree. If we do not solve that now, then we do not solve that 
later.


Maxim.

>> +

>> +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

>>

Patch

diff --git a/CHANGELOG b/CHANGELOG
index d8230cd..66488e5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,214 @@ 
+== OpenDataPlane (1.11.1.0)
+
+=== New Features
+
+==== APIs
+ODP v1.11.1.0 is a minor API revision level beyond the Monarch Long Term
+Support (LTS) release 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