Adding support for topology recipes and cleaning up topologies.

Cleaned-up a few STC scenarios.

Change-Id: I4ffa61953d8cf289406fa572ab7603d996e26a85
diff --git a/tools/test/scenarios/net-activate-fwd.xml b/tools/test/scenarios/net-activate-fwd.xml
index 6b3f9cb..88122f7 100644
--- a/tools/test/scenarios/net-activate-fwd.xml
+++ b/tools/test/scenarios/net-activate-fwd.xml
@@ -15,62 +15,14 @@
   -->
 <scenario name="net-activate-fwd" description="Activate forwarding apps">
     <group name="Net-Activate-Fwd">
-        <!-- TODO: parametrize this via recipes -->
-
-        <step name="Install-Fwd-Apps"
+        <step name="Activate-Fwd-Apps"
               exec="onos ${OC1} app activate org.onosproject.openflow org.onosproject.proxyarp org.onosproject.fwd"/>
-        <step name="Check-Fwd-Apps" requires="Install-Fwd-Apps"
+        <step name="Check-Fwd-Apps-Activated" requires="Activate-Fwd-Apps"
               exec="onos-check-apps ${OC1} drivers,openflow,proxyarp,fwd includes"/>
 
-        <step name="Check-Fwd-Flows1" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000001 present"/>
-        <step name="Check-Fwd-Flows2" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000002 present"/>
-        <step name="Check-Fwd-Flows3" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000003 present"/>
-        <step name="Check-Fwd-Flows4" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000004 present"/>
-        <step name="Check-Fwd-Flows5" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000005 present"/>
-        <step name="Check-Fwd-Flows6" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000006 present"/>
-        <step name="Check-Fwd-Flows7" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000007 present"/>
-        <step name="Check-Fwd-Flows8" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000008 present"/>
-        <step name="Check-Fwd-Flows9" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000009 present"/>
-        <step name="Check-Fwd-Flowsa" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000a present"/>
-        <step name="Check-Fwd-Flowsb" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000b present"/>
-        <step name="Check-Fwd-Flowsc" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000c present"/>
-        <step name="Check-Fwd-Flowsd" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000d present"/>
-        <step name="Check-Fwd-Flowse" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000e present"/>
-        <step name="Check-Fwd-Flowsf" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000f present"/>
-        <step name="Check-Fwd-Flows10" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000010 present"/>
-        <step name="Check-Fwd-Flows11" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000011 present"/>
-        <step name="Check-Fwd-Flows12" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000012 present"/>
-        <step name="Check-Fwd-Flows13" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000013 present"/>
-        <step name="Check-Fwd-Flows14" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000014 present"/>
-        <step name="Check-Fwd-Flows15" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000015 present"/>
-        <step name="Check-Fwd-Flows16" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000016 present"/>
-        <step name="Check-Fwd-Flows17" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000017 present"/>
-        <step name="Check-Fwd-Flows18" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000018 present"/>
-        <step name="Check-Fwd-Flows19" requires="Check-Fwd-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000019 present"/>
+        <parallel var="${OTD#}">
+            <step name="Check-Fwd-Flows-${#}" requires="Check-Fwd-Apps-Activated"
+                  exec="onos-check-ipv4-flows ${OC1} ${OTD#} present"/>
+        </parallel>
     </group>
 </scenario>
diff --git a/tools/test/scenarios/net-deactivate-fwd.xml b/tools/test/scenarios/net-deactivate-fwd.xml
index 4c1b0fa..168a270 100644
--- a/tools/test/scenarios/net-deactivate-fwd.xml
+++ b/tools/test/scenarios/net-deactivate-fwd.xml
@@ -15,61 +15,14 @@
   -->
 <scenario name="net-deactivate-fwd" description="Deactivate forwarding apps">
     <group name="Net-Deactivate-Fwd">
-        <!-- TODO: parametrize this via recipes -->
-        <step name="Net-Deactivate-Fwd.Uninstall-Reactive-Forwarding"
+        <step name="Deactivate-Fwd-Apps"
               exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="Net-Deactivate-Fwd.Check-Apps" requires="Net-Deactivate-Fwd.Uninstall-Reactive-Forwarding"
+        <step name="Check-Fwd-Apps-Deactivated" requires="Deactivate-Fwd-Apps"
               exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
 
