Add SETUP conf var
[snf-network] / snf-network-configure-interfaces
1 #!/bin/bash
2
3 DEFAULT=/etc/default/snf-network
4
5 source $DEFAULT
6 source $CONF
7 source $INFRA
8
9 HOSTNAME=$(hostname)
10
11
12 INTERFACES=$STATE_DIR/interfaces
13 HOSTINFRA=$STATE_DIR/infra
14
15 if [ ! -e "$HOSTINFRA" ]; then 
16   echo "A host infra file must exist" 
17   echo "Run snf-network-build-host-infra"
18   exit 1
19 fi
20
21 source $HOSTINFRA
22
23 DONOTIFUP=false
24
25 check_iface(){
26   if [ -n "$1" -a -e /proc/sys/net/ipv4/conf/$1 ]; then 
27     echo Interface $1 already exist! Please check
28     export DONOTIFUP=true
29   fi
30 }
31
32
33 check_iface "$PUBLIC_BRIDGE"
34 check_iface "$PUBLIC_IFACE.$PUBLIC_VLAN_ID"
35 check_iface "$PUBLIC_IFACE.$PRIVATE_VLAN_ID"
36 check_iface "$PRIVATE_BRIDGE"
37
38 if [ -n "$PRIVATE_VLAN_ID_OFFSET" ]; then
39   for id in `seq $PRIVATE_VLAN_ID_MIN 1 $PRIVATE_VLAN_ID_MAX`; do
40     check_iface $PUBLIC_IFACE.$((PRIVATE_VLAN_ID_OFFSET+id))
41     check_iface $BRIDGE_PREFIX$id
42   done
43 fi
44
45 (
46
47 if [ -n "$PUBLIC_BRIDGE" -a -n "$PUBLIC_IFACE" ]; then
48   cat<<EOF
49 auto $PUBLIC_BRIDGE
50 iface $PUBLIC_BRIDGE inet manual
51   bridge_ports $PUBLIC_IFACE
52   bridge_stp off
53   bridge_fd 2
54   post-up ip link set $PUBLIC_BRIDGE address $PUBLIC_MAC 
55
56 EOF
57
58 else
59   if [ -n "$PUBLIC_VLAN" ]; then
60     cat<<EOF
61 auto $PUBLIC_VLAN
62 iface $PUBLIC_VLAN inet manual
63
64 EOF
65   fi
66
67   if [ -n "$PRIVATE_VLAN" -a -n "$PRIVATE_BRIDGE" ]; then
68     cat<<EOF
69 auto $PRIVATE_VLAN
70 iface $PRIVATE_VLAN inet manual
71
72 auto $PRIVATE_BRIDGE
73 iface $PRIVATE_BRIDGE inet manual
74   bridge_ports $PRIVATE_VLAN
75   bridge_stp off
76   bridge_fd 2
77   post-up ip link set $PRIVATE_BRIDGE address $PUBLIC_MAC 
78
79 EOF
80   fi  
81
82   if [ -n "$PRIVATE_VLAN_ID_OFFSET" ]; then
83      HELPER="$PRIVATE_VLAN_ID_MIN $PRIVATE_VLAN_ID_MAX $PRIVATE_VLAN_ID_OFFSET"
84      cat<<EOF
85 auto prv
86 iface prv inet manual
87     up   prv-net-helper up   $PUBLIC_IFACE $HELPER $BRIDGE_PREFIX
88     down prv-net-helper down $PUBLIC_IFACE $HELPER $BRIDGE_PREFIX
89
90 EOF
91   fi
92     
93 fi
94
95 ) > $INTERFACES
96
97 echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
98 echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
99 echo 1 > /proc/sys/net/ipv4/ip_forward
100
101 if $DONOTIFUP; then
102   echo Check interfaces:
103   cat $INTERFACES
104   exit 1
105 fi
106
107 ifup -i $INTERFACES -a