On 18 November 2016 at 01:34, Bill Fischofer <bill.fischo...@linaro.org> wrote:
> Signed-off-by: Bill Fischofer <bill.fischo...@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
>

Reply via email to