From owner-svn-src-all@FreeBSD.ORG Tue Mar 26 19:04:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 5D69DDC7; Tue, 26 Mar 2013 19:04:26 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mail.ipfw.ru (unknown [IPv6:2a01:4f8:120:6141::2]) by mx1.freebsd.org (Postfix) with ESMTP id 2286C788; Tue, 26 Mar 2013 19:04:26 +0000 (UTC) Received: from [2a02:6b8:0:401:222:4dff:fe50:cd2f] (helo=dhcp170-36-red.yandex.net) by mail.ipfw.ru with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76 (FreeBSD)) (envelope-from ) id 1UKZDt-0006FY-Rx; Tue, 26 Mar 2013 23:07:53 +0400 Message-ID: <5151F12B.8070101@FreeBSD.org> Date: Tue, 26 Mar 2013 23:04:11 +0400 From: "Alexander V. Chernikov" User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: Re: svn commit: r248743 - stable/9/sys/net References: <201303261857.r2QIvPHt070640@svn.freebsd.org> In-Reply-To: <201303261857.r2QIvPHt070640@svn.freebsd.org> X-Enigmail-Version: 1.4.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Mar 2013 19:04:26 -0000 On 26.03.2013 22:57, Alexander V. Chernikov wrote: > Author: melifaro > Date: Tue Mar 26 18:57:25 2013 > New Revision: 248743 > URL: http://svnweb.freebsd.org/changeset/base/248743 > > Log: Merge r238492. > Permit changing MTU in 6to4 relay. > > This behavior is recommended by RFC 4213 clause 3.2. > > Sometimes fragmentation is the least evil. > For example, some Linux IPVS kernels forwards > ICMPv6 checksums to real servers incorrectly. > > Modified: > stable/9/sys/net/if_stf.c > Directory Properties: > stable/9/sys/ (props changed) > stable/9/sys/net/ (props changed) > > Modified: stable/9/sys/net/if_stf.c > ============================================================================== > --- stable/9/sys/net/if_stf.c Tue Mar 26 18:46:40 2013 (r248742) > +++ stable/9/sys/net/if_stf.c Tue Mar 26 18:57:25 2013 (r248743) > @@ -799,7 +799,7 @@ stf_rtrequest(cmd, rt, info) > 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 @@ stf_ioctl(ifp, cmd, data) > struct ifreq *ifr; > struct sockaddr_in6 *sin6; > struct in_addr addr; > - int error; > + int error, mtu; > > error = 0; > switch (cmd) { > @@ -846,6 +846,18 @@ stf_ioctl(ifp, cmd, data) > 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; > -- WBR, Alexander