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 4E38FA09E4 for ; Sun, 25 Apr 2021 10:04:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4A38B4115A; Sun, 25 Apr 2021 10:04:00 +0200 (CEST) Received: from smtpproxy21.qq.com (smtpbg702.qq.com [203.205.195.102]) by mails.dpdk.org (Postfix) with ESMTP id C6EE44068C for ; Sun, 25 Apr 2021 10:03:57 +0200 (CEST) X-QQ-mid: bizesmtp50t1619337832t77g6hfh Received: from jiawenwu.trustnetic.com (unknown [183.129.236.74]) by esmtp6.qq.com (ESMTP) with id ; Sun, 25 Apr 2021 16:03:51 +0800 (CST) X-QQ-SSF: 01400000002000D0E000B00A0000000 X-QQ-FEAT: YYU12otdbFnlaYwKZKbwNSV+C+uEC57nGouAbdqECyAQE98S1BR2VfzrxrF2z mFsFX/ArYBQLhRHZpFHeh5wSbq44jG4wXgjCwpfVP2D8A3GgHmo0kUUjC/LNBsGGIDa6kXk 9UzKa8xdUbyf+Afm/o51LK2Qe8fpNL8DnljhOXjZcqzFrWtUqUDDZBw/6lIJdCqnBVFGTjK 6oeXw8bECsG1tMI1+Q6ylEpgpFsNnzdkdYoNkpsP1vqEiUVaMO+0T8L3VL2cY+qjTz5+76f Pvm3WRkyBNsdQZk/n/WlyBGGNvqLhqNu9YREBXxj403rOG4DS1cw2ofe1kL4DjY+a8P1IeR kWhfzVVJECYR1/exUE= X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Date: Sun, 25 Apr 2021 16:03:44 +0800 Message-Id: <20210425080347.20376-2-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20210425080347.20376-1-jiawenwu@trustnetic.com> References: <20210425080347.20376-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign5 X-QQ-Bgrelay: 1 Subject: [dpdk-stable] [PATCH 1/4] net/txgbe: fix RSS in double VALN 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 Sender: "stable" Regard QINQ as one case of extend VLAN, and always enable QINQ mode when double VLAN is set, to avoid RSS does not work for QINQ packets. Fixes: 220b0e49bc47 ("net/txgbe: support VLAN") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_ethdev.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c index 97796f040b..87c041c2ec 100644 --- a/drivers/net/txgbe/txgbe_ethdev.c +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -1217,17 +1217,12 @@ static void txgbe_vlan_hw_extend_enable(struct rte_eth_dev *dev) { struct txgbe_hw *hw = TXGBE_DEV_HW(dev); - struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode; - struct rte_eth_txmode *txmode = &dev->data->dev_conf.txmode; uint32_t ctrl; PMD_INIT_FUNC_TRACE(); ctrl = rd32(hw, TXGBE_PORTCTL); - ctrl |= TXGBE_PORTCTL_VLANEXT; - if (rxmode->offloads & DEV_RX_OFFLOAD_QINQ_STRIP || - txmode->offloads & DEV_TX_OFFLOAD_QINQ_INSERT) - ctrl |= TXGBE_PORTCTL_QINQ; + ctrl |= TXGBE_PORTCTL_VLANEXT | TXGBE_PORTCTL_QINQ; wr32(hw, TXGBE_PORTCTL, ctrl); } @@ -1287,8 +1282,9 @@ txgbe_vlan_offload_config(struct rte_eth_dev *dev, int mask) txgbe_vlan_hw_filter_disable(dev); } - if (mask & ETH_VLAN_EXTEND_MASK) { - if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_EXTEND) + if (mask & (ETH_VLAN_EXTEND_MASK | ETH_QINQ_STRIP_MASK)) { + if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_EXTEND || + rxmode->offloads & DEV_RX_OFFLOAD_QINQ_STRIP) txgbe_vlan_hw_extend_enable(dev); else txgbe_vlan_hw_extend_disable(dev); -- 2.21.0.windows.1