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.15.0.0 has been created at ac7d1a3026c7d59f7379ff491a5cb8741c27beb3 (tag) tagging 5dd7d9ed05ee228406cc3c0ae6cd9caa20a71f08 (commit) replaces v1.14.0.0 tagged by Maxim Uvarov on Mon Jun 19 18:18:18 2017 +0300
- Log ----------------------------------------------------------------- == opendataplane (1.15.0.0) === new features odp v1.15.0.0 continues the preview of tiger moth, introducing new apis and extensions, as well as numerous bug fixes and functional improvements.
==== deprecation framework to permit smoother evolution of the odp api specification, a deprecation framework is introduced to permit controlled deprecation.
when an odp api or defined struct parameter is deprecated, odp validation tests will be updated to no longer use that api and instead use the replacement api. by default, attempts to compile with the older api/feature will fail and applications wishing to move to the new odp release should be updated to use the replacement api. to permit evaluation of new odp releases in advance of such updating, however, odp supports the `configure` option `--enable-deprecated`, which makes the obsolete apis visible again.
this feature will be used on a case-by-case basis and documented in the release notes for each release that introduces replacement api(s). in general the deprecated forms will not be maintained for more than a single release cycle. after that they will no longer be present in the api specification and the replacement forms must be used to compile with that level of the api specification.
==== apis a number of new and refined apis are introduced in crypto, packet parsing, and queue configuration:
===== crypto enhancements the odp crypto apis receive several enhancements in this release:
====== new authentication algorithms additional enumerations added for hmac-sha-1 and hmac-sha-512 authentication.
====== deprecated cipher/authentication algorithms the following cipher/authentication algorithms have been deprecated in favor of newer replacement algorithms:
* `odp_cipher_alg_aes128_cbc` is replaced by `odp_cipher_alg_aes_cbc` * `odp_cipher_alg_aes128_gcm` is replaced by `odp_cipher_alg_aes_gcm` * `odp_auth_alg_md5_96` is replaced by `odp_auth_alg_md5_hmac` * `odp_auth_alg_sha256_128` is replaced by `odp_auth_alg_sha256_hmac` * `odp_auth_alg_aes128_gcm1 is replaced by `odp_auth_alg_aes_gcm`
====== deprecated name for crypto parameter struct `odp_crypto_op_params_t` is deprecated in favor of `odp_crypto_op_param_t` for consistency with other odp `param` structs.
====== digest length session parameter `odp_crypto_session_param_t` adds the field `auth_digest_len` to permit specification of the authentication digest length to be used for this session. the `odp_crypto_auth_capability()` api returns the list of supported digest lengths.
====== additional authentication data (aad) the `odp_crypto_op_param_t` struct adds an optional pointer and length for aad information. this allows applications to specify aad information from the list of supported lengths provided by `odp_crypto_auth_capability()`.
===== packet range data the former `odp_crypto_data_range_t` type is deprecated and renamed to `odp_packet_data_range_t` since it can be used to specify ranges for other than crypto purposes.
===== parser configuration applications may now specify the maximum packet layer of interest. for example, a router may not care about anything beyond iso layer 3 in packets. this can be used by odp implementations to control the depth of packet parsing needed by the application and may allow greater efficiency, especially in software implementations.
this is controlled by a new `odp_pktio_parser_layer_t` enum that is part of the new `odp_pktio_parser_config_t` struct that is added to the `odp_pktio_config_t` struct used by the `odp_pktio_config()` api. the supported parser layers are also returned in this struct as part of the `odp_pktio_capability_t` struct returned by the `odp_pktio_capability()` api.
===== queue size parameter the `odp_queue_capability_t` struct returned by the `odp_queue_capability()` api is enhanced as follows: * the `max_queues` field is now defined to return the maximum number of event queues of any type. * new sub-structs (`plain` and `sched`) are added that detail the `max_num` of queues of that type supported as well as the new field `max_size` that specifies the maximum number of elements that each queue of this type can store. a value of zero for `max_num` indicates no fixed limit.
in addition, the `odp_queue_param_t` passed to `odp_queue_create()` now adds a `size` field to allow applications to specify the minimum number of events that this queue should be able to store. a value of zero specified requests that the implementation default limits be used.
the odp examples have been updated to show this configuration, for example, the `l2fwd_simple` example does layer 2 forwarding and hence doesn't need packets to be parsed beyond layer 2. so prior to opening an interface via `odp_pktio_open()` the configuration processing now includes code of the form: [source,c] ----- odp_pktio_config_init(&config); config.parser.layer = odp_pktio_parser_layer_l2; odp_pktio_config(pktio, &config); ----- this serves as a hint to the odp implementation that parsing beyond layer 2 is not required on this interface.
===== removal of `odp_time_to_u64()` api the `odp_time_to_u64()` api is removed without deprecation in this release. this is redundant since the `odp_time_to_ns()` api already returns a `uint64_t` value for `odp_time_t` and can be used for the same purpose.
===== new `odp_sys_info_print()` api for debugging / diagnostic use, the `odp_sys_info_print()` api is added. this prints implementation defined information about the system and odp environment and may contain information about cpus, memory, and other hardware configuration.
=== helpers ==== linux helpers odp helper functions fall into two categories: system-independent, and those that rely on linux. for backwards compatibility, these have been reorganized into a new `helper/linux` directory that is installed only when the `--enable-helper-linux` `configure` option is specified.
=== `odp-linux` performance ==== scheduler improvements the default scheduler is streamlined by using precomputed weight tables and separated priority queues for different scheduling groups. this improves both latency and scalability.
also included in this change, the default number of scheduling groups is lowered from 256 to 32, which experience has shown is sufficient for most applications.
the scheduler fairness checks are also enhanced to avoid low priority event starvation if `config_burst_size` is set to 1.
=== `odp_linux` crypto improvements * errors in implicit packet copy operations performed during crypto operation are now handled properly. * if `odp_crypto_session_create()` fails, proper cleanup is now performed to avoid memory leaks. * the auth digest len is now used when calculating hmacs, and full-length digests are now added to supported sha capabilities. * numerous crypto functions have been rewritten to use the openssl `evp_` functions for improved efficiency and accuracy.
=== `odp-linux` packet improvements * the packet parser now recognizes icmpv6 packets in addition to icmpv4.
=== `odp-linux` pktio improvements * the `ethtool` and `socket` drivers add additional initializations to avoid valgrind warnings. * the `dpdk` driver is upgraded to dpdk 17.02 and is now also built with the `--whole-archive` option, which means that pmds no longer need to be linked individually but are automatically included in builds that make use of dpdk pktio support.
=== `odp-linux` time improvements * the odp time apis are now more efficiently handled by replacing the previous linux timespec with simple nanoseconds (ns) and using native hardware time counters in x86 and arm environments, when available.
=== `odp-linux` traffic manager improvements * weighting is now handled properly when weight=1 is specified. previously this caused an overflow that distorted packet priorities.
=== miscellaneous fixes and improvements ==== native clang build on armv8 armv8 compilation now works properly when using the clang compiler.
==== test improvements * the `odp_scheduling` performance test now handles dequeueing from potentially concurrent queues properly. * the traffic manager and time tests are now invoked via scripts to better account for load-sensitivity when running regressions in ci environments. * the l2fwd test now supports an additional parameter to specify the number of scheduling groups to use in the test. * the `odp_sched_latency` performance test now handles queue draining in a robust manner. * the crypto validation tests now properly check and validate message digests, and include negative tests to verify that incorrect digests are properly flagged. note that this may expose omissions in other odp implementations that had previously passed this validation test. * the crypto validation test now adds an explicit test for the null cipher, as well as hmac-sha-1 and hmac-sha-512. * the pktio_ipc test now properly cleans up only its own temp files.
==== examples improvements * the `odp_generator` example now properly honors stop criteria based on number of packets sent. * the `odp_generator` example now properly flushes output messages * the `odp_generator` example now supports port configuration.
=== bug fixes ==== https://bugs.linaro.org/show_bug.cgi?id=2416%5Bbug 2416] example/generator/odp_generator.c contains todo items
==== https://bugs.linaro.org/show_bug.cgi?id=2779%5Bbug 2779] error handling issues (checked_return)
==== https://bugs.linaro.org/show_bug.cgi?id=2826%5Bbug 2826] unchecked return in pool.c
==== https://bugs.linaro.org/show_bug.cgi?id=2831%5Bbug 2831] unchecked return in mmap_unmap_sock()
==== https://bugs.linaro.org/show_bug.cgi?id=2852%5Bbug 2852] odp_static_assert() fails when used by c++
==== https://bugs.linaro.org/show_bug.cgi?id=2872%5Bbug 2872] odp_pktio_ordered_run.sh: line 34: integer expression expected
==== https://bugs.linaro.org/show_bug.cgi?id=2881%5Bbug 2881] load sensitive tests fail on ci
==== https://bugs.linaro.org/show_bug.cgi?id=2895%5Bbug 2895] the `odp_crypto_operation()` routine does not work with multi-segment packets.
==== https://bugs.linaro.org/show_bug.cgi?id=2908%5Bbug 2908] packet validation test fails if implementation does not limit packet length
==== https://bugs.linaro.org/show_bug.cgi?id=2910%5Bbug 2910] odph_iplookup_table_put_value() uses overlapping pointer addresses
==== https://bugs.linaro.org/show_bug.cgi?id=2933%5Bbug 2933] miss to call unlock if there are some errors happen in loopback_send() function
==== https://bugs.linaro.org/show_bug.cgi?id=2940%5Bbug 2940] `odp_packet_seg_t` fails abi compatibility between odp-linux and odp-dpdk
==== https://bugs.linaro.org/show_bug.cgi?id=2942%5Bbug 2942] compilation fails using clang 4.0.0
==== https://bugs.linaro.org/show_bug.cgi?id=2952%5Bbug 2952] doxygen errors and travis does not catch them
==== https://bugs.linaro.org/show_bug.cgi?id=2969%5Bbug 2969] tm validation test does find traffic_mngr_main
==== https://bugs.linaro.org/show_bug.cgi?id=2974%5Bbug 2974] `odp_rwlock_read_trylock()` fails if lock is already held for read access
==== https://bugs.linaro.org/show_bug.cgi?id=3002%5Bbug 3002] packet order lost when enqueuing to pktout queue
==== https://bugs.linaro.org/show_bug.cgi?id=3003%5Bbug 3003] aes-gcm returns 'valid' tag when checking invalid tag
==== https://bugs.linaro.org/show_bug.cgi?id=3013%5Bbug 3013] various failures if config_packet_max_segs is set to 1
==== https://bugs.linaro.org/show_bug.cgi?id=3017%5Bbug 3017] travis: time main test out of boundaries
==== https://bugs.linaro.org/show_bug.cgi?id=3027%5Bbug 3027] compilation failures using gcc 7 series
==== https://bugs.linaro.org/show_bug.cgi?id=3039%5Bbug 3039] socket pktio recv fails on large number of packet
=== known issues ==== https://bugs.linaro.org/show_bug.cgi?id=3024%5Bbug 3024] odp_traffic_mngr example is broken
==== https://bugs.linaro.org/show_bug.cgi?id=3026%5Bbug 3026] pktio_ips_run test can fail due to segfault
Balakrishna Garapati (2): validation: packet: do assert on newly created pkt reference linux-generic: decouple odp_errno define from odp-linux
Bill Fischofer (16): linux-generic: pool: add odp_pool_capability() rc check validation: packet: do not require a max packet length abi: packet: restore abi compatibility for odp_packet_seg_t type linux-generic: debug: enable helper use from c++ programs bug: linux-generic: add syntax to allow newer clang to compile odp example: l3fwd: check rc from odph_eth_addr_parse() scripts: checkpatch: update to allow additional exceptions api: classification: add additional doxygen documentation api: pool: add additional doxygen documentation api: tm: add additional doxygen documentation linux-generic: types: add additional doxygen documentation helper: add additional doxygen documentation linux-generic: time: add additional doxygen doc for time type api: crypto: correct documentation typos changelog: updates for odp v1.15.0.0 changelog: add bug 3039 to list of bug fixes for v1.15
Bogdan Pricope (10): test: generator: compose sending packets from reference packet plus differences test: generator: send UDP packets in bursts test: generator: receive packets in bursts test: generator: use multiple RX queue in receiving mode test: generator: use multiple TX queues in send UDP mode test: generator: update global statistics calculation example: generator: fix stop criteria - number of packets sent example: generator: flush output messages examples: generator: UDP ports configuration test: generator: replace gettimeofday with ODP API calls
Brian Brooks (7): linux-gen: ring: fix memory ordering in ring dequeue configure.ac: fix native Clang build on ARMv8 test: odp_scheduling: handle dequeueing from a concurrent queue test: odp_sched_latency: robust draining of queues .gitignore: add perf.data build: GCC 7 fixes pktio: GCC 7 fixes
Christophe Milard (1): doc: application-api-guide: excluding drv interface
Dmitriy Krot (1): linux-gen: tm: fix wrr/wfq bug when weight=1
Dmitry Eremin-Solenikov (39): linux-generic: pool: don't allocate buffers from invalid pool test: tm: use script instead of binary when calling traffic manager test linux-generic: crypto: properly handle errors in packet copy validation: crypto: add tests for checking message digests validation: crypto: correct comment for HMAC-SHA-256 tests linux-generic: crypto: unify auth code linux-generic: rwlock: fix odp_rwlock_read_trylock() test: lock: expand rwlock tests configure.ac: fix mcx16 vs clang check linux-generic: crypto: don't leak sessions if creation fails test: linux-generic: stop dropping other ODP files in pktio_ipc test travis: split build into separate stages api: packet: introduce odp_packet_data_range_t test: crypto: add AES-GCM tests with wrong tag value linux: crypto: fix checking of GCM tags linux-generic: packet: add functions to optimize memset and memcmp paths validation: crypto: explicitly pass auth_digest_len to crypto subsystem validation: crypto: explicitly pass AAD to crypto subsystem test: odp_crypto: update performance test to set auth_digest_length example: ipsec: set auth_digest_len linux-generic: crypto: use auth_digest_len when calculating HMACs linux-generic: crypto: add SHA* capabilities for full length digests linux-generic: crypto: update AES-GCM support to reflect aad and auth_digest_len linux-generic: crypto: remote extra memcpy in AES-GCM linux-generic: crypto: make AES-GCM thread safe linux-generic: crypto: explicitly disable padding for AES-GCM linux-generic: crypto: rewrite AES-CBC support using EVP functions linux-generic: crypto: rewrite 3DES-CBC support using EVP functions linux-generic: crypto: merge AES-CBC and 3DES-CBC support linux-generic: crypto: make HMAC work across segmented packets linux-generic: crypto: make en/decryption work across packet segments linux-generic: crypto: NULL session->next pointer on session allocation test: odp_crypto: bail out if odp_crypto_session_create failed crypto: linux-generic: add capabilities for CIPHER_NULL and AUTH_NULL validation: crypto: add tests for NULL cipher validation: crypto: add HMAC-SHA-1 test cases validation: crypto: add HMAC-SHA-512 test cases linux-generic: crypto: add SHA-1 authentication support linux-generic: crypto: add HMAC-SHA-512 authentication support
Honnappa Nagarahalli (1): helper: cuckoo: add queue size config to cuckoo table
Janne Kajovuori (1): linux-generic: makefile: fix staged install support
Janne Peltonen (1): linux-gen: abi: fix include/odp/api/abi symlink creation
Kevin Wang (3): linux-gen: pktio: miss an unlock operation before exit if error happens validation: scheduler: modify the queue size for atomic queue validation: scheduler: release context according to scheduler sync type
Matias Elo (24): linux-gen: dpdk: improve pmd driver linking linux-gen: dpdk: disable pci devices when running make check linux-gen: dpdk: bump target dpdk version to 17.02 test: bench_packet: add tests for reference functions test: bench_packet: fix headroom/tailroom test return values helper: iplookuptable: fix prefix_entry_t member order validation: packet: increase test pool size validation: packet: remove invalid check from packet_test_alloc_segmented() validation: packet: use common define for test pool sizes linux-gen: pktio: fix valgrind warnings helper: tables: avoid invalid odp_shm_addr() calls linux-gen: sched: fix one at a time low priority event scheduling linux-gen: sched: fix ordered enqueue to pktout queue linux-gen: packet: fix odp_packet_free_multi() with single segment pool linux-gen: packet: fix gcc errors with single segment pool test: pktio: use capability to set test pool packet length linux-gen: socket: remove limits for maximum RX/TX burst size linux-gen: socket: streamline sock_mmsg_recv() function linux-gen: packet: recognize ICMPv6 packets examples: use odp_pktio_config() to select required packet parsing level validation: pktio: add tests for packet parsing validation: pktio: add tests for packet parsing validation: pktio: remove CRCs from parser test packets linux-gen: packet: remove lazy parsing
Maxim Uvarov (21): linux-gen: remove pktio ipc option from configure linux-gen: pktio: socket mmap: check unmap return code test: perf: fix bash syntax in odp_pktio_ordered_run.sh test: tm: skip tm result under travis run test: tm: add paths to find tm binary test: pktio_run: exit if binary was not found codecov: enable threshold for patches travis: move code style check to separate job travis: check compile and run from install travis: expand testing with varios configure options travis: print failed test logs to screen test: time: do not fail under gcov travis: add dependency of autoconf-archive configure.ac: do not trap if libatomic is not found Revert "validation: pktio: add tests for packet parsing" mergefix: remove duplicate declaration update API version number from v1.14.0.0 to v1.15.0.0 test: l2fwd pass under coverage build: fix order of test execution travis: add sudo run make check travis: do not run performance test in parallel under coverage
Ola Liljedahl (1): linux-generic: ring.c: use required memory orderings
Petri Savolainen (36): helper: linux: add common linux helper file helper: pkgconfig: remove linux-generic from helper lib name linux-gen: dependencies: update cunit install instructions linux-gen: packet: make inline table visible test: l2fwd: add group option linux-gen: sched: use weight table for preferences linux-gen: sched: optimize group scheduling scripts: checkpatch: revert code modification scripts: checkpatch: ignore volatile and extern warnings scripts: spelling: update to latest version api: crypto: add sha-1 and sha-512 enumerations linux-gen: crypto: sha-1 and sha-512 not implemented yet api: crypto: enforce deprecated API status api: crypto: add digest length session parameter api: crypto: add AAD operation parameters api: deprecated: add configure option and macros test: crypto: remove references to deprecated crypto apis api: hints: remove ODP_DEPRECATED from API linux-gen: crypto: add algo capability functions api: pktio: add parser configuration linux-gen: pktio: parser default config api: queue: added queue size param validation: queue: test queue max_num per type api: time: remove odp_time_to_u64 from API api: system: added system info print linux-gen: cpu_flags: added x86 cpu flag read functions linux-gen: system: implement system info print test: validation: add odp_sys_info_print test test: sched_latency: use sys_info_print test: validation: rename time test header file test: validation: add time accuracy test linux-gen: time: use hw time counter when available linux-gen: time: improve x86 TSC freq measurement accuracy linux-gen: time: store timespec as nsec validation: crypto: add stubs for sha-1 and sha-512 tests linux-gen: makefile: fix out of tree build
Yi He (1): checkpatch.conf: ignore PREFER_PRINTF, PREFER_SCANF
-----------------------------------------------------------------------
hooks/post-receive