Ping. I'd like to get some review feedback on this patch series so we can
make progress on this item. I believe this reflects the basics of what we
discussed at LAS16. But if the APIs need to be adjusted then what sort of
adjustment is needed?

Thanks.

On Mon, Oct 10, 2016 at 10:45 PM, Bill Fischofer <bill.fischo...@linaro.org>
wrote:

> This patch adds support for packet references and splices following
> discussions at LAS16 on this subject.
>
> I've changed things around from Petri's original proposal by splitting this
> into two separate APIs: odp_packet_splice() and odp_packet_ref(), where the
> latter is just a splice of a zero-length header on to a base packet. The
> various odp packet manipulation APIs have also been enhanced to behave
> sensibly when presented with a spliced packet as input. Reference counts
> are
> used to enable odp_packet_free() to not free a packet until all splices
> based
> on it are also freed.
>
> Also added are two new APIs for working with spliced packets as these seem
> necessary for completeness:
>
> - odp_packet_is_a_splice() tells whether an input packet is a splice, and
> if
> so how many spliced packets it contains
>
> - odp_packet_is_spliced() tells whether any splices have been created on
> this
> packet, and if so how many.
>
> Note that there is no odp_packet_unsplice() API. To remove a splice from a
> base packet currently requres that the splice be freed via an
> odp_packet_free() call. We should discuss and decide if such an API is
> warranted for symmetry.
>
> Changes for v6:
> - Correct splice handling in odp_packet_offset(), odp_packet_trunc_head(),
> and odp_packet_trunc_tail()
>
> Changes for v5:
> - Struct layout and pathlength optimizations
> - Correct array addressing in validation test suite
>
> Changes for v4:
> - Add negative tests to validation test suite
> - Fix implementation bugs relating to negative tests
>
> Changes for v3:
> - Bug fixes (detected by the validation tests)
> - Addition of validation tests for these new APIs
> - Diagrams and User Guide documentation for these new APIs
>
> Changes for v2:
> - Bug fixes
> - Enhance ODP packet segment APIs to behave properly with spliced packets
>
> Bill Fischofer (5):
>   api: packet: add support for packet splices and references
>   linux-generic: packet: implement splice/reference apis
>   validation: packet: add packet splice/reference tests
>   doc: images: add images for packet splice/reference documentation
>   doc: userguide: add user documentation for packet splice/reference
>     APIs
>
>  doc/images/doublesplice.svg                        |  67 ++++++
>  doc/images/pktref.svg                              |  49 ++++
>  doc/images/splice.svg                              |  64 ++++++
>  doc/users-guide/users-guide-packet.adoc            | 118 ++++++++++
>  include/odp/api/spec/packet.h                      | 103 +++++++++
>  .../linux-generic/include/odp_packet_internal.h    |  54 ++++-
>  platform/linux-generic/odp_packet.c                | 246
> ++++++++++++++++++---
>  test/common_plat/validation/api/packet/packet.c    | 176 +++++++++++++++
>  test/common_plat/validation/api/packet/packet.h    |   1 +
>  9 files changed, 840 insertions(+), 38 deletions(-)
>  create mode 100644 doc/images/doublesplice.svg
>  create mode 100644 doc/images/pktref.svg
>  create mode 100644 doc/images/splice.svg
>
> --
> 2.7.4
>
>

Reply via email to