linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values
@ 2021-04-13  8:45 stefanc
  2021-04-13  9:17 ` Russell King - ARM Linux admin
  0 siblings, 1 reply; 6+ messages in thread
From: stefanc @ 2021-04-13  8:45 UTC (permalink / raw)
  To: netdev
  Cc: thomas.petazzoni, davem, nadavh, ymarkman, linux-kernel, stefanc,
	kuba, linux, mw, andrew, rmk+kernel, atenart, lironh, danat

From: Stefan Chulski <stefanc@marvell.com>

Add parser entries for different IPv4 IHL values.
Each entry will set the L4 header offset according to the IPv4 IHL field.
L3 header offset will set during the parsing of the IPv4 protocol.

Suggested-by: Dana Vardi <danat@marvell.com>
Signed-off-by: Stefan Chulski <stefanc@marvell.com>
---
 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c | 107 ++++++++------------
 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h |   3 +-
 2 files changed, 43 insertions(+), 67 deletions(-)

diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c
index 4812cdb..7cc7d72 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c
@@ -918,9 +918,8 @@ static int mvpp2_prs_ip4_proto(struct mvpp2 *priv, unsigned short proto,
 	mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_FLOWS);
 	mvpp2_prs_sram_bits_set(&pe, MVPP2_PRS_SRAM_LU_GEN_BIT, 1);
 
-	/* Set L4 offset */
-	mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L4,
-				  sizeof(struct iphdr) - 4,
+	/* Set L3 offset */
+	mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L3, -4,
 				  MVPP2_PRS_SRAM_OP_SEL_UDF_ADD);
 	mvpp2_prs_sram_ai_update(&pe, 0, MVPP2_PRS_IPV4_DIP_AI_BIT);
 	mvpp2_prs_sram_ri_update(&pe, ri, ri_mask | MVPP2_PRS_RI_IP_FRAG_MASK);
@@ -1335,7 +1334,7 @@ static void mvpp2_prs_vid_init(struct mvpp2 *priv)
 static int mvpp2_prs_etype_init(struct mvpp2 *priv)
 {
 	struct mvpp2_prs_entry pe;
-	int tid;
+	int tid, ihl;
 
 	/* Ethertype: PPPoE */
 	tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID,
@@ -1427,67 +1426,43 @@ static int mvpp2_prs_etype_init(struct mvpp2 *priv)
 				MVPP2_PRS_RI_UDF3_MASK);
 	mvpp2_prs_hw_write(priv, &pe);
 
-	/* Ethertype: IPv4 without options */
-	tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID,
-					MVPP2_PE_LAST_FREE_TID);
-	if (tid < 0)
-		return tid;
-
-	memset(&pe, 0, sizeof(pe));
-	mvpp2_prs_tcam_lu_set(&pe, MVPP2_PRS_LU_L2);
-	pe.index = tid;
-
-	mvpp2_prs_match_etype(&pe, 0, ETH_P_IP);
-	mvpp2_prs_tcam_data_byte_set(&pe, MVPP2_ETH_TYPE_LEN,
-				     MVPP2_PRS_IPV4_HEAD | MVPP2_PRS_IPV4_IHL,
-				     MVPP2_PRS_IPV4_HEAD_MASK |
-				     MVPP2_PRS_IPV4_IHL_MASK);
-
-	mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_IP4);
-	mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L3_IP4,
-				 MVPP2_PRS_RI_L3_PROTO_MASK);
-	/* goto ipv4 dest-address (skip eth_type + IP-header-size - 4) */
-	mvpp2_prs_sram_shift_set(&pe, MVPP2_ETH_TYPE_LEN +
-				 sizeof(struct iphdr) - 4,
-				 MVPP2_PRS_SRAM_OP_SEL_SHIFT_ADD);
-	/* Set L3 offset */
-	mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L3,
-				  MVPP2_ETH_TYPE_LEN,
-				  MVPP2_PRS_SRAM_OP_SEL_UDF_ADD);
-
-	/* Update shadow table and hw entry */
-	mvpp2_prs_shadow_set(priv, pe.index, MVPP2_PRS_LU_L2);
-	priv->prs_shadow[pe.index].udf = MVPP2_PRS_UDF_L2_DEF;
-	priv->prs_shadow[pe.index].finish = false;
-	mvpp2_prs_shadow_ri_set(priv, pe.index, MVPP2_PRS_RI_L3_IP4,
-				MVPP2_PRS_RI_L3_PROTO_MASK);
-	mvpp2_prs_hw_write(priv, &pe);
-
-	/* Ethertype: IPv4 with options */
-	tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID,
-					MVPP2_PE_LAST_FREE_TID);
-	if (tid < 0)
-		return tid;
-
-	pe.index = tid;
+	/* Ethertype: IPv4 with header length >= 5 */
+	for (ihl = MVPP2_PRS_IPV4_IHL_MIN; ihl <= MVPP2_PRS_IPV4_IHL_MAX; ihl++) {
+		tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID,
+						MVPP2_PE_LAST_FREE_TID);
+		if (tid < 0)
+			return tid;
 
-	mvpp2_prs_tcam_data_byte_set(&pe, MVPP2_ETH_TYPE_LEN,
-				     MVPP2_PRS_IPV4_HEAD,
-				     MVPP2_PRS_IPV4_HEAD_MASK);
+		memset(&pe, 0, sizeof(pe));
+		mvpp2_prs_tcam_lu_set(&pe, MVPP2_PRS_LU_L2);
+		pe.index = tid;
 
-	/* Clear ri before updating */
-	pe.sram[MVPP2_PRS_SRAM_RI_WORD] = 0x0;
-	pe.sram[MVPP2_PRS_SRAM_RI_CTRL_WORD] = 0x0;
-	mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L3_IP4_OPT,
-				 MVPP2_PRS_RI_L3_PROTO_MASK);
+		mvpp2_prs_match_etype(&pe, 0, ETH_P_IP);
+		mvpp2_prs_tcam_data_byte_set(&pe, MVPP2_ETH_TYPE_LEN,
+					     MVPP2_PRS_IPV4_HEAD | ihl,
+					     MVPP2_PRS_IPV4_HEAD_MASK |
+					     MVPP2_PRS_IPV4_IHL_MASK);
+
+		mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_IP4);
+		mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L3_IP4,
+					 MVPP2_PRS_RI_L3_PROTO_MASK);
+		/* goto ipv4 dst-address (skip eth_type + IP-header-size - 4) */
+		mvpp2_prs_sram_shift_set(&pe, MVPP2_ETH_TYPE_LEN +
+					 sizeof(struct iphdr) - 4,
+					 MVPP2_PRS_SRAM_OP_SEL_SHIFT_ADD);
+		/* Set L4 offset */
+		mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L4,
+					  MVPP2_ETH_TYPE_LEN + (ihl * 4),
+					  MVPP2_PRS_SRAM_OP_SEL_UDF_ADD);
 
-	/* Update shadow table and hw entry */
-	mvpp2_prs_shadow_set(priv, pe.index, MVPP2_PRS_LU_L2);
-	priv->prs_shadow[pe.index].udf = MVPP2_PRS_UDF_L2_DEF;
-	priv->prs_shadow[pe.index].finish = false;
-	mvpp2_prs_shadow_ri_set(priv, pe.index, MVPP2_PRS_RI_L3_IP4_OPT,
-				MVPP2_PRS_RI_L3_PROTO_MASK);
-	mvpp2_prs_hw_write(priv, &pe);
+		/* Update shadow table and hw entry */
+		mvpp2_prs_shadow_set(priv, pe.index, MVPP2_PRS_LU_L2);
+		priv->prs_shadow[pe.index].udf = MVPP2_PRS_UDF_L2_DEF;
+		priv->prs_shadow[pe.index].finish = false;
+		mvpp2_prs_shadow_ri_set(priv, pe.index, MVPP2_PRS_RI_L3_IP4,
+					MVPP2_PRS_RI_L3_PROTO_MASK);
+		mvpp2_prs_hw_write(priv, &pe);
+	}
 
 	/* Ethertype: IPv6 without options */
 	tid = mvpp2_prs_tcam_first_free(priv, MVPP2_PE_FIRST_FREE_TID,
@@ -1674,7 +1649,8 @@ static int mvpp2_prs_pppoe_init(struct mvpp2 *priv)
 	pe.index = tid;
 
 	mvpp2_prs_tcam_data_byte_set(&pe, MVPP2_ETH_TYPE_LEN,
-				     MVPP2_PRS_IPV4_HEAD | MVPP2_PRS_IPV4_IHL,
+				     MVPP2_PRS_IPV4_HEAD |
+				     MVPP2_PRS_IPV4_IHL_MIN,
 				     MVPP2_PRS_IPV4_HEAD_MASK |
 				     MVPP2_PRS_IPV4_IHL_MASK);
 
@@ -1788,9 +1764,8 @@ static int mvpp2_prs_ip4_init(struct mvpp2 *priv)
 	mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_FLOWS);
 	mvpp2_prs_sram_bits_set(&pe, MVPP2_PRS_SRAM_LU_GEN_BIT, 1);
 
-	/* Set L4 offset */
-	mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L4,
-				  sizeof(struct iphdr) - 4,
+	/* Set L3 offset */
+	mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L3, -4,
 				  MVPP2_PRS_SRAM_OP_SEL_UDF_ADD);
 	mvpp2_prs_sram_ai_update(&pe, 0, MVPP2_PRS_IPV4_DIP_AI_BIT);
 	mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L4_OTHER,
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h b/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h
index c16e5b9..5ce5907 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h
@@ -28,7 +28,8 @@
 #define MVPP2_PRS_IPV4_MC		0xe0
 #define MVPP2_PRS_IPV4_MC_MASK		0xf0
 #define MVPP2_PRS_IPV4_BC_MASK		0xff
-#define MVPP2_PRS_IPV4_IHL		0x5
+#define MVPP2_PRS_IPV4_IHL_MIN		0x5
+#define MVPP2_PRS_IPV4_IHL_MAX		0xf
 #define MVPP2_PRS_IPV4_IHL_MASK		0xf
 #define MVPP2_PRS_IPV6_MC		0xff
 #define MVPP2_PRS_IPV6_MC_MASK		0xff
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values
  2021-04-13  8:45 [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values stefanc
@ 2021-04-13  9:17 ` Russell King - ARM Linux admin
  2021-04-13  9:34   ` [EXT] " Stefan Chulski
  0 siblings, 1 reply; 6+ messages in thread
From: Russell King - ARM Linux admin @ 2021-04-13  9:17 UTC (permalink / raw)
  To: stefanc
  Cc: netdev, thomas.petazzoni, davem, nadavh, ymarkman, linux-kernel,
	kuba, mw, andrew, atenart, lironh, danat

On Tue, Apr 13, 2021 at 11:45:31AM +0300, stefanc@marvell.com wrote:
> From: Stefan Chulski <stefanc@marvell.com>
> 
> Add parser entries for different IPv4 IHL values.
> Each entry will set the L4 header offset according to the IPv4 IHL field.
> L3 header offset will set during the parsing of the IPv4 protocol.

What is the impact of this commit? Is something broken at the moment,
if so what? Does this need to be backported to stable kernels?

These are key questions, of which the former two should be covered in
every commit message so that the reason for the change can be known.
It's no good just describing what is being changed in the commit without
also describing why the change is being made.

Thanks.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values
  2021-04-13  9:17 ` Russell King - ARM Linux admin
