VLAN initial commit <old version>
diff --git a/TestON/tests/PingallExample/PingallExample.py b/TestON/tests/PingallExample/PingallExample.py
index c03b0f1..c8d02a8 100644
--- a/TestON/tests/PingallExample/PingallExample.py
+++ b/TestON/tests/PingallExample/PingallExample.py
@@ -163,9 +163,176 @@
main.log.info( "Time for pingall: %2f seconds" % ( time2 - time1 ) )
# uninstall onos-app-fwd
- main.step( "Deactivate reactive forwarding app" )
- main.ONOScli1.deactivateApp( "org.onosproject.fwd" )
+ # main.step( "Deactivate reactive forwarding app" )
+ #main.ONOScli1.deactivateApp( "org.onosproject.fwd" )
utilities.assert_equals( expect=main.TRUE, actual=pingResult,
onpass="All hosts are reachable",
onfail="Some pings failed" )
+
+ def CASE25( self, main ):
+ """
+ Activate fwd app
+ Ping selected hosts
+ Assign selected hosts vlans
+ Ping to test vlans
+ Deactivate fwd app
+ """
+ import time
+
+ main.log.report( "This testcase creates different vlan hosts " +
+ " and verifies that only hosts that belong " +
+ " to the same vlan can ping each others")
+ main.log.report( "___________________________________________________" )
+ main.case( "Creating vlans and performing ping between hosts" )
+
+ main.step( "Activate reactive forwarding app" )
+ main.ONOScli1.activateApp( "org.onosproject.fwd" )
+
+ main.step( "Activate reactive forwarding app" )
+ main.ONOScli1.activateApp( "org.onosproject.fwd" )
+
+ main.step( "Verify host pinging in Mininet before creating vlans" )
+ source1V1 = main.params[ 'VPING' ][ 'source1V1' ]['vhost']
+ source1V2 = main.params[ 'VPING' ][ 'source1V2' ]['vhost']
+ source1Vnone = main.params[ 'VPING' ][ 'source1Vnone' ]['vhost']
+ target1V1 = main.params[ 'VPING' ][ 'target1V1' ]['vhost']
+ target2V1 = main.params[ 'VPING' ][ 'target2V1' ]['vhost']
+ target1V2 = main.params[ 'VPING' ][ 'target1V2' ]['vhost']
+ target1Vnone = main.params[ 'VPING' ][ 'target1Vnone' ]['vhost']
+
+ targetIP1V1 = main.Mininet1.getIPAddress(target1V1)
+ targetIP2V1 = main.Mininet1.getIPAddress(target2V1)
+ targetIP1V2 = main.Mininet1.getIPAddress(target1V2)
+ targetIP1Vnone = main.Mininet1.getIPAddress(target1Vnone)
+
+ for i in range(0,2):
+ ping1V1 = main.Mininet1.pingHost( src = source1V1, target = targetIP1V1)
+ ping2V1 = main.Mininet1.pingHost( src = source1V1, target = targetIP2V1)
+ ping1V2 = main.Mininet1.pingHost( src = source1V2, target = targetIP1V2)
+ pingV1V2 = main.Mininet1.pingHost( src = source1V1, target = targetIP1V2)
+ pingV2V1 = main.Mininet1.pingHost( src = source1V2, target = targetIP1V1)
+ pingV1Vnone = main.Mininet1.pingHost ( src = source1V1, target = targetIP1Vnone)
+ pingVnoneV2 = main.Mininet1.pingHost ( src = source1Vnone, target = targetIP1V2)
+
+ pingResultBeforeVlan = ping1V1 and ping2V1 and ping1V2 and pingV1V2 \
+ and pingV2V1 and pingV1Vnone and pingVnoneV2
+
+
+ if pingResultBeforeVlan == main.TRUE:
+ main.log.report("Ping succeeded before vlans are created")
+
+ main.step( "Create vlan hosts in mininet" )
+ v1Tag = main.params[ 'VTAGS' ][ 'tag1' ]
+ v2Tag = main.params[ 'VTAGS' ][ 'tag2' ]
+ intfSource1V1 = source1V1 + "-" + main.params[ 'VPING' ][ 'source1V1' ][ 'vintf' ]
+ intfSource1V2 = source1V2 + "-" + main.params[ 'VPING' ][ 'source1V2' ][ 'vintf' ]
+ intfTarget1V1 = target1V1 + "-" + main.params[ 'VPING' ][ 'target1V1' ][ 'vintf' ]
+ intfTarget2V1 = target2V1 + "-" + main.params[ 'VPING' ][ 'target2V1' ][ 'vintf' ]
+ intfTarget1V2 = target1V2 + "-" + main.params[ 'VPING' ][ 'target1V2' ][ 'vintf' ]
+
+ main.Mininet1.assignVLAN(source1V1, intfSource1V1, v1Tag)
+ main.Mininet1.assignVLAN(target1V1, intfTarget1V1, v1Tag)
+ main.Mininet1.assignVLAN(target2V1, intfTarget2V1, v1Tag)
+ main.Mininet1.assignVLAN(source1V2, intfSource1V2, v2Tag)
+ main.Mininet1.assignVLAN(target1V2, intfTarget1V2, v2Tag)
+
+ main.step( "Verify host pinging in Mininet after creating vlans" )
+
+ ping1V1 = main.Mininet1.pingHost( src = source1V1, target = targetIP1V1)
+ ping2V1 = main.Mininet1.pingHost( src = source1V1, target = targetIP2V1)
+ ping1V2 = main.Mininet1.pingHost( src = source1V2, target = targetIP1V2)
+ pingV1V2 = main.Mininet1.pingHost( src = source1V1, target = targetIP1V2)
+ pingV2V1 = main.Mininet1.pingHost( src = source1V2, target = targetIP1V1)
+ pingV1Vnone = main.Mininet1.pingHost ( src = source1V1, target = targetIP1Vnone)
+ pingVnoneV2 = main.Mininet1.pingHost ( src = source1Vnone, target = targetIP1V2)
+
+
+ pingExpectedTrue = ping1V1 and ping2V1 and ping1V2
+ pingResultAfterVlan = pingExpectedTrue and not pingV1V2 \
+ and not pingV2V1 and not pingV1Vnone and not pingVnoneV2
+
+ if pingResultAfterVlan == main.TRUE:
+ main.log.report("Ping results are as expected after vlans are created")
+ testCaseResult = main.TRUE
+ if pingResultAfterVlan == main.FALSE:
+ main.log.report("Ping results are not expected after vlans are created")
+ testCaseResult = main.FALSE
+
+ case25Result = testCaseResult
+ utilities.assert_equals( expect=main.TRUE, actual=case25Result,
+ onpass="Vlan verification is successfull",
+ onfail="Vlan verification failed" )
+ if pingResultBeforeVlan == main.FALSE:
+ main.log.report("Ping failed before vlans are created")
+ case25Result = main.FALSE
+ utilities.assert_equals( expect=main.TRUE, actual=case25Result,
+ onpass="Test case 25 can be verified",
+ onfail="Test case 25 cannot be verified because " +
+ "there are ping failures before assigning host vlans" )
+
+ main.step( "Deactivate reactive forwarding app" )
+ main.ONOScli1.deactivateApp( "org.onosproject.fwd" )
+
+ def CASE26( self, main ):
+ """
+ This test case verifies that hosts belonging to the same vlan,
+ can ping each other with proactive forwarding (after adding host intent):
+ - Deactivate app fwd
+ - Assign vlan tag to selected hosts
+ - Add host intent between the selected hosts
+ - Ping the selected hosts to verify proactive forwarding with vlan hosts
+ """
+ import time
+
+ main.log.report( "This testcase creates vlan hosts, " +
+ " add host intent, " +
+ " then ping the hosts")
+ main.log.report( "___________________________________________________" )
+ main.case( "Creating vlans and performing ping between hosts" )
+
+ main.step( "Deactivate reactive forwarding app" )
+ main.ONOScli1.deactivateApp( "org.onosproject.fwd" )
+
+ main.step( "Assign vlan hosts in mininet" )
+
+ source1V1 = main.params[ 'VPING' ][ 'source1V1Int' ]['vhost']
+ target1V1 = main.params[ 'VPING' ][ 'target1V1Int' ]['vhost']
+
+ intfSource1V1 = source1V1 + "-" + main.params[ 'VPING' ][ 'source1V1Int' ][ 'vintf' ]
+ intfTarget1V1 = target1V1 + "-" + main.params[ 'VPING' ][ 'target1V1Int' ][ 'vintf' ]
+
+ vTag = main.params[ 'VTAGS' ][ 'tag3' ]
+
+ main.Mininet1.assignVLAN(source1V1, intfSource1V1, vTag)
+ main.Mininet1.assignVLAN(target1V1, intfTarget1V1, vTag)
+
+ main.step( "Add host intent" )
+ mac1 = main.Mininet1.getMacAddress(source1V1)
+ mac2 = main.Mininet1.getMacAddress(target1V1)
+ id1 = mac1 + "/" + vTag
+ id2 = mac2 + "/" + vTag
+ hthIntentResult = main.ONOScli1.addHostIntent( id1 , id2 )
+ if hthIntentResult:
+ main.step( "Ping hosts after installing host intent" )
+ #time.sleep(10)
+ targetIPV1 = main.Mininet1.getIPAddress(target1V1)
+ for i in range(0,3):
+ ping1V1 = main.Mininet1.pingHost( src = source1V1, target = targetIPV1)
+
+ if ping1V1 == main.TRUE:
+ main.log.report(" Vlan hosts can ping each other successfully "+
+ " after add host intent.")
+
+ if ping1V1 == main.FALSE:
+ main.log.report("Vlan hosts failed to ping each other "+
+ " after add host intent. ")
+
+ else:
+ main.log.report(" add host intent failed between vlan hosts ")
+
+ case26Result = hthIntentResult and ping1V1
+ utilities.assert_equals( expect=main.TRUE, actual=case26Result,
+ onpass="Test case 26 is successfull",
+ onfail="Test case 26 has failed" )
+