On Fri, Dec 30, 2016 at 11:37 AM, Mickey Spiegel <mickeys....@gmail.com> wrote:
> > On Fri, Dec 30, 2016 at 7:46 AM, Numan Siddique <nusid...@redhat.com> > wrote: > >> On Fri, Dec 30, 2016 at 5:36 PM, Dong Jun <do...@dtdream.com> wrote: >> > > <snip> > > >> >> Hi Dong Jun, I am also facing the same issue on my setup. >> >> These are the findings of my investigation so far >> >> Looks like this issue is seen after the commit >> https://github.com/openvswitch/ovs/commit/f1a8bd06d58f2c5312 >> 622fbaeacbc6ce7576e347 >> >> which removes the usage of patch ports and uses the clone action instead. >> >> >> I reverted to the commit just before it and SNAT/DNAT is working as >> expected. >> >> In my case, the gateway router is hosted on node 1 and the I am trying to >> reach a VM (192.168.0.5) hosted on node 2 using the external ip >> (10.2.7.105) associated with it. I could see that the node 1 is sending >> the packet to node 2 through the geneve tunnel, but it is dropped by node >> 2 >> flows. >> >> Below is the tcpdump of the packet >> >> ************************** >> 19:39:44.709907 IP 182.16.0.16.60069 > 182.16.0.15.geneve: Geneve, Flags >> [none], vni 0x1: IP nusiddiq.blr.redhat.com > 192.168.0.5: ICMP echo >> request, id 13240, seq 1, length 64 >> *************************** >> >> Below is the tcpdump of the packet with the ovn-controller (without the >> above commit) in the working case >> >> ************************** >> 19:41:56.783570 IP 182.16.0.12.29778 > 182.16.0.15.geneve: Geneve, Flags >> [C], vni 0x1, options [8 bytes]: IP nusiddiq.blr.redhat.com > 192.168.0.5 >> : >> ICMP echo request, id 13308, seq 1, length 64 >> 19:41:56.784270 IP 182.16.0.15.14539 > 182.16.0.12.geneve: Geneve, Flags >> [C], vni 0xf, options [8 bytes]: IP 192.168.0.5 > nusiddiq.blr.redhat.com >> : >> ICMP echo reply, id 13308, seq 1, length 64 >> ************************** >> >> The options data has - 00030005 >> >> From the packet, I could see that the packet from node 1 is missing the >> geneve option fields which has inport and outport keys. >> > > I am facing the same issue running my distributed NAT patch set. > Between UNSNAT recirc and output to tunnel, a megaflow is installed that > is missing the geneve option fields. > > I verified that the table=32 openflow rule has the geneve option fields. > ofproto/trace shows geneve in the "Datapath actions" at the end, so no > problem with whatever ofproto/trace is using. > Throwing some logs in, I see that flow->metadata.present.map is 0 rather than 1 coming into tun_metadata_to_geneve_nlattr() in lib/tun-metadata.c, when the problem occurs. That is why the geneve option fields are missing. I have not yet figured out why flow->metadata.present.map is 0. It should be modified when tun_metadata_write() is called due to actions setting tunnel metadata values. I have not checked that yet. Mickey > Mickey > > > >> >> Thanks >> Numan >> >> >> > _______________________________________________ >> > dev mailing list >> > d...@openvswitch.org >> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > >> _______________________________________________ >> dev mailing list >> d...@openvswitch.org >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev