Thread (14 messages) 14 messages, 3 authors, 2015-04-08

Re: [PATCH v3] net: sysctl for RA default route MTU

From: Roman Gushchin <hidden>
Date: 2015-04-02 18:08:48
Also in: lkml

quoted
 The next question I have is about the behavior of the new setting
 in the presence of an RA MTU option.  It seems like the sysctl
 doesn't override that RA MTU option, but rather just clamps it.

 And then if it's in range, this controls only whether the default
 route has it's MTU adjusted.

 That doesn't make any sense to me if we then go and do the
 rt6_mtu_change() call unconditionally.  The route metric update
 and the rt6_mtu_change() go hand in hand.
Agreed but that gets interesting:

I guess during testing the cnf.mtu6 value was equal to the newly
announced mtu value, so the rt6_mtu_change call does not happen. We
update cnf.mtu6 so a second RA packet would actually bring the system
into the desired state but we have a moment where the default route
carries a too big MTU. That's not good.
Agreed.
Easiest solution is to reorder those calls but that also leaves us with
a time frame where we carry the incorrect MTU on the default route.
Otherwise we must conditionally filter out the default routes.
Roman, any ideas?
I think, such approach will work on practise, but looks not very beatiful.

May be, a better idea is to serarate per-route and per-device MTU,
so an updating of per-device MTU will not affect per-route MTU.
Actual MTU can always been calculated as min(route_mtu, device_mtu),
but we wouldn't need to update mtu on each route on receiving RA MTU option, 
for instance.

Do you see any problems with such approach?

Thanks,
Roman
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help