On 04.04.2017 12:26, Nadathur, Sundar wrote:
> Thanks, Ilya. 
> 
> # ovs-vsctl list Interface vi1
> _uuid               : 30d1600a-ff7d-4bf5-9fdb-b0767af3611c
> admin_state         : up
> bfd                 : {}
> bfd_status          : {}
> cfm_fault           : []
> cfm_fault_status    : []
> cfm_flap_count      : []
> cfm_health          : []
> cfm_mpid            : []
> cfm_remote_mpids    : []
> cfm_remote_opstate  : []
> duplex              : []
> error               : []
> external_ids        : {}
> ifindex             : 0
> ingress_policing_burst: 0
> ingress_policing_rate: 0
> lacp_current        : []
> link_resets         : 0
> link_speed          : []
> link_state          : up
> lldp                : {}
> mac                 : []
> mac_in_use          : "00:00:00:00:00:00"
> mtu                 : 1500
> mtu_request         : []
> name                : "vi1"
> ofport              : 5
> ofport_request      : []
> options             : {}
> other_config        : {}
> statistics          : {"rx_1024_to_1518_packets"=0, 
> "rx_128_to_255_packets"=0, "rx_1523_to_max_packets"=0, 
> "rx_1_to_64_packets"=0, "rx_256_to_511_packets"=0, 
> "rx_512_to_1023_packets"=0, "rx_65_to_127_packets"=0, rx_bytes=0, 
> rx_dropped=0, rx_errors=0, tx_bytes=0, tx_dropped=11}
> status              : {}
> type                : dpdkvhostuser
> 
> Here is the qemu command line split for readability:
> /usr/libexec/qemu-kvm -name guest=vhu-vm1,debug-threads=on -S 
>    -object 
> secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-3-vhu-vm1/master-key.aes
>  -machine pc-i440fx-rhel7.3.0,accel=kvm,usb=off 
>    -m 2048 -mem-prealloc -mem-path /dev/hugepages/libvirt/qemu -realtime 
> mlock=off -smp 2,sockets=2,cores=1,threads=1 
>    -uuid f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa -no-user-config -nodefaults 
>    -chardev 
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-3-vhu-vm1/monitor.sock,server,nowait
>    -mon chardev=charmonitor,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=/home/nfv/Images/vm1.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 
> -device 
> virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
>  
>     -chardev socket,id=charnet0,path=/usr/local/var/run/openvswitch/vi1 
> -netdev vhost-user,chardev=charnet0,id=hostnet0 
>    -device 
> virtio-net-pci,netdev=hostnet0,id=net0,mac=3a:19:09:52:14:50,bus=pci.0,addr=0x3
>  -vnc 0.0.0.0:1 
>    -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device 
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -msg timestamp=on
> 

OK. I got it. Memory is not shared between OVS and VM.
To make vhostuser work you must use 'share' option for qemu memory backing.

Please, refer the Documentation/topics/dpdk/vhost-user.rst for libvirt xml
example.  "memAccess='shared'" - is what you need.

QEMU cmdline should contain something like this:
-object 
memory-backend-file,id=ram-node0,prealloc=yes,mem-path=/dev/hugepages/libvirt/qemu,share=yes,size=10737418240,host-nodes=0,policy=bind
Maybe you can avoid using hugepages, but 'share=yes' is required for vhost-user 
to work.

Best regards, Ilya Maximets.



