net-single-to-multi-intent.xml 4.07 KB
<!--
  ~ 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-single-to-multi-intent"
          description="Network single point to multi point intent connectivity test">
    <!-- TODO: parametrize this via recipes -->
    <group name="S2M-Intent-Connectivity">

        <!-- Create a single point to three points intent -->
        <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 -->
        <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="^"
              exec="onos-check-intent ${OC1} forward INSTALLED"/>
        <step name="S2M-Intent.Validate-Intent-back1-Installed" requires="^"
              exec="onos-check-intent ${OC1} back1 INSTALLED"/>
        <step name="S2M-Intent.Validate-Intent-back2-Installed" requires="^"
              exec="onos-check-intent ${OC1} back2 INSTALLED"/>
        <step name="S2M-Intent.Validate-Intent-back3-Installed" requires="^"
              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="^" />
        <step name="S2M-Intent.Ping-1-back"
              exec="onos-mininet sendAndExpect h20 ping -c1 h17 --expect \ 0% packet loss" requires="^" />

        <!-- 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="^" />
        <step name="S2M-Intent.Ping-2-back"
              exec="onos-mininet sendAndExpect h2 ping -c1 h17 --expect \ 0% packet loss" requires="^" />

        <!-- 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="^" />
        <step name="S2M-Intent.Ping-3-back"
              exec="onos-mininet sendAndExpect h14 ping -c1 h17 --expect \ 0% packet loss" requires="^" />

        <!-- 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>