diff --git a/tools/test/scenarios/bin/onos-change-device-portstate b/tools/test/scenarios/bin/onos-change-device-portstate
new file mode 100755
index 0000000..bc69d98
--- /dev/null
+++ b/tools/test/scenarios/bin/onos-change-device-portstate
@@ -0,0 +1,32 @@
+#! /usr/bin/env python
+
+import requests
+
+from requests.auth import HTTPBasicAuth
+import sys
+
+
+
+if len(sys.argv) != 5:
+    print "usage: change-device-portstate onos-node device-id port new_enabled_state"
+    sys.exit(1)
+
+node = sys.argv[1]
+device_id = sys.argv[2]
+port = sys.argv[3]
+new_enabled_state = sys.argv[4]
+
+payload = '{ "enabled": ' + new_enabled_state + ' }'
+
+change_request = requests.post('http://' + node + ':8181/onos/v1/devices/' + device_id + '/portstate/' + port,
+                               auth=HTTPBasicAuth('onos', 'rocks'),
+                               data=payload)
+
+if change_request.status_code != 200:
+    print change_request.text
+    sys.exit(1)
+
+sys.exit(0)
+
+
+
diff --git a/tools/test/scenarios/net-port-disable-enable.xml b/tools/test/scenarios/net-port-disable-enable.xml
new file mode 100644
index 0000000..b77b420
--- /dev/null
+++ b/tools/test/scenarios/net-port-disable-enable.xml
@@ -0,0 +1,91 @@
+<!--
+  ~ Copyright 2018-present Open Networking Foundation
+  ~
+  ~ 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-port-disable-enable" description="Network port enable-disable test">
+    <!-- Note: This scenario is tailored using 'topo' recipe mechanism; see topos/*.recipe files -->
+    <group name="Net-Port-Disable-Enable">
+
+        <step name="Query-Link-1f"
+              exec="find-link.py ${OC1} unused ${OPSS1} ${OPSP1} ${OPDS1} ${OPDP1}"/>
+        <step name="Query-Link-1b"
+              exec="find-link.py ${OC1} unused ${OPDS1} ${OPDP1} ${OPSS1} ${OPSP1}"/>
+        <step name="Query-Link-2f"
+              exec="find-link.py ${OC1} unused ${OPSS2} ${OPSP2} ${OPDS2} ${OPDP2}"/>
+        <step name="Query-Link-2b"
+              exec="find-link.py ${OC1} unused ${OPDS2} ${OPDP2} ${OPSS2} ${OPSP2}"/>
+
+        <step name="Port-Ping-1"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"
+              requires="~Query-Link-1f, ~Query-Link-1b"/>
+
+        <step name="Port-1-Down" requires="~Port-Ping-1"
+              exec="onos-change-device-portstate ${OC1} ${OPSS1} ${OPSP1} false"/>
+        <step name="Query-Link-3f"
+              exec="find-link.py ${OC1} unused ${OPSS1} ${OPSP1} ${OPDS1} ${OPDP1}"
+              env="!"
+              requires="Port-1-Down"/>
+        <step name="Query-Link-3b"
+              exec="find-link.py ${OC1} unused ${OPDS1} ${OPDP1} ${OPSS1} ${OPSP1}"
+              env="!"
+              requires="Port-1-Down"/>
+
+        <step name="Port-Ping-2-Prep" requires="~Port-1-Down"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c5 ${OPD} --expect ."/>
+        <step name="Port-Ping-2" requires="~Port-Ping-2-Prep"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"/>
+
+        <step name="Port-2-Down" requires="~Port-Ping-2"
+              exec="onos-change-device-portstate ${OC1} ${OPSS2} ${OPSP2} false"/>
+        <step name="Query-Link-4f"
+              exec="find-link.py ${OC1} unused ${OPSS2} ${OPSP2} ${OPDS2} ${OPDP2}"
+              env="!"
+              requires="Port-2-Down"/>
+        <step name="Query-Link-4b"
+              exec="find-link.py ${OC1} unused ${OPDS2} ${OPDP2} ${OPSS2} ${OPSP2}"
+              env="!"
+              requires="Port-2-Down"/>
+
+        <step name="Port-Ping-3" requires="~Port-2-Down"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 -w1 ${OPD} --expect 100% packet loss"/>
+
+        <step name="Port-1-Up" requires="~Port-Ping-3"
+              exec="onos-change-device-portstate ${OC1} ${OPSS1} ${OPSP1} true"/>
+        <step name="Query-Link-5f"
+              exec="find-link.py ${OC1} unused ${OPSS1} ${OPSP1} ${OPDS1} ${OPDP1}"
+              requires="Port-1-Up"/>
+        <step name="Query-Link-5b"
+              exec="find-link.py ${OC1} unused ${OPDS1} ${OPDP1} ${OPSS1} ${OPSP1}"
+              requires="Port-1-Up"/>
+
+        <step name="Port-Ping-4-Prep" requires="~Port-1-Up"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c5 ${OPD} --expect ."/>
+        <step name="Port-Ping-4" requires="~Port-Ping-4-Prep"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"/>
+
+        <step name="Port-2-Up" requires="~Port-Ping-4"
+              exec="onos-change-device-portstate ${OC1} ${OPSS2} ${OPSP2} true"/>
+        <step name="Query-Link-6f"
+              exec="find-link.py ${OC1} unused ${OPSS2} ${OPSP2} ${OPDS2} ${OPDP2}"
+              requires="Port-2-Up"/>
+        <step name="Query-Link-6b"
+              exec="find-link.py ${OC1} unused ${OPDS2} ${OPDP2} ${OPSS2} ${OPSP2}"
+              requires="Port-2-Up"/>
+
+        <step name="Port-Ping-5-Prep" requires="~Port-2-Up"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c5 ${OPD} --expect ."/>
+        <step name="Port-Ping-5" requires="~Port-Ping-5-Prep"
+              exec="onos-mininet sendAndExpect ${OPS} ping -c1 ${OPD} --expect \ 0% packet loss"/>
+    </group>
+</scenario>
diff --git a/tools/test/scenarios/net-reactive-fwd.xml b/tools/test/scenarios/net-reactive-fwd.xml
index b3968dc..0558697 100644
--- a/tools/test/scenarios/net-reactive-fwd.xml
+++ b/tools/test/scenarios/net-reactive-fwd.xml
@@ -23,7 +23,10 @@
         <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Net-Reactive-Fwd"/>
         <dependency name="Net-Reactive-Fwd.Net-Link-Down-Up" requires="~Net-Reactive-Fwd.Net-Pingall"/>
 
+        <import file="${ONOS_SCENARIOS}/net-port-disable-enable.xml" namespace="Net-Reactive-Fwd"/>
+        <dependency name="Net-Reactive-Fwd.Net-Port-Disable-Enable" requires="~Net-Reactive-Fwd.Net-Link-Down-Up"/>
+
         <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-Port-Disable-Enable"/>
     </group>
 </scenario>
diff --git a/tools/test/topos/default.recipe b/tools/test/topos/default.recipe
index b08c896..c6b4e55 100644
--- a/tools/test/topos/default.recipe
+++ b/tools/test/topos/default.recipe
@@ -11,4 +11,16 @@
 export OPS=h1
 export OPD=h4
 export OPL1="s4 s7"
-export OPL2="s4 s5"
\ No newline at end of file
+export OPL2="s4 s5"
+
+# Variables for device port up down up scenario.
+export OPSS1="of:0000000000000004"
+export OPSP1="3"
+export OPDS1="of:0000000000000007"
+export OPDP1="3"
+export OPSS2="of:0000000000000005"
+export OPSP2="2"
+export OPDS2="of:0000000000000004"
+export OPDP2="2"
+
+
