From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stephen@networkplumber.org>
Received: from mail-pf0-f169.google.com (mail-pf0-f169.google.com
 [209.85.192.169]) by dpdk.org (Postfix) with ESMTP id 18C852C8
 for <users@dpdk.org>; Tue, 20 Jun 2017 18:18:38 +0200 (CEST)
Received: by mail-pf0-f169.google.com with SMTP id s66so71476428pfs.1
 for <users@dpdk.org>; Tue, 20 Jun 2017 09:18:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=networkplumber-org.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=j94NY1XkLjBuG5+plFAtYaoAXcMmDMXWkQUKSmUvGPA=;
 b=ROHcm6uPj8ZJmC1ht/p+Q/1JBTTO5nKKAYfpTtLvkfR61H6agPlP876yNOxmZ6IHhD
 +MqF22OQNWvwXD454ZlsVGYz07XH19I+Y/+dwxOh+Kx6TuK6pM8HwaLu/YIZ35GGEL1J
 2L57hZ61I7j2LZkIctPsXJUD2SELhjuulIg2hmMzQBhDCPCkl5utA1ac67QNbgWwX+3o
 0PXGVKduorpOU83ZBLoN0ZPmE+llYpCLL9SPgkzZloNTlbhPIhnmOnqcreRA3qKueUKE
 6USN709eLpMXMwt5OD4fWvQxmnb5pU8bCmxFy0LpAkVIG2cMWu7WDH7FeRTRsCcadC+A
 Nc/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to
 :references:mime-version:content-transfer-encoding;
 bh=j94NY1XkLjBuG5+plFAtYaoAXcMmDMXWkQUKSmUvGPA=;
 b=D5Esm665Ah2CjcFVUFTWQWWrbYyypzdRF0wt0exRJEP7Lvd5xJOTztnmB/7cMED1mq
 7/75LYfRMMFLb9vsP0zrcxP5atUZebYDanZLi+cpTA31Y5kzSZyKrkk5ixui5ASinFyl
 k90ksXyPlYlPvGSCfdJLhIsSjIZnY+j1dR8EKgP/cM/ZRhJ3bpUS8tyzK79f4UJm1GcZ
 v4S1uLf1/G3TD3hey0yBGA+dP7Zo6gKYOFt7qdoAQBVP0wV+1GVr3Y8uN4ivKYL6k4Ih
 UhelBEbjj09SkJwHV0sedyXZYPBF+b1EOwaeG/FhzP1kPPDgO2U2MkPDMVl5IOFUzrK5
 7zwA==
X-Gm-Message-State: AKS2vOzwH9Bcs1UleSUmHMbMYfTHfX4WxbGC64KOwrZZoX9dmc6WsPSC
 j5yLi4W/yINavDSo
X-Received: by 10.84.132.40 with SMTP id 37mr10050119ple.141.1497975517473;
 Tue, 20 Jun 2017 09:18:37 -0700 (PDT)
Received: from xeon-e3 (76-14-207-240.or.wavecable.com. [76.14.207.240])
 by smtp.gmail.com with ESMTPSA id 17sm25446321pfn.84.2017.06.20.09.18.36
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 20 Jun 2017 09:18:36 -0700 (PDT)
Date: Tue, 20 Jun 2017 09:18:29 -0700
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>
Message-ID: <20170620091829.2a5ca828@xeon-e3>
In-Reply-To: <B84047ECBD981D4B93EAE5A6245AA361013C52E6@FRAEML521-MBS.china.huawei.com>
References: <B84047ECBD981D4B93EAE5A6245AA361013C52E6@FRAEML521-MBS.china.huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-users] OVS-DPDK - TAP0 - vdev (af_packet) device is
 linkdown
X-BeenThere: users@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK usage discussions <users.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/users>,
 <mailto:users-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/users/>
List-Post: <mailto:users@dpdk.org>
List-Help: <mailto:users-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/users>,
 <mailto:users-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Jun 2017 16:18:39 -0000

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.