Support for running install procedure on bare metal CloudLab nodes
diff --git a/scripts/network-setup.sh b/scripts/network-setup.sh
index 6bacaa5..a7f4a06 100755
--- a/scripts/network-setup.sh
+++ b/scripts/network-setup.sh
@@ -2,25 +2,39 @@
 
 source ~/admin-openrc.sh
 
-# Create nat-net network
-neutron net-show nat-net 2>&1 > /dev/null
-if [ "$?" -ne 0 ]
-then
-    neutron net-create --provider:physical_network=nat --provider:network_type=flat --shared nat-net
-fi
+function create-flat-net {
+    NAME=$1
+    neutron net-show $NAME-net 2>&1 > /dev/null
+    if [ "$?" -ne 0 ]
+    then
+	neutron net-create --provider:physical_network=$NAME --provider:network_type=flat --shared $NAME-net
+    fi
+}
 
-# Create nat-net subnet
-neutron subnet-show nat-net 2>&1 > /dev/null
-if [ "$?" -ne 0 ]
-then
-    neutron subnet-create nat-net --name nat-net 172.16.0.0/16 --gateway=172.16.0.1 --enable-dhcp=false
-fi
+function create-subnet {
+    NAME=$1
+    CIDR=$2
+    GW=$3
 
-# Create nat-net network
-neutron net-show ext-net 2>&1 > /dev/null
-if [ "$?" -ne 0 ]
-then
-    neutron net-create --provider:physical_network=ext --provider:network_type=flat --shared ext-net
-fi
+    neutron subnet-show $NAME-net 2>&1 > /dev/null
+    if [ "$?" -ne 0 ]
+    then
+	neutron subnet-create $NAME-net --name $NAME-net $CIDR --gateway=$GW --enable-dhcp=false
+    fi
+}
 
+function create-subnet-no-gateway {
+    NAME=$1
+    CIDR=$2
 
+    neutron subnet-show $NAME-net 2>&1 > /dev/null
+    if [ "$?" -ne 0 ]
+    then
+	neutron subnet-create $NAME-net --name $NAME-net $CIDR --no-gateway --enable-dhcp=false
+    fi
+}
+
+create-flat-net nat
+create-subnet nat 172.16.0.0/16 172.16.0.1
+
+create-flat-net ext