ip: remove ifcfg script
This script was from olden days of ifcfg. I don't see any distribution using it and it is time to put it out to pasture. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
parent
2c8110881b
commit
adddf30cd8
|
|
@ -18,7 +18,7 @@ RTMONOBJ=rtmon.o
|
|||
include ../config.mk
|
||||
|
||||
ALLOBJ=$(IPOBJ) $(RTMONOBJ)
|
||||
SCRIPTS=ifcfg routel routef
|
||||
SCRIPTS=routel routef
|
||||
TARGETS=ip rtmon
|
||||
|
||||
all: $(TARGETS) $(SCRIPTS)
|
||||
|
|
|
|||
150
ip/ifcfg
150
ip/ifcfg
|
|
@ -1,150 +0,0 @@
|
|||
#! /bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
CheckForwarding () {
|
||||
local sbase fwd
|
||||
sbase=/proc/sys/net/ipv4/conf
|
||||
fwd=0
|
||||
if [ -d $sbase ]; then
|
||||
for dir in $sbase/*/forwarding; do
|
||||
fwd=$(( fwd + $(cat "$dir") ))
|
||||
done
|
||||
else
|
||||
fwd=2
|
||||
fi
|
||||
return $fwd
|
||||
}
|
||||
|
||||
RestartRDISC () {
|
||||
killall -HUP rdisc || rdisc -fs
|
||||
}
|
||||
|
||||
ABCMaskLen () {
|
||||
local class;
|
||||
|
||||
class=${1%%.*}
|
||||
if [ "$1" = "" -o $class -eq 0 -o $class -ge 224 ]; then return 0
|
||||
elif [ $class -ge 224 ]; then return 0
|
||||
elif [ $class -ge 192 ]; then return 24
|
||||
elif [ $class -ge 128 ]; then return 16
|
||||
else return 8; fi
|
||||
}
|
||||
|
||||
label="label $1"
|
||||
ldev="$1"
|
||||
dev=${1%:*}
|
||||
if [ "$dev" = "" -o "$1" = "help" ]; then
|
||||
echo "Usage: ifcfg DEV [[add|del [ADDR[/LEN]] [PEER] | stop]" 1>&2
|
||||
echo " add - add new address" 1>&2
|
||||
echo " del - delete address" 1>&2
|
||||
echo " stop - completely disable IP" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
|
||||
CheckForwarding
|
||||
fwd=$?
|
||||
if [ $fwd -ne 0 ]; then
|
||||
echo "Forwarding is ON or its state is unknown ($fwd). OK, No RDISC." 1>&2
|
||||
fi
|
||||
|
||||
|
||||
deleting=0
|
||||
case "$1" in
|
||||
add) shift ;;
|
||||
stop)
|
||||
if [ "$ldev" != "$dev" ]; then
|
||||
echo "Cannot stop alias $ldev" 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
ip -4 addr flush dev $dev $label || exit 1
|
||||
if [ $fwd -eq 0 ]; then RestartRDISC; fi
|
||||
exit 0 ;;
|
||||
del*)
|
||||
deleting=1; shift ;;
|
||||
*)
|
||||
esac
|
||||
|
||||
ipaddr=
|
||||
pfxlen=
|
||||
if [ "$1" != "" ]; then
|
||||
ipaddr=${1%/*}
|
||||
if [ "$1" != "$ipaddr" ]; then
|
||||
pfxlen=${1#*/}
|
||||
fi
|
||||
if [ "$ipaddr" = "" ]; then
|
||||
echo "$1 is bad IP address." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
shift
|
||||
|
||||
peer=$1
|
||||
if [ "$peer" != "" ]; then
|
||||
if [ "$pfxlen" != "" -a "$pfxlen" != "32" ]; then
|
||||
echo "Peer address with non-trivial netmask." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
pfx="$ipaddr peer $peer"
|
||||
else
|
||||
if [ "$ipaddr" = "" ]; then
|
||||
echo "Missing IP address argument." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
if [ "$pfxlen" = "" ]; then
|
||||
ABCMaskLen $ipaddr
|
||||
pfxlen=$?
|
||||
fi
|
||||
pfx="$ipaddr/$pfxlen"
|
||||
fi
|
||||
|
||||
if [ "$ldev" = "$dev" -a "$ipaddr" != "" ]; then
|
||||
label=
|
||||
fi
|
||||
|
||||
if [ $deleting -ne 0 ]; then
|
||||
ip addr del $pfx dev $dev $label || exit 1
|
||||
if [ $fwd -eq 0 ]; then RestartRDISC; fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
if ! ip link set up dev $dev ; then
|
||||
echo "Error: cannot enable interface $dev." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
if [ "$ipaddr" = "" ]; then exit 0; fi
|
||||
|
||||
if ! arping -q -c 2 -w 3 -D -I $dev $ipaddr ; then
|
||||
echo "Error: some host already uses address $ipaddr on $dev." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! ip address add $pfx brd + dev $dev $label; then
|
||||
echo "Error: failed to add $pfx on $dev." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
arping -q -A -c 1 -I $dev $ipaddr
|
||||
noarp=$?
|
||||
( sleep 2 ;
|
||||
arping -q -U -c 1 -I $dev $ipaddr ) >/dev/null 2>&1 </dev/null &
|
||||
|
||||
ip route add unreachable 224.0.0.0/24 >/dev/null 2>&1
|
||||
ip route add unreachable 255.255.255.255 >/dev/null 2>&1
|
||||
if [ "`ip link ls $dev | grep -c MULTICAST`" -ge 1 ]; then
|
||||
ip route add 224.0.0.0/4 dev $dev scope global >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ $fwd -eq 0 ]; then
|
||||
if [ $noarp -eq 0 ]; then
|
||||
ip ro append default dev $dev metric 30000 scope global
|
||||
elif [ "$peer" != "" ]; then
|
||||
if ping -q -c 2 -w 4 $peer ; then
|
||||
ip ro append default via $peer dev $dev metric 30001
|
||||
fi
|
||||
fi
|
||||
RestartRDISC
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
.TH IFCFG 8 "September 24 2009" "iproute2" "Linux"
|
||||
.SH NAME
|
||||
ifcfg \- simplistic script which replaces ifconfig IP management
|
||||
.SH SYNOPSIS
|
||||
.ad l
|
||||
.in +8
|
||||
.ti -8
|
||||
.B ifcfg
|
||||
.RI "[ " DEVICE " ] [ " command " ] " ADDRESS " [ " PEER " ] "
|
||||
.sp
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B ifcfg
|
||||
command.
|
||||
.PP
|
||||
This is a simplistic script replacing one option of
|
||||
.B ifconfig
|
||||
, namely, IP address management. It not only adds
|
||||
addresses, but also carries out Duplicate Address Detection RFC-DHCP,
|
||||
sends unsolicited ARP to update the caches of other hosts sharing
|
||||
the interface, adds some control routes and restarts Router Discovery
|
||||
when it is necessary.
|
||||
|
||||
.SH IFCONFIG - COMMAND SYNTAX
|
||||
|
||||
.SS
|
||||
.TP
|
||||
.B DEVICE
|
||||
- it may have alias, suffix, separated by colon.
|
||||
|
||||
.TP
|
||||
.B command
|
||||
- add, delete or stop.
|
||||
|
||||
.TP
|
||||
.B ADDRESS
|
||||
- optionally followed by prefix length.
|
||||
|
||||
.TP
|
||||
.B peer
|
||||
- optional peer address for pointpoint interfaces.
|
||||
|
||||
.SH NOTES
|
||||
This script is not suitable for use with IPv6.
|
||||
|
||||
.SH SEE ALSO
|
||||
.RB "IP Command reference " ip-cref.ps
|
||||
Loading…
Reference in New Issue