diff options
author | bms <bms@FreeBSD.org> | 2004-06-16 08:33:09 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2004-06-16 08:33:09 +0000 |
commit | 075deb0c4c016fbd1931955599b44e3592fa397c (patch) | |
tree | 9c397fc11aca1ef7de9f66bfd3c87156dabed7f2 /sys | |
parent | e8e6ce5e869d4d5e8b55a44ea6cbd2da50b943ae (diff) | |
download | FreeBSD-src-075deb0c4c016fbd1931955599b44e3592fa397c.zip FreeBSD-src-075deb0c4c016fbd1931955599b44e3592fa397c.tar.gz |
In ip_forward(), when calculating the MTU in effect for an IPSEC transport
mode tunnel, take the per-route MTU into account, *if* and *only if* it
is non-zero (as found in struct rt_metrics/rt_metrics_lite).
PR: kern/42727
Obtained from: NetBSD (ip_input.c rev 1.151)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet/ip_input.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 0d18482..a84ed07 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -1957,6 +1957,8 @@ ip_forward(struct mbuf *m, int srcrt, struct sockaddr_in *next_hop) ro = &sp->req->sav->sah->sa_route; if (ro->ro_rt && ro->ro_rt->rt_ifp) { dummyifp.if_mtu = + ro->ro_rt->rt_rmx.rmx_mtu ? + ro->ro_rt->rt_rmx.rmx_mtu : ro->ro_rt->rt_ifp->if_mtu; dummyifp.if_mtu -= ipsechdr; destifp = &dummyifp; |