@ 2021-04-13  9:34   ` Stefan Chulski
  2021-04-13  9:55     ` Stefan Chulski
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Chulski @ 2021-04-13  9:34 UTC (permalink / raw)
  To: Russell King - ARM Linux admin
  Cc: netdev, thomas.petazzoni, davem, Nadav Haklai, Yan Markman,
	linux-kernel, kuba, mw, andrew, atenart, Liron Himi, Dana Vardi

> -----Original Message-----
> From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
> Sent: Tuesday, April 13, 2021 12:18 PM
> To: Stefan Chulski <stefanc@marvell.com>
> Cc: netdev@vger.kernel.org; thomas.petazzoni@bootlin.com;
> davem@davemloft.net; Nadav Haklai <nadavh@marvell.com>; Yan
> Markman <ymarkman@marvell.com>; linux-kernel@vger.kernel.org;
> kuba@kernel.org; mw@semihalf.com; andrew@lunn.ch;
> atenart@kernel.org; Liron Himi <lironh@marvell.com>; Dana Vardi
> <danat@marvell.com>
> Subject: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support for
> different IPv4 IHL values
> 
> External Email
> 
> ----------------------------------------------------------------------
> On Tue, Apr 13, 2021 at 11:45:31AM +0300, stefanc@marvell.com wrote:
> > From: Stefan Chulski <stefanc@marvell.com>
> >
> > Add parser entries for different IPv4 IHL values.
> > Each entry will set the L4 header offset according to the IPv4 IHL field.
> > L3 header offset will set during the parsing of the IPv4 protocol.
> 
> What is the impact of this commit? Is something broken at the moment, if so
> what? Does this need to be backported to stable kernels?
> 
> These are key questions, of which the former two should be covered in
> every commit message so that the reason for the change can be known.
> It's no good just describing what is being changed in the commit without also
> describing why the change is being made.
> 
> Thanks.

