Fixing the access network null simulation and adjusting layout.

Change-Id: Ib6f0c100789b1f802269018d36aed8d06ce4e5d4
diff --git a/tools/test/topos/co-fo-access-null b/tools/test/topos/co-fo-access-null
index 3c07f5b..d023624 100755
--- a/tools/test/topos/co-fo-access-null
+++ b/tools/test/topos/co-fo-access-null
@@ -69,22 +69,19 @@
     echo "$@" >> $CMDS
 }
 
-function y {
-    let p="${3:-400} * ($1 - 1) - (${3:-400} * ($2 - 1)) / 2 + ${4:-0}"
-    echo $p
-}
-
 # Create central office spines
 for spine in $(seq 1 $spines); do
-    sim "null-create-device switch Spine-${spine} ${spinePorts} 0 $(y $spine $spines) grid"
+    sim "null-create-device switch Spine-${spine} ${spinePorts}"
 done
 
+gwIps=""
+
 # Create 2 leaf pairs with dual links to the spines and a link between the pair
 for pair in $serviceLeafGroups; do
     [ $pair = A ] && l1=1 || l1=3
     [ $pair = A ] && l2=2 || l2=4
-    sim "null-create-device switch Leaf-${pair}1 ${leafPorts} -200 $(y $l1 4) grid"
-    sim "null-create-device switch Leaf-${pair}2 ${leafPorts} -200 $(y $l2 4) grid"
+    sim "null-create-device switch Leaf-${pair}1 ${leafPorts}"
+    sim "null-create-device switch Leaf-${pair}2 ${leafPorts}"
     sim "null-create-link direct Leaf-${pair}1 Leaf-${pair}2"
 
     for spine in $(seq 1 $spines); do
@@ -98,13 +95,14 @@
     [ $pair = A ] && pn=1 || pn=2
     [ $pair = A ] && gwy=-800 || gwy=800
     for gw in $(seq 1 $gateways); do
-        sim "null-create-host Leaf-${pair}1,Leaf-${pair}2 10.${pn}.0.${gw} $(y $gw $gateways 200 -200) ${gwy} grid"
+        sim "null-create-host Leaf-${pair}1,Leaf-${pair}2 10.${pn}.0.${gw}"
+        gwIps="${gwIps}|10.${pn}.0.${gw}"
     done
 
     # Create hosts for each leaf group; multi-homed to each leaf in the pair
     [ $pair = A ] && offset=-400 || offset=400
     for host in $(seq 1 $serviceHosts); do
-        sim "null-create-host Leaf-${pair}1,Leaf-${pair}2 10.${pn}.1.${host} -400 $(y $host $serviceHosts 60 $offset) grid"
+        sim "null-create-host Leaf-${pair}1,Leaf-${pair}2 10.${pn}.1.${host}"
     done
 done
 
@@ -116,20 +114,20 @@
 for field in $(seq $fieldOffices); do
     # Create HAG spines for each office and connect it to central office spines
     for spine in $(seq $spines); do
-        sim "null-create-device switch Spine-${field}-${spine} ${hagPorts} 200 $(y $iagg $totalHags) grid"
+        sim "null-create-device switch Spine-${field}-${spine} ${hagPorts}"
         sim "null-create-link direct Spine-${spine} Spine-${field}-${spine}"
         let iagg=iagg+1
     done
 
     # Create single access leafs with links to the spines
     for access in $(seq $accessLeaves); do
-        sim "null-create-device switch Access-${field}-${access} ${accessPorts} 400 $(y $iacc $totalAccess) grid"
+        sim "null-create-device switch Access-${field}-${access} ${accessPorts}"
         for spine in $(seq 1 $spines); do
             sim "null-create-link direct Spine-${field}-${spine} Access-${field}-${access}"
         done
 
         # Create hosts for each access single leaf
-        sim "null-create-hosts Access-${field}-${access} 10.${field}${access}.1.*" $accessHosts 700 $(y $iacc $totalAccess) 6
+        sim "null-create-hosts Access-${field}-${access} 10.${field}${access}.1.* $accessHosts"
 
         let iacc=iacc+1
     done
@@ -154,3 +152,12 @@
 # Add devices, links, and hosts
 cat $CMDS | onos ${node}
 
+# After the network is created, add network config to assign roles to gateway IPs.
+cfg=""
+for gw in $(onos ${node} hosts | egrep "${gwIps/|/}" | cut -d, -f1 | cut -d= -f2); do
+    cfg="${cfg}, \"$gw\": { \"basic\": { \"uiType\" : \"router\", \"roles\": [ \"gateway\" ]}}"
+done
+echo "{ \"hosts\": { ${cfg/,/} }}" > $CMDS
+
+onos-netcfg ${node} $CMDS
+