static_arp revision 197701
1292932Sdim#!/bin/sh 2292932Sdim# 3353358Sdim# Copyright (c) 2009 Xin LI <delphij@FreeBSD.org> 4353358Sdim# All rights reserved. 5353358Sdim# 6292932Sdim# Redistribution and use in source and binary forms, with or without 7292932Sdim# modification, are permitted provided that the following conditions 8292932Sdim# are met: 9292932Sdim# 1. Redistributions of source code must retain the above copyright 10292932Sdim# notice, this list of conditions and the following disclaimer. 11292932Sdim# 2. Redistributions in binary form must reproduce the above copyright 12292932Sdim# notice, this list of conditions and the following disclaimer in the 13321369Sdim# documentation and/or other materials provided with the distribution. 14321369Sdim# 15292932Sdim# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16314564Sdim# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17314564Sdim# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18314564Sdim# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19321369Sdim# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20321369Sdim# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21321369Sdim# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22321369Sdim# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23292932Sdim# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24314564Sdim# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25314564Sdim# SUCH DAMAGE. 26292932Sdim# 27314564Sdim# Configure static ARP table 28314564Sdim# 29292932Sdim# $FreeBSD: head/etc/rc.d/static_arp 197701 2009-10-02 06:19:34Z hrs $ 30314564Sdim# 31314564Sdim 32314564Sdim# PROVIDE: static_arp 33292932Sdim# REQUIRE: netif 34314564Sdim# KEYWORD: nojail 35314564Sdim 36314564Sdim. /etc/rc.subr 37292932Sdim. /etc/network.subr 38314564Sdim 39314564Sdimname="static_arp" 40292932Sdimstart_cmd="static_arp_start" 41321369Sdimstop_cmd="static_arp_stop" 42321369Sdim 43321369Sdimstatic_arp_start() 44321369Sdim{ 45321369Sdim local e arp_args 46321369Sdim 47321369Sdim if [ -n "${static_arp_pairs}" ]; then 48321369Sdim echo -n 'Binding static ARP pair(s):' 49353358Sdim for e in ${static_arp_pairs}; do 50353358Sdim echo -n " ${e}" 51321369Sdim eval arp_args=\$static_arp_${e} 52321369Sdim arp -S ${arp_args} >/dev/null 2>&1 53321369Sdim done 54321369Sdim echo '.' 55321369Sdim fi 56321369Sdim} 57314564Sdim 58292932Sdimstatic_arp_stop() 59292932Sdim{ 60292932Sdim local e arp_args 61 62 if [ -n "${static_arp_pairs}" ]; then 63 echo -n 'Unbinding static ARP pair(s):' 64 for e in ${static_arp_pairs}; do 65 echo -n " ${e}" 66 eval arp_args=\$static_arp_${e} 67 arp -d ${arp_args%%[ ]*} > /dev/null 2>&1 68 done 69 echo '.' 70 fi 71} 72 73load_rc_config $name 74run_rc_command "$1" 75