]> git.pld-linux.org Git - projects/rc-scripts.git/blame - lib/ifup-aliases
- devtmpfs is madatory for udev >= 176
[projects/rc-scripts.git] / lib / ifup-aliases
CommitLineData
12de71be 1#!/bin/sh
b0443108 2#
ec8b15cb 3# $Id$
b0443108 4#
625871bd
ER
5# Adds all addresses of device.
6# Called from ifup-post.
7742e157 7
de1fc6ce
JR
8# Add all addresses
9for IP_ADDR in $IPADDR_ALIASES; do
5e6dfc29
JR
10 [ -z "$IP_ADDR" ] && continue
11 # Be sure that primary address is added
12 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
a51d5138 13 if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
5e6dfc29
JR
14 continue
15 fi
de1fc6ce 16 fi
5e6dfc29 17 if is_yes "${IPV4_NETWORKING}"; then
2f6bb78f 18 ip -4 addr add ${IP_ADDR} dev ${DEVICE} brd +
de1fc6ce 19 fi
f3002e12
JK
20done
21
de1fc6ce 22for IP_ADDR in $IPV6_ADDR; do
5e6dfc29
JR
23 [ -z "$IP_ADDR" ] && continue
24 # Be sure that primary address is added
25 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
a51d5138 26 if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
5e6dfc29
JR
27 continue
28 fi
de1fc6ce 29 fi
5e6dfc29
JR
30 # Check for IPv6 address
31 if (echo $IP_ADDR | grep -q ":"); then
32 if is_yes "${IPV6_NETWORKING}"; then
2f6bb78f 33 ip -6 addr add ${IP_ADDR} dev ${DEVICE}
5e6dfc29
JR
34 fi
35 elif is_yes "${IPV4_NETWORKING}"; then
2f6bb78f 36 ip -4 addr add ${IP_ADDR} dev ${DEVICE} brd +
74a7f2e4 37 fi
f3002e12
JK
38done
39
13118158 40for nr in $(awk 'BEGIN { max=0; }; /^IPADDR[0-9]+=/ { s = $0; gsub(/^IPADDR/, "", s); gsub(/=.*/, "", s); if (int(s) > int(max)) { max=s; }; }; END { for(j=1; j<=int(max); j++) print j } ' $CONFIG); do
5e6dfc29 41 eval IP_ADDR="\$IPADDR${nr}"
13118158
AM
42 [ -z "$IP_ADDR" ] && continue
43
5e6dfc29
JR
44 eval IP_ADDR_OPT="\$IP_AOPTS${nr}"
45 eval IP_ROUTE_OPT="\$IP_ROPTS${nr}"
b72b148f 46 eval IP_ADDR_LABEL="\$IP_LABEL${nr}"
5e6dfc29 47
5e6dfc29
JR
48 # Be sure that primary address is added
49 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
a51d5138 50 if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
5e6dfc29
JR
51 continue
52 fi
de1fc6ce 53 fi
5e6dfc29 54 # Check for IPv6 address
2450b5fc 55 if echo $IP_ADDR | grep -q ":"; then
5e6dfc29
JR
56 if is_yes "${IPV6_NETWORKING}"; then
57 ip -6 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
4cd28431
JR
58 if [ -n "${IP_ADDR_LABEL}" ]; then
59 ip -6 addrlabel add prefix ${IP_ADDR} dev ${DEVICE} label ${IP_ADDR_LABEL}
60 fi
5e6dfc29
JR
61 fi
62 elif is_yes "${IPV4_NETWORKING}"; then
63 # If broadcast is missing then autocalculate it
a51d5138 64 if ! (echo $IP_ADDR_OPT | grep -qE "brd|broadcast"); then
5e6dfc29
JR
65 IP_ADDR_OPT="brd + ${IP_ADDR_OPT}"
66 fi
67 ip -4 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
de1fc6ce
JR
68 fi
69done
70
71# Setup IPv4-compatible addresses
16eb00d9 72if is_yes "$IPV6_NETWORKING" && [ "$BOOTPROTO6" = "v4compat" ]; then
5e6dfc29
JR
73 # enable automatic tunnels
74 ip link set sit0 up
de1fc6ce 75
5e6dfc29
JR
76 # add v4compat addresses to device
77 for addr in $(ip -4 addr show scope global dev $DEVICE | \
78 awk '/inet/ { print $2 }' | awk -F"/" '{ print $1 }'); do
79 ip -6 addr add ::$addr dev $DEVICE
80 done
5726f160 81fi
This page took 0.91993 seconds and 4 git commands to generate.