On Thu, Jul 7, 2016 at 5:23 PM, Pravin B Shelar <[email protected]> wrote: > diff --git a/datapath/linux/compat/dev-openvswitch.c > b/datapath/linux/compat/dev-openvswitch.c > index 0d2088b..544c5e1 100644 > --- a/datapath/linux/compat/dev-openvswitch.c > +++ b/datapath/linux/compat/dev-openvswitch.c > +#ifndef HAVE_NDO_FILL_METADATA_DST > +int ovs_dev_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb) > +{ > + struct ip_tunnel_info *info; > + struct vport *vport; > + > + vport = ovs_netdev_get_vport(dev); > + if (!vport) > + return -EINVAL; > + > + if (!vport->ops->fill_metadata_dst) > + return -EINVAL; > + > + info = skb_tunnel_info(skb);
I just noticed that the upstream version of this function makes a copy of the ip_tunnel_info but this just accesses it, which will presumably result in writing directly on the original in the set tunnel action. That's not good but I guess is OK if the fields are essentially garbage to start off with (like the UDP source port). However, it seems like there will be issues if multiple sample actions run concurrently. _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
