Hi all,
I'm trying to get LEDE to allow 1500 bytes down pppoe (UK, plusnet via BT openreach modem).
At first, LEDE would not allow setting of the eth0 adaptor to 1508, which i had read was the route to using a switch based pppoe solution.
I patched trunk with the code below, which allows the MTU to be set to 1508, and I believe that the buffers in the driver are big enough (0x600 bytes).
But after everything was in place, and MTU set 'correctly', packets larger than 1492 (i.e. a ping of 1464) were dropped unless the MTU on the pppoe-wan interface was set to 1492.
I checked the pppd logs, and they reported negotiating 1500 for MTU and MRU.
What I did not do was sniff ethernet traffic to the BT Openreach modem, but it is reported that this does support 1508 on the wire.
Others seem to have been able to do this fairly easiy... Where do I got from here?
Code changes in lantiq_xrx200.c: (cribbed from already modified vdsl driver)
static int xrx200_change_mtu(struct net_device dev, int mtu)
{
/ Allow up to 1508 bytes, for RFC4638 */
if (mtu < 68 || mtu > ETH_DATA_LEN + 8)
return -EINVAL;
dev->mtu = mtu;
return 0;
}
static const struct net_device_ops xrx200_netdev_ops = {
.ndo_init = xrx200_init,
.ndo_open = xrx200_open,
.ndo_stop = xrx200_close,
.ndo_start_xmit = xrx200_start_xmit,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
.ndo_change_mtu = xrx200_change_mtu,
Simon