Revision 1e00889c tools/kvm-ifup.in

b/tools/kvm-ifup.in
19 19
# 02110-1301, USA.
20 20

  
21 21
if [ -z "$INTERFACE" ]; then
22
	echo "No network interface specified"
23
	exit 1
22
  echo "No network interface specified"
23
  exit 1
24 24
fi
25 25

  
26 26
if [ -z "$MODE" ]; then
27
	echo "MODE not specified"
28
	exit 1
27
  echo "MODE not specified"
28
  exit 1
29 29
fi
30 30

  
31 31
# Execute the user-supplied network script, if applicable
32 32
if [ -x "@SYSCONFDIR@/ganeti/kvm-vif-bridge" ]; then
33
	exec @SYSCONFDIR@/ganeti/kvm-vif-bridge
33
  exec @SYSCONFDIR@/ganeti/kvm-vif-bridge
34 34
fi
35 35

  
36 36
if [ "$MODE" = "bridged" ]; then
37
	# Fix the autogenerated MAC to have the first octet set to "fe"
38
	# to discourage the bridge from using the TAP dev's MAC
39
	FIXED_MAC=$(ip link show $INTERFACE | awk '{if ($1 == "link/ether") printf("fe%s",substr($2,3,15))}')
40
	ip link set $INTERFACE address $FIXED_MAC
37
  # Fix the autogenerated MAC to have the first octet set to "fe"
38
  # to discourage the bridge from using the TAP dev's MAC
39
  FIXED_MAC=$(ip link show $INTERFACE | \
40
    awk '{if ($1 == "link/ether") printf("fe%s",substr($2,3,15))}')
41
  ip link set $INTERFACE address $FIXED_MAC
41 42

  
42
	ip link set $INTERFACE up
43
	ip link set $INTERFACE mtu $(</sys/class/net/${BRIDGE}/mtu)
43
  ip link set $INTERFACE up
44
  ip link set $INTERFACE mtu $(</sys/class/net/${BRIDGE}/mtu)
44 45

  
45
	# Connect the interface to the bridge
46
	brctl addif $BRIDGE $INTERFACE
46
  # Connect the interface to the bridge
47
  brctl addif $BRIDGE $INTERFACE
47 48
else
48
	ip link set $INTERFACE up
49
  ip link set $INTERFACE up
49 50

  
50
	if [ -z "$IP" ]; then
51
		echo "Routed NIC but no IP address specified"
52
		exit 1
53
	fi
51
  if [ -z "$IP" ]; then
52
    echo "Routed NIC but no IP address specified"
53
    exit 1
54
  fi
54 55

  
55
	# Route traffic targeted at the IP to the interface
56
	if [ -n "$LINK" ]; then
57
		while ip rule del dev $INTERFACE; do :; done
58
		ip rule add dev $INTERFACE table $LINK
59
		ip route replace $IP table $LINK proto static dev $INTERFACE
56
  # Route traffic targeted at the IP to the interface
57
  if [ -n "$LINK" ]; then
58
    while ip rule del dev $INTERFACE; do :; done
59
    ip rule add dev $INTERFACE table $LINK
60
    ip route replace $IP table $LINK proto static dev $INTERFACE
60 61

  
61
	else
62
		ip route replace $IP proto static dev $INTERFACE
63
	fi
62
  else
63
    ip route replace $IP proto static dev $INTERFACE
64
  fi
64 65

  
65
	if [ -d "/proc/sys/net/ipv4/conf/$INTERFACE" ]; then
66
		echo 1 > /proc/sys/net/ipv4/conf/$INTERFACE/proxy_arp
67
		echo 1 > /proc/sys/net/ipv4/conf/$INTERFACE/forwarding
68
	fi
66
  if [ -d "/proc/sys/net/ipv4/conf/$INTERFACE" ]; then
67
    echo 1 > /proc/sys/net/ipv4/conf/$INTERFACE/proxy_arp
68
    echo 1 > /proc/sys/net/ipv4/conf/$INTERFACE/forwarding
69
  fi
69 70

  
70
	if [ -d "/proc/sys/net/ipv6/conf/$INTERFACE" ]; then
71
		echo 1 > /proc/sys/net/ipv6/conf/$INTERFACE/proxy_ndp
72
		echo 1 > /proc/sys/net/ipv6/conf/$INTERFACE/forwarding
73
	fi
71
  if [ -d "/proc/sys/net/ipv6/conf/$INTERFACE" ]; then
72
    echo 1 > /proc/sys/net/ipv6/conf/$INTERFACE/proxy_ndp
73
    echo 1 > /proc/sys/net/ipv6/conf/$INTERFACE/forwarding
74
  fi
74 75
fi

Also available in: Unified diff