blob: 1c4de099d86130e1213fb4ca298adc158bc70abf [file] [log] [blame]
Matteo Scandolo6288d5a2017-08-08 13:05:26 -07001
2{#
3Copyright 2017-present Open Networking Foundation
4
5Licensed under the Apache License, Version 2.0 (the "License");
6you may not use this file except in compliance with the License.
7You may obtain a copy of the License at
8
9http://www.apache.org/licenses/LICENSE-2.0
10
11Unless required by applicable law or agreed to in writing, software
12distributed under the License is distributed on an "AS IS" BASIS,
13WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14See the License for the specific language governing permissions and
15limitations under the License.
16#}
17
18
Andrea Campanellaedfdbca2017-02-01 17:33:47 -080019#!/bin/bash
20
21function mac_to_iface {
22 MAC=$1
23 ifconfig|grep $MAC| awk '{print $1}'|grep -v '\.'
24}
25
26iptables -L > /dev/null
27ip6tables -L > /dev/null
28
29STAG={{ s_tags[0] }}
30CTAG={{ c_tags[0] }}
31VEG=veg-$STAG-$CTAG
32
33docker inspect $VEG > /dev/null 2>&1
34if [ "$?" == 1 ]
35then
36 docker pull andybavier/docker-veg
37 docker run -d --name=$VEG --privileged=true --net=none -v /etc/$VEG/dnsmasq.d:/etc/dnsmasq.d andybavier/docker-veg
38else
39 docker start $VEG
40fi
41
42# Set up networking via pipework
43WAN_IFACE=$( mac_to_iface {{ wan_mac }} )
44docker exec $VEG ifconfig eth0 >> /dev/null || pipework $WAN_IFACE -i eth0 $VEG {{ wan_ip }}/24@{{ wan_next_hop }} {{ wan_container_mac }}
45
46# LAN_IFACE=$( mac_to_iface {{ lan_mac }} )
47# Need to encapsulate VLAN traffic so that Neutron doesn't eat it
48# Assumes that br-lan has been set up appropriately by a previous step
49LAN_IFACE=br-lan
50ifconfig $LAN_IFACE >> /dev/null
51if [ "$?" == 0 ]
52then
53 ifconfig $LAN_IFACE.$STAG >> /dev/null || ip link add link $LAN_IFACE name $LAN_IFACE.$STAG type vlan id $STAG
54 ifconfig $LAN_IFACE.$STAG up
55 docker exec $VEG ifconfig eth1 >> /dev/null || pipework $LAN_IFACE.$STAG -i eth1 $VEG 192.168.0.1/24 @$CTAG
56fi
57
58#HPC_IFACE=$( mac_to_iface {{ hpc_client_mac }} )
59#docker exec $VEG ifconfig eth2 >> /dev/null || pipework $HPC_IFACE -i eth2 $VEG {{ hpc_client_ip }}/24
60
61# Make sure VM's eth0 (hpc_client) has no IP address
62#ifconfig $HPC_IFACE 0.0.0.0
63
64# Now can start up dnsmasq
65docker exec $VEG service dnsmasq start
66
67# Attach to container
68docker start -a $VEG