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.18.0.0_tigermoth_rc2 has been created
at e6a5b93883f93f8f7d283901a4870e0f677b9314 (tag)
tagging 14a338c7f19830a084aa411b32639f3acaa99143 (commit)
replaces v1.17.0.0_tigermoth_rc1
tagged by Maxim Uvarov
on Mon Mar 5 16:09:50 2018 +0300
- Log -----------------------------------------------------------------
Tiger Moth LTS rc2
Balasubramanian Manoharan (8):
linux-gen: cls: invalid CoS index
linux-gen: cls: unwind cls queues on failure
linux-gen: cls: fix: update capability to return max hash queues
linux-gen: cls: fix: incorrect rss hash calculation
linux-gen: cls: fix: requested number of queues ignored during hash
linux-gen: cls: fix: invalid queue handle check for hashing
api: schedule: add asynchronous order lock
linux-gen: schedule: implements async ordered lock
Bill Fischofer (7):
linux-generic: remove camelcase from icmp protocol
helper: remove camelcase from icmp protocol
test: validation: drop use of indefinite wait in pktio test
api: pktio: drop support for indefinite waits on recv_tmo calls
linux-generic: pktio: drop support for indefinite waits in recv_tmo
changelog: updates for odp v1.18.0.0
changelog: fix bug3611 status for v1.18.0.0
Bogdan Pricope (7):
example: generator: add configuration option for RX burst size
example: generator: add configuration option for scheduler RX
example: generator: add direct mode pktio configuration
example: generator: add direct mode packet RX
example: generator: replace L3/L4 packet parsing with a simple one
example: generator: remove busy wait for direct mode receive
example: generator: remove useless csum checks
Dmitry Eremin-Solenikov (208):
helper: link against libpthread and libodp-linux
doc: add missing user-guide images to Makefile.am
doc: add missing implementers-guide images to Makefile.am
performance: odp_crypto: correct typo
linux-gen: don't pass DPKD_LIBS for dynamic linking with libodp-linux
example: add missing libraries to LDADD variables
helper/tests: use common Makefile.inc for tests
test, linux-gen: use common test/Makefile.inc
validation: stop overriding LDADD variable
validation: time: use clock_gettime() instead of clock()
Revert "test: time: do not fail under gcov"
linux-gen: don't use SYSCONFDIR
tests: don't use ODP_SYSCONFIG_FILE
example: ipsec_api: remove file conflict with ipsec example
linux-gen: dpdk: simplify linking with shared libdpdk
shippable: process test results in post_ci stage
validation: crypto: print untested capabilities
validation: crypto: add test vectors for full HMAC length
validation: crypto: fail if no tests were executed
validation: crypto: don't output untested cipher for NULL cipher
travis: also run make distcheck in non-ABI-compat mode
travis: add cross-compiling tests with ABI compatibility disabled
linux-gen: atomic: simplify locked 64-bit support
include: change spec guarding define from ODP_API to ODP_API_SPEC
configure: provide conditional for ABI-compat mode
build: move ODP include path to common Makefile.inc
include: move default ABI headers
include: install ABI headers without additional ARCH_ABI level
include: install and use ABI headers only in ABI-compat mode
abi: queue: drop unused odp_queue_group_t
abi: classification: drop two unused types
api: schedule: remove duplication between schedule and schedule_types
build: add platform dir for non-ABI-compat headers
build, linux-gen: provide optional dir for arch includes
linux-gen, include: switch buffer.h to api+abi
linux-gen, include: switch classification.h to api+abi
linux-gen, include: switch crypto.h to api+abi
linux-gen, include: switch event.h to api+abi
linux-gen, include: switch shared_memory.h to api+abi
linux-gen, include: switch queue.h to api+abi
linux-gen, include: switch barrier.h to api+abi
linux-gen, include: switch cpumask.h to api+abi
linux-gen, include: switch init.h to api+abi
linux-gen, include: switch ipsec.h to api+abi
linux-gen, include: switch packet_io.h to api+abi
linux-gen, include: switch version.h to api+abi
linux-gen, include: switch rwlock.h to api+abi
linux-gen, include: switch rwlock_recursive.h to api+abi
linux-gen, include: switch spinlock.h to api+abi
linux-gen, include: switch spinlock_recursive.h to api+abi
linux-gen, include: switch thread.h to api+abi
linux-gen, include: switch thrmask.h to api+abi
linux-gen, include: switch time.h to api+abi
linux-gen, include: switch timer.h to api+abi
linux-gen, include: switch std_types.h to api+abi
linux-gen, include: switch traffic_mngr.h to api+abi
linux-gen, include: switch schedule.h/schedule_types.h to api+abi
linux-gen, include: switch pool.h to api+abi
linux-gen, include: switch atomic.h to api+abi
linux-gen, include: switch byteorder.h to api+abi
linux-gen, include: switch std_clib.h to api+abi
linux-gen, include: switch sync.h to api+abi
linux-gen, include: switch ticketlock.h to api+abi
linux-gen, include: switch debug.h to api+abi
linux-gen, include: switch cpu.h to api+abi
linux-gen, include: switch packet headers to api+abi
linux-gen, include: switch align.h to api+abi
linux-gen, include: drop interm _ODP_CACHE_LINE_SIZE define
linux-gen: minor cleanup of API headers
include, linux-gen: move API files into generic location
linux-gen: move several files under ODP_ABI_COMPAT condition
linux-gen: split odp_packet/odp_packet_flags
linux-gen: remove static_inline.h header
linux-gen: don't install inline headers in ABI-compat mode
configure: stop AC_SUBST'ing ODP_ABI_COMPAT
include: inline compiler.h spec
include: provide formal description of ODP specification
include: move visibility headers to generic place
build: provide an option to link examples dynamically
travis: run tests with dynamically-linked tests
travis: stop early when installation of cross-packages has failed
travis: install packages in single pass
travis: compile doxygen only for doxygen test
travis: use parallel make for all builds
travis: move --with-dpdk-path out of DPDK build if
build: odp_dpdk: another fix for linking with shared libdpdk
build: odp_dpdk: print info on detected DPDK type and location
build: configure: print notice about unsupported configuration
travis: merge variable sections
travis: test ODP with shared DPDK
travis: schedule long builds (distcheck) before short CROSS-tests
test: performance: add AES tests to crypto performance tests
linux-gen: crypto: move session type to odp_crypto module
linux-gen: crypto: significant speedup of all operations
linux-gen: ipsec: fix block len for AES-CTR mode
linux-gen: ipsec: disallow using SAs while they are being created
linux-gen: ipsec: fix SA leak in odp_ipsec_sa_create
linux-gen: ipsec: fix SA leak in lookup case
linux-gen: ipsec: prevent sa_lookup from matching outbound SAs
linux-gen: ipsec: fix SA leak in SA creation
configure: set ODP_ABI_COMPAT before descending into platform
configure: move ODP_CHECK_CFLAG to separate file
configure: set ODP_CFLAGS/CXXFLAGS before descending into platform
configure: add ODP_CHECK_CXXFLAG
configure: move pthreads check to properly defined macro
doc: move platform-specific doc distribution to platform/Makefile.inc
travis: install codespell
travis: build DPDK with clang if it was selected
build: limit symbol visibility for libodp-linux
configure: enable all Automake warnings and make them errors
build: fix visibility of deprecated symbols
linux-gen: use packet pointer in _odp_ipsec_try_inline
linux-gen: ptkio: loop: inline odp_packet_has_ipsec
linux-gen: pktio: loop: check for ip error before trying IPsec
linux-gen: adjust strong types to remove high bit truncation
helper: adjust strong types to remove high bit truncation
shippable: report test results even if ci step failed
shippable: run all tests
shippable: set CXX for clang case
shippable: enable non-ABI-compat test
shippable: mark failing configuration as allowing failure
shippable: use parallel make to compile ODP
travis: add two tests using DPDK version 17.11
shippable: disable perf-proc tests
validation: tm: auto skip test on Shippable in addition to Travis
build: support building for generic arch
build: add default-linux ABI dir, supporting generic arch
linux-gen: set DPDK's -msse4.2 flag during configure
configure: add flag to build for host=default
travis: enable tests for default host configuration
configure: use AS_HELP_STRING for abi-compat option
configure: fix enabling -mcx16 flag for i?86 platforms
validation: atomic: simplify test infrastructure
validation: barrier: simplify test infrastructure
validation: buffer: simplify test infrastructure
validation: chksum: simplify test infrastructure
validation: cpumask: simplify test infrastructure
validation: errno: simplify test infrastructure
validation: event: simplify test infrastructure
validation: hash: simplify test infrastructure
validation: lock: simplify test infrastructure
validation: packet: simplify test infrastructure
validation: pool: simplify test infrastructure
validation: queue: simplify test infrastructure
validation: random: simplify test infrastructure
validation: scheduler: simplify test infrastructure
validation: shmem: simplify test infrastructure
validation: std_clib: simplify test infrastructure
validation: system: simplify test infrastructure
validation: thread: simplify test infrastructure
validation: time: simplify test infrastructure
validation: timer: simplify test infrastructure
validation: traffic_mngr: simplify test infrastructure
validation: crypto: simplify test infrastructure
validation: classification: simplify test infrastructure
validation: pktio: simplify test infrastructure
validation: traffic_mngr: do not run the test twice
api: crypto: use cipher_iv instead of iv in session params
api: crypto: use cipher_iv_ptr instead of override_iv_ptr
api: crypto: add separate auth IV
linux-gen: crypto, ipsec: use auth_iv
validation: crypto: use auth IV for GMAC test case
api: crypto: add enumeration for AES-CMAC
api: crypto: add ChaCha20-Poly1305 support
validation: crypto: drop obsolete GMAC-related hack
validation: crypto: use single definitions for AES key lengths
validation: crypto: add ChaCha20-Poly1305 test vectors
validation: crypto: add test vectors for AES-CCM
validation: crypto: add AES-CMAC test vectors
linux-gen: crypto: drop stale enum
linux-gen: crypto: support ChaCha20-Poly1305
linux-gen: crypto: provide AES-CCM implementation
linux-gen: crypto: rename auth functions
linux-gen: crypto: implement AES-CMAC
validation: ipsec: add ChaCha20-Poly1305 test vectors
linux-gen: ipsec: support ChaCha20-Poly1305
api: crypto: add SHA-384 enumerations
api: crypto: add AES-XCBC-MAC enumerations
validation: crypto: properly use check_alg for GMAC/CMAC testing
api: packet add L2 packet type to complement L3 and L4 types
linux-gen: add L2 type support for non-ABI-compat mode
validation: crypto: use auth IV for GMAC test case
linux-gen: queue: encapsulate queue init/term_global functions
linux-gen: sched: encapsulate sched init/term_global functions
linux-gen: rename traditional scheduler and queue to basic
linux-gen: schedule, queue: select scheduler/queue via environment
travis: test all schedulers in single pass
shippable: switch to clang 4.0
shippable: run tests with all possible schedulers
validation: timer: fix "Failed to set timer" error
linux-gen: timer: don't mark expired timeouts as stale on odp_timer_cancel
validation: timer: fix test failure
example: generator: move script back to example directory
validation: init: remove "library" file
shippable: pass CI=true to tests
linux-gen: packet: implement packet l3/l4 proto types
validation: api: check l3/l4 proto types after parsing
linux-gen: packet: add odp_packet_l2_type() implementation
validation: packet: verify odp_packet_l2_type()
validation: ipsec: set frag_mode flag
linux-gen: ipsec: provide global init/term functions
linux-gen: ipsec: take ipsec_out_opt flags into account
linux-gen: packet: support L4 type No Next Header
validation: ipsec: add L3/L4 types validation
linux-gen: ipsec: separate ipv4/ipv6 flags
linux-gen: ipsec: take output ip_param into account
linux-gen: ipsec: support inbound TFC dummy packets
validation: ipsec: inbound TFC dummy packets check
Ilias Apalodimas (1):
linux-gen: align: Fix alignment for typedef definitions
Josep Puigdemont (1):
odp_dpdk.m4: fix detection of system libraries
Juha-Matti Tilli (5):
linux-generic: pktio: change SLEEP_NSEC into SLEEP_USEC
linux-generic: pktio: genuinely sleep in timeout receive
example: l2fwd_simple: test interruptible sleep in odp_pktin_recv_tmo
linux-generic: pktio: add null pktio support
example: l2fwd_simple: do operations to increase code coverage
Matias Elo (15):
test: l2fwd: improve cache usage
linux-gen: pktio: use correct maximum frame length
linux-gen: pktio: loop: update stats.out_octets correctly
linux-gen: pktio: loop: use more realistic MTU value
linux-gen: socket_mmap: reduce memory usage
linux-gen: socket_mmap: fix short send handling
linux-gen: socket: drop truncated packets on receive
linux-gen: socket_mmap: check that packet obeys MTU in receive
linux-gen: netmap: check that packet obeys MTU in receive
linux-gen: pktio: unify send/recv function argument naming
linux-gen: dpdk: conf NICs to drop packets if no descriptors are available
validation: shm: fix use of wrong name length define
linux-gen: dpdk: port ID is two bytes long
linux-gen: pool: use 64-bit shm sizes
linux-gen: pool: pool_t.base_addr offset has to be 64-bit
Maxim Uvarov (6):
checkpatch.pl: do not warn on odp aligh macros
travis: allow to fail checkpatch.pl
example: generator move to platform tests
update Linaro Copyrights to 2018 year
update Linaro Copyrights to 2018 year part2
configure.ac: update API and .so version to v1.18.0.0
Michal Mazur (2):
linux-generic: pool: return address range in pool info
validation: pool: verify pool data range
Mykyta Iziumtsev (1):
linux-gen: move common macros to odp_macros_internal.h
Petri Savolainen (76):
configure: enable linux helpers by default
example: ipsec: update gitignore
linux-gen: remove static_inline header
linux-gen: byteorder: internal inline functions
linux-gen: byteorder: use inlined version internally
validation: packet: minimal chksum status test
linux-gen: test: update gitignore
linux-gen: thread: inline thread and cpu id
linux-gen: locks: use inlined thread id
linux-gen: packet: use inlined flow hash and ts set
linux-gen: packet: remove dummy doxygen documentation
linux-gen: packet: inline copy functions
linux-gen: packet: use inlined copy functions
linux-gen: packet: remove odp_packet_hdr function
linux-gen: packet: implement packet prefetch
linux-gen: packet: inline conversions between packet and event
test: l2fwd: use multi conversion functions
validation: pktio: don't pass invalid handle to index conversion
linux-gen: pktio: inline pktio index function
linux-gen: packet: inline packet input index function
linux-gen: packet: optimize parse ipv4 and udp
linux-gen: packet: optimize tcp parse
linux-gen: packet: optimize parse eth
linux-gen: dpdk: optimize mbuf_to_pkt
validation: shm: test capa and maximum reservation
api: init: add shm memory size parameter
linux-gen: shm: use global init max memory
validation: common: remove camel case names
validation: packet: create parse test suite
validation: packet: add parser test cases
validation: packet: add IPv4 SCTP parse test
validation: packet: add IPSEC parse test
linux-gen: packet: fix IP multicast parse
validation: packet: add IP multicast tests
linux-gen: packet: remove unused function
linux-gen: packet: remove duplicate conversion
validation: sched: add order_unlock_lock test
linux-gen: cls: fix single queue bugs
validation: cls: test cos_num_queue and cos_queues
validation: packet: add IPv4 fragments
validation: packet: add IPv4 options
api: queue: block-free capabilities
validation: queue: test lock-free queue
validation: queue: multi-thread plain queue test
linux-gen: queue: lock-free implementation
linux-gen: packet: single user ptr field
linux-gen: packet: hide internal definitions from Doxygen
linux-gen: packet: clean up error and output flags
api: packet: initialize user ptr to NULL
linux-gen: packet: initialize user ptr to NULL
validation: packet: test user pointer init to NULL
api: crypto: clarify special nature of gcm and gmac
api: crypto: add enumeration for AES-CCM
api: packet: add protocol type enumeration
api: ipsec: IP header parameter types
api: ipsec: rename fragmentation mode option
api: ipsec: outbound operation option flags
api: ipsec: inbound TFC padding and dummy packets
api: ipsec: outbound TFC padding and dummy packets
api: ipsec: inbound inner packet checksum capability
validation: pktio: recv tmo test improvements
linux-gen: pktio: fix recv timeout issue with socket mmap
api: packet: improve segmented packet documentation
api: packet: add combined packet data and seg len
linux-gen: packet: implement packet_data_seg_len
validation: packet: test packet_data_seg_len
linux-gen: queue: inline queue from index conversion
linux-gen: ring_st: ring for single thread usage
helper: cuckoo: check pool and queue limits
validation: sched: honour max queue size
test: pktio_ordered: honour max queue size
linux-gen: queue: ring based queue implementation
linux-gen: config: increase max burst size
linux-gen: queue: simplify lock macro usage
test: l2fwd: remove unnecessary doxygen tags
test: l2fwd: increase num pkt and honour pool capability
Philip Colmer (1):
docs: fixing broken links
-----------------------------------------------------------------------
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 14a338c7f19830a084aa411b32639f3acaa99143 (commit)
from 2fbddb94b8d8be47151332ba9e9eab5475e2a669 (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 14a338c7f19830a084aa411b32639f3acaa99143
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Thu Mar 1 23:03:40 2018 +0300
configure.ac: update API and .so version to v1.18.0.0
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
diff --git a/configure.ac b/configure.ac
index 21718f07..f9e7f73b 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], [17])
+m4_define([odpapi_major_version], [18])
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=117:0:0
+ODP_LIBSO_VERSION=118:0:0
AC_SUBST(ODP_LIBSO_VERSION)
-ODPHELPER_LIBSO_VERSION=113:2:1
+ODPHELPER_LIBSO_VERSION=114:0:2
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 annotated tag, v1.18.0.0 has been created
at ef7cb8c7118850e3084781e0a91ae6fb7141d38e (tag)
tagging 14a338c7f19830a084aa411b32639f3acaa99143 (commit)
replaces v1.17.0.0_tigermoth_rc1
tagged by Maxim Uvarov
on Mon Mar 5 16:07:39 2018 +0300
- Log -----------------------------------------------------------------
== OpenDataPlane (1.18.0.0)
=== New Features
ODP v1.18.0.0 is Tiger Moth Release Candidate 2 (RC 2). It completes the new
APIs that are part of the Tiger Moth Long Term Support (LTS) release of ODP
as well as various performance refinements and bug fixes. As of RC2 the ODP
API is now frozen for the Tiger Moth development series.
==== APIs
The following new and changed APIs are included in this release:
===== Addition of Shared Memory (SHM) Initialization Parameters
The `odp_init_t` struct used as the argument to the `odp_init_global()` API
has been expanded to include a `max_memory` field that specifies the maximum
amount of shared memory (shm) that the application will use. This is to
better enable ODP implementations to optimize their use of shared memory in
support of the application. If left as (or defaulted) to 0, the implementation
may choose a default limit for the application.
===== Crypto Changes
A number of crypto refinements are included in this release:
* The single initialization vector (`iv`) in the `odp_crypto_session_param_t`
is replaced by a separate `cipher_iv` and `auth_iv` fields.
* The single initialization vector (`override_iv_ptr`) in the
`odp_crypto_op_param_t` is replaced by a separate `cipher_iv_ptr` and
`auth_iv_ptr` fields.
* The special nature of GCM and GMAC authenticated encryption modes is
clarified in that these ciphers always combine ciphering with authentication
and hence require both to be specified when used. This is simply a
documentation change as this requirement has always existed.
* Enumerations for AES_CCM (`ODP_CIPHER_ALG_AES_CCM` and
`ODP_AUTH_ALG_AES_CCM`) authenticated encryption modes are added.
* Enumeration for the AES_CMAC authenticated encryption mode
(`ODP_AUTH_ALG_AES_CMAC`) is added.
* Enumerations for the ChaCha20-Poly1305 (`ODP_CIPHER_ALG_CHACHA20_POLY1305`
and `ODP_AUTH_ALG_CHACHA20_POLY1305`) authenticated encryption modes are
added.
* Enumeration for the SHA-384 authentication algorithm
(`ODP_AUTH_ALG_SHA384_HMAC`) is added.
* Enumeration for the AES-XCBC-MAC authentication algorithm
(`ODP_AUTH_ALG_AES_XCBC_MAC`) is added.
===== Lock-free and block-free queues
The `odp_nonblocking_t` enums introduced in ODP v1.17.0.0 are now returned
as separate `odp_queue_capability()` limits for plain and scheduled queues. The
ODP reference implementations now support `ODP_NONBLOCKING_LF` queues.
===== User pointer initialized to NULL
The specification for `odp_packet_user_ptr()` is clarified that unless
overridden by `odp_packet_user_ptr_set()` the value of NULL will be returned.
===== Removal of `ODP_PKTIN_WAIT` option
The `ODP_PKTIN_WAIT` option on `odp_pktin_recv_tmo()` and
`odp_pktin_recv_mq_tmo()` is removed. Timeout options now consist of
`ODP_PKTIN_NO_WAIT` and a user-supplied timeout value. Since this timeout
value can be specified to be arbitrarily long, there is no need for an
indefinite wait capability as provision of such a capability proved
problematic for some ODP implementations.
===== Addition of packet protocol APIs
The APIs `odp_packet_l2_type()`, `odp_packet_l3_type()`, and
`odp_packet_l4_type()` are added to return the Layer 2, 3, and 4 protocols,
respectively, associated with packets that have been parsed to the
corresponding layer. If the packet was not parsed to the associated layer
these return `ODP_PROTO_Ln_TYPE_NONE`.
===== Packet addressability improvements
The documentation of `odp_packet_data()` is clarified to indicated when this
shortcut may be used safely and a new API, `odp_packet_data_seg_len()`, is
added that returns both the address of the start of packet data as well
as the number of bytes addressable from that pointer.
===== Asynchronous ordered locks
Two new APIs, `odp_schedule_order_lock_start()` and
`odp_schedule_order_lock_wait()` are added to allow for asynchronous
ordered lock acquisition in addition to the existing synchronous
`odp_schedule_order_lock()` API. In some implementations and applications,
there may be a performance advantage to indicating the intent to acquire an
ordered lock to allow the implementation to prepare for this while the
application continues parallel processing and then enter the critical section
protected by the ordered lock at a later time. In this case ordered lock
protection is not guaranteed until the `odp_schedule_order_lock_wait()` call
returns.
===== IPsec API miscellaneous changes and enhancements
IPsec support is further enhanced with the following:
* The `odp_ipsec_ipv4_param_t` and `odp_ipsec_ipv6_param_t` structures
are added to formalize the specification of IPv4 and IPv6 options in the
`odp_ipsec_tunnel_param_t` configuration.
* The `mode` field of the `odp_ipsec_out_t` is renamed to `frag_mode` for
better clarity. In addition the `flag.frag-mode` option bit in the
`odp_ipsec_out_opt_t` struct is defined to hold per-operation options for
the `odp_ipsec_out_param_t` struct.
* The `odp_ipsec_capability_t` struct returned by the `odp_ipsec_capability()`
API is expanded to include the `odp_proto_chksums_t` available on inbound
IPsec traffic. This indicates whether and how inbound packet checksums may
be validated for decrypted IPsec traffic.
===== IPsec Traffic Flow Confidentiality (TFC) support
Traffic Flow Confidentiality (TFC) allows applications to defend against
traffic analysis attacks by inserting dummy packets as well as add pad bytes
to packets traversing IPsec flows.
Dummy packets have an L3 type of `ODP_PROTO_L3_TYPE_NONE` in tunnel mode and
`ODP_PROTO_L4_TYPE_NO_NEXT` in transport mode. Padded packets have additional
data suffixed to them that extends beyond the L3 or L4 packet lengths.
For RX processing, inline dummy packets may or may not be dropped from the
inbound packet stream. For lookaside processing they are always visible. For TX
processing, the `odp_ipsec_out_opt_t` struct specifies the `tfc_pad` bit if
the packet is to be padded or the `tfc_dummy` bit if a dummy packet is to
be inserted. The dummy packet length is specified by the `tfc_pad_len` option.
=== Streamlined ABI Support
ABI support has been reorganized to make it more modular and to omit headers
and related ABI files when configure to disable this support.
=== Reference Implementation Fixes and Improvements
The ODP Reference Implementation corporates a number of improvements that
result in better code organization as well as improved processing efficiency.
==== Pktio null device support
In the LNG Reference Implemenations of ODP, the `odp_pktio_open()` API may now
specify devices of class `null` to indicate the PktIO is treated as a dummy
device. Null devices behave just like Linux `/dev/null` in that they never
receive packets and simply discard any packets sent to them.
Note that not all ODP implementations may support this device class. The
specific device classes supported by each ODP implementation may vary and are
listed in their own documentation.
==== Runtime Scheduler Selection
The ODP Reference Implementation offers both a default and a number of
alternate scheduler implementations. Previously these were selectable only at
`configure` time. They can now be dynamically selected at runtime by the use
of the `ODP_SCHEDULER` environment variable. If this environment variable is
not set, the default (basic) scheduler is used. It can be set to select
alternate schedulers:
* `ODP_SCHEDULER=basic` Explicitly selects the default scheduler
* `ODP_SCHEDULER=sp` Selects the strict priority scheduler
* `ODP_SCHEDULER=iquery` Selects the iQuery scheduler
* `ODP_SCHEDULER=scalable` Selects the scalable scheduler
==== Streamlined Queue Implementation
The ODP Reference Implementation now uses a ring model for implementing
ODP queues. This results in greatly improved efficiency for queue operations.
The default maximum queue depth used is 4096 elements, and this information is
returned via the `odp_queue_capability()` API.
==== Validation Test Simplification
The tests that are part of the validation test suite are reorganized and
simplified by having a single test file for each API rather than separate
CUnit driver files and test files.
=== Test/Example Improvements
==== Crypto Test Improvements
The `crypto` validation test suite now offers better information on which
crypto algorithms were skipped because they are not available. Testing of
full HMAC lengths is now added
==== ODP Generator Improvements
The `odp_generator` example now offers configurable RX burst size, selectable
packet handling (Direct I/O or Scheduled I/O), as well as streamlined packet
processing.
==== `l2fwd` Example Improvements
The `l2fwd` example offers improved efficiency via better cache usage.
=== Bug Fixes
==== https://bugs.linaro.org/show_bug.cgi?id=3517[Bug 3517]
timer test might fail
==== https://bugs.linaro.org/show_bug.cgi?id=3572[Bug 3572]
time_main test fails if run under heavy load
==== https://bugs.linaro.org/show_bug.cgi?id=3576[Bug 3576]
classification: CoS queues in invalid table index
==== https://bugs.linaro.org/show_bug.cgi?id=3577[Bug 3577]
classification: multiqueue CoS will always fail
==== https://bugs.linaro.org/show_bug.cgi?id=3578[Bug 3578]
classification: requested number of queues is ignored in multiqueue CoS
==== https://bugs.linaro.org/show_bug.cgi?id=3579[Bug 3579]
cls: capability to return max hash queues
==== https://bugs.linaro.org/show_bug.cgi?id=3581[Bug 3581]
classification: invalid memory access in RSS hash
==== https://bugs.linaro.org/show_bug.cgi?id=3582[Bug 3582]
classification: incorrect IPv6 RSS hash
==== https://bugs.linaro.org/show_bug.cgi?id=3594[Bug 3594]
IPsec SA may be used before fully initialized
==== https://bugs.linaro.org/show_bug.cgi?id=3595[Bug 3595]
IPsec SA lookup may leave extra SAs locked
==== https://bugs.linaro.org/show_bug.cgi?id=3597[Bug 3597]
new generator test assumes that null:0 pktio is always present
==== https://bugs.linaro.org/show_bug.cgi?id=3613[Bug 3613]
packet_main test can fail
==== https://bugs.linaro.org/show_bug.cgi?id=3618[Bug 3618]
DPDK pktio stops receiving packets if all configured RX queues are not used
==== https://bugs.linaro.org/show_bug.cgi?id=3628[Bug 3628]
Another timer_main failure
==== https://bugs.linaro.org/show_bug.cgi?id=3632[Bug 3632]
Creating a pool with total size over 4.29GB (UINT32_MAX) leads to
undefined behavior
=== Known Issues
==== https://bugs.linaro.org/show_bug.cgi?id=2988[Bug 2988]
ODP exposes symbols outside of odp*/_odp* namespace
==== https://bugs.linaro.org/show_bug.cgi?id=3611[Bug 3611]
ODP linux-generic fails on AArch64 in non-ABI-compat mode
Balasubramanian Manoharan (8):
linux-gen: cls: invalid CoS index
linux-gen: cls: unwind cls queues on failure
linux-gen: cls: fix: update capability to return max hash queues
linux-gen: cls: fix: incorrect rss hash calculation
linux-gen: cls: fix: requested number of queues ignored during hash
linux-gen: cls: fix: invalid queue handle check for hashing
api: schedule: add asynchronous order lock
linux-gen: schedule: implements async ordered lock
Bill Fischofer (7):
linux-generic: remove camelcase from icmp protocol
helper: remove camelcase from icmp protocol
test: validation: drop use of indefinite wait in pktio test
api: pktio: drop support for indefinite waits on recv_tmo calls
linux-generic: pktio: drop support for indefinite waits in recv_tmo
changelog: updates for odp v1.18.0.0
changelog: fix bug3611 status for v1.18.0.0
Bogdan Pricope (7):
example: generator: add configuration option for RX burst size
example: generator: add configuration option for scheduler RX
example: generator: add direct mode pktio configuration
example: generator: add direct mode packet RX
example: generator: replace L3/L4 packet parsing with a simple one
example: generator: remove busy wait for direct mode receive
example: generator: remove useless csum checks
Dmitry Eremin-Solenikov (208):
helper: link against libpthread and libodp-linux
doc: add missing user-guide images to Makefile.am
doc: add missing implementers-guide images to Makefile.am
performance: odp_crypto: correct typo
linux-gen: don't pass DPKD_LIBS for dynamic linking with libodp-linux
example: add missing libraries to LDADD variables
helper/tests: use common Makefile.inc for tests
test, linux-gen: use common test/Makefile.inc
validation: stop overriding LDADD variable
validation: time: use clock_gettime() instead of clock()
Revert "test: time: do not fail under gcov"
linux-gen: don't use SYSCONFDIR
tests: don't use ODP_SYSCONFIG_FILE
example: ipsec_api: remove file conflict with ipsec example
linux-gen: dpdk: simplify linking with shared libdpdk
shippable: process test results in post_ci stage
validation: crypto: print untested capabilities
validation: crypto: add test vectors for full HMAC length
validation: crypto: fail if no tests were executed
validation: crypto: don't output untested cipher for NULL cipher
travis: also run make distcheck in non-ABI-compat mode
travis: add cross-compiling tests with ABI compatibility disabled
linux-gen: atomic: simplify locked 64-bit support
include: change spec guarding define from ODP_API to ODP_API_SPEC
configure: provide conditional for ABI-compat mode
build: move ODP include path to common Makefile.inc
include: move default ABI headers
include: install ABI headers without additional ARCH_ABI level
include: install and use ABI headers only in ABI-compat mode
abi: queue: drop unused odp_queue_group_t
abi: classification: drop two unused types
api: schedule: remove duplication between schedule and schedule_types
build: add platform dir for non-ABI-compat headers
build, linux-gen: provide optional dir for arch includes
linux-gen, include: switch buffer.h to api+abi
linux-gen, include: switch classification.h to api+abi
linux-gen, include: switch crypto.h to api+abi
linux-gen, include: switch event.h to api+abi
linux-gen, include: switch shared_memory.h to api+abi
linux-gen, include: switch queue.h to api+abi
linux-gen, include: switch barrier.h to api+abi
linux-gen, include: switch cpumask.h to api+abi
linux-gen, include: switch init.h to api+abi
linux-gen, include: switch ipsec.h to api+abi
linux-gen, include: switch packet_io.h to api+abi
linux-gen, include: switch version.h to api+abi
linux-gen, include: switch rwlock.h to api+abi
linux-gen, include: switch rwlock_recursive.h to api+abi
linux-gen, include: switch spinlock.h to api+abi
linux-gen, include: switch spinlock_recursive.h to api+abi
linux-gen, include: switch thread.h to api+abi
linux-gen, include: switch thrmask.h to api+abi
linux-gen, include: switch time.h to api+abi
linux-gen, include: switch timer.h to api+abi
linux-gen, include: switch std_types.h to api+abi
linux-gen, include: switch traffic_mngr.h to api+abi
linux-gen, include: switch schedule.h/schedule_types.h to api+abi
linux-gen, include: switch pool.h to api+abi
linux-gen, include: switch atomic.h to api+abi
linux-gen, include: switch byteorder.h to api+abi
linux-gen, include: switch std_clib.h to api+abi
linux-gen, include: switch sync.h to api+abi
linux-gen, include: switch ticketlock.h to api+abi
linux-gen, include: switch debug.h to api+abi
linux-gen, include: switch cpu.h to api+abi
linux-gen, include: switch packet headers to api+abi
linux-gen, include: switch align.h to api+abi
linux-gen, include: drop interm _ODP_CACHE_LINE_SIZE define
linux-gen: minor cleanup of API headers
include, linux-gen: move API files into generic location
linux-gen: move several files under ODP_ABI_COMPAT condition
linux-gen: split odp_packet/odp_packet_flags
linux-gen: remove static_inline.h header
linux-gen: don't install inline headers in ABI-compat mode
configure: stop AC_SUBST'ing ODP_ABI_COMPAT
include: inline compiler.h spec
include: provide formal description of ODP specification
include: move visibility headers to generic place
build: provide an option to link examples dynamically
travis: run tests with dynamically-linked tests
travis: stop early when installation of cross-packages has failed
travis: install packages in single pass
travis: compile doxygen only for doxygen test
travis: use parallel make for all builds
travis: move --with-dpdk-path out of DPDK build if
build: odp_dpdk: another fix for linking with shared libdpdk
build: odp_dpdk: print info on detected DPDK type and location
build: configure: print notice about unsupported configuration
travis: merge variable sections
travis: test ODP with shared DPDK
travis: schedule long builds (distcheck) before short CROSS-tests
test: performance: add AES tests to crypto performance tests
linux-gen: crypto: move session type to odp_crypto module
linux-gen: crypto: significant speedup of all operations
linux-gen: ipsec: fix block len for AES-CTR mode
linux-gen: ipsec: disallow using SAs while they are being created
linux-gen: ipsec: fix SA leak in odp_ipsec_sa_create
linux-gen: ipsec: fix SA leak in lookup case
linux-gen: ipsec: prevent sa_lookup from matching outbound SAs
linux-gen: ipsec: fix SA leak in SA creation
configure: set ODP_ABI_COMPAT before descending into platform
configure: move ODP_CHECK_CFLAG to separate file
configure: set ODP_CFLAGS/CXXFLAGS before descending into platform
configure: add ODP_CHECK_CXXFLAG
configure: move pthreads check to properly defined macro
doc: move platform-specific doc distribution to platform/Makefile.inc
travis: install codespell
travis: build DPDK with clang if it was selected
build: limit symbol visibility for libodp-linux
configure: enable all Automake warnings and make them errors
build: fix visibility of deprecated symbols
linux-gen: use packet pointer in _odp_ipsec_try_inline
linux-gen: ptkio: loop: inline odp_packet_has_ipsec
linux-gen: pktio: loop: check for ip error before trying IPsec
linux-gen: adjust strong types to remove high bit truncation
helper: adjust strong types to remove high bit truncation
shippable: report test results even if ci step failed
shippable: run all tests
shippable: set CXX for clang case
shippable: enable non-ABI-compat test
shippable: mark failing configuration as allowing failure
shippable: use parallel make to compile ODP
travis: add two tests using DPDK version 17.11
shippable: disable perf-proc tests
validation: tm: auto skip test on Shippable in addition to Travis
build: support building for generic arch
build: add default-linux ABI dir, supporting generic arch
linux-gen: set DPDK's -msse4.2 flag during configure
configure: add flag to build for host=default
travis: enable tests for default host configuration
configure: use AS_HELP_STRING for abi-compat option
configure: fix enabling -mcx16 flag for i?86 platforms
validation: atomic: simplify test infrastructure
validation: barrier: simplify test infrastructure
validation: buffer: simplify test infrastructure
validation: chksum: simplify test infrastructure
validation: cpumask: simplify test infrastructure
validation: errno: simplify test infrastructure
validation: event: simplify test infrastructure
validation: hash: simplify test infrastructure
validation: lock: simplify test infrastructure
validation: packet: simplify test infrastructure
validation: pool: simplify test infrastructure
validation: queue: simplify test infrastructure
validation: random: simplify test infrastructure
validation: scheduler: simplify test infrastructure
validation: shmem: simplify test infrastructure
validation: std_clib: simplify test infrastructure
validation: system: simplify test infrastructure
validation: thread: simplify test infrastructure
validation: time: simplify test infrastructure
validation: timer: simplify test infrastructure
validation: traffic_mngr: simplify test infrastructure
validation: crypto: simplify test infrastructure
validation: classification: simplify test infrastructure
validation: pktio: simplify test infrastructure
validation: traffic_mngr: do not run the test twice
api: crypto: use cipher_iv instead of iv in session params
api: crypto: use cipher_iv_ptr instead of override_iv_ptr
api: crypto: add separate auth IV
linux-gen: crypto, ipsec: use auth_iv
validation: crypto: use auth IV for GMAC test case
api: crypto: add enumeration for AES-CMAC
api: crypto: add ChaCha20-Poly1305 support
validation: crypto: drop obsolete GMAC-related hack
validation: crypto: use single definitions for AES key lengths
validation: crypto: add ChaCha20-Poly1305 test vectors
validation: crypto: add test vectors for AES-CCM
validation: crypto: add AES-CMAC test vectors
linux-gen: crypto: drop stale enum
linux-gen: crypto: support ChaCha20-Poly1305
linux-gen: crypto: provide AES-CCM implementation
linux-gen: crypto: rename auth functions
linux-gen: crypto: implement AES-CMAC
validation: ipsec: add ChaCha20-Poly1305 test vectors
linux-gen: ipsec: support ChaCha20-Poly1305
api: crypto: add SHA-384 enumerations
api: crypto: add AES-XCBC-MAC enumerations
validation: crypto: properly use check_alg for GMAC/CMAC testing
api: packet add L2 packet type to complement L3 and L4 types
linux-gen: add L2 type support for non-ABI-compat mode
validation: crypto: use auth IV for GMAC test case
linux-gen: queue: encapsulate queue init/term_global functions
linux-gen: sched: encapsulate sched init/term_global functions
linux-gen: rename traditional scheduler and queue to basic
linux-gen: schedule, queue: select scheduler/queue via environment
travis: test all schedulers in single pass
shippable: switch to clang 4.0
shippable: run tests with all possible schedulers
validation: timer: fix "Failed to set timer" error
linux-gen: timer: don't mark expired timeouts as stale on odp_timer_cancel
validation: timer: fix test failure
example: generator: move script back to example directory
validation: init: remove "library" file
shippable: pass CI=true to tests
linux-gen: packet: implement packet l3/l4 proto types
validation: api: check l3/l4 proto types after parsing
linux-gen: packet: add odp_packet_l2_type() implementation
validation: packet: verify odp_packet_l2_type()
validation: ipsec: set frag_mode flag
linux-gen: ipsec: provide global init/term functions
linux-gen: ipsec: take ipsec_out_opt flags into account
linux-gen: packet: support L4 type No Next Header
validation: ipsec: add L3/L4 types validation
linux-gen: ipsec: separate ipv4/ipv6 flags
linux-gen: ipsec: take output ip_param into account
linux-gen: ipsec: support inbound TFC dummy packets
validation: ipsec: inbound TFC dummy packets check
Ilias Apalodimas (1):
linux-gen: align: Fix alignment for typedef definitions
Josep Puigdemont (1):
odp_dpdk.m4: fix detection of system libraries
Juha-Matti Tilli (5):
linux-generic: pktio: change SLEEP_NSEC into SLEEP_USEC
linux-generic: pktio: genuinely sleep in timeout receive
example: l2fwd_simple: test interruptible sleep in odp_pktin_recv_tmo
linux-generic: pktio: add null pktio support
example: l2fwd_simple: do operations to increase code coverage
Matias Elo (15):
test: l2fwd: improve cache usage
linux-gen: pktio: use correct maximum frame length
linux-gen: pktio: loop: update stats.out_octets correctly
linux-gen: pktio: loop: use more realistic MTU value
linux-gen: socket_mmap: reduce memory usage
linux-gen: socket_mmap: fix short send handling
linux-gen: socket: drop truncated packets on receive
linux-gen: socket_mmap: check that packet obeys MTU in receive
linux-gen: netmap: check that packet obeys MTU in receive
linux-gen: pktio: unify send/recv function argument naming
linux-gen: dpdk: conf NICs to drop packets if no descriptors are available
validation: shm: fix use of wrong name length define
linux-gen: dpdk: port ID is two bytes long
linux-gen: pool: use 64-bit shm sizes
linux-gen: pool: pool_t.base_addr offset has to be 64-bit
Maxim Uvarov (6):
checkpatch.pl: do not warn on odp aligh macros
travis: allow to fail checkpatch.pl
example: generator move to platform tests
update Linaro Copyrights to 2018 year
update Linaro Copyrights to 2018 year part2
configure.ac: update API and .so version to v1.18.0.0
Michal Mazur (2):
linux-generic: pool: return address range in pool info
validation: pool: verify pool data range
Mykyta Iziumtsev (1):
linux-gen: move common macros to odp_macros_internal.h
Petri Savolainen (76):
configure: enable linux helpers by default
example: ipsec: update gitignore
linux-gen: remove static_inline header
linux-gen: byteorder: internal inline functions
linux-gen: byteorder: use inlined version internally
validation: packet: minimal chksum status test
linux-gen: test: update gitignore
linux-gen: thread: inline thread and cpu id
linux-gen: locks: use inlined thread id
linux-gen: packet: use inlined flow hash and ts set
linux-gen: packet: remove dummy doxygen documentation
linux-gen: packet: inline copy functions
linux-gen: packet: use inlined copy functions
linux-gen: packet: remove odp_packet_hdr function
linux-gen: packet: implement packet prefetch
linux-gen: packet: inline conversions between packet and event
test: l2fwd: use multi conversion functions
validation: pktio: don't pass invalid handle to index conversion
linux-gen: pktio: inline pktio index function
linux-gen: packet: inline packet input index function
linux-gen: packet: optimize parse ipv4 and udp
linux-gen: packet: optimize tcp parse
linux-gen: packet: optimize parse eth
linux-gen: dpdk: optimize mbuf_to_pkt
validation: shm: test capa and maximum reservation
api: init: add shm memory size parameter
linux-gen: shm: use global init max memory
validation: common: remove camel case names
validation: packet: create parse test suite
validation: packet: add parser test cases
validation: packet: add IPv4 SCTP parse test
validation: packet: add IPSEC parse test
linux-gen: packet: fix IP multicast parse
validation: packet: add IP multicast tests
linux-gen: packet: remove unused function
linux-gen: packet: remove duplicate conversion
validation: sched: add order_unlock_lock test
linux-gen: cls: fix single queue bugs
validation: cls: test cos_num_queue and cos_queues
validation: packet: add IPv4 fragments
validation: packet: add IPv4 options
api: queue: block-free capabilities
validation: queue: test lock-free queue
validation: queue: multi-thread plain queue test
linux-gen: queue: lock-free implementation
linux-gen: packet: single user ptr field
linux-gen: packet: hide internal definitions from Doxygen
linux-gen: packet: clean up error and output flags
api: packet: initialize user ptr to NULL
linux-gen: packet: initialize user ptr to NULL
validation: packet: test user pointer init to NULL
api: crypto: clarify special nature of gcm and gmac
api: crypto: add enumeration for AES-CCM
api: packet: add protocol type enumeration
api: ipsec: IP header parameter types
api: ipsec: rename fragmentation mode option
api: ipsec: outbound operation option flags
api: ipsec: inbound TFC padding and dummy packets
api: ipsec: outbound TFC padding and dummy packets
api: ipsec: inbound inner packet checksum capability
validation: pktio: recv tmo test improvements
linux-gen: pktio: fix recv timeout issue with socket mmap
api: packet: improve segmented packet documentation
api: packet: add combined packet data and seg len
linux-gen: packet: implement packet_data_seg_len
validation: packet: test packet_data_seg_len
linux-gen: queue: inline queue from index conversion
linux-gen: ring_st: ring for single thread usage
helper: cuckoo: check pool and queue limits
validation: sched: honour max queue size
test: pktio_ordered: honour max queue size
linux-gen: queue: ring based queue implementation
linux-gen: config: increase max burst size
linux-gen: queue: simplify lock macro usage
test: l2fwd: remove unnecessary doxygen tags
test: l2fwd: increase num pkt and honour pool capability
Philip Colmer (1):
docs: fixing broken links
-----------------------------------------------------------------------
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 2fbddb94b8d8be47151332ba9e9eab5475e2a669 (commit)
from cb400906ef0e1a59d5844bfb686e816b6d47ca25 (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 2fbddb94b8d8be47151332ba9e9eab5475e2a669
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Fri Mar 2 18:14:46 2018 -0600
changelog: fix bug3611 status for v1.18.0.0
Bug 3611 is not fixed in v1.18.0.0 and is still a Known Issue
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/CHANGELOG b/CHANGELOG
index d6ef2077..cfebbbdc 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -216,9 +216,6 @@ new generator test assumes that null:0 pktio is always present
==== https://bugs.linaro.org/show_bug.cgi?id=3613[Bug 3613]
packet_main test can fail
-==== https://bugs.linaro.org/show_bug.cgi?id=3611[Bug 3611]
-ODP linux-generic fails on AArch64 in non-ABI-compat mode
-
==== https://bugs.linaro.org/show_bug.cgi?id=3618[Bug 3618]
DPDK pktio stops receiving packets if all configured RX queues are not used
@@ -234,6 +231,9 @@ undefined behavior
==== https://bugs.linaro.org/show_bug.cgi?id=2988[Bug 2988]
ODP exposes symbols outside of odp*/_odp* namespace
+==== https://bugs.linaro.org/show_bug.cgi?id=3611[Bug 3611]
+ODP linux-generic fails on AArch64 in non-ABI-compat mode
+
== OpenDataPlane (1.17.0.0)
=== New Features
ODP v1.17.0.0 is Tiger Moth Release Candidate 1 (RC 1). It introduces
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 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 cb400906ef0e1a59d5844bfb686e816b6d47ca25 (commit)
from e1c0e4570a45d05dd9f2e8e052ce71164209d112 (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 cb400906ef0e1a59d5844bfb686e816b6d47ca25
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Mon Feb 26 12:13:28 2018 -0600
changelog: updates for odp v1.18.0.0
Add updates for v1.18.0.0 (Tiger Moth RC2)
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 377486e2..d6ef2077 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,239 @@
+== OpenDataPlane (1.18.0.0)
+=== New Features
+ODP v1.18.0.0 is Tiger Moth Release Candidate 2 (RC 2). It completes the new
+APIs that are part of the Tiger Moth Long Term Support (LTS) release of ODP
+as well as various performance refinements and bug fixes. As of RC2 the ODP
+API is now frozen for the Tiger Moth development series.
+
+==== APIs
+The following new and changed APIs are included in this release:
+
+===== Addition of Shared Memory (SHM) Initialization Parameters
+The `odp_init_t` struct used as the argument to the `odp_init_global()` API
+has been expanded to include a `max_memory` field that specifies the maximum
+amount of shared memory (shm) that the application will use. This is to
+better enable ODP implementations to optimize their use of shared memory in
+support of the application. If left as (or defaulted) to 0, the implementation
+may choose a default limit for the application.
+
+===== Crypto Changes
+A number of crypto refinements are included in this release:
+
+* The single initialization vector (`iv`) in the `odp_crypto_session_param_t`
+is replaced by a separate `cipher_iv` and `auth_iv` fields.
+
+* The single initialization vector (`override_iv_ptr`) in the
+`odp_crypto_op_param_t` is replaced by a separate `cipher_iv_ptr` and
+`auth_iv_ptr` fields.
+
+* The special nature of GCM and GMAC authenticated encryption modes is
+clarified in that these ciphers always combine ciphering with authentication
+and hence require both to be specified when used. This is simply a
+documentation change as this requirement has always existed.
+
+* Enumerations for AES_CCM (`ODP_CIPHER_ALG_AES_CCM` and
+`ODP_AUTH_ALG_AES_CCM`) authenticated encryption modes are added.
+
+* Enumeration for the AES_CMAC authenticated encryption mode
+(`ODP_AUTH_ALG_AES_CMAC`) is added.
+
+* Enumerations for the ChaCha20-Poly1305 (`ODP_CIPHER_ALG_CHACHA20_POLY1305`
+and `ODP_AUTH_ALG_CHACHA20_POLY1305`) authenticated encryption modes are
+added.
+
+* Enumeration for the SHA-384 authentication algorithm
+(`ODP_AUTH_ALG_SHA384_HMAC`) is added.
+
+* Enumeration for the AES-XCBC-MAC authentication algorithm
+(`ODP_AUTH_ALG_AES_XCBC_MAC`) is added.
+
+===== Lock-free and block-free queues
+The `odp_nonblocking_t` enums introduced in ODP v1.17.0.0 are now returned
+as separate `odp_queue_capability()` limits for plain and scheduled queues. The
+ODP reference implementations now support `ODP_NONBLOCKING_LF` queues.
+
+===== User pointer initialized to NULL
+The specification for `odp_packet_user_ptr()` is clarified that unless
+overridden by `odp_packet_user_ptr_set()` the value of NULL will be returned.
+
+===== Removal of `ODP_PKTIN_WAIT` option
+The `ODP_PKTIN_WAIT` option on `odp_pktin_recv_tmo()` and
+`odp_pktin_recv_mq_tmo()` is removed. Timeout options now consist of
+`ODP_PKTIN_NO_WAIT` and a user-supplied timeout value. Since this timeout
+value can be specified to be arbitrarily long, there is no need for an
+indefinite wait capability as provision of such a capability proved
+problematic for some ODP implementations.
+
+===== Addition of packet protocol APIs
+The APIs `odp_packet_l2_type()`, `odp_packet_l3_type()`, and
+`odp_packet_l4_type()` are added to return the Layer 2, 3, and 4 protocols,
+respectively, associated with packets that have been parsed to the
+corresponding layer. If the packet was not parsed to the associated layer
+these return `ODP_PROTO_Ln_TYPE_NONE`.
+
+===== Packet addressability improvements
+The documentation of `odp_packet_data()` is clarified to indicated when this
+shortcut may be used safely and a new API, `odp_packet_data_seg_len()`, is
+added that returns both the address of the start of packet data as well
+as the number of bytes addressable from that pointer.
+
+===== Asynchronous ordered locks
+Two new APIs, `odp_schedule_order_lock_start()` and
+`odp_schedule_order_lock_wait()` are added to allow for asynchronous
+ordered lock acquisition in addition to the existing synchronous
+`odp_schedule_order_lock()` API. In some implementations and applications,
+there may be a performance advantage to indicating the intent to acquire an
+ordered lock to allow the implementation to prepare for this while the
+application continues parallel processing and then enter the critical section
+protected by the ordered lock at a later time. In this case ordered lock
+protection is not guaranteed until the `odp_schedule_order_lock_wait()` call
+returns.
+
+===== IPsec API miscellaneous changes and enhancements
+IPsec support is further enhanced with the following:
+
+* The `odp_ipsec_ipv4_param_t` and `odp_ipsec_ipv6_param_t` structures
+are added to formalize the specification of IPv4 and IPv6 options in the
+`odp_ipsec_tunnel_param_t` configuration.
+
+* The `mode` field of the `odp_ipsec_out_t` is renamed to `frag_mode` for
+better clarity. In addition the `flag.frag-mode` option bit in the
+`odp_ipsec_out_opt_t` struct is defined to hold per-operation options for
+the `odp_ipsec_out_param_t` struct.
+
+* The `odp_ipsec_capability_t` struct returned by the `odp_ipsec_capability()`
+API is expanded to include the `odp_proto_chksums_t` available on inbound
+IPsec traffic. This indicates whether and how inbound packet checksums may
+be validated for decrypted IPsec traffic.
+
+===== IPsec Traffic Flow Confidentiality (TFC) support
+Traffic Flow Confidentiality (TFC) allows applications to defend against
+traffic analysis attacks by inserting dummy packets as well as add pad bytes
+to packets traversing IPsec flows.
+
+Dummy packets have an L3 type of `ODP_PROTO_L3_TYPE_NONE` in tunnel mode and
+`ODP_PROTO_L4_TYPE_NO_NEXT` in transport mode. Padded packets have additional
+data suffixed to them that extends beyond the L3 or L4 packet lengths.
+
+For RX processing, inline dummy packets may or may not be dropped from the
+inbound packet stream. For lookaside processing they are always visible. For TX
+processing, the `odp_ipsec_out_opt_t` struct specifies the `tfc_pad` bit if
+the packet is to be padded or the `tfc_dummy` bit if a dummy packet is to
+be inserted. The dummy packet length is specified by the `tfc_pad_len` option.
+
+=== Streamlined ABI Support
+ABI support has been reorganized to make it more modular and to omit headers
+and related ABI files when configure to disable this support.
+
+=== Reference Implementation Fixes and Improvements
+The ODP Reference Implementation corporates a number of improvements that
+result in better code organization as well as improved processing efficiency.
+
+==== Pktio null device support
+In the LNG Reference Implemenations of ODP, the `odp_pktio_open()` API may now
+specify devices of class `null` to indicate the PktIO is treated as a dummy
+device. Null devices behave just like Linux `/dev/null` in that they never
+receive packets and simply discard any packets sent to them.
+
+Note that not all ODP implementations may support this device class. The
+specific device classes supported by each ODP implementation may vary and are
+listed in their own documentation.
+
+==== Runtime Scheduler Selection
+The ODP Reference Implementation offers both a default and a number of
+alternate scheduler implementations. Previously these were selectable only at
+`configure` time. They can now be dynamically selected at runtime by the use
+of the `ODP_SCHEDULER` environment variable. If this environment variable is
+not set, the default (basic) scheduler is used. It can be set to select
+alternate schedulers:
+
+* `ODP_SCHEDULER=basic` Explicitly selects the default scheduler
+* `ODP_SCHEDULER=sp` Selects the strict priority scheduler
+* `ODP_SCHEDULER=iquery` Selects the iQuery scheduler
+* `ODP_SCHEDULER=scalable` Selects the scalable scheduler
+
+==== Streamlined Queue Implementation
+The ODP Reference Implementation now uses a ring model for implementing
+ODP queues. This results in greatly improved efficiency for queue operations.
+The default maximum queue depth used is 4096 elements, and this information is
+returned via the `odp_queue_capability()` API.
+
+==== Validation Test Simplification
+The tests that are part of the validation test suite are reorganized and
+simplified by having a single test file for each API rather than separate
+CUnit driver files and test files.
+
+=== Test/Example Improvements
+
+==== Crypto Test Improvements
+The `crypto` validation test suite now offers better information on which
+crypto algorithms were skipped because they are not available. Testing of
+full HMAC lengths is now added
+
+==== ODP Generator Improvements
+The `odp_generator` example now offers configurable RX burst size, selectable
+packet handling (Direct I/O or Scheduled I/O), as well as streamlined packet
+processing.
+
+==== `l2fwd` Example Improvements
+The `l2fwd` example offers improved efficiency via better cache usage.
+
+=== Bug Fixes
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3517[Bug 3517]
+timer test might fail
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3572[Bug 3572]
+time_main test fails if run under heavy load
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3576[Bug 3576]
+classification: CoS queues in invalid table index
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3577[Bug 3577]
+classification: multiqueue CoS will always fail
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3578[Bug 3578]
+classification: requested number of queues is ignored in multiqueue CoS
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3579[Bug 3579]
+cls: capability to return max hash queues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3581[Bug 3581]
+classification: invalid memory access in RSS hash
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3582[Bug 3582]
+classification: incorrect IPv6 RSS hash
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3594[Bug 3594]
+IPsec SA may be used before fully initialized
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3595[Bug 3595]
+IPsec SA lookup may leave extra SAs locked
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3597[Bug 3597]
+new generator test assumes that null:0 pktio is always present
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3613[Bug 3613]
+packet_main test can fail
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3611[Bug 3611]
+ODP linux-generic fails on AArch64 in non-ABI-compat mode
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3618[Bug 3618]
+DPDK pktio stops receiving packets if all configured RX queues are not used
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3628[Bug 3628]
+Another timer_main failure
+
+==== https://bugs.linaro.org/show_bug.cgi?id=3632[Bug 3632]
+Creating a pool with total size over 4.29GB (UINT32_MAX) leads to
+undefined behavior
+
+=== Known Issues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2988[Bug 2988]
+ODP exposes symbols outside of odp*/_odp* namespace
+
== OpenDataPlane (1.17.0.0)
=== New Features
ODP v1.17.0.0 is Tiger Moth Release Candidate 1 (RC 1). It introduces
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 236 insertions(+)
hooks/post-receive
--