From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7CC03A2EFC for ; Mon, 14 Oct 2019 19:42:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2386E1C2A5; Mon, 14 Oct 2019 19:42:02 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 300871C25E; Mon, 14 Oct 2019 19:42:01 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 97BF518C4272; Mon, 14 Oct 2019 17:42:00 +0000 (UTC) Received: from [10.36.116.66] (ovpn-116-66.ams2.redhat.com [10.36.116.66]) by smtp.corp.redhat.com (Postfix) with ESMTP id 897D16D0A2; Mon, 14 Oct 2019 17:41:57 +0000 (UTC) To: Xiao Zhang , dev@dpdk.org Cc: beilei.xing@intel.com, qi.z.zhang@intel.com, stable@dpdk.org, "Stokes, Ian" References: <1571039632-5524-1-git-send-email-xiao.zhang@intel.com> From: Kevin Traynor Message-ID: Date: Mon, 14 Oct 2019 18:41:56 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 MIME-Version: 1.0 In-Reply-To: <1571039632-5524-1-git-send-email-xiao.zhang@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.62]); Mon, 14 Oct 2019 17:42:00 +0000 (UTC) Subject: Re: [dpdk-dev] net/i40e: fix vlan packets drop X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 14/10/2019 08:53, Xiao Zhang wrote: > vlan packets with ip length bigger then 1496 will not be received by > i40e due to wrong packets size checking. This patch fixes the issue by > correcting the maximum frame size during checking. > > Fixes: 35b2d13fd6fd ("net: add rte prefix to ether defines") To make sure it is backported to the correct stable branches, please tag the commit that introduced the bug, not the last commit to touch the line. > Cc: stable@dpdk.org > > Signed-off-by: Xiao Zhang > --- > drivers/net/i40e/i40e_ethdev.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c > index 2ca14da..156d67b 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c What about vf? > @@ -12103,7 +12103,7 @@ i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) > return -EBUSY; > } > > - if (frame_size > RTE_ETHER_MAX_LEN) > + if (frame_size > RTE_ETHER_MAX_LEN + I40E_VLAN_TAG_SIZE * 2) > dev_data->dev_conf.rxmode.offloads |= > DEV_RX_OFFLOAD_JUMBO_FRAME; > else > +cc Ian, who looked into MTU for i40e a while back. MTU code changing makes me nervous. You would need to look through everywhere there is something related to pkt len to check it is still ok. E.g. if I got it right (maybe I miss something), this means a 1500 mtu will set frame_size to 1526, which will turn off jumbo and set dev_data->dev_conf.rxmode.max_rx_pkt_len = 1526 Then in i40e_rx_queue_config() rxq->max_pkt_len = RTE_MIN(len, data->dev_conf.rxmode.max_rx_pkt_len); ^^^ lets say max_rx_pkt_len (1526) is the min if (data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) { [snip jumbo on branch] } else { if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN || rxq->max_pkt_len > RTE_ETHER_MAX_LEN) { ^^^ 1526 ^^^ 1518 PMD_DRV_LOG(ERR, "maximum packet length must be " "larger than %u and smaller than %u, " "as jumbo frame is disabled", (uint32_t)RTE_ETHER_MIN_LEN, (uint32_t)RTE_ETHER_MAX_LEN); return I40E_ERR_CONFIG; ^^^ Error returned ??? } }