Refactor activate/deactivate of forwarding app

Change-Id: Iae71b3334fba08dceac7adb47a457ae0af0dcabc
diff --git a/tools/test/bin/onos-check-ipv4-flows b/tools/test/bin/onos-check-ipv4-flows
new file mode 100755
index 0000000..44d321f
--- /dev/null
+++ b/tools/test/bin/onos-check-ipv4-flows
@@ -0,0 +1,29 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Checks ONOS flows
+# -----------------------------------------------------------------------------
+
+aux=/tmp/stc-$$.log
+trap "rm -f $aux 2>/dev/null" EXIT
+
+want_present=0
+
+if [ "$3" == "present" ]; then
+    want_present=1
+fi
+
+for i in {1..5}; do
+    onos ${1:-$OCI} "onos:flows added $2" > $aux
+    grep "ETH_TYPE:ipv4" $aux
+    found=$?
+
+    if [ $want_present == 1 -a $found -eq 0 ] ||
+         [ $want_present == 0 -a $found -ne 0 ]; then
+        cat $aux
+        exit 0
+    else
+        sleep 1
+    fi
+done
+cat $aux
+exit 1
diff --git a/tools/test/scenarios/net-activate-fwd.xml b/tools/test/scenarios/net-activate-fwd.xml
new file mode 100644
index 0000000..6b3f9cb
--- /dev/null
+++ b/tools/test/scenarios/net-activate-fwd.xml
@@ -0,0 +1,76 @@
+<!--
+  ~ Copyright 2015-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-activate-fwd" description="Activate forwarding apps">
+    <group name="Net-Activate-Fwd">
+        <!-- TODO: parametrize this via recipes -->
+
+        <step name="Install-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"
+              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"/>
+    </group>
+</scenario>
diff --git a/tools/test/scenarios/net-create-flows.xml b/tools/test/scenarios/net-create-flows.xml
index f16501e..b0e2782 100644
--- a/tools/test/scenarios/net-create-flows.xml
+++ b/tools/test/scenarios/net-create-flows.xml
@@ -18,22 +18,13 @@
     <!-- TODO: parametrize this via recipes -->
     <group name="Net-Create-Flows">
 
-        <!-- Make sure that reactive forwarding is off -->
-        <step name="Net-Create-Flows.Uninstall-Reactive-Forwarding"
-              exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="Net-Create-Flows.Check-Apps" requires="^"
-              exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
-
         <!-- Force discovery of hosts -->
-        <step name="Net-Create-Flows.Find-Host-1" requires="^"
+        <step name="Net-Create-Flows.Find-Host-1"
               exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect 100% packet loss"/>
         <step name="Net-Create-Flows.Find-Host-2" requires="^"
               exec="onos-mininet sendAndExpect h4 ping -c1 -w1 h1 --expect 100% packet loss"/>
 
-
         <!-- Use REST API to create a point to point intent in each direction -->
-        <step name="Net-Create-Flows.1-to-Host" requires="Net-Create-Flows.Find-Host-2"
-              exec="create-flow.py ${OC1} f1 of:0000000000000001 5 1"/>
         <step name="Net-Create-Flows.1-to-19" requires="^"
               exec="create-flow.py ${OC1} f2 of:0000000000000001 1 2"/>
         <step name="Net-Create-Flows.19-to-7" requires="^"
@@ -43,8 +34,6 @@
         <step name="Net-Create-Flows.4-to-Host" requires="^"
               exec="create-flow.py ${OC1} f5 of:0000000000000004 1 3"/>
 
-        <step name="Net-Create-Flows.Host-to-1" requires="^"
-              exec="create-flow.py ${OC1} f6 of:0000000000000001 1 5"/>
         <step name="Net-Create-Flows.19-to-1" requires="^"
               exec="create-flow.py ${OC1} f7 of:0000000000000001 2 1"/>
         <step name="Net-Create-Flows.7-to-19" requires="^"
@@ -65,8 +54,6 @@
               exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect \ 0% packet loss"/>
 
         <!-- Use REST API to remove the flows. -->
-        <step name="Net-Create-Flows.Delete-f1" requires="^"
-              exec="curl -f -X DELETE -uonos:rocks ${f1Location}"/>
         <step name="Net-Create-Flows.Delete-f2" requires="^"
               exec="curl -f -X DELETE -uonos:rocks ${f2Location}"/>
         <step name="Net-Create-Flows.Delete-f3" requires="^"
@@ -75,8 +62,6 @@
               exec="curl -f -X DELETE -uonos:rocks ${f4Location}"/>
         <step name="Net-Create-Flows.Delete-f5" requires="^"
               exec="curl -f -X DELETE -uonos:rocks ${f5Location}"/>
