I've resent the last two patches with better subject lines.

Bill

On Tue, Dec 16, 2014 at 5:34 PM, Anders Roxell <[email protected]>
wrote:
>
> An earlier email described the a template for the short description:
> (linux-generic|api|doc|validation|example): file/func: short desc.
>
> This is the long description!
>
> Signed-off-by: ...
> "---"
>
> say whatever you like down here that shouldn't be in the commit message.
>
>
> Cheers,
> Anders
>
> On 16 December 2014 at 23:50, Bill Fischofer <[email protected]>
> wrote:
> > Signed-off-by: Bill Fischofer <[email protected]>
> > ---
> > v2 Ensures that parser metadata is copied if we're not reparsing
> >
> >  platform/linux-generic/include/odp_packet_internal.h | 20
> ++++++++++++++++++++
> >  platform/linux-generic/odp_packet.c                  | 12 ++++++++++--
> >  2 files changed, 30 insertions(+), 2 deletions(-)
> >
> > diff --git a/platform/linux-generic/include/odp_packet_internal.h
> b/platform/linux-generic/include/odp_packet_internal.h
> > index 068f969..54a12b5 100644
> > --- a/platform/linux-generic/include/odp_packet_internal.h
> > +++ b/platform/linux-generic/include/odp_packet_internal.h
> > @@ -187,6 +187,26 @@ static inline void packet_init(pool_entry_t *pool,
> >                 (pool->s.headroom + size);
> >  }
> >
> > +static inline void copy_packet_parser_metadata(odp_packet_hdr_t
> *src_hdr,
> > +                                              odp_packet_hdr_t *dst_hdr)
> > +{
> > +       dst_hdr->input_flags    = src_hdr->input_flags;
> > +       dst_hdr->error_flags    = src_hdr->error_flags;
> > +       dst_hdr->output_flags   = src_hdr->output_flags;
> > +
> > +       dst_hdr->l2_offset      = src_hdr->l2_offset;
> > +       dst_hdr->l3_offset      = src_hdr->l3_offset;
> > +       dst_hdr->l4_offset      = src_hdr->l4_offset;
> > +       dst_hdr->payload_offset = src_hdr->payload_offset;
> > +
> > +       dst_hdr->vlan_s_tag     = src_hdr->vlan_s_tag;
> > +       dst_hdr->vlan_c_tag     = src_hdr->vlan_c_tag;
> > +       dst_hdr->l3_protocol    = src_hdr->l3_protocol;
> > +       dst_hdr->l3_len         = src_hdr->l3_len;
> > +       dst_hdr->l4_protocol    = src_hdr->l4_protocol;
> > +       dst_hdr->l4_len         = src_hdr->l4_len;
> > +}
> > +
> >  static inline void *packet_map(odp_packet_hdr_t *pkt_hdr,
> >                                uint32_t offset, uint32_t *seglen)
> >  {
> > diff --git a/platform/linux-generic/odp_packet.c
> b/platform/linux-generic/odp_packet.c
> > index 65e6288..43a9419 100644
> > --- a/platform/linux-generic/odp_packet.c
> > +++ b/platform/linux-generic/odp_packet.c
> > @@ -396,12 +396,16 @@ odp_packet_t odp_packet_add_data(odp_packet_t pkt,
> uint32_t offset,
> >                         newpkt = ODP_PACKET_INVALID;
> >                 } else {
> >                         odp_packet_hdr_t *new_hdr =
> odp_packet_hdr(newpkt);
> > +                       new_hdr->input = pkt_hdr->input;
> >                         new_hdr->buf_hdr.buf_u64 =
> pkt_hdr->buf_hdr.buf_u64;
> >                         odp_atomic_store_u32(
> >                                 &new_hdr->buf_hdr.ref_count,
> >                                 odp_atomic_load_u32(
> >                                         &pkt_hdr->buf_hdr.ref_count));
> > -                       _odp_packet_parse(newpkt);
> > +                       if (offset < pkt_hdr->payload_offset)
> > +                               _odp_packet_parse(newpkt);
> > +                       else
> > +                               copy_packet_parser_metadata(pkt_hdr,
> new_hdr);
> >                         odp_packet_free(pkt);
> >                 }
> >         }
> > @@ -431,12 +435,16 @@ odp_packet_t odp_packet_rem_data(odp_packet_t pkt,
> uint32_t offset,
> >                         newpkt = ODP_PACKET_INVALID;
> >                 } else {
> >                         odp_packet_hdr_t *new_hdr =
> odp_packet_hdr(newpkt);
> > +                       new_hdr->input = pkt_hdr->input;
> >                         new_hdr->buf_hdr.buf_u64 =
> pkt_hdr->buf_hdr.buf_u64;
> >                         odp_atomic_store_u32(
> >                                 &new_hdr->buf_hdr.ref_count,
> >                                 odp_atomic_load_u32(
> >                                         &pkt_hdr->buf_hdr.ref_count));
> > -                       _odp_packet_parse(newpkt);
> > +                       if (offset < pkt_hdr->payload_offset)
> > +                               _odp_packet_parse(newpkt);
> > +                       else
> > +                               copy_packet_parser_metadata(pkt_hdr,
> new_hdr);
> >                         odp_packet_free(pkt);
> >                 }
> >         }
> > --
> > 1.8.3.2
> >
> >
> > _______________________________________________
> > lng-odp mailing list
> > [email protected]
> > http://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to