From owner-svn-src-all@FreeBSD.ORG Sat Nov 17 21:44:02 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E501A340; Sat, 17 Nov 2012 21:44:02 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C9FF48FC0C; Sat, 17 Nov 2012 21:44:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qAHLi228089164; Sat, 17 Nov 2012 21:44:02 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qAHLi2VS089163; Sat, 17 Nov 2012 21:44:02 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201211172144.qAHLi2VS089163@svn.freebsd.org> From: Hiroki Sato Date: Sat, 17 Nov 2012 21:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243188 - head/etc/rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: Sat, 17 Nov 2012 21:44:03 -0000 Author: hrs Date: Sat Nov 17 21:44:02 2012 New Revision: 243188 URL: http://svnweb.freebsd.org/changeset/base/243188 Log: Use -fib N modifier to add/delete a route to/from multiple FIBs. Modified: head/etc/rc.d/routing Modified: head/etc/rc.d/routing ============================================================================== --- head/etc/rc.d/routing Sat Nov 17 20:19:00 2012 (r243187) +++ head/etc/rc.d/routing Sat Nov 17 21:44:02 2012 (r243188) @@ -139,29 +139,20 @@ static_inet() static_inet6() { - local _action i fibs + local _action fibmod fibs _action=$1 # get the number of FIBs supported. - fibs=`sysctl -n net.fibs` - : ${fibs:=1} + fibs=$((`${SYSCTL_N} net.fibs` - 1)) + if [ -n "$fibs" ]; then + fibmod="-fib 0-$fibs" + else + fibmod= + fi # disallow "internal" addresses to appear on the wire - route ${_action} -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject - route ${_action} -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject - i=1 - if test ${i} -lt ${fibs}; then - printf "Also installing reject routes for FIBs" - while test ${i} -lt ${fibs}; do - setfib -F ${i} route -q ${_action} \ - -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject - setfib -F ${i} route -q ${_action} \ - -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject - printf " %d" ${i} - i=$((i + 1)) - done - printf "\n" - fi + route ${_action} -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject ${fibmod} + route ${_action} -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject ${fibmod} case ${ipv6_defaultrouter} in [Nn][Oo] | '') @@ -233,21 +224,8 @@ static_inet6() # for the host case, you will allow to omit the identifiers. # Under this configuration, the packets will go to the default # interface. - route ${_action} -inet6 fe80:: -prefixlen 10 ::1 -reject - route ${_action} -inet6 ff02:: -prefixlen 16 ::1 -reject - i=1 - if test ${i} -lt ${fibs}; then - printf "Also installing reject routes for FIBs" - while test ${i} -lt ${fibs}; do - setfib -F ${i} route -q ${_action} \ - -inet6 fe80:: -prefixlen 10 ::1 -reject - setfib -F ${i} route -q ${_action} \ - -inet6 ff02:: -prefixlen 16 ::1 -reject - printf " %d" ${i} - i=$((i + 1)) - done - printf "\n" - fi + route ${_action} -inet6 fe80:: -prefixlen 10 ::1 -reject ${fibmod} + route ${_action} -inet6 ff02:: -prefixlen 16 ::1 -reject ${fibmod} case ${ipv6_default_interface} in '')