Hi Ivan, VXLAN tunnel is usually associated with a BD (bridge domain) and always send ethernet packets as payload. So ethernet header should exist on packets received at the remote VXLAN tunnel end point. It is confusing why you stated remote side OVS does not see any L2 header.
On VPP side, as packet with DIP of 10.0.0.x is sent from vrf 1 via BVI into BD 13, an ARP request will be sent within BD 13 to request resolution for the IP 10.0.0.x. Once MAC is resolved (say MAC-D), then the packets as sent in BD 13 over VXLAN tunnel should have an Ethernet header with DMAC as MAC-D and SMAC as that of the BVI MAC. The most common way to tunnel IP4 payload into straight ip4-lookup is to use GRE tunnel. VXLAN is designed for L2 bridging, to send Ethernet packets to remote hosts with BDs in the same VXLAN segment. Regarding using VXLAN tunnel to send IP payload straight into ip4-lookup, you can look into VXLAN-GPE tunnel where there is mechanism to specify the VXLAN payload type via a protocol field in the VXLAN-GPE header to be ethernet, IP4, IP6, ... etc. Regards, John -----Original Message----- From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On Behalf Of Ivan Kelly Sent: Thursday, November 03, 2016 11:17 AM To: vpp-dev Subject: [vpp-dev] ip4-lookup to vxlan and vice versa Hi, I'm trying to send route packets in VPP into a vxlan tunnel. I have it working, but I'm wondering if there's some cleaner adjacency magic to make things nicer. Right now I have a bunch of packets, that I want tunneled somewhere else. These all have the destination ip 10.0.0.0/24. I created the vxlan tunnel and a loopback on a bridge domain. <snip> create vxlan tunnel src 192.168.0.1 dst 192.168.0.2 vni 139 loopback create mac de:ad:be:ef:00:05 set int state loop0 up set int l2 bridge vxlan_tunnel0 13 1 set int l2 bridge loop0 13 bvi set int ip table loop0 1 set int ip table vxlan_tunnel0 1 </snip> I want traffic on vrf 1 with dst ip 10.0.0.0/24 to go into the tunnel, so I added a route ip route add table 1 10.0.0.0/24 via loop0 This ended up encapsulating the packets, but only from the ip header onwards. OVS is catching the packet at the other end, and ethernet headers are expected even though the addressing is ignored, so I had to add a rewrite, which would just add a dummy eth header. ip route add table 1 10.0.0.0/24 via loop0 0xdeadbeef0003deadbeef00040800 I'm wondering is there any cleaner way basically say, route to this node, shift the buffer pointer back to the start of the ethernet header. Similarly, I'd like to have the vxlan tunnel dump straight into ip4-lookup, rather than having to go through l2 handling. Is this possible? This is on 16.09 btw, so no fib2. Regards Ivan _______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev _______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev