From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qa0-x230.google.com (mail-qa0-x230.google.com [IPv6:2607:f8b0:400d:c00::230]) by dpdk.org (Postfix) with ESMTP id 77CC82F4 for ; Thu, 23 Jan 2014 20:25:57 +0100 (CET) Received: by mail-qa0-f48.google.com with SMTP id f11so2734094qae.21 for ; Thu, 23 Jan 2014 11:27:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=mCakHImvGKri5q8aHWTU2tSqqg6/OSadrrYdMlWgEWE=; b=ZQ2qrnSwQ+ymcPGEELpzwkWUfcEl6BZmB0AkvhEKz/nIa3wzF0+LSqmxDfLh8hyz7X F1XxFftS5b7LY2szKcR2DKQxaG8yqqpNJqyovqqNSj8ddFNfpaBr7JkS1XncR2Lg8otU +6dQx6oNYMMUL+0t67JzAk2txJqX8liuBhCUnRRkQYJTYGUibZnm5P4O/f8TM7/ZhnQ8 VtbFmPPJbvHTqyhKSGKq6lH0pB1ymvhV4kZgTL2zhNF1pEgzJ18crjc2nzmtcUkMbCkG kf0HHrakVibetlQBo4fVgNz0dtRvXbcV5mm30JtvmvYzebtrvGL9pQ0IJr+4o36r+dNK ieOA== MIME-Version: 1.0 X-Received: by 10.140.95.151 with SMTP id i23mr13801334qge.20.1390505234363; Thu, 23 Jan 2014 11:27:14 -0800 (PST) Received: by 10.96.63.166 with HTTP; Thu, 23 Jan 2014 11:27:14 -0800 (PST) In-Reply-To: References: Date: Thu, 23 Jan 2014 11:27:14 -0800 Message-ID: From: James Yu To: Daniel Kaminsky Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] Passing VLAN traffic via l2fwd X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Jan 2014 19:25:57 -0000 Hi Daniel, Untagged traffic could be looped back. I am doing a one-directional loop back. In the Frame tabe of the StreamBlock editor, I did the following stream1: destination address: MAC address of the receiving port of the guest VM. (obtained from the debug print out when l2fwd is started, or ifconfig before l2fwd is started) stream2: destination address: MAC address of the sending port of the guest VM (obtained from the debug print out when l2fwd is started, or ifconfig before l2fwd is started) The only thing I add is to tag both the SR-IOV VF ports on the host with the same tag using ip command and add that tag number as the VID to the Spirent streams. After that that traffic can reach l2fwd which reported forwarded the packets on the periodic printout. However the packets did not reach the Spirent. Also it is exercising rte_ixgbevf_pmd codes as indicated during starting l2fwd. EAL: Master core 0 is ready (tid=b77ab7d0) EAL: Core 1 is ready (tid=adffeb70) EAL: probe driver: 8086:100e rte_em_pmd EAL: probe driver: 8086:100e rte_em_pmd *EAL: probe driver: 8086:10ed rte_ixgbevf_pmd* I wonder do I have to change any codes in the DPDK library or call certain routines to setup the VLAN in the DPDK stack during starting the l2fwd ? Were you able to send VLAN traffic from your iXia and looped back to your iXia ? Thanks James On Thu, Jan 23, 2014 at 12:45 AM, Daniel Kaminsky < daniel.kaminsky@infinitelocality.com> wrote: > Hi James, > > Did you try a non-tagged traffic? I suspect this is the limitation of the > l2fwd or the requirements of Spirent. From my experience with Ixia, the L2 > forward device must implement the ARP protocol (at least a subset of it). > > Also, notice that the l2fwd example sets the destination MAC address to > "02:00:00:00:00:xx" which the Spirent might doesn't like. > > Daniel > > > On Thu, Jan 23, 2014 at 7:08 AM, James Yu wrote: > >> I could not pass tagged traffic through the l2fwd program running inside a >> CentOS VM. The l2fwd program reported sending out all the packets received >> from one port to the other port. But the outside Spirent tester could not >> receive a packet at all. I am wondering maybe the tagged packets are >> dropped somewhere in the rte_em_pmd or in the DPDK library. Anyone knows >> how to pass/send VLAN traffic through the DPDK ? >> >> With tagged SR-IOV ports, Spirent and guest VM CentOS could ping each >> other >> without using DPDK. Once I used DPDK 1.3.1r2, I encountered issues with >> sending out tagged packets out of DPDK to the host. >> >> I have done the following: >> >> On RHEL6.1 host >> 1. setup the VLAN using "ip link set eth2 vf 0 vlan 3" for port 1 and "ip >> link set eth3 vf 0 vlan 3" for port 2 >> [root@cent64x64-137189 ~]# ip link show eth2 >> 96: eth2: mtu 1500 qdisc mq state UP >> qlen >> 1000 >> link/ether 90:e2:ba:2e:af:f0 brd ff:ff:ff:ff:ff:ff >> vf 0 MAC 52:54:00:f9:9a:90, vlan 3 >> [root@cent64x64-137189 ~]# ip link show eth3 >> 98: eth3: mtu 1500 qdisc mq state UP >> qlen >> 1000 >> link/ether 90:e2:ba:2e:af:f1 brd ff:ff:ff:ff:ff:ff >> vf 0 MAC 52:54:00:30:37:98, vlan 3 >> >> 2. virsh configure SR-IOV hostdev >> >> >> >>
> function='0x0'/> >> >>
> function='0x0'/> >> >> >> >> >>
> function='0x1'/> >> >>
> function='0x0'/> >> >> >> [root@cent64x64-137189 ~]# lspci |grep Eth >> 1a:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ >> Network Connection (rev 01) >> 1a:00.1 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ >> Network Connection (rev 01) >> 1a:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller >> Virtual Function (rev 01) >> 1a:10.1 Ethernet controller: Intel Corporation 82599 Ethernet Controller >> Virtual Function (rev 01) >> >> >> On guest VM >> 1. check all the ports are started up and check their corresponding port >> type. Use the two SR-IOV ports with device type as ixgbevf for l2fwd >> [root@VirtualADX ~]# lspci |grep Eth >> 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet >> Controller (rev 03) >> 00:07.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet >> Controller (rev 03) >> 00:08.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller >> Virtual Function (rev 01) >> 00:09.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller >> Virtual Function (rev 01) >> 00:0a.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet >> Controller (rev 03) >> >> 2. run this command: >> /root/l2fwd -c 3 -n 1 -b 000:00:03.0 -b 000:00:07.0 -b >> 000:00:0a.0 -- -q 1 -p 3 >> >> Although the l2fwd forwards all received tagged packets, the Spirent >> tester did not receive any packet at all. >> > >