Ray Milkey
Committed by Gerrit Code Review

Refactor activate/deactivate of forwarding app

Change-Id: Iae71b3334fba08dceac7adb47a457ae0af0dcabc
#!/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
<!--
~ 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>
......@@ -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="^"
......
<!--
~ 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>
......@@ -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 ."/>
......
......@@ -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 ."/>
......
......@@ -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 -->
......
......@@ -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 ."/>
......
......@@ -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 ."/>
......
......@@ -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 -->
......
......@@ -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"/>
......