Hi, I noticed it is possible in Linux to define the MTU setting on a per route basis at the IP layer. This is really useful, and can be used to build a table mapping IP addresses to MTUs. Is it possible to do this at the link layer, to map hardware MAC addresses to MTUs? This would allow a mixture of MTU sizes on a network, based on the capability of individual devices. Reason for asking: On this network Jumbo frames are used between devices that support them, while more compatible frame sizes are used for everything else. This has been achieved by increasing the interface MTU on the machines supporting Jumbo frames, then making the local network route for that interface use a compatible MTU (1500). Then for each host on the network that supports Jumbo frames, a new route is added, with host IP address and the correct MTU defined. This configuration works very reliably, however a complication arises because the network bridged. The Linux bridge code currently prevents the bridge interface MTU from being increased beyond the minimum MTU of the interfaces that form the bridge. This was not the desired behaviour. Since the routing tables here take care of the MTU on a per IP basis, I removed this MTU limit from the linux bridge source code. Doing this has then enabled the MTU of the bridge interface to be increased, allowing Jumbo frames to be sent to the devices/routes that support them. A further complication here is that portable devices have both wireless and wired ethernet interfaces. These devices connect to the bridged network using the linux bonding driver, which allows them to seamlessly transfer from their wireless connection to a high speed wired ethernet connection and vice-versa. This is where problems can arise, because the same IP address is effectively mapped to both the wireless and the wired interfaces, which have two different MTU requirements. Since the MTUs are mapped at IP level, there is no way of choosing what MTU to use. Ideally rather than using the IP routing table to map IP addresses to MTUs, I would be useful to define a list of MAC addresses with their associated MTU. Regards, Craig PS: While re-reading this email, I realised that even if this were possible, the bonding driver would also need to support the transition from one MTU to another. Something that I imagine would require a lot more magic. Regardless of this, having a special option on the Linux bridge driver to bypass the maximum MTU limit would be useful. Instead of limiting to the minimum MTU of the interfaces that the bridge is formed from, the special option would increase the maximum MTU to the maximum MTU of the interfaces that the bridge is formed form. Just an idea.
Attachment:
signature.asc
Description: This is a digitally signed message part