-        <step name="Net-Create-Flows.Delete-f6" requires="^"
-              exec="curl -f -X DELETE -uonos:rocks ${f6Location}"/>
         <step name="Net-Create-Flows.Delete-f7" requires="^"
               exec="curl -f -X DELETE -uonos:rocks ${f7Location}"/>
         <step name="Net-Create-Flows.Delete-f8" requires="^"
diff --git a/tools/test/scenarios/net-deactivate-fwd.xml b/tools/test/scenarios/net-deactivate-fwd.xml
new file mode 100644
index 0000000..4c1b0fa
--- /dev/null
+++ b/tools/test/scenarios/net-deactivate-fwd.xml
@@ -0,0 +1,75 @@
+<!--
+  ~ Copyright 2015-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-deactivate-fwd" description="Deactivate forwarding apps">
+    <group name="Net-Deactivate-Fwd">
+        <!-- TODO: parametrize this via recipes -->
+        <step name="Net-Deactivate-Fwd.Uninstall-Reactive-Forwarding"
+              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"
+              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"/>
+    </group>
+</scenario>
diff --git a/tools/test/scenarios/net-flow-objectives.xml b/tools/test/scenarios/net-flow-objectives.xml
index aadfe94..be7fa45 100644
--- a/tools/test/scenarios/net-flow-objectives.xml
+++ b/tools/test/scenarios/net-flow-objectives.xml
@@ -18,14 +18,8 @@
     <!-- TODO: parametrize this via recipes -->
     <group name="Net-Flow-Objectives">
 
-        <!-- Make sure that reactive forwarding is off -->
-        <step name="Net-Flow-Objectives.Uninstall-Reactive-Forwarding"
-              exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="Net-Flow-Objectives.Check-Apps" requires="^"
-              exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
-
         <!-- Force discovery of hosts -->
-        <step name="Net-Flow-Objectives.Find-Host-1" requires="^"
+        <step name="Net-Flow-Objectives.Find-Host-1"
               exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect ."/>
         <step name="Net-Flow-Objectives.Find-Host-2" requires="^"
               exec="onos-mininet sendAndExpect h4 ping -c1 -w1 h1 --expect ."/>
diff --git a/tools/test/scenarios/net-host-intent.xml b/tools/test/scenarios/net-host-intent.xml
index 66a485b..98bb80f 100644
--- a/tools/test/scenarios/net-host-intent.xml
+++ b/tools/test/scenarios/net-host-intent.xml
@@ -16,12 +16,8 @@
 <scenario name="net-host-intent" description="Network host intent connectivity test">
     <!-- TODO: parametrize this via recipes -->
     <group name="Host-Intent-Connectivity">
-        <step name="Host-Intent.Uninstall-Reactive-Forwarding"
-              exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="Host-Intent.Check-Apps" requires="^"
-              exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
 
-        <step name="Host-Intent.Find-Host-1" requires="^"
+        <step name="Host-Intent.Find-Host-1"
               exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect ."/>
         <step name="Host-Intent.Find-Host-2" requires="^"
               exec="onos-mininet sendAndExpect h4 ping -c1 -w1 h1 --expect ."/>
diff --git a/tools/test/scenarios/net-multi-to-single-intent.xml b/tools/test/scenarios/net-multi-to-single-intent.xml
index a033925..4fd2600 100644
--- a/tools/test/scenarios/net-multi-to-single-intent.xml
+++ b/tools/test/scenarios/net-multi-to-single-intent.xml
@@ -17,13 +17,9 @@
           description="Network single point to multi point intent connectivity test">
     <!-- TODO: parametrize this via recipes -->
     <group name="M2S-Intent-Connectivity">
-        <step name="M2S-Intent.Uninstall-Reactive-Forwarding"
-              exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="M2S-Intent.Check-Apps" requires="^"
-              exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
 
         <!-- Create a single point to three points intent -->
-        <step name="M2S-Intent.Create-Intent-forward" requires="^"
+        <step name="M2S-Intent.Create-Intent-forward"
               exec="onos-create-intent ${OC1} forward multi-to-single of:0000000000000014/1 of:0000000000000002/1 of:000000000000000E/1 of:0000000000000011/1"/>
 
         <!-- Create back links from the 3 points back to the source using a single to multi intent -->
diff --git a/tools/test/scenarios/net-point-intent.xml b/tools/test/scenarios/net-point-intent.xml
index f1db670..4395794 100644
--- a/tools/test/scenarios/net-point-intent.xml
+++ b/tools/test/scenarios/net-point-intent.xml
@@ -17,12 +17,7 @@
           description="Network point to point intent connectivity test">
     <!-- TODO: parametrize this via recipes -->
     <group name="P2P-Intent-Connectivity">
