From patchwork Thu Jan 19 14:06:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Uvarov X-Patchwork-Id: 91906 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp292400qgi; Thu, 19 Jan 2017 06:07:19 -0800 (PST) X-Received: by 10.36.237.13 with SMTP id r13mr6867905ith.48.1484834838802; Thu, 19 Jan 2017 06:07:18 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id f32si4430282ioj.67.2017.01.19.06.07.18; Thu, 19 Jan 2017 06:07:18 -0800 (PST) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 2494A60F1D; Thu, 19 Jan 2017 14:07:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 20F6D60A7D; Thu, 19 Jan 2017 14:07:06 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 5A6B260CDF; Thu, 19 Jan 2017 14:07:04 +0000 (UTC) Received: from mail-lf0-f51.google.com (mail-lf0-f51.google.com [209.85.215.51]) by lists.linaro.org (Postfix) with ESMTPS id 754B6608D3 for ; Thu, 19 Jan 2017 14:07:02 +0000 (UTC) Received: by mail-lf0-f51.google.com with SMTP id v186so37326175lfa.1 for ; Thu, 19 Jan 2017 06:07:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:references:to:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=hkZPVddIiN/cBdJS4NdXuB8eVTJgKDWQ1zLCPXxiRow=; b=LL0WGEf1Szsg1flwiaF0yBGENE/QOufaCXiO7uCqwFQcalLZ4zFg2hDt2GdG+HYTeq wimv5Uc7GdpmAIjzZprlV72SFLuTGs/nWOo3VcDMdA6BAjEDx2hZGTbSkP9UMRRxKn1o jsjJh3IFmQgUOzmmVwNtNbkTW+/fffjWy9l/QIJZy7aDEDgoMJqD1cJJRD4Z1VHVq/3Q K9G2rIlaEn0M8wzVVTt+EQcRYrY4GJoR+rNLjZVL1uI1CQjzx4nUdiTQ67THM3FZiany 114h0k0TAyb2JJtP10YxQ35WIu9joweso41hlPA+9ZN50FCgeF6AgQdZIK65Pej8DQoj E2zA== X-Gm-Message-State: AIkVDXIWIz7MJkmAiMuQBNIZViqs+2IPO38qlFxdlW+wBw/HJe3wBcnHc0M8M8UCCX/rw1/GWts= X-Received: by 10.25.141.147 with SMTP id p141mr3166789lfd.147.1484834820822; Thu, 19 Jan 2017 06:07:00 -0800 (PST) Received: from [193.168.1.37] (ppp85-141-97-165.pppoe.mtu-net.ru. [85.141.97.165]) by smtp.gmail.com with ESMTPSA id n142sm831023lfb.34.2017.01.19.06.06.59 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Jan 2017 06:07:00 -0800 (PST) References: <20170113161404.20152-1-bill.fischofer@linaro.org> To: lng-odp-forward From: Maxim Uvarov X-Forwarded-Message-Id: <20170113161404.20152-1-bill.fischofer@linaro.org> Message-ID: <5880C7FF.8030302@linaro.org> Date: Thu, 19 Jan 2017 17:06:55 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <20170113161404.20152-1-bill.fischofer@linaro.org> Subject: [lng-odp] v1.13.0.0 was tagged X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" v1.13.0.0 was tagged. Changes were updated in corresponding commit. Best regards, Maxim. -------- Forwarded Message -------- Subject: [lng-odp] [NEXT PATCHv2] changelog: summary of changes for odp v1.13.0.0 Date: Fri, 13 Jan 2017 10:14:04 -0600 From: Bill Fischofer To: lng-odp@lists.linaro.org Signed-off-by: Bill Fischofer --- CHANGELOG | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) +==== 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 -- 2.9.3 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. +