Hello I'm having a somewhat peculiar routing issue that I'm not sure how to move forward with. I'm also not sure if it's an issue with our environment or if there's something that needs to be done in VPP that I've missed.
We have a test setup with three servers directly connected to each other in a ring: A | \ | C | / B A runs a packet generator on one interface and receives on the other. Packets should be routed through VPP instances running in virtual machines on B and C. Each pair of connected NIC's are on separate subnets. We are using the DPDK plugin with the uio_pci_generic drivers for virtio at the moment. On the hypervisor hosts we use KVM and OpenVSwitch, which bridges the physical networks with Openstack provider networks. The configuration is such that A routes packets to its "NIC 2" via B, and B has in turn a route to that via C. And then the other way around for "NIC 1". B and C can ping each other successfully, so that connection works fine. But every time a packet is actually routed by VPP it seems to be silently dropped somewhere. For example, trying to ping the second NIC on A from the first one, the packet is routed through B. From the traces on B I can see that the packet is rewritten for the route: 02:35:50:471696: ip4-rewrite tx_sw_if_index 2 dpo-idx 2 : ipv4 via 10.0.20.107 GigabitEthernet0/5/0: fa163e6287f4fa163eb37d5a0800 flow hash: 0x00000000 00000000: fa163e6287f4fa163eb37d5a080045000054937640003f016b690a001e660a00 00000020: 0a6408002a61775e0004bb06cd59000000000f090000000000001011 02:35:50:471696: GigabitEthernet0/5/0-output GigabitEthernet0/5/0 IP4: fa:16:3e:b3:7d:5a -> fa:16:3e:62:87:f4 ICMP: 10.0.30.102 -> 10.0.10.100 tos 0x00, ttl 63, length 84, checksum 0x6b69 fragment id 0x9376, flags DONT_FRAGMENT ICMP echo_request checksum 0x2a61 02:35:50:471697: GigabitEthernet0/5/0-tx GigabitEthernet0/5/0 tx queue 0 buffer 0x6cc9: current data 0, length 98, free-list 0, clone-count 0, totlen-nifb 0, trace 0x3 IP4: fa:16:3e:b3:7d:5a -> fa:16:3e:62:87:f4 ICMP: 10.0.30.102 -> 10.0.10.100 tos 0x00, ttl 63, length 84, checksum 0x6b69 fragment id 0x9376, flags DONT_FRAGMENT ICMP echo_request checksum 0x2a61 ... but it never reaches C. tcpdump on the host interface is completely silent so it seems like the packet either never leaves the VM or is discarded by OVS somehow (not sure if that's something that can happen though). But since ping between B and C works and those traces look about the same, I don't understand why that works but not the routed packet. What do you think? Can this be an issue with our VPP setup/configuration or is it more likely an external issue? /Tomas
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev