And when I list vhost-user-0 interface, it shows that link_state is down , 
tx_dropped=14252, tx_packets=0;

When I ovs-ofctl mod-port ovsbr0 vhost-user-0 up, link_state is keeping down.

Thank you.

Root@host152:~# ovs-vsctl list interface vhost-user-0
_uuid               : f7c5a20b-f645-45ca-a123-58a9588683c5
admin_state         : down
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         : 1
link_speed          : []
link_state          : down
lldp                : {}
mac                 : []
mac_in_use          : "00:00:00:00:00:00"
mtu                 : 1500
name                : "vhost-user-0"
ofport              : 3
ofport_request      : []
options             : {}
other_config        : {}
statistics          : {rx_bytes=44724, rx_errors=0, rx_packets=1050, 
tx_bytes=0,                                         tx_dropped=14252, 
tx_packets=0}
status              : {}
type                : dpdkvhostuser

-----邮件原件-----
发件人: lifuqiong [mailto:lifuqi...@cncloudsec.com] 
发送时间: 2016年4月14日 9:16
收件人: 'Loftus, Ciara'; 'discuss@openvswitch.org'
主题: 答复: [ovs-discuss] ovs + dpdk vhost-user match flows but cannot execute 
actions

Thank you Ciara.
        OVS: 2.5.0 
        Dpdk: 2.2.0
        Qemu: 2.2.1
        
Even appending mrg_rxbuf=off to param '-device'  , two vms still cannot 
communication;

While ping from vm1 to vm2, statistics on vm1 shows that eth1 RX_packet keeps 
zero, TX_PACKET keeps increasing.

My build command as follows:
#!/bin/bash

################ config and compile dpdk  ################ # cd dpdk # make 
config T=x86_64-native-linuxapp-gcc # make install T=x86_64-native-linuxapp-gcc 
########################################################

################ config and compile ovs ################ # cd ovs # ./boot.sh # 
./configure --localstatedir=/var 
--with-dpdk=/root/workplane/dpdk/x86_64-native-linuxapp-gcc
# make
# make install
########################################################

################ config and compile qemu ################ # cd qemu # 
./configure # make # make install 
########################################################

## set hugepage number, use boot cmdline or procfs echo 8 > 
/proc/sys/vm/nr_hugepages

## insert the kernel modules
modprobe uio
insmod $DPDK_BUILD/kmod/igb_uio.ko
insmod $DPDK_BUILD/kmod/rte_kni.ko
insmod $DPDK_DIR/lib/librte_vhost/eventfd_link/eventfd_link.ko

# unbind the dpdk interface

$DPDK_DIR/tools/dpdk_nic_bind.py --bind=igb_uio 01:00.0 
$DPDK_DIR/tools/dpdk_nic_bind.py --bind=igb_uio 01:00.1
        
#Mount hugetable
mkdir -p /dev/hugepages
mount -t hugetlbfs -o pagesize=1G none /dev/hugepages

#first time
#ovsdb-tool create /usr/local/etc/openvswitch/conf.db 
/usr/local/share/openvswitch/vswitch.ovsschema

ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock 
--remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach 
--log-file

#firsttime only
#ovs-vsctl --no-wait init
ovs-vswitchd --dpdk -c 0x77 -n 2 --socket-mem 2048,0 -- unix:$DB_SOCK --pidfile 
--detach --log-file

##############################################################################
## Add brige
/usr/local/bin/ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev

## Add dpdk port
/usr/local/bin/ovs-vsctl add-port ovsbr0 dpdk0 -- set Interface dpdk0 type=dpdk 
/usr/local/bin/ovs-vsctl add-port ovsbr0 dpdk1 -- set Interface dpdk1 type=dpdk 
# /usr/local/bin/ovs-vsctl add-port ovsbr0 dpdk2 -- set Interface dpdk2 
type=dpdk # /usr/local/bin/ovs-vsctl add-port ovsbr0 dpdk3 -- set Interface 
dpdk3 type=dpdk

## Add vhost-user port
/usr/local/bin/ovs-vsctl add-port ovsbr0 vhost-user-0 -- set Interface 
vhost-user-0 type=dpdkvhostuser /usr/local/bin/ovs-vsctl add-port ovsbr0 
vhost-user-1 -- set Interface vhost-user-1 type=dpdkvhostuser


-----邮件原件-----
发件人: Loftus, Ciara [mailto:ciara.lof...@intel.com] 
发送时间: 2016年4月13日 22:34
收件人: lifuqiong; discuss@openvswitch.org
主题: RE: [ovs-discuss] ovs + dpdk vhost-user match flows but cannot execute 
actions

>          I want to test dpdk vhost-user port on ovs to follow
> https://software.intel.com/en-us/blogs/2015/06/09/building-vhost-user-
> for-
> ovs-today-using-dpdk-200;
> I create ovs+dpdk environment followed INSTALL.DPDK.md; and create 2 
> VM2, try to ping each other but show me "Destination Host 
> Unreachable"; Dump-flows shows packets matched the flow, but can't 
> output to port 4, why ? I can't get any useful error or warning info from 
> ovs-vswitchd.log.

Do any statistics increment on the interface on the VM? Eg rx errors?
What versions of OVS / DPDK / QEMU are you using?
Some things to try if you haven't already:
QEMU v2.5.0
Disable mergeable rx buffers like so:
-device virtio-net-pci,mac=00:00:00:00:01:12,netdev=mynet1, mrg_rxbuf=off

Thanks,
Ciara

> 
> ovs-ofctl dump-flows ovsbr0
> NXST_FLOW reply (xid=0x4):
> cookie=0x0, duration=836.946s, table=0, n_packets=628, n_bytes=26376, 
> idle_age=0, in_port=3 actions=output:4 cookie=0x0, duration=831.458s, 
> table=0, n_packets=36, n_bytes=1512, idle_age=770, in_port=4 
> actions=output:3
> 
> root@host152:/usr/local/var/run/openvswitch# ovs-vsctl show 
> 03ae6f7d-3b71-45e3-beb0-09fa11292eaa
>     Bridge "ovsbr0"
>         Port "vhost-user-1"
>             Interface "vhost-user-1"
>                 type: dpdkvhostuser
>         Port "ovsbr0"
>             Interface "ovsbr0"
>                 type: internal
>         Port "dpdk1"
>             Interface "dpdk1"
>                 type: dpdk
>         Port "vhost-user-0"
>             Interface "vhost-user-0"
>                 type: dpdkvhostuser
>         Port "dpdk0"
>             Interface "dpdk0"
>                 type: dpdk
> 
> Start VM info:
> qemu-system-x86_64 -m 1024 -smp 2 -hda /root/vm11.qcow2 -boot c - 
> enable-kvm -vnc 0.0.0.0:1 -chardev
> socket,id=char1,path=/usr/local/var/run/openvswitch/vhost-user-0 
> -netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce -device 
> virtio-net-
> pci,mac=00:00:00:00:01:12,netdev=mynet1 -object memory-backend- 
> file,id=mem,size=1024M,mem-path=/dev/hugepages,share=on -numa 
> node,memdev=mem -mem-prealloc -d exec
> 
> qemu-system-x86_64: -netdev type=vhost-
> user,id=mynet1,chardev=char1,vhostforce: chardev "char1" went up

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to