Hi Ciara , When i further try to debug the issue , i could see that
if (OVS_UNLIKELY(!is_vhost_running(virtio_dev))) { return EAGAIN; <<<<<<<<<<< it always returns from here >>>>>>>> } >>>>>> I believe that dequeue has to be called to get the packets from Guest to User space . nb_rx = rte_vhost_dequeue_burst(virtio_dev, qid, vhost_dev->dpdk_mp->mp, (struct rte_mbuf **)packets, NETDEV_MAX_BURST); Below are the logs for my vswitch with dpdkvhostuser ports. 2015-07-22T17:33:40.395Z|00020|bridge|INFO|bridge temp0: using datapath ID 0000e295aa430244 2015-07-22T17:33:40.395Z|00021|connmgr|INFO|temp0: added service controller "punix:/var/run/openvswitch/temp0.mgmt" 2015-07-22T17:33:40.462Z|00022|dpif_netdev|INFO|Created 1 pmd threads on numa node 0 2015-07-22T17:33:40.465Z|00023|bridge|INFO|ovs-vswitchd (Open vSwitch) 2.4.90 2015-07-22T17:33:40.466Z|00001|dpif_netdev(pmd41)|INFO|Core 0 processing port 'dpdk3' 2015-07-22T17:33:40.466Z|00002|dpif_netdev(pmd41)|INFO|Core 0 processing port 'dpdk2' 2015-07-22T17:33:40.466Z|00003|dpif_netdev(pmd41)|INFO|Core 0 processing port 'dpdk1' 2015-07-22T17:33:40.466Z|00004|dpif_netdev(pmd41)|INFO|Core 0 processing port 'dpdk0' 2015-07-22T17:33:44.470Z|00024|memory|INFO|729380 kB peak resident set size after 10.3 seconds 2015-07-22T17:33:44.470Z|00025|memory|INFO|handlers:13 ports:5 revalidators:5 rules:5 I am under a strong opinion that i have missed some configuration here . Please let me know . -Srikanth On Wed, Jul 22, 2015 at 11:30 AM, Srikanth Akula <srikanth...@gmail.com> wrote: > Hi Ciera , > > Thank you for your reply . > > > I am assuming , we dont need to configure any flows if both the ports are > in the ovs-bridge ( each is connected to a guest) , Please let me know if i > am wrong . > > however, i tried to configure the flows too as per your suggestion , but > still i am unable to see any packets in the host for that bridge . > > > I am using Qemu 2.2.0 > qemu-system-x86_64 --version > QEMU emulator version 2.2.0, Copyright (c) 2003-2008 Fabrice Bellard > > > My qemu commandline options : > > VM1 ::::: > > /usr/bin/qemu-system-x86_64 -name Vhost1 -S -machine > pc-i440fx-2.2,accel=kvm,usb=off -cpu > SandyBridge,+invpcid,+erms,+bmi2,+smep,+avx2,+b > mi1,+fsgsbase,+abm,+pdpe1gb,+rdrand,+f16c,+osxsave,+movbe,+dca,+pcid,+pdcm,+xtpr,+fma,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme > -m 15024 -realtime mlock=off -smp 16,so > ckets=16,cores=1,threads=1 -uuid fed77f13-ba10-57e4-7dd8-7629e6181657 > -no-user-config -nodefaults -chardev > socket,id=charmonitor,path=/var/lib/libvirt/qemu/Vhost1.monitor,server,nowait > -mon chardev=char > monitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on > -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive > file=/test.img,if=none,id=drive-virtio-disk0,format=ra > w -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 > -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device > virtio-net-pci,netdev=hostnet0,id=net0 > ,mac=52:54:00:ca:d5:80,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 > -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:0 > -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -chardev > socket,id=char1,path=/var/run/openvswitch/dpdk0 -netdev > type=vhost-user,id=mynet1,chardev=char1,vhostforce -device > virtio-net-pci,mac=00:00:00:00:00:01, > netdev=mynet1 -chardev socket,id=char2,path=/var/run/openvswitch/dpdk1 > -netdev type=vhost-user,id=mynet2,chardev=char2,vhostforce -device > virtio-net-pci,mac=00:00:00:00:00:02,netdev=mynet2 -object > memory-backend-file,id=mem,size=2048M,mem-path=/mnt/huge/,share=on > > > VM2:::: > > /usr/bin/qemu-system-x86_64 -name Vhost2 -S -machine > pc-i440fx-2.2,accel=kvm,usb=off -cpu > SandyBridge,+invpcid,+erms,+bmi2,+smep,+avx2,+b > mi1,+fsgsbase,+abm,+pdpe1gb,+rdrand,+f16c,+osxsave,+movbe,+dca,+pcid,+pdcm,+xtpr,+fma,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme > -m 15024 -realtime mlock=off -smp 8,soc > kets=8,cores=1,threads=1 -uuid 30bc0154-7057-a7d6-12e1-7a2d8a178d47 > -no-user-config -nodefaults -chardev > socket,id=charmonitor,path=/var/lib/libvirt/qemu/Vhost2.monitor,server,nowait > -mon chardev=charmo > nitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on > -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive > file=/test2.img,if=none,id=drive-virtio-disk0,format=raw > -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 > -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=26 -device > virtio-net-pci,netdev=hostnet0,id=net0, > mac=52:54:00:4d:91:f5,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 > -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:1 > -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device > intel-hda,id=sound0,bus=pci.0,addr=0x4 -device > hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -chardev > socket,id=char1,path=/var/run/openvswitch/dpdk1 -netdev > type=vhost-user,id=mynet1,chardev=char1,vhostforce -device > virtio-net-pci,mac=00:00:00:00:00:03,netdev=mynet1 -chardev > socket,id=char2,path=/var/run/openvswitch/dpdk3 -netdev > type=vhost-user,id=mynet2,chardev=char2,vhostforce -device > virtio-net-pci,mac=00:00:00:00:00:04,netdev=mynet2 -object > memory-backend-file,id=mem,size=2048M,mem-path=/mnt/huge/,share=on > > ovs-vsctl : > > ovs-vsctl show > 3c25dda6-46c4-454c-8bdf-3832636b1f71 > Bridge "temp0" > Port "dpdk1" > Interface "dpdk1" > type: dpdkvhostuser > Port "temp0" > Interface "temp0" > type: internal > Port "dpdk2" > Interface "dpdk2" > type: dpdkvhostuser > Port "dpdk0" > Interface "dpdk0" > type: dpdkvhostuser > Port "dpdk3" > Interface "dpdk3" > type: dpdkvhostuser > ovs_version: "2.4.90" > > > My vswitchd options > > ovs-vswitchd --dpdk -c 0x0FF8 -n 4 --socket-mem 1024 0 -- > unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info > --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log > --detach --monitor > > > ovs-ofctl dump-flows temp0 > NXST_FLOW reply (xid=0x4): > cookie=0x0, duration=871.033s, table=0, n_packets=0, n_bytes=0, > idle_age=871, in_port=ANY actions=output:3 > > > I am trying in the following way. . > > > [vm1] <dpdk1----------dpdk2> [vm2] > > and the Ip address are in the same subnet on the 2 Vms .. (2.2.2.x/24) > > > > Please let me know if any of the configuration is having any issues. > > -Srikanth > > > On Wed, Jul 22, 2015 at 2:39 AM, Loftus, Ciara <ciara.lof...@intel.com> > wrote: > >> > >> > Hello, >> > >> > I am trying to use vhost-user for sending traffic between VMs . I have >> > configured two "dpdkvhostuser" interfaces each VM using one of them each >> > . >> > >> > vswitchd is running with dpdk. >> > Qemu is running with the vhost interfaces >> > >> > Guest OS can see interfaces - Verified with the static MAC i have >> assigned >> > for vhost interfaces. >> > >> > But i am not able to ping b/w these two VMs . Could somebody tell me >> how >> > to debug this further . >> >> Hi, >> >> To ping between the VMs first assign appropriate IP addresses, then >> configure the following flows: >> in_port=<vhostvm1>,actions=output:<vhostvm2> >> in_port=<vhostvm2>,actions=output:<vhostvm1> >> >> These flows allow the request/response packets to take the necessary path >> for a successful ping & you should see the stats incrementing with >> ovs-ofctl dump-flows. >> >> If you've already done this and it's still not working, please ensure >> your QEMU version is v2.2.0 or greater. >> >> Thanks, >> Ciara >> >> > >> > In the host i could see the ovs-netdev & ovs bridge i have created . >> > >> > Regards, >> > Srikanth >> > _______________________________________________ >> > dev mailing list >> > dev@openvswitch.org >> > http://openvswitch.org/mailman/listinfo/dev >> > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev