diff options
author | Andrey V. Elsukov <ae@FreeBSD.org> | 2017-04-11 08:56:18 +0000 |
---|---|---|
committer | Andrey V. Elsukov <ae@FreeBSD.org> | 2017-04-11 08:56:18 +0000 |
commit | c00bf7307678c1ec7feb5b0c16f0ad888bd8fac6 (patch) | |
tree | 9a1d6654740990f588ecd7f92c2fe07c818d1b62 /sys/net | |
parent | 6627d919dee4ea9d2a242dd7a61ce090373f4f76 (diff) | |
download | src-c00bf7307678c1ec7feb5b0c16f0ad888bd8fac6.tar.gz src-c00bf7307678c1ec7feb5b0c16f0ad888bd8fac6.zip |
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
Notes
Notes:
svn path=/head/; revision=316699
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_gre.c | 14 | ||||
-rw-r--r-- | sys/net/if_gre.h | 1 | ||||
-rw-r--r-- | sys/net/if_me.c | 6 |
3 files changed, 7 insertions, 14 deletions
diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c index 425df8e97552..7adf189be60c 100644 --- a/sys/net/if_gre.c +++ b/sys/net/if_gre.c @@ -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, int unit, caddr_t params) 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, caddr_t data) /* 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, caddr_t data) } 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 diff --git a/sys/net/if_gre.h b/sys/net/if_gre.h index 806b0cb82964..8fb811cbe4bd 100644 --- a/sys/net/if_gre.h +++ b/sys/net/if_gre.h @@ -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 { diff --git a/sys/net/if_me.c b/sys/net/if_me.c index 7a092223aceb..4ab013bdcce2 100644 --- a/sys/net/if_me.c +++ b/sys/net/if_me.c @@ -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, int unit, caddr_t params) 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, caddr_t data) 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; |