Modify bridge naming
[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 [ ! -a $HOSTFILE ]; 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
27   if [ -n "$1" -a -e /proc/sys/net/ipv4/conf/$1 ]; then 
28     echo Interface $1 already exist! Please check
29     export DONOTIFUP=true
30   fi
31 }
32
33
34 check_iface "$PUBLIC_BRIDGE"
35 check_iface "$PUBLIC_IFACE.$PUBLIC_VLAN_ID"
36 check_iface "$PUBLIC_IFACE.$PRIVATE_VLAN_ID"
37 check_iface "$PRIVATE_BRIDGE"
38
39 if [ -n "$PRIVATE_VLAN_ID_OFFSET" ]; then
40   for id in `seq $PRIVATE_VLAN_ID_MIN 1 $PRIVATE_VLAN_ID_MAX`; do
41     check_iface $PUBLIC_IFACE.$((PRIVATE_VLAN_ID_OFFSET+id))
42     check_iface $BRIDGE_PREFIX$id
43   done
44 fi
45
46 if [ -n "$PUBLIC_BRIDGE" -a -n "$PUBLIC_IFACE" ]; then
47   cat > $INTERFACES<<EOF
48 auto $PUBLIC_BRIDGE
49 iface $PUBLIC_BRIDGE inet manual
50   bridge_ports $PUBLIC_IFACE
51   bridge_stp off
52   bridge_fd 2
53   post-up ip link set $PUBLIC_BRIDGE address $PUBLIC_MAC 
54
55 EOF
56
57 else
58   if [ -n "$PUBLIC_VLAN" ]; then
59     cat > $INTERFACES<<EOF
60 auto $PUBLIC_VLAN
61 iface $PUBLIC_VLAN inet manual
62
63 EOF
64   fi
65
66   if [ -n "$PRIVATE_VLAN" -a -n "$PRIVATE_BRIDGE" ]; then
67     cat >> $INTERFACES<<EOF
68 auto $PRIVATE_VLAN
69 iface $PRIVATE_VLAN inet manual
70
71 auto $PRIVATE_BRIDGE
72 iface $PRIVATE_BRIDGE inet manual
73   bridge_ports $PRIVATE_VLAN
74   bridge_stp off
75   bridge_fd 2
76   post-up ip link set $PRIVATE_BRIDGE address $PUBLIC_MAC 
77
78 EOF
79   fi
80
81   if [ -n "$PRIVATE_VLAN_ID_OFFSET" ]; then
82      HELPER="$PRIVATE_VLAN_ID_MIN $PRIVATE_VLAN_ID_MAX $PRIVATE_VLAN_ID_OFFSET"
83      cat >> $INTERFACES<<EOF
84 auto prv
85 iface prv inet manual
86     up   prv-net-helper up   $PUBLIC_IFACE $HELPER $BRIDGE_PREFIX
87     down prv-net-helper down $PUBLIC_IFACE $HELPER $BRIDGE_PREFIX
88
89 EOF
90   fi
91     
92 fi
93
94
95 if $DONOTIFUP; then
96   echo Check interfaces:
97   cat $INTERFACES
98   exit 1
99 fi
100
101 echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
102 echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
103 echo 1 > /proc/sys/net/ipv4/ip_forward
104
105 ifup -i $INTERFACES -a