From owner-freebsd-stable@FreeBSD.ORG Sat Apr 13 12:29:43 2013 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id E52F02EF; Sat, 13 Apr 2013 12:29:43 +0000 (UTC) (envelope-from kpaasial@gmail.com) Received: from mail-wi0-x232.google.com (mail-wi0-x232.google.com [IPv6:2a00:1450:400c:c05::232]) by mx1.freebsd.org (Postfix) with ESMTP id 53EAF1C9; Sat, 13 Apr 2013 12:29:43 +0000 (UTC) Received: by mail-wi0-f178.google.com with SMTP id hr17so327219wib.11 for ; Sat, 13 Apr 2013 05:29:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=XKfYQMYnKdLwGo4fhASdqsVuSXG+yw974gbsMmOdoAs=; b=I43qzTNZkooWY55qWwEIzu9pjJ84VndfQckqhoI5qTOHvkC9fG4Btrv8O9KuoQIarl lyW6kDZC2lgzOntwzUFRcrolkSyUoxKBvLvK3RAA61HkSVuQYRpT6rNXRZQyKCdrsJgs JmRzxAQ9EO/yrw607E+STriF2LafOvS2lTPmL3GVic6JQbF6AOm5aWcgX7GrnbckrDCS AGRQ8VQFF8FyaI8wLUaDbEHFG0obYBOmnTQX4pOS+Gte/2ZNrgQE4aB6CBBHbhaeemPO jEVoZenISinsUxi0j8VmMpcXtqTjKTKBDvDZ7rJ4I/p8h59sHnGS94eYaINbDIqxL7o0 daYw== MIME-Version: 1.0 X-Received: by 10.194.60.195 with SMTP id j3mr22818693wjr.33.1365856182448; Sat, 13 Apr 2013 05:29:42 -0700 (PDT) Received: by 10.216.139.72 with HTTP; Sat, 13 Apr 2013 05:29:42 -0700 (PDT) In-Reply-To: References: <50D1C553.9060100@wasikowski.net> <20121220132750.GB99616@stack.nl> <50D4F2E4.7020600@wasikowski.net> <20121222171400.GA2399@anubis.morrow.me.uk> <50D5F296.9050109@wasikowski.net> Date: Sat, 13 Apr 2013 15:29:42 +0300 Message-ID: Subject: Re: ipv6_addrs_IF aliases in rc.conf(5) From: Kimmo Paasiala To: FreeBSD current Content-Type: text/plain; charset=UTF-8 Cc: freebsd-stable@freebsd.org X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2013 12:29:44 -0000 On Thu, Jan 17, 2013 at 7:24 AM, Kimmo Paasiala wrote: > On Thu, Dec 27, 2012 at 11:42 PM, Phil Kulin wrote: >> 2012/12/26 Kimmo Paasiala : >> >>> I've revised the patch again and updated it at gihub, >>> https://gist.github.com/4362018. It can now be applied at top level >>> of sources (/usr/src typically). It now does the deconfiguration in >>> reverse order of the configuration, meaning the aliases configured >>> with ipv6_addrs_IF are removed before the ones configured with >>> ifconfig_IF_aliasN="inet6 ...". >> >> Adapted for FreeBSD 8.2, works fine: >> >> --- network.subr.orig 2011-02-17 05:19:39.000000000 +0300 >> +++ network.subr 2012-12-28 00:46:38.000000000 +0400 >> @@ -312,6 +312,12 @@ afexists() >> # 1 otherwise. >> ipv6if() >> { >> + # Test for $ipv6_addrs_IF. If it exists then the >> + # interface should be configured for IPv6 >> + _tmpargs=$(get_if_var $_if ipv6_addrs_IF) >> + if [ -n "${_tmpargs}" ]; then >> + return 0 >> + fi >> if ! checkyesno ipv6_enable; then >> return 1 >> fi >> @@ -948,7 +954,12 @@ network6_interface_setup() >> rtsol_interface=no >> ifconfig $i inet6 ${ipv6_ifconfig} alias >> fi >> - >> + ipv6_addrs=`get_if_var $i ipv6_addrs_IF` >> + if [ -n "${ipv6_addrs}" ]; then >> + rtsol_available=no >> + rtsol_interface=no >> + ipv6_addrs_common ${i} alias >> + fi >> # Wireless NIC cards are virtualized through the wlan interface >> if ! is_wired_interface ${i}; then >> case "${i}" in >> @@ -1178,3 +1189,39 @@ network6_getladdr() >> esac >> done >> } >> + >> +ipv6_addrs_common() >> +{ >> + local _ret _if _action _ip6prefix _ip6prefixes >> + local _ip6addr _prefixlen >> + local _range _ip6net _ip6low _ip6high >> + _ret=1 >> + _if=$1 >> + _action=$2 >> + # get the prefixes from ipv6_addrs_IF variable >> + _ip6prefixes=`get_if_var $_if ipv6_addrs_IF` >> + for _ip6prefix in ${_ip6prefixes}; do >> + _ip6addr=${_ip6prefix%%/*} >> + _prefixlen=${_ip6prefix##*/} >> + _range=${_ip6addr##*:} >> + _ip6net=${_ip6addr%:*} >> + _ip6low=${_range%-*} >> + _ip6high=${_range#*-} >> + # If deleting an alias, set _prefixlen to null string. >> + if [ "${_action}" = "-alias" ]; then >> + _prefixlen="" >> + else >> + _prefixlen="prefixlen $_prefixlen" >> + fi >> + _ip6high=$(("0x${_ip6high}")) >> + _ip6count=$(("0x${_ip6low}")) >> + while [ "${_ip6count}" -le "${_ip6high}" ]; do >> + # Re-uses the _ip6addr variable from above >> + _ip6addr=$(printf "%x" "${_ip6count}") >> + eval "ifconfig ${_if} inet6 >> ${_ip6net}:${_ip6addr} ${_prefixlen} ${_action}" >> + _ip6count=$((${_ip6count}+1)) >> + _ret=0 >> + done >> + done >> + return $_ret >> +} >> >> >> -- >> Non nobis Domine non nobis sed Nomini Tuo da gloriam >> Phil Kulin > > I don't have an 8.X system to test but I guess it's fine. > > Any more interest in this? I'd love to see this added, not because I > wrote it but because I want to contribute in any way I can. > > -Kimmo Sorry to resurrect this thread but since nothing has happened in about three months I have to ask: What can I do to have this commited to HEAD? I'd be even willing to become a src committer if that's what is required. I feel that I'm compentent enough. Who can I contact? -Kimmo