From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by dpdk.org (Postfix) with ESMTP id 4F1F71B2D5 for ; Tue, 10 Oct 2017 15:48:39 +0200 (CEST) Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v9ADmbwo007427 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 10 Oct 2017 13:48:38 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id v9ADmbBi007966 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 10 Oct 2017 13:48:37 GMT Received: from abhmp0007.oracle.com (abhmp0007.oracle.com [141.146.116.13]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id v9ADmbA0013907 for ; Tue, 10 Oct 2017 13:48:37 GMT MIME-Version: 1.0 Message-ID: <6a275bea-214e-489b-ba42-df70328b3854@default> Date: Tue, 10 Oct 2017 06:48:36 -0700 (PDT) From: Iain Barker Sender: Iain Barker To: users@dpdk.org X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 15.0.4963.0 (x86)] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Source-IP: userv0022.oracle.com [156.151.31.74] Subject: [dpdk-users] VLAN tags always stripped on i40evf [VMware SR-IOV] X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Oct 2017 13:48:39 -0000 I have a problem trying to get VLAN tagged frames to be received at the i40= evf PMD. =20 Specifically, there is no connectivity on VMware i40e media interface confi= gured as SR-IOV when VLANs are used, but it works fine for non-VLAN tagged = frames. It seems the VLAN headers are being stripped before they reach the= DPDK application, but the exact same configuration works fine for native L= inux driver with VLANs. Host is VMware ESXi 6.5, XL710 interfaces (i40e) and SR-IOV enabled at the = vswitch PF, configured as VLAN trunking mode (VLAN tags through to guest). = An external system sends VLAN 8 tagged frames to the guest VM interface - t= he trivial testcase is to use ICMP 'ping' across the VLAN from eth1.8 on an= other Linux system. With Linux 3.10 native i40evf driver as the guest VM, the VLAN 8 tagged fra= mes are received on i40evf, and the outgoing ICMP reply is tagged correctly= as VLAN 8=20 (verified with wireshark that the VLAN 8 header is present on the frames) With DPDK PMD (tried DPDK 16.7, 16.11, 17.8) running testpmd icmpecho, the = frames are received without any VLAN tag, so the reply is sent untagged and= the 'ping' fails=20 (verified using dpdk-pdump that the frames have VLAN stripped) Switching from i40evf to using vmxnet3 PV interface, testpmd works correctl= y with VLAN tagged frames. Also sending the icmp ping without VLAN headers on the i40evf, testpmd work= s correctly for the untagged case. So the problem seems to be specific to DPDK i40e PMD when using VLANs in SR= -IOV mode. My first thought was maybe VMware was configuring the PF to forcing VLAN st= ripping, but as Linux native i40evf driver is able to correctly, the VLANs = must be able to pass from PF to the VF. Maybe DPDK is doing something 'dif= ferent' compared to Linux for setting up the VF, and breaking VLAN tagging = as a result? But I don't know what that might be. Any ideas what I am doing wrong? I've included the test sequence below, w= hich trivially reproduces the difference in behavior. ps. I also tried different firmware and driver versions on the host interfa= ce, including the versions listed in the release note for each DPDK release= , with the same exact behavior. --- Steps to configure the Linux environment: ifconfig eth0 2.2.2.3 vconfig add eth0 8 ifconfig eth0.8 8.8.8.3 dumpcap -i eth0 Ping to the 2.2.2.3 and 8.8.8.3 IP addresses from the far-end device Observe that packets in the pcap (view using wireshark) are untagged for 2.= 2.2.3 and 8.8.8.3 tagged vlan 8, for both the icmp echo and reply Steps to configure the DPDK environment: ifconfig eth0 down dpdk-devbind.py --bind=3Digb_uio eth0 testpmd --log-level=3D8 --pci-whitelist 0000:03:00.0 -- --interactive --for= ward-mode=3Dicmpecho set verbose 1 set promisc 0 off set fwd icmpecho vlan set strip off 0 vlan set filter off 0 start Note: Verify that vlan strip and vlan filter are both disabled in 'show por= t info all'. >>From another session of the Linux host, run the dpdk-pdump tool to capture = the trace: dpdk-pdump - --pdump 'port=3D0,queue=3D*,rx-dev=3D/tmp/capture.pcap,tx-dev= =3D/tmp/capture.pcap' Ping to the 2.2.2.3 and 8.8.8.3 IP addresses from the far-end device Observe that all packets in the pcap appear as untagged for both icmp echo = and reply --- thanks, Iain