Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FS#4116 - qca9560-eth supports jumbo frames but is limited to 1516 #9097

Open
openwrt-bot opened this issue Oct 30, 2021 · 1 comment
Open
Labels
flyspray kernel pull request/issue with Linux kernel related changes

Comments

@openwrt-bot
Copy link

gnif:

  • Device problem occurs on
    GL.iNet GL-AR750S (NOR)

  • Software versions of OpenWrt/LEDE release, packages, etc.
    Trunk

  • Steps to reproduce

Attempt to increase the mtu beyond 1516

ifconifg eth0 mtu 1517


According to all resources the QCA9560 supports jumbo frames, as does the switch (AR8337) in this device however for an undocumented unknown reason it's hard coded in linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c:1640 to 1540. Also for reasons I do not understand I can not increase the mtu beyond 1516 up to this limit of 1540 which I need for 802.11q (1522 frame size).

This code seems to need to be reviewed by someone with access to the datasheets for the QCA9560 to properly resolve this issue.

@openwrt-bot
Copy link
Author

gnif:

Correction, the limit of 1516 is caused by the following code:

dev->max_mtu = max_frame_len - ag71xx_max_frame_len(0);

static inline unsigned int ag71xx_max_frame_len(unsigned int mtu)
{
return ETH_SWITCH_HEADER_LEN + ETH_HLEN + VLAN_HLEN + mtu + ETH_FCS_LEN;
}

Where

ETH_SWITCH_HEADER_LEN = 2 ETH_HLEN = 14 VLAN_HLEN = 4 ETH_FCS_LEN = 4

1540 - 2 - 14 - 4 - 4 = 1516

@aparcar aparcar added the kernel pull request/issue with Linux kernel related changes label Feb 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flyspray kernel pull request/issue with Linux kernel related changes
Projects
None yet
Development

No branches or pull requests

2 participants