[Midnightbsd-cvs] src [9008] trunk/sys/net/if_stf.c: permit change of MTU in 6to4 relay.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Sep 29 21:45:31 EDT 2016


Revision: 9008
          http://svnweb.midnightbsd.org/src/?rev=9008
Author:   laffer1
Date:     2016-09-29 21:45:31 -0400 (Thu, 29 Sep 2016)
Log Message:
-----------
permit change of MTU in 6to4 relay.

Modified Paths:
--------------
    trunk/sys/net/if_stf.c

Modified: trunk/sys/net/if_stf.c
===================================================================
--- trunk/sys/net/if_stf.c	2016-09-30 01:44:59 UTC (rev 9007)
+++ trunk/sys/net/if_stf.c	2016-09-30 01:45:31 UTC (rev 9008)
@@ -799,7 +799,7 @@
 	struct rt_addrinfo *info;
 {
 	RT_LOCK_ASSERT(rt);
-	rt->rt_rmx.rmx_mtu = IPV6_MMTU;
+	rt->rt_rmx.rmx_mtu = rt->rt_ifp->if_mtu;
 }
 
 static int
@@ -812,7 +812,7 @@
 	struct ifreq *ifr;
 	struct sockaddr_in6 *sin6;
 	struct in_addr addr;
-	int error;
+	int error, mtu;
 
 	error = 0;
 	switch (cmd) {
@@ -846,6 +846,18 @@
 			error = EAFNOSUPPORT;
 		break;
 
+	case SIOCGIFMTU:
+		break;
+
+	case SIOCSIFMTU:
+		ifr = (struct ifreq *)data;
+		mtu = ifr->ifr_mtu;
+		/* RFC 4213 3.2 ideal world MTU */
+		if (mtu < IPV6_MINMTU || mtu > IF_MAXMTU - 20)
+			return (EINVAL);
+		ifp->if_mtu = mtu;
+		break;
+
 	default:
 		error = EINVAL;
 		break;



More information about the Midnightbsd-cvs mailing list