Due to missed parser support for IP header length > 20, RX IPv4 checksum offload fail.

Regards. 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values
  2021-04-13  9:34   ` [EXT] " Stefan Chulski
@ 2021-04-13  9:55     ` Stefan Chulski
  2021-04-13  9:59       ` Marcin Wojtas
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Chulski @ 2021-04-13  9:55 UTC (permalink / raw)
  To: Russell King - ARM Linux admin
  Cc: netdev, thomas.petazzoni, davem, Nadav Haklai, Yan Markman,
	linux-kernel, kuba, mw, andrew, atenart, Liron Himi, Dana Vardi

> > -----Original Message-----
> > From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
> > Sent: Tuesday, April 13, 2021 12:18 PM
> > To: Stefan Chulski <stefanc@marvell.com>
> > Cc: netdev@vger.kernel.org; thomas.petazzoni@bootlin.com;
> > davem@davemloft.net; Nadav Haklai <nadavh@marvell.com>; Yan
> Markman
> > <ymarkman@marvell.com>; linux-kernel@vger.kernel.org;
> kuba@kernel.org;
> > mw@semihalf.com; andrew@lunn.ch; atenart@kernel.org; Liron Himi
> > <lironh@marvell.com>; Dana Vardi <danat@marvell.com>
> > Subject: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support
> > for different IPv4 IHL values
> >
> > External Email
> >
> > ----------------------------------------------------------------------
> > On Tue, Apr 13, 2021 at 11:45:31AM +0300, stefanc@marvell.com wrote:
> > > From: Stefan Chulski <stefanc@marvell.com>
> > >
> > > Add parser entries for different IPv4 IHL values.
> > > Each entry will set the L4 header offset according to the IPv4 IHL field.
> > > L3 header offset will set during the parsing of the IPv4 protocol.
> >
> > What is the impact of this commit? Is something broken at the moment,
> > if so what? Does this need to be backported to stable kernels?
> >
> > These are key questions, of which the former two should be covered in
> > every commit message so that the reason for the change can be known.
> > It's no good just describing what is being changed in the commit
> > without also describing why the change is being made.
> >
> > Thanks.
> 
> Due to missed parser support for IP header length > 20, RX IPv4 checksum
> offload fail.
> 
> Regards.

Currently driver set skb->ip_summed = CHECKSUM_NONE and checksum done by software.
So this just improve performance for packets with IP header length > 20. 
IMO we can keep it in net-next.

Stefan.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values
  2021-04-13  9:55     ` Stefan Chulski
