Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Jul 2010 16:55:21 +0200
From:      Frank Bartels <freebsd@knarf.de>
To:        freebsd-rc@freebsd.org
Subject:   rc.d/static_arp for v6: static_ndp
Message-ID:  <20100709145521.GA60438@server-king.de>

next in thread | raw e-mail | index | archive | help
Hi,

I've just noticed we have rc.d/static_arp for a while now, but the
v6 counterpart is missing: I'd call it static_ndp.

So I took rc.d/static_arp and patched it. ndp does not know about
-S (deleting old entry first), so I've just changed it to -s. Maybe
someone is able to add -S to ndp, otherwise one should add -d line
before -s.

rc.conf works the same way:

static_ndp_pairs="gateway"
static_ndp_gateway="2001:db8:120:9260::1 00:26:ff:ff:ff:ff"

--- /etc/rc.d/static_arp        2010-07-09 15:25:08.929932175 +0200
+++ /usr/local/etc/rc.d/static_ndp      2010-07-09 16:39:20.396958047 +0200
@@ -24,46 +24,46 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# Configure static ARP table
+# Configure static NDP table
 #
-# $FreeBSD: src/etc/rc.d/static_arp,v 1.4.2.2.2.1 2010/06/14 02:09:06 kensmith Exp $
+# $FreeBSD$
 #
 
-# PROVIDE: static_arp
+# PROVIDE: static_ndp
 # REQUIRE: netif
 # KEYWORD: nojail
 
 . /etc/rc.subr
 
-name="static_arp"
-start_cmd="static_arp_start"
-stop_cmd="static_arp_stop"
+name="static_ndp"
+start_cmd="static_ndp_start"
+stop_cmd="static_ndp_stop"


-static_arp_start()
+static_ndp_start()
 {
-       local e arp_args
+       local e ndp_args
 
-       if [ -n "${static_arp_pairs}" ]; then
-               echo -n 'Binding static ARP pair(s):'
-               for e in ${static_arp_pairs}; do
+       if [ -n "${static_ndp_pairs}" ]; then
+               echo -n 'Binding static NDP pair(s):'
+               for e in ${static_ndp_pairs}; do
                        echo -n " ${e}"
-                       eval arp_args=\$static_arp_${e}
-                       arp -S ${arp_args} >/dev/null 2>&1
+                       eval ndp_args=\$static_ndp_${e}
+                       ndp -s ${ndp_args} >/dev/null 2>&1
                done
                echo '.'
        fi
 }
 
-static_arp_stop()
+static_ndp_stop()
 {
-       local e arp_args
+       local e ndp_args
 
-       if [ -n "${static_arp_pairs}" ]; then
-               echo -n 'Unbinding static ARP pair(s):'
-               for e in ${static_arp_pairs}; do
+       if [ -n "${static_ndp_pairs}" ]; then
+               echo -n 'Unbinding static NDP pair(s):'
+               for e in ${static_ndp_pairs}; do
                        echo -n " ${e}"
-                       eval arp_args=\$static_arp_${e}
-                       arp -d ${arp_args%%[    ]*} > /dev/null 2>&1
+                       eval ndp_args=\$static_ndp_${e}
+                       ndp -d ${ndp_args%%[    ]*} > /dev/null 2>&1
                done
                echo '.'
        fi

It seems this "hack" is needed for the native v6 connectity provided
by Hetzner (German hosting provider).

Cheers,
Knarf



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100709145521.GA60438>