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 c14ec3dc896e0dd14d0491f09f81ce09e9d53bc2 (commit)
from 50ebc616ddd9d05651923134d7bfaa02c103fbce (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 c14ec3dc896e0dd14d0491f09f81ce09e9d53bc2
Author: Christophe Milard <christophe.milard(a)linaro.org>
Date: Mon Jan 23 09:47:57 2017 +0100
linux-gen: _ishm: fix normal page fallback
Fixing failure due to lack of huge pages.
Fixes: https://bugs.linaro.org/show_bug.cgi?id=2842
Signed-off-by: Christophe Milard <christophe.milard(a)linaro.org>
Reviewed-and-tested-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/_ishm.c b/platform/linux-generic/_ishm.c
index f889834..3797f20 100644
--- a/platform/linux-generic/_ishm.c
+++ b/platform/linux-generic/_ishm.c
@@ -547,7 +547,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,
addr = alloc_fragment(len, block_index, align, &fragment);
if (!addr) {
ODP_ERR("alloc_fragment failed.\n");
- if (new_block->filename[0]) {
+ if (!new_block->external_fd) {
close(*fd);
*fd = -1;
delete_file(new_block);
@@ -562,7 +562,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,
if (mapped_addr == NULL) {
if (flags & _ODP_ISHM_SINGLE_VA)
free_fragment(fragment);
- if (new_block->filename[0]) {
+ if (!new_block->external_fd) {
close(*fd);
*fd = -1;
delete_file(new_block);
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/_ishm.c | 4 ++--
1 file changed, 2 insertions(+), 2 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 50ebc616ddd9d05651923134d7bfaa02c103fbce (commit)
via 1ff6b7a7e44e7d7376920f1e1ee81dbf28f95563 (commit)
from c15da68b8dc3187c1929ff7d7705a0958856cbad (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 50ebc616ddd9d05651923134d7bfaa02c103fbce
Author: Matias Elo <matias.elo(a)nokia.com>
Date: Mon Jan 9 12:56:14 2017 +0200
linux-gen: netmap: bump supported netmap version to 11.2
Signed-off-by: Matias Elo <matias.elo(a)nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/DEPENDENCIES b/DEPENDENCIES
index f1f0edd..574859c 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -83,13 +83,13 @@ Prerequisites for building the OpenDataPlane (ODP) API
3.3.1 Building netmap kernel modules
ODP works at least with the latest release version of netmap, which is
- currently 11.1. However, if possible one should try to use the latest netmap
+ currently 11.2. However, if possible one should try to use the latest netmap
master branch commit for the best performance and the latest bug fixes.
# Checkout netmap code
$ git clone https://github.com/luigirizzo/netmap.git
$ cd netmap
- $ git checkout v11.1 (optional)
+ $ git checkout v11.2 (optional)
This is enough to build ODP. If you don't want to build netmap kernel
modules you can jump to section 3.3.2.
commit 1ff6b7a7e44e7d7376920f1e1ee81dbf28f95563
Author: Matias Elo <matias.elo(a)nokia.com>
Date: Mon Jan 9 12:56:13 2017 +0200
linux-gen: netmap: fix interface flags initialization
Previously netmap interface flags parsed by nm_open() were always
overwritten by netmap_start() function. In netmap v11.2 release this breaks
pipe interface initialization. Fix this by setting the netmap flags only
when needed.
Signed-off-by: Matias Elo <matias.elo(a)nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c
index 8eb8145..208984b 100644
--- a/platform/linux-generic/pktio/netmap.c
+++ b/platform/linux-generic/pktio/netmap.c
@@ -452,7 +452,7 @@ static int netmap_start(pktio_entry_t *pktio_entry)
{
pkt_netmap_t *pkt_nm = &pktio_entry->s.pkt_nm;
netmap_ring_t *desc_ring;
- struct nm_desc base_desc;
+ struct nm_desc *desc_ptr;
unsigned i;
unsigned j;
unsigned num_rx_desc = 0;
@@ -503,18 +503,27 @@ static int netmap_start(pktio_entry_t *pktio_entry)
pktio_entry->s.num_out_queue,
pktio_entry->s.num_out_queue);
- memset(&base_desc, 0, sizeof(struct nm_desc));
- base_desc.self = &base_desc;
- base_desc.mem = NULL;
- memcpy(base_desc.req.nr_name, pkt_nm->if_name, sizeof(pkt_nm->if_name));
- base_desc.req.nr_flags &= ~NR_REG_MASK;
+ /* Use nm_open() to parse netmap flags from interface name */
+ desc_ptr = nm_open(pkt_nm->nm_name, NULL, 0, NULL);
+ if (desc_ptr == NULL) {
+ ODP_ERR("nm_start(%s) failed\n", pkt_nm->nm_name);
+ goto error;
+ }
+ struct nm_desc base_desc = *desc_ptr;
- if (num_rx_desc == 1)
- base_desc.req.nr_flags |= NR_REG_ALL_NIC;
- else
- base_desc.req.nr_flags |= NR_REG_ONE_NIC;
+ nm_close(desc_ptr);
+ base_desc.self = &base_desc;
+ base_desc.mem = NULL;
base_desc.req.nr_ringid = 0;
+ if ((base_desc.req.nr_flags & NR_REG_MASK) == NR_REG_ALL_NIC ||
+ (base_desc.req.nr_flags & NR_REG_MASK) == NR_REG_ONE_NIC) {
+ base_desc.req.nr_flags &= ~NR_REG_MASK;
+ if (num_rx_desc == 1)
+ base_desc.req.nr_flags |= NR_REG_ALL_NIC;
+ else
+ base_desc.req.nr_flags |= NR_REG_ONE_NIC;
+ }
/* Only the first rx descriptor does mmap */
desc_ring = pkt_nm->rx_desc_ring;
@@ -548,8 +557,12 @@ static int netmap_start(pktio_entry_t *pktio_entry)
/* Open tx descriptors */
desc_ring = pkt_nm->tx_desc_ring;
flags = NM_OPEN_IFNAME | NM_OPEN_NO_MMAP;
- base_desc.req.nr_flags &= ~NR_REG_ALL_NIC;
- base_desc.req.nr_flags |= NR_REG_ONE_NIC;
+
+ if ((base_desc.req.nr_flags & NR_REG_MASK) == NR_REG_ALL_NIC) {
+ base_desc.req.nr_flags &= ~NR_REG_ALL_NIC;
+ base_desc.req.nr_flags |= NR_REG_ONE_NIC;
+ }
+
for (i = 0; i < pktio_entry->s.num_out_queue; i++) {
for (j = desc_ring[i].s.first; j <= desc_ring[i].s.last; j++) {
base_desc.req.nr_ringid = j;
-----------------------------------------------------------------------
Summary of changes:
DEPENDENCIES | 4 ++--
platform/linux-generic/pktio/netmap.c | 37 +++++++++++++++++++++++------------
2 files changed, 27 insertions(+), 14 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.13.0.0 has been created
at 3119269aae4a904a235f95748ccc5a74344111c8 (tag)
tagging 3875d6ebf690e07b69f11621caefab1afc58e100 (commit)
replaces v1.12.0.0
tagged by Maxim Uvarov
on Thu Jan 19 16:44:47 2017 +0300
- Log -----------------------------------------------------------------
== OpenDataPlane (1.13.0.0)
=== New Features
==== APIs
ODP v1.13.0.0 represents the initial preview of the Tiger Moth release series
and as such introduces new APIs and extensions that will be built on as this
release matures.
===== Crypto Parameter Normalization
Many ODP APIs take parameter structs of type `odp_xxx_param_t`. The crypto APIs,
for historical reasons, failed to follow this convention, using instead structs
of type `odp_crypto_params_t`, etc. These pluralized names are now deprecated
and their singular forms are introduced as the preferred names for these
structs. The old names are retained (for now) to ease migration, however
applications should convert to the new forms at their convenience as these
deprecated forms will be removed in the final Tiger Moth release.
The changes introduced for this include:
* `odp_crypto_op_params_t` => `odp_crypto_op_param_t`
* `odp_crypto_session_params_t` => `odp_crypto_session_param_t`
===== Crypto Decouple Key Length from Algorithm Specification
To provide a more flexible programming for handling all possible
key/digest/iv length combinations, the enums used for crypto specification
are split to decouple lengths from algorithm names. The only exception
is the SHA-2 family of hash routines, which have well-established naming
conventions that incorporate digest lengths (SHA-224, SHA-256, etc.)
Changes included with this restructure include:
* The `odp_crypto_capability_t` structure returned by the
`odp_crypto_capability()` API contains streamlined `odp_crypto_cipher_algos_t`
and `odp_crypto_auth_algos_t` substructures.
* A new `odp_crypto_cipher_capability()` API is added to return detailed
information about available cipher capabilities.
* A new `odp_crypto_auth_capability()` API is added to return detailed
information about available authentication capabilities.
===== `odp_crypto_session_param_init()` API
For completeness the `odp_crypto_session_param_init()` API is provided to
enable platform-independent initialization of the `odp_crypto_session_param_t`
structure used as input to `odp_crypto_session_create()`.
===== Bitfield and Byteorder Cleanup
The `ODP_BITFIELD_ORDER` define is added to the ODP specification to parallel
the existing `ODP_BYTEFIELD_ORDER` define. This will be set to the value
`ODP_BIG_ENDIAN_BITFIELD` or `ODP_LITTLE_ENDIAN_BITFIELD`. This also addresses
https://bugs.linaro.org/show_bug.cgi?id=2402[Bug 2402], however since fixing
this required a small API change this was deferred until an API release
boundary.
===== Improved Name Argument Definitions in `odp_xxx_create()` Functions
The use of name arguments to the various resource creation APIs has
been standardized and documentation improved to clarify that unique
names are not required and that these may be specified as NULL for
anonymous resource creation. When non-unique resource names are used, it is
unspecified which of these are returned by a corresponding lookup API.
===== Pool Parameters for Packet Pools
The `odp_pool_param_t` structure adds the new field `max_len` to be used in
packet pools to advise the implementation of the maximum sized packet that
the application will allocate with a single `odp_packet_alloc()` call. This
may enable storage pool optimization.
===== Packet Clarifications
API documentation for `odp_packet_concat()` and `odp_packet_copy_from_pkt()`
is clarified to specify that the source and destination packets supplied to
these APIs should not refer to the same packet.
===== Packet Allocation Length Clarification
API documentation for `odp_packet_alloc()` is clarified to specify that
the supplied length for requested packet allocation should be greater
than zero.
===== Random API Changes
The APIs provided for working with random data have been revised. The third
parameter to `odp_random_data()` is now of type `odp_random_kind_t`, which is
an `enum` that is used to specify the quality of random data required. The
kinds of random data defined are:
`ODP_RANDOM_BASIC`::
No specific quality guarantees. This is assumed to be pseudo-random data
generated by software where speed of generation is more important than the
quality of the results.This is the lowest kind of random.
`ODP_RANDOM_CRYPTO`::
Random data suitable for use in cryptographic operations.
`ODP_RANDOM_TRUE`::
True random data generated from a hardware entropy source. This is the
highest kind of random.
The `odp_random_max_kind()` API is provided that returns the highest kind of
data available on this implementation. Requests for higher kinds than can be
supplied will fail.
For testing purposes it is often desirable to generate "random" sequences that
are repeatable. To support this use case, the `odp_random_test_data()` API is
introduced. This always returns BASIC random data but uses a user-supplied
64-byte seed parameter that is update for each call and can be used to
repeat the same sequence as needed.
===== Shared Memory Improvements
The `odp_shm_reserve()` API adds two new additional flags to support external
memory.
* `ODP_SHM_SINGLE_VA` guarantees that all ODP threads sharing this memory
will see the block at the same virtual address regardless of whether threads
are implemented as pthreads or processes and when `fork()` calls are made to
create them.
* `ODP_SHM_EXPORT` allows the memory block to be visible to other ODP
instances. Other ODP instances can retrieve this block via the new
`odp_shm_import()` API.
===== Classification Clarifications
The relationship between classification and queue configuration in the
`odp_pktin_queue_param_t` structure is clarified to emphasize that
classification subsumes queue-based I/O processing. This is an API
documentation change only.
=== Helpers
New helper APIs are introduced for IP table lookup support for longest prefix
matching as well as cuckoo hash tables. These are designed to provide analogs
to functions available in DPDK to assist applications being ported to ODP.
=== Performance Improvements
The odp-linux reference implementation includes a number of improvements to
make it more suitable for production use on platforms that rely on software
implementations of key ODP APIs.
==== Ring-based Pool Implementation
Storage pools used for buffers and packets are now implemented via lockless
ring structures that support burst mode read/writes to local caches for
significantly improved multi-core scalability
==== Buffer/Packet Header Optimizations
The layout of the structs used to support buffers and packets has been
optimized to reduce cache footprint and minimize path lengths in packet
manipulation.
==== Ordered Queue Improvements
The implementation of ordered queues has been streamlined and made more
scaleable in multi-core systems.
==== Packet Segmentation Improvements
The more advance segmentation capabilities present in the new ODP packet
implementation are used to streamline the implementation of APIs like
`odp_packet_concat()` and the head/tail extend/trunc APIs.
=== Bug Fixes
==== https://bugs.linaro.org/show_bug.cgi?id=2405[Bug 2405]
A number of "todos" were removed from the packet validation test suite.
==== https://bugs.linaro.org/show_bug.cgi?id=2472[Bug 2472]
The CPU affinity is now correctly read from the cpuset.
==== https://bugs.linaro.org/show_bug.cgi?id=2496[Bug 2496]
The PktIO validation test no longer uses invalid MAC addresses.
==== https://bugs.linaro.org/show_bug.cgi?id=2512[Bug 2512]
The TCP checksum is now properly calculated for generated packets.
==== https://bugs.linaro.org/show_bug.cgi?id=2798[Bug 2798]
The odp-linux reference implementation makes use of the OpenSSL library to
support the `odp_random_xxx()` APIs and some crypto operations. To support
OpenSSL versions prior to 1.1.0, which are not thread safe, support is added
for OpenSSL locking callbacks that use ODP ticketlocks to provide OpenSSL thread
safety.
=== Known Issues
==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]
Make check fails on a single core VM in the process mode helper test.
Balakrishna Garapati (1):
platform: linux-generic: reading cpu affinity from cpuset
Balasubramanian Manoharan (3):
validation: classification: fix TCP/UDP checksum update
validation: pktio: fix invalid mac addr
api: pktio: adds further definition for classification configuration
Bill Fischofer (11):
validation: packet: remove todos from packet tests
test: perf: add assert since src_idx cannot be negative
api: byteorder: avoid bitfield order doxygen omissions
linux-generic: pool: reset origin_qe on buffer allocation
api: random: add explicit controls over random data
doc: userguide: move crypto documentation to its own sub-document
doc: userguide: expand crypto documentation to cover random apis
api: pktio: pktio documentation typo correction
linux-generic: pool: defer ring allocation until pool creation
linux-generic: crypto: add openssl locking support for thread safety
changelog: summary of changes for odp v1.13.0.0
Christophe Milard (38):
linux-generic: Makefile: reintroducing lost change for drv
linux-generic: moving the visibility files one step up
linux-generic: cosmetic changes on sync files
linux-generic: cosmetic changes on atomic
linux-generic: cosmetic changes on spinlock
helper: test: gitignore add iplookuptable
linux-gen: cosmetic changes on barrier
linux-gen: fdserver: new fdserver added
linux-generic: system_info: adding huge page dir
linux-generic: _fdserver: fixing comment typo
linux-generic: _fdserver: allocating data table dynamicaly
linux-gen: init: removing possible obsolete ODP files at startup
linux-gen: push internal flag definition
api: shm: add flags to shm_reserve and function to find external mem
test: api: shmem: new proper tests for shm API
doc: updating docs for the shm interface extension
test: api: shm: test using the same block name multiple times
doc: shm: defining behaviour when blocks have same name
linux-gen: _fdserver: request sigterm if parent dies
linux-gen: ishm: internal shared memory allocator (ishm) added
linux-gen: _ishm: create description file for external memory sharing
linux-gen: use ishm as north API mem allocator
linux-gen: ishm: adding debug function
linux-gen: _ishm: adding function to map memory from other ODP
linux-gen: shm: new ODP_SHM_SINGLE_VA flag implementation
linux-gen: shm: add flag and function to share memory between ODP instances
linux-gen: shared_memory: remove flag forcing mlock
linux-gen: _ishm: accept multiple usage of same block name
linux_gen: _ishm: decreasing the number of error messages when no huge pages
linux-gen: _ishm: fix for alignment request matching page size
linux-gen: _ishm: allow memory alloc/free at global init/term
linux-gen: _ishm: cleaning remaining block at odp_term_global
test: linux-gen: api: shmem: test sharing memory between ODP instances
linux-gen: _ishm: unlinking files asap for cleaner termination
linux-gen: _ishm: exporting/importing user len and flags
test: shm: checking exported vs imported block length
linux-gen: _ishm: fixing typos
linux-gen: init: avoiding segfault if cleaning files
Joe Savage (1):
helper: fix odph_ipv4_csum functions for L3 offset 0
Matias Elo (15):
example: free reserved shared memory blocks
validation: free reserved shared memory blocks
api: improve name argument definitions in *_create() functions
linux-gen: schedule: fix creating event group with no name
linux-gen: queue: fix creating queue with no name
linux-gen: classification: fix creating cos with no name
linux-gen: timer: fix creating timer pool with no name
linux-gen: sched: add internal APIs for locking/unlocking ordered processing
linux-gen: sched: remove old ordered queue implementation
linux-gen: sched: add internal API for max number of ordered locks per queue
linux-gen: sched: new ordered queue implementation
linux-gen: sched: new ordered lock implementation
api: unify ODP_*_NAME_LEN specifications
api: move ODP_*_NAME_LEN definitions from API to implementation
validation: test creating pool and timer pool with no name
Maxim Uvarov (13):
configure.ac: do not disable shared lib for non abi mode
test: tm: queue id can be not updated
travis: do not print dpdk build log
travis: accelerate dpdk cloning
scripts/build-pktio-dpdk: do not download full dpdk git
helper: cuckootable: add missing return codes
linux-gen: pktio ipc: ring changes
linux-gen: pktio ipc: more accurate settings of pool flags
linux-gen: pktio ipc: update tests
linux-gen: pktio ipc: make it work again
linux-gen: pktio ipc: tests: remove comment about master-slave
linux-gen: pktio ipc: fix clang build
update API version number from v1.12.0.0 to v1.13.0.0
Mike Holmes (4):
configure: if no ABI reset .so to 0
configure: remove duplicate info
helper: remove unused variable
doc: driver-guide: initial revision
Nicolas Morey-Chaisemartin (3):
validation: pktio: use PRIu32 to print uint32_t values
validation: traffic_mngr: use PRI macro to print uint*
example: traffic_mgmt: use PRIu32 instead of %u
Petri Savolainen (49):
test: l2fwd: lookup table for sched mode
test: l2fwd: lockless output queues in sched mode
test: l2fwd: add missing output event queue read
linux-gen: ipc: disable build of ipc pktio
linux-gen: pktio: do not free zero packets
linux-gen: ring: created common ring implementation
linux-gen: align: added round up power of two
linux-gen: pool: reimplement pool with ring
linux-gen: ring: added multi enq and deq
linux-gen: pool: use ring multi enq and deq operations
linux-gen: pool: optimize buffer alloc
linux-gen: pool: clean up pool inlines functions
linux-gen: pool: ptr instead of hdl in buffer_alloc_multi
test: validation: buf: test alignment
test: performance: crypto: use capability to select max packet
test: correctly initialize pool parameters
test: validation: packet: fix bugs in tailroom and concat tests
linux-gen: packet: added support for segmented packets
test: validation: packet: improved multi-segment alloc test
api: packet: added limits for packet len on alloc
linux-gen: packet: remove zero len support from alloc
linux-gen: socket: use trunc instead of pull tail
validation: crypto: honour pool capability limits
validation: pktio: honour pool capability limits
linux-gen: pool: check pool parameters
linux-gen: packet: enable multi-segment packets
api: crypto: rename _params_t to _param_t
linux-gen: crypto: rename params to param
api: crypto: decouple key length from algorithm enumeration
linux-gen: crypto: add algo capability functions
linux-gen: crypto: add support to new enumerations
api: crypto: added session param init
api: crypto: documentation clean up
test: crypto: use odp_crypto_session_param_init
validation: crypto: use algorithm capability
example: ipsec: use op_param_t instead of op_params_t
linux-gen: schedule_sp: use ring as priority queue
api: packet: src and dst packet must not be the same
linux-gen: packet: fix bug in tailroom calculation
linux-gen: packet: improve packet print
validation: packet: concat-split test bug fix
linux-gen: packet: optimize concat
validation: packet: add new concat and extend tests
linux-gen: config: increase max num of segments
linux-gen: packet: clean and pack packet header struct
linux-gen: packet: optimize alloc and init
linux-gen: packet: replace base_len with constant
validation: packet: add line number to compare data checks
validation: packet: limit number of failed asserts
Ru Jia (4):
helper: table: add impl of cuckoo hash table
helper: test: add test of cuckoo hash table
helper: table: add impl of ip lookup table
helper: test: add validation test of ip lookup table
Stanislaw Kardach (1):
helper: do not break odp_term_global protocol
Xuelin Shi (2):
linux-generic: move tm system barrier to tm group
linux-generic: only enable pktout when egress kind is pktio
-----------------------------------------------------------------------
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 3875d6ebf690e07b69f11621caefab1afc58e100 (commit)
via b99095485be4ac14d16bef372b5c6521b396abaa (commit)
from f53fda91d2919eee33b5a177ef818be1092c890b (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 3875d6ebf690e07b69f11621caefab1afc58e100
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Fri Jan 13 16:50:36 2017 +0300
update API version number from v1.12.0.0 to v1.13.0.0
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-by: Mike Holmes <mike.holmes(a)linaro.org>
diff --git a/configure.ac b/configure.ac
index 3a20959..67d60d2 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], [12])
+m4_define([odpapi_major_version], [13])
m4_define([odpapi_minor_version], [0])
m4_define([odpapi_point_version], [0])
m4_define([odpapi_version],
@@ -38,10 +38,10 @@ AM_SILENT_RULES([yes])
# 3. if interfaces were removed, then use C+1:0:0
##########################################################################
-ODP_LIBSO_VERSION=112:0:0
+ODP_LIBSO_VERSION=113:0:0
AC_SUBST(ODP_LIBSO_VERSION)
-ODPHELPER_LIBSO_VERSION=110:1:1
+ODPHELPER_LIBSO_VERSION=111:0:2
AC_SUBST(ODPHELPER_LIBSO_VERSION)
# Checks for programs.
commit b99095485be4ac14d16bef372b5c6521b396abaa
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Fri Jan 13 10:14:04 2017 -0600
changelog: summary of changes for odp v1.13.0.0
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Mike Holmes <mike.holmes(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/CHANGELOG b/CHANGELOG
index 17afe44..72bf225 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,181 @@
+== OpenDataPlane (1.13.0.0)
+
+=== New Features
+
+==== APIs
+ODP v1.13.0.0 represents the initial preview of the Tiger Moth release series
+and as such introduces new APIs and extensions that will be built on as this
+release matures.
+
+===== Crypto Parameter Normalization
+Many ODP APIs take parameter structs of type `odp_xxx_param_t`. The crypto APIs,
+for historical reasons, failed to follow this convention, using instead structs
+of type `odp_crypto_params_t`, etc. These pluralized names are now deprecated
+and their singular forms are introduced as the preferred names for these
+structs. The old names are retained (for now) to ease migration, however
+applications should convert to the new forms at their convenience as these
+deprecated forms will be removed in the final Tiger Moth release.
+
+The changes introduced for this include:
+
+* `odp_crypto_op_params_t` => `odp_crypto_op_param_t`
+* `odp_crypto_session_params_t` => `odp_crypto_session_param_t`
+
+===== Crypto Decouple Key Length from Algorithm Specification
+To provide a more flexible programming for handling all possible
+key/digest/iv length combinations, the enums used for crypto specification
+are split to decouple lengths from algorithm names. The only exception
+is the SHA-2 family of hash routines, which have well-established naming
+conventions that incorporate digest lengths (SHA-224, SHA-256, etc.)
+
+Changes included with this restructure include:
+
+* The `odp_crypto_capability_t` structure returned by the
+`odp_crypto_capability()` API contains streamlined `odp_crypto_cipher_algos_t`
+and `odp_crypto_auth_algos_t` substructures.
+* A new `odp_crypto_cipher_capability()` API is added to return detailed
+information about available cipher capabilities.
+* A new `odp_crypto_auth_capability()` API is added to return detailed
+information about available authentication capabilities.
+
+===== `odp_crypto_session_param_init()` API
+For completeness the `odp_crypto_session_param_init()` API is provided to
+enable platform-independent initialization of the `odp_crypto_session_param_t`
+structure used as input to `odp_crypto_session_create()`.
+
+===== Bitfield and Byteorder Cleanup
+The `ODP_BITFIELD_ORDER` define is added to the ODP specification to parallel
+the existing `ODP_BYTEFIELD_ORDER` define. This will be set to the value
+`ODP_BIG_ENDIAN_BITFIELD` or `ODP_LITTLE_ENDIAN_BITFIELD`. This also addresses
+https://bugs.linaro.org/show_bug.cgi?id=2402[Bug 2402], however since fixing
+this required a small API change this was deferred until an API release
+boundary.
+
+===== Improved Name Argument Definitions in `odp_xxx_create()` Functions
+The use of name arguments to the various resource creation APIs has
+been standardized and documentation improved to clarify that unique
+names are not required and that these may be specified as NULL for
+anonymous resource creation. When non-unique resource names are used, it is
+unspecified which of these are returned by a corresponding lookup API.
+
+===== Pool Parameters for Packet Pools
+The `odp_pool_param_t` structure adds the new field `max_len` to be used in
+packet pools to advise the implementation of the maximum sized packet that
+the application will allocate with a single `odp_packet_alloc()` call. This
+may enable storage pool optimization.
+
+===== Packet Clarifications
+API documentation for `odp_packet_concat()` and `odp_packet_copy_from_pkt()`
+is clarified to specify that the source and destination packets supplied to
+these APIs should not refer to the same packet.
+
+===== Packet Allocation Length Clarification
+API documentation for `odp_packet_alloc()` is clarified to specify that
+the supplied length for requested packet allocation should be greater
+than zero.
+
+===== Random API Changes
+The APIs provided for working with random data have been revised. The third
+parameter to `odp_random_data()` is now of type `odp_random_kind_t`, which is
+an `enum` that is used to specify the quality of random data required. The
+kinds of random data defined are:
+
+`ODP_RANDOM_BASIC`::
+No specific quality guarantees. This is assumed to be pseudo-random data
+generated by software where speed of generation is more important than the
+quality of the results.This is the lowest kind of random.
+
+`ODP_RANDOM_CRYPTO`::
+Random data suitable for use in cryptographic operations.
+
+`ODP_RANDOM_TRUE`::
+True random data generated from a hardware entropy source. This is the
+highest kind of random.
+
+The `odp_random_max_kind()` API is provided that returns the highest kind of
+data available on this implementation. Requests for higher kinds than can be
+supplied will fail.
+
+For testing purposes it is often desirable to generate "random" sequences that
+are repeatable. To support this use case, the `odp_random_test_data()` API is
+introduced. This always returns BASIC random data but uses a user-supplied
+64-byte seed parameter that is update for each call and can be used to
+repeat the same sequence as needed.
+
+===== Shared Memory Improvements
+The `odp_shm_reserve()` API adds two new additional flags to support external
+memory.
+
+* `ODP_SHM_SINGLE_VA` guarantees that all ODP threads sharing this memory
+will see the block at the same virtual address regardless of whether threads
+are implemented as pthreads or processes and when `fork()` calls are made to
+create them.
+
+* `ODP_SHM_EXPORT` allows the memory block to be visible to other ODP
+instances. Other ODP instances can retrieve this block via the new
+`odp_shm_import()` API.
+
+===== Classification Clarifications
+The relationship between classification and queue configuration in the
+`odp_pktin_queue_param_t` structure is clarified to emphasize that
+classification subsumes queue-based I/O processing. This is an API
+documentation change only.
+
+=== Helpers
+New helper APIs are introduced for IP table lookup support for longest prefix
+matching as well as cuckoo hash tables. These are designed to provide analogs
+to functions available in DPDK to assist applications being ported to ODP.
+
+=== Performance Improvements
+The odp-linux reference implementation includes a number of improvements to
+make it more suitable for production use on platforms that rely on software
+implementations of key ODP APIs.
+
+==== Ring-based Pool Implementation
+Storage pools used for buffers and packets are now implemented via lockless
+ring structures that support burst mode read/writes to local caches for
+significantly improved multi-core scalability
+
+==== Buffer/Packet Header Optimizations
+The layout of the structs used to support buffers and packets has been
+optimized to reduce cache footprint and minimize path lengths in packet
+manipulation.
+
+==== Ordered Queue Improvements
+The implementation of ordered queues has been streamlined and made more
+scaleable in multi-core systems.
+
+==== Packet Segmentation Improvements
+The more advance segmentation capabilities present in the new ODP packet
+implementation are used to streamline the implementation of APIs like
+`odp_packet_concat()` and the head/tail extend/trunc APIs.
+
+=== Bug Fixes
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2405[Bug 2405]
+A number of "todos" were removed from the packet validation test suite.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2472[Bug 2472]
+The CPU affinity is now correctly read from the cpuset.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2496[Bug 2496]
+The PktIO validation test no longer uses invalid MAC addresses.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2512[Bug 2512]
+The TCP checksum is now properly calculated for generated packets.
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2798[Bug 2798]
+The odp-linux reference implementation makes use of the OpenSSL library to
+support the `odp_random_xxx()` APIs and some crypto operations. To support
+OpenSSL versions prior to 1.1.0, which are not thread safe, support is added
+for OpenSSL locking callbacks that use ODP ticketlocks to provide OpenSSL thread
+safety.
+
+=== Known Issues
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2812[Bug 2812]
+Make check fails on a single core VM in the process mode helper test.
+
== OpenDataPlane (1.12.0.0)
=== New Features
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 6 +-
2 files changed, 181 insertions(+), 3 deletions(-)
hooks/post-receive
--