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.14.0.0 has been created at 01ce17531870be078cfeeb9e450081ed4575fb02 (tag) tagging a652887cfebadb30843a6fbfe9d5655031d46881 (commit) replaces v1.13.0.0 tagged by Maxim Uvarov on Wed Mar 1 22:01:23 2017 +0300
- Log ----------------------------------------------------------------- == OpenDataPlane (1.14.0.0) === New Features ==== APIs ODP v1.14.0.0 represents another preview of the Tiger Moth release series and introduces new APIs and extensions.
===== Packet References Packet references are a lightweight mechanism to allow applications to create and manipulate different "views" of packets. These views consist of shared bytes common to all references created on the same `odp_packet_t`, possibly prefixed with unique headers that are private to each reference. Five new APIs are introduced to enable this feature:
`odp_packet_ref_static()`:: Static references allow a single packet to have multiple "aliases", all of which must be treated as read only. This is useful, for example, to retain a reference to a packet being transmitted to support retransmit processing, since the actual storage represented by a packet is not released until all references to it have been freed via `odp_packet_free()` calls.
`odp_packet_ref()`:: Dynamic references differ from static references is that they permit the individual `odp_packet_t` handles to have unique prefixes created via `odp_packet_push_head()` or `odp_packet_extend_head()` calls. This can be used, for example, to support multicasting packets to different destinations by creating packets that consist of unique headers followed by a common shared payload.
`odp_packet_ref_pkt()`:: Similar to `odp_packet_ref()`, but creates a dynamic reference by prepending a preexisting header onto another packet.
`odp_packet_has_ref()`:: Returns a boolean indicator of whether a given `odp_packet_t` has other references that share bytes with this packet.
`odp_packet_unshared_len()`:: Returns the number of unshared bytes accessible through a given `odp_packet_t` handle. These are the only bytes that should be changed. All other bytes in the packet should be treated as read only as they are shared with other `odp_packet_t` handles.
Note that while the packet reference APIs and associated validation tests are present in this release, the `odp-linux` reference implementation currently implements references via packet copying. A zero-copy implementation of packet references is planned to be part of the ODP v1.15.0.0 release.
==== ABI Specification ODP has supported an Application Binary Interface (ABI) that permits applications to be generated that are binary portable between select ODP implementations. This is now formalized with the addition of structures that permit ABI specifications to be defined that are shared between ODP implementations. ODP provides a default ABI specification that is the same as was provided before. This change means that additional ABIs may be defined that are optimized to collections of platforms that share an Instruction Set Architecture (ISA) and subscribe to them.
ABI specifications live in the `include/odp/arch/...` directory.
==== Instance Query (iQuery) Scheduler Adding to the range of scheduler implementations supported by `odp-linux`, a new scheduler, the instance query scheduler, is available by specifying `--enable-schedule-iquery` at `configure` time.
This scheduler uses sparse bitmaps and offers scalability advantages when dealing with large numbers of schedule queues. It otherwise offers performance comparable to the default ODP scheduler implementation.
=== Helpers Helpers have been reorganized to provide better independence from odp-linux and to make them more useful with other ODP implementations. These reorganizations are functionally transparent to ODP users but should simplifying packaging and porting to other ODP implementations. This includes adding the "umbrella" include file `odph_api.h` which can be used to include all helper API definitions in an application.
=== Classifier Improvements The `odp-linux` reference implementation now supports Pattern Matching Rules (PMRs) for IPv6 addresses, inner and outer VLAN IDs, and inner and outer Ethernet types.
=== Performance
==== Improved inlining for embedded applications The `odp-linux` reference implementation now offers improved inlining support for ODP APIs for applications compiled against ODP configured with the `--enable-abi-compat=no` option, meaning they wish to forego binary compatibility in exchange for improved performance. These applications remain source portable to other ODP implementations.
==== Native `odp_cpu_pause()` for ARM processors A native implementation of the `odp_cpu_pause()` API has been added for ARMv7 and ARMv8 processors.
==== New Microbenchmark The `odp_packet_bench` microbenchmark application has been added to the test performance directory to allow implementations to measure and calibrate the performance of individual ODP packet APIs.
==== Ordered PktIO Test The `odp_pktio_ordered` application has been added to the test performance directory to provide stress-testing of packet ordering features of ODP.
=== Documentation In addition to expanded documentation related to the new packet reference APIs, a section on applicatin portability has been added that discusses the types of portability offered by ODP and the tradeoffs that application writers should consider when using ODP.
=== Bug Fixes
==== https://bugs.linaro.org/show_bug.cgi?id=2806%5BBug 2806] The `hello.c` application can now run properly if Core 0 is not available (any available core will be used).
==== https://bugs.linaro.org/show_bug.cgi?id=2827%5BBug 2827] Provide proper return code checking within _ishm.c
==== https://bugs.linaro.org/show_bug.cgi?id=2829%5BBug 2829] Remove unused variables in iplookuptable helper routine.
==== https://bugs.linaro.org/show_bug.cgi?id=2830%5BBug 2830] Avoid memory leaks on error paths in the cuckoo table helper functions.
==== https://bugs.linaro.org/show_bug.cgi?id=2834%5BBug 2834] Fixes a race condition in shared memory allocation.
==== https://bugs.linaro.org/show_bug.cgi?id=2842%5BBug 2842] Provide proper fallback for shared memory when hugepages are not available.
==== https://bugs.linaro.org/show_bug.cgi?id=2862%5BBug 2862] Avoid null pointer dereference in the iplookuptable helper routine.
==== https://bugs.linaro.org/show_bug.cgi?id=2865%5BBug 2865] Missing doxygen documentation for helper table functions are added.
=== Known Issues
==== https://bugs.linaro.org/show_bug.cgi?id=2852%5BBug 2852] C++ programs fail to compile if they attempt to include the ODP helper APIs.
==== https://bugs.linaro.org/show_bug.cgi?id=2895%5BBug 2895] The `odp_crypto_operation()` routine does not work with multi-segment packets.
Andriy Berestovskyy (1): doc: fix k.org links in CONTRIBUTING
Balasubramanian Manoharan (6): linux-generic: classification: implement ipv6 packet matching rule validation: classification: add test case for ipv6 src and dst addr linux-generic: classification: implement vlan id packet matching rule validation: classification: add test case for outer and inner vlan id linux-generic: classification: implement eth type packet matching rule validation: classification: add test case for outer and inner eth type
Bill Fischofer (10): helper: iplookuptable: avoid potential null pointer dereferences doc: helper: add missing doxygen for helper table functions helper: cuckootable: avoid storage leaks on error paths helper: iplookuptable: removed unused variable helper: tables: avoid invalid odp_shm_addr() calls validation: packet: add packet reference tests doc: userguide: add user documentation for packet references doc: userguide: add section on application portability doc: images: add images for packet reference documentation changelog: summary of changes for ODP v1.14.0.0
Brian Brooks (1): linux-generic: add ARM odp_cpu_pause()
Christophe Milard (5): linux-gen: _ishm: fix normal page fallback linux-gen: _ishm: checking fstat return value. linux-gen: _ishmphy: fix possible race with malloc travis: better comments to generate token in the travis file linux-generic: cosmetic changes on byteorder files
Dmitry Eremin-Solenikov (3): linux-generic: crypto: add missing include linux-generic: crypto: port to OpenSSL 1.0.x thread id API linux-generic: crypto: support OpenSSL 1.1.0
Matias Elo (9): test: perf: add new packet function microbenchmark application linux-gen: netmap: fix interface flags initialization linux-gen: netmap: bump supported netmap version to 11.2 test: perf: add new ordered pktio application test: pktio_ordered: add test script validation: crypto: fix hw cipher/auth algorithm check validation: crypto: check cipher/auth algorithm support before use validation: crypto: check cipher options support before running tests validation: crypto: check auth options support before running tests
Maxim Uvarov (17): example: hello: ask odp for available core helper: fix compilation with warnings configure.ac: helper: print debug config option test: linux-gen: vlan insertion: add time-out exit test: linux-gen: vlan insertion: reduce memory pool travis: add netmap pktio tests linux-gen: fix dpdk pktio init codecov: add code coverage integrated to github travis: add code style checks travis: mirror cunit on github travis: switch to ubuntu trusty travis: clang 3.8 travis: catch doxygen errors linux-gen: do not do double symlinks on make distcheck linux-gen: makefile: remove pass command codecov: lower expectations from codecov update API version number from v1.13.0.0 to v1.14.0.0
Mike Holmes (8): configure: use helper configure.m4 helper: cleanup Linux rename to thread helper: move thread implementation under platform helper: remove dependence on test dir helper: add odph_api.h for existing exported headers helper: use odph_api.h for test include for unexported files test: use odph_api.h examples: use odph_api.h
Petri Savolainen (28): linux-gen: align: round up power of two as macro linux-gen: align: clean up macros abi: event: added the first ABI spec file abi: buffer: added initial definitions abi: classifier: added initial definitions abi: crypto: added initial definitions abi: packet: added initial definitions abi: pool: added initial definitions abi: queue: added initial definitions abi: shm: added initial definitions test: l2fwd: add pktio driver print out validation: packet: print reason for suite init failure test: generator: various improvements test: l2fwd script: limit number of generator cpus test: l2fwd: use packet_data helper: linux: renamed threads_extn to linux helpers linux-gen: abi: add symlink to arch specific dir linux-gen: inline: rename _STATIC to _ODP_INLINE linux-gen: ticketlock: inline also in application linux-gen: packet: packet handle is hdr pointer linux-gen: packet: inline functions linux-gen: packet: inline flag functions linux-gen: ipc: use hdr to handle conversion function linux-gen: tm: use handle conversion function api: packet: add support for packet references api: packet: references may be implemented as copy validation: packet: remove non compatible tests linux-gen: packet: implement references as copy
Yi He (6): linux-gen: sched: fix SP scheduler hang in process mode linux-gen: sched: solve ordered context inversion linux-gen: sched: add unsched_queue callback linux-gen: add generic bitmaps and iterators linux-gen: add interests query (iquery) scheduler linux-gen: fix odp_schedule.m4
-----------------------------------------------------------------------
hooks/post-receive