From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 662EBA0508; Mon, 4 Apr 2022 17:37:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2E8CF4281A; Mon, 4 Apr 2022 17:37:05 +0200 (CEST) Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) by mails.dpdk.org (Postfix) with ESMTP id 2048D4068C for ; Mon, 4 Apr 2022 17:37:04 +0200 (CEST) Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-2eb680211d9so33676877b3.9 for ; Mon, 04 Apr 2022 08:37:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UclwiShPSlLX+v4lWeenfkbXv5kr7ksEbe1H1+D+/5I=; b=W8udNqR48AxCDUhiL9aXhYQkf/ls/wB/5j20bS0jzGU3He+LVy0r62ufjb4IjyJOFE eXJmTZfe8EOzwrL1o83rJ/epdt4YKPDCucXZfc+cnqY2gByozOj3Gfm6fjO+Sj4GWr1s 7q50C/6WLuSF3T3z3WTxV9WvKP7BBxV1adWr3tER0W8IRe4vHFhdM5qLbcc2p9sR5plf Cpjg/H5m8bR48TyZRqwY1DNB6LbTqOthirkvL7/lHc3LdPeUfavLR1Nw6cSlymDG79yB /VZaJwbzF2X94mJ6SBijxEuLVAPwUd7Wifw+eq7Rv78QdgX/XBW7CFA7bbVwzSAwrpsv c8Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UclwiShPSlLX+v4lWeenfkbXv5kr7ksEbe1H1+D+/5I=; b=lGKeZZ9AOcDs3AUC+YVuXtrDual70ydn7UF2YYB5TbMUljZfn02irbp5CLko0ojhrT a6QnD41tqWN/YebPU8nosiNjlpZma9pBHNuwh7Lkki9zRRHreRQUu5jYgi2akxomNSHz QkcyMw/QLb4RE4eZkdXyjjVt8gRCstVPTNVJzZhM3RfAwxeorsb8GFX8mfCysoG5M79S NAerWHVVCb+dcgY0fjFXuRGWxa8XJ5TF0KRX8cjRJeUxQZ+KgnAhkbMbskBDvGvTAkaK CVddVsbIPS4gH/XSR0P/HwStCr96SddhAOlcH8luzqqtxC7+XukCYwTiye+Iji0HgPmg jI0A== X-Gm-Message-State: AOAM531xIvL2K7urvt/E3qM744OaO+NEfHy55DvDqlv55tQj2u9RrMmY 05xlSaSjcsPepwDxYAWLE0FmX9deDnHZZB8ix6L4zCs4LUI= X-Google-Smtp-Source: ABdhPJzgJiPCxgDLxW2W0e9jL86FyLgPXJuLwu1Y6e11iwaNcNu+FcoOMFeFxas6IhASvZxZoKDRoGUInG6l1NVQius= X-Received: by 2002:a0d:f487:0:b0:2eb:54f5:3abf with SMTP id d129-20020a0df487000000b002eb54f53abfmr486527ywf.141.1649086623117; Mon, 04 Apr 2022 08:37:03 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ben Magistro Date: Mon, 4 Apr 2022 11:36:51 -0400 Message-ID: Subject: Re: i40e QinQ Offload w/ NVM 8.40 not working To: dev@dpdk.org Cc: ben.magistro@trinitycyber.com, Stefan Baranoff Content-Type: multipart/alternative; boundary="0000000000005ff36105dbd5e624" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --0000000000005ff36105dbd5e624 Content-Type: text/plain; charset="UTF-8" Hello, Wanted to follow up with some additional testing results. I believe this is a bug at the NVM firmware level but still want someone else to confirm. We can easily retest or change parameters of testpmd to provide additional information if desired. In parallel to this we will be trying to reach out to Intel and Dell (Intel branded card with firmware provided by Dell) to report this bug for additional follow up. Device configuration: traffic gen (trex) --> sw1 (basic vlan -- vl 200) --> sw2 (qinq push -- vl 300) -- dut (testpmd) OS: CentOS 7.9 DPDK 21.11 (different than initial report, used to move to a current version and try to rule out other issues, but same issue) testpmd cmd: sudo /tmp/dpdk-testpmd -c 0xffff -- -i --enable-hw-vlan --enable-hw-vlan-strip --enable-hw-vlan-extend --enable-hw-qinq-strip NVM version(s): 8.15 (working) and 8.40 (non-working) Offload configuration (these were the same under both 8.15 and 8.40 so only providing one copy) testpmd> show port 0 rx_offload configuration Rx Offloading Configuration of port 0 : Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND testpmd> show port 1 rx_offload configuration Rx Offloading Configuration of port 1 : Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND testpmd> show port 2 rx_offload configuration Rx Offloading Configuration of port 2 : Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND testpmd> show port 3 rx_offload configuration Rx Offloading Configuration of port 3 : Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND When running testpmd with the above cmdline parameters and then setting "set fwd rxonly" we observe the following results with the different firmwares. 8.15 (working) src=F8:F2:1E:31:96:D0 - dst=F8:F2:1E:31:96:D1 - type=0x0800 - length=74 - nb_segs=1 - QinQ VLAN tci=0xc8, VLAN tci outer=0x12c - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER L3_IPV4 L4_TCP - l2_len=14 - l3_len=20 - l4_len=40 - Receive queue=0x0 ol_flags: RTE_MBUF_F_RX_VLAN RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_VLAN_STRIPPED RTE_MBUF_F_RX_QINQ_STRIPPED RTE_MBUF_F_RX_QINQ RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN 8.40 (non working) src=F8:F2:1E:31:96:D0 - dst=F8:F2:1E:31:96:D1 - type=0x8100 - length=78 - nb_segs=1 - VLAN tci=0xc8 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER_VLAN L3_IPV4 L4_TCP - l2_len=18 - l3_len=20 - l4_len=40 - Receive queue=0x0 ol_flags: RTE_MBUF_F_RX_VLAN RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_VLAN_STRIPPED RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN Thanks, Ben On Fri, Apr 1, 2022 at 11:13 AM Ben Magistro wrote: > Hello, > > We recently needed to apply a firmware upgrade for some XXV710s to resolve > a FEC issue (I'd have to find the details in email) but applied this same > firmware to other nics (XL710s) to maintain a consistent baseline. In > testing we have seen the NVM 8.40 resolve the FEC issue but it introduces > an issue with QinQ offloading + stripping. When running NVM 8.15 (previous > version), we could send QinQ traffic, and the nic would properly strip and > store the values into vlan_tci and vlan_tci_outer as expected. When > running NVM 8.40 (FEC fix version) sending QinQ traffic is only stripping > the inner tag. The code we are using has not changed. > > I added some additional lines to drivers/net/i40e/i40e_rxtx.c to help > troubleshoot this, specifically one to log the vlans and one to log > ext_status. In comparing the two, ext_status is 0 under 8.40 while it is 1 > under 8.15. This does correspond with not running the second layer > processing code in the i40e_rxtx.c (line ~87). We will continue to > investigate but would like to get this out there sooner and ask for > assistance in confirming this behavior. > > This is a Dell based card so the firmware package used to update/downgrade > the card is coming from Dell and not Intel directly. It is our assumption > that the firmware in general should be pretty consistent between the two. > > Traffic is being generated by trex with the vlan nesting being pushed by > some Juniper switches. Both vlan tags are 0x8100. > > OS: CentOS 7.9 > DPDK: 20.08 (we know it's not supported anymore, but were trying to put > off that upgrade until some other changes were also completed) > NIC: i40e XL710 -- net_i40e / firmware 8.15 0x800096d0 20.0.17 > > If there are any additional details needed please let us know. > > Thanks, > > Ben > --0000000000005ff36105dbd5e624 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello,