-        <step name="Check-DFwd-Flows1" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000001 not-present"/>
-        <step name="Check-DFwd-Flows2" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000002 not-present"/>
-        <step name="Check-DFwd-Flows3" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000003 not-present"/>
-        <step name="Check-DFwd-Flows4" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000004 not-present"/>
-        <step name="Check-DFwd-Flows5" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000005 not-present"/>
-        <step name="Check-DFwd-Flows6" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000006 not-present"/>
-        <step name="Check-DFwd-Flows7" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000007 not-present"/>
-        <step name="Check-DFwd-Flows8" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000008 not-present"/>
-        <step name="Check-DFwd-Flows9" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000009 not-present"/>
-        <step name="Check-DFwd-Flowsa" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000a not-present"/>
-        <step name="Check-DFwd-Flowsb" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000b not-present"/>
-        <step name="Check-DFwd-Flowsc" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000c not-present"/>
-        <step name="Check-DFwd-Flowsd" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000d not-present"/>
-        <step name="Check-DFwd-Flowse" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000e not-present"/>
-        <step name="Check-DFwd-Flowsf" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:000000000000000f not-present"/>
-        <step name="Check-DFwd-Flows10" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000010 not-present"/>
-        <step name="Check-DFwd-Flows11" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000011 not-present"/>
-        <step name="Check-DFwd-Flows12" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000012 not-present"/>
-        <step name="Check-DFwd-Flows13" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000013 not-present"/>
-        <step name="Check-DFwd-Flows14" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000014 not-present"/>
-        <step name="Check-DFwd-Flows15" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000015 not-present"/>
-        <step name="Check-DFwd-Flows16" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000016 not-present"/>
-        <step name="Check-DFwd-Flows17" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000017 not-present"/>
-        <step name="Check-DFwd-Flows18" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000018 not-present"/>
-        <step name="Check-DFwd-Flows19" requires="Net-Deactivate-Fwd.Check-Apps"
-              exec="onos-check-ipv4-flows ${OC1} of:0000000000000019 not-present"/>
+        <parallel var="${OTD#}">
+            <step name="Check-DFwd-Flows-${#}" requires="Check-Fwd-Apps-Deactivated"
+                  exec="onos-check-ipv4-flows ${OC1} ${OTD#} not-present"/>
+        </parallel>
     </group>
 </scenario>
diff --git a/tools/test/scenarios/net-link-down-up.xml b/tools/test/scenarios/net-link-down-up.xml
index 506fbd9..07398ec 100644
--- a/tools/test/scenarios/net-link-down-up.xml
+++ b/tools/test/scenarios/net-link-down-up.xml
@@ -14,31 +14,31 @@
   ~ limitations under the License.
   -->
 <scenario name="net-link-down-up" description="Network link up-down test">
