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

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

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

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

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

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