<!--
  ~ Copyright 2016 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-single-to-multi-intent"
          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="^"
              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 -->
        <step name="S2M-Intent.Create-Intent-back1" requires="^"
              exec="onos-create-intent ${OC1} back1 point of:0000000000000014/1 of:0000000000000011/1"/>
        <step name="S2M-Intent.Create-Intent-back2" requires="^"
              exec="onos-create-intent ${OC1} back2 point of:0000000000000002/1 of:0000000000000011/1"/>
        <step name="S2M-Intent.Create-Intent-back3" requires="^"
              exec="onos-create-intent ${OC1} back3 point of:000000000000000E/1 of:0000000000000011/1"/>

        <!-- Make sure intents installed properly -->
        <step name="S2M-Intent.Validate-Intent-forward-Installed" requires="S2M-Intent.Create-Intent-forward"
              exec="onos-check-intent ${OC1} forward INSTALLED"/>
        <step name="S2M-Intent.Validate-Intent-back1-Installed" requires="S2M-Intent.Create-Intent-back1"
              exec="onos-check-intent ${OC1} back1 INSTALLED"/>
        <step name="S2M-Intent.Validate-Intent-back2-Installed" requires="S2M-Intent.Create-Intent-back2"
              exec="onos-check-intent ${OC1} back2 INSTALLED"/>
        <step name="S2M-Intent.Validate-Intent-back3-Installed" requires="S2M-Intent.Create-Intent-back3"
              exec="onos-check-intent ${OC1} back3 INSTALLED"/>

        <!-- Check the connectivity of the 11 <-> 14 intent -->
        <step name="S2M-Intent.Ping-1-forward"
              exec="onos-mininet sendAndExpect h17 ping -c1 h20 --expect \ 0% packet loss" requires="S2M-Intent.Create-Intent-forward,
                                                                                                     S2M-Intent.Create-Intent-back1" />
        <step name="S2M-Intent.Ping-1-back"
              exec="onos-mininet sendAndExpect h20 ping -c1 h17 --expect \ 0% packet loss" requires="S2M-Intent.Create-Intent-forward,
                                                                                                     S2M-Intent.Create-Intent-back1" />

        <!-- Check the connectivity of the 11 <-> 2 intent -->
        <step name="S2M-Intent.Ping-2-forward"
              exec="onos-mininet sendAndExpect h17 ping -c1 h2 --expect \ 0% packet loss" requires="S2M-Intent.Create-Intent-forward,
                                                                                                     S2M-Intent.Create-Intent-back1" />
        <step name="S2M-Intent.Ping-2-back"
              exec="onos-mininet sendAndExpect h2 ping -c1 h17 --expect \ 0% packet loss" requires="S2M-Intent.Create-Intent-forward,
                                                                                                     S2M-Intent.Create-Intent-back1" />

        <!-- Check the connectivity of the 11 <-> E intent -->
        <step name="S2M-Intent.Ping-3-forward"
              exec="onos-mininet sendAndExpect h17 ping -c1 h14 --expect \ 0% packet loss" requires="S2M-Intent.Create-Intent-forward,
                                                                                                     S2M-Intent.Create-Intent-back2" />
        <step name="S2M-Intent.Ping-3-back"
              exec="onos-mininet sendAndExpect h14 ping -c1 h17 --expect \ 0% packet loss" requires="S2M-Intent.Create-Intent-forward,
                                                                                                     S2M-Intent.Create-Intent-back3" />

        <!-- Clean up intents -->
        <step name="S2M-Intent.Remove-Intent-forward" requires="~S2M-Intent.Ping-3-back"
              exec="onos ${OC1} remove-intent -p org.onosproject.cli forward"/>
        <step name="S2M-Intent.Remove-Intent-back1" requires="~S2M-Intent.Ping-3-back"
              exec="onos ${OC1} remove-intent -p org.onosproject.cli back1"/>
        <step name="S2M-Intent.Remove-Intent-back2" requires="~S2M-Intent.Ping-3-back"
              exec="onos ${OC1} remove-intent -p org.onosproject.cli back2"/>
        <step name="S2M-Intent.Remove-Intent-back3" requires="~S2M-Intent.Ping-3-back"
              exec="onos ${OC1} remove-intent -p org.onosproject.cli back3"/>
    </group>
</scenario>