-        <step name="P2P-Intent.Uninstall-Reactive-Forwarding"
-              exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="P2P-Intent.Check-Apps" requires="^"
-              exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
-
-        <step name="P2P-Intent.Find-Host-1" requires="^"
+        <step name="P2P-Intent.Find-Host-1"
               exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect ."/>
         <step name="P2P-Intent.Find-Host-2" requires="^"
               exec="onos-mininet sendAndExpect h4 ping -c1 -w1 h1 --expect ."/>
diff --git a/tools/test/scenarios/net-rest.xml b/tools/test/scenarios/net-rest.xml
index 95f91d1..78eacd2 100644
--- a/tools/test/scenarios/net-rest.xml
+++ b/tools/test/scenarios/net-rest.xml
@@ -17,15 +17,8 @@
           description="Network REST API test">
     <!-- TODO: parametrize this via recipes -->
     <group name="Net-REST">
-
-        <!-- Make sure that reactive forwarding is off -->
-        <step name="Net-REST.Uninstall-Reactive-Forwarding"
-              exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="Net-REST.Check-Apps" requires="^"
-              exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
-
         <!-- Force discovery of hosts -->
-        <step name="Net-REST.Find-Host-1" requires="^"
+        <step name="Net-REST.Find-Host-1"
               exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect ."/>
         <step name="Net-REST.Find-Host-2" requires="^"
               exec="onos-mininet sendAndExpect h4 ping -c1 -w1 h1 --expect ."/>
diff --git a/tools/test/scenarios/net-single-to-multi-intent.xml b/tools/test/scenarios/net-single-to-multi-intent.xml
index 00c2594..f998b72 100644
--- a/tools/test/scenarios/net-single-to-multi-intent.xml
+++ b/tools/test/scenarios/net-single-to-multi-intent.xml
@@ -17,13 +17,9 @@
           description="Network single point to multi point intent connectivity test">
     <!-- TODO: parametrize this via recipes -->
     <group name="S2M-Intent-Connectivity">
-        <step name="S2M-Intent.Uninstall-Reactive-Forwarding"
-              exec="onos ${OC1} app deactivate org.onosproject.fwd org.onosproject.ifwd"/>
-        <step name="S2M-Intent.Check-Apps" requires="^"
-              exec="onos-check-apps ${OC1} fwd,ifwd excludes"/>
 
         <!-- Create a single point to three points intent -->
-        <step name="S2M-Intent.Create-Intent-forward" requires="^"
+        <step name="S2M-Intent.Create-Intent-forward"
               exec="onos-create-intent ${OC1} forward single-to-multi of:0000000000000011/1 of:0000000000000014/1 of:0000000000000002/1 of:000000000000000E/1"/>
 
         <!-- Create back links from the 3 points back to the source -->
diff --git a/tools/test/scenarios/net-smoke.xml b/tools/test/scenarios/net-smoke.xml
index 980a011..4804927 100644
--- a/tools/test/scenarios/net-smoke.xml
+++ b/tools/test/scenarios/net-smoke.xml
@@ -17,12 +17,18 @@
     <group name="Net-Smoke">
         <import file="${ONOS_SCENARIOS}/net-setup.xml"/>
 
+        <import file="${ONOS_SCENARIOS}/net-activate-fwd.xml" namespace="Reactive-Forwarding"/>
+        <dependency name="Reactive-Forwarding.Net-Activate-Fwd" requires="Net-Setup"/>
+
         <import file="${ONOS_SCENARIOS}/net-pingall.xml" namespace="Reactive-Forwarding"/>
-        <dependency name="Reactive-Forwarding.Net-Pingall" requires="Net-Setup"/>
+        <dependency name="Reactive-Forwarding.Net-Pingall" requires="Reactive-Forwarding.Net-Activate-Fwd"/>
 
         <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Reactive-Forwarding"/>
         <dependency name="Reactive-Forwarding.Net-Link-Down-Up" requires="Net-Setup,~Reactive-Forwarding.Net-Pingall"/>
 
+        <import file="${ONOS_SCENARIOS}/net-deactivate-fwd.xml" namespace="Reactive-Forwarding"/>
+        <dependency name="Reactive-Forwarding.Net-Deactivate-Fwd" requires="Reactive-Forwarding.Net-Link-Down-Up"/>
+
         <import file="${ONOS_SCENARIOS}/net-host-intent.xml"/>
         <dependency name="Host-Intent-Connectivity" requires="Net-Setup,~Reactive-Forwarding.Net-Link-Down-Up"/>
 
@@ -36,7 +42,7 @@
         <import file="${ONOS_SCENARIOS}/net-multi-to-single-intent.xml"/>
         <dependency name="M2S-Intent-Connectivity"
                     requires="S2M-Intent-Connectivity"/>
-        
+
         <import file="${ONOS_SCENARIOS}/net-rest.xml"/>
         <dependency name="Net-REST" requires="Net-Setup,P2P-Intent-Connectivity,M2S-Intent-Connectivity"/>