Message ID | 20170226180427.28547-1-bill.fischofer@linaro.org |
---|---|
State | Accepted |
Commit | 919d6924c532d46a52e467d481ee30b6b8bd78ec |
Headers | show |
v1.14.0.0 passed all CI tests and was tagged. Detailed changelog is available in corresponding changelog commit which is bellow in this email. Thank you, Maxim. On 02/26/17 21:04, Bill Fischofer wrote: > Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> > --- > CHANGELOG | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 144 insertions(+) > > diff --git a/CHANGELOG b/CHANGELOG > index 72bf2253..a550a723 100644 > --- a/CHANGELOG > +++ b/CHANGELOG > @@ -1,3 +1,147 @@ > +== 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. > + > +==== New Microbenchmark > +The `odp_packet_bench` microbenchmark application has been added to the > +test performance directory to allow implementations to measure and calibrate > +the performance of individual ODP packet APIs. > + > +==== Ordered PktIO Test > +The `odp_pktio_ordered` application has been added to the test performance > +directory to provide stress-testing of packet ordering features of ODP. > + > +=== Documentation > +In addition to expanded documentation related to the new packet reference APIs, > +a section on applicatin portability has been added that discusses the types > +of portability offered by ODP and the tradeoffs that application writers should > +consider when using ODP. > + > +=== 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 >
Hi, A month has passed. I'd suggest that we tag 1.15 and include parser configuration API changes from api-next. Other things in api-next seems to lack implementation still. Crypto sha1/sha512 is the next candidate to get into 1.15. -Petri > -----Original Message----- > From: lng-odp [mailto:lng-odp-bounces@lists.linaro.org] On Behalf Of Maxim > Uvarov > Sent: Wednesday, March 01, 2017 9:05 PM > To: lng-odp@lists.linaro.org > Subject: [lng-odp] v1.14.0.0 was tagged! > > v1.14.0.0 passed all CI tests and was tagged. > > Detailed changelog is available in corresponding changelog commit which > is bellow in this email. > > Thank you, > Maxim. >
diff --git a/CHANGELOG b/CHANGELOG index 72bf2253..a550a723 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,147 @@ +== 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. + +==== New Microbenchmark +The `odp_packet_bench` microbenchmark application has been added to the +test performance directory to allow implementations to measure and calibrate +the performance of individual ODP packet APIs. + +==== Ordered PktIO Test +The `odp_pktio_ordered` application has been added to the test performance +directory to provide stress-testing of packet ordering features of ODP. + +=== Documentation +In addition to expanded documentation related to the new packet reference APIs, +a section on applicatin portability has been added that discusses the types +of portability offered by ODP and the tradeoffs that application writers should +consider when using ODP. + +=== 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
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> --- CHANGELOG | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) -- 2.12.0.rc1