Thread (3 messages) flat view 3 messages, 3 authors, 2021-09-02

Re: [PATCH net] net: dsa: lantiq_gswip: fix maximum frame length

From: Hauke Mehrtens <hauke@hauke-m.de>
Date: 2021-09-01 21:31:02
Also in: stable

On 9/1/21 8:49 PM, Jan Hoffmann wrote:
Currently, outgoing packets larger than 1496 bytes are dropped when
tagged VLAN is used on a switch port.

Add the frame check sequence length to the value of the register
GSWIP_MAC_FLEN to fix this. This matches the lantiq_ppa vendor driver,
which uses a value consisting of 1518 bytes for the MAC frame, plus the
lengths of special tag and VLAN tags.
This field is the size of the Ethernet Frame which probably includes the 
FCS which your patch adds.

There is also a discussion in the OpenWrt github about the same topic: 
https://github.com/openwrt/openwrt/pull/4353
Fixes: 14fceff4771e ("net: dsa: Add Lantiq / Intel DSA driver for vrx200")
Cc: stable@vger.kernel.org
Signed-off-by: Jan Hoffmann <redacted>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
quoted hunk ↗ jump to hunk
---
  drivers/net/dsa/lantiq_gswip.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/dsa/lantiq_gswip.c b/drivers/net/dsa/lantiq_gswip.c
index e78026ef6d8c..64d6dfa83122 100644
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
@@ -843,7 +843,8 @@ static int gswip_setup(struct dsa_switch *ds)
  
  	gswip_switch_mask(priv, 0, GSWIP_MAC_CTRL_2_MLEN,
  			  GSWIP_MAC_CTRL_2p(cpu_port));
-	gswip_switch_w(priv, VLAN_ETH_FRAME_LEN + 8, GSWIP_MAC_FLEN);
+	gswip_switch_w(priv, VLAN_ETH_FRAME_LEN + 8 + ETH_FCS_LEN,
+		       GSWIP_MAC_FLEN);
  	gswip_switch_mask(priv, 0, GSWIP_BM_QUEUE_GCTRL_GL_MOD,
  			  GSWIP_BM_QUEUE_GCTRL);
  
  

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help