Wanted to follow up with some ad= ditional testing results.=C2=A0 I believe this is a bug at the NVM firmware= level but still want someone=C2=A0else to confirm.=C2=A0 We can easily ret= est or change parameters of testpmd to provide additional information if de= sired.=C2=A0 In parallel to this we will be trying to reach out to Intel an= d Dell (Intel branded card with firmware provided by Dell) to report this b= ug for additional follow up.

Device configuration:=
traffic gen (trex) --> sw1 (basic vlan -- vl 200) --> sw2 = (qinq push -- vl 300) -- dut (testpmd)

OS: CentOS = 7.9
DPDK 21.11 (different than initial report, used to move to a = current version and try to rule out other issues, but same issue)
testpmd cmd:=C2=A0sudo /tmp/dpdk-testpmd -c 0xffff -- -i --enable-hw-vlan = --enable-hw-vlan-strip --enable-hw-vlan-extend --enable-hw-qinq-strip
=
NVM version(s): 8.15 (working) and 8.40 (non-working)

Offload configuration (these were the same under both 8.15 and 8.4= 0 so only providing one copy)
testpmd> show port 0 rx_offload = configuration
Rx Offloading Configuration of port 0 :
=C2=A0 Port : = VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
=C2=A0 Queue[ 0] : VLAN_ST= RIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND

testpmd> show port 1 rx_of= fload configuration
Rx Offloading Configuration of port 1 :
=C2=A0 P= ort : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
=C2=A0 Queue[ 0] : V= LAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND

testpmd> show port 2= rx_offload configuration
Rx Offloading Configuration of port 2 :
= =C2=A0 Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
=C2=A0 Queue= [ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND

testpmd> sho= w port 3 rx_offload configuration
Rx Offloading Configuration of port 3= :
=C2=A0 Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
=C2=A0= Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
When running testpmd with the above cmdline parameters and the= n setting "set fwd rxonly" we observe the following results with = the different firmwares.
8.15 (working)
=C2=A0 =C2=A0 =C2=A0= src=3DF8:F2:1E:31:96:D0 - dst=3DF8:F2:1E:31:96:D1 - type=3D0x0800 - length= =3D74 - nb_segs=3D1 - QinQ VLAN tci=3D0xc8, VLAN tci outer=3D0x12c - hw pty= pe: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP =C2=A0- sw ptype: L2_ETHER L3_IPV4 = L4_TCP =C2=A0- l2_len=3D14 - l3_len=3D20 - l4_len=3D40 - Receive queue=3D0x= 0
=C2=A0 =C2=A0 ol_flags: RTE_MBUF_F_RX_VLAN RTE_MBUF_F_RX_L4_CKSUM_GOO= D RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_VLAN_STRIPPED RTE_MBUF_F_RX_QIN= Q_STRIPPED RTE_MBUF_F_RX_QINQ RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN

8.40 (non working)
=C2=A0 =C2=A0 =C2=A0src= =3DF8:F2:1E:31:96:D0 - dst=3DF8:F2:1E:31:96:D1 - type=3D0x8100 - length=3D7= 8 - nb_segs=3D1 - VLAN tci=3D0xc8 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN = L4_TCP =C2=A0- sw ptype: L2_ETHER_VLAN L3_IPV4 L4_TCP =C2=A0- l2_len=3D18 -= l3_len=3D20 - l4_len=3D40 - Receive queue=3D0x0
=C2=A0 =C2= =A0=C2=A0ol_flags: RTE_MBUF_F_RX_VLAN RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_= F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_VLAN_STRIPPED RTE_MBUF_F_RX_OUTER_L4_CKSUM= _UNKNOWN


Thanks,
Ben

On Fri, Apr 1, 2022 at 11:13 AM Ben Magistro <koncept1@gmail.com> wrote:
Hello,=

We recently needed to apply a firmware upgrade for some= XXV710s to resolve a FEC issue (I'd have to find the details in email)= but applied this same firmware to other=C2=A0nics (XL710s) to maintain a c= onsistent=C2=A0baseline.=C2=A0 In testing we have seen the NVM 8.40 resolve= the FEC issue but it introduces an issue with QinQ offloading + stripping.= =C2=A0 When running NVM 8.15 (previous version), we could send QinQ traffic= , and the nic would properly=C2=A0strip and store the values into vlan_tci = and vlan_tci_outer as expected.=C2=A0 When running NVM 8.40 (FEC fix versio= n) sending QinQ traffic is only stripping the inner tag.=C2=A0 The code we = are using has not changed.

I added some additional= lines to drivers/net/i40e/i40e_rxtx.c to help troubleshoot this, specifica= lly one to log the vlans and one to log ext_status.=C2=A0 In comparing the = two, ext_status is 0 under 8.40 while it is 1 under 8.15.=C2=A0 This does c= orrespond with not running the second layer processing code in the i40e_rxt= x.c (line ~87).=C2=A0 We will continue to investigate but would like to get= this out there=C2=A0sooner and ask for assistance in confirming this behav= ior.

This is a Dell based card so the firmware package used t= o update/downgrade the card is coming from Dell and not Intel directly.=C2= =A0 It is our assumption that the firmware in general should be pretty cons= istent between the two.

Traffic is being gener= ated by trex with the vlan nesting being pushed by some Juniper switches.= =C2=A0 Both vlan tags are 0x8100.

OS: CentOS 7.9
DPDK: 20.08 (we know it's not supported anymore, but were tryi= ng to put off that upgrade until some other changes were also completed)
NIC: i40e XL710 -- net_i40e / firmware 8.15 0x800096d0 20.0.17

If there are any additional details needed please let = us know.

Thanks,

Ben
--0000000000005ff36105dbd5e624--