From nobody Fri Oct 3 15:32:44 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D43431A07F; Thu, 28 Aug 2025 14:41:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392080; cv=none; b=OBkC7yLvspagGHVLn/ZEOOXtlHzy8PYFtzAWZblSAxHVkvTDpbEKG+KxTmYde3uh4stQly+zbjEB9Us+gUM8+AF74mmrdahvFFfG/U7Qadq8QvEz1ipKM0ND/CiJ0go5jwWzFSLgdjwmeK+UPGvWRGSg+5X80k/RVA570udWhHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392080; c=relaxed/simple; bh=Emkincztq+ESuTAwOM8FQsWK3EeOxFJGFgYatXf5yd0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aZ51mLf6ImyLQzOqZaytcTMV8uR/rJ4KtbyFM9Vny/la+HBK89vF2Xs4t7f+yYvfYyKsApgQj8Jx4zTtIJc3L9hx0Q0jYjrnCDgvGXbEK/0rmyRgjRUFRqkp5UszNoXs9RYND7Et0X8W/gA99iXE7yDFu3c4rrB0kev7k7VpYzo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=V7y2naef; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="V7y2naef" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756392079; x=1787928079; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Emkincztq+ESuTAwOM8FQsWK3EeOxFJGFgYatXf5yd0=; b=V7y2naef5BIIo+cX7mCfi+4gILtt3Athiny4jppKjjDhHergVyJnDLzK htKYX0iklN60D8nm7phZfuswmzbo4CcjPtcYsKqcm09KdIk05LI4QC9RB WlRKtnPWOLixtCDrAPERLqdjaWj8T5H3f9BguIcdRwU2ivhFyYsiumMxx 9X92XfrKD3F7Whox6vc/cGN5VT3WtouX6wI1sytD9SFf3NrQp/9/100Cd Q6VodUzRGQCwU7+dCJCWcvh0tmZqibBj+Ud6H9GJCTTx8h3cZh++8CyEx Z8Al6QnC34kM9Rx7e080DVFPVC/oYteoifUFzZ/IXkosLqwDZwWTgQvy7 Q==; X-CSE-ConnectionGUID: xs/sag7XTJyGGx0qR2Oj9w== X-CSE-MsgGUID: 4vGWZFVhTjO6K5Z4W6MPuw== X-IronPort-AV: E=McAfee;i="6800,10657,11536"; a="58515383" X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="58515383" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Aug 2025 07:41:19 -0700 X-CSE-ConnectionGUID: loQC8UQ7RQmPhLYSJaEcgg== X-CSE-MsgGUID: jnWiftY9Rxy6OuLutuC4Tg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="207276077" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa001.jf.intel.com with ESMTP; 28 Aug 2025 07:41:15 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 1/4] net: stmmac: enable ARP Offload on mac_link_up() Date: Thu, 28 Aug 2025 16:45:55 +0200 Message-Id: <20250828144558.304304-2-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250828144558.304304-1-konrad.leszczynski@intel.com> References: <20250828144558.304304-1-konrad.leszczynski@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Karol Jurczenia Add Address Resolution Protocol (ARP) Offload support in stmmac_mac_link_up() to enable ARP Offload beside the selftests. Introduce STMMAC_FLAG_ARP_OFFLOAD_EN flag, which is used to enable the feature with the stmmac_set_arp_offload(). Reviewed-by: Sebastian Basierski Reviewed-by: Cezary Rojewski Signed-off-by: Karol Jurczenia Signed-off-by: Konrad Leszczynski Reviewed-by: Jacob Keller --- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 18 ++++++++++++++++++ include/linux/stmmac.h | 1 + 2 files changed, 19 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index fa3d26c28502..244ef484bb88 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -964,6 +965,8 @@ static void stmmac_mac_link_up(struct phylink_config *c= onfig, bool tx_pause, bool rx_pause) { struct stmmac_priv *priv =3D netdev_priv(to_net_dev(config->dev)); + struct in_device *in_dev; + struct in_ifaddr *ifa; unsigned int flow_ctrl; u32 old_ctrl, ctrl; int ret; @@ -1076,6 +1079,21 @@ static void stmmac_mac_link_up(struct phylink_config= *config, =20 if (priv->plat->flags & STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY) stmmac_hwtstamp_correct_latency(priv, priv); + + if (priv->plat->flags & STMMAC_FLAG_ARP_OFFLOAD_EN) { + in_dev =3D in_dev_get(priv->dev); + if (!in_dev) + return; + + rcu_read_lock(); + ifa =3D rcu_dereference(in_dev->ifa_list); + if (ifa) + stmmac_set_arp_offload(priv, priv->hw, true, + ntohl(ifa->ifa_address)); + rcu_read_unlock(); + + __in_dev_put(in_dev); + } } =20 static void stmmac_mac_disable_tx_lpi(struct phylink_config *config) diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index e284f04964bf..afb45d8eb840 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h @@ -185,6 +185,7 @@ struct dwmac4_addrs { #define STMMAC_FLAG_EN_TX_LPI_CLOCKGATING BIT(11) #define STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP BIT(12) #define STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY BIT(13) +#define STMMAC_FLAG_ARP_OFFLOAD_EN BIT(14) =20 struct plat_stmmacenet_data { int bus_id; --=20 2.34.1 From nobody Fri Oct 3 15:32:44 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5943431AF18; Thu, 28 Aug 2025 14:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392083; cv=none; b=PPe1VZC3a33kjwxMLVhL8UaEIU7lAVH1230rbw4FKGruRVNEwLRQ/kh4ZY0AbHN7VZu7xeKubcHm6FNz89zAV05a9D7/1OgeO5yWe/x+W52OAbI0oG25flvHC3mZfZgrvdg4IudpdYLP81mwCVXU5eCzVrNcq0ADcpux8bTLEtY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392083; c=relaxed/simple; bh=/wwOIa8YeuKhU78bbwDt4af1abVveZsf06IsGyLyLa8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Jo/LJY5xfaP/jR/XJ0QyG6csAB6fKE2T7YoOuL5dt8FZSJGhlt1eZJXp2F6dW7PFniKySM0iuQjW1c2VJb3J4TNg3SGAR8MaVLsnp3SxvSVyvFNKRoWtRZ9Ro7Qe7VYO4TY/3rvbXwnQeRTmfIWYBSkiTsKo3awMEi2tja1wtOo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=UW1KwOjJ; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="UW1KwOjJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756392082; x=1787928082; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/wwOIa8YeuKhU78bbwDt4af1abVveZsf06IsGyLyLa8=; b=UW1KwOjJq/lLEOUYsysJNROZedj8nj3K80E3/BE2XPzGuckDLcYK8u14 vx0MQzfxI3o+eA1VkfBWP5CXGK+ZiAzFVZnjInkQJzkQ1ox7rpt6PjEEa K1OJLgfpwmj0PL3Yu9zHLy+bLBuRa9aOW3fYjbATXt1rykGOMGdpI3q9H qiNKj0IxDgDGBP7qh6hn5fiIsK96lRupIMuzEk+uKv/bAOOxcrMgiHoXn XmuZgqFZyl3lAFeYd6kvrNI+RuvbHdnwebj7PGIph5uW3QIm64Zz1C7PF Jg1w3mA4ULNCk1Lvv3jY9vH3g/TJfdMd6gkBgtCCiBmHNQ1DogpgZ0cnJ g==; X-CSE-ConnectionGUID: p3m1vcryRqmgskVTTbHL+Q== X-CSE-MsgGUID: W0v/jubqTQ6/i1o9nSBuDg== X-IronPort-AV: E=McAfee;i="6800,10657,11536"; a="58515391" X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="58515391" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Aug 2025 07:41:22 -0700 X-CSE-ConnectionGUID: zTzqkvglRQOPhoxH/MlEaw== X-CSE-MsgGUID: Lk6InVBgRlOoCM/dqjziwg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="207276088" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa001.jf.intel.com with ESMTP; 28 Aug 2025 07:41:18 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 2/4] net: stmmac: set TE/RE bits for ARP Offload when interface down Date: Thu, 28 Aug 2025 16:45:56 +0200 Message-Id: <20250828144558.304304-3-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250828144558.304304-1-konrad.leszczynski@intel.com> References: <20250828144558.304304-1-konrad.leszczynski@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Karol Jurczenia When the network interface is brought down and ARP Offload is enabled, set the TE (Transmitter Enable) and RE (Receiver Enable) bits. Ensure that the Network Interface Card (NIC) can continue handling ARP responses in hardware even when the interface is down. Reviewed-by: Sebastian Basierski Reviewed-by: Cezary Rojewski Signed-off-by: Karol Jurczenia Signed-off-by: Konrad Leszczynski Reviewed-by: Jacob Keller --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index 244ef484bb88..8977e5aebc71 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -950,7 +950,9 @@ static void stmmac_mac_link_down(struct phylink_config = *config, { struct stmmac_priv *priv =3D netdev_priv(to_net_dev(config->dev)); =20 - stmmac_mac_set(priv, priv->ioaddr, false); + if (!(priv->plat->flags & STMMAC_FLAG_ARP_OFFLOAD_EN)) + stmmac_mac_set(priv, priv->ioaddr, false); + if (priv->dma_cap.eee) stmmac_set_eee_pls(priv, priv->hw, false); =20 @@ -4183,6 +4185,10 @@ static int stmmac_release(struct net_device *dev) /* Release and free the Rx/Tx resources */ free_dma_desc_resources(priv, &priv->dma_conf); =20 + /* Disable MAC Rx/Tx */ + stmmac_mac_set(priv, priv->ioaddr, priv->plat->flags & + STMMAC_FLAG_ARP_OFFLOAD_EN); + /* Powerdown Serdes if there is */ if (priv->plat->serdes_powerdown) priv->plat->serdes_powerdown(dev, priv->plat->bsp_priv); --=20 2.34.1 From nobody Fri Oct 3 15:32:44 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92B3331B130; Thu, 28 Aug 2025 14:41:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392086; cv=none; b=BxOxEOg30wCbbzTmafnB80KY0tbMzkMi/BLMjtO3uYPenPQyvw6MwM79WJ9FvpRfxMeVujSeto5jv7awyO4wknmUCcp5mewNgvZKe7IOUTP9ZznhPl1qn5QhkdpXXnfu363cAfs2nlZ5mzk1VA7z4B4TkqpZOwqepLq+wyGp1I4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392086; c=relaxed/simple; bh=EH3MQczFR1osST+LDNrfbkacgumXNnVwKSgenYdIlsE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=eoXUaijR95ZkamC0GCxdCEjV7uIi0EGvFpNstRj5EoHYMQwwSVWX+s7yamHvyPQ+RHlm1EgFIlsPuNPs9jaOHdJnmEpuLvR5cckzXXuFQJGhDL1L5Fx2yf9Ky4XX0xcWEzR/6VKui4UoF4CYnxMdi98tBTyS3GCxM5lGOPpKIR8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=FWIb746O; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="FWIb746O" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756392085; x=1787928085; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=EH3MQczFR1osST+LDNrfbkacgumXNnVwKSgenYdIlsE=; b=FWIb746O2h6Y9YJYGOJQ8R7mqYSzE2UGiER3/hnccb7keILP7PKhfQoE 5Z+I66yufMUqqA1IeGxYPc18xzWiJptnzLUoh7j0zVLuOfU18WxS7aNfz uIs39BXQuD8x2EPUy+bTPWRXsQYEpZkHJC5Yi+6HT0PIX6Hsb8PIvr3jj n77aiYvEEDM95yHEvLnFJ37OaYhcX0qeGNJ1jMtb1Oo/ED8cOtw6Jgn+y h1gbELdZFt/+NZx5e1b97KatAfMxuRqUN91srA1G2Ock+QqjlW3x32Mrf sZ3BxSAEv/5sc5+RSX8s4eOeZzn/Q8qJhAaYJ0K9co4U0t2sMKsaIjtkB w==; X-CSE-ConnectionGUID: bjuiVysfSSSKE/ZbowC9qA== X-CSE-MsgGUID: lr0/fbpQRGSzUrK9jDvAAQ== X-IronPort-AV: E=McAfee;i="6800,10657,11536"; a="58515399" X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="58515399" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Aug 2025 07:41:25 -0700 X-CSE-ConnectionGUID: Tvut63OpT1W0iNGIsuUMpg== X-CSE-MsgGUID: fp4mY0VUTgWms6s3hA7DmA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="207276100" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa001.jf.intel.com with ESMTP; 28 Aug 2025 07:41:21 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Piotr Warpechowski , Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 3/4] net: stmmac: enhance VLAN protocol detection for GRO Date: Thu, 28 Aug 2025 16:45:57 +0200 Message-Id: <20250828144558.304304-4-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250828144558.304304-1-konrad.leszczynski@intel.com> References: <20250828144558.304304-1-konrad.leszczynski@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Piotr Warpechowski Enhance protocol extraction in stmmac_has_ip_ethertype() by introducing MAC offset parameter and changing: __vlan_get_protocol() -> __vlan_get_protocol_offset() Add correct header length for VLAN tags, which enable Generic Receive Offload (GRO) in VLAN. Co-developed-by: Karol Jurczenia Signed-off-by: Karol Jurczenia Reviewed-by: Sebastian Basierski Reviewed-by: Cezary Rojewski Signed-off-by: Piotr Warpechowski Signed-off-by: Konrad Leszczynski Reviewed-by: Jacob Keller --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index 8977e5aebc71..630ffb8dd0c3 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -4590,13 +4590,14 @@ static netdev_tx_t stmmac_tso_xmit(struct sk_buff *= skb, struct net_device *dev) */ static bool stmmac_has_ip_ethertype(struct sk_buff *skb) { - int depth =3D 0; + int depth =3D 0, hlen; __be16 proto; =20 - proto =3D __vlan_get_protocol(skb, eth_header_parse_protocol(skb), - &depth); + proto =3D __vlan_get_protocol_offset(skb, skb->protocol, + skb_mac_offset(skb), &depth); + hlen =3D eth_type_vlan(skb->protocol) ? VLAN_ETH_HLEN : ETH_HLEN; =20 - return (depth <=3D ETH_HLEN) && + return (depth <=3D hlen) && (proto =3D=3D htons(ETH_P_IP) || proto =3D=3D htons(ETH_P_IPV6)); } =20 --=20 2.34.1 From nobody Fri Oct 3 15:32:44 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 465DD31DD9B; Thu, 28 Aug 2025 14:41:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392090; cv=none; b=PBkUKCaXX9HnWoZsdWuHCpZ9MJZFQM6OcU9u+EmPQSbHszOFcmcmOTBylskIgi3q52Kbjc7IR4fWotMiPbANqVajUBtnvtVEzo3tgpGD9zK5S6pm56gdX1xLrFzfmMTaboir6i8X6Z6T58qk9xebQ2mTQB0fsHprxIDz2MMKTec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756392090; c=relaxed/simple; bh=jzrymZop5dhCQXUJp9duw8ynZq28kq5moo1G3LEpFJ8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LkJDGTqxLqJVPeu2UvBeEqpyBg4dekEZZnr3lNf7rV6vRNfKO2g+W45f+gtNXZM0MYACv06UMyMu1/ikrbTAlGmfX14DLlOItsMzMf3RK39TzDqTnOZdUb2HvgVJQ0RQR3sWjUs3OkmwK2dd68ii71cS2PV+MnnET41n/bGuqQM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=YWS6Hd9a; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="YWS6Hd9a" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756392089; x=1787928089; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jzrymZop5dhCQXUJp9duw8ynZq28kq5moo1G3LEpFJ8=; b=YWS6Hd9a1Gi6LlBYFLi9t9R7b8MJF+bTVdA/xSU3k7Zm+uzEZMNSaOkL b+Oo90e2aSRZ1GbzvnHhSr28yHQ5C4qEjhSszgOAJBnqMFAg6CLAi7arH Uuiu/aceLaw8VZvTHTW332k0fsZTARKnFJyDcUbmaufCpKhth7D5zj8od kQh12vgouPKDuvtDLGmhDoRsrtsIAg42qtywWWRwrseElCOYP/nDyveFi yMX6dRt0tBKm1je6GWewUyo+TEEvq2sbkCDEI71T3eov9he4VoGA2KA2B fcM0NTP2KWyZbspy6QC3XS2KaRC/ZpXlGnFCJP67PVO3txv1rSv+8rVf0 A==; X-CSE-ConnectionGUID: cuEeN80PSPCZ3JD/MEwuXA== X-CSE-MsgGUID: +IAZE0kjSneIHouGLE4OFw== X-IronPort-AV: E=McAfee;i="6800,10657,11536"; a="58515410" X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="58515410" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Aug 2025 07:41:28 -0700 X-CSE-ConnectionGUID: QJlq1e/NTMaawHVw0fMRYQ== X-CSE-MsgGUID: qd2A5lylSKyHiyZEW3L2xg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,217,1751266800"; d="scan'208";a="207276104" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa001.jf.intel.com with ESMTP; 28 Aug 2025 07:41:24 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 4/4] net: stmmac: add TC flower filter support for IP EtherType Date: Thu, 28 Aug 2025 16:45:58 +0200 Message-Id: <20250828144558.304304-5-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250828144558.304304-1-konrad.leszczynski@intel.com> References: <20250828144558.304304-1-konrad.leszczynski@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Karol Jurczenia Add missing Traffic Control (TC) offload for flower filters matching the IP EtherType (ETH_P_IP). Reviewed-by: Sebastian Basierski Reviewed-by: Cezary Rojewski Signed-off-by: Karol Jurczenia Signed-off-by: Konrad Leszczynski Reviewed-by: Jacob Keller --- drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 + .../net/ethernet/stmicro/stmmac/stmmac_tc.c | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/eth= ernet/stmicro/stmmac/stmmac.h index 78d6b3737a26..77f900a328aa 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h @@ -206,6 +206,7 @@ enum stmmac_rfs_type { STMMAC_RFS_T_VLAN, STMMAC_RFS_T_LLDP, STMMAC_RFS_T_1588, + STMMAC_RFS_T_IP, STMMAC_RFS_T_MAX, }; =20 diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/= ethernet/stmicro/stmmac/stmmac_tc.c index 694d6ee14381..c5577652d6ed 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -239,6 +239,7 @@ static int tc_rfs_init(struct stmmac_priv *priv) priv->rfs_entries_max[STMMAC_RFS_T_VLAN] =3D 8; priv->rfs_entries_max[STMMAC_RFS_T_LLDP] =3D 1; priv->rfs_entries_max[STMMAC_RFS_T_1588] =3D 1; + priv->rfs_entries_max[STMMAC_RFS_T_IP] =3D 32; =20 for (i =3D 0; i < STMMAC_RFS_T_MAX; i++) priv->rfs_entries_total +=3D priv->rfs_entries_max[i]; @@ -777,6 +778,17 @@ static int tc_add_ethtype_flow(struct stmmac_priv *pri= v, stmmac_rx_queue_routing(priv, priv->hw, PACKET_PTPQ, tc); break; + case ETH_P_IP: + if (priv->rfs_entries_cnt[STMMAC_RFS_T_IP] >=3D + priv->rfs_entries_max[STMMAC_RFS_T_IP]) + return -ENOENT; + + entry->type =3D STMMAC_RFS_T_IP; + priv->rfs_entries_cnt[STMMAC_RFS_T_IP]++; + + stmmac_rx_queue_routing(priv, priv->hw, + PACKET_UPQ, tc); + break; default: netdev_err(priv->dev, "EthType(0x%x) is not supported", etype); return -EINVAL; @@ -800,7 +812,7 @@ static int tc_del_ethtype_flow(struct stmmac_priv *priv, =20 if (!entry || !entry->in_use || entry->type < STMMAC_RFS_T_LLDP || - entry->type > STMMAC_RFS_T_1588) + entry->type > STMMAC_RFS_T_IP) return -ENOENT; =20 switch (entry->etype) { @@ -814,6 +826,11 @@ static int tc_del_ethtype_flow(struct stmmac_priv *pri= v, PACKET_PTPQ, 0); priv->rfs_entries_cnt[STMMAC_RFS_T_1588]--; break; + case ETH_P_IP: + stmmac_rx_queue_routing(priv, priv->hw, + PACKET_UPQ, 0); + priv->rfs_entries_cnt[STMMAC_RFS_T_IP]--; + break; default: netdev_err(priv->dev, "EthType(0x%x) is not supported", entry->etype); --=20 2.34.1