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[Bug 2254]
check-odp: valgrind generates "No rule to make target"
==== https://bugs.linaro.org/show_bug.cgi?id=2407[Bug 2407]
test odp_l2fwd_run.sh contains todo items
==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]
Helper/test/process fails on a single core system
==== https://bugs.linaro.org/show_bug.cgi?id=2861[Bug 2861]
Remove redundant loop_support parameter in pktio capability
==== https://bugs.linaro.org/show_bug.cgi?id=2938[Bug 2938]
Make file deps failure
==== https://bugs.linaro.org/show_bug.cgi?id=2976[Bug 2976]
IP headers checksum functions are incorrect
==== https://bugs.linaro.org/show_bug.cgi?id=3024[Bug 3024]
odp_traffic_mngr example is broken
==== https://bugs.linaro.org/show_bug.cgi?id=3026[Bug 3026]
pktio_ipc_run test can fail due to segfault
==== https://bugs.linaro.org/show_bug.cgi?id=3043[Bug 3043]
User guide error (packet diagram fix)
==== https://bugs.linaro.org/show_bug.cgi?id=3052[Bug 3052]
api-next out of tree build broken
==== https://bugs.linaro.org/show_bug.cgi?id=3066[Bug 3066]
Cross compile broken for ARMv8
==== https://bugs.linaro.org/show_bug.cgi?id=3126[Bug 3126]
IPC pktio test fails with taskset -c 1-2
==== https://bugs.linaro.org/show_bug.cgi?id=3177[Bug 3177]
Test case for classification enable
==== https://bugs.linaro.org/show_bug.cgi?id=3182[Bug 3182]
Memory allocation checks (in traffic manager)
==== https://bugs.linaro.org/show_bug.cgi?id=3216[Bug 3216]
Adding --enable-helper-linux configure flag breaks build
==== https://bugs.linaro.org/show_bug.cgi?id=3238[Bug 3238]
Doxygen warnings on helper header files
==== https://bugs.linaro.org/show_bug.cgi?id=3241[Bug 3241]
codecov: _odp_packet_cmp_data is not covered
==== https://bugs.linaro.org/show_bug.cgi?id=3242[Bug 3242]
setup_pktio_entry missing unlock
==== https://bugs.linaro.org/show_bug.cgi?id=3249[Bug 3249]
odp_cpu_hz() does not work on all Linux distros
==== https://bugs.linaro.org/show_bug.cgi?id=3262[Bug 3262]
Missing doxygen detected by Travis
==== https://bugs.linaro.org/show_bug.cgi?id=3289[Bug 3289]
'num_queues' isn't ignored when "classifier_enable" is enabled
==== https://bugs.linaro.org/show_bug.cgi?id=3300[Bug 3300]
Validation tests cannot be disabled after commit b4d17b1
==== https://bugs.linaro.org/show_bug.cgi?id=3411[Bug 3411]
wrong openssl_lock pointer type
=== Known Issues
==== https://bugs.linaro.org/show_bug.cgi?id=3245[Bug 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
--
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 branch, next has been updated
via 88e124e13900109e0d0aec1981417382f357c98a (commit)
from b61de566190e19cc79531fdca737787cc359584b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 88e124e13900109e0d0aec1981417382f357c98a
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Wed Nov 8 15:50:47 2017 +0300
configure.ac: update API and .so versions
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
diff --git a/configure.ac b/configure.ac
index 4bce0534..1a96ef82 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ([2.5])
# Set correct API version
##########################################################################
m4_define([odpapi_generation_version], [1])
-m4_define([odpapi_major_version], [15])
+m4_define([odpapi_major_version], [16])
m4_define([odpapi_minor_version], [0])
m4_define([odpapi_point_version], [0])
m4_define([odpapi_version],
@@ -36,10 +36,10 @@ AM_SILENT_RULES([yes])
# 3. if interfaces were removed, then use C+1:0:0
##########################################################################
-ODP_LIBSO_VERSION=115:0:2
+ODP_LIBSO_VERSION=116:0:0
AC_SUBST(ODP_LIBSO_VERSION)
-ODPHELPER_LIBSO_VERSION=112:1:0
+ODPHELPER_LIBSO_VERSION=113:1:1
AC_SUBST(ODPHELPER_LIBSO_VERSION)
# Checks for programs.
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
hooks/post-receive
--
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 branch, master has been updated
via 0e04be4851ecc94da8b4cac3c576260c0518c936 (commit)
from d59c00c5f0255a5f1fc462332eef291bb2993f64 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 0e04be4851ecc94da8b4cac3c576260c0518c936
Author: Petri Savolainen <petri.savolainen(a)linaro.org>
Date: Fri Nov 3 15:38:37 2017 +0200
linux-gen: crypto: fix openssl_lock pointer type
Wrong pointer type (pointer to pointer) to openssl_lock array
caused data overlapping when running on other than 64-bit
machines.
Fixed pointer type and simplified global data structure to
contain only one dynamically sized array (openssl locks).
Session array was already fixed size but was not defined as
such.
Fixes bug: https://bugs.linaro.org/show_bug.cgi?id=3411
Signed-off-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Signed-off-by: Viktor Tikkanen <viktor.tikkanen(a)nokia.com>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/odp_crypto.c b/platform/linux-generic/odp_crypto.c
index 40b6d74b..9cf903d0 100644
--- a/platform/linux-generic/odp_crypto.c
+++ b/platform/linux-generic/odp_crypto.c
@@ -83,9 +83,9 @@ typedef struct odp_crypto_global_s odp_crypto_global_t;
struct odp_crypto_global_s {
odp_spinlock_t lock;
- odp_ticketlock_t **openssl_lock;
odp_crypto_generic_session_t *free;
- odp_crypto_generic_session_t sessions[0];
+ odp_crypto_generic_session_t sessions[MAX_SESSIONS];
+ odp_ticketlock_t openssl_lock[0];
};
static odp_crypto_global_t *global;
@@ -961,11 +961,9 @@ static void ODP_UNUSED openssl_lock(int mode, int n,
int line ODP_UNUSED)
{
if (mode & CRYPTO_LOCK)
- odp_ticketlock_lock((odp_ticketlock_t *)
- &global->openssl_lock[n]);
+ odp_ticketlock_lock(&global->openssl_lock[n]);
else
- odp_ticketlock_unlock((odp_ticketlock_t *)
- &global->openssl_lock[n]);
+ odp_ticketlock_unlock(&global->openssl_lock[n]);
}
int
@@ -977,8 +975,7 @@ odp_crypto_init_global(void)
int nlocks = CRYPTO_num_locks();
/* Calculate the memory size we need */
- mem_size = sizeof(*global);
- mem_size += (MAX_SESSIONS * sizeof(odp_crypto_generic_session_t));
+ mem_size = sizeof(odp_crypto_global_t);
mem_size += nlocks * sizeof(odp_ticketlock_t);
/* Allocate our globally shared memory */
@@ -998,12 +995,8 @@ odp_crypto_init_global(void)
odp_spinlock_init(&global->lock);
if (nlocks > 0) {
- global->openssl_lock =
- (odp_ticketlock_t **)&global->sessions[MAX_SESSIONS];
-
for (idx = 0; idx < nlocks; idx++)
- odp_ticketlock_init((odp_ticketlock_t *)
- &global->openssl_lock[idx]);
+ odp_ticketlock_init(&global->openssl_lock[idx]);
CRYPTO_THREADID_set_callback(openssl_thread_id);
CRYPTO_set_locking_callback(openssl_lock);
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/odp_crypto.c | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
hooks/post-receive
--
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 branch, master has been updated
via d59c00c5f0255a5f1fc462332eef291bb2993f64 (commit)
from 29c7a054f7151d33795a0d8d7df5594bf4fddb55 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d59c00c5f0255a5f1fc462332eef291bb2993f64
Author: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Date: Wed Nov 8 16:58:14 2017 +0300
example: fix pointers to odp_l2fwd.c source
During mass-move of tests I forgot to update odp_l2fwd example to point
to new locattion. Fix that now.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/example/l2fwd/README b/example/l2fwd/README
index 891620bd..f6fdc01c 100644
--- a/example/l2fwd/README
+++ b/example/l2fwd/README
@@ -1,7 +1,6 @@
ODP L2FWD application
-Source code and Makefiles placed under test/common_plat/performance/
-directory.
+Source code and Makefiles placed under test/performance/ directory.
This L2 forwarding application can be used as example reference as well
as performance test for different odp modes (direct, queue or scheduler
diff --git a/example/l2fwd/odp_l2fwd.c b/example/l2fwd/odp_l2fwd.c
index eea3a34c..fb585f43 120000
--- a/example/l2fwd/odp_l2fwd.c
+++ b/example/l2fwd/odp_l2fwd.c
@@ -1 +1 @@
-../../test/common_plat/performance/odp_l2fwd.c
\ No newline at end of file
+../../test/performance/odp_l2fwd.c
\ No newline at end of file
-----------------------------------------------------------------------
Summary of changes:
example/l2fwd/README | 3 +--
example/l2fwd/odp_l2fwd.c | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
hooks/post-receive
--
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 branch, master has been updated
via 29c7a054f7151d33795a0d8d7df5594bf4fddb55 (commit)
from 2dd964e170d71078cfe03d4c9e00c6f592b4326b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 29c7a054f7151d33795a0d8d7df5594bf4fddb55
Author: Matias Elo <matias.elo(a)nokia.com>
Date: Tue Sep 26 11:28:01 2017 -0700
test: l2fwd script: run generator on a single core
Run packet generator on a single core to minimize the penalty from running
generator and l2fwd applications on overlapping cores (both use
odp_cpumask_default_worker()). On a generic server this change increases
packet rate by ~40X.
Fixes https://bugs.linaro.org/show_bug.cgi?id=2407
Signed-off-by: Matias Elo <matias.elo(a)nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/performance/odp_l2fwd_run.sh b/test/performance/odp_l2fwd_run.sh
index 3bb00e32..0cb293dc 100755
--- a/test/performance/odp_l2fwd_run.sh
+++ b/test/performance/odp_l2fwd_run.sh
@@ -67,12 +67,10 @@ run_l2fwd()
exit 1
fi
- # Max 4 workers
- # @todo: ensure that generator and l2fwd workers are not allocated to
- # the same CPUs
+ # Run generator with one worker
(odp_generator${EXEEXT} --interval $FLOOD_MODE -I $IF0 \
--srcip 192.168.0.1 --dstip 192.168.0.2 \
- -m u -w 4 2>&1 > /dev/null) \
+ -m u -w 1 2>&1 > /dev/null) \
2>&1 > /dev/null &
GEN_PID=$!
-----------------------------------------------------------------------
Summary of changes:
test/performance/odp_l2fwd_run.sh | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
hooks/post-receive
--
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 branch, next has been updated
via b61de566190e19cc79531fdca737787cc359584b (commit)
via ae393d6677e242464773aa81a5c18fdfe1ce2c85 (commit)
via 9f02c58d41ec59f443e880766855265885f3a13d (commit)
via 4954fd9289befbdd06d52b4d9b7ed7a83f268b10 (commit)
via fb667f44a397a34bc1c4af41c49a766156740ff3 (commit)
from f318c88f26b15140dda243e6a1d27e3c8f9d275b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b61de566190e19cc79531fdca737787cc359584b
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Wed Nov 1 13:51:05 2017 -0500
changelog: updates for odp v1.16.0.0
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/CHANGELOG b/CHANGELOG
index 866e51e9..ec0f777c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,210 @@
+== 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.
+
+=== 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[Bug 2254]
+check-odp: valgrind generates "No rule to make target"
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]
+Helper/test/process fails on a single core system
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2861[Bug 2861]
+Remove redundant loop_support parameter in pktio capability
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2938[Bug 2938]
+Make file deps failure
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2976[Bug 2976]
+IP headers checksum functions are incorrect
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3024[Bug 3024]
+odp_traffic_mngr example is broken
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3026[Bug 3026]
+pktio_ipc_run test can fail due to segfault
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3043[Bug 3043]
+User guide error (packet diagram fix)
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3052[Bug 3052]
+api-next out of tree build broken
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3066[Bug 3066]
+Cross compile broken for ARMv8
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3126[Bug 3126]
+IPC pktio test fails with taskset -c 1-2
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3177[Bug 3177]
+Test case for classification enable
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3182[Bug 3182]
+Memory allocation checks (in traffic manager)
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3216[Bug 3216]
+Adding --enable-helper-linux configure flag breaks build
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3238[Bug 3238]
+Doxygen warnings on helper header files
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3241[Bug 3241]
+codecov: _odp_packet_cmp_data is not covered
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3242[Bug 3242]
+setup_pktio_entry missing unlock
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3249[Bug 3249]
+odp_cpu_hz() does not work on all Linux distros
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3262[Bug 3262]
+Missing doxygen detected by Travis
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3289[Bug 3289]
+'num_queues' isn't ignored when "classifier_enable" is enabled
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3300[Bug 3300]
+Validation tests cannot be disabled after commit b4d17b1
+
+=== Known Issues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3245[Bug 3245]
+Cannot run l2fwd application on Cavium ThunderX platform
+
== OpenDataPlane (1.15.0.0)
=== New Features
ODP v1.15.0.0 continues the preview of Tiger Moth, introducing new APIs and
commit ae393d6677e242464773aa81a5c18fdfe1ce2c85
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Tue Jun 13 07:55:14 2017 -0500
validation: init: use odp_init_param_init() in init tests
Provide test coverage for odp_init_param_init() API.
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/validation/api/init/init.c b/test/validation/api/init/init.c
index d44ff234..3dc40ea5 100644
--- a/test/validation/api/init/init.c
+++ b/test/validation/api/init/init.c
@@ -26,10 +26,10 @@ static int odp_init_log(odp_log_level_t level, const char *fmt, ...);
void init_test_odp_init_global_replace_abort(void)
{
int status;
- struct odp_init_t init_data;
+ odp_init_t init_data;
odp_instance_t instance;
- memset(&init_data, 0, sizeof(init_data));
+ odp_init_param_init(&init_data);
init_data.abort_fn = &odp_init_abort;
status = odp_init_global(&instance, &init_data, NULL);
@@ -79,10 +79,10 @@ int init_main_abort(int argc, char *argv[])
void init_test_odp_init_global_replace_log(void)
{
int status;
- struct odp_init_t init_data;
+ odp_init_t init_data;
odp_instance_t instance;
- memset(&init_data, 0, sizeof(init_data));
+ odp_init_param_init(&init_data);
init_data.log_fn = &odp_init_log;
replacement_logging_used = 0;
commit 9f02c58d41ec59f443e880766855265885f3a13d
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Tue Jun 13 07:55:13 2017 -0500
linux-generic: init: implement odp_init_param_init()
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/odp_init.c b/platform/linux-generic/odp_init.c
index 92a58370..fe03709b 100644
--- a/platform/linux-generic/odp_init.c
+++ b/platform/linux-generic/odp_init.c
@@ -25,6 +25,11 @@
struct odp_global_data_s odp_global_data;
+void odp_init_param_init(odp_init_t *param)
+{
+ memset(param, 0, sizeof(odp_init_t));
+}
+
int odp_init_global(odp_instance_t *instance,
const odp_init_t *params,
const odp_platform_init_t *platform_params ODP_UNUSED)
commit 4954fd9289befbdd06d52b4d9b7ed7a83f268b10
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Tue Jun 13 07:55:12 2017 -0500
api: init: add support for unused features
Add the not_used field to odp_init_t to permit applications to
specify that they will not use various ODP features. This may
allow implementations to provide optimized behavior.
Also add the odp_init_param_init() API to initialize odp_init_t
to default values.
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/odp/api/spec/init.h b/include/odp/api/spec/init.h
index 154cdf8f..e8ec4113 100644
--- a/include/odp/api/spec/init.h
+++ b/include/odp/api/spec/init.h
@@ -29,6 +29,7 @@ extern "C" {
#include <odp/api/std_types.h>
#include <odp/api/hints.h>
+#include <odp/api/feature.h>
#include <odp/api/thread.h>
#include <odp/api/cpumask.h>
@@ -153,8 +154,22 @@ typedef struct odp_init_t {
odp_log_func_t log_fn;
/** Replacement for the default abort fn */
odp_abort_func_t abort_fn;
+ /** Unused features. These are hints to the ODP implementation that
+ * the application will not use any APIs associated with these
+ * features. Implementations may use this information to provide
+ * optimized behavior. Results are undefined if applications assert
+ * that a feature will not be used and it is used anyway.
+ */
+ odp_feature_t not_used;
} odp_init_t;
+/**
+ * Initialize the odp_init_t to default values for all fields
+ *
+ * @param[out] param Address of the odp_init_t to be initialized
+ */
+void odp_init_param_init(odp_init_t *param);
+
/**
* @typedef odp_platform_init_t
* ODP platform initialization data
commit fb667f44a397a34bc1c4af41c49a766156740ff3
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Tue Jun 13 07:55:11 2017 -0500
api: feature: add odp feature bits
Add new odp_feature_t bits that permit other APIs/components to
refer to various ODP features.
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/Makefile.am b/include/Makefile.am
index a3a7e165..746b5975 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -17,6 +17,7 @@ odpapispecinclude_HEADERS = \
odp/api/spec/debug.h \
odp/api/spec/errno.h \
odp/api/spec/event.h \
+ odp/api/spec/feature.h \
odp/api/spec/hash.h \
odp/api/spec/hints.h \
odp/api/spec/init.h \
diff --git a/include/odp/api/spec/feature.h b/include/odp/api/spec/feature.h
new file mode 100644
index 00000000..0cfc141d
--- /dev/null
+++ b/include/odp/api/spec/feature.h
@@ -0,0 +1,69 @@
+/* Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP features.
+ * Define various ODP feature sets that can be referenced by other
+ * components.
+ */
+
+#ifndef ODP_API_FEATURE_H_
+#define ODP_API_FEATURE_H_
+#include <odp/visibility_begin.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp/api/std_types.h>
+
+/** @defgroup odp_features ODP_FEATURE
+ * ODP feature definitions
+ * @{
+ */
+
+/** Definition of ODP features */
+typedef union odp_feature_t {
+ /** All features */
+ uint32_t all_feat;
+
+ /** Individual feature bits */
+ struct {
+ /** Classifier APIs, e.g., odp_cls_xxx(), odp_cos_xxx() */
+ uint32_t cls:1;
+
+ /** Crypto APIs, e.g., odp_crypto_xxx() */
+ uint32_t crypto:1;
+
+ /** IPsec APIs, e.g., odp_ipsec_xxx() */
+ uint32_t ipsec:1;
+
+ /** Scheduler APIs, e.g., odp_schedule_xxx() */
+ uint32_t schedule:1;
+
+ /** Time APIs are, e.g., odp_time_xxx() */
+ uint32_t time:1;
+
+ /** Timer APIs, e.g., odp_timer_xxx(), odp_timeout_xxx() */
+ uint32_t timer:1;
+
+ /** Traffic Manager APIs, e.g., odp_tm_xxx() */
+ uint32_t tm:1;
+ } feat;
+} odp_feature_t;
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <odp/visibility_end.h>
+#endif
diff --git a/include/odp_api.h b/include/odp_api.h
index 060ec888..3a03a05b 100644
--- a/include/odp_api.h
+++ b/include/odp_api.h
@@ -32,6 +32,7 @@ extern "C" {
#include <odp/api/barrier.h>
#include <odp/api/spinlock.h>
#include <odp/api/atomic.h>
+#include <odp/api/feature.h>
#include <odp/api/init.h>
#include <odp/api/system_info.h>
#include <odp/api/thread.h>
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am
index 0b29e613..356f229b 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -35,6 +35,7 @@ odpapiinclude_HEADERS = \
include/odp/api/deprecated.h \
include/odp/api/errno.h \
include/odp/api/event.h \
+ include/odp/api/feature.h \
include/odp/api/hash.h \
include/odp/api/hints.h \
include/odp/api/init.h \
diff --git a/platform/linux-generic/include/odp/api/feature.h b/platform/linux-generic/include/odp/api/feature.h
new file mode 100644
index 00000000..55a86a83
--- /dev/null
+++ b/platform/linux-generic/include/odp/api/feature.h
@@ -0,0 +1,34 @@
+/* Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP features.
+ */
+
+#ifndef ODP_PLAT_FEATURE_H_
+#define ODP_PLAT_FEATURE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @ingroup odp_feature
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+#include <odp/api/spec/feature.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 207 +++++++++++++++++++++
include/Makefile.am | 1 +
include/odp/api/spec/feature.h | 69 +++++++
include/odp/api/spec/init.h | 15 ++
include/odp_api.h | 1 +
platform/linux-generic/Makefile.am | 1 +
.../{odp_errno_define.h => odp/api/feature.h} | 16 +-
platform/linux-generic/odp_init.c | 5 +
test/validation/api/init/init.c | 8 +-
9 files changed, 315 insertions(+), 8 deletions(-)
create mode 100644 include/odp/api/spec/feature.h
copy platform/linux-generic/include/{odp_errno_define.h => odp/api/feature.h} (57%)
hooks/post-receive
--
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 branch, 2.0-native-drivers has been created
at c0f99c441feadd1566b7e92789b11c30c6ee3f64 (commit)
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
hooks/post-receive
--