[dpdk-dev] Vhost user no connection vm2vm

Ouyang, Changchun changchun.ouyang at intel.com
Sun May 17 16:41:17 CEST 2015



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Maciej Grochowski
> Sent: Friday, May 15, 2015 6:15 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] Vhost user no connection vm2vm
> 
> Hello, I have strange issue with example/vhost app.
> 
> I had compiled DPDK to run a vhost example app with followed flags
> 
> CONFIG_RTE_LIBRTE_VHOST=y
> CONFIG_RTE_LIBRTE_VHOST_USER=y
> CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
> 
> then I run vhost app based on documentation:
> 
>  ./build/app/vhost-switch -c f -n 4  --huge-dir /mnt/huge --socket-mem 3712
> -- -p 0x1 --dev-basename usvhost --vm2vm 1 --stats 9
> 
> -I use this strange --socket-mem 3712 because of physical limit of memoryon
> device -with this vhost user I run two KVM machines with followed
> parameters
> 
> kvm -nographic -boot c -machine pc-i440fx-1.4,accel=kvm -name vm1 -cpu
> host -smp 2 -hda /home/ubuntu/qemu/debian_squeeze2_amd64.qcow2 -m
> 1024 -mem-path /mnt/huge -mem-prealloc -chardev
> socket,id=char1,path=/home/ubuntu/dpdk/examples/vhost/usvhost
> -netdev type=vhost-user,id=hostnet1,chardev=char1
> -device virtio-net
> pci,netdev=hostnet1,id=net1,csum=off,gso=off,guest_tso4=off,guest_tso6=
> off,guest_ecn=off
> -chardev
> socket,id=char2,path=/home/ubuntu/dpdk/examples/vhost/usvhost
> -netdev type=vhost-user,id=hostnet2,chardev=char2
> -device
> virtio-net-
> pci,netdev=hostnet2,id=net2,csum=off,gso=off,guest_tso4=off,guest_tso6=
> off,guest_ecn=off
> 
> After running KVM virtio correctly starting (below logs from vhost app) ...
> VHOST_CONFIG: mapped region 0 fd:31 to 0x2aaabae00000 sz:0xa0000
> off:0x0
> VHOST_CONFIG: mapped region 1 fd:37 to 0x2aaabb000000 sz:0x10000000
> off:0xc0000
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_NUM
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_BASE
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_ADDR
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_KICK
> VHOST_CONFIG: vring kick idx:0 file:38
> VHOST_CONFIG: virtio isn't ready for processing.
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_NUM
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_BASE
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_ADDR
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_KICK
> VHOST_CONFIG: vring kick idx:1 file:39
> VHOST_CONFIG: virtio is now ready for processing.
> VHOST_DATA: (1) Device has been added to data core 2
> 
> So everything looking good.
> 
> Maybe it is something trivial but using options: --vm2vm 1 (or) 2 --stats 9 it
> seems that I didn't have connection between VM2VM communication. I set
> manually IP for eth0 and eth1:
> 
> on 1 VM
> ifconfig eth0 192.168.0.100 netmask 255.255.255.0 up ifconfig eth1
> 192.168.1.101 netmask 255.255.255.0 up
> 
> on 2 VM
> ifconfig eth0 192.168.1.200 netmask 255.255.255.0 up ifconfig eth1
> 192.168.0.202 netmask 255.255.255.0 up
> 
> I notice that in vhostapp are one directional rx/tx queue so I tryied to ping
> between VM1 to VM2 using both interfaces ping -I eth0 192.168.1.200 ping -I
> eth1 192.168.1.200 ping -I eth0 192.168.0.202 ping -I eth1 192.168.0.202
> 
> on VM2 using tcpdump on both interfaces I didn't see any ICMP requests or
> traffic
> 
> And I cant ping between any IP/interfaces, moreover stats show me that:
> 
> Device statistics ====================================
> Statistics for device 0 ------------------------------
> TX total:               0
> TX dropped:             0
> TX successful:          0
> RX total:               0
> RX dropped:             0
> RX successful:          0
> Statistics for device 1 ------------------------------
> TX total:               0
> TX dropped:             0
> TX successful:          0
> RX total:               0
> RX dropped:             0
> RX successful:          0
> Statistics for device 2 ------------------------------
> TX total:               0
> TX dropped:             0
> TX successful:          0
> RX total:               0
> RX dropped:             0
> RX successful:          0
> Statistics for device 3 ------------------------------
> TX total:               0
> TX dropped:             0
> TX successful:          0
> RX total:               0
> RX dropped:             0
> RX successful:          0
> ======================================================
> 
> So it seems like any packet didn't leave my VM.
> also arp table is empty on each VM.
> 
I think you can try with this command line to config your ports, and make sure the arp table is NOT empty:

ip addr add 192.168.1.2/24 dev eth0
ip neigh add 192.168.1.1 lladdr 00:01:04:00:01:00 dev eth0
ip link set dev eth0 up

of course you need modify the ip, mac, and port according to your own platform.

Thanks
Changchun



More information about the dev mailing list