Regards
_Sugesh


> -----Original Message-----
> From: Kavanagh, Mark B
> Sent: Friday, December 8, 2017 12:02 PM
> To: d...@openvswitch.org; qiud...@chinac.com
> Cc: Stokes, Ian <ian.sto...@intel.com>; Loftus, Ciara 
> <ciara.lof...@intel.com>;
> santosh.shu...@caviumnetworks.com; Chandran, Sugesh
> <sugesh.chand...@intel.com>; Kavanagh, Mark B
> <mark.b.kavan...@intel.com>
> Subject: [ovs-dev][RFC PATCH V4 5/9] dp-packet: init specific mbuf fields to 0
> 
> dp_packets are created using xmalloc(); in the case of OvS-DPDK, it's possible
> the the resultant mbuf portion of the dp_packet contains random data. For
> some mbuf fields, specifically those related to multi-segment mbufs and/or
> offload features, random values may cause unexpected behaviour, should the
> dp_packet's contents be later copied to a DPDK mbuf. It is critical 
> therefore, that
> these fields should be initialized to 0.
> 
> This patch ensures that the following mbuf fields are initialized to 0, on 
> creation
> of a new dp_packet:
>    - ol_flags
>    - nb_segs
>    - tx_offload
>    - packet_type
> 
> Adapted from an idea by Michael Qiu <qiud...@chinac.com>:
> https://patchwork.ozlabs.org/patch/777570/
> 
> Signed-off-by: Mark Kavanagh <mark.b.kavan...@intel.com>
> ---
>  lib/dp-packet.h | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/dp-packet.h b/lib/dp-packet.h index 7ac0404..d5e68e2 100644
> --- a/lib/dp-packet.h
> +++ b/lib/dp-packet.h
> @@ -624,13 +624,13 @@ dp_packet_mbuf_rss_flag_reset(struct dp_packet *p
> OVS_UNUSED)
> 
>  /* This initialization is needed for packets that do not come
>   * from DPDK interfaces, when vswitchd is built with --with-dpdk.
> - * The DPDK rte library will still otherwise manage the mbuf.
> - * We only need to initialize the mbuf ol_flags. */
> + * The DPDK rte library will still otherwise manage the mbuf. */
>  static inline void
>  dp_packet_mbuf_init(struct dp_packet *p OVS_UNUSED)  {  #ifdef
> DPDK_NETDEV
> -    p->mbuf.ol_flags = 0;
> +    struct rte_mbuf *mbuf = &(p->mbuf);
> +    mbuf->ol_flags = mbuf->nb_segs = mbuf->tx_offload =
> + mbuf->packet_type = 0;
[Sugesh] Just to understand bit more, the nb_segs and the packet_type are set 
by the NIC on a mbuf before reporting to the OVS. Can you please provide the 
details on what issues you are exactly facing when it not set.
>  #endif
>  }
> 
> --
> 1.9.3

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to