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.16.0.0 has been created at e189b781b10d86d7ea73bc78b00e151286cdf294 (tag) tagging 2cfe11680ecc2186339183e94f291ce586740f8b (commit) replaces v1.15.0.0 tagged by Maxim Uvarov on Fri Nov 10 16:22:29 2017 +0300
- Log ----------------------------------------------------------------- == OpenDataPlane (1.16.0.0) === New Features ODP v1.16.0.0 is the final preview release before the official release of Tiger Moth. It introduces new APIs and extensions, as well as bug fixes and functional improvements.
==== APIs The following new and changed APIs are included in this release:
===== Initialization Changes The new `odp_feature_t` type is introduced that defines various feature bits for ODP components. This is used in an expanded `odp_init_t` argument to `odp_init_global()` to specify which ODP features are unused by the application. For example, if the application knows it will not be making use of crypto features or the classifier, this may permit the ODP implementation to configure itself more efficiently. Results are undefined if an application asserts that it will not be using a feature and it attempts to do so afterwards.
Associated with this new support the `odp_init_param_init()` API is added to initialize the `odp_init_t` struct to default values.
===== Packet API Changes
* The `odp_packet_unshared_len()` API is removed. Testing showed that this API was non-essential and conflicted with the goal of implementation efficiency. * The `odp_print_packet_data()` API is added. This permits packet data to be logged along with platform-defined metadata for debugging or diagnostic purposes.
===== PktIO API Changes
* The `loop_supported` attribute of the `odp_pktio_capability_t` struct is deprecated since this is redundant. The `enable_loop` field of the `odp_pktio_config_t` struct (which is returned as part of the `odp_packet_capability_t` struct) is the proper way to determine whether a PktIO supports loopback mode.
===== System Info API Changes
* The documentation for the `odp_sys_huge_page_size()` API is updated to clarify that a 0 return code indicates that huge pages are not supported by this platform. * The `odp_sys_huge_page_size_all()` API is added to return all huge page sizes supported by this platform.
===== Timer API Changes
* The documentation for the various parameters contained in the `odp_timer_pool_param_t` struct are expanded and clarified.
=== Miscellaneous Fixes and Improvements
==== Default Packet Headroom The default packet headroom in `odp-linux` has been increased from 66 to 128 bytes for better compatibility with `odp-dpdk`.
==== Zero-copy Packet References The `odp-linux` reference implementation now fully supports zero-copy packet references. Previously these APIs were implemented via packet copies, which while functionally correct, were not how these APIs are intended to operate.
==== DPDK Zero-copy I/O support The `--enable-dpdk-zero-copy` `configure` option is added to allow DPDK PktIO devices to avoid data copies, leading to improved performance.
==== DPDK Checksum offload support DPDK PktIO now makes use of RX and TX IP/UDP/TCP checksum offload.
==== Shared memory stored in /dev/shm In the `odp-linux` reference implementation, shared memory is now backed to `/dev/shm` rather than `/tmp` for better reliability and robustness. This may be overridden as part of ODP build-time customization if desired.
==== IPC Improvements PktIO IPC support has received improvements in both performance and reliability and is now suitable for development use.
==== Netmap Improvements The thread ID is now used to create unique vdev MAC addresses to avoid conflicts with multiple ODP processes running on the same host system.
==== `drv` directory removed The `include/odp/drv` directory and related files have been removed. Driver support is moved to a follow-on ODP release, so removing these files avoids confusion as they are still incomplete.
=== Dependency Changes
==== Dependency on autoconf-archive removed Since some build environments do not supply autoconf-archive, this dependency is removed.
==== DPDK support upgraded to 17.08 release The ODP DPDK Packet I/O support has been upgraded to work with the DPDK 17.08 release.
==== Added support for OpenSSL 1.1.x releases ODP use of OpenSSL for crypto processing has been upgraded to allow use of OpenSSL 1.1.x.
=== Build System Restructure The ODP build system has been overhauled to support more comprehensive and efficient automated testing under Travis CI. Greater use of Autoconf is now made to control ODP configuration and build options, permitting greater environmental flexibility. This includes an expanded range of test coverage, including cross-compilation support for ARMv8, MIPS,and Power architectures, as well as testing under the latest levels of GCC and clang.
=== Arm Architecture Support Improvements
* ARMv8 generic timer support is now included * Improved time efficiency and accuracy by using native ARMv8 time/clock instructions.
==== Test Improvements The `test` directory has been reorganized and streamlined. Platform-specific tests are moved from `test/linux-generic` to `platform/linux-generic/test/`. As a result, the `test/common_plat` directory is deleted so that `test/validation`, `test/performance`, etc. are now used for all platform-independent tests.
==== Examples Improvements
===== IPv4 Fragmentation Reassembly Example The `ipfragreass` example program has been added to demonstrate IPv4 fragment reassembly.
===== ODP Generator Improvements The `odp_generator` example program now uses packet references for improved performance in UDP and ICMP traffic. The program also now makes use of HW checksum offload support, when available.
=== Documentation Improvements
* The ODP Users Guide has clarified usage information about the ODP time APIs for better portability. * A section has been added to the ODP Users Guide on API specification principles. This clarifies expected behavior of ODP applications and implementations and makes explicit what the specification means by "undefined behavior". * All Doxygen used in ODP is upgraded to conform to the stricter documentation requirements introduced by Doxygen 1.8.13.
=== Bug Fixes
==== https://bugs.linaro.org/show_bug.cgi?id=2254%5BBug 2254] check-odp: valgrind generates "No rule to make target"
==== https://bugs.linaro.org/show_bug.cgi?id=2407%5BBug 2407] test odp_l2fwd_run.sh contains todo items
==== https://bugs.linaro.org/show_bug.cgi?id=2812%5BBug 2812] Helper/test/process fails on a single core system
==== https://bugs.linaro.org/show_bug.cgi?id=2861%5BBug 2861] Remove redundant loop_support parameter in pktio capability
==== https://bugs.linaro.org/show_bug.cgi?id=2938%5BBug 2938] Make file deps failure
==== https://bugs.linaro.org/show_bug.cgi?id=2976%5BBug 2976] IP headers checksum functions are incorrect
==== 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_ipc_run test can fail due to segfault
==== https://bugs.linaro.org/show_bug.cgi?id=3043%5BBug 3043] User guide error (packet diagram fix)
==== https://bugs.linaro.org/show_bug.cgi?id=3052%5BBug 3052] api-next out of tree build broken
==== https://bugs.linaro.org/show_bug.cgi?id=3066%5BBug 3066] Cross compile broken for ARMv8
==== https://bugs.linaro.org/show_bug.cgi?id=3126%5BBug 3126] IPC pktio test fails with taskset -c 1-2
==== https://bugs.linaro.org/show_bug.cgi?id=3177%5BBug 3177] Test case for classification enable
==== https://bugs.linaro.org/show_bug.cgi?id=3182%5BBug 3182] Memory allocation checks (in traffic manager)
==== https://bugs.linaro.org/show_bug.cgi?id=3216%5BBug 3216] Adding --enable-helper-linux configure flag breaks build
==== https://bugs.linaro.org/show_bug.cgi?id=3238%5BBug 3238] Doxygen warnings on helper header files
==== https://bugs.linaro.org/show_bug.cgi?id=3241%5BBug 3241] codecov: _odp_packet_cmp_data is not covered
==== https://bugs.linaro.org/show_bug.cgi?id=3242%5BBug 3242] setup_pktio_entry missing unlock
==== https://bugs.linaro.org/show_bug.cgi?id=3249%5BBug 3249] odp_cpu_hz() does not work on all Linux distros
==== https://bugs.linaro.org/show_bug.cgi?id=3262%5BBug 3262] Missing doxygen detected by Travis
==== https://bugs.linaro.org/show_bug.cgi?id=3289%5BBug 3289] 'num_queues' isn't ignored when "classifier_enable" is enabled
==== https://bugs.linaro.org/show_bug.cgi?id=3300%5BBug 3300] Validation tests cannot be disabled after commit b4d17b1
==== https://bugs.linaro.org/show_bug.cgi?id=3411%5BBug 3411] wrong openssl_lock pointer type
=== Known Issues
==== https://bugs.linaro.org/show_bug.cgi?id=3245%5BBug 3245] Cannot run l2fwd application on Cavium ThunderX platform
Balakrishna Garapati (1): example:use dpdk pktio with examples
Balasubramanian Manoharan (4): linux-generic: pktio: update classifier enable boolean linux-generic: classification: update classifier enable boolean validation: classification: add test case for classifier enable boolean api: packetio: deprecate redundant loop_supported field in capability
Bill Fischofer (31): doc: userguide: add portability and usage info for odp time apis linux-generic: packet: restructure inline routines to use macros linux-generic: packet: add packet fields needed for references linux-generic: packet: add routines for manipulating reference counts linux-generic: packet: add initializations for new hdr fields linux-generic: packet: unshared_len maintenance linux-generic: packet: segment manipulation with references linux-generic: packet: restructure free routines for references linux-generic: packet: add reference support for head/tail manipulation linux-generic: ipc: cannot share references across ipc linux-generic: packet: enable zero-copy reference creation doc: images: correct packet segment diagram travis: add --enable-debug to list of test variants travis: split configure commands into individual options travis: add --enable-helper-linux test variants doc: helper: add missing doxygen to avoid warnings linux-generic: packet: add missing doxygen from inline func test: validation: add missing file to .gitignore linux-generic: test: add missing file to .gitignore doc: userguide: add section on api specification principles linux-gen: packet: add debugging asserts in packet code doc: userguide: add odp_init_global() documentation for unused features test: packet: remove references to odp_packet_unshared_len() linux-generic: packet: remove odp_packet_unshared_len() implementation api: packet: remove odp_packet_unshared_len() doc: userguide: remove references to odp_packet_unshared_len() api: feature: add odp feature bits api: init: add support for unused features linux-generic: init: implement odp_init_param_init() validation: init: use odp_init_param_init() in init tests changelog: updates for odp v1.16.0.0
Bogdan Pricope (6): example: generator : use packet reference API to generate udp and icmp traffic linux-gen: dpdk: retrieve offload capabilities linux-gen: dpdk: enable per pktio RX IP/UDP/TCP checksum offload linux-gen: dpdk: RX - process checksum validation offload flags linux-gen: dpdk: TX - set checksum calculation offload flags examples: generator: update odp_generator to use HW checksum capabilities
Brian Brooks (6): arch: arm: add CPU global time build: fix conditional compilation of sources linux-gen: time: use true hz build: fix 64-bit atomics detection linux-gen: barrier: Use correct memory ordering test: odp_pktio_ordered: add queue size
Christophe Milard (1): test: preventing odp.conf loading for tests
Dmitry Eremin-Solenikov (148): linux-generic: crypto: adapt HMAC code to OpenSSL 1.1.x travis: add cross-compilation checks doc: add IMAGES_DIR instead of specifying full path to images doc: fix documentation building doc: use CLEANFILES instead of handcoding clean rules doc: fix user-guide.doc permissions doc: drop images full paths, we have imagesdir properly set doc: include sources of generated images into distribution build: enable user guides during distcheck travis: pass proper path to make distcheck pkgconfig: provide minimal proper static linking flags linux-gen: stop poisoning CPPFLAGS/LDFLAGS with OpenSSL flags linux-gen: stop poisoning CPPFLAGS/LDFLAGS with DPDK flags linux-gen: stop poisoning CFLAGS/LIBS with libpcap flags linux-gen: stop poisoning CPPFLAGS/LDFLAGS with CUnit flags linux-gen: stop poisoning CFLAGS/LDFLAGS with threading flags linux-gen: move timer_create check to platform directory linux-gen: stop poisoning CPPFLAGS with Netmap flags travis: use pkg-config to discover ODP flags example: ipsec: fix build with OpenSSL located in non-standard path example: ipfragreass: fix compilation with clang travis: simplify cross-compilation setup travis: add clang cross-compilation checks travis: enable ccache and pip cache configure: remove non-standard test usage m4: update valgrind check macro travis: fix DPDK cache linux-gen: crypto: check packet length during operation travis: another attempt to fix cache configuration linux-gen: hide get_qentry linux-gen: pool: drop two unused functions linux-gen: fdserver: mark client_lock as static linux-gen: classification: mark several functions as static linux-gen: scheduler: drop unused callback linux-gen: pktio: drop/staticize leftovers from single queue shim linux-gen: pktio: mark pktio_tbl as static linux-gen: queue: drop two unused functions linux-gen: sched: mark sched_local as static linux-gen: sched iquery: mark thread_local as static configure: move configure header to include dir linux-gen: pktio: ethtool: add void pointer type casts linux-gen: tm: do not redefine _GNU_SOURCE linux-gen: pktio: ethtool: don't include linux/if.h linux-gen: use config.h header helper: use config.h header test: don't redefine _GNU_SOURCE test: use config.h header configure: AC_DEFINE_UNQUOTED(IMPLEMENTATION_NAME) configure: AC_DEFINE_UNQUOTED(ODP_DEBUG_PRINT) configure: AC_DEFINE_UNQUOTED(ODPH_DEBUG_PRINT) configure: AC_DEFINE_UNQUOTED(ODP_DEBUG) configure: AC_DEFINE(HAVE_PCAP) configure: AC_DEFINE(ODP_SCHEDULE_SP) configure: AC_DEFINE(ODP_SCHEDULE_IQUERY) configure: AC_DEFINE(ODP_NETMAP) configure: AC_DEFINE(ODP_PKTIO_DPDK)/AC_DEFINE(ODP_DPDK_ZERO_COPY) automake: move foreign Automake option to configure.ac automake: move nostdinc Automake option to configure.ac linux-gen: drop _ODP_PKTIO_IPC define configure: pass all compiler options through acceptance check configure: drop AC_FUNC_MALLOC test travis: pass cunit path to distcheck options directly configure: reenable compiler fallthrough warning helper: move include files to helper/include helper: chksum: odph_chksum returns value in network byte order helper: ip: correct ipv4 header checksum calculation helper: chksum: verify odph_ipv4_chksum_x() functions configure: enable all tests by default configure: rework with-testdir check configure: enable helper-linux in distcheck options configure: provide a way to enable all debugging options at once travis: drop configure options enabled by default travis: enable full debug option configure, travis: switch to pkg-config to locate CUnit helper: chksum: add few guarding conditions test: fixup CUNIT_CFLAGS variable reference travis: drop ubuntu-toolchain-r-test PPA configure: use ODP_CHECK_FLAG to check for -mcx16 linux-gen: crypto: stop using RAND_pseudo_bytes() build: drop -Wno-deprecated-declaration build: drop platorm/linux-generic/Makefile.inc build: use AM_CPPFLAGS to set include paths, rather than AM_CFLAGS configure: stop setting AM_* variables test: rework build system helper: test: rework build system test: pktio_ipc: switch to test_debug rather than example_debug test: build all tests with -static test: misc rewrites in Makefile.am files travis: don't error out if there are no patches to check travis: skip install stage for doxygen and checkpatch tests DEPENDENCIES: document changes in CUnit localization test: try detecting CUnit location, if it is not found by pkg-config configure: call PKG_PROG_PKG_CONFIG explicitly travis: fix powerpc test name travis: don't override prefix when cross-compiling travis: don't use cross-pkg-config travis: add cross-testing for 32-bit x86 travis: enable cpp test during cross-compilation travis: merge native and cross-compilation scripts travis: move cross-compilation into build matrix configure: "best effort" approach for CUnit and validation tests linux-gen: drop unused _odp_packet_cmp_data() function tests: fix validation tests being skipped by default linux-gen: split arm into arm and aarch64 linux-gen: deduplicate arch-specific files travis: fix netmap module loading tests: fix disabling of validation tests configure: disable all tools except memcheck ax_valgrind_check.m4: update to upstream version ax_valgrind_check: run check-valgrind recursively .gitignore: ignore only libtool m4 files m4: move openssl check to common place m4: move timer_create check to common place m4: move -fvisibility=hidden check to separate file m4: move atomic checks to separate file example: switch odp_l3fwd from test_debug.h to example_debug.h test: move run-test script to test_common dir test: move common validation tests handling to theirs own Makefile.am test: linux-gen: move platform-specific tests to platform directory test: move test_debug.h to test/common_plat/common/ test: drop now-unused common_plat directory linux-gen: move libodp-linux.pc.in to platform directory helper: move libodphelper.pc.in to helper directory build: move handling of include files to include dir include: include all ABI files into distribution linux-gen: drop unnecessary srcdir from Makefile.am linux-gen: stop including autogenerated header into distribution example: simplify Makefile.ams helper: simplify Makefile.ams travis: print failed test logs basing on test result status files configure: use AS_HELP_STRING instead of AC_HELP_STRING configure: use AC_CONFIG_COMMANDS_PRE to set conditionals configure: drop SDK_INSTALL_PATH variable configure: cleanup per-platform if test: drop unused EXEEXT suffix linux-gen: drop unused EXEEXT suffix example: add ${EXEEXT} when calling compiled programs helper: add ${EXEEXT} when calling compiled programs linux-gen: use ${EXEEXT} when calling shmem_linux test linux-gen: use EXEEXT in shmem_linux test .gitinore: ignore moved .pc files drv: doc, linux-gen, include: drop incomplete drv interface configure: don't try building driver api guide doc: include Doxyfile into EXTRA_DIST travis: move Doxygen compilation to before_install build: run doxygen-doc during make distcheck example: fix pointers to odp_l2fwd.c source doc: move PREDEFINED to common place
Honnappa Nagarahalli (1): linux-generic: queue: modular queue interface
Ilias Apalodimas (6): linux-gen: queue: checks on memory allocations linux-gen: queue: added additional missing free examples: generator: use clock related functions less when printing example: use odp_sys_info_print linux-gen: use /proc/cpuinfo if sysfs is not available to get cpu info linux-gen: x86: fix on odp_cpu_arch_hz_current() declaration for x86
Joe Savage (1): example: add IPv4 fragmentation/reassembly example
Joyce Kong (1): linux-gen: improve conversion between buf_hdr_t and packet_t
Kelvin Cheung (1): linux-gen: system: correctly set CPU frequency
Matias Elo (31): linux-gen: packet: fix odp_packet_reset() implementation linux-gen: socket: fix ring frame size linux-gen: packet: move packet_init() function to header file linux-gen: pktio: add missing global locks to odp_pktio_close() linux-gen: pool: fix segfault condition in buffer_free_to_pool() linux-gen: packet: increase default headroom linux-gen: dpdk: enable zero-copy operation travis: add zero-copy dpdk pktio to CI travis: cache dpdk directory linux-gen: dpdk: make sure mbuf memory is allocated from huge pages test: l2fwd: stop and close pktio devices on exit test: l2fwd: add signal handler for SIGINT helper: test: fix running process/thread tests on single core systems linux-gen: socket: don't use odp_packet_l2_offset() in _tx_pkt_to_iovec() validation: packet: remove old unused define example: classifier: enable classifier in input queue parameters test: pktio_perf: increase maximum number of workers threads linux-gen: pool: avoid allocating packets which cross huge page boundaries linux-gen: pool: combine overlapping struct pool_t members linux-gen: pool: modify packet pool config defines linux-gen: packet: fix build error with single segment packet header linux-gen: pool: select packet pool segment size at runtime validation: packet: adjust segmented test packet length linux-gen: dpdk: create missing dpdk mempools in zero-copy mode linux-gen: dpdk: bump target dpdk version to 17.08 linux-gen: netmap: use thread id to make vdev mac addresses unique linux-gen: netmap: remove minimum frame len check test: l2fwd script: run generator on a single core api: system_info: add function for fetching all supported huge page sizes linux-gen: system_info: implement odp_sys_huge_page_size_all() validation: system_info: add test for odp_sys_huge_page_size_all()
Maxim Uvarov (50): travis: back to stable image until issue is resolved configure: remove dependency of autoconf-archive linux-gen: pktio: ipc fix send return code on tx linux-gen: pktio: ipc fix error check linux-gen: pktio: ipc: rx: push back not processed packets linux-gen: ipc remove base_addr_offset linux-gen: shm: use shm in /dev/shm instead of /tmp linux-gen: shm: add uid to shm files linux-gen: shm: user can define place for shm files linux-gen: pktio: ipc fix packets free test: ipc pktio use /dev/shm instead of tmp test: pktio: ipc: increse timeouts for coverage test test: ipc pktio: bind tasks and keep packet order linux-gen: ishm fix defining directory for shm files helper: add missing pool param inits linux-gen: fdserver: fix fdserver work if ODP_SHM_DIR is exported travis: add check for ODP_SHM_DIR test: fix cunit include path travis: cache netmap build tavis: cache cunit travis: make distcheck work with custom cunit test: classifier: fix double free linux-gen: pktio: loop: fix recv if classier bit is enabled linux-gen: move packet_to_buffer to packet_inlines.h travis: doxygen 1.8.13 travis: capture doxygen warnings right travis: cache doxygen travis: correct doxygen warning capture Revert "test: disable packet parsing in odp_pktio_perf" Revert "test: make odp_pktio_perf more scalable" linux-gen: _fdserver return code cleanup travis: typo to call dynamic executable travis: temporary turn off dpdk caching travis: build dpdk for general cpu travis: purge dpdk cache on version change linux-gen: timer: drop odp prefix from odp_timer_pool_new linux-gen: timer: drop odp prefix from odp_timer_pool linux-gen: timer: drop odp prefix from odp_timer_pool_s linux-gen: timer: drop odp prefix from odp_timer_s linux-gen: odp_tm_stats_print should not depend on debug example: traffic_mgmt add clean termination path example: traffic_mgmt: add to make check linux-gen: pktio: add missing unlock linux-gen: pktio test odp_shm_reserve return code linux-gen: pktio: simplify ret code travis: fix doxygen error capture linux-gen: pktio: ignore num_queues parameter if classifier enabled travis: fix script to check patches to not fail on new branch shippable: add libconfig and libnuma configure.ac: update API and .so versions
Mykyta Iziumtsev (2): linux-gen: fixing typos api: fixing typos
Nikhil Agarwal (1): test:queue:update order queue test for locks.
Ola Liljedahl (4): test: make odp_pktio_perf more scalable test: disable packet parsing in odp_pktio_perf test: disable packet parsing in odp_pktio_perf test: make odp_pktio_perf more scalable
Petri Savolainen (33): linux-gen: time: fix ARM compile for GCC 4.8 linux-gen: queue: clean up after modular interface linux-gen: sched: remove schedule interface depedency to qentry linux-gen: sched: use config max ordered locks linux-gen: sched: remove most dependecies to qentry linux-gen: sched: remove unused sched interface functions linux-gen: cls: avoid queue conversions linux-gen: pktio: dont use qentry for queue_t linux-gen: pktio: convert queue handle only once linux-gen: pktio: remove unused header file linux-gen: queue: combine queue interface set functions linux-gen: queue: remove type set from interface linux-gen: buffer: change buffer handle to pointer linux-gen: queue: avoid extra conversions linux-gen: pool: avoid extra conversions linux-gen: packet: roll back to copy based references validation: packet: relax small concat test validation: packet: unshared len with static reference validation: packet: check reference packet content linux-gen: packet: re-implement packet segmentation linux-gen: buffer: optimize header layout linux-gen: packet: implement static references linux-gen: packet: enhance segment prints linux-gen: packet: compress packet offset table linux-gen: packet: implement dynamic references linux-gen: packet: optimize header layout linux-gen: crypto: fix openssl_lock pointer type abi: event: add ODP_EVENT_IPSEC_RESULT api: packet: print packet data linux-gen: packet: implement odp_packet_data_print validation: packet: add packet_print_data test api: timer: refine timer pool param documentation api: packet_io: refine packet format on output
Tom Trahan (1): add sample shippable.yml and Dockerfile for Aarch64 builds
Yi He (4): test: traffic_mngr: fix distcheck failure test: time: fix distcheck failure Makefile.am: update distcheck configuration travis: enable all tests when make distcheck
-----------------------------------------------------------------------
hooks/post-receive