On Wed, May 4, 2016 at 4:35 PM, Pravin B Shelar <pshe...@ovn.org> wrote: > diff --git a/datapath/flow_netlink.c b/datapath/flow_netlink.c > index 6ffcc53..0003f89 100644 > --- a/datapath/flow_netlink.c > +++ b/datapath/flow_netlink.c > static int metadata_from_nlattrs(struct net *net, struct sw_flow_match > *match, > @@ -2390,10 +2389,7 @@ static int set_action_to_attr(const struct nlattr *a, > struct sk_buff *skb) > if (!start) > return -EMSGSIZE; > > - err = ipv4_tun_to_nlattr(skb, &tun_info->key, > - tun_info->options_len ? > - ip_tunnel_info_opts(tun_info) : > NULL, > - tun_info->options_len); > + err = ovs_nla_put_tunnel_info(skb, tun_info); > if (err) > return err; > nla_nest_end(skb, start);
I think this patch is primarily a backport of fc4099f1 ("openvswitch: Fix egress tunnel info.") - which would be good to note in the commit message. However, in doing so, it introduces the problem addressed by e905eabc ("openvswitch: correct encoding of set tunnel action attributes"). It would be good to include that as a patch in this series. > diff --git a/datapath/linux/compat/geneve.c b/datapath/linux/compat/geneve.c > index 0399de7..f38d4a3 100644 > --- a/datapath/linux/compat/geneve.c > +++ b/datapath/linux/compat/geneve.c There were some other changes to the Geneve routing code that don't appear here. They are included in the last patch but since they were associated with this original upstream change, it seems more appropriate here. > static void ipgre_tap_setup(struct net_device *dev) > diff --git a/datapath/linux/compat/lisp.c b/datapath/linux/compat/lisp.c > index f1f50ae..0a92dca 100644 > --- a/datapath/linux/compat/lisp.c > +++ b/datapath/linux/compat/lisp.c > +static int egress_ipv4_tun_info(struct net_device *dev, struct sk_buff *skb, > + struct ip_tunnel_info *info, > + __be16 sport, __be16 dport) > +{ > + struct lisp_dev *lisp = netdev_priv(dev); > + struct rtable *rt; > + struct flowi4 fl4; > + > + memset(&fl4, 0, sizeof(fl4)); > + fl4.flowi4_tos = RT_TOS(info->key.tos); > + fl4.flowi4_mark = skb->mark; > + fl4.flowi4_proto = IPPROTO_UDP; > + fl4.daddr = info->key.u.ipv4.dst; > + > + rt = ip_route_output_key(lisp->net, &fl4); > + if (IS_ERR(rt)) > + return PTR_ERR(rt); > + ip_rt_put(rt); > + > + info->key.u.ipv4.src = fl4.saddr; > + info->key.tp_src = sport; > + info->key.tp_dst = dport; > + return 0; > +} Was this supposed to be used by the xmit function as well, like you did with STT? When comparing this to STT, I also noticed that it seems STT isn't reporting the L4 ports. > diff --git a/datapath/vport.c b/datapath/vport.c > index 44b9dfb..c789a40 100644 > --- a/datapath/vport.c > +++ b/datapath/vport.c > @@ -41,6 +41,7 @@ > #include "gso.h" > #include "vport.h" > #include "vport-internal_dev.h" > +#include "vport-netdev.h" Extra header inclusion? (It's not upstream either.) _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev