Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Apr 2017 08:56:19 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r316699 - head/sys/net
Message-ID:  <201704110856.v3B8uJq5039806@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ae
Date: Tue Apr 11 08:56:18 2017
New Revision: 316699
URL: https://svnweb.freebsd.org/changeset/base/316699

Log:
  Do not adjust interface MTU automatically. Leave this task to the system
  administrator.
  
  This restores the behavior that was prior to r274246.
  
  No objection from:	#network
  MFC after:	2 weeks
  Differential Revision:	https://reviews.freebsd.org/D10215

Modified:
  head/sys/net/if_gre.c
  head/sys/net/if_gre.h
  head/sys/net/if_me.c

Modified: head/sys/net/if_gre.c
==============================================================================
--- head/sys/net/if_gre.c	Tue Apr 11 08:29:12 2017	(r316698)
+++ head/sys/net/if_gre.c	Tue Apr 11 08:56:18 2017	(r316699)
@@ -88,7 +88,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/in_cksum.h>
 #include <security/mac/mac_framework.h>
 
-#define	GREMTU			1500
+#define	GREMTU			1476
 static const char grename[] = "gre";
 static MALLOC_DEFINE(M_GRE, grename, "Generic Routing Encapsulation");
 static VNET_DEFINE(struct mtx, gre_mtx);
@@ -173,7 +173,7 @@ gre_clone_create(struct if_clone *ifc, i
 	GRE2IFP(sc)->if_softc = sc;
 	if_initname(GRE2IFP(sc), grename, unit);
 
-	GRE2IFP(sc)->if_mtu = sc->gre_mtu = GREMTU;
+	GRE2IFP(sc)->if_mtu = GREMTU;
 	GRE2IFP(sc)->if_flags = IFF_POINTOPOINT|IFF_MULTICAST;
 	GRE2IFP(sc)->if_output = gre_output;
 	GRE2IFP(sc)->if_ioctl = gre_ioctl;
@@ -231,7 +231,8 @@ gre_ioctl(struct ifnet *ifp, u_long cmd,
 		 /* XXX: */
 		if (ifr->ifr_mtu < 576)
 			return (EINVAL);
-		break;
+		ifp->if_mtu = ifr->ifr_mtu;
+		return (0);
 	case SIOCSIFADDR:
 		ifp->if_flags |= IFF_UP;
 	case SIOCSIFFLAGS:
@@ -255,12 +256,6 @@ gre_ioctl(struct ifnet *ifp, u_long cmd,
 	}
 	error = 0;
 	switch (cmd) {
-	case SIOCSIFMTU:
-		GRE_WLOCK(sc);
-		sc->gre_mtu = ifr->ifr_mtu;
-		gre_updatehdr(sc);
-		GRE_WUNLOCK(sc);
-		goto end;
 	case SIOCSIFPHYADDR:
 #ifdef INET6
 	case SIOCSIFPHYADDR_IN6:
@@ -549,7 +544,6 @@ gre_updatehdr(struct gre_softc *sc)
 	} else
 		sc->gre_oseq = 0;
 	gh->gre_flags = htons(flags);
-	GRE2IFP(sc)->if_mtu = sc->gre_mtu - sc->gre_hlen;
 }
 
 static void

Modified: head/sys/net/if_gre.h
==============================================================================
--- head/sys/net/if_gre.h	Tue Apr 11 08:29:12 2017	(r316698)
+++ head/sys/net/if_gre.h	Tue Apr 11 08:56:18 2017	(r316699)
@@ -69,7 +69,6 @@ struct gre_softc {
 	uint32_t		gre_oseq;
 	uint32_t		gre_key;
 	uint32_t		gre_options;
-	uint32_t		gre_mtu;
 	u_int			gre_fibnum;
 	u_int			gre_hlen;	/* header size */
 	union {

Modified: head/sys/net/if_me.c
==============================================================================
--- head/sys/net/if_me.c	Tue Apr 11 08:29:12 2017	(r316698)
+++ head/sys/net/if_me.c	Tue Apr 11 08:56:18 2017	(r316699)
@@ -66,7 +66,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/in_cksum.h>
 #include <security/mac/mac_framework.h>
 
-#define	MEMTU			1500
+#define	MEMTU			(1500 - sizeof(struct mobhdr))
 static const char mename[] = "me";
 static MALLOC_DEFINE(M_IFME, mename, "Minimal Encapsulation for IP");
 static VNET_DEFINE(struct mtx, me_mtx);
@@ -186,7 +186,7 @@ me_clone_create(struct if_clone *ifc, in
 	ME2IFP(sc)->if_softc = sc;
 	if_initname(ME2IFP(sc), mename, unit);
 
-	ME2IFP(sc)->if_mtu = MEMTU - sizeof(struct mobhdr);
+	ME2IFP(sc)->if_mtu = MEMTU;;
 	ME2IFP(sc)->if_flags = IFF_POINTOPOINT|IFF_MULTICAST;
 	ME2IFP(sc)->if_output = me_output;
 	ME2IFP(sc)->if_ioctl = me_ioctl;
@@ -236,7 +236,7 @@ me_ioctl(struct ifnet *ifp, u_long cmd, 
 	case SIOCSIFMTU:
 		if (ifr->ifr_mtu < 576)
 			return (EINVAL);
-		ifp->if_mtu = ifr->ifr_mtu - sizeof(struct mobhdr);
+		ifp->if_mtu = ifr->ifr_mtu;
 		return (0);
 	case SIOCSIFADDR:
 		ifp->if_flags |= IFF_UP;



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