@ 2021-04-13  9:59       ` Marcin Wojtas
  2021-04-13 10:03         ` Stefan Chulski
  0 siblings, 1 reply; 6+ messages in thread
From: Marcin Wojtas @ 2021-04-13  9:59 UTC (permalink / raw)
  To: Stefan Chulski
  Cc: Russell King - ARM Linux admin, netdev, thomas.petazzoni, davem,
	Nadav Haklai, Yan Markman, linux-kernel, kuba, andrew, atenart,
	Liron Himi, Dana Vardi

Hi Stefan,

wt., 13 kwi 2021 o 11:56 Stefan Chulski <stefanc@marvell.com> napisał(a):
>
> > > -----Original Message-----
> > > From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
> > > Sent: Tuesday, April 13, 2021 12:18 PM
> > > To: Stefan Chulski <stefanc@marvell.com>
> > > Cc: netdev@vger.kernel.org; thomas.petazzoni@bootlin.com;
> > > davem@davemloft.net; Nadav Haklai <nadavh@marvell.com>; Yan
> > Markman
> > > <ymarkman@marvell.com>; linux-kernel@vger.kernel.org;
> > kuba@kernel.org;
> > > mw@semihalf.com; andrew@lunn.ch; atenart@kernel.org; Liron Himi
> > > <lironh@marvell.com>; Dana Vardi <danat@marvell.com>
> > > Subject: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support
> > > for different IPv4 IHL values
> > >
> > > External Email
> > >
> > > ----------------------------------------------------------------------
> > > On Tue, Apr 13, 2021 at 11:45:31AM +0300, stefanc@marvell.com wrote:
> > > > From: Stefan Chulski <stefanc@marvell.com>
> > > >
> > > > Add parser entries for different IPv4 IHL values.
> > > > Each entry will set the L4 header offset according to the IPv4 IHL field.
> > > > L3 header offset will set during the parsing of the IPv4 protocol.
> > >
> > > What is the impact of this commit? Is something broken at the moment,
> > > if so what? Does this need to be backported to stable kernels?
> > >
> > > These are key questions, of which the former two should be covered in
> > > every commit message so that the reason for the change can be known.
> > > It's no good just describing what is being changed in the commit
> > > without also describing why the change is being made.
> > >
> > > Thanks.
> >
> > Due to missed parser support for IP header length > 20, RX IPv4 checksum
> > offload fail.
> >
> > Regards.
>
> Currently driver set skb->ip_summed = CHECKSUM_NONE and checksum done by software.
> So this just improve performance for packets with IP header length > 20.
> IMO we can keep it in net-next.
>
> Stefan.

