Category: Kernel

A good article on modifying the MTU.

The maximum transmission unit (MTU) of a network interface is the size of the largest block of data that can be transmitted as a single unit. Anything larger than the MTU must be broken into smaller units prior to transmission. The following link has a short passage on modifying the MTU.

Change the MTU of a network interface

If you want to change the MTU in the linux kernel source code the macro can be found in

the location

linux/include/uapi/linux/if_ether.h

The macro name is ETH_DATA_LEN and if you are increasing it you need to increase the frame length also. The macro for from length is ETH_FRAME_LEN. I did experiment to modify MTU to 1508. So I modified the ETH_DATA_LEN to 1508 and frame length to 1522.

After the same through ifconfig I was able to set the mtu to 1508.

e.g:- ifconfig eth0 mtu 1508

Setting anything beyond ETH_DATA_LEN the ifconfig will return “SIOCSIFMTU: Invalid argument”. Also changing to any values beyond 1500 ensure your network devices support.