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 1A17343C60 for ; Thu, 7 Mar 2024 02:37:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0BB3642F2D; Thu, 7 Mar 2024 02:37:31 +0100 (CET) Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mails.dpdk.org (Postfix) with ESMTP id 80AFA42F0B for ; Thu, 7 Mar 2024 02:37:29 +0100 (CET) Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-412e80e13abso3222805e9.3 for ; Wed, 06 Mar 2024 17:37:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709775449; x=1710380249; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=g593itUXe8nE3aYupJC/YhNWdPh8xYqe/G0T75kVkD8=; b=ks0y9PHHLoWtda+JijvDDF3jAGUCILAHzdvrg2wh0JUj66LbElk/YhkfaJDHejx/II nK4qFcsX2QpFBC3AC9gMxX0caaQQAbsx0kqMAG94GwecsiuZuU8vcBW7ndV6o/ThOaug L2D/QQspQRtZZUMuDIu9D+lhkkehT+eFkcMML8tu0tp+fT0fuPqjH+yRyTG+ExFrJ+nt oVeImTMjaiCbVU5LWx6m5w+CspYOkLVh7Edyo8b9qb2VjAC8o4prXSHfF7zBiW78GIjx RZXxsJcdInZBUmO0FQTYNB11/jl9JmdLJ14uWXGm+1H+jeIen5YbyvEwzzPuG54xQFNV d0wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709775449; x=1710380249; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g593itUXe8nE3aYupJC/YhNWdPh8xYqe/G0T75kVkD8=; b=WtooQZu9cZ1psTl3wW1NVt7L+1cmAUvuBBNeE4r2vgnkOZAlipgDOve4Q8bP9k57OD ppWqQzzGesMz7RsGDU5hsCfbEm509HuDfPCZCM1246cukOzOp6xe3/bKiYRWC3WXRC36 5r95Xvzca5tdPR4aYPPqGnMQvRjoh5B8LY4Uc6qa1WR+lpfJQQHHxM4WXNHlSx2BZLUQ q3Sy8Q1Tn7f70KKV1CqtE6IY875QczpcUFT5w9gSHexPZU+HjMJsM+YlAaGMooBrzBeO v9CJtQnOGYTtvx9wk5P8HfSytXd2AKgIsv6ARn8arkHoROMtBHdehUTYbXXsZG78HOD8 taKA== X-Gm-Message-State: AOJu0YxgZa64j/HoHeJe5bfNRWzqhnU/t+UeNWJEP7mm7vkITKqmF3/f L1mdRBON7Uz990pwM3iHqdLVSxFjtHOpZv/d9Tiwp6H2rGgrTlkE X-Google-Smtp-Source: AGHT+IGNSXCrckcoQraQ5l/r9RiksGLR0muQcrY9HtoQ21jg4Nz/WrcHtYIyrbdsIi+AtapniptUeQ== X-Received: by 2002:a05:600c:4e91:b0:412:b489:14f9 with SMTP id f17-20020a05600c4e9100b00412b48914f9mr13761499wmq.15.1709775449099; Wed, 06 Mar 2024 17:37:29 -0800 (PST) Received: from localhost ([137.220.120.171]) by smtp.gmail.com with ESMTPSA id cc6-20020a5d5c06000000b0033e45c3f026sm7186143wrb.4.2024.03.06.17.37.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Mar 2024 17:37:28 -0800 (PST) From: luca.boccassi@gmail.com To: Hanumanth Pothula Cc: dpdk stable Subject: patch 'net/thunderx: fix DMAC control register update' has been queued to stable release 22.11.5 Date: Thu, 7 Mar 2024 01:31:49 +0000 Message-Id: <20240307013159.1735343-92-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240307013159.1735343-1-luca.boccassi@gmail.com> References: <20240307013159.1735343-1-luca.boccassi@gmail.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 Hi, FYI, your patch has been queued to stable release 22.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 03/09/24. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/f1110aacd89326448e31baf65b6df16e7c7436df Thanks. Luca Boccassi --- >From f1110aacd89326448e31baf65b6df16e7c7436df Mon Sep 17 00:00:00 2001 From: Hanumanth Pothula Date: Thu, 21 Dec 2023 16:49:59 +0530 Subject: [PATCH] net/thunderx: fix DMAC control register update [ upstream commit 44a8635459cbc83cde94b64971faee34ca9be19d ] By default dmac control register is set to reject packets on mac address match, leading all unicast packets to drop. Update DMAC control register to allow packets on MAC address match rather than dropping. Fixes: e438796617dc ("net/thunderx: add PMD skeleton") Signed-off-by: Hanumanth Pothula --- drivers/net/thunderx/base/nicvf_mbox.c | 12 ++++++++++++ drivers/net/thunderx/base/nicvf_mbox.h | 10 ++++++++++ drivers/net/thunderx/nicvf_ethdev.c | 26 ++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/drivers/net/thunderx/base/nicvf_mbox.c b/drivers/net/thunderx/base/nicvf_mbox.c index 5993eec4e6..0e0176974d 100644 --- a/drivers/net/thunderx/base/nicvf_mbox.c +++ b/drivers/net/thunderx/base/nicvf_mbox.c @@ -485,3 +485,15 @@ nicvf_mbox_reset_xcast(struct nicvf *nic) mbx.msg.msg = NIC_MBOX_MSG_RESET_XCAST; nicvf_mbox_send_msg_to_pf(nic, &mbx); } + +int +nicvf_mbox_set_xcast(struct nicvf *nic, uint8_t mode, uint64_t mac) +{ + struct nic_mbx mbx = { .msg = { 0 } }; + + mbx.xcast.msg = NIC_MBOX_MSG_SET_XCAST; + mbx.xcast.mode = mode; + mbx.xcast.mac = mac; + + return nicvf_mbox_send_msg_to_pf(nic, &mbx); +} diff --git a/drivers/net/thunderx/base/nicvf_mbox.h b/drivers/net/thunderx/base/nicvf_mbox.h index 322c8159cb..47f3d13755 100644 --- a/drivers/net/thunderx/base/nicvf_mbox.h +++ b/drivers/net/thunderx/base/nicvf_mbox.h @@ -45,6 +45,8 @@ #define NIC_MBOX_MSG_CFG_DONE 0xF0 /* VF configuration done */ #define NIC_MBOX_MSG_SHUTDOWN 0xF1 /* VF is being shutdown */ #define NIC_MBOX_MSG_RESET_XCAST 0xF2 /* Reset DCAM filtering mode */ +#define NIC_MBOX_MSG_ADD_MCAST 0xF3 /* ADD MAC to DCAM filters */ +#define NIC_MBOX_MSG_SET_XCAST 0xF4 /* Set MCAST/BCAST Rx mode */ #define NIC_MBOX_MSG_MAX 0x100 /* Maximum number of messages */ /* Get vNIC VF configuration */ @@ -190,6 +192,12 @@ struct change_link_mode_msg { }; +struct xcast { + uint8_t msg; + uint8_t mode; + uint64_t mac:48; +}; + struct nic_mbx { /* 128 bit shared memory between PF and each VF */ union { @@ -209,6 +217,7 @@ union { struct reset_stat_cfg reset_stat; struct set_link_state set_link; struct change_link_mode_msg mode; + struct xcast xcast; }; }; @@ -239,5 +248,6 @@ void nicvf_mbox_cfg_done(struct nicvf *nic); void nicvf_mbox_link_change(struct nicvf *nic); void nicvf_mbox_reset_xcast(struct nicvf *nic); int nicvf_mbox_change_mode(struct nicvf *nic, struct change_link_mode *cfg); +int nicvf_mbox_set_xcast(struct nicvf *nic, uint8_t mode, uint64_t mac); #endif /* __THUNDERX_NICVF_MBOX__ */ diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index dd77a6c7fd..7045a71dca 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -58,6 +58,10 @@ RTE_LOG_REGISTER_SUFFIX(nicvf_logtype_driver, driver, NOTICE); #define NICVF_QLM_MODE_SGMII 7 #define NICVF_QLM_MODE_XFI 12 +#define BCAST_ACCEPT 0x01 +#define CAM_ACCEPT (1 << 3) +#define BGX_MCAST_MODE(x) ((x) << 1) + enum nicvf_link_speed { NICVF_LINK_SPEED_SGMII, NICVF_LINK_SPEED_XAUI, @@ -2185,9 +2189,22 @@ nicvf_eth_dev_uninit(struct rte_eth_dev *dev) nicvf_dev_close(dev); return 0; } + +static inline uint64_t ether_addr_to_u64(uint8_t *addr) +{ + uint64_t u = 0; + int i; + + for (i = 0; i < RTE_ETHER_ADDR_LEN; i++) + u = u << 8 | addr[i]; + + return u; +} + static int nicvf_eth_dev_init(struct rte_eth_dev *eth_dev) { + uint8_t dmac_ctrl_reg = 0; int ret; struct rte_pci_device *pci_dev; struct nicvf *nic = nicvf_pmd_priv(eth_dev); @@ -2311,6 +2328,15 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev) goto malloc_fail; } + /* set DMAC CTRL reg to allow MAC */ + dmac_ctrl_reg = BCAST_ACCEPT | BGX_MCAST_MODE(2) | CAM_ACCEPT; + ret = nicvf_mbox_set_xcast(nic, dmac_ctrl_reg, + ether_addr_to_u64(nic->mac_addr)); + if (ret) { + PMD_INIT_LOG(ERR, "Failed to set mac addr"); + goto malloc_fail; + } + ret = nicvf_set_first_skip(eth_dev); if (ret) { PMD_INIT_LOG(ERR, "Failed to configure first skip"); -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-03-07 01:05:42.528375359 +0000 +++ 0092-net-thunderx-fix-DMAC-control-register-update.patch 2024-03-07 01:05:34.998944261 +0000 @@ -1 +1 @@ -From 44a8635459cbc83cde94b64971faee34ca9be19d Mon Sep 17 00:00:00 2001 +From f1110aacd89326448e31baf65b6df16e7c7436df Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 44a8635459cbc83cde94b64971faee34ca9be19d ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -83 +84 @@ -index ddcc52770e..609d95dcfa 100644 +index dd77a6c7fd..7045a71dca 100644 @@ -97 +98 @@ -@@ -2182,9 +2186,22 @@ nicvf_eth_dev_uninit(struct rte_eth_dev *dev) +@@ -2185,9 +2189,22 @@ nicvf_eth_dev_uninit(struct rte_eth_dev *dev) @@ -120 +121 @@ -@@ -2308,6 +2325,15 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev) +@@ -2311,6 +2328,15 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)