From owner-svn-src-user@FreeBSD.ORG Sat Jun 4 17:22:44 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB187106566B; Sat, 4 Jun 2011 17:22:43 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D0EEC8FC13; Sat, 4 Jun 2011 17:22:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p54HMhHF019355; Sat, 4 Jun 2011 17:22:43 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p54HMh4s019351; Sat, 4 Jun 2011 17:22:43 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201106041722.p54HMh4s019351@svn.freebsd.org> From: Hiroki Sato Date: Sat, 4 Jun 2011 17:22:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222693 - user/hrs/ipv6/usr.sbin/rtadvd X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jun 2011 17:22:44 -0000 Author: hrs Date: Sat Jun 4 17:22:43 2011 New Revision: 222693 URL: http://svn.freebsd.org/changeset/base/222693 Log: "noonlinkprefix" directive has been added. This disables gathering on-link prefixes from the kernel's routing table. A rtadvd.conf with "noonlinkprefix" + no "addr" generates an RA message with no prefix information option. PR: bin/152458 Modified: user/hrs/ipv6/usr.sbin/rtadvd/config.c user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.conf.5 user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.h Modified: user/hrs/ipv6/usr.sbin/rtadvd/config.c ============================================================================== --- user/hrs/ipv6/usr.sbin/rtadvd/config.c Sat Jun 4 16:42:51 2011 (r222692) +++ user/hrs/ipv6/usr.sbin/rtadvd/config.c Sat Jun 4 17:22:43 2011 (r222693) @@ -185,6 +185,12 @@ getconfig(char *intface) if ((forwarding = getinet6sysctl(IPV6CTL_FORWARDING)) < 0) exit(1); + /* gather on-link prefixes from the kernel or not. */ + if (agetflag("noonlinkprefix")) + rai->rai_advonlinkprefix = 0; + else + rai->rai_advonlinkprefix = 1; + /* get interface information */ if (agetflag("nolladdr")) rai->rai_advlinkopt = 0; @@ -433,7 +439,7 @@ getconfig(char *intface) now.tv_sec + pfx->pfx_preflifetime; } } - if (rai->rai_pfxs == 0) + if (rai->rai_advonlinkprefix && rai->rai_pfxs == 0) get_prefix(rai); MAYHAVE(val, "mtu", 0); Modified: user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.conf.5 ============================================================================== --- user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.conf.5 Sat Jun 4 16:42:51 2011 (r222692) +++ user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.conf.5 Sat Jun 4 17:22:43 2011 (r222693) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 28, 2011 +.Dd June 4, 2011 .Dt RTADVD.CONF 5 .Os .Sh NAME @@ -179,10 +179,25 @@ will automatically get appropriate prefi and advertise the prefixes with the default parameters. Keywords other than .Cm clockskew +and +.Cm noonlinkprefix can be augmented with a number, like .Dq Li prefix2 , to specify multiple prefixes. .Bl -tag -width indent +.It Cm \&noonlinkprefix +(bool) Specifies no prefix in the kernel will be advertised. +By default +.Nm rtadvd +automatically obtains valid and on-link prefixes from the kernel's routing +table. +The +.Cm noonlinkprefix +disables that behavior. +If this is specified and no +.Cm addr +keyword is specified, no prefix information option will be included in the +message. .It Cm \&clockskew (num) Time skew to adjust link propagation delays and clock skews between routers on the link Modified: user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.h ============================================================================== --- user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.h Sat Jun 4 16:42:51 2011 (r222692) +++ user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.h Sat Jun 4 17:22:43 2011 (r222693) @@ -185,6 +185,7 @@ struct rainfo { /* interface information */ int rai_ifindex; int rai_advlinkopt; /* bool: whether include link-layer addr opt */ + int rai_advonlinkprefix; /* bool: gather on-link prefixes? */ struct sockaddr_dl *rai_sdl; char rai_ifname[IFNAMSIZ]; u_int32_t rai_phymtu; /* mtu of the physical interface */