From patchwork Fri Feb 24 23:33:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Fischofer X-Patchwork-Id: 94507 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp10536qgi; Fri, 24 Feb 2017 15:33:24 -0800 (PST) X-Received: by 10.55.144.6 with SMTP id s6mr5901029qkd.140.1487979204876; Fri, 24 Feb 2017 15:33:24 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id f32si5536291qtd.320.2017.02.24.15.33.24; Fri, 24 Feb 2017 15:33:24 -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 40B9662D53; Fri, 24 Feb 2017 23:33:24 +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 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 A4E6460ED6; Fri, 24 Feb 2017 23:33:17 +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 380AB62C59; Fri, 24 Feb 2017 23:33:15 +0000 (UTC) Received: from mail-oi0-f51.google.com (mail-oi0-f51.google.com [209.85.218.51]) by lists.linaro.org (Postfix) with ESMTPS id 7441660E8C for ; Fri, 24 Feb 2017 23:33:13 +0000 (UTC) Received: by mail-oi0-f51.google.com with SMTP id 2so18057405oif.0 for ; Fri, 24 Feb 2017 15:33:13 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=0q2BJvnGG1winmlfjVYJ1UFio1aNn1kJKI7KgFaeoCQ=; b=hJ4GT/f5X+jtEev8oYflM1gfVQdCBCYOJ44EAx3ZJXPf0zjS80bo7vvrWu+yBcy0X+ z6Ch0SWgaW7uFPOa2hE4F+D1dFLkzS443L4FrSZSDHqRpxMR5FhW310eeKyjjffGYVNm wHQdDY14/01oAC5TX6NyljLXgGllx8HJWfNd6pbhMYWs5mcgFetKWhjCByvVTLO1Xdsw RG4noMzASd0FzGDF20/s9rNVApO8d5rGcwDSAE1J5mCfHdl+usJh4tx5bluqp/h36/I8 Cmm/Bemvtrg5UYKV4OSOoPNs2Ecl7YB7pdPGJxHkZ0fZ/4WhPp+RuipmxTtqL2J4cVwx 2pyA== X-Gm-Message-State: AMke39kI70Rn9zUxGaV9RsS+6K/b2Jj5XKTcVi9jUG6S2Usb4NmjI1uqwPoSAwit/PhxiHAq5ZY= X-Received: by 10.202.240.11 with SMTP id o11mr2756741oih.198.1487979192599; Fri, 24 Feb 2017 15:33:12 -0800 (PST) Received: from localhost.localdomain (cpe-70-121-83-241.austin.res.rr.com. [70.121.83.241]) by smtp.gmail.com with ESMTPSA id k63sm3384724oia.35.2017.02.24.15.33.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Feb 2017 15:33:11 -0800 (PST) From: Bill Fischofer To: lng-odp@lists.linaro.org Date: Fri, 24 Feb 2017 17:33:08 -0600 Message-Id: <20170224233308.19853-1-bill.fischofer@linaro.org> X-Mailer: git-send-email 2.12.0.rc1 Subject: [lng-odp] [NEXT PATCH] changelog: summary of changes for odp v1.14.0.0 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" Signed-off-by: Bill Fischofer --- CHANGELOG | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) -- 2.12.0.rc1 diff --git a/CHANGELOG b/CHANGELOG index 72bf2253..c8ed488c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,132 @@ +== OpenDataPlane (1.14.0.0) +=== New Features +==== APIs +ODP v1.14.0.0 represents another preview of the Tiger Moth release series and +introduces new APIs and extensions. + +===== Packet References +Packet references are a lightweight mechanism to allow applications to create +and manipulate different "views" of packets. These views consist of shared +bytes common to all references created on the same `odp_packet_t`, possibly +prefixed with unique headers that are private to each reference. Five new APIs +are introduced to enable this feature: + +`odp_packet_ref_static()`:: +Static references allow a single packet to have multiple "aliases", all of +which must be treated as read only. This is useful, for example, to retain +a reference to a packet being transmitted to support retransmit processing, +since the actual storage represented by a packet is not released until all +references to it have been freed via `odp_packet_free()` calls. + +`odp_packet_ref()`:: +Dynamic references differ from static references is that they permit the +individual `odp_packet_t` handles to have unique prefixes created via +`odp_packet_push_head()` or `odp_packet_extend_head()` calls. This can be +used, for example, to support multicasting packets to different destinations +by creating packets that consist of unique headers followed by a common shared +payload. + +`odp_packet_ref_pkt()`:: +Similar to `odp_packet_ref()`, but creates a dynamic reference by prepending a +preexisting header onto another packet. + +`odp_packet_has_ref()`:: +Returns a boolean indicator of whether a given `odp_packet_t` has other +references that share bytes with this packet. + +`odp_packet_unshared_len()`:: +Returns the number of unshared bytes accessible through a given `odp_packet_t` +handle. These are the only bytes that should be changed. All other bytes +in the packet should be treated as read only as they are shared with other +`odp_packet_t` handles. + +Note that while the packet reference APIs and associated validation tests are +present in this release, the `odp-linux` reference implementation currently +implements references via packet copying. A zero-copy implementation of packet +references is planned to be part of the ODP v1.15.0.0 release. + +==== ABI Specification +ODP has supported an Application Binary Interface (ABI) that permits +applications to be generated that are binary portable between select ODP +implementations. This is now formalized with the addition of structures that +permit ABI specifications to be defined that are shared between ODP +implementations. ODP provides a default ABI specification that is the same as +was provided before. This change means that additional ABIs may be defined +that are optimized to collections of platforms that share an Instruction Set +Architecture (ISA) and subscribe to them. + +ABI specifications live in the `include/odp/arch/...` directory. + +==== Instance Query (iQuery) Scheduler +Adding to the range of scheduler implementations supported by `odp-linux`, a +new scheduler, the instance query scheduler, is available by specifying +`--enable-schedule-iquery` at `configure` time. + +This scheduler uses sparse bitmaps and offers scalability advantages when +dealing with large numbers of schedule queues. It otherwise offers performance +comparable to the default ODP scheduler implementation. + +=== Helpers +Helpers have been reorganized to provide better independence from odp-linux +and to make them more useful with other ODP implementations. These +reorganizations are functionally transparent to ODP users but should +simplifying packaging and porting to other ODP implementations. This includes +adding the "umbrella" include file `odph_api.h` which can be used to include +all helper API definitions in an application. + +=== Classifier Improvements +The `odp-linux` reference implementation now supports Pattern Matching Rules +(PMRs) for IPv6 addresses, inner and outer VLAN IDs, and inner and outer +Ethernet types. + +=== Performance + +==== Improved inlining for embedded applications +The `odp-linux` reference implementation now offers improved inlining support +for ODP APIs for applications compiled against ODP configured with the +`--enable-abi-compat=no` option, meaning they wish to forego binary +compatibility in exchange for improved performance. These applications remain +source portable to other ODP implementations. + +==== Native `odp_cpu_pause()` for ARM processors +A native implementation of the `odp_cpu_pause()` API has been added for ARMv7 +and ARMv8 processors. + +=== Bug Fixes + +==== https://bugs.linaro.org/show_bug.cgi?id=2806[Bug 2806] +The `hello.c` application can now run properly if Core 0 is not +available (any available core will be used). + +==== https://bugs.linaro.org/show_bug.cgi?id=2827[Bug 2827] +Provide proper return code checking within _ishm.c + +==== https://bugs.linaro.org/show_bug.cgi?id=2829[Bug 2829] +Remove unused variables in iplookuptable helper routine. + +==== https://bugs.linaro.org/show_bug.cgi?id=2830[Bug 2830] +Avoid memory leaks on error paths in the cuckoo table helper functions. + +==== https://bugs.linaro.org/show_bug.cgi?id=2834[Bug 2834] +Fixes a race condition in shared memory allocation. + +==== https://bugs.linaro.org/show_bug.cgi?id=2842[Bug 2842] +Provide proper fallback for shared memory when hugepages are not available. + +==== https://bugs.linaro.org/show_bug.cgi?id=2862[Bug 2862] +Avoid null pointer dereference in the iplookuptable helper routine. + +==== https://bugs.linaro.org/show_bug.cgi?id=2865[Bug 2865] +Missing doxygen documentation for helper table functions are added. + +=== Known Issues + +==== https://bugs.linaro.org/show_bug.cgi?id=2852[Bug 2852] +C++ programs fail to compile if they attempt to include the ODP helper APIs. + +==== https://bugs.linaro.org/show_bug.cgi?id=2895[Bug 2895] +The `odp_crypto_operation()` routine does not work with multi-segment packets. + == OpenDataPlane (1.13.0.0) === New Features