summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_input.c
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2004-06-16 08:33:09 +0000
committerbms <bms@FreeBSD.org>2004-06-16 08:33:09 +0000
commit075deb0c4c016fbd1931955599b44e3592fa397c (patch)
tree9c397fc11aca1ef7de9f66bfd3c87156dabed7f2 /sys/netinet/ip_input.c
parente8e6ce5e869d4d5e8b55a44ea6cbd2da50b943ae (diff)
downloadFreeBSD-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/netinet/ip_input.c')
-rw-r--r--sys/netinet/ip_input.c2
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;
OpenPOWER on IntegriCloud