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 E5420430BE for ; Mon, 21 Aug 2023 11:24:33 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BC83D4282D; Mon, 21 Aug 2023 11:24:33 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 50D43427E9 for ; Mon, 21 Aug 2023 11:24:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692609872; x=1724145872; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SuhHeegUWgFP7AGeeJ58TC5JN0R2vQVHvZh3TtsYN+A=; b=mlVEfIEBSZgQzAWcK31PkD+mP2hNzq1ptYK5JdqJceoygYYdcPULb+2A PzH0pciwGEe3Jw0nwBhMhKlVIljFdP/eh2DROxX9NhK2QjpvW3aibbRzr LM/HwFveE7UamHDNxSRMfphQ9WkqBgOqu50JXLZWpvT71kjv+mjx4ZHV2 bG+I5SrtwMMmHOBfF+Vr0MlPVfJHicJsyjKYijZuL/a9ICB8oEvfdLWZQ ZOzUA5ujxR8Y6m13+iSxlg2rHxM4tiw3ZFkMSxexBCj+H1fZXl66QniDU EPLYg/e5M4LH/ddp4AJ9GJ7o10JB++hzlb0pcDFNpbxk/YwmRx+y9zXjT A==; X-IronPort-AV: E=McAfee;i="6600,9927,10808"; a="370976195" X-IronPort-AV: E=Sophos;i="6.01,189,1684825200"; d="scan'208";a="370976195" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Aug 2023 02:24:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.01,202,1684825200"; d="scan'208";a="879451283" Received: from dpdk-wenjing-02.sh.intel.com ([10.67.119.75]) by fmsmga001.fm.intel.com with ESMTP; 21 Aug 2023 02:24:32 -0700 From: Wenjing Qiao To: jingjing.wu@intel.com, beilei.xing@intel.com Cc: stable@dpdk.org, zhiminx.huang@intel.com, Wenjing Qiao Subject: [PATCH v3] net/iavf: fix VLAN offload strip flag inconsistency Date: Mon, 21 Aug 2023 09:20:32 +0000 Message-Id: <20230821092031.211436-1-wenjing.qiao@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230712074831.1252086-1-wenjing.qiao@intel.com> References: <20230712074831.1252086-1-wenjing.qiao@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP, it will set strip on when setting filter on but dpdk side will not change strip flag. To be consistent with dpdk side, disable strip again. Fixes: cb25d4323fbf ("net/avf: enable MAC VLAN and promisc ops") Cc: stable@dpdk.org Signed-off-by: Wenjing Qiao --- drivers/net/iavf/iavf_ethdev.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 00b963128b..bdfc0ed098 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -1361,6 +1361,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) struct iavf_adapter *adapter = IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter); + struct rte_eth_conf *dev_conf = &dev->data->dev_conf; int err; if (adapter->closed) @@ -1379,6 +1380,23 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) err = iavf_add_del_vlan(adapter, vlan_id, on); if (err) return -EIO; + + /* For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP, + * it will set strip on when setting filter on but dpdk side will not + * change strip flag. To be consistent with dpdk side, disable strip + * again. + * + * For i40e kernel driver which supports vlan v2, dpdk will invoke vlan v2 + * related function, so it won't go through here. + */ + if (adapter->hw.mac.type == IAVF_MAC_XL710 || + adapter->hw.mac.type == IAVF_MAC_X722_VF) { + if (on && !(dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) { + err = iavf_disable_vlan_strip(adapter); + if (err) + return -EIO; + } + } return 0; } -- 2.34.1