Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Feb 2018 19:49:21 +0000 (UTC)
From:      Eric van Gyzen <vangyzen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r329181 - head/sys/netinet6
Message-ID:  <201802121949.w1CJnLl4038516@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vangyzen
Date: Mon Feb 12 19:49:20 2018
New Revision: 329181
URL: https://svnweb.freebsd.org/changeset/base/329181

Log:
  Update the MTU in affected routes when IPv6 RA changes the MTU
  
  ip6_calcmtu() only looks at the interface MTU if neither the TCP hostcache
  nor the route provides an MTU.  Update the routes so they do not provide
  stale MTUs.
  
  This fixes UNH IPv6 conformance test cases v6LC_4_1_08 and v6LC_4_1_09,
  which use a RA to reduce the link MTU from 1500 to 1280.
  
  Reported and tested by:	Farrell Woods <Farrell_Woods@Dell.com>
  Reviewed by:	dab, melifaro
  Discussed with:	ae
  MFC after:	1 week
  Sponsored by:	Dell EMC
  Differential Revision:	https://reviews.freebsd.org/D14257

Modified:
  head/sys/netinet6/nd6_rtr.c

Modified: head/sys/netinet6/nd6_rtr.c
==============================================================================
--- head/sys/netinet6/nd6_rtr.c	Mon Feb 12 19:36:26 2018	(r329180)
+++ head/sys/netinet6/nd6_rtr.c	Mon Feb 12 19:49:20 2018	(r329181)
@@ -408,8 +408,11 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len)
 			int change = (ndi->linkmtu != mtu);
 
 			ndi->linkmtu = mtu;
-			if (change) /* in6_maxmtu may change */
+			if (change) {
+				/* in6_maxmtu may change */
 				in6_setmaxmtu();
+				rt_updatemtu(ifp);
+			}
 		} else {
 			nd6log((LOG_INFO, "nd6_ra_input: bogus mtu "
 			    "mtu=%lu sent from %s; "



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802121949.w1CJnLl4038516>