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 B22AF468C4 for ; Tue, 10 Jun 2025 11:23:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A609642E70; Tue, 10 Jun 2025 11:23:02 +0200 (CEST) Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by mails.dpdk.org (Postfix) with ESMTP id 6D97142E5D for ; Tue, 10 Jun 2025 11:23:00 +0200 (CEST) X-QQ-mid: esmtpgz12t1749547377te27e59b1 X-QQ-Originating-IP: pAyy9H2d3ChuWtsicS2RBqa2T0prw0piz8Y9q7ph8w4= Received: from w-MS-7E16.trustnetic.com ( [36.20.60.58]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 10 Jun 2025 17:22:57 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 8307043763078561624 EX-QQ-RecipientCnt: 3 From: Jiawen Wu To: mengyuanlou@net-swift.com Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 07/12] net/ngbe: fix MAC control frame forwarding Date: Tue, 10 Jun 2025 17:22:32 +0800 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250610092237.232224-1-jiawenwu@trustnetic.com> References: <20250610092237.232224-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:trustnetic.com:qybglogicsvrgz:qybglogicsvrgz8a-1 X-QQ-XMAILINFO: NhIN2Vt8iz3R9PhVe8KpHDhMFEVoh0OG/Cy8Ftif5nSl9gwoxcMo9+5h lPL0ABO7rwdDrfmuskJtVScX4JTtCW5imtOOhWnDLqzDoTwwMY3G9RJr3S5PH6aJT1MTP8H 2aRceL4M1MNUwiD4UFFjPUQNipi26LSCXiazXYR6YWus28xoZKvCVbn2mJOKFidceu5eNMc XDukl5GxQ/6om5XO28/854tTZGLcjVw0DCaA+yrldczvdQDrXC2rynNOBNiWtVRq4QWa2pX pWsgvXpCHF9ApA4E1hbm3eCMqCaSVa0c5ZDlHvAFy8+fzvOsbCt55oYXpGIK909Nue/bqkH W9gbE1YDk4oy2Q1/DV1OPo1iKkJkAna66UKVP0dtRQXZZZoyhqnHeXeH3nBQfr08HQ4+CLA 0GGCED2ypI2vDga80G3r3eFuWnos208CQXe9seIG8MnFu3XCbOCut7nGnebE+cNIvo9yRve 2G3uCsZTuFj5ZeAzvGuB7m/2fuE/RpIIuG+pt9ZQAHEiuhchdJi5ctN4rG+9MqbCiphkbGf tOTz3Y3cv1oEzlLk2m37igcj45XpCuyvWn9wuZOsFxjWVO9aeohojOf48BmrcisHCnBmjsO pmLloAlgf/49osN2AieMFBOdSvYx8RP4a2/G6s3K4DlXC/VSbw5agPGiBGWRCTCvFLGeWVM N4/jzOevfCzhqd2AbioFFu5oGAzyDbs7EzPDlLUkUo5Whwk2syaNUDAmqlls+d3EolDq8Vl Kzddq1q+Lmn8+t5L7PBOM8VotGpqJubvVQ6UCBrAPG/Y7+mIBXkBjjGA4NeK9TAiMJulQxP qV3iJfkBZgMOz+0MCGV/kC5X4hW9FUiwYf4QLiL9+IWXQemx1mQkAmE+Jy81ASTkqy5SvGD f+6BDQDCRyU5SUteqqgF2/td61B96UiAXQZ6SQmCIJTZ9j3q/0teemSlV1OKUR+OUlBzGTe Ncb3cA6wHcyL8L4gyENJYQpMRlVm7fRnq94lTiMHhoKJJeoApLhdo+32eGwbjAAjAcS2IBa /k/+cy+sXxoGkB1rwwCxczhUUYyTiZ3bTTo+nw1Ec2G4/Tt60pxQ6JSAUgiZcLzDgWHQX3F 4U2LboMzwdB3d1aD97WaoQ= X-QQ-XMRINFO: NyFYKkN4Ny6FSmKK/uo/jdU= X-QQ-RECHKSPAM: 0 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 Test failure on the case "test_pause_fwd_port_stop_start", which expect MAC control frame forwarding setting still working after port stop/start. Fix the bug to pass the test case. Fixes: f40e9f0e2278 ("net/ngbe: support flow control") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/ngbe/base/ngbe_hw.c | 9 +++++++++ drivers/net/ngbe/base/ngbe_type.h | 1 + drivers/net/ngbe/ngbe_ethdev.c | 1 + 3 files changed, 11 insertions(+) diff --git a/drivers/net/ngbe/base/ngbe_hw.c b/drivers/net/ngbe/base/ngbe_hw.c index 6688ae6a31..bf09f8a817 100644 --- a/drivers/net/ngbe/base/ngbe_hw.c +++ b/drivers/net/ngbe/base/ngbe_hw.c @@ -865,6 +865,15 @@ s32 ngbe_setup_fc_em(struct ngbe_hw *hw) goto out; } + /* + * Reconfig mac ctrl frame fwd rule to make sure it still + * working after port stop/start. + */ + wr32m(hw, NGBE_MACRXFLT, NGBE_MACRXFLT_CTL_MASK, + (hw->fc.mac_ctrl_frame_fwd ? + NGBE_MACRXFLT_CTL_NOPS : NGBE_MACRXFLT_CTL_DROP)); + ngbe_flush(hw); + err = hw->phy.set_pause_adv(hw, reg_cu); out: diff --git a/drivers/net/ngbe/base/ngbe_type.h b/drivers/net/ngbe/base/ngbe_type.h index 7a3b52ffd4..fc571c7457 100644 --- a/drivers/net/ngbe/base/ngbe_type.h +++ b/drivers/net/ngbe/base/ngbe_type.h @@ -112,6 +112,7 @@ struct ngbe_fc_info { u32 high_water; /* Flow Ctrl High-water */ u32 low_water; /* Flow Ctrl Low-water */ u16 pause_time; /* Flow Control Pause timer */ + u8 mac_ctrl_frame_fwd; /* Forward MAC control frames */ bool send_xon; /* Flow control send XON */ bool strict_ieee; /* Strict IEEE mode */ bool disable_fc_autoneg; /* Do not autonegotiate FC */ diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c index 08e87471f6..a8f847de8d 100644 --- a/drivers/net/ngbe/ngbe_ethdev.c +++ b/drivers/net/ngbe/ngbe_ethdev.c @@ -2420,6 +2420,7 @@ ngbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf) hw->fc.low_water = fc_conf->low_water; hw->fc.send_xon = fc_conf->send_xon; hw->fc.disable_fc_autoneg = !fc_conf->autoneg; + hw->fc.mac_ctrl_frame_fwd = fc_conf->mac_ctrl_frame_fwd; err = hw->mac.fc_enable(hw); -- 2.48.1