Message ID | 20210901184933.312389-1-jan@3e8.eu |
---|---|
State | New |
Headers | show |
Series | [net] net: dsa: lantiq_gswip: fix maximum frame length | expand |
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 <jan@3e8.eu> Acked-by: Hauke Mehrtens <hauke@hauke-m.de> > --- > 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); > >
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Wed, 1 Sep 2021 20:49:33 +0200 you 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. > > [...] Here is the summary with links: - [net] net: dsa: lantiq_gswip: fix maximum frame length https://git.kernel.org/netdev/net/c/552799f8b3b0 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
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);
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. Fixes: 14fceff4771e ("net: dsa: Add Lantiq / Intel DSA driver for vrx200") Cc: stable@vger.kernel.org Signed-off-by: Jan Hoffmann <jan@3e8.eu> --- drivers/net/dsa/lantiq_gswip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)