From: Bill Fischofer <bill.fischo...@linaro.org> Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org> --- CHANGELOG | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+)
diff --git a/CHANGELOG b/CHANGELOG index 1d652a8..b125d63 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: + +`--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 + +==== 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