Hello, The problem is caused by __mkroute_output(). The fib info is removed by the following code: if (res->type == RTN_BROADCAST) { flags |= RTCF_BROADCAST | RTCF_LOCAL; if (res->fi) { fib_info_put(res->fi); res->fi = NULL; } } When I remove the test on res->fi everything works as expected and the mtu size from the local routing table is used for broadcast messages as well. Can someone explain why this fib info from the local routing table is removed for broadcast messages? Is it a bug or is it meant to work this way? With regards, Gerrit Binnenmars On Wed, May 5, 2010 at 12:56 PM, Gerrit Binnenmars <gerritbinnenmars@xxxxxxxxx> wrote: > Hello, > > I have configured my ethernet device eth0 for jumbo frames: ifconfig > eth0 mtu 9000 > I have a vlan eth0.3 on 192.168.0.1 that needs this jumbo frame size. > I also have an alias eth0:test on 192.168.1.1 that can not support > jumbo frames, so I added a route: > ip route change 192.168.1.0/24 dev eth0 src 192.168.1.1 mtu lock 1500 > This works fine, on 192.168.0.1 packets go out with size 9000 and on > 192.168.1.1 packets go out with 1500. > > Now I need a broadcast (of a large packet) to 192.168.1.255 but so far > I wasn't able to force Linux to use the mtu size of 1500 for > broadcast (kernel 2.6.29). > I tried: > ip route change table local broadcast 192.168.1.255 dev eth0 src > 192.168.1.1 mtu lock 1500 without success. > > Any ideas? > > Gerrit Binnenmars > -- To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html