Regards
_Sugesh


> -----Original Message-----
> From: Kavanagh, Mark B
> Sent: Tuesday, December 12, 2017 2:49 PM
> To: Chandran, Sugesh <[email protected]>; [email protected];
> [email protected]
> Cc: Stokes, Ian <[email protected]>; Loftus, Ciara 
> <[email protected]>;
> [email protected]
> Subject: RE: [ovs-dev][RFC PATCH V4 6/9] dp-packet: copy mbuf info for packet
> copy
> 
> >From: Kavanagh, Mark B
> >Sent: Tuesday, December 12, 2017 1:18 PM
> >To: Chandran, Sugesh <[email protected]>; [email protected];
> >[email protected]
> >Cc: Stokes, Ian <[email protected]>; Loftus, Ciara
> ><[email protected]>; [email protected]
> >Subject: RE: [ovs-dev][RFC PATCH V4 6/9] dp-packet: copy mbuf info for
> >packet copy
> >
> >
> >
> >>-----Original Message-----
> >>From: Chandran, Sugesh
> >>Sent: Friday, December 8, 2017 6:01 PM
> >>To: Kavanagh, Mark B <[email protected]>;
> [email protected];
> >>[email protected]
> >>Cc: Stokes, Ian <[email protected]>; Loftus, Ciara
> >><[email protected]>; [email protected]
> >>Subject: RE: [ovs-dev][RFC PATCH V4 6/9] dp-packet: copy mbuf info for
> >>packet copy
> >>
> >>
> >>
> >>Regards
> >>_Sugesh
> >>
> >>
> >>> -----Original Message-----
> >>> From: Kavanagh, Mark B
> >>> Sent: Friday, December 8, 2017 12:02 PM
> >>> To: [email protected]; [email protected]
> >>> Cc: Stokes, Ian <[email protected]>; Loftus, Ciara
> >><[email protected]>;
> >>> [email protected]; Chandran, Sugesh
> >>> <[email protected]>; Kavanagh, Mark B
> >>> <[email protected]>
> >>> Subject: [ovs-dev][RFC PATCH V4 6/9] dp-packet: copy mbuf info for
> >>> packet copy
> >>>
> >>> From: Michael Qiu <[email protected]>
> >>>
> >>> Currently, when doing packet copy, lots of DPDK mbuf's info will be
> >>> missed,
> >>like
> >>> packet type, ol_flags, etc.
> >>> Those information is very important for DPDK to do packets processing.
> >>>
> >>> Co-authored-by: Mark Kavanagh <[email protected]>
> >>> [[email protected] rebased]
> >>>
> >>> Signed-off-by: Michael Qiu <[email protected]>
> >>> Signed-off-by: Mark Kavanagh <[email protected]>
> >>> ---
> >>>  lib/dp-packet.c   | 3 +++
> >>>  lib/netdev-dpdk.c | 4 ++++
> >>>  2 files changed, 7 insertions(+)
> >>>
> >>> diff --git a/lib/dp-packet.c b/lib/dp-packet.c index
> >>> ad71486..d628037
> >100644
> >>> --- a/lib/dp-packet.c
> >>> +++ b/lib/dp-packet.c
> >>> @@ -178,6 +178,9 @@ dp_packet_clone_with_headroom(const struct
> >>> dp_packet *buffer, size_t headroom)
> >>>
> >>>  #ifdef DPDK_NETDEV
> >>>      new_buffer->mbuf.ol_flags = buffer->mbuf.ol_flags;
> >>> +    new_buffer->mbuf.tx_offload = buffer->mbuf.tx_offload;
> >>> +    new_buffer->mbuf.packet_type = buffer->mbuf.packet_type;
> >>> +    new_buffer->mbuf.nb_segs = buffer->mbuf.nb_segs;
> >>[Sugesh] This function get lot many #if, #else with DPDK. It must need
> >>a cleanup.
> >>What do you think?
> >
> >During implementation, I had thought about separating out the code into
> >two separate dp_packet_clone_headroom() functions: DPDK-based, and
> >non-DPDK-based, within compiler guards. This would improve readability,
> >but at the expense of repeated code; I'll do this in the next version, and 
> >see
> how it is received.
> >
> >>Also will it would better if we keep all the mbuf field copy into a
> >>different function, something like copy_dpdk_mbuf_flags(..)?
> >
> >Do you think that is still warranted if there are two separate
> >dp_packet_clone_with_headroom() functions, as previously described?
> >
> 
> Edit: I'll add a function for this, since the same code is repeated in
> dpdk_do_tx_copy().
[Sugesh] sure,thank you.

> -Mark
> 
> >Thanks,
> >Mark
> >
> >>
> >>>  #else
> >>>      new_buffer->rss_hash_valid = buffer->rss_hash_valid;  #endif
> >>> diff --
> >git
> >>> a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 4167497..8a81690
> >>> 100644
> >>> --- a/lib/netdev-dpdk.c
> >>> +++ b/lib/netdev-dpdk.c
> >>> @@ -1866,6 +1866,10 @@ dpdk_do_tx_copy(struct netdev *netdev, int
> >>> qid, struct dp_packet_batch *batch)
> >>>          memcpy(rte_pktmbuf_mtod(pkts[txcnt], void *),
> >>>                 dp_packet_data(packet), size);
> >>>          dp_packet_set_size((struct dp_packet *)pkts[txcnt], size);
> >>> +        pkts[txcnt]->nb_segs = packet->mbuf.nb_segs;
> >>> +        pkts[txcnt]->ol_flags = packet->mbuf.ol_flags;
> >>> +        pkts[txcnt]->packet_type = packet->mbuf.packet_type;
> >>> +        pkts[txcnt]->tx_offload = packet->mbuf.tx_offload;
> >>>
> >>>          txcnt++;
> >>>      }
> >>> --
> >>> 1.9.3

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to