<!--
  ~ Copyright 2015-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-setup-trellis-hag" description="Trellis HAG network setup steps">

    <group name="Net-Trellis-HAG-Setup">
        <step name="Net-Trellis-HAG-Setup.Push-Topos" exec="onos-push-topos ${OCN}"/>
        <step name="Net-Trellis-HAG-Setup.Push-Routing" exec="onos-push-routing ${OCN}"/>

        <step name="Net-Trellis-HAG-Setup.Stop-Mininet-If-Needed" env="~" exec="onos-mininet stop"/>
        <step name="Net-Trellis-HAG-Setup.Clean-Mininet-If-Needed" env="~" exec="onos-mininet cleanup" requires="^"/>
        <step name="Net-Trellis-HAG-Setup.Wipe-Out-Data-Before" exec="onos-wipe-out" requires="^"/>

        <!-- Make sure that there is no data in the system -->
        <step name="Net-Trellis-HAG-Setup.Initial-Summary-Check" requires="~Net-Trellis-HAG-Setup.Wipe-Out-Data-Before"
              exec="onos-check-summary ${OC1} [0-9]* 0 0 0"/>

        <!-- Deactivate unneeded apps -->
        <group name="Net-Trellis-HAG-Setup.Deactivate-Apps" requires="Net-Trellis-HAG-Setup.Initial-Summary-Check">
            <step name="App-Deactivate-PathPainter"
                  exec="onos ${OCI} app deactivate org.onosproject.pathpainter"
                  requires="Net-Trellis-HAG-Setup.Initial-Summary-Check"/>
            <step name="App-Deactivate-Mobility"
                  exec="onos ${OCI} app deactivate org.onosproject.mobility"
                  requires="Net-Trellis-HAG-Setup.Initial-Summary-Check"/>
            <step name="App-Deactivate-ProxyArp"
                  exec="onos ${OCI} app deactivate org.onosproject.proxyarp"
                  requires="Net-Trellis-HAG-Setup.Initial-Summary-Check"/>
            <step name="App-Deactivate-RouteService"
                  exec="onos ${OCI} app deactivate org.onosproject.route-service"
                  requires="Net-Trellis-HAG-Setup.Initial-Summary-Check"/>
        </group>

        <!-- Active required apps -->
        <group name="Net-Trellis-HAG-Setup.Activate-Apps" requires="Net-Trellis-HAG-Setup.Deactivate-Apps">
            <step name="App-Activate-Openflow"
                  exec="onos ${OCI} app activate org.onosproject.openflow"
                  requires="Net-Trellis-HAG-Setup.Deactivate-Apps"/>
            <step name="App-Activate-SegmentRouting"
                  exec="onos ${OCI} app activate org.onosproject.segmentrouting"
                  requires="Net-Trellis-HAG-Setup.Deactivate-Apps"/>
            <step name="App-Activate-Fpm"
                  exec="onos ${OCI} app activate org.onosproject.fpm"
                  requires="Net-Trellis-HAG-Setup.Deactivate-Apps"/>
            <step name="App-Activate-DhcpRelay"
                  exec="onos ${OCI} app activate org.onosproject.dhcprelay"
                  requires="Net-Trellis-HAG-Setup.Deactivate-Apps"/>
            <step name="App-Activate-NetCfgHostProvider"
                  exec="onos ${OCI} app activate org.onosproject.netcfghostprovider"
                  requires="Net-Trellis-HAG-Setup.Deactivate-Apps"/>
            <step name="App-Activate-RouterAdvertisement"
                  exec="onos ${OCI} app activate org.onosproject.routeradvertisement"
                  requires="Net-Trellis-HAG-Setup.Deactivate-Apps"/>
            <step name="App-Activate-Mcast"
                  exec="onos ${OCI} app activate org.onosproject.mcast"
                  requires="Net-Trellis-HAG-Setup.Deactivate-Apps"/>
        </group>

        <!-- set up the trellis environment -->
        <step name="Net-Trellis-HAG-Setup.Set-Up-Trellis" exec="set-up-trellis ${OCN}" requires="Net-Trellis-HAG-Setup.Activate-Apps"/>

        <!-- configure the trellis topology in ONOS -->
        <step name="Net-Trellis-HAG-Setup.Config-Topo"
              requires="Net-Trellis-HAG-Setup.Set-Up-Trellis,Net-Trellis-HAG-Setup.Push-Topos,Net-Trellis-HAG-Setup.Push-Routing"
              exec="onos-netcfg ${OC1} ${routing}/trellis/trellis_hag.json"/>

        <!-- Bring up mininet -->
        <step name="Net-Trellis-HAG-Setup.Start-Mininet"
              requires="Net-Trellis-HAG-Setup.Config-Topo,Net-Trellis-HAG-Setup.Push-Topos,Net-Trellis-HAG-Setup.Stop-Mininet-If-Needed"
              exec="mininet-trellis ${ONOS_INSTANCES}"/>
        <step name="Net-Trellis-HAG-Setup.Wait-For-Mininet" requires="Net-Trellis-HAG-Setup.Start-Mininet"
              exec="onos-mininet wait 10"/>

        <!-- clean up local routing repo if necessary -->
        <step name="Net-Trellis-HAG-Setup.Clean-Routing"
              requires="Net-Trellis-HAG-Setup.Start-Mininet"
              exec="onos-clean-routing ${routing_root}"/>
    </group>
</scenario>
