Message ID | 1480537973-7830-3-git-send-email-maxim.uvarov@linaro.org |
---|---|
State | Accepted |
Commit | 290b6f6464a81d65333657dfff7922203614748c |
Headers | show |
On 30 November 2016 at 15:32, Maxim Uvarov <maxim.uvarov@linaro.org> wrote: > From: Bill Fischofer <bill.fischofer@linaro.org> > > Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> > Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> > Reviewed-by: Mike Holmes <mike.holmes@linaro.org> > --- > CHANGELOG | 177 ++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++ > 1 file changed, 177 insertions(+) > > diff --git a/CHANGELOG b/CHANGELOG > index 1d652a8..17afe44 100644 > --- a/CHANGELOG > +++ b/CHANGELOG > @@ -1,3 +1,180 @@ > +== OpenDataPlane (1.12.0.0) > + > +=== New Features > + > +==== APIs > +ODP v1.12.0.0 has no API changes from previous v1.11.0 Monarch LTS. > Version > +is increased in current development release to make room for Monarch > updates > +numbers. > + > +==== 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: > + > +`no abi disable option`:: > +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. > + > +`--disable-abi-compat`:: > +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 > + > +==== 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. > + > +=== 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.11.0.0) > ODP v1.11.0 is the base tag and branch for the Monarch LTS (Long Term > Support) > release of ODP. > -- > 2.7.1.250.gff4ea60 > > -- Mike Holmes Program Manager - Linaro Networking Group Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs "Work should be fun and collaborative, the rest follows"
Merged. On 12/01/16 21:36, Mike Holmes wrote: > > > On 30 November 2016 at 15:32, Maxim Uvarov <maxim.uvarov@linaro.org > <mailto:maxim.uvarov@linaro.org>> wrote: > > From: Bill Fischofer <bill.fischofer@linaro.org > <mailto:bill.fischofer@linaro.org>> > > Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org > <mailto:bill.fischofer@linaro.org>> > Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org > <mailto:maxim.uvarov@linaro.org>> > > > Reviewed-by: Mike Holmes <mike.holmes@linaro.org > <mailto:mike.holmes@linaro.org>> > > > > --- > CHANGELOG | 177 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 177 insertions(+) > > diff --git a/CHANGELOG b/CHANGELOG > index 1d652a8..17afe44 100644 > --- a/CHANGELOG > +++ b/CHANGELOG > @@ -1,3 +1,180 @@ > +== OpenDataPlane (1.12.0.0) > + > +=== New Features > + > +==== APIs > +ODP v1.12.0.0 has no API changes from previous v1.11.0 Monarch LTS. > Version > +is increased in current development release to make room for > Monarch updates > +numbers. > + > +==== 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: > + > +`no abi disable option`:: > +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. > + > +`--disable-abi-compat`:: > +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 > + > +==== 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. > + > +=== 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 > <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 > <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 > <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 > <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.11.0.0) > ODP v1.11.0 is the base tag and branch for the Monarch LTS (Long > Term Support) > release of ODP. > -- > 2.7.1.250.gff4ea60 > > > > > -- > Mike Holmes > Program Manager - Linaro Networking Group > Linaro.org <http://www.linaro.org/>* **│ *Open source software for ARM SoCs > "Work should be fun and collaborative, the rest follows" > > __ > >
diff --git a/CHANGELOG b/CHANGELOG index 1d652a8..17afe44 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,180 @@ +== OpenDataPlane (1.12.0.0) + +=== New Features + +==== APIs +ODP v1.12.0.0 has no API changes from previous v1.11.0 Monarch LTS. Version +is increased in current development release to make room for Monarch updates +numbers. + +==== 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: + +`no abi disable option`:: +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. + +`--disable-abi-compat`:: +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 + +==== 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. + +=== 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.11.0.0) ODP v1.11.0 is the base tag and branch for the Monarch LTS (Long Term Support) release of ODP.