DPDK usage discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: "Avi Cohen (A)" <avi.cohen@huawei.com>
Cc: "ovs-discuss@openvswitch.org" <ovs-discuss@openvswitch.org>,
	"users@dpdk.org" <users@dpdk.org>
Subject: Re: [dpdk-users] OVS-DPDK - TAP0 - vdev (af_packet) device is linkdown
Date: Tue, 20 Jun 2017 09:18:29 -0700	[thread overview]
Message-ID: <20170620091829.2a5ca828@xeon-e3> (raw)
In-Reply-To: <B84047ECBD981D4B93EAE5A6245AA361013C52E6@FRAEML521-MBS.china.huawei.com>

On Tue, 20 Jun 2017 09:40:47 +0000
"Avi Cohen (A)" <avi.cohen@huawei.com> wrote:

> Hello All,
> 
> I did upgrade to dpdk-17.05 and ovs-2-7.1 and create a vdev - af_packet device according the config script below 
> This tap device connects the ovs-dpdk to a name space
> The problem is that this tap00 device is linkdown - (never reach  RUNNING state )  - hence no pkt is received transmitted on this interface  although the tap0 creation in ovs is OK, 
> I'm attaching  the config script and output of netstat and ifconfig in the namespace
> Can someone please tell me how to activate the tap0 ?
> 
> Config script :
> 
> 
> cd ../dpdk-17.05/usertools/
> modprobe uio
> insmod ../x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
> ifconfig ens3 down
> 
> ./dpdk-devbind.py --bind=igb_uio 0000:00:03.0 ./dpdk-devbind.py --status
> 
> cd -
> 
> pkill -9 ovs
> rm -rf /usr/local/var/run/openvswitch
> rm -rf /usr/local/etc/openvswitch/
> rm -f /usr/local/etc/openvswitch/conf.db
> mkdir -p /usr/local/etc/openvswitch
> mkdir -p /usr/local/var/run/openvswitch
> 
> 
> ./ovsdb/ovsdb-tool create /usr/local/etc/openvswitch/conf.db ./vswitchd/vswitch.ovsschema ./ovsdb/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach ./utilities/ovs-vsctl --no-wait init
> 
> echo 8192 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
> echo 8192 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages 
> 
> mkdir -p /mnt/huge
> mkdir -p /mnt/huge_2mb
> mount -t hugetlbfs none /mnt/huge_2mb -o pagesize=2MB
> 
> modprobe openvswitch
> export DB_SOCK=/usr/local/var/run/openvswitch/db.sock
> 
> ./utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true ./vswitchd/ovs-vswitchd unix:$DB_SOCK --pidfile --detach ./utilities/ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x80
> 
> 
> 
> utilities/ovs-vsctl --may-exist add-br br-int \
>   -- set Bridge br-int datapath_type=netdev \
>   -- br-set-external-id br-int bridge-id br-int \
>   -- set bridge br-int fail-mode=standalone 
> 
> 
> 
> ip tuntap add dev tap0 mode tap
> 
> ovs-vsctl add-port br-int tap0 -- set Interface tap0 type=dpdk \
>     options:dpdk-devargs=eth_af_packet0,iface=tap0 
> 
> 
> 
> ip netns add red
> ip link set tap0 netns red
> ip netns exec red ip addr add 1.1.1.20/24 dev tap0 ip netns exec red ip link set tap0 up
> 
> 
> 
> 
> utilities/ovs-vsctl --may-exist add-port br-int vxlan0 \
>   -- set interface vxlan0 type=vxlan options:remote_ip=172.31.100.44 options:key=1000 
> 
> 
> 
> 
> utilities/ovs-vsctl --may-exist add-br br-phy \
>     -- set Bridge br-phy datapath_type=netdev \
>     -- br-set-external-id br-phy bridge-id br-phy \
>     -- set bridge br-phy fail-mode=standalone \
>        other_config:hwaddr=02:d7:d1:26:84:e5  
> 
> 
> utilities/ovs-vsctl --timeout 10 --may-exist add-port br-phy dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:00:03.0 
> 
> 
> 
> 
> ip addr add 172.31.100.80/24 dev br-phy
> 
> 
> 
> ip link set br-phy up
> ip link set br-int up
> iptables -F
> 
> 
> utilities/ovs-appctl ovs/route/show
> 
> 
> ip netns exec red bash
> ifconfig lo up
> 
> #################################
> netstat -v -s -e
> Ip:
>     7 total packets received
>     0 forwarded
>     0 incoming packets discarded
>     7 incoming packets delivered
>     14 requests sent out
> Icmp:
>     7 ICMP messages received
>     0 input ICMP message failed.
>     ICMP input histogram:
>         destination unreachable: 7
>     14 ICMP messages sent
>     0 ICMP messages failed
>     ICMP output histogram:
>         destination unreachable: 7
>         echo request: 7
> IcmpMsg:
>         InType3: 7
>         OutType3: 7
>         OutType8: 7
> Tcp:
>     0 active connections openings
>     0 passive connection openings
>     0 failed connection attempts
>     0 connection resets received
>     0 connections established
>     0 segments received
>     0 segments send out
>     0 segments retransmited
>     0 bad segments received.
>     0 resets sent
> Udp:
>     0 packets received
>     0 packets to unknown port received.
>     0 packet receive errors
>     0 packets sent
> UdpLite:
> TcpExt:
>     0 packet headers predicted
> IpExt:
>     InOctets: 784
>     OutOctets: 1372
>     InNoECTPkts: 7
> root@ip-172-31-100-80:/home/ubuntu/openvswitch-2.7.0# ifconfig
> lo        Link encap:Local Loopback  
>           inet addr:127.0.0.1  Mask:255.0.0.0
>           inet6 addr: ::1/128 Scope:Host
>           UP LOOPBACK RUNNING  MTU:65536  Metric:1
>           RX packets:7 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1 
>           RX bytes:784 (784.0 B)  TX bytes:784 (784.0 B)
> 
> tap0      Link encap:Ethernet  HWaddr 1a:ef:3c:87:d7:67  
>           inet addr:1.1.1.20  Bcast:0.0.0.0  Mask:255.255.255.0
>           UP BROADCAST PROMISC MULTICAST  MTU:1500  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000 
>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
> 
> Best Regards
> 
> avi

If you are using one of the kernel access methods (like tap) for your
primary datapath, there is no benefit from DPDK. Aren't you better off
with non-DPDK version of Openvswitch? DPDK is not a secret go fast sauce.

Standard OpenVswitch

     NIC  ---> Kernel : OVS  ---> |  --> Guest

DPDK OVS (with TAP)
 
     NIC ---> OVS DPDK  ---> (tap) --> Kernel --> | --> Guest

The additional over head of kernel/user copy and system call makes any
benefit of DPDK disappear.

  reply	other threads:[~2017-06-20 16:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-20  9:40 Avi Cohen (A)
2017-06-20 16:18 ` Stephen Hemminger [this message]
2017-06-20 10:52 Avi Cohen (A)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170620091829.2a5ca828@xeon-e3 \
    --to=stephen@networkplumber.org \
    --cc=avi.cohen@huawei.com \
    --cc=ovs-discuss@openvswitch.org \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).