> Re. ifconfig from VM, I have difficulty getting it right now over VPN, but I 
> will get it by tomorrow morning. The 'ifconfig ' state is UP in the VM, IP 
> address is configured as 200.1.1.2/24 in the virtio-net interface in the VM. 
> Within the VM, the local address 200.1.1.2 can be pinged. 
> 
> Is there any good way to monitor packets flowing over vhost-user interface, 
> such as wireshark for eth interfaces? 
> 
> 
> Regards,
> Sundar
> 
>> -----Original Message-----
>> From: Ilya Maximets [mailto:i.maxim...@samsung.com]
>> Sent: Tuesday, April 4, 2017 2:13 AM
>> To: Nadathur, Sundar <sundar.nadat...@intel.com>; ovs-
>> d...@openvswitch.org
>> Subject: Re: [ovs-dev] Traffic fails in vhost user port
>>
>> On 04.04.2017 11:29, Nadathur, Sundar wrote:
>>>> -----Original Message-----
>>>> From: Ilya Maximets [mailto:i.maxim...@samsung.com]
>>>> Sent: Tuesday, April 4, 2017 12:07 AM
>>>> To: ovs-dev@openvswitch.org; Nadathur, Sundar
>>>> <sundar.nadat...@intel.com>
>>>> Subject: [ovs-dev] Traffic fails in vhost user port
>>>>
>>>> Hi Sundar.
>>>
>>>>> The flows are configured as below:
>>>>> # ovs-ofctl dump-flows br0
>>>>> NXST_FLOW reply (xid=0x4):
>>>>> cookie=0x0, duration=2833.612s, table=0, n_packets=0, n_bytes=0,
>>>>> idle_age=2833, in_port=1 actions=output:5 cookie=0x2,
>>>>> duration=2819.820s, table=0, n_packets=0, n_bytes=0, idle_age=2819,
>>>>> in_port=5 actions=output:1
>>>>
>>>> I guess, your flow table configured in a wrong way.
>>>> OpenFlow port of br0 is LOCAL, not 1.
>>>> Try this:
>>>>
>>>> # ovs-ofctl del-flows br0
>>>>
>>>> # ovs-ofctl add-flow br0 in_port=5,actions=output:LOCAL # ovs-ofctl
>>>> add-flow
>>>> br0 in_port=LOCAL,actions=output:5
>>>
>>> Thank you, Ilya. I did as you suggested, but the ping traffic from br0
>> (LOCAL) is dropped by the output port 5:
>>> # ovs-ofctl dump-flows br0
>>> NXST_FLOW reply (xid=0x4):
>>>  cookie=0x0, duration=1922.876s, table=0, n_packets=0, n_bytes=0,
>>> idle_age=1922, in_port=5 actions=LOCAL  cookie=0x0,
>>> duration=1915.458s, table=0, n_packets=6, n_bytes=252, idle_age=116,
>>> in_port=LOCAL actions=output:5
>>>
>>> # ovs-ofctl dump-ports br0 # <-- Drops in port 5 OFPST_PORT reply
>>> (xid=0x2): 2 ports
>>>   port  5: rx pkts=?, bytes=0, drop=0, errs=0, frame=?, over=?, crc=?
>>>            tx pkts=?, bytes=0, drop=5, errs=?, coll=?
>>>   port LOCAL: rx pkts=43, bytes=2118, drop=0, errs=0, frame=0, over=0,
>> crc=0
>>>            tx pkts=0, bytes=0, drop=0, errs=0, coll=0
>>>
>>> Wireshark shows that br0 sends out 3 ARP requests but there is no
>> response.
>>>
>>>> or
>>>>
>>>> # ovs-ofctl add-flow br0 actions=NORMAL
>>> I tried this too after doing del-flows. The LOCAL port's MAC is learnt,
>> wireshark still shows br0 sending out ARP requests with no response.
>>>
>>> BTW, 'ovs-vsctl list Interface' shows the vi1 (VM port, #5) is up (most 
>>> fields
>> are blank):
>>> _uuid               : 30d1600a-ff7d-4bf5-9fdb-b0767af3611c
>>> admin_state         : up
>>> . . .
>>> link_speed          : []
>>> link_state          : up
>>> . . .
>>> mac_in_use          : "00:00:00:00:00:00"
>>> mtu                 : 1500
>>> mtu_request         : []
>>> name                : "vi1"
>>> . . .
>>> statistics          : {"rx_1024_to_1518_packets"=0,
>> "rx_128_to_255_packets"=0, "rx_1523_to_max_packets"=0,
>> "rx_1_to_64_packets"=0, "rx_256_to_511_packets"=0,
>> "rx_512_to_1023_packets"=0, "rx_65_to_127_packets"=0, rx_bytes=0,
>> rx_dropped=0, rx_errors=0, tx_bytes=0, tx_dropped=8}
>>> status              : {}
>>> type                : dpdkvhostuser
>>>
>>> Is there any way to do the equivalent of a tcpdump or wireshark on a vhost
>> user port?
>>>
>>> Thanks,
>>> Sundar
>>>
>> Blanc fields in 'list interface' is normal for vhostuser.
>>
>> Looks like something wrong with VM.
>> Please, provide the output of 'ip a' or 'ifconfig -a' from VM and full 
>> output of
>> 'ovs-vsctl list Interface vi1'. Also, qemu cmdline or libvirt xml can be 
>> helpful.
>>
>>
>> Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to