This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The annotated tag, v1.12.0.0 has been created at 953fcfa24571d1da9901e262c3fe92ecd796c343 (tag) tagging 4cfe988cc6e0667928c23a4715eeac8a301396ac (commit) replaces v1.11.0.0_monarch tagged by Maxim Uvarov on Fri Dec 2 18:26:02 2016 +0300
- Log ----------------------------------------------------------------- == 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%5BBug 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%5BBug 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%5BBug 2571] Corrects the implementation of AES GCM decryption in the ODP crypto API.
=== Known Issues
==== https://bugs.linaro.org/show_bug.cgi?id=2309%5BBug 2309] The Timer validation test fails sporadically in environments with high core counts.
Anders Roxell (1): linux-gen: Makefile: Move EXTRA_DIST to to platform/Makefile.inc
Balasubramanian Manoharan (1): api: traffic_mngr: Add pktio interface to odp_tm_egress_t struct
Barry Spinney (3): api: tm: resolve todo linux-generic: tm: made tm thread creation more flexible linux-generic: tm: fix off by 1 bug accessing queue_num_tbl
Bill Fischofer (10): validation: tm: use strncmp() to avoid potential string overrun doc: release-guide: elaborate release naming scheme linux-generic: tm: handle pktout queue check properly test: performance: capture termination failures in final return code linux-generic: configure: add conditional shared library support linux-generic: make: fix distribution build for inlines.h linux-generic: ticketlock: add missing doxygen for ticketlock_inlines.h linux-generic: config: add missing doxygen documentation for abi macros linux-generic: packet: add fall through comments to parser changelog: summary of changes for odp v1.12.0.0
Brian Brooks (4): linux-generic: internal cache line size timers: fix off by one tick in timer expiration processing example: odp_timer_simple: decrease timer pool resolution timer: add missing atomic decrement
Christophe Milard (9): validation: diverse cosmetic fixes for checkpatch validation: moving api validation tests to prepare for new interfaces test: restructuring platform-specific tests to allow other interface doc: implementers guide update with the new structure test: update in readme file linux-gen: doc: defining the ODP thread linux-gen: using ODP instantiation pid as odp instance linux-gen: packet_io: handling term_global while in CLOSE_PENDING performance: odp_pktio_perf: adding missing term functions
Juha Mattila (1): linux-gen: tap: add classifier support
Khalil Blaiech (1): helper: fixing helper prefix in chksum.c
Matias Elo (20): linux-gen: pool: optimize thread local buffer cache linux-gen: pktio: use multi alloc linux-gen: netmap: use multi alloc/free performance: odp_scheduling: use multi alloc/free buffer functions linux-gen: dpdk: bump target dpdk version to 16.07 linux-gen: dpdk: free used mempool when closing pktio device linux-gen: dpdk: fix buffer freeing in mbuf_to_pkt() linux-gen: dpdk: bulk alloc mbufs in tx linux-gen: dpdk: move rx/tx locks test: perf: add new scheduling latency test test: sched_latency: add test script linux-gen: packet: enable parsing only selected packet header layers linux-gen: packet: parse only required packet header layers linux-gen: packet: identify sctp packets example: l3fwd: add missing gitignores example: l3fwd: optimize ip checksum update example: l3fwd: make packet error check optional example: l3fwd: remove unnecessary output arguments example: l3fwd: simplify worker main loop example: l3fwd: prevent possible use of uninitialised variables
Maxim Uvarov (24): linux-gen: fix odp_pool_print api: system: specify default huge page size linux-gen: fix possible overflow in pktio ipc code linux-gen: test add termination path for ipc pktio test linux-gen: do not init scheduler context on termination example: odp_l2fwd place readme with symlink test: linux-gen: ipc do not use pid -1 value linux-gen: socket mmap remove todo example: l2fwd_simple add termination path example: l3fwd: fix clang build Revert "example: generator: actually use specified default" linux-gen: pktio: ipc: remove todos test: skip pktio_perf tests on 1 and 2 cpus machines Revert "test: skip pktio_perf tests on 1 and 2 cpus machines" test: skip pktio_perf tests on 1 and 2 cpus machines fix out of tree build linux-gen: crypto: fix aes gcm decryption linux-generic: add vlan insertion test test: linux-gen: mmap_vlan_ins change bin to test programs travis: linux-gen: add dpdk pktio Merge tag 'v1.11.0.0_monarch' test: linux-gen: fix termination in mmap_vlan_ins configure.ac: disable shared library for non abi compat mode configure.ac update version numbers
Mike Holmes (10): example: odp_traffic_mgmt: remove unused includes doc: implimenters: fix spelling test:linux-generic: run odp_scheduling in process mode doc: release-guide: add LTS details test: perf: add prime num threads to odp_scheduling example: generator: actually use specified default example: generator: actually use specified default configure: the version cannot use a script add travis.yml for gitub automation travis.yml: add coverity support
Nikhil Agarwal (2): example:ipsec: removed invalid todos. api:crypto: resolve todo items
Oriol Arcas (1): linux-generic: pool: set maximum number of pools to 64
Petri Savolainen (15): linux-gen: sched: keep scheduling over empty queues test: l2fwd: remove wait time from sched mode linux-gen: sched: ring based priority queues linux-gen: sched: ring based pktio command queues linux-gen: sched: increase number of pktin linux-gen: sched: pktio poll loop optimization linux-gen: sched: increase max dequeue batch size linux-gen: sched: call schedule_release_atomic directly linux-gen: queue: reuse enq_ and deq_multi linux-gen: queue: burst enq and deq linux-gen: ticketlock: inline ticketlock implementation linux-gen: queue: use inlined ticketlock linux-gen: pool: use inlined ticketlock linux-gen: config: increase burst sizes linux-gen: build: de-couple abi compatibility from shared lib
Xuelin Shi (4): example: introducing l3fwd example/l3fwd: add test script example/l3fwd: enhance flow lookup performance in hash linux-generic: fix ISO C compiling issue with -Werror=pedantic
-----------------------------------------------------------------------
hooks/post-receive