-    <!-- TODO: parametrize this via recipes -->
+    <!-- Note: This scenario is tailored using 'topo' recipe mechanism; see topos/*.recipe files -->
     <group name="Net-Link-Down-Up">
         <step name="Ping-1"
-              exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"/>
         <step name="Link-1-Down" requires="~Ping-1"
-              exec="onos-mininet sendAndExpect link s4 s7 down --expect ."/>
+              exec="onos-mininet sendAndExpect link ${OPL1} down --expect ."/>
         <step name="Ping-2-Prep" requires="~Link-1-Down"
-              exec="onos-mininet sendAndExpect h1 ping -c5 h4 --expect ."/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c5 ${OPD} --expect ."/>
         <step name="Ping-2" requires="~Ping-2-Prep"
-              exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"/>
         <step name="Link-2-Down" requires="~Ping-2"
-              exec="onos-mininet sendAndExpect link s4 s5 down --expect ."/>
+              exec="onos-mininet sendAndExpect link ${OPL2} down --expect ."/>
         <step name="Ping-3" requires="~Link-2-Down"
-              exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect 100% packet loss"/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 -w1 ${OPD} --expect 100% packet loss"/>
         <step name="Link-1-Up" requires="~Ping-3"
-              exec="onos-mininet sendAndExpect link s4 s7 up --expect ."/>
+              exec="onos-mininet sendAndExpect link ${OPL1} up --expect ."/>
         <step name="Ping-4-Prep" requires="~Link-1-Up"
-              exec="onos-mininet sendAndExpect h1 ping -c5 h4 --expect ."/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c5 ${OPD} --expect ."/>
         <step name="Ping-4" requires="~Ping-4-Prep"
-              exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"/>
         <step name="Link-2-Up" requires="~Ping-4"
-              exec="onos-mininet sendAndExpect link s4 s5 up --expect ."/>
+              exec="onos-mininet sendAndExpect link ${OPL2} up --expect ."/>
         <step name="Ping-5-Prep" requires="~Link-2-Up"
-              exec="onos-mininet sendAndExpect h1 ping -c5 h4 --expect ."/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c5 ${OPD} --expect ."/>
         <step name="Ping-5" requires="~Ping-5-Prep"
-              exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"/>
     </group>
 </scenario>
diff --git a/tools/test/scenarios/net-pingall.xml b/tools/test/scenarios/net-pingall.xml
index 2eab5a7..863224a 100644
--- a/tools/test/scenarios/net-pingall.xml
+++ b/tools/test/scenarios/net-pingall.xml
@@ -14,14 +14,13 @@
   ~ limitations under the License.
   -->
 <scenario name="net-pingall" description="Network pingall test">
-    <!-- TODO: parametrize this via recipes -->
+    <!-- Note: This scenario is tailored using 'topo' recipe mechanism; see topos/*.recipe files -->
     <group name="Net-Pingall">
 
         <step name="Ping-All" requires="Check-Apps"
-              exec="onos-mininet sendAndExpect pingall --expect 600/600 received"/>
+              exec="onos-mininet sendAndExpect pingall --expect ${OPALL}/${OPALL} received"/>
 
         <step name="Check-Summary-For-Hosts" requires="~Ping-All"
-              exec="onos-check-summary ${OC1} [0-9]* 25 140 25"/>
-
+              exec="onos-check-summary ${OC1} [0-9]* ${OTD} ${OTL} ${OTH}"/>
     </group>
 </scenario>
diff --git a/tools/test/scenarios/net-reactive-fwd.xml b/tools/test/scenarios/net-reactive-fwd.xml
index 12831a4..5a7f926 100644
--- a/tools/test/scenarios/net-reactive-fwd.xml
+++ b/tools/test/scenarios/net-reactive-fwd.xml
@@ -14,18 +14,16 @@
   ~ limitations under the License.
   -->
 <scenario name="net-reactive-fwd" description="Network reactive forwarding test">
-    <!-- TODO: parametrize this via recipes -->
     <group name="Net-Reactive-Fwd">
         <import file="${ONOS_SCENARIOS}/net-activate-fwd.xml" namespace="Net-Reactive-Fwd"/>
-        <dependency name="Net-Reactive-Fwd.Net-Activate-Fwd" requires="Net-Setup"/>
 
         <import file="${ONOS_SCENARIOS}/net-pingall.xml" namespace="Net-Reactive-Fwd"/>
         <dependency name="Net-Reactive-Fwd.Net-Pingall" requires="Net-Reactive-Fwd.Net-Activate-Fwd"/>
 
         <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Net-Reactive-Fwd"/>
-        <dependency name="Net-Reactive-Fwd.Net-Link-Down-Up" requires="Net-Setup,~Net-Reactive-Fwd.Net-Pingall"/>
+        <dependency name="Net-Reactive-Fwd.Net-Link-Down-Up" requires="~Net-Reactive-Fwd.Net-Pingall"/>
 
         <import file="${ONOS_SCENARIOS}/net-deactivate-fwd.xml" namespace="Net-Reactive-Fwd"/>
-        <dependency name="Net-Reactive-Fwd.Net-Deactivate-Fwd" requires="Net-Reactive-Fwd.Net-Link-Down-Up"/>
+        <dependency name="Net-Reactive-Fwd.Net-Deactivate-Fwd" requires="~Net-Reactive-Fwd.Net-Link-Down-Up"/>
     </group>
 </scenario>
diff --git a/tools/test/scenarios/net-setup-geant.xml b/tools/test/scenarios/net-setup-geant.xml
deleted file mode 100644
index c668347..0000000
--- a/tools/test/scenarios/net-setup-geant.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--
-  ~ Copyright 2016-present Open Networking Laboratory
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-<scenario name="net-setup-geant" description="Network setup steps">
-    <!-- TODO: parametrize this via recipes -->
-    <group name="Net-Setup">
-        <step name="Push-Topos" exec="onos-push-topos ${OCN}"/>
-
-        <step name="Stop-Mininet-If-Needed" env="~" exec="onos-mininet stop"/>
-        <step name="Wipe-Out-Data-Before" exec="onos-wipe-out" requires="^"/>
-
-        <step name="Initial-Summary-Check" requires="~Wipe-Out-Data-Before"
-              exec="onos-check-summary ${OC1} [0-9]* 0 0 0"/>
-
-        <step name="Config-Topo" requires="~Initial-Summary-Check"
-              exec="onos-netcfg ${OC1} ${ONOS_ROOT}/tools/test/topos/geantmpls-cfg.json"/>
-
-        <step name="Start-Mininet"
-              requires="Install-Apps,Config-Topo,Push-Topos,Stop-Mininet-If-Needed"
-              exec="onos-mininet start topos/topo geantmpls.py ${ONOS_INSTANCES}"/>
-
-        <step name="Wait-For-Mininet" requires="Start-Mininet"
-              exec="onos-mininet wait 10"/>
-
-        <step name="ARP-Hosts" requires="~Wait-For-Mininet"
-              exec="onos-mininet sendAndExpect gratuitousArp --expect ."/>
-
-        <step name="Check-Summary" requires="ARP-Hosts"
-              exec="onos-check-summary ${OC1} [0-9]* 31 108 31"/>
-
-        <step name="Balance-Masters" requires="~Check-Summary" if="${OC2}"
-              exec="onos ${OC1} balance-masters"/>
-
-        <step name="Check-Flows" requires="~Balance-Masters,~Check-Summary" delay="5"
-              exec="onos-check-flows ${OC1}"/>
-    </group>
-</scenario>
diff --git a/tools/test/scenarios/net-setup-uk.xml b/tools/test/scenarios/net-setup-uk.xml
deleted file mode 100644
index 0a192a9..0000000
--- a/tools/test/scenarios/net-setup-uk.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-  ~  Copyright 2016-present Open Networking Laboratory
-  ~
-  ~  Licensed under the Apache License, Version 2.0 (the "License");
-  ~  you may not use this file except in compliance with the License.
-  ~  You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~  Unless required by applicable law or agreed to in writing, software
-  ~  distributed under the License is distributed on an "AS IS" BASIS,
-  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~  See the License for the specific language governing permissions and
-  ~  limitations under the License.
-  -->
-<scenario name="net-setup-uk" description="Network setup steps">
-    <!-- TODO: parametrize this via recipes -->
-    <!-- Customized for the UK topology -->
-    <group name="Net-Setup-UK">
-
-        <step name="Push-Topos" exec="onos-push-topos ${OCN}"/>
-
-        <step name="Stop-Mininet-If-Needed" env="~" exec="onos-mininet stop"/>
-        <step name="Wipe-Out-Data-Before" exec="onos-wipe-out" requires="^"/>
-
-        <step name="Initial-Summary-Check" requires="~Wipe-Out-Data-Before"
-              exec="onos-check-summary ${OC1} [0-9]* 0 0 0"/>
-
-        <step name="Config-Topo" requires="~Initial-Summary-Check"
-              exec="onos-netcfg ${OC1} ${ONOS_ROOT}/tools/test/topos/uk-cfg.json"/>
-
-        <step name="Start-Mininet"
-              requires="Install-Apps,Config-Topo,Push-Topos,Stop-Mininet-If-Needed"
-              exec="onos-mininet start topos/topo uk-onos.py ${ONOS_INSTANCES}"/>
-
-        <step name="Wait-For-Mininet" requires="Start-Mininet"
-              exec="onos-mininet wait 10"/>
-
-        <step name="Check-Summary" requires="~Wait-For-Mininet"
-              exec="onos-check-summary ${OC1} [0-9]* 12 46 12"/>
-
-        <step name="Balance-Masters" requires="~Check-Summary" if="${OC2}"
-              exec="onos ${OC1} balance-masters"/>
-
-        <step name="Check-Flows" requires="~Balance-Masters,~Check-Summary" delay="5"
-              exec="onos-check-flows ${OC1}"/>
-    </group>
-</scenario>
diff --git a/tools/test/scenarios/net-setup.xml b/tools/test/scenarios/net-setup.xml
index 5e8244a..1856f57 100644
--- a/tools/test/scenarios/net-setup.xml
+++ b/tools/test/scenarios/net-setup.xml
@@ -14,7 +14,7 @@
   ~ limitations under the License.
   -->
 <scenario name="net-setup" description="Network setup steps">
-    <!-- TODO: parametrize this via recipes -->
+    <!-- Note: This scenario is tailored using 'topo' recipe mechanism; see topos/*.recipe files -->
     <group name="Net-Setup">
         <step name="Push-Topos" exec="onos-push-topos ${OCN}"/>
 
@@ -25,11 +25,11 @@
               exec="onos-check-summary ${OC1} [0-9]* 0 0 0"/>
 
         <step name="Config-Topo" requires="~Initial-Summary-Check"
-              exec="onos-netcfg ${OC1} ${ONOS_ROOT}/tools/test/topos/attmpls-cfg.json"/>
+              exec="onos-netcfg ${OC1} ${ONOS_ROOT}/tools/test/topos/${ONOS_TOPO}.json"/>
 
         <step name="Start-Mininet"
               requires="Install-Apps,Config-Topo,Push-Topos,Stop-Mininet-If-Needed"
-              exec="onos-mininet start topos/topo attmplsfast.py ${ONOS_INSTANCES}"/>
+              exec="onos-mininet start topos/topo ${ONOS_TOPO}.py ${ONOS_INSTANCES}"/>
 
         <step name="Wait-For-Mininet" requires="Start-Mininet"
               exec="onos-mininet wait 10"/>
@@ -38,7 +38,7 @@
               exec="onos-mininet sendAndExpect gratuitousArp --expect ."/>
 
         <step name="Check-Summary" requires="ARP-Hosts"
-              exec="onos-check-summary ${OC1} [0-9]* 25 140 25"/>
+              exec="onos-check-summary ${OC1} [0-9]* ${OTD} ${OTL} ${OTH}"/>
 
         <step name="Balance-Masters" requires="~Check-Summary" if="${OC2}"
               exec="onos ${OC1} balance-masters"/>