Please update the commit message in v2 with the explanation.

Also - is there an easy way to test it? L3 forwarding with forced header length?

Thanks,
Marcin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values
  2021-04-13  9:59       ` Marcin Wojtas
@ 2021-04-13 10:03         ` Stefan Chulski
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Chulski @ 2021-04-13 10:03 UTC (permalink / raw)
  To: Marcin Wojtas
  Cc: Russell King - ARM Linux admin, netdev, thomas.petazzoni, davem,
	Nadav Haklai, Yan Markman, linux-kernel, kuba, andrew, atenart,
	Liron Himi, Dana Vardi



> -----Original Message-----
> From: Marcin Wojtas <mw@semihalf.com>
> Sent: Tuesday, April 13, 2021 12:59 PM
> To: Stefan Chulski <stefanc@marvell.com>
> Cc: Russell King - ARM Linux admin <linux@armlinux.org.uk>;
> netdev@vger.kernel.org; thomas.petazzoni@bootlin.com;
> davem@davemloft.net; Nadav Haklai <nadavh@marvell.com>; Yan
> Markman <ymarkman@marvell.com>; linux-kernel@vger.kernel.org;
> kuba@kernel.org; andrew@lunn.ch; atenart@kernel.org; Liron Himi
> <lironh@marvell.com>; Dana Vardi <danat@marvell.com>
> Subject: Re: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing support for
> different IPv4 IHL values
> 
> Hi Stefan,
> 
> wt., 13 kwi 2021 o 11:56 Stefan Chulski <stefanc@marvell.com> napisał(a):
> >
> > > > -----Original Message-----
> > > > From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
> > > > Sent: Tuesday, April 13, 2021 12:18 PM
> > > > To: Stefan Chulski <stefanc@marvell.com>
> > > > Cc: netdev@vger.kernel.org; thomas.petazzoni@bootlin.com;
> > > > davem@davemloft.net; Nadav Haklai <nadavh@marvell.com>; Yan
> > > Markman
> > > > <ymarkman@marvell.com>; linux-kernel@vger.kernel.org;
> > > kuba@kernel.org;
> > > > mw@semihalf.com; andrew@lunn.ch; atenart@kernel.org; Liron Himi
> > > > <lironh@marvell.com>; Dana Vardi <danat@marvell.com>
> > > > Subject: [EXT] Re: [PATCH net-next] net: mvpp2: Add parsing
> > > > support for different IPv4 IHL values
> > > >
> > > > External Email
> > > >
> > > > ------------------------------------------------------------------
> > > > ---- On Tue, Apr 13, 2021 at 11:45:31AM +0300, stefanc@marvell.com
> > > > wrote:
> > > > > From: Stefan Chulski <stefanc@marvell.com>
> > > > >
> > > > > Add parser entries for different IPv4 IHL values.
> > > > > Each entry will set the L4 header offset according to the IPv4 IHL field.
> > > > > L3 header offset will set during the parsing of the IPv4 protocol.
> > > >
> > > > What is the impact of this commit? Is something broken at the
> > > > moment, if so what? Does this need to be backported to stable
> kernels?
> > > >
> > > > These are key questions, of which the former two should be covered
> > > > in every commit message so that the reason for the change can be
> known.
> > > > It's no good just describing what is being changed in the commit
> > > > without also describing why the change is being made.
> > > >
> > > > Thanks.
> > >
> > > Due to missed parser support for IP header length > 20, RX IPv4
> > > checksum offload fail.
> > >
> > > Regards.
> >
> > Currently driver set skb->ip_summed = CHECKSUM_NONE and checksum
> done by software.
> > So this just improve performance for packets with IP header length > 20.
> > IMO we can keep it in net-next.
> >
> > Stefan.
> 
> Please update the commit message in v2 with the explanation.
> 
> Also - is there an easy way to test it? L3 forwarding with forced header
> length?
> 
> Thanks,
> Marcin

I will wait for additional comments and resend it tomorrow.
We probably should see this in "perf top" in L3 forwarding. Less cycles consumed by Network stack checksum callback.

Regards. 



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-04-13 10:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-13  8:45 [PATCH net-next] net: mvpp2: Add parsing support for different IPv4 IHL values stefanc
2021-04-13  9:17 ` Russell King - ARM Linux admin
2021-04-13  9:34   ` [EXT] " Stefan Chulski
2021-04-13  9:55     ` Stefan Chulski
2021-04-13  9:59       ` Marcin Wojtas
2021-04-13 10:03         ` Stefan Chulski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).