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.
next prev parent 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).