This series adds support for zero-copy packet references in a staged manner that should be easier to review and test.
The first three parts do some restructuring needed to support more general packet manipulation. Part 4 adds the new packet hdr fields needed to support zero-copy references while Parts 5 and 6 add the maintenance of these fields to existing packet manipulation routines, and Part 7 adds reference support to the odp_packet_unshared_len() implementation. Part 8 updates the various segment manipulation routines to support this new packet structure, while Part 9 provides the general support for the packet free routines to decrement reference counts and only free segments when their reference counts decrement to zero. Part 10 adds reference support for the various head/tail extension and trunction routines. Finally, Part 11 enables the creation of zero-copy references that utilize the machinery found in the previous parts. Bill Fischofer (11): linux-generic: pool: restructure pool routines linux-generic: packet: move pull_tail to packet mainline for consistency linux-generic: packet: restructure inline routines to use macros linux-generic: packet: add packet fields needed for references linux-generic: packet: add routines for manipulating reference counts linux-generic: packet: add initializations for new hdr fields linux-generic: packet: unshared_len maintenance linux-generic: packet: segment manipulation with references linux-generic: packet: restructure free routines for references linux-generic: packet: add reference support for head/tail manipulation linux-generic: packet: enable zero-copy reference creation .../include/odp/api/plat/packet_flag_inlines.h | 7 +- .../include/odp/api/plat/packet_inlines.h | 77 +-- .../include/odp/api/plat/packet_inlines_api.h | 16 - .../include/odp/api/plat/packet_types.h | 8 + .../linux-generic/include/odp_packet_internal.h | 90 ++- platform/linux-generic/include/odp_pool_internal.h | 33 +- platform/linux-generic/odp_packet.c | 650 ++++++++++++++++----- platform/linux-generic/odp_pool.c | 47 +- 8 files changed, 652 insertions(+), 276 deletions(-) -- 2.5.0