[ovs-discuss] Query about user space vxlan tunneling setup

Du, Fan fan.du at intel.com
Tue Aug 18 09:56:01 UTC 2015


Hi folks

While trying to integrate dpdkvhostuser port with user space Vxlan tunneling as described in ovs/README-native-tunneling.md,
My setup topology is as below, all bridges are in user space.

On host 1:
Ping VM2
VM1(10.0.1.2) <------> dpdk-vhostuser <------> br-int <------> Vxlan <------> br-ex(192.168.1.2) <------> dpdk0 <------> NIC
                         ^                                 ^
                         |                                 |
                       dummy0                          dummy1


#Setup br-int, attach dpdkvhostuser and vxlan ports to it
ovs-vsctl add-br br-int -- set bridge br-int datapath_type=netdev
ovs-vsctl add-port br-int vhost-user-1 -- set Interface vhost-user-1 type=dpdkvhostuser
ovs-vsctl add-port br-int vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=191.168.1.2 options:key=99
ovs-ofctl add-flow br-int arp,action=normal

#Setup br-ex, attach dpdk0 to it, so packets can hit on wire
ovs-vsctl add-br br-ex -- set bridge br-ex datapath_type=netdev
ovs-vsctl add-port br-ex dpdk0 -- set Interface dpdk0 type=dpdk
ifconfig br-ex 192.168.1.4/24
ovs-appctl ovs/route/add 192.168.1.4/24 br-ex
ovs-ofctl add-flow br-ex arp,action=normal

#Setup mirror ports to tcpdump packets
rmmod dummy
modprobe dummy numdummies=2
ifconfig dummy0 up
ifconfig dummy1 up
ovs-vsctl add-port br-ex dummy1   -- --id=@p get port dummy1  -- --id=@m create mirror name=m0 select-all=true output-port=@p -- set bridge br-ex mirrors=@m
ovs-vsctl add-port br-int dummy0   -- --id=@p get port dummy0  -- --id=@m create mirror name=m0 select-all=true output-port=@p -- set bridge br-int mirrors=@m


On host 2:
VM2(10.0.1.4) <------> dpdk-vhostuser <------> br-int <------> Vxlan <------> br-ex(192.168.1.4) <------> dpdk0 <------> NIC
                         ^                                 ^
                         |                                 |
                       dummy0                          dummy1
Host2 use the same configuration as host1 except for the ip address.

On host1 VM1 ping its peer VM2:
1.      When not employing Vxlan interface, just dpdk-hostuser <--> br-int <--> dpdk0 style setup, traffic between VM1 and VM2
   goes well.
2.      When integrated Vxlan interface as above topology, on host1, ping VM1, I can tcpdump arp packet on dummy0 port,
   On dummy1, Vxlan encapsulated arp packet for guest packet did show up as expected. As a result connectivity is broken.

# ovs-ofctl dump-ports br-int
OFPST_PORT reply (xid=0x2): 4 ports
  port LOCAL: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=16, bytes=2544, drop=0, errs=0, coll=0
  port  1: rx pkts=16, bytes=?, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=0, bytes=?, drop=0, errs=?, coll=?
  port  2: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=16, bytes=2544, drop=0, errs=0, coll=0
  port  3: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=19, bytes=2754, drop=0, errs=0, coll=0
# ovs-vsctl get Interface vxlan1 ofport
2
# ovs-vsctl get Interface vhost-user-1 ofport
1
]# ovs-vsctl show
af3f1e06-82e6-4bc1-9074-b90377ef32fa
    Bridge br-ex
        Port "dummy1"
            Interface "dummy1"
        Port "dpdk0"
            Interface "dpdk0"
                type: dpdk
        Port br-ex
            Interface br-ex
                type: internal
    Bridge br-int
        Port "dummy0"
            Interface "dummy0"
        Port "vhost-user-1"
            Interface "vhost-user-1"
                type: dpdkvhostuser
        Port br-int
            Interface br-int
                type: internal
        Port "vxlan1"
            Interface "vxlan1"
                type: vxlan
                options: {key="99", remote_ip="191.168.1.2"}

It seems vxlan1 ports did do its job, but why does the encapsulated Vxlan packets didn't route into br-ex
as commanded by "ovs-appctl ovs/route/add 192.168.1.4/24 br-ex" from README-native-tunneling.md

Did I missing anything else obviously? Any hint/suggestion would be appreciated.








-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20150818/8c49575c/attachment-0002.html>


More information about the discuss mailing list