diff options
author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2014-11-17 01:05:29 +0000 |
---|---|---|
committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2014-11-17 01:05:29 +0000 |
commit | 7f948f12f6b3ff7d4beff0b07977a313ae288b36 (patch) | |
tree | d1ee8696995c1d2e949c6c1516ab3404756ef029 /sbin/route/route.c | |
parent | e93397e537c8b4f02ea7110195e5c85c8e596a03 (diff) | |
download | src-7f948f12f6b3ff7d4beff0b07977a313ae288b36.tar.gz src-7f948f12f6b3ff7d4beff0b07977a313ae288b36.zip |
Finish r274175: do control plane MTU tracking.
Update route MTU in case of ifnet MTU change.
Add new RTF_FIXEDMTU to track explicitly specified MTU.
Old behavior:
ifconfig em0 mtu 1500->9000 -> all routes traversing em0 do not change MTU.
User has to manually update all routes.
ifconfig em0 mtu 9000->1500 -> all routes traversing em0 do not change MTU.
However, if ip[6]_output finds route with rt_mtu > interface mtu, rt_mtu
gets updated.
New behavior:
ifconfig em0 mtu 1500->9000 -> all interface routes in all fibs gets updated
with new MTU unless RTF_FIXEDMTU flag set on them.
ifconfig em0 mtu 9000->1500 -> all routes in all fibs gets updated with new
MTU unless RTF_FIXEDMTU flag set on them AND rt_mtu is less than ifp mtu.
route add ... -mtu XXX automatically sets RTF_FIXEDMTU flag.
route change .. -mtu 0 automatically removes RTF_FIXEDMTU flag.
PR: 194238
MFC after: 1 month
CR: D1125
Notes
Notes:
svn path=/head/; revision=274611
Diffstat (limited to 'sbin/route/route.c')
-rw-r--r-- | sbin/route/route.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sbin/route/route.c b/sbin/route/route.c index 2c328a39c41d..53ec2986341a 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -1587,7 +1587,7 @@ static const char routeflags[] = "\1UP\2GATEWAY\3HOST\4REJECT\5DYNAMIC\6MODIFIED\7DONE" "\012XRESOLVE\013LLINFO\014STATIC\015BLACKHOLE" "\017PROTO2\020PROTO1\021PRCLONING\022WASCLONED\023PROTO3" - "\025PINNED\026LOCAL\027BROADCAST\030MULTICAST\035STICKY"; + "\024FIXEDMTU\025PINNED\026LOCAL\027BROADCAST\030MULTICAST\035STICKY"; static const char ifnetflags[] = "\1UP\2BROADCAST\3DEBUG\4LOOPBACK\5PTP\6b6\7RUNNING\010NOARP" "\011PPROMISC\012ALLMULTI\013OACTIVE\014SIMPLEX\015LINK0\016LINK1" |