Initial clean up of Tests
diff --git a/TestON/tests/IntentPerfNext/IntentPerfNext.py b/TestON/tests/IntentPerfNext/IntentPerfNext.py
index 5c8bb2f..daa1ae2 100644
--- a/TestON/tests/IntentPerfNext/IntentPerfNext.py
+++ b/TestON/tests/IntentPerfNext/IntentPerfNext.py
@@ -1,379 +1,386 @@
-#Intent Performance Test for ONOS-next
+# Intent Performance Test for ONOS-next
#
-#andrew@onlab.us
+# andrew@onlab.us
#
-#November 5, 2014
+# November 5, 2014
+
class IntentPerfNext:
- def __init__(self):
+
+ def __init__( self ):
self.default = ""
- def CASE1(self, main):
- '''
+ def CASE1( self, main ):
+ """
ONOS startup sequence
- '''
-
+ """
import time
global cluster_count
- cluster_count = 1
+ cluster_count = 1
- cell_name = main.params['ENV']['cellName']
+ cell_name = main.params[ 'ENV' ][ 'cellName' ]
- git_pull = main.params['GIT']['autoPull']
- checkout_branch = main.params['GIT']['checkout']
+ git_pull = main.params[ 'GIT' ][ 'autoPull' ]
+ checkout_branch = main.params[ 'GIT' ][ 'checkout' ]
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS4_ip = main.params['CTRL']['ip4']
- ONOS5_ip = main.params['CTRL']['ip5']
- ONOS6_ip = main.params['CTRL']['ip6']
- ONOS7_ip = main.params['CTRL']['ip7']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS4_ip = main.params[ 'CTRL' ][ 'ip4' ]
+ ONOS5_ip = main.params[ 'CTRL' ][ 'ip5' ]
+ ONOS6_ip = main.params[ 'CTRL' ][ 'ip6' ]
+ ONOS7_ip = main.params[ 'CTRL' ][ 'ip7' ]
- main.ONOSbench.onos_uninstall(node_ip=ONOS1_ip)
- main.ONOSbench.onos_uninstall(node_ip=ONOS2_ip)
- main.ONOSbench.onos_uninstall(node_ip=ONOS3_ip)
- main.ONOSbench.onos_uninstall(node_ip=ONOS4_ip)
- main.ONOSbench.onos_uninstall(node_ip=ONOS5_ip)
- main.ONOSbench.onos_uninstall(node_ip=ONOS6_ip)
- main.ONOSbench.onos_uninstall(node_ip=ONOS7_ip)
+ main.ONOSbench.onos_uninstall( node_ip=ONOS1_ip )
+ main.ONOSbench.onos_uninstall( node_ip=ONOS2_ip )
+ main.ONOSbench.onos_uninstall( node_ip=ONOS3_ip )
+ main.ONOSbench.onos_uninstall( node_ip=ONOS4_ip )
+ main.ONOSbench.onos_uninstall( node_ip=ONOS5_ip )
+ main.ONOSbench.onos_uninstall( node_ip=ONOS6_ip )
+ main.ONOSbench.onos_uninstall( node_ip=ONOS7_ip )
- MN1_ip = main.params['MN']['ip1']
- BENCH_ip = main.params['BENCH']['ip']
-
- main.case("Setting up test environment")
+ MN1_ip = main.params[ 'MN' ][ 'ip1' ]
+ BENCH_ip = main.params[ 'BENCH' ][ 'ip' ]
- main.step("Creating cell file")
+ main.case( "Setting up test environment" )
+
+ main.step( "Creating cell file" )
cell_file_result = main.ONOSbench.create_cell_file(
- BENCH_ip, cell_name, MN1_ip,
- "onos-core,onos-app-metrics,onos-gui",
- #ONOS1_ip, ONOS2_ip, ONOS3_ip)
- ONOS1_ip)
+ BENCH_ip, cell_name, MN1_ip,
+ "onos-core,onos-app-metrics,onos-gui",
+ # ONOS1_ip, ONOS2_ip, ONOS3_ip )
+ ONOS1_ip )
- main.step("Applying cell file to environment")
- cell_apply_result = main.ONOSbench.set_cell(cell_name)
+ main.step( "Applying cell file to environment" )
+ cell_apply_result = main.ONOSbench.set_cell( cell_name )
verify_cell_result = main.ONOSbench.verify_cell()
- main.step("Removing raft logs")
+ main.step( "Removing raft logs" )
main.ONOSbench.onos_remove_raft_logs()
- main.step("Git checkout and pull "+checkout_branch)
+ main.step( "Git checkout and pull " + checkout_branch )
if git_pull == 'on':
checkout_result = \
- main.ONOSbench.git_checkout(checkout_branch)
+ main.ONOSbench.git_checkout( checkout_branch )
pull_result = main.ONOSbench.git_pull()
-
- #If you used git pull, auto compile
- main.step("Using onos-build to compile ONOS")
+
+ # If you used git pull, auto compile
+ main.step( "Using onos-build to compile ONOS" )
build_result = main.ONOSbench.onos_build()
else:
checkout_result = main.TRUE
pull_result = main.TRUE
build_result = main.TRUE
- main.log.info("Git pull skipped by configuration")
+ main.log.info( "Git pull skipped by configuration" )
- main.log.report("Commit information - ")
- main.ONOSbench.get_version(report=True)
+ main.log.report( "Commit information - " )
+ main.ONOSbench.get_version( report=True )
- main.step("Creating ONOS package")
+ main.step( "Creating ONOS package" )
package_result = main.ONOSbench.onos_package()
- main.step("Installing ONOS package")
- install1_result = main.ONOSbench.onos_install(node=ONOS1_ip)
- #install2_result = main.ONOSbench.onos_install(node=ONOS2_ip)
- #install3_result = main.ONOSbench.onos_install(node=ONOS3_ip)
+ main.step( "Installing ONOS package" )
+ install1_result = main.ONOSbench.onos_install( node=ONOS1_ip )
+ #install2_result = main.ONOSbench.onos_install( node=ONOS2_ip )
+ #install3_result = main.ONOSbench.onos_install( node=ONOS3_ip )
- main.step("Set cell for ONOScli env")
- main.ONOS1cli.set_cell(cell_name)
- #main.ONOS2cli.set_cell(cell_name)
- #main.ONOS3cli.set_cell(cell_name)
+ main.step( "Set cell for ONOScli env" )
+ main.ONOS1cli.set_cell( cell_name )
+ # main.ONOS2cli.set_cell( cell_name )
+ # main.ONOS3cli.set_cell( cell_name )
- time.sleep(5)
+ time.sleep( 5 )
- main.step("Start onos cli")
- cli1 = main.ONOS1cli.start_onos_cli(ONOS1_ip)
- #cli2 = main.ONOS2cli.start_onos_cli(ONOS2_ip)
- #cli3 = main.ONOS3cli.start_onos_cli(ONOS3_ip)
+ main.step( "Start onos cli" )
+ cli1 = main.ONOS1cli.start_onos_cli( ONOS1_ip )
+ #cli2 = main.ONOS2cli.start_onos_cli( ONOS2_ip )
+ #cli3 = main.ONOS3cli.start_onos_cli( ONOS3_ip )
- utilities.assert_equals(expect=main.TRUE,
- actual = cell_file_result and cell_apply_result and\
- verify_cell_result and checkout_result and\
- pull_result and build_result and\
- install1_result, #and install2_result and\
- #install3_result,
- onpass="ONOS started successfully",
- onfail="Failed to start ONOS")
+ utilities.assert_equals( expect=main.TRUE,
+ actual=cell_file_result and cell_apply_result and
+ verify_cell_result and checkout_result and
+ pull_result and build_result and
+ install1_result, # and install2_result and
+ # install3_result,
+ onpass="ONOS started successfully",
+ onfail="Failed to start ONOS" )
- def CASE2(self, main):
- '''
+ def CASE2( self, main ):
+ """
Single intent add latency
- '''
+ """
import time
import json
import requests
import os
import numpy
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS_user = main.params['CTRL']['user']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS_user = main.params[ 'CTRL' ][ 'user' ]
- default_sw_port = main.params['CTRL']['port1']
+ default_sw_port = main.params[ 'CTRL' ][ 'port1' ]
- #number of iterations of case
- num_iter = main.params['TEST']['numIter']
- num_ignore = int(main.params['TEST']['numIgnore'])
+ # number of iterations of case
+ num_iter = main.params[ 'TEST' ][ 'numIter' ]
+ num_ignore = int( main.params[ 'TEST' ][ 'numIgnore' ] )
- #Timestamp keys for json metrics output
- submit_time = main.params['JSON']['submittedTime']
- install_time = main.params['JSON']['installedTime']
- wdRequest_time = main.params['JSON']['wdRequestTime']
- withdrawn_time = main.params['JSON']['withdrawnTime']
-
+ # Timestamp keys for json metrics output
+ submit_time = main.params[ 'JSON' ][ 'submittedTime' ]
+ install_time = main.params[ 'JSON' ][ 'installedTime' ]
+ wdRequest_time = main.params[ 'JSON' ][ 'wdRequestTime' ]
+ withdrawn_time = main.params[ 'JSON' ][ 'withdrawnTime' ]
+
intent_add_lat_list = []
- #Assign 'linear' switch format for basic intent testing
+ # Assign 'linear' switch format for basic intent testing
main.Mininet1.assign_sw_controller(
- sw="1", ip1=ONOS1_ip,port1=default_sw_port)
+ sw="1", ip1=ONOS1_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="2", ip1=ONOS2_ip,port1=default_sw_port)
+ sw="2", ip1=ONOS2_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="3", ip1=ONOS2_ip,port1=default_sw_port)
+ sw="3", ip1=ONOS2_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="4", ip1=ONOS2_ip,port1=default_sw_port)
+ sw="4", ip1=ONOS2_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="5", ip1=ONOS3_ip,port1=default_sw_port)
+ sw="5", ip1=ONOS3_ip, port1=default_sw_port )
- time.sleep(10)
+ time.sleep( 10 )
- main.log.report("Single intent add latency test")
+ main.log.report( "Single intent add latency test" )
devices_json_str = main.ONOS1cli.devices()
- devices_json_obj = json.loads(devices_json_str)
+ devices_json_obj = json.loads( devices_json_str )
device_id_list = []
- #Obtain device id list in ONOS format.
- #They should already be in order (1,2,3,10,11,12,13, etc)
+ # Obtain device id list in ONOS format.
+ # They should already be in order ( 1,2,3,10,11,12,13, etc )
for device in devices_json_obj:
- device_id_list.append(device['id'])
+ device_id_list.append( device[ 'id' ] )
- for i in range(0, int(num_iter)):
- #add_point_intent(ingr_device, egr_device,
- # ingr_port, egr_port)
+ for i in range( 0, int( num_iter ) ):
+ # add_point_intent( ingr_device, egr_device,
+ # ingr_port, egr_port )
main.ONOS1cli.add_point_intent(
- device_id_list[0]+"/1", device_id_list[4]+"/1")
-
- #Allow some time for intents to propagate
- time.sleep(5)
+ device_id_list[ 0 ] + "/1", device_id_list[ 4 ] + "/1" )
- #Obtain metrics from ONOS 1, 2, 3
+ # Allow some time for intents to propagate
+ time.sleep( 5 )
+
+ # Obtain metrics from ONOS 1, 2, 3
intents_json_str_1 = main.ONOS1cli.intents_events_metrics()
intents_json_str_2 = main.ONOS2cli.intents_events_metrics()
intents_json_str_3 = main.ONOS3cli.intents_events_metrics()
- intents_json_obj_1 = json.loads(intents_json_str_1)
- intents_json_obj_2 = json.loads(intents_json_str_2)
- intents_json_obj_3 = json.loads(intents_json_str_3)
+ intents_json_obj_1 = json.loads( intents_json_str_1 )
+ intents_json_obj_2 = json.loads( intents_json_str_2 )
+ intents_json_obj_3 = json.loads( intents_json_str_3 )
- #Parse values from the json object
+ # Parse values from the json object
intent_submit_1 = \
- intents_json_obj_1[submit_time]['value']
+ intents_json_obj_1[ submit_time ][ 'value' ]
intent_submit_2 = \
- intents_json_obj_2[submit_time]['value']
+ intents_json_obj_2[ submit_time ][ 'value' ]
intent_submit_3 = \
- intents_json_obj_3[submit_time]['value']
+ intents_json_obj_3[ submit_time ][ 'value' ]
intent_install_1 = \
- intents_json_obj_1[install_time]['value']
+ intents_json_obj_1[ install_time ][ 'value' ]
intent_install_2 = \
- intents_json_obj_2[install_time]['value']
+ intents_json_obj_2[ install_time ][ 'value' ]
intent_install_3 = \
- intents_json_obj_3[install_time]['value']
+ intents_json_obj_3[ install_time ][ 'value' ]
intent_install_lat_1 = \
- int(intent_install_1) - int(intent_submit_1)
+ int( intent_install_1 ) - int( intent_submit_1 )
intent_install_lat_2 = \
- int(intent_install_2) - int(intent_submit_2)
+ int( intent_install_2 ) - int( intent_submit_2 )
intent_install_lat_3 = \
- int(intent_install_3) - int(intent_submit_3)
-
- intent_install_lat_avg = \
- (intent_install_lat_1 +
- intent_install_lat_2 +
- intent_install_lat_3 ) / 3
+ int( intent_install_3 ) - int( intent_submit_3 )
- main.log.info("Intent add latency avg for iteration "+str(i)+
- ": "+str(intent_install_lat_avg)+" ms")
+ intent_install_lat_avg = \
+ ( intent_install_lat_1 +
+ intent_install_lat_2 +
+ intent_install_lat_3 ) / 3
+
+ main.log.info( "Intent add latency avg for iteration " + str( i ) +
+ ": " + str( intent_install_lat_avg ) + " ms" )
if intent_install_lat_avg > 0.0 and \
intent_install_lat_avg < 1000 and i > num_ignore:
- intent_add_lat_list.append(intent_install_lat_avg)
+ intent_add_lat_list.append( intent_install_lat_avg )
else:
- main.log.info("Intent add latency exceeded "+
- "threshold. Skipping iteration "+str(i))
+ main.log.info( "Intent add latency exceeded " +
+ "threshold. Skipping iteration " + str( i ) )
- time.sleep(3)
-
- #TODO: Possibly put this in the driver function
- main.log.info("Removing intents for next iteration")
+ time.sleep( 3 )
+
+ # TODO: Possibly put this in the driver function
+ main.log.info( "Removing intents for next iteration" )
json_temp = \
- main.ONOS1cli.intents(json_format=True)
- json_obj_intents = json.loads(json_temp)
+ main.ONOS1cli.intents( json_format=True )
+ json_obj_intents = json.loads( json_temp )
if json_obj_intents:
for intents in json_obj_intents:
- temp_id = intents['id']
- main.ONOS1cli.remove_intent(temp_id)
- main.log.info("Removing intent id: "+
- str(temp_id))
- main.ONOS1cli.remove_intent(temp_id)
+ temp_id = intents[ 'id' ]
+ main.ONOS1cli.remove_intent( temp_id )
+ main.log.info( "Removing intent id: " +
+ str( temp_id ) )
+ main.ONOS1cli.remove_intent( temp_id )
else:
- main.log.info("Intents were not installed correctly")
+ main.log.info( "Intents were not installed correctly" )
- time.sleep(5)
+ time.sleep( 5 )
- intent_add_lat_avg = sum(intent_add_lat_list) /\
- len(intent_add_lat_list)
+ intent_add_lat_avg = sum( intent_add_lat_list ) /\
+ len( intent_add_lat_list )
intent_add_lat_std = \
- round(numpy.std(intent_add_lat_list),1)
- #END ITERATION FOR LOOP
- main.log.report("Single intent add latency - ")
- main.log.report("Avg: "+str(intent_add_lat_avg)+" ms")
- main.log.report("Std Deviation: "+str(intent_add_lat_std)+" ms")
+ round( numpy.std( intent_add_lat_list ), 1 )
+ # END ITERATION FOR LOOP
+ main.log.report( "Single intent add latency - " )
+ main.log.report( "Avg: " + str( intent_add_lat_avg ) + " ms" )
+ main.log.report(
+ "Std Deviation: " +
+ str( intent_add_lat_std ) +
+ " ms" )
- def CASE3(self, main):
- '''
+ def CASE3( self, main ):
+ """
Intent Reroute latency
- '''
+ """
import time
import json
import requests
import os
import numpy
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS_user = main.params['CTRL']['user']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS_user = main.params[ 'CTRL' ][ 'user' ]
- default_sw_port = main.params['CTRL']['port1']
+ default_sw_port = main.params[ 'CTRL' ][ 'port1' ]
- #number of iterations of case
- num_iter = main.params['TEST']['numIter']
- num_ignore = int(main.params['TEST']['numIgnore'])
+ # number of iterations of case
+ num_iter = main.params[ 'TEST' ][ 'numIter' ]
+ num_ignore = int( main.params[ 'TEST' ][ 'numIgnore' ] )
- #Timestamp keys for json metrics output
- submit_time = main.params['JSON']['submittedTime']
- install_time = main.params['JSON']['installedTime']
- wdRequest_time = main.params['JSON']['wdRequestTime']
- withdrawn_time = main.params['JSON']['withdrawnTime']
+ # Timestamp keys for json metrics output
+ submit_time = main.params[ 'JSON' ][ 'submittedTime' ]
+ install_time = main.params[ 'JSON' ][ 'installedTime' ]
+ wdRequest_time = main.params[ 'JSON' ][ 'wdRequestTime' ]
+ withdrawn_time = main.params[ 'JSON' ][ 'withdrawnTime' ]
devices_json_str = main.ONOS1cli.devices()
- devices_json_obj = json.loads(devices_json_str)
+ devices_json_obj = json.loads( devices_json_str )
device_id_list = []
- #Obtain device id list in ONOS format.
- #They should already be in order (1,2,3,10,11,12,13, etc)
+ # Obtain device id list in ONOS format.
+ # They should already be in order ( 1,2,3,10,11,12,13, etc )
for device in devices_json_obj:
- device_id_list.append(device['id'])
+ device_id_list.append( device[ 'id' ] )
intent_reroute_lat_list = []
- for i in range(0, int(num_iter)):
- #add_point_intent(ingr_device, ingr_port,
- # egr_device, egr_port)
- if len(device_id_list) > 0:
+ for i in range( 0, int( num_iter ) ):
+ # add_point_intent( ingr_device, ingr_port,
+ # egr_device, egr_port )
+ if len( device_id_list ) > 0:
main.ONOS1cli.add_point_intent(
- device_id_list[0]+"/2", device_id_list[4]+"/1")
+ device_id_list[ 0 ] + "/2", device_id_list[ 4 ] + "/1" )
else:
- main.log.info("Failed to fetch devices from ONOS")
+ main.log.info( "Failed to fetch devices from ONOS" )
- time.sleep(5)
+ time.sleep( 5 )
- intents_str = main.ONOS1cli.intents(json_format=True)
- intents_obj = json.loads(intents_str)
+ intents_str = main.ONOS1cli.intents( json_format=True )
+ intents_obj = json.loads( intents_str )
for intent in intents_obj:
- if intent['state'] == "INSTALLED":
- main.log.info("Intent installed successfully")
- intent_id = intent['id']
+ if intent[ 'state' ] == "INSTALLED":
+ main.log.info( "Intent installed successfully" )
+ intent_id = intent[ 'id' ]
else:
- #TODO: Add error handling
- main.log.info("Intent installation failed")
+ # TODO: Add error handling
+ main.log.info( "Intent installation failed" )
intent_id = ""
- #NOTE: this interface is specific to
+ # NOTE: this interface is specific to
# topo-intentFlower.py topology
# reroute case.
- main.log.info("Disabling interface s2-eth3")
+ main.log.info( "Disabling interface s2-eth3" )
main.Mininet1.handle.sendline(
- "sh ifconfig s2-eth3 down")
- t0_system = time.time()*1000
-
- #TODO: Check for correct intent reroute
- time.sleep(5)
+ "sh ifconfig s2-eth3 down" )
+ t0_system = time.time() * 1000
- #Obtain metrics from ONOS 1, 2, 3
+ # TODO: Check for correct intent reroute
+ time.sleep( 5 )
+
+ # Obtain metrics from ONOS 1, 2, 3
intents_json_str_1 = main.ONOS1cli.intents_events_metrics()
intents_json_str_2 = main.ONOS2cli.intents_events_metrics()
intents_json_str_3 = main.ONOS3cli.intents_events_metrics()
- intents_json_obj_1 = json.loads(intents_json_str_1)
- intents_json_obj_2 = json.loads(intents_json_str_2)
- intents_json_obj_3 = json.loads(intents_json_str_3)
+ intents_json_obj_1 = json.loads( intents_json_str_1 )
+ intents_json_obj_2 = json.loads( intents_json_str_2 )
+ intents_json_obj_3 = json.loads( intents_json_str_3 )
- #Parse values from the json object
+ # Parse values from the json object
intent_install_1 = \
- intents_json_obj_1[install_time]['value']
+ intents_json_obj_1[ install_time ][ 'value' ]
intent_install_2 = \
- intents_json_obj_2[install_time]['value']
+ intents_json_obj_2[ install_time ][ 'value' ]
intent_install_3 = \
- intents_json_obj_3[install_time]['value']
+ intents_json_obj_3[ install_time ][ 'value' ]
intent_reroute_lat_1 = \
- int(intent_install_1) - int(t0_system)
+ int( intent_install_1 ) - int( t0_system )
intent_reroute_lat_2 = \
- int(intent_install_2) - int(t0_system)
+ int( intent_install_2 ) - int( t0_system )
intent_reroute_lat_3 = \
- int(intent_install_3) - int(t0_system)
-
+ int( intent_install_3 ) - int( t0_system )
+
intent_reroute_lat_avg = \
- (intent_reroute_lat_1 +
- intent_reroute_lat_2 +
- intent_reroute_lat_3 ) / 3
-
- main.log.info("Intent reroute latency avg for iteration "+
- str(i)+": "+str(intent_reroute_lat_avg))
+ ( intent_reroute_lat_1 +
+ intent_reroute_lat_2 +
+ intent_reroute_lat_3 ) / 3
+
+ main.log.info( "Intent reroute latency avg for iteration " +
+ str( i ) + ": " + str( intent_reroute_lat_avg ) )
if intent_reroute_lat_avg > 0.0 and \
intent_reroute_lat_avg < 1000 and i > num_ignore:
- intent_reroute_lat_list.append(intent_reroute_lat_avg)
+ intent_reroute_lat_list.append( intent_reroute_lat_avg )
else:
- main.log.info("Intent reroute latency exceeded "+
- "threshold. Skipping iteration "+str(i))
+ main.log.info( "Intent reroute latency exceeded " +
+ "threshold. Skipping iteration " + str( i ) )
- main.log.info("Removing intents for next iteration")
- main.ONOS1cli.remove_intent(intent_id)
-
- main.log.info("Bringing Mininet interface up for next "+
- "iteration")
+ main.log.info( "Removing intents for next iteration" )
+ main.ONOS1cli.remove_intent( intent_id )
+
+ main.log.info( "Bringing Mininet interface up for next " +
+ "iteration" )
main.Mininet1.handle.sendline(
- "sh ifconfig s2-eth3 up")
-
- intent_reroute_lat_avg = sum(intent_reroute_lat_list) /\
- len(intent_reroute_lat_list)
+ "sh ifconfig s2-eth3 up" )
+
+ intent_reroute_lat_avg = sum( intent_reroute_lat_list ) /\
+ len( intent_reroute_lat_list )
intent_reroute_lat_std = \
- round(numpy.std(intent_reroute_lat_list),1)
- #END ITERATION FOR LOOP
- main.log.report("Single intent reroute latency - ")
- main.log.report("Avg: "+str(intent_reroute_lat_avg)+" ms")
- main.log.report("Std Deviation: "+str(intent_reroute_lat_std)+" ms")
-
- def CASE7(self, main):
- '''
+ round( numpy.std( intent_reroute_lat_list ), 1 )
+ # END ITERATION FOR LOOP
+ main.log.report( "Single intent reroute latency - " )
+ main.log.report( "Avg: " + str( intent_reroute_lat_avg ) + " ms" )
+ main.log.report(
+ "Std Deviation: " +
+ str( intent_reroute_lat_std ) +
+ " ms" )
+
+ def CASE7( self, main ):
+ """
Batch intent reroute latency
- '''
+ """
import time
import json
import requests
@@ -381,440 +388,445 @@
import numpy
ONOS_ip_list = []
- for i in range(1, 8):
- ONOS_ip_list.append(main.params['CTRL']['ip'+str(i)])
+ for i in range( 1, 8 ):
+ ONOS_ip_list.append( main.params[ 'CTRL' ][ 'ip' + str( i ) ] )
- ONOS_user = main.params['CTRL']['user']
- default_sw_port = main.params['CTRL']['port1']
-
- batch_intent_size = main.params['TEST']['batchIntentSize']
- batch_thresh_min = int(main.params['TEST']['batchThresholdMin'])
- batch_thresh_max = int(main.params['TEST']['batchThresholdMax'])
- install_time = main.params['JSON']['installedTime']
+ ONOS_user = main.params[ 'CTRL' ][ 'user' ]
+ default_sw_port = main.params[ 'CTRL' ][ 'port1' ]
- #number of iterations of case
- num_iter = main.params['TEST']['numIter']
- num_ignore = int(main.params['TEST']['numIgnore'])
- num_switch = int(main.params['TEST']['numSwitch'])
- n_thread = main.params['TEST']['numMult']
+ batch_intent_size = main.params[ 'TEST' ][ 'batchIntentSize' ]
+ batch_thresh_min = int( main.params[ 'TEST' ][ 'batchThresholdMin' ] )
+ batch_thresh_max = int( main.params[ 'TEST' ][ 'batchThresholdMax' ] )
+ install_time = main.params[ 'JSON' ][ 'installedTime' ]
- main.log.report("Batch intent installation test of "+
- batch_intent_size +" intents")
+ # number of iterations of case
+ num_iter = main.params[ 'TEST' ][ 'numIter' ]
+ num_ignore = int( main.params[ 'TEST' ][ 'numIgnore' ] )
+ num_switch = int( main.params[ 'TEST' ][ 'numSwitch' ] )
+ n_thread = main.params[ 'TEST' ][ 'numMult' ]
+
+ main.log.report( "Batch intent installation test of " +
+ batch_intent_size + " intents" )
batch_result_list = []
- #Assign 'linear' switch format for basic intent testing
+ # Assign 'linear' switch format for basic intent testing
main.Mininet1.assign_sw_controller(
- sw="1", ip1=ONOS1_ip,port1=default_sw_port)
+ sw="1", ip1=ONOS1_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="2", ip1=ONOS2_ip,port1=default_sw_port)
+ sw="2", ip1=ONOS2_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="3", ip1=ONOS2_ip,port1=default_sw_port)
+ sw="3", ip1=ONOS2_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="4", ip1=ONOS2_ip,port1=default_sw_port)
+ sw="4", ip1=ONOS2_ip, port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="5", ip1=ONOS3_ip,port1=default_sw_port)
+ sw="5", ip1=ONOS3_ip, port1=default_sw_port )
- time.sleep(10)
+ time.sleep( 10 )
- main.log.info("Getting list of available devices")
+ main.log.info( "Getting list of available devices" )
device_id_list = []
json_str = main.ONOS1cli.devices()
- json_obj = json.loads(json_str)
+ json_obj = json.loads( json_str )
for device in json_obj:
- device_id_list.append(device['id'])
+ device_id_list.append( device[ 'id' ] )
batch_install_lat = []
batch_withdraw_lat = []
sleep_time = 10
-
+
base_dir = "/tmp/"
max_install_lat = []
- for i in range(0, int(num_iter)):
- main.log.info("Pushing "+
- str(int(batch_intent_size)*int(n_thread))+
- " intents. Iteration "+str(i))
-
+ for i in range( 0, int( num_iter ) ):
+ main.log.info( "Pushing " +
+ str( int( batch_intent_size ) * int( n_thread ) ) +
+ " intents. Iteration " + str( i ) )
+
main.ONOS1cli.push_test_intents(
"of:0000000000000001/1",
"of:0000000000000005/1",
- 1000, num_mult="1", app_id="1")
-
- #TODO: Check for installation success then proceed
- time.sleep(30)
-
- #NOTE: this interface is specific to
+ 1000, num_mult="1", app_id="1" )
+
+ # TODO: Check for installation success then proceed
+ time.sleep( 30 )
+
+ # NOTE: this interface is specific to
# topo-intentFlower.py topology
# reroute case.
- main.log.info("Disabling interface s2-eth3")
+ main.log.info( "Disabling interface s2-eth3" )
main.Mininet1.handle.sendline(
- "sh ifconfig s2-eth3 down")
- t0_system = time.time()*1000
+ "sh ifconfig s2-eth3 down" )
+ t0_system = time.time() * 1000
- #TODO: Wait sufficient time for intents to install
- time.sleep(10)
+ # TODO: Wait sufficient time for intents to install
+ time.sleep( 10 )
- #TODO: get intent installation time
-
- #Obtain metrics from ONOS 1, 2, 3
+ # TODO: get intent installation time
+
+ # Obtain metrics from ONOS 1, 2, 3
intents_json_str_1 = main.ONOS1cli.intents_events_metrics()
intents_json_str_2 = main.ONOS2cli.intents_events_metrics()
intents_json_str_3 = main.ONOS3cli.intents_events_metrics()
- intents_json_obj_1 = json.loads(intents_json_str_1)
- intents_json_obj_2 = json.loads(intents_json_str_2)
- intents_json_obj_3 = json.loads(intents_json_str_3)
+ intents_json_obj_1 = json.loads( intents_json_str_1 )
+ intents_json_obj_2 = json.loads( intents_json_str_2 )
+ intents_json_obj_3 = json.loads( intents_json_str_3 )
- #Parse values from the json object
+ # Parse values from the json object
intent_install_1 = \
- intents_json_obj_1[install_time]['value']
+ intents_json_obj_1[ install_time ][ 'value' ]
intent_install_2 = \
- intents_json_obj_2[install_time]['value']
+ intents_json_obj_2[ install_time ][ 'value' ]
intent_install_3 = \
- intents_json_obj_3[install_time]['value']
+ intents_json_obj_3[ install_time ][ 'value' ]
intent_reroute_lat_1 = \
- int(intent_install_1) - int(t0_system)
+ int( intent_install_1 ) - int( t0_system )
intent_reroute_lat_2 = \
- int(intent_install_2) - int(t0_system)
+ int( intent_install_2 ) - int( t0_system )
intent_reroute_lat_3 = \
- int(intent_install_3) - int(t0_system)
-
+ int( intent_install_3 ) - int( t0_system )
+
intent_reroute_lat_avg = \
- (intent_reroute_lat_1 +
- intent_reroute_lat_2 +
- intent_reroute_lat_3 ) / 3
-
- main.log.info("Intent reroute latency avg for iteration "+
- str(i)+": "+str(intent_reroute_lat_avg))
- #TODO: Remove intents for next iteration
-
- time.sleep(5)
+ ( intent_reroute_lat_1 +
+ intent_reroute_lat_2 +
+ intent_reroute_lat_3 ) / 3
+
+ main.log.info( "Intent reroute latency avg for iteration " +
+ str( i ) + ": " + str( intent_reroute_lat_avg ) )
+ # TODO: Remove intents for next iteration
+
+ time.sleep( 5 )
intents_str = main.ONOS1cli.intents()
- intents_json = json.loads(intents_str)
+ intents_json = json.loads( intents_str )
for intents in intents_json:
- intent_id = intents['id']
+ intent_id = intents[ 'id' ]
if intent_id:
- main.ONOS1cli.remove_intent(intent_id)
+ main.ONOS1cli.remove_intent( intent_id )
main.Mininet1.handle.sendline(
- "sh ifconfig s2-eth3 up")
-
- main.log.info("Intents removed and port back up")
+ "sh ifconfig s2-eth3 up" )
+ main.log.info( "Intents removed and port back up" )
- def CASE4(self, main):
- '''
+ def CASE4( self, main ):
+ """
Batch intent install
- '''
-
+ """
import time
import json
import requests
import os
import numpy
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS4_ip = main.params['CTRL']['ip4']
- ONOS5_ip = main.params['CTRL']['ip5']
- ONOS6_ip = main.params['CTRL']['ip6']
- ONOS7_ip = main.params['CTRL']['ip7']
-
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS4_ip = main.params[ 'CTRL' ][ 'ip4' ]
+ ONOS5_ip = main.params[ 'CTRL' ][ 'ip5' ]
+ ONOS6_ip = main.params[ 'CTRL' ][ 'ip6' ]
+ ONOS7_ip = main.params[ 'CTRL' ][ 'ip7' ]
+
ONOS_ip_list = []
- for i in range(1, 8):
- ONOS_ip_list.append(main.params['CTRL']['ip'+str(i)])
+ for i in range( 1, 8 ):
+ ONOS_ip_list.append( main.params[ 'CTRL' ][ 'ip' + str( i ) ] )
- ONOS_user = main.params['CTRL']['user']
+ ONOS_user = main.params[ 'CTRL' ][ 'user' ]
- default_sw_port = main.params['CTRL']['port1']
-
- batch_intent_size = main.params['TEST']['batchIntentSize']
- batch_thresh_min = int(main.params['TEST']['batchThresholdMin'])
- batch_thresh_max = int(main.params['TEST']['batchThresholdMax'])
+ default_sw_port = main.params[ 'CTRL' ][ 'port1' ]
- #number of iterations of case
- num_iter = main.params['TEST']['numIter']
- num_ignore = int(main.params['TEST']['numIgnore'])
- num_switch = int(main.params['TEST']['numSwitch'])
- n_thread = main.params['TEST']['numMult']
+ batch_intent_size = main.params[ 'TEST' ][ 'batchIntentSize' ]
+ batch_thresh_min = int( main.params[ 'TEST' ][ 'batchThresholdMin' ] )
+ batch_thresh_max = int( main.params[ 'TEST' ][ 'batchThresholdMax' ] )
+
+ # number of iterations of case
+ num_iter = main.params[ 'TEST' ][ 'numIter' ]
+ num_ignore = int( main.params[ 'TEST' ][ 'numIgnore' ] )
+ num_switch = int( main.params[ 'TEST' ][ 'numSwitch' ] )
+ n_thread = main.params[ 'TEST' ][ 'numMult' ]
#n_thread = 105
#*****
global cluster_count
#*****
-
- #Switch assignment NOTE: hardcoded
+
+ # Switch assignment NOTE: hardcoded
if cluster_count == 1:
- for i in range(1, num_switch+1):
+ for i in range( 1, num_switch + 1 ):
main.Mininet1.assign_sw_controller(
- sw=str(i),
+ sw=str( i ),
ip1=ONOS1_ip,
- port1=default_sw_port)
+ port1=default_sw_port )
if cluster_count == 3:
- for i in range(1, 3):
+ for i in range( 1, 3 ):
main.Mininet1.assign_sw_controller(
- sw=str(i),
+ sw=str( i ),
ip1=ONOS1_ip,
- port1=default_sw_port)
- for i in range(3, 6):
+ port1=default_sw_port )
+ for i in range( 3, 6 ):
main.Mininet1.assign_sw_controller(
- sw=str(i),
+ sw=str( i ),
ip1=ONOS2_ip,
- port1=default_sw_port)
- for i in range(6, 9):
+ port1=default_sw_port )
+ for i in range( 6, 9 ):
main.Mininet1.assign_sw_controller(
- sw=str(i),
+ sw=str( i ),
ip1=ONOS3_ip,
- port1=default_sw_port)
+ port1=default_sw_port )
if cluster_count == 5:
main.Mininet1.assign_sw_controller(
- sw="1",
- ip1=ONOS1_ip,
- port1=default_sw_port)
+ sw="1",
+ ip1=ONOS1_ip,
+ port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="2",
- ip1=ONOS2_ip,
- port1=default_sw_port)
- for i in range(3, 6):
+ sw="2",
+ ip1=ONOS2_ip,
+ port1=default_sw_port )
+ for i in range( 3, 6 ):
main.Mininet1.assign_sw_controller(
- sw=str(i),
+ sw=str( i ),
ip1=ONOS3_ip,
- port1=default_sw_port)
+ port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="6",
- ip1=ONOS4_ip,
- port1=default_sw_port)
+ sw="6",
+ ip1=ONOS4_ip,
+ port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="7",
- ip1=ONOS5_ip,
- port1=default_sw_port)
+ sw="7",
+ ip1=ONOS5_ip,
+ port1=default_sw_port )
main.Mininet1.assign_sw_controller(
- sw="8",
- ip1=ONOS5_ip,
- port1=default_sw_port)
-
+ sw="8",
+ ip1=ONOS5_ip,
+ port1=default_sw_port )
+
if cluster_count == 7:
- for i in range(1,9):
+ for i in range( 1, 9 ):
if i < 8:
main.Mininet1.assign_sw_controller(
- sw=str(i),
- ip1=ONOS_ip_list[i-1],
- port1=default_sw_port)
- elif i >= 8:
+ sw=str( i ),
+ ip1=ONOS_ip_list[ i - 1 ],
+ port1=default_sw_port )
+ elif i >= 8:
main.Mininet1.assign_sw_controller(
- sw=str(i),
- ip1=ONOS_ip_list[6],
- port1=default_sw_port)
+ sw=str( i ),
+ ip1=ONOS_ip_list[ 6 ],
+ port1=default_sw_port )
- time.sleep(30)
+ time.sleep( 30 )
- main.log.report("Batch intent installation test of "+
- batch_intent_size +" intents")
+ main.log.report( "Batch intent installation test of " +
+ batch_intent_size + " intents" )
batch_result_list = []
- main.log.info("Getting list of available devices")
+ main.log.info( "Getting list of available devices" )
device_id_list = []
json_str = main.ONOS1cli.devices()
- json_obj = json.loads(json_str)
+ json_obj = json.loads( json_str )
for device in json_obj:
- device_id_list.append(device['id'])
+ device_id_list.append( device[ 'id' ] )
batch_install_lat = []
batch_withdraw_lat = []
sleep_time = 10
-
+
base_dir = "/tmp/"
max_install_lat = []
- for i in range(0, int(num_iter)):
- main.log.info("Pushing "+
- str(int(batch_intent_size)*int(n_thread))+
- " intents. Iteration "+str(i))
-
- for node in range(1, cluster_count+1):
- save_dir = base_dir + "batch_intent_"+str(node)+".txt"
+ for i in range( 0, int( num_iter ) ):
+ main.log.info( "Pushing " +
+ str( int( batch_intent_size ) * int( n_thread ) ) +
+ " intents. Iteration " + str( i ) )
+
+ for node in range( 1, cluster_count + 1 ):
+ save_dir = base_dir + "batch_intent_" + str( node ) + ".txt"
main.ONOSbench.push_test_intents_shell(
- "of:0000000000000001/"+str(node),
- "of:0000000000000008/"+str(node),
- int(batch_intent_size),
- save_dir, ONOS_ip_list[node-1],
- num_mult=n_thread, app_id=node)
-
- #Wait sufficient time for intents to start
- #installing
-
- time.sleep(sleep_time)
- print sleep_time
+ "of:0000000000000001/" + str( node ),
+ "of:0000000000000008/" + str( node ),
+ int( batch_intent_size ),
+ save_dir, ONOS_ip_list[ node - 1 ],
+ num_mult=n_thread, app_id=node )
+
+ # Wait sufficient time for intents to start
+ # installing
+
+ time.sleep( sleep_time )
+ print sleep_time
intent = ""
counter = 300
- while len(intent) > 0 and counter > 0:
+ while len( intent ) > 0 and counter > 0:
main.ONOS1cli.handle.sendline(
- "intents | wc -l")
+ "intents | wc -l" )
main.ONOS1cli.handle.expect(
- "intents | wc -l")
+ "intents | wc -l" )
main.ONOS1cli.handle.expect(
- "onos>")
+ "onos>" )
intent_temp = main.ONOS1cli.handle.before()
print intent_temp
intent = main.ONOS1cli.intents()
- intent = json.loads(intent)
- counter = counter-1
- time.sleep(1)
+ intent = json.loads( intent )
+ counter = counter - 1
+ time.sleep( 1 )
- time.sleep(5)
+ time.sleep( 5 )
- for node in range(1, cluster_count+1):
- save_dir = base_dir + "batch_intent_"+str(node)+".txt"
- with open(save_dir) as f_onos:
+ for node in range( 1, cluster_count + 1 ):
+ save_dir = base_dir + "batch_intent_" + str( node ) + ".txt"
+ with open( save_dir ) as f_onos:
line_count = 0
for line in f_onos:
- line = line[1:]
- line = line.split(": ")
- result = line[1].split(" ")[0]
- #TODO: add parameters before appending latency
+ line = line[ 1: ]
+ line = line.split( ": " )
+ result = line[ 1 ].split( " " )[ 0 ]
+ # TODO: add parameters before appending latency
if line_count == 0:
- batch_install_lat.append(int(result))
+ batch_install_lat.append( int( result ) )
elif line_count == 1:
- batch_withdraw_lat.append(int(result))
+ batch_withdraw_lat.append( int( result ) )
line_count += 1
- main.log.info("Batch install latency for ONOS"+
- str(node)+" with "+\
- str(batch_intent_size) + "intents: "+\
- str(batch_install_lat))
-
- if len(batch_install_lat) > 0 and int(i) > num_ignore:
- max_install_lat.append(max(batch_install_lat))
- elif len(batch_install_lat) == 0:
- #If I failed to read anything from the file,
- #increase the wait time before checking intents
+ main.log.info( "Batch install latency for ONOS" +
+ str( node ) + " with " +
+ str( batch_intent_size ) + "intents: " +
+ str( batch_install_lat ) )
+
+ if len( batch_install_lat ) > 0 and int( i ) > num_ignore:
+ max_install_lat.append( max( batch_install_lat ) )
+ elif len( batch_install_lat ) == 0:
+ # If I failed to read anything from the file,
+ # increase the wait time before checking intents
sleep_time += 30
batch_install_lat = []
- #Sleep in between iterations
- time.sleep(5)
+ # Sleep in between iterations
+ time.sleep( 5 )
- main.log.report("Avg of batch installation latency "+
- ": "+
- str(sum(max_install_lat) / len(max_install_lat)))
- main.log.report("Std Deviation of batch installation latency "+
- ": "+
- str(numpy.std(max_install_lat)))
+ main.log.report( "Avg of batch installation latency " +
+ ": " +
+ str( sum( max_install_lat ) /
+ len( max_install_lat ) ) )
+ main.log.report( "Std Deviation of batch installation latency " +
+ ": " +
+ str( numpy.std( max_install_lat ) ) )
- def CASE5(self,main):
- '''
+ def CASE5( self, main ):
+ """
Increase number of nodes and initiate CLI
- '''
+ """
import time
import json
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS4_ip = main.params['CTRL']['ip4']
- ONOS5_ip = main.params['CTRL']['ip5']
- ONOS6_ip = main.params['CTRL']['ip6']
- ONOS7_ip = main.params['CTRL']['ip7']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS4_ip = main.params[ 'CTRL' ][ 'ip4' ]
+ ONOS5_ip = main.params[ 'CTRL' ][ 'ip5' ]
+ ONOS6_ip = main.params[ 'CTRL' ][ 'ip6' ]
+ ONOS7_ip = main.params[ 'CTRL' ][ 'ip7' ]
global cluster_count
cluster_count += 2
- main.log.report("Increasing cluster size to "+
- str(cluster_count))
+ main.log.report( "Increasing cluster size to " +
+ str( cluster_count ) )
install_result = main.FALSE
if cluster_count == 3:
install_result1 = \
- main.ONOSbench.onos_install(node=ONOS2_ip)
+ main.ONOSbench.onos_install( node=ONOS2_ip )
install_result2 = \
- main.ONOSbench.onos_install(node=ONOS3_ip)
- time.sleep(5)
+ main.ONOSbench.onos_install( node=ONOS3_ip )
+ time.sleep( 5 )
- main.log.info("Starting ONOS CLI")
- main.ONOS2cli.start_onos_cli(ONOS2_ip)
- main.ONOS3cli.start_onos_cli(ONOS3_ip)
+ main.log.info( "Starting ONOS CLI" )
+ main.ONOS2cli.start_onos_cli( ONOS2_ip )
+ main.ONOS3cli.start_onos_cli( ONOS3_ip )
install_result = install_result1 and install_result2
if cluster_count == 5:
- main.log.info("Installing ONOS on node 4 and 5")
+ main.log.info( "Installing ONOS on node 4 and 5" )
install_result1 = \
- main.ONOSbench.onos_install(node=ONOS4_ip)
+ main.ONOSbench.onos_install( node=ONOS4_ip )
install_result2 = \
- main.ONOSbench.onos_install(node=ONOS5_ip)
+ main.ONOSbench.onos_install( node=ONOS5_ip )
- main.log.info("Starting ONOS CLI")
- main.ONOS4cli.start_onos_cli(ONOS4_ip)
- main.ONOS5cli.start_onos_cli(ONOS5_ip)
+ main.log.info( "Starting ONOS CLI" )
+ main.ONOS4cli.start_onos_cli( ONOS4_ip )
+ main.ONOS5cli.start_onos_cli( ONOS5_ip )
install_result = install_result1 and install_result2
if cluster_count == 7:
- main.log.info("Installing ONOS on node 6 and 7")
+ main.log.info( "Installing ONOS on node 6 and 7" )
install_result1 = \
- main.ONOSbench.onos_install(node=ONOS6_ip)
+ main.ONOSbench.onos_install( node=ONOS6_ip )
install_result2 = \
- main.ONOSbench.onos_install(node=ONOS7_ip)
+ main.ONOSbench.onos_install( node=ONOS7_ip )
- main.log.info("Starting ONOS CLI")
- main.ONOS6cli.start_onos_cli(ONOS6_ip)
- main.ONOS7cli.start_onos_cli(ONOS7_ip)
+ main.log.info( "Starting ONOS CLI" )
+ main.ONOS6cli.start_onos_cli( ONOS6_ip )
+ main.ONOS7cli.start_onos_cli( ONOS7_ip )
install_result = install_result1 and install_result2
- time.sleep(5)
+ time.sleep( 5 )
if install_result == main.TRUE:
assertion = main.TRUE
else:
assertion = main.FALSE
- utilities.assert_equals(expect=main.TRUE, actual=assertion,
- onpass="Scale out to "+str(cluster_count)+\
- " nodes successful",
- onfail="Scale out to "+str(cluster_count)+\
- " nodes failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=assertion,
+ onpass="Scale out to " +
+ str( cluster_count ) +
+ " nodes successful",
+ onfail="Scale out to " +
+ str( cluster_count ) +
+ " nodes failed" )
- def CASE9(self, main):
+ def CASE9( self, main ):
count = 0
- sw_num1 = 1
+ sw_num1 = 1
sw_num2 = 1
appid = 0
port_num1 = 1
port_num2 = 1
-
- time.sleep(30)
+
+ time.sleep( 30 )
while True:
- #main.ONOS1cli.push_test_intents(
+ # main.ONOS1cli.push_test_intents(
#"of:0000000000001001/1",
#"of:0000000000002001/1",
- # 100, num_mult="10", app_id="1")
- #main.ONOS2cli.push_test_intents(
+ # 100, num_mult="10", app_id="1" )
+ # main.ONOS2cli.push_test_intents(
# "of:0000000000001002/1",
# "of:0000000000002002/1",
- # 100, num_mult="10", app_id="2")
- #main.ONOS2cli.push_test_intents(
+ # 100, num_mult="10", app_id="2" )
+ # main.ONOS2cli.push_test_intents(
# "of:0000000000001003/1",
# "of:0000000000002003/1",
- # 100, num_mult="10", app_id="3")
+ # 100, num_mult="10", app_id="3" )
count += 1
-
+
if count >= 100:
main.ONOSbench.handle.sendline(
- "onos 10.128.174.1 intents-events-metrics >>"+\
- " /tmp/metrics_intents_temp.txt &")
+ "onos 10.128.174.1 intents-events-metrics >>" +
+ " /tmp/metrics_intents_temp.txt &" )
count = 0
- arg1 = "of:000000000000100"+str(sw_num1)+"/"+str(port_num1)
- arg2 = "of:000000000000200"+str(sw_num2)+"/"+str(port_num2)
-
+ arg1 = "of:000000000000100" + \
+ str( sw_num1 ) + "/" + str( port_num1 )
+ arg2 = "of:000000000000200" + \
+ str( sw_num2 ) + "/" + str( port_num2 )
+
sw_num1 += 1
if sw_num1 > 7:
@@ -825,22 +837,21 @@
if sw_num2 > 7:
sw_num2 = 1
-
+
main.ONOSbench.push_test_intents_shell(
arg1,
- arg2,
+ arg2,
100, "/tmp/temp.txt", "10.128.174.1",
- num_mult="10", app_id=appid,report=False)
- #main.ONOSbench.push_test_intents_shell(
+ num_mult="10", app_id=appid, report=False )
+ # main.ONOSbench.push_test_intents_shell(
# "of:0000000000001002/1",
# "of:0000000000002002/1",
# 133, "/tmp/temp2.txt", "10.128.174.2",
- # num_mult="6", app_id="2",report=False)
- #main.ONOSbench.push_test_intents_shell(
+ # num_mult="6", app_id="2",report=False )
+ # main.ONOSbench.push_test_intents_shell(
# "of:0000000000001003/1",
# "of:0000000000002003/1",
# 133, "/tmp/temp3.txt", "10.128.174.3",
- # num_mult="6", app_id="3",report=False)
-
- time.sleep(0.2)
+ # num_mult="6", app_id="3",report=False )
+ time.sleep( 0.2 )
diff --git a/TestON/tests/LincOETest/LincOETest.py b/TestON/tests/LincOETest/LincOETest.py
old mode 100755
new mode 100644
index bb52ca8..6c59c5b
--- a/TestON/tests/LincOETest/LincOETest.py
+++ b/TestON/tests/LincOETest/LincOETest.py
@@ -1,8 +1,8 @@
-#LincOETest
+# LincOETest
#
-#Packet-Optical Intent Testing
+# Packet-Optical Intent Testing
#
-#andrew@onlab.us
+# andrew@onlab.us
import time
@@ -10,12 +10,14 @@
import os
import re
+
class LincOETest:
- def __init__(self):
+
+ def __init__( self ):
self.default = ''
- def CASE1(self, main):
- '''
+ def CASE1( self, main ):
+ """
Startup sequence:
git pull
mvn clean install
@@ -24,91 +26,93 @@
onos-verify-cell
onos-install -f
onos-wait-for-start
- '''
+ """
import time
- cell_name = main.params['ENV']['cellName']
+ cell_name = main.params[ 'ENV' ][ 'cellName' ]
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS1_port = main.params['CTRL']['port1']
-
- git_pull_trigger = main.params['GIT']['autoPull']
- git_checkout_branch = main.params['GIT']['checkout']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS1_port = main.params[ 'CTRL' ][ 'port1' ]
- main.case("Setting up test environment")
-
- main.step("Creating cell file")
- #params: (bench ip, cell name, mininet ip, *onos ips)
+ git_pull_trigger = main.params[ 'GIT' ][ 'autoPull' ]
+ git_checkout_branch = main.params[ 'GIT' ][ 'checkout' ]
+
+ main.case( "Setting up test environment" )
+
+ main.step( "Creating cell file" )
+ # params: ( bench ip, cell name, mininet ip, *onos ips )
cell_file_result = main.ONOSbench.create_cell_file(
- "10.128.20.10", cell_name, "10.128.10.90",
- "onos-core-trivial,onos-app-fwd",
- "10.128.174.1")
+ "10.128.20.10", cell_name, "10.128.10.90",
+ "onos-core-trivial,onos-app-fwd",
+ "10.128.174.1" )
- main.step("Applying cell variable to environment")
- #cell_result = main.ONOSbench.set_cell(cell_name)
- cell_result = main.ONOSbench.set_cell("temp_cell_2")
+ main.step( "Applying cell variable to environment" )
+ #cell_result = main.ONOSbench.set_cell( cell_name )
+ cell_result = main.ONOSbench.set_cell( "temp_cell_2" )
verify_result = main.ONOSbench.verify_cell()
-
+
if git_pull_trigger == 'on':
- main.step("Git checkout and pull master")
- main.ONOSbench.git_checkout(git_checkout_branch)
+ main.step( "Git checkout and pull master" )
+ main.ONOSbench.git_checkout( git_checkout_branch )
git_pull_result = main.ONOSbench.git_pull()
else:
- main.log.info("Git checkout and pull skipped by config")
+ main.log.info( "Git checkout and pull skipped by config" )
git_pull_result = main.TRUE
- main.step("Using mvn clean & install")
+ main.step( "Using mvn clean & install" )
#clean_install_result = main.ONOSbench.clean_install()
clean_install_result = main.TRUE
- main.step("Creating ONOS package")
+ main.step( "Creating ONOS package" )
package_result = main.ONOSbench.onos_package()
- main.step("Installing ONOS package")
+ main.step( "Installing ONOS package" )
onos_install_result = main.ONOSbench.onos_install()
onos1_isup = main.ONOSbench.isup()
-
- main.step("Starting ONOS service")
- start_result = main.ONOSbench.onos_start(ONOS1_ip)
- main.step("Setting cell for ONOScli")
- main.ONOScli.set_cell(cell_name)
+ main.step( "Starting ONOS service" )
+ start_result = main.ONOSbench.onos_start( ONOS1_ip )
- main.step("Starting ONOScli")
- main.ONOScli.start_onos_cli(ONOS1_ip)
+ main.step( "Setting cell for ONOScli" )
+ main.ONOScli.set_cell( cell_name )
- case1_result = (clean_install_result and package_result and\
- cell_result and verify_result and onos_install_result and\
- onos1_isup and start_result )
- utilities.assert_equals(expect=main.TRUE, actual=case1_result,
- onpass="Test startup successful",
- onfail="Test startup NOT successful")
+ main.step( "Starting ONOScli" )
+ main.ONOScli.start_onos_cli( ONOS1_ip )
- time.sleep(10)
+ case1_result = ( clean_install_result and package_result and
+ cell_result and verify_result and onos_install_result and
+ onos1_isup and start_result )
+ utilities.assert_equals( expect=main.TRUE, actual=case1_result,
+ onpass="Test startup successful",
+ onfail="Test startup NOT successful" )
- def CASE2(self, main):
- '''
+ time.sleep( 10 )
+
+ def CASE2( self, main ):
+ """
Configure topology
- '''
+ """
import time
- ONOS1_ip = main.params['CTRL']['ip1']
- default_sw_port = main.params['CTRL']['port1']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ default_sw_port = main.params[ 'CTRL' ][ 'port1' ]
- #Assign packet level switches to controller
- main.Mininet1.assign_sw_controller(sw="1",
- ip1=ONOS1_ip, port1=default_sw_port)
- main.Mininet1.assign_sw_controller(sw="2",
- ip1=ONOS1_ip, port1=default_sw_port)
+ # Assign packet level switches to controller
+ main.Mininet1.assign_sw_controller(
+ sw="1",
+ ip1=ONOS1_ip,
+ port1=default_sw_port )
+ main.Mininet1.assign_sw_controller(
+ sw="2",
+ ip1=ONOS1_ip,
+ port1=default_sw_port )
- #Check devices in controller
- #This should include Linc-OE devices as well
+ # Check devices in controller
+ # This should include Linc-OE devices as well
devices = main.ONOScli.devices()
- main.log.info(devices)
+ main.log.info( devices )
- def CASE3(self, main):
- '''
+ def CASE3( self, main ):
+ """
Install multi-layer intents
- '''
-
-
+ """
diff --git a/TestON/tests/LincOETest/LincOETest.topo b/TestON/tests/LincOETest/LincOETest.topo
index 221256e..9881845 100755
--- a/TestON/tests/LincOETest/LincOETest.topo
+++ b/TestON/tests/LincOETest/LincOETest.topo
@@ -11,7 +11,7 @@
</ONOSbench>
<ONOScli>
- <host>10.128.20.10</host>
+ <host>10.128.20.10<</host>
<user>admin</user>
<password>onos_test</password>
<type>OnosCliDriver</type>
@@ -20,7 +20,7 @@
</ONOScli>
<ONOS1>
- <host>10.128.174.1</host>
+ <host>10.128.174.1<</host>
<user>sdn</user>
<password>rocks</password>
<type>OnosDriver</type>
diff --git a/TestON/tests/MultiProd/MultiProd.py b/TestON/tests/MultiProd/MultiProd.py
old mode 100755
new mode 100644
index dda3ad4..6b67f63
--- a/TestON/tests/MultiProd/MultiProd.py
+++ b/TestON/tests/MultiProd/MultiProd.py
@@ -1,6 +1,6 @@
-#Testing the basic functionality of ONOS Next
-#For sanity and driver functionality excercises only.
+# Testing the basic functionality of ONOS Next
+# For sanity and driver functionality excercises only.
import time
import sys
@@ -9,527 +9,648 @@
import time
import json
-time.sleep(1)
+time.sleep( 1 )
+
+
class MultiProd:
- def __init__(self):
+
+ def __init__( self ):
self.default = ''
- def CASE1(self, main):
- '''
+ def CASE1( self, main ):
+ """
Startup sequence:
cell <name>
onos-verify-cell
- onos-remove-raft-logs
+ onos-remove-raft-logs
git pull
mvn clean install
onos-package
onos-install -f
onos-wait-for-start
- '''
-
- cell_name = main.params['ENV']['cellName']
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS1_port = main.params['CTRL']['port1']
- ONOS2_port = main.params['CTRL']['port2']
- ONOS3_port = main.params['CTRL']['port3']
-
- main.case("Setting up test environment")
- main.log.report("This testcase is testing setting up test environment")
- main.log.report("__________________________________")
-
- main.step("Applying cell variable to environment")
- cell_result1 = main.ONOSbench.set_cell(cell_name)
- #cell_result2 = main.ONOScli1.set_cell(cell_name)
- #cell_result3 = main.ONOScli2.set_cell(cell_name)
- #cell_result4 = main.ONOScli3.set_cell(cell_name)
- verify_result = main.ONOSbench.verify_cell()
+ """
+ cell_name = main.params[ 'ENV' ][ 'cellName' ]
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS1_port = main.params[ 'CTRL' ][ 'port1' ]
+ ONOS2_port = main.params[ 'CTRL' ][ 'port2' ]
+ ONOS3_port = main.params[ 'CTRL' ][ 'port3' ]
+
+ main.case( "Setting up test environment" )
+ main.log.report(
+ "This testcase is testing setting up test environment" )
+ main.log.report( "__________________________________" )
+
+ main.step( "Applying cell variable to environment" )
+ cell_result1 = main.ONOSbench.set_cell( cell_name )
+ #cell_result2 = main.ONOScli1.set_cell( cell_name )
+ #cell_result3 = main.ONOScli2.set_cell( cell_name )
+ #cell_result4 = main.ONOScli3.set_cell( cell_name )
+ verify_result = main.ONOSbench.verify_cell()
cell_result = cell_result1
- main.step("Removing raft logs before a clen installation of ONOS")
- remove_log_Result = main.ONOSbench.onos_remove_raft_logs()
+ main.step( "Removing raft logs before a clen installation of ONOS" )
+ remove_log_Result = main.ONOSbench.onos_remove_raft_logs()
- main.step("Git checkout and pull master and get version")
- main.ONOSbench.git_checkout("master")
+ main.step( "Git checkout and pull master and get version" )
+ main.ONOSbench.git_checkout( "master" )
git_pull_result = main.ONOSbench.git_pull()
print "git_pull_result = ", git_pull_result
- version_result = main.ONOSbench.get_version(report=True)
+ version_result = main.ONOSbench.get_version( report=True )
if git_pull_result == 1:
- main.step("Using mvn clean & install")
+ main.step( "Using mvn clean & install" )
clean_install_result = main.ONOSbench.clean_install()
- #clean_install_result = main.TRUE
+ #clean_install_result = main.TRUE
- main.step("Creating ONOS package")
+ main.step( "Creating ONOS package" )
package_result = main.ONOSbench.onos_package()
- #main.step("Creating a cell")
- #cell_create_result = main.ONOSbench.create_cell_file(**************)
+ #main.step( "Creating a cell" )
+ # cell_create_result = main.ONOSbench.create_cell_file( **************
+ # )
- main.step("Installing ONOS package")
- onos1_install_result = main.ONOSbench.onos_install(options="-f", node=ONOS1_ip)
- onos2_install_result = main.ONOSbench.onos_install(options="-f", node=ONOS2_ip)
- onos3_install_result = main.ONOSbench.onos_install(options="-f", node=ONOS3_ip)
- onos_install_result = onos1_install_result and onos2_install_result and onos3_install_result
+ main.step( "Installing ONOS package" )
+ onos1_install_result = main.ONOSbench.onos_install(
+ options="-f",
+ node=ONOS1_ip )
+ onos2_install_result = main.ONOSbench.onos_install(
+ options="-f",
+ node=ONOS2_ip )
+ onos3_install_result = main.ONOSbench.onos_install(
+ options="-f",
+ node=ONOS3_ip )
+ onos_install_result = onos1_install_result and onos2_install_result and onos3_install_result
if onos_install_result == main.TRUE:
- main.log.report("Installing ONOS package successful")
+ main.log.report( "Installing ONOS package successful" )
else:
- main.log.report("Installing ONOS package failed")
-
- onos1_isup = main.ONOSbench.isup(ONOS1_ip)
- onos2_isup = main.ONOSbench.isup(ONOS2_ip)
- onos3_isup = main.ONOSbench.isup(ONOS3_ip)
+ main.log.report( "Installing ONOS package failed" )
+
+ onos1_isup = main.ONOSbench.isup( ONOS1_ip )
+ onos2_isup = main.ONOSbench.isup( ONOS2_ip )
+ onos3_isup = main.ONOSbench.isup( ONOS3_ip )
onos_isup = onos1_isup and onos2_isup and onos3_isup
if onos_isup == main.TRUE:
- main.log.report("ONOS instances are up and ready")
+ main.log.report( "ONOS instances are up and ready" )
else:
- main.log.report("ONOS instances may not be up")
+ main.log.report( "ONOS instances may not be up" )
- main.step("Starting ONOS service")
+ main.step( "Starting ONOS service" )
start_result = main.TRUE
- #start_result = main.ONOSbench.onos_start(ONOS1_ip)
- startcli1 = main.ONOScli1.start_onos_cli(ONOS_ip = ONOS1_ip)
- startcli2 = main.ONOScli2.start_onos_cli(ONOS_ip = ONOS2_ip)
- startcli3 = main.ONOScli3.start_onos_cli(ONOS_ip = ONOS3_ip)
+ #start_result = main.ONOSbench.onos_start( ONOS1_ip )
+ startcli1 = main.ONOScli1.start_onos_cli( ONOS_ip=ONOS1_ip )
+ startcli2 = main.ONOScli2.start_onos_cli( ONOS_ip=ONOS2_ip )
+ startcli3 = main.ONOScli3.start_onos_cli( ONOS_ip=ONOS3_ip )
print startcli1
print startcli2
print startcli3
-
- case1_result = (package_result and\
- cell_result and verify_result and onos_install_result and\
- onos_isup and start_result )
- utilities.assert_equals(expect=main.TRUE, actual=case1_result,
- onpass="Test startup successful",
- onfail="Test startup NOT successful")
- def CASE11(self, main):
- '''
+ case1_result = ( package_result and
+ cell_result and verify_result and onos_install_result and
+ onos_isup and start_result )
+ utilities.assert_equals( expect=main.TRUE, actual=case1_result,
+ onpass="Test startup successful",
+ onfail="Test startup NOT successful" )
+
+ def CASE11( self, main ):
+ """
Cleanup sequence:
onos-service <node_ip> stop
onos-uninstall
TODO: Define rest of cleanup
-
- '''
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
-
- main.case("Cleaning up test environment")
+ """
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
- main.step("Testing ONOS kill function")
- kill_result1 = main.ONOSbench.onos_kill(ONOS1_ip)
- kill_result2 = main.ONOSbench.onos_kill(ONOS2_ip)
- kill_result3 = main.ONOSbench.onos_kill(ONOS3_ip)
-
- main.step("Stopping ONOS service")
- stop_result1 = main.ONOSbench.onos_stop(ONOS1_ip)
- stop_result2 = main.ONOSbench.onos_stop(ONOS2_ip)
- stop_result3 = main.ONOSbench.onos_stop(ONOS3_ip)
+ main.case( "Cleaning up test environment" )
- main.step("Uninstalling ONOS service")
+ main.step( "Testing ONOS kill function" )
+ kill_result1 = main.ONOSbench.onos_kill( ONOS1_ip )
+ kill_result2 = main.ONOSbench.onos_kill( ONOS2_ip )
+ kill_result3 = main.ONOSbench.onos_kill( ONOS3_ip )
+
+ main.step( "Stopping ONOS service" )
+ stop_result1 = main.ONOSbench.onos_stop( ONOS1_ip )
+ stop_result2 = main.ONOSbench.onos_stop( ONOS2_ip )
+ stop_result3 = main.ONOSbench.onos_stop( ONOS3_ip )
+
+ main.step( "Uninstalling ONOS service" )
uninstall_result = main.ONOSbench.onos_uninstall()
- def CASE3(self, main):
- '''
+ def CASE3( self, main ):
+ """
Test 'onos' command and its functionality in driver
- '''
-
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
+ """
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
- main.case("Testing 'onos' command")
+ main.case( "Testing 'onos' command" )
- main.step("Sending command 'onos -w <onos-ip> system:name'")
+ main.step( "Sending command 'onos -w <onos-ip> system:name'" )
cmdstr1 = "system:name"
- cmd_result1 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr1)
- main.log.info("onos command returned: "+cmd_result1)
- cmd_result2 = main.ONOSbench.onos_cli(ONOS2_ip, cmdstr1)
- main.log.info("onos command returned: "+cmd_result2)
- cmd_result3 = main.ONOSbench.onos_cli(ONOS3_ip, cmdstr1)
- main.log.info("onos command returned: "+cmd_result3)
+ cmd_result1 = main.ONOSbench.onos_cli( ONOS1_ip, cmdstr1 )
+ main.log.info( "onos command returned: " + cmd_result1 )
+ cmd_result2 = main.ONOSbench.onos_cli( ONOS2_ip, cmdstr1 )
+ main.log.info( "onos command returned: " + cmd_result2 )
+ cmd_result3 = main.ONOSbench.onos_cli( ONOS3_ip, cmdstr1 )
+ main.log.info( "onos command returned: " + cmd_result3 )
- main.step("Sending command 'onos -w <onos-ip> onos:topology'")
+ main.step( "Sending command 'onos -w <onos-ip> onos:topology'" )
cmdstr2 = "onos:topology"
- cmd_result4 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr2)
- main.log.info("onos command returned: "+cmd_result4)
- cmd_result5 = main.ONOSbench.onos_cli(ONOS2_ip, cmdstr2)
- main.log.info("onos command returned: "+cmd_result5)
- cmd_result6 = main.ONOSbench.onos_cli(ONOS6_ip, cmdstr2)
- main.log.info("onos command returned: "+cmd_result6)
+ cmd_result4 = main.ONOSbench.onos_cli( ONOS1_ip, cmdstr2 )
+ main.log.info( "onos command returned: " + cmd_result4 )
+ cmd_result5 = main.ONOSbench.onos_cli( ONOS2_ip, cmdstr2 )
+ main.log.info( "onos command returned: " + cmd_result5 )
+ cmd_result6 = main.ONOSbench.onos_cli( ONOS6_ip, cmdstr2 )
+ main.log.info( "onos command returned: " + cmd_result6 )
-
- def CASE4(self, main):
+ def CASE4( self, main ):
import re
import time
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS1_port = main.params['CTRL']['port1']
- ONOS2_port = main.params['CTRL']['port2']
- ONOS3_port = main.params['CTRL']['port3']
-
- main.log.report("This testcase is testing the assignment of all the switches to all controllers and discovering the hosts in reactive mode")
- main.log.report("__________________________________")
- main.case("Pingall Test(No intents are added)")
- main.step("Assigning switches to controllers")
- for i in range(1,29): #1 to (num of switches +1)
- main.Mininet1.assign_sw_controller(sw=str(i),count=3,
- ip1=ONOS1_ip, port1=ONOS1_port,
- ip2=ONOS2_ip, port2=ONOS2_port,
- ip3=ONOS3_ip, port3=ONOS3_port)
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS1_port = main.params[ 'CTRL' ][ 'port1' ]
+ ONOS2_port = main.params[ 'CTRL' ][ 'port2' ]
+ ONOS3_port = main.params[ 'CTRL' ][ 'port3' ]
+
+ main.log.report(
+ "This testcase is testing the assignment of all the switches to all controllers and discovering the hosts in reactive mode" )
+ main.log.report( "__________________________________" )
+ main.case( "Pingall Test(No intents are added)" )
+ main.step( "Assigning switches to controllers" )
+ for i in range( 1, 29 ): # 1 to ( num of switches +1 )
+ main.Mininet1.assign_sw_controller(
+ sw=str( i ),
+ count=3,
+ ip1=ONOS1_ip,
+ port1=ONOS1_port,
+ ip2=ONOS2_ip,
+ port2=ONOS2_port,
+ ip3=ONOS3_ip,
+ port3=ONOS3_port )
switch_mastership = main.TRUE
- for i in range (1,29):
- response = main.Mininet1.get_sw_controller("s"+str(i))
- print("Response is " + str(response))
- if re.search("tcp:"+ONOS1_ip,response):
+ for i in range( 1, 29 ):
+ response = main.Mininet1.get_sw_controller( "s" + str( i ) )
+ print( "Response is " + str( response ) )
+ if re.search( "tcp:" + ONOS1_ip, response ):
switch_mastership = switch_mastership and main.TRUE
else:
switch_mastership = main.FALSE
if switch_mastership == main.TRUE:
- main.log.report("Controller assignment successfull")
+ main.log.report( "Controller assignment successfull" )
else:
- main.log.report("Controller assignment failed")
- #REACTIVE FWD test
- main.step("Pingall")
+ main.log.report( "Controller assignment failed" )
+ # REACTIVE FWD test
+ main.step( "Pingall" )
ping_result = main.FALSE
time1 = time.time()
ping_result = main.Mininet1.pingall()
time2 = time.time()
- print "Time for pingall: %2f seconds" % (time2 - time1)
-
+ print "Time for pingall: %2f seconds" % ( time2 - time1 )
+
case4_result = switch_mastership and ping_result
if ping_result == main.TRUE:
- main.log.report("Pingall Test in reactive mode to discover the hosts successful")
+ main.log.report(
+ "Pingall Test in reactive mode to discover the hosts successful" )
else:
- main.log.report("Pingall Test in reactive mode to discover the hosts failed")
+ main.log.report(
+ "Pingall Test in reactive mode to discover the hosts failed" )
- utilities.assert_equals(expect=main.TRUE, actual=case4_result,onpass="Controller assignment and Pingall Test successful",onfail="Controller assignment and Pingall Test NOT successful")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case4_result,
+ onpass="Controller assignment and Pingall Test successful",
+ onfail="Controller assignment and Pingall Test NOT successful" )
-
-
- def CASE5(self,main) :
+ def CASE5( self, main ):
import json
from subprocess import Popen, PIPE
- from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
-
- main.log.report("This testcase is testing if all ONOS nodes are in topology sync with mininet and its peer ONOS nodes")
- main.log.report("__________________________________")
- main.case ("Testing Mininet topology with the topology of multi instances ONOS")
- main.step("Collecting topology information from ONOS")
+ # assumes that sts is already in you PYTHONPATH
+ from sts.topology.teston_topology import TestONTopology
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+
+ main.log.report(
+ "This testcase is testing if all ONOS nodes are in topology sync with mininet and its peer ONOS nodes" )
+ main.log.report( "__________________________________" )
+ main.case(
+ "Testing Mininet topology with the topology of multi instances ONOS" )
+ main.step( "Collecting topology information from ONOS" )
devices1 = main.ONOScli1.devices()
devices2 = main.ONOScli2.devices()
devices3 = main.ONOScli3.devices()
- #print "devices1 = ", devices1
- #print "devices2 = ", devices2
- #print "devices3 = ", devices3
+ # print "devices1 = ", devices1
+ # print "devices2 = ", devices2
+ # print "devices3 = ", devices3
hosts1 = main.ONOScli1.hosts()
hosts2 = main.ONOScli2.hosts()
hosts3 = main.ONOScli3.hosts()
- #print "hosts1 = ", hosts1
- #print "hosts2 = ", hosts2
- #print "hosts3 = ", hosts3
+ # print "hosts1 = ", hosts1
+ # print "hosts2 = ", hosts2
+ # print "hosts3 = ", hosts3
ports1 = main.ONOScli1.ports()
ports2 = main.ONOScli2.ports()
ports3 = main.ONOScli3.ports()
- #print "ports1 = ", ports1
- #print "ports2 = ", ports2
- #print "ports3 = ", ports3
+ # print "ports1 = ", ports1
+ # print "ports2 = ", ports2
+ # print "ports3 = ", ports3
links1 = main.ONOScli1.links()
links2 = main.ONOScli2.links()
links3 = main.ONOScli3.links()
- #print "links1 = ", links1
- #print "links2 = ", links2
- #print "links3 = ", links3
-
- print "**************"
-
- main.step("Start continuous pings")
- main.Mininet2.pingLong(src=main.params['PING']['source1'],
- target=main.params['PING']['target1'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source2'],
- target=main.params['PING']['target2'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source3'],
- target=main.params['PING']['target3'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source4'],
- target=main.params['PING']['target4'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source5'],
- target=main.params['PING']['target5'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source6'],
- target=main.params['PING']['target6'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source7'],
- target=main.params['PING']['target7'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source8'],
- target=main.params['PING']['target8'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source9'],
- target=main.params['PING']['target9'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source10'],
- target=main.params['PING']['target10'],pingTime=500)
+ # print "links1 = ", links1
+ # print "links2 = ", links2
+ # print "links3 = ", links3
- main.step("Create TestONTopology object")
+ print "**************"
+
+ main.step( "Start continuous pings" )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source1' ],
+ target=main.params[ 'PING' ][ 'target1' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source2' ],
+ target=main.params[ 'PING' ][ 'target2' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source3' ],
+ target=main.params[ 'PING' ][ 'target3' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source4' ],
+ target=main.params[ 'PING' ][ 'target4' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source5' ],
+ target=main.params[ 'PING' ][ 'target5' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source6' ],
+ target=main.params[ 'PING' ][ 'target6' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source7' ],
+ target=main.params[ 'PING' ][ 'target7' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source8' ],
+ target=main.params[ 'PING' ][ 'target8' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source9' ],
+ target=main.params[ 'PING' ][ 'target9' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source10' ],
+ target=main.params[ 'PING' ][ 'target10' ],
+ pingTime=500 )
+
+ main.step( "Create TestONTopology object" )
global ctrls
ctrls = []
count = 1
while True:
temp = ()
- if ('ip' + str(count)) in main.params['CTRL']:
- temp = temp + (getattr(main,('ONOS' + str(count))),)
- temp = temp + ("ONOS"+str(count),)
- temp = temp + (main.params['CTRL']['ip'+str(count)],)
- temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
- ctrls.append(temp)
+ if ( 'ip' + str( count ) ) in main.params[ 'CTRL' ]:
+ temp = temp + ( getattr( main, ( 'ONOS' + str( count ) ) ), )
+ temp = temp + ( "ONOS" + str( count ), )
+ temp = temp + ( main.params[ 'CTRL' ][ 'ip' + str( count ) ], )
+ temp = temp + \
+ ( eval( main.params[ 'CTRL' ][ 'port' + str( count ) ] ), )
+ ctrls.append( temp )
count = count + 1
else:
break
global MNTopo
- Topo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+ Topo = TestONTopology(
+ main.Mininet1,
+ ctrls ) # can also add Intent API info for intent operations
MNTopo = Topo
Topology_Check = main.TRUE
- main.step("Compare ONOS Topology to MN Topology")
-
- switches_results1 = main.Mininet1.compare_switches(MNTopo, json.loads(devices1))
+ main.step( "Compare ONOS Topology to MN Topology" )
+
+ switches_results1 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices1 ) )
print "switches_Result1 = ", switches_results1
- utilities.assert_equals(expect=main.TRUE, actual=switches_results1,
- onpass="ONOS1 Switches view is correct",
- onfail="ONOS1 Switches view is incorrect")
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results1,
+ onpass="ONOS1 Switches view is correct",
+ onfail="ONOS1 Switches view is incorrect" )
- switches_results2 = main.Mininet1.compare_switches(MNTopo, json.loads(devices2))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results2,
- onpass="ONOS2 Switches view is correct",
- onfail="ONOS2 Switches view is incorrect")
-
- switches_results3 = main.Mininet1.compare_switches(MNTopo, json.loads(devices3))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results3,
- onpass="ONOS3 Switches view is correct",
- onfail="ONOS3 Switches view is incorrect")
+ switches_results2 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results2,
+ onpass="ONOS2 Switches view is correct",
+ onfail="ONOS2 Switches view is incorrect" )
- '''
- ports_results1 = main.Mininet1.compare_ports(MNTopo, json.loads(ports1))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results1,
+ switches_results3 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results3,
+ onpass="ONOS3 Switches view is correct",
+ onfail="ONOS3 Switches view is incorrect" )
+
+ """
+ ports_results1 = main.Mininet1.compare_ports( MNTopo, json.loads( ports1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results1,
onpass="ONOS1 Ports view is correct",
- onfail="ONOS1 Ports view is incorrect")
+ onfail="ONOS1 Ports view is incorrect" )
- ports_results2 = main.Mininet1.compare_ports(MNTopo, json.loads(ports2))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results2,
+ ports_results2 = main.Mininet1.compare_ports( MNTopo, json.loads( ports2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results2,
onpass="ONOS2 Ports view is correct",
- onfail="ONOS2 Ports view is incorrect")
+ onfail="ONOS2 Ports view is incorrect" )
- ports_results3 = main.Mininet1.compare_ports(MNTopo, json.loads(ports3))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results3,
+ ports_results3 = main.Mininet1.compare_ports( MNTopo, json.loads( ports3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results3,
onpass="ONOS3 Ports view is correct",
- onfail="ONOS3 Ports view is incorrect")
- '''
+ onfail="ONOS3 Ports view is incorrect" )
+ """
+ links_results1 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results1,
+ onpass="ONOS1 Links view is correct",
+ onfail="ONOS1 Links view is incorrect" )
- links_results1 = main.Mininet1.compare_links(MNTopo, json.loads(links1))
- utilities.assert_equals(expect=main.TRUE, actual=links_results1,
- onpass="ONOS1 Links view is correct",
- onfail="ONOS1 Links view is incorrect")
+ links_results2 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results2,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
- links_results2 = main.Mininet1.compare_links(MNTopo, json.loads(links2))
- utilities.assert_equals(expect=main.TRUE, actual=links_results2,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
-
- links_results3 = main.Mininet1.compare_links(MNTopo, json.loads(links3))
- utilities.assert_equals(expect=main.TRUE, actual=links_results3,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
+ links_results3 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results3,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
#topo_result = switches_results1 and switches_results2 and switches_results3\
- #and ports_results1 and ports_results2 and ports_results3\
- #and links_results1 and links_results2 and links_results3
-
+ # and ports_results1 and ports_results2 and ports_results3\
+ # and links_results1 and links_results2 and links_results3
+
topo_result = switches_results1 and switches_results2 and switches_results3\
- and links_results1 and links_results2 and links_results3
+ and links_results1 and links_results2 and links_results3
if topo_result == main.TRUE:
- main.log.report("Topology Check Test with mininet and ONOS instances successful")
+ main.log.report(
+ "Topology Check Test with mininet and ONOS instances successful" )
else:
- main.log.report("Topology Check Test with mininet and ONOS instances failed")
+ main.log.report(
+ "Topology Check Test with mininet and ONOS instances failed" )
- utilities.assert_equals(expect=main.TRUE, actual=topo_result,
- onpass="Topology Check Test successful",
- onfail="Topology Check Test NOT successful")
+ utilities.assert_equals( expect=main.TRUE, actual=topo_result,
+ onpass="Topology Check Test successful",
+ onfail="Topology Check Test NOT successful" )
+ def CASE10( self ):
+ main.log.report(
+ "This testcase uninstalls the reactive forwarding app" )
+ main.log.report( "__________________________________" )
+ main.case( "Uninstalling reactive forwarding app" )
+ # Unistall onos-app-fwd app to disable reactive forwarding
+ appUninstall_result1 = main.ONOScli1.feature_uninstall(
+ "onos-app-fwd" )
+ appUninstall_result2 = main.ONOScli2.feature_uninstall(
+ "onos-app-fwd" )
+ appUninstall_result3 = main.ONOScli3.feature_uninstall(
+ "onos-app-fwd" )
+ main.log.info( "onos-app-fwd uninstalled" )
+ # After reactive forwarding is disabled, the reactive flows on switches timeout in 10-15s
+ # So sleep for 15s
+ time.sleep( 15 )
-
- def CASE10(self):
- main.log.report("This testcase uninstalls the reactive forwarding app")
- main.log.report("__________________________________")
- main.case("Uninstalling reactive forwarding app")
- #Unistall onos-app-fwd app to disable reactive forwarding
- appUninstall_result1 = main.ONOScli1.feature_uninstall("onos-app-fwd")
- appUninstall_result2 = main.ONOScli2.feature_uninstall("onos-app-fwd")
- appUninstall_result3 = main.ONOScli3.feature_uninstall("onos-app-fwd")
- main.log.info("onos-app-fwd uninstalled")
-
- #After reactive forwarding is disabled, the reactive flows on switches timeout in 10-15s
- #So sleep for 15s
- time.sleep(15)
-
hosts = main.ONOScli1.hosts()
- main.log.info(hosts)
-
+ main.log.info( hosts )
+
case10_result = appUninstall_result1 and appUninstall_result2 and appUninstall_result3
- utilities.assert_equals(expect=main.TRUE, actual=case10_result,onpass="Reactive forwarding app uninstallation successful",onfail="Reactive forwarding app uninstallation failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case10_result,
+ onpass="Reactive forwarding app uninstallation successful",
+ onfail="Reactive forwarding app uninstallation failed" )
-
- def CASE6(self):
- main.log.report("This testcase is testing the addition of host intents and then doing pingall")
- main.log.report("__________________________________")
- main.case("Obtaining hostsfor adding host intents")
- main.step("Get hosts")
+ def CASE6( self ):
+ main.log.report(
+ "This testcase is testing the addition of host intents and then doing pingall" )
+ main.log.report( "__________________________________" )
+ main.case( "Obtaining hostsfor adding host intents" )
+ main.step( "Get hosts" )
hosts = main.ONOScli1.hosts()
- main.log.info(hosts)
+ main.log.info( hosts )
- main.step("Get all devices id")
+ main.step( "Get all devices id" )
devices_id_list = main.ONOScli1.get_all_devices_id()
- main.log.info(devices_id_list)
+ main.log.info( devices_id_list )
- #ONOS displays the hosts in hex format unlike mininet which does in decimal format
- #So take care while adding intents
-
- '''
- main.step("Add host intents for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:08/-1", "00:00:00:00:00:12/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:09/-1", "00:00:00:00:00:13/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0A/-1", "00:00:00:00:00:14/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0B/-1", "00:00:00:00:00:15/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0C/-1", "00:00:00:00:00:16/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0D/-1", "00:00:00:00:00:17/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0E/-1", "00:00:00:00:00:18/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0F/-1", "00:00:00:00:00:19/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:10/-1", "00:00:00:00:00:1A/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:11/-1", "00:00:00:00:00:1B/-1")
- '''
+ # ONOS displays the hosts in hex format unlike mininet which does in decimal format
+ # So take care while adding intents
- for i in range(8,18):
- main.log.info("Adding host intent between h"+str(i)+" and h"+str(i+10))
- host1 = "00:00:00:00:00:" + str(hex(i)[2:]).zfill(2).upper()
- host2 = "00:00:00:00:00:" + str(hex(i+10)[2:]).zfill(2).upper()
- #NOTE: get host can return None
- #TODO: handle this
- host1_id = main.ONOScli1.get_host(host1)['id']
- host2_id = main.ONOScli1.get_host(host2)['id']
- tmp_result = main.ONOScli1.add_host_intent(host1_id, host2_id )
+ """
+ main.step( "Add host intents for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:08/-1", "00:00:00:00:00:12/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:09/-1", "00:00:00:00:00:13/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0A/-1", "00:00:00:00:00:14/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0B/-1", "00:00:00:00:00:15/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0C/-1", "00:00:00:00:00:16/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0D/-1", "00:00:00:00:00:17/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0E/-1", "00:00:00:00:00:18/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0F/-1", "00:00:00:00:00:19/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:10/-1", "00:00:00:00:00:1A/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:11/-1", "00:00:00:00:00:1B/-1" )
+ """
+ for i in range( 8, 18 ):
+ main.log.info(
+ "Adding host intent between h" + str( i ) + " and h" + str( i + 10 ) )
+ host1 = "00:00:00:00:00:" + \
+ str( hex( i )[ 2: ] ).zfill( 2 ).upper()
+ host2 = "00:00:00:00:00:" + \
+ str( hex( i + 10 )[ 2: ] ).zfill( 2 ).upper()
+ # NOTE: get host can return None
+ # TODO: handle this
+ host1_id = main.ONOScli1.get_host( host1 )[ 'id' ]
+ host2_id = main.ONOScli1.get_host( host2 )[ 'id' ]
+ tmp_result = main.ONOScli1.add_host_intent( host1_id, host2_id )
flowHandle = main.ONOScli1.flows()
- #print "flowHandle = ", flowHandle
- main.log.info("flows:" +flowHandle)
+ # print "flowHandle = ", flowHandle
+ main.log.info( "flows:" + flowHandle )
count = 1
i = 8
Ping_Result = main.TRUE
- while i <18 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping == main.FALSE and count <5:
- count+=1
+ while i < 18:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.FALSE and count < 5:
+ count += 1
#i = 8
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+10) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
- i=19
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
+ i = 19
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+10) + "passed!")
- i+=1
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "passed!" )
+ i += 1
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
- if Ping_Result==main.FALSE:
- main.log.report("Host intents have not ben installed correctly. Cleaning up")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Host intents have been installed correctly")
+ if Ping_Result == main.FALSE:
+ main.log.report(
+ "Host intents have not ben installed correctly. Cleaning up" )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report( "Host intents have been installed correctly" )
case6_result = Ping_Result
- utilities.assert_equals(expect=main.TRUE, actual=case6_result,
- onpass="Host intent addition and Pingall Test successful",
- onfail="Host intent addition and Pingall Test NOT successful")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case6_result,
+ onpass="Host intent addition and Pingall Test successful",
+ onfail="Host intent addition and Pingall Test NOT successful" )
+ def CASE7( self, main ):
- def CASE7 (self,main):
-
- ONOS1_ip = main.params['CTRL']['ip1']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
- link_sleep = int(main.params['timers']['LinkDiscovery'])
+ link_sleep = int( main.params[ 'timers' ][ 'LinkDiscovery' ] )
- main.log.report("This testscase is killing a link to ensure that link discovery is consistent")
- main.log.report("__________________________________")
- main.case("Killing a link to Ensure that Link Discovery is Working Properly")
- main.step("Start continuous pings")
-
- main.Mininet2.pingLong(src=main.params['PING']['source1'],
- target=main.params['PING']['target1'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source2'],
- target=main.params['PING']['target2'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source3'],
- target=main.params['PING']['target3'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source4'],
- target=main.params['PING']['target4'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source5'],
- target=main.params['PING']['target5'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source6'],
- target=main.params['PING']['target6'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source7'],
- target=main.params['PING']['target7'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source8'],
- target=main.params['PING']['target8'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source9'],
- target=main.params['PING']['target9'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source10'],
- target=main.params['PING']['target10'],pingTime=500)
+ main.log.report(
+ "This testscase is killing a link to ensure that link discovery is consistent" )
+ main.log.report( "__________________________________" )
+ main.case(
+ "Killing a link to Ensure that Link Discovery is Working Properly" )
+ main.step( "Start continuous pings" )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source1' ],
+ target=main.params[ 'PING' ][ 'target1' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source2' ],
+ target=main.params[ 'PING' ][ 'target2' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source3' ],
+ target=main.params[ 'PING' ][ 'target3' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source4' ],
+ target=main.params[ 'PING' ][ 'target4' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source5' ],
+ target=main.params[ 'PING' ][ 'target5' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source6' ],
+ target=main.params[ 'PING' ][ 'target6' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source7' ],
+ target=main.params[ 'PING' ][ 'target7' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source8' ],
+ target=main.params[ 'PING' ][ 'target8' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source9' ],
+ target=main.params[ 'PING' ][ 'target9' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source10' ],
+ target=main.params[ 'PING' ][ 'target10' ],
+ pingTime=500 )
- main.step("Determine the current number of switches and links")
+ main.step( "Determine the current number of switches and links" )
topology_output = main.ONOScli1.topology()
- topology_result = main.ONOSbench.get_topology(topology_output)
- activeSwitches = topology_result['devices']
- links = topology_result['links']
- print "activeSwitches = ", type(activeSwitches)
- print "links = ", type(links)
- main.log.info("Currently there are %s switches and %s links" %(str(activeSwitches), str(links)))
+ topology_result = main.ONOSbench.get_topology( topology_output )
+ activeSwitches = topology_result[ 'devices' ]
+ links = topology_result[ 'links' ]
+ print "activeSwitches = ", type( activeSwitches )
+ print "links = ", type( links )
+ main.log.info(
+ "Currently there are %s switches and %s links" %
+ ( str( activeSwitches ), str( links ) ) )
- main.step("Kill Link between s3 and s28")
- main.Mininet1.link(END1="s3",END2="s28",OPTION="down")
- time.sleep(link_sleep)
+ main.step( "Kill Link between s3 and s28" )
+ main.Mininet1.link( END1="s3", END2="s28", OPTION="down" )
+ time.sleep( link_sleep )
topology_output = main.ONOScli2.topology()
- Link_Down = main.ONOSbench.check_status(topology_output,activeSwitches,str(int(links)-2))
+ Link_Down = main.ONOSbench.check_status(
+ topology_output, activeSwitches, str(
+ int( links ) - 2 ) )
if Link_Down == main.TRUE:
- main.log.report("Link Down discovered properly")
- utilities.assert_equals(expect=main.TRUE,actual=Link_Down,
- onpass="Link Down discovered properly",
- onfail="Link down was not discovered in "+ str(link_sleep) + " seconds")
-
- main.step("Bring link between s3 and s28 back up")
- Link_Up = main.Mininet1.link(END1="s3",END2="s28",OPTION="up")
- time.sleep(link_sleep)
- topology_output = main.ONOScli2.topology()
- Link_Up = main.ONOSbench.check_status(topology_output,activeSwitches,str(links))
- if Link_Up == main.TRUE:
- main.log.report("Link up discovered properly")
- utilities.assert_equals(expect=main.TRUE,actual=Link_Up,
- onpass="Link up discovered properly",
- onfail="Link up was not discovered in "+ str(link_sleep) + " seconds")
+ main.log.report( "Link Down discovered properly" )
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=Link_Down,
+ onpass="Link Down discovered properly",
+ onfail="Link down was not discovered in " +
+ str( link_sleep ) +
+ " seconds" )
- main.step("Compare ONOS Topology to MN Topology")
- main.case ("Testing Mininet topology with the topology of multi instances ONOS")
- main.step("Collecting topology information from ONOS")
+ main.step( "Bring link between s3 and s28 back up" )
+ Link_Up = main.Mininet1.link( END1="s3", END2="s28", OPTION="up" )
+ time.sleep( link_sleep )
+ topology_output = main.ONOScli2.topology()
+ Link_Up = main.ONOSbench.check_status(
+ topology_output,
+ activeSwitches,
+ str( links ) )
+ if Link_Up == main.TRUE:
+ main.log.report( "Link up discovered properly" )
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=Link_Up,
+ onpass="Link up discovered properly",
+ onfail="Link up was not discovered in " +
+ str( link_sleep ) +
+ " seconds" )
+
+ main.step( "Compare ONOS Topology to MN Topology" )
+ main.case(
+ "Testing Mininet topology with the topology of multi instances ONOS" )
+ main.step( "Collecting topology information from ONOS" )
devices1 = main.ONOScli1.devices()
devices2 = main.ONOScli2.devices()
devices3 = main.ONOScli3.devices()
@@ -539,625 +660,864 @@
hosts1 = main.ONOScli1.hosts()
hosts2 = main.ONOScli2.hosts()
hosts3 = main.ONOScli3.hosts()
- #print "hosts1 = ", hosts1
- #print "hosts2 = ", hosts2
- #print "hosts3 = ", hosts3
+ # print "hosts1 = ", hosts1
+ # print "hosts2 = ", hosts2
+ # print "hosts3 = ", hosts3
ports1 = main.ONOScli1.ports()
ports2 = main.ONOScli2.ports()
ports3 = main.ONOScli3.ports()
- #print "ports1 = ", ports1
- #print "ports2 = ", ports2
- #print "ports3 = ", ports3
+ # print "ports1 = ", ports1
+ # print "ports2 = ", ports2
+ # print "ports3 = ", ports3
links1 = main.ONOScli1.links()
links2 = main.ONOScli2.links()
links3 = main.ONOScli3.links()
- #print "links1 = ", links1
- #print "links2 = ", links2
- #print "links3 = ", links3
-
- print "**************"
-
- main.step("Start continuous pings")
- main.Mininet2.pingLong(src=main.params['PING']['source1'],
- target=main.params['PING']['target1'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source2'],
- target=main.params['PING']['target2'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source3'],
- target=main.params['PING']['target3'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source4'],
- target=main.params['PING']['target4'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source5'],
- target=main.params['PING']['target5'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source6'],
- target=main.params['PING']['target6'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source7'],
- target=main.params['PING']['target7'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source8'],
- target=main.params['PING']['target8'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source9'],
- target=main.params['PING']['target9'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source10'],
- target=main.params['PING']['target10'],pingTime=500)
+ # print "links1 = ", links1
+ # print "links2 = ", links2
+ # print "links3 = ", links3
- main.step("Create TestONTopology object")
+ print "**************"
+
+ main.step( "Start continuous pings" )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source1' ],
+ target=main.params[ 'PING' ][ 'target1' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source2' ],
+ target=main.params[ 'PING' ][ 'target2' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source3' ],
+ target=main.params[ 'PING' ][ 'target3' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source4' ],
+ target=main.params[ 'PING' ][ 'target4' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source5' ],
+ target=main.params[ 'PING' ][ 'target5' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source6' ],
+ target=main.params[ 'PING' ][ 'target6' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source7' ],
+ target=main.params[ 'PING' ][ 'target7' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source8' ],
+ target=main.params[ 'PING' ][ 'target8' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source9' ],
+ target=main.params[ 'PING' ][ 'target9' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source10' ],
+ target=main.params[ 'PING' ][ 'target10' ],
+ pingTime=500 )
+
+ main.step( "Create TestONTopology object" )
global ctrls
ctrls = []
count = 1
while True:
temp = ()
- if ('ip' + str(count)) in main.params['CTRL']:
- temp = temp + (getattr(main,('ONOS' + str(count))),)
- temp = temp + ("ONOS"+str(count),)
- temp = temp + (main.params['CTRL']['ip'+str(count)],)
- temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
- ctrls.append(temp)
+ if ( 'ip' + str( count ) ) in main.params[ 'CTRL' ]:
+ temp = temp + ( getattr( main, ( 'ONOS' + str( count ) ) ), )
+ temp = temp + ( "ONOS" + str( count ), )
+ temp = temp + ( main.params[ 'CTRL' ][ 'ip' + str( count ) ], )
+ temp = temp + \
+ ( eval( main.params[ 'CTRL' ][ 'port' + str( count ) ] ), )
+ ctrls.append( temp )
count = count + 1
else:
break
global MNTopo
- Topo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+ Topo = TestONTopology(
+ main.Mininet1,
+ ctrls ) # can also add Intent API info for intent operations
MNTopo = Topo
Topology_Check = main.TRUE
- main.step("Compare ONOS Topology to MN Topology")
-
- switches_results1 = main.Mininet1.compare_switches(MNTopo, json.loads(devices1))
+ main.step( "Compare ONOS Topology to MN Topology" )
+
+ switches_results1 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices1 ) )
print "switches_Result1 = ", switches_results1
- utilities.assert_equals(expect=main.TRUE, actual=switches_results1,
- onpass="ONOS1 Switches view is correct",
- onfail="ONOS1 Switches view is incorrect")
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results1,
+ onpass="ONOS1 Switches view is correct",
+ onfail="ONOS1 Switches view is incorrect" )
- switches_results2 = main.Mininet1.compare_switches(MNTopo, json.loads(devices2))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results2,
- onpass="ONOS2 Switches view is correct",
- onfail="ONOS2 Switches view is incorrect")
-
- switches_results3 = main.Mininet1.compare_switches(MNTopo, json.loads(devices3))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results3,
- onpass="ONOS3 Switches view is correct",
- onfail="ONOS3 Switches view is incorrect")
+ switches_results2 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results2,
+ onpass="ONOS2 Switches view is correct",
+ onfail="ONOS2 Switches view is incorrect" )
- '''
- ports_results1 = main.Mininet1.compare_ports(MNTopo, json.loads(ports1))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results1,
+ switches_results3 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results3,
+ onpass="ONOS3 Switches view is correct",
+ onfail="ONOS3 Switches view is incorrect" )
+
+ """
+ ports_results1 = main.Mininet1.compare_ports( MNTopo, json.loads( ports1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results1,
onpass="ONOS1 Ports view is correct",
- onfail="ONOS1 Ports view is incorrect")
+ onfail="ONOS1 Ports view is incorrect" )
- ports_results2 = main.Mininet1.compare_ports(MNTopo, json.loads(ports2))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results2,
+ ports_results2 = main.Mininet1.compare_ports( MNTopo, json.loads( ports2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results2,
onpass="ONOS2 Ports view is correct",
- onfail="ONOS2 Ports view is incorrect")
+ onfail="ONOS2 Ports view is incorrect" )
- ports_results3 = main.Mininet1.compare_ports(MNTopo, json.loads(ports3))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results3,
+ ports_results3 = main.Mininet1.compare_ports( MNTopo, json.loads( ports3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results3,
onpass="ONOS3 Ports view is correct",
- onfail="ONOS3 Ports view is incorrect")
- '''
+ onfail="ONOS3 Ports view is incorrect" )
+ """
+ links_results1 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results1,
+ onpass="ONOS1 Links view is correct",
+ onfail="ONOS1 Links view is incorrect" )
- links_results1 = main.Mininet1.compare_links(MNTopo, json.loads(links1))
- utilities.assert_equals(expect=main.TRUE, actual=links_results1,
- onpass="ONOS1 Links view is correct",
- onfail="ONOS1 Links view is incorrect")
+ links_results2 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results2,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
- links_results2 = main.Mininet1.compare_links(MNTopo, json.loads(links2))
- utilities.assert_equals(expect=main.TRUE, actual=links_results2,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
+ links_results3 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results3,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
- links_results3 = main.Mininet1.compare_links(MNTopo, json.loads(links3))
- utilities.assert_equals(expect=main.TRUE, actual=links_results3,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
-
#topo_result = switches_results1 and switches_results2 and switches_results3\
- #and ports_results1 and ports_results2 and ports_results3\
- #and links_results1 and links_results2 and links_results3
-
+ # and ports_results1 and ports_results2 and ports_results3\
+ # and links_results1 and links_results2 and links_results3
+
topo_result = switches_results1 and switches_results2 and switches_results3\
- and links_results1 and links_results2 and links_results3
+ and links_results1 and links_results2 and links_results3
- utilities.assert_equals(expect=main.TRUE, actual=topo_result and Link_Up and Link_Down,
- onpass="Topology Check Test successful",
- onfail="Topology Check Test NOT successful")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=topo_result and Link_Up and Link_Down,
+ onpass="Topology Check Test successful",
+ onfail="Topology Check Test NOT successful" )
-
- def CASE8(self):
- '''
+ def CASE8( self ):
+ """
Intent removal
- '''
- main.log.report("This testcase removes host any previously added intents")
- main.log.report("__________________________________")
- main.log.info("Removing any previously installed intents")
- main.case("Removing intents")
- main.step("Obtain the intent id's")
- intent_result = main.ONOScli1.intents(json_format = False)
-
- intent_linewise = intent_result.split("\n")
+ """
+ main.log.report(
+ "This testcase removes host any previously added intents" )
+ main.log.report( "__________________________________" )
+ main.log.info( "Removing any previously installed intents" )
+ main.case( "Removing intents" )
+ main.step( "Obtain the intent id's" )
+ intent_result = main.ONOScli1.intents( json_format=False )
+
+ intent_linewise = intent_result.split( "\n" )
intentList = []
for line in intent_linewise:
- if line.startswith("id="):
- intentList.append(line)
+ if line.startswith( "id=" ):
+ intentList.append( line )
intentids = []
for line in intentList:
- intentids.append(line.split(",")[0].split("=")[1])
+ intentids.append( line.split( "," )[ 0 ].split( "=" )[ 1 ] )
for id in intentids:
- main.log.info("id = " +id)
+ main.log.info( "id = " + id )
- main.step("Iterate through the intentids list and remove each intent")
+ main.step(
+ "Iterate through the intentids list and remove each intent" )
for id in intentids:
- main.ONOScli1.remove_intent(intent_id = id)
+ main.ONOScli1.remove_intent( intent_id=id )
- intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info("intent_result = " +intent_result)
+ intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( "intent_result = " + intent_result )
case8_result = main.TRUE
-
+
i = 8
Ping_Result = main.TRUE
- while i <18 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping==main.TRUE:
+ while i < 18:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.TRUE:
i = 19
Ping_Result = main.TRUE
- elif ping==main.FALSE:
- i+=1
+ elif ping == main.FALSE:
+ i += 1
Ping_Result = main.FALSE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
-
- #Note: If the ping result failed, that means the intents have been withdrawn correctly.
- if Ping_Result==main.TRUE:
- main.log.report("Host intents have not been withdrawn correctly")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.FALSE:
- main.log.report("Host intents have been withdrawn correctly")
+
+ # Note: If the ping result failed, that means the intents have been
+ # withdrawn correctly.
+ if Ping_Result == main.TRUE:
+ main.log.report( "Host intents have not been withdrawn correctly" )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.FALSE:
+ main.log.report( "Host intents have been withdrawn correctly" )
case8_result = case8_result and Ping_Result
if case8_result == main.FALSE:
- main.log.report("Intent removal successful")
+ main.log.report( "Intent removal successful" )
else:
- main.log.report("Intent removal failed")
-
- utilities.assert_equals(expect=main.FALSE, actual=case8_result,
- onpass="Intent removal test failed",
- onfail="Intent removal test successful")
-
+ main.log.report( "Intent removal failed" )
- def CASE9(self):
- '''
+ utilities.assert_equals( expect=main.FALSE, actual=case8_result,
+ onpass="Intent removal test failed",
+ onfail="Intent removal test successful" )
+
+ def CASE9( self ):
+ """
This test case adds point intents. Make sure you run test case 8 which is host intent removal before executing this test case.
Else the host intent's flows will persist on switches and the pings would work even if there is some issue with the point intent's flows
- '''
- main.log.report("This testcase adds point intents and then does pingall")
- main.log.report("__________________________________")
- main.log.info("Adding point intents")
- main.case("Adding bidirectional point for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)")
- main.step("Add point-to-point intents for mininet hosts h8 and h18 or ONOS hosts h8 and h12")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003008/1", "of:0000000000006018/1")
+ """
+ main.log.report(
+ "This testcase adds point intents and then does pingall" )
+ main.log.report( "__________________________________" )
+ main.log.info( "Adding point intents" )
+ main.case(
+ "Adding bidirectional point for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)" )
+ main.step(
+ "Add point-to-point intents for mininet hosts h8 and h18 or ONOS hosts h8 and h12" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003008/1",
+ "of:0000000000006018/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006018/1", "of:0000000000003008/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h9 and h19 or ONOS hosts h9 and h13")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003009/1", "of:0000000000006019/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006019/1", "of:0000000000003009/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h10 and h20 or ONOS hosts hA and h14")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003010/1", "of:0000000000006020/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006020/1", "of:0000000000003010/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
- main.step("Add point-to-point intents for mininet hosts h11 and h21 or ONOS hosts hB and h15")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003011/1", "of:0000000000006021/1")
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006018/1",
+ "of:0000000000003008/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006021/1", "of:0000000000003011/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h12 and h22 or ONOS hosts hC and h16")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003012/1", "of:0000000000006022/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006022/1", "of:0000000000003012/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h13 and h23 or ONOS hosts hD and h17")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003013/1", "of:0000000000006023/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006023/1", "of:0000000000003013/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
- main.step("Add point-to-point intents for mininet hosts h14 and h24 or ONOS hosts hE and h18")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003014/1", "of:0000000000006024/1")
+ main.step(
+ "Add point-to-point intents for mininet hosts h9 and h19 or ONOS hosts h9 and h13" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003009/1",
+ "of:0000000000006019/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006024/1", "of:0000000000003014/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h15 and h25 or ONOS hosts hF and h19")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003015/1", "of:0000000000006025/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006025/1", "of:0000000000003015/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h16 and h26 or ONOS hosts h10 and h1A")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003016/1", "of:0000000000006026/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006026/1", "of:0000000000003016/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
-
- main.step("Add point-to-point intents for mininet hosts h17 and h27 or ONOS hosts h11 and h1B")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003017/1", "of:0000000000006027/1")
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006019/1",
+ "of:0000000000003009/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006027/1", "of:0000000000003017/1")
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h10 and h20 or ONOS hosts hA and h14" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003010/1",
+ "of:0000000000006020/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
- print("_______________________________________________________________________________________")
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006020/1",
+ "of:0000000000003010/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h11 and h21 or ONOS hosts hB and h15" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003011/1",
+ "of:0000000000006021/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006021/1",
+ "of:0000000000003011/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h12 and h22 or ONOS hosts hC and h16" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003012/1",
+ "of:0000000000006022/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006022/1",
+ "of:0000000000003012/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h13 and h23 or ONOS hosts hD and h17" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003013/1",
+ "of:0000000000006023/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006023/1",
+ "of:0000000000003013/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h14 and h24 or ONOS hosts hE and h18" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003014/1",
+ "of:0000000000006024/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006024/1",
+ "of:0000000000003014/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h15 and h25 or ONOS hosts hF and h19" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003015/1",
+ "of:0000000000006025/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006025/1",
+ "of:0000000000003015/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h16 and h26 or ONOS hosts h10 and h1A" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003016/1",
+ "of:0000000000006026/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006026/1",
+ "of:0000000000003016/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h17 and h27 or ONOS hosts h11 and h1B" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003017/1",
+ "of:0000000000006027/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006027/1",
+ "of:0000000000003017/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ print(
+ "_______________________________________________________________________________________" )
flowHandle = main.ONOScli1.flows()
- #print "flowHandle = ", flowHandle
- main.log.info("flows :" + flowHandle)
+ # print "flowHandle = ", flowHandle
+ main.log.info( "flows :" + flowHandle )
count = 1
i = 8
Ping_Result = main.TRUE
- while i <18 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping == main.FALSE and count <5:
- count+=1
+ while i < 18:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.FALSE and count < 5:
+ count += 1
#i = 8
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+10) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
- i=19
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
+ i = 19
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+10) + "passed!")
- i+=1
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "passed!" )
+ i += 1
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
- if Ping_Result==main.FALSE:
- main.log.report("Ping all test after Point intents addition failed. Cleaning up")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Ping all test after Point intents addition successful")
+ if Ping_Result == main.FALSE:
+ main.log.report(
+ "Ping all test after Point intents addition failed. Cleaning up" )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report(
+ "Ping all test after Point intents addition successful" )
case8_result = Ping_Result
- utilities.assert_equals(expect=main.TRUE, actual=case8_result,
- onpass="Ping all test after Point intents addition successful",
- onfail="Ping all test after Point intents addition failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case8_result,
+ onpass="Ping all test after Point intents addition successful",
+ onfail="Ping all test after Point intents addition failed" )
- def CASE31(self):
- '''
- This test case adds point intent related to SDN-IP matching on ICMP (ethertype=IPV4, ipProto=1)
- '''
+ def CASE31( self ):
+ """
+ This test case adds point intent related to SDN-IP matching on ICMP ( ethertype=IPV4, ipProto=1 )
+ """
import json
- main.log.report("This test case adds point intent related to SDN-IP matching on ICMP")
- main.case("Adding bidirectional point intent related to SDN-IP matching on ICMP")
- main.step("Adding bidirectional point intent")
- #add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32 --ethType=IPV4 --ipProto=1 of:0000000000003008/1 of:0000000000006018/1
-
- hosts_json = json.loads(main.ONOScli1.hosts())
- for i in range(8,11):
- main.log.info("Adding point intent between h"+str(i)+" and h"+str(i+10))
- host1 = "00:00:00:00:00:" + str(hex(i)[2:]).zfill(2).upper()
- host2 = "00:00:00:00:00:" + str(hex(i+10)[2:]).zfill(2).upper()
- host1_id = main.ONOScli1.get_host(host1)['id']
- host2_id = main.ONOScli1.get_host(host2)['id']
+ main.log.report(
+ "This test case adds point intent related to SDN-IP matching on ICMP" )
+ main.case(
+ "Adding bidirectional point intent related to SDN-IP matching on ICMP" )
+ main.step( "Adding bidirectional point intent" )
+ # add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32
+ # --ethType=IPV4 --ipProto=1 of:0000000000003008/1
+ # of:0000000000006018/1
+
+ hosts_json = json.loads( main.ONOScli1.hosts() )
+ for i in range( 8, 11 ):
+ main.log.info(
+ "Adding point intent between h" + str( i ) + " and h" + str( i + 10 ) )
+ host1 = "00:00:00:00:00:" + \
+ str( hex( i )[ 2: ] ).zfill( 2 ).upper()
+ host2 = "00:00:00:00:00:" + \
+ str( hex( i + 10 )[ 2: ] ).zfill( 2 ).upper()
+ host1_id = main.ONOScli1.get_host( host1 )[ 'id' ]
+ host2_id = main.ONOScli1.get_host( host2 )[ 'id' ]
for host in hosts_json:
- if host['id'] == host1_id:
- ip1 = host['ips'][0]
- ip1 = str(ip1+"/32")
- device1 = host['location']['device']
- device1 = str(device1+"/1")
- elif host['id'] == host2_id:
- ip2 = str(host['ips'][0])+"/32"
- device2 = host['location']["device"]
- device2 = str(device2+"/1")
-
- p_intent_result1 = main.ONOScli1.add_point_intent(ingress_device=device1, egress_device=device2, ipSrc=ip1, ipDst=ip2,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['icmpProto'])
-
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info(get_intent_result)
-
- p_intent_result2 = main.ONOScli1.add_point_intent(ingress_device=device2, egress_device=device1, ipSrc=ip2, ipDst=ip1,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['icmpProto'])
-
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info(get_intent_result)
- if (p_intent_result1 and p_intent_result2) == main.TRUE:
+ if host[ 'id' ] == host1_id:
+ ip1 = host[ 'ips' ][ 0 ]
+ ip1 = str( ip1 + "/32" )
+ device1 = host[ 'location' ][ 'device' ]
+ device1 = str( device1 + "/1" )
+ elif host[ 'id' ] == host2_id:
+ ip2 = str( host[ 'ips' ][ 0 ] ) + "/32"
+ device2 = host[ 'location' ][ "device" ]
+ device2 = str( device2 + "/1" )
+
+ p_intent_result1 = main.ONOScli1.add_point_intent(
+ ingress_device=device1,
+ egress_device=device2,
+ ipSrc=ip1,
+ ipDst=ip2,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'icmpProto' ] )
+
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( get_intent_result )
+
+ p_intent_result2 = main.ONOScli1.add_point_intent(
+ ingress_device=device2,
+ egress_device=device1,
+ ipSrc=ip2,
+ ipDst=ip1,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'icmpProto' ] )
+
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( get_intent_result )
+ if ( p_intent_result1 and p_intent_result2 ) == main.TRUE:
#get_intent_result = main.ONOScli1.intents()
- #main.log.info(get_intent_result)
- main.log.info("Point intent related to SDN-IP matching on ICMP install successful")
-
- time.sleep(15)
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info("intents = "+ get_intent_result)
+ # main.log.info( get_intent_result )
+ main.log.info(
+ "Point intent related to SDN-IP matching on ICMP install successful" )
+
+ time.sleep( 15 )
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( "intents = " + get_intent_result )
get_flows_result = main.ONOScli1.flows()
- main.log.info("flows = " + get_flows_result)
-
+ main.log.info( "flows = " + get_flows_result )
+
count = 1
i = 8
Ping_Result = main.TRUE
- while i <11 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping == main.FALSE and count <3:
- count+=1
+ while i < 11:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.FALSE and count < 3:
+ count += 1
#i = 8
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+10) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
- i=19
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
+ i = 19
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+10) + "passed!")
- i+=1
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "passed!" )
+ i += 1
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
- if Ping_Result==main.FALSE:
- main.log.report("Ping test after Point intents related to SDN-IP matching on ICMP failed.")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Ping all test after Point intents related to SDN-IP matching on ICMP successful")
-
+ if Ping_Result == main.FALSE:
+ main.log.report(
+ "Ping test after Point intents related to SDN-IP matching on ICMP failed." )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report(
+ "Ping all test after Point intents related to SDN-IP matching on ICMP successful" )
+
case31_result = Ping_Result and p_intent_result1 and p_intent_result2
- utilities.assert_equals(expect=main.TRUE, actual=case31_result,
- onpass="Point intent related to SDN-IP matching on ICMP and ping test successful",
- onfail="Point intent related to SDN-IP matching on ICMP and ping test failed")
-
- def CASE32(self):
- '''
- This test case adds point intent related to SDN-IP matching on TCP (ethertype=IPV4, ipProto=6, DefaultPort for iperf=5001)
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case31_result,
+ onpass="Point intent related to SDN-IP matching on ICMP and ping test successful",
+ onfail="Point intent related to SDN-IP matching on ICMP and ping test failed" )
+
+ def CASE32( self ):
+ """
+ This test case adds point intent related to SDN-IP matching on TCP ( ethertype=IPV4, ipProto=6, DefaultPort for iperf=5001 )
Note: Although BGP port is 179, we are using 5001 because iperf is used for verifying and iperf's default port is 5001
- '''
+ """
import json
- main.log.report("This test case adds point intent related to SDN-IP matching on TCP")
- main.case("Adding bidirectional point intent related to SDN-IP matching on TCP")
- main.step("Adding bidirectional point intent")
+ main.log.report(
+ "This test case adds point intent related to SDN-IP matching on TCP" )
+ main.case(
+ "Adding bidirectional point intent related to SDN-IP matching on TCP" )
+ main.step( "Adding bidirectional point intent" )
"""
add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32 --ethType=IPV4 --ipProto=6 --tcpDst=5001 of:0000000000003008/1 of:0000000000006018/1
add-point-intent --ipSrc=10.0.0.18/32 --ipDst=10.0.0.8/32 --ethType=IPV4 --ipProto=6 --tcpDst=5001 of:0000000000006018/1 of:0000000000003008/1
-
+
add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32 --ethType=IPV4 --ipProto=6 --tcpSrc=5001 of:0000000000003008/1 of:0000000000006018/1
add-point-intent --ipSrc=10.0.0.18/32 --ipDst=10.0.0.8/32 --ethType=IPV4 --ipProto=6 --tcpSrc=5001 of:0000000000006018/1 of:0000000000003008/1
- """
-
- hosts_json = json.loads(main.ONOScli1.hosts())
- for i in range(8,9):
- main.log.info("Adding point intent between h"+str(i)+" and h"+str(i+10))
- host1 = "00:00:00:00:00:" + str(hex(i)[2:]).zfill(2).upper()
- host2 = "00:00:00:00:00:" + str(hex(i+10)[2:]).zfill(2).upper()
- host1_id = main.ONOScli1.get_host(host1)['id']
- host2_id = main.ONOScli1.get_host(host2)['id']
+ """
+ hosts_json = json.loads( main.ONOScli1.hosts() )
+ for i in range( 8, 9 ):
+ main.log.info(
+ "Adding point intent between h" + str( i ) + " and h" + str( i + 10 ) )
+ host1 = "00:00:00:00:00:" + \
+ str( hex( i )[ 2: ] ).zfill( 2 ).upper()
+ host2 = "00:00:00:00:00:" + \
+ str( hex( i + 10 )[ 2: ] ).zfill( 2 ).upper()
+ host1_id = main.ONOScli1.get_host( host1 )[ 'id' ]
+ host2_id = main.ONOScli1.get_host( host2 )[ 'id' ]
for host in hosts_json:
- if host['id'] == host1_id:
- ip1 = host['ips'][0]
- ip1 = str(ip1+"/32")
- device1 = host['location']['device']
- device1 = str(device1+"/1")
- elif host['id'] == host2_id:
- ip2 = str(host['ips'][0])+"/32"
- device2 = host['location']["device"]
- device2 = str(device2+"/1")
-
- p_intent_result1 = main.ONOScli1.add_point_intent(ingress_device=device1, egress_device=device2, ipSrc=ip1, ipDst=ip2,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpDst=main.params['SDNIP']['dstPort'])
- p_intent_result2 = main.ONOScli1.add_point_intent(ingress_device=device2, egress_device=device1, ipSrc=ip2, ipDst=ip1,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpDst=main.params['SDNIP']['dstPort'])
+ if host[ 'id' ] == host1_id:
+ ip1 = host[ 'ips' ][ 0 ]
+ ip1 = str( ip1 + "/32" )
+ device1 = host[ 'location' ][ 'device' ]
+ device1 = str( device1 + "/1" )
+ elif host[ 'id' ] == host2_id:
+ ip2 = str( host[ 'ips' ][ 0 ] ) + "/32"
+ device2 = host[ 'location' ][ "device" ]
+ device2 = str( device2 + "/1" )
- p_intent_result3 = main.ONOScli1.add_point_intent(ingress_device=device1, egress_device=device2, ipSrc=ip1, ipDst=ip2,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpSrc=main.params['SDNIP']['srcPort'])
- p_intent_result4 = main.ONOScli1.add_point_intent(ingress_device=device2, egress_device=device1, ipSrc=ip2, ipDst=ip1,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpSrc=main.params['SDNIP']['srcPort'])
+ p_intent_result1 = main.ONOScli1.add_point_intent(
+ ingress_device=device1,
+ egress_device=device2,
+ ipSrc=ip1,
+ ipDst=ip2,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpDst=main.params[ 'SDNIP' ][ 'dstPort' ] )
+ p_intent_result2 = main.ONOScli1.add_point_intent(
+ ingress_device=device2,
+ egress_device=device1,
+ ipSrc=ip2,
+ ipDst=ip1,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpDst=main.params[ 'SDNIP' ][ 'dstPort' ] )
+
+ p_intent_result3 = main.ONOScli1.add_point_intent(
+ ingress_device=device1,
+ egress_device=device2,
+ ipSrc=ip1,
+ ipDst=ip2,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpSrc=main.params[ 'SDNIP' ][ 'srcPort' ] )
+ p_intent_result4 = main.ONOScli1.add_point_intent(
+ ingress_device=device2,
+ egress_device=device1,
+ ipSrc=ip2,
+ ipDst=ip1,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpSrc=main.params[ 'SDNIP' ][ 'srcPort' ] )
p_intent_result = p_intent_result1 and p_intent_result2 and p_intent_result3 and p_intent_result4
- if p_intent_result ==main.TRUE:
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info(get_intent_result)
- main.log.info("Point intent related to SDN-IP matching on TCP install successful")
-
- iperf_result = main.Mininet1.iperf('h8', 'h18')
- if iperf_result == main.TRUE:
- main.log.report("iperf test successful")
- else:
- main.log.report("iperf test failed")
+ if p_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( get_intent_result )
+ main.log.info(
+ "Point intent related to SDN-IP matching on TCP install successful" )
+ iperf_result = main.Mininet1.iperf( 'h8', 'h18' )
+ if iperf_result == main.TRUE:
+ main.log.report( "iperf test successful" )
+ else:
+ main.log.report( "iperf test failed" )
case32_result = p_intent_result and iperf_result
- utilities.assert_equals(expect=main.TRUE, actual=case32_result,
- onpass="Ping all test after Point intents addition related to SDN-IP on TCP match successful",
- onfail="Ping all test after Point intents addition related to SDN-IP on TCP match failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case32_result,
+ onpass="Ping all test after Point intents addition related to SDN-IP on TCP match successful",
+ onfail="Ping all test after Point intents addition related to SDN-IP on TCP match failed" )
-
- def CASE33(self):
- '''
- This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and the action is to rewrite the mac address
+ def CASE33( self ):
+ """
+ This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and the action is to rewrite the mac address
Here the mac address to be rewritten is the mac address of the egress device
- '''
+ """
import json
import time
- main.log.report("This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and rewrite mac address action")
- main.case("Adding multipoint to singlepoint intent related to SDN-IP matching on destination ip")
- main.step("Adding bidirectional multipoint to singlepoint intent")
+ main.log.report(
+ "This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and rewrite mac address action" )
+ main.case(
+ "Adding multipoint to singlepoint intent related to SDN-IP matching on destination ip" )
+ main.step( "Adding bidirectional multipoint to singlepoint intent" )
"""
add-multi-to-single-intent --ipDst=10.0.3.0/24 --setEthDst=00:00:00:00:00:12 of:0000000000003008/1 0000000000003009/1 of:0000000000006018/1
-
- add-multi-to-single-intent --ipDst=10.0.1.0/24 --setEthDst=00:00:00:00:00:08 of:0000000000006018/1 0000000000003009/1 of:0000000000003008/1
- """
-
- main.case("Installing multipoint to single point intent with rewrite mac address")
- main.step("Uninstalling proxy arp app")
- #Unistall onos-app-proxyarp app to disable reactive forwarding
- appUninstall_result1 = main.ONOScli1.feature_uninstall("onos-app-proxyarp")
- appUninstall_result2 = main.ONOScli2.feature_uninstall("onos-app-proxyarp")
- appUninstall_result3 = main.ONOScli3.feature_uninstall("onos-app-proxyarp")
- main.log.info("onos-app-proxyarp uninstalled")
- main.step("Changing ipaddress of hosts h8,h9 and h18")
- main.Mininet1.changeIP(host='h8', intf='h8-eth0', newIP='10.0.1.1', newNetmask='255.255.255.0')
- main.Mininet1.changeIP(host='h9', intf='h9-eth0', newIP='10.0.2.1', newNetmask='255.255.255.0')
- main.Mininet1.changeIP(host='h10', intf='h10-eth0', newIP='10.0.3.1', newNetmask='255.255.255.0')
+ add-multi-to-single-intent --ipDst=10.0.1.0/24 --setEthDst=00:00:00:00:00:08 of:0000000000006018/1 0000000000003009/1 of:0000000000003008/1
+ """
+ main.case(
+ "Installing multipoint to single point intent with rewrite mac address" )
+ main.step( "Uninstalling proxy arp app" )
+ # Unistall onos-app-proxyarp app to disable reactive forwarding
+ appUninstall_result1 = main.ONOScli1.feature_uninstall(
+ "onos-app-proxyarp" )
+ appUninstall_result2 = main.ONOScli2.feature_uninstall(
+ "onos-app-proxyarp" )
+ appUninstall_result3 = main.ONOScli3.feature_uninstall(
+ "onos-app-proxyarp" )
+ main.log.info( "onos-app-proxyarp uninstalled" )
- main.step("Changing default gateway of hosts h8,h9 and h18")
- main.Mininet1.changeDefaultGateway(host='h8', newGW='10.0.1.254')
- main.Mininet1.changeDefaultGateway(host='h9', newGW='10.0.2.254')
- main.Mininet1.changeDefaultGateway(host='h10', newGW='10.0.3.254')
+ main.step( "Changing ipaddress of hosts h8,h9 and h18" )
+ main.Mininet1.changeIP(
+ host='h8',
+ intf='h8-eth0',
+ newIP='10.0.1.1',
+ newNetmask='255.255.255.0' )
+ main.Mininet1.changeIP(
+ host='h9',
+ intf='h9-eth0',
+ newIP='10.0.2.1',
+ newNetmask='255.255.255.0' )
+ main.Mininet1.changeIP(
+ host='h10',
+ intf='h10-eth0',
+ newIP='10.0.3.1',
+ newNetmask='255.255.255.0' )
- main.step("Assigning random mac address to the default gateways since proxyarp app is uninstalled")
- main.Mininet1.addStaticMACAddress(host='h8', GW='10.0.1.254', macaddr='00:00:00:00:11:11')
- main.Mininet1.addStaticMACAddress(host='h9', GW='10.0.2.254', macaddr='00:00:00:00:22:22')
- main.Mininet1.addStaticMACAddress(host='h10', GW='10.0.3.254', macaddr='00:00:00:00:33:33')
-
- main.step("Verify static gateway and MAC address assignment")
- main.Mininet1.verifyStaticGWandMAC(host='h8')
- main.Mininet1.verifyStaticGWandMAC(host='h9')
- main.Mininet1.verifyStaticGWandMAC(host='h10')
-
- main.step("Adding multipoint to singlepoint intent")
- p_intent_result1 = main.ONOScli1.add_multipoint_to_singlepoint_intent(ingress_device1=main.params['MULTIPOINT_INTENT']['device1'], ingress_device2=main.params['MULTIPOINT_INTENT']['device2'],
- egress_device=main.params['MULTIPOINT_INTENT']['device3'], ipDst=main.params['MULTIPOINT_INTENT']['ip1'], setEthDst=main.params['MULTIPOINT_INTENT']['mac1'])
-
- p_intent_result2 = main.ONOScli1.add_multipoint_to_singlepoint_intent(ingress_device1=main.params['MULTIPOINT_INTENT']['device3'], ingress_device2=main.params['MULTIPOINT_INTENT']['device2'],
- egress_device=main.params['MULTIPOINT_INTENT']['device1'], ipDst=main.params['MULTIPOINT_INTENT']['ip2'], setEthDst=main.params['MULTIPOINT_INTENT']['mac2'])
+ main.step( "Changing default gateway of hosts h8,h9 and h18" )
+ main.Mininet1.changeDefaultGateway( host='h8', newGW='10.0.1.254' )
+ main.Mininet1.changeDefaultGateway( host='h9', newGW='10.0.2.254' )
+ main.Mininet1.changeDefaultGateway( host='h10', newGW='10.0.3.254' )
+ main.step(
+ "Assigning random mac address to the default gateways since proxyarp app is uninstalled" )
+ main.Mininet1.addStaticMACAddress(
+ host='h8',
+ GW='10.0.1.254',
+ macaddr='00:00:00:00:11:11' )
+ main.Mininet1.addStaticMACAddress(
+ host='h9',
+ GW='10.0.2.254',
+ macaddr='00:00:00:00:22:22' )
+ main.Mininet1.addStaticMACAddress(
+ host='h10',
+ GW='10.0.3.254',
+ macaddr='00:00:00:00:33:33' )
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info("intents = "+ get_intent_result)
-
- time.sleep(10)
- get_flows_result = main.ONOScli1.flows(json_format = False)
- main.log.info("flows = " + get_flows_result)
+ main.step( "Verify static gateway and MAC address assignment" )
+ main.Mininet1.verifyStaticGWandMAC( host='h8' )
+ main.Mininet1.verifyStaticGWandMAC( host='h9' )
+ main.Mininet1.verifyStaticGWandMAC( host='h10' )
+
+ main.step( "Adding multipoint to singlepoint intent" )
+ p_intent_result1 = main.ONOScli1.add_multipoint_to_singlepoint_intent(
+ ingress_device1=main.params[ 'MULTIPOINT_INTENT' ][ 'device1' ],
+ ingress_device2=main.params[ 'MULTIPOINT_INTENT' ][ 'device2' ],
+ egress_device=main.params[ 'MULTIPOINT_INTENT' ][ 'device3' ],
+ ipDst=main.params[ 'MULTIPOINT_INTENT' ][ 'ip1' ],
+ setEthDst=main.params[ 'MULTIPOINT_INTENT' ][ 'mac1' ] )
+
+ p_intent_result2 = main.ONOScli1.add_multipoint_to_singlepoint_intent(
+ ingress_device1=main.params[ 'MULTIPOINT_INTENT' ][ 'device3' ],
+ ingress_device2=main.params[ 'MULTIPOINT_INTENT' ][ 'device2' ],
+ egress_device=main.params[ 'MULTIPOINT_INTENT' ][ 'device1' ],
+ ipDst=main.params[ 'MULTIPOINT_INTENT' ][ 'ip2' ],
+ setEthDst=main.params[ 'MULTIPOINT_INTENT' ][ 'mac2' ] )
+
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( "intents = " + get_intent_result )
+
+ time.sleep( 10 )
+ get_flows_result = main.ONOScli1.flows( json_format=False )
+ main.log.info( "flows = " + get_flows_result )
count = 1
i = 8
Ping_Result = main.TRUE
-
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+2))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+2))
- if ping == main.FALSE and count <3:
- count+=1
+
+ main.log.info( "\n\nh" + str( i ) + " is Pinging h" + str( i + 2 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 2 ) )
+ if ping == main.FALSE and count < 3:
+ count += 1
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+2) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 2 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+2) + "passed!")
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 2 ) +
+ "passed!" )
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
-
- if Ping_Result==main.FALSE:
- main.log.report("Ping test failed.")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Ping all successful")
+ if Ping_Result == main.FALSE:
+ main.log.report( "Ping test failed." )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report( "Ping all successful" )
p_intent_result = p_intent_result1 and p_intent_result2
- if p_intent_result ==main.TRUE:
- main.log.info("Multi point intent with rewrite mac address installation successful")
+ if p_intent_result == main.TRUE:
+ main.log.info(
+ "Multi point intent with rewrite mac address installation successful" )
else:
- main.log.info("Multi point intent with rewrite mac address installation failed")
-
+ main.log.info(
+ "Multi point intent with rewrite mac address installation failed" )
+
case33_result = p_intent_result and Ping_Result
- utilities.assert_equals(expect=main.TRUE, actual=case33_result,
- onpass="Ping all test after multipoint to single point intent addition with rewrite mac address successful",
- onfail="Ping all test after multipoint to single point intent addition with rewrite mac address failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case33_result,
+ onpass="Ping all test after multipoint to single point intent addition with rewrite mac address successful",
+ onfail="Ping all test after multipoint to single point intent addition with rewrite mac address failed" )
diff --git a/TestON/tests/MultiProd13/MultiProd13.py b/TestON/tests/MultiProd13/MultiProd13.py
old mode 100755
new mode 100644
index 1276d33..f26cd5c
--- a/TestON/tests/MultiProd13/MultiProd13.py
+++ b/TestON/tests/MultiProd13/MultiProd13.py
@@ -1,6 +1,6 @@
-#Testing the basic functionality of ONOS Next
-#For sanity and driver functionality excercises only.
+# Testing the basic functionality of ONOS Next
+# For sanity and driver functionality excercises only.
import time
import sys
@@ -9,527 +9,648 @@
import time
import json
-time.sleep(1)
+time.sleep( 1 )
+
+
class MultiProd13:
- def __init__(self):
+
+ def __init__( self ):
self.default = ''
- def CASE1(self, main):
- '''
+ def CASE1( self, main ):
+ """
Startup sequence:
cell <name>
onos-verify-cell
- onos-remove-raft-logs
+ onos-remove-raft-logs
git pull
mvn clean install
onos-package
onos-install -f
onos-wait-for-start
- '''
-
- cell_name = main.params['ENV']['cellName']
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS1_port = main.params['CTRL']['port1']
- ONOS2_port = main.params['CTRL']['port2']
- ONOS3_port = main.params['CTRL']['port3']
-
- main.case("Setting up test environment")
- main.log.report("This testcase is testing setting up test environment")
- main.log.report("__________________________________")
-
- main.step("Applying cell variable to environment")
- cell_result1 = main.ONOSbench.set_cell(cell_name)
- #cell_result2 = main.ONOScli1.set_cell(cell_name)
- #cell_result3 = main.ONOScli2.set_cell(cell_name)
- #cell_result4 = main.ONOScli3.set_cell(cell_name)
- verify_result = main.ONOSbench.verify_cell()
+ """
+ cell_name = main.params[ 'ENV' ][ 'cellName' ]
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS1_port = main.params[ 'CTRL' ][ 'port1' ]
+ ONOS2_port = main.params[ 'CTRL' ][ 'port2' ]
+ ONOS3_port = main.params[ 'CTRL' ][ 'port3' ]
+
+ main.case( "Setting up test environment" )
+ main.log.report(
+ "This testcase is testing setting up test environment" )
+ main.log.report( "__________________________________" )
+
+ main.step( "Applying cell variable to environment" )
+ cell_result1 = main.ONOSbench.set_cell( cell_name )
+ #cell_result2 = main.ONOScli1.set_cell( cell_name )
+ #cell_result3 = main.ONOScli2.set_cell( cell_name )
+ #cell_result4 = main.ONOScli3.set_cell( cell_name )
+ verify_result = main.ONOSbench.verify_cell()
cell_result = cell_result1
- main.step("Removing raft logs before a clen installation of ONOS")
- remove_log_Result = main.ONOSbench.onos_remove_raft_logs()
+ main.step( "Removing raft logs before a clen installation of ONOS" )
+ remove_log_Result = main.ONOSbench.onos_remove_raft_logs()
- main.step("Git checkout and pull master and get version")
- main.ONOSbench.git_checkout("master")
+ main.step( "Git checkout and pull master and get version" )
+ main.ONOSbench.git_checkout( "master" )
git_pull_result = main.ONOSbench.git_pull()
print "git_pull_result = ", git_pull_result
- version_result = main.ONOSbench.get_version(report=True)
+ version_result = main.ONOSbench.get_version( report=True )
if git_pull_result == 1:
- main.step("Using mvn clean & install")
+ main.step( "Using mvn clean & install" )
clean_install_result = main.ONOSbench.clean_install()
- #clean_install_result = main.TRUE
+ #clean_install_result = main.TRUE
- main.step("Creating ONOS package")
+ main.step( "Creating ONOS package" )
package_result = main.ONOSbench.onos_package()
- #main.step("Creating a cell")
- #cell_create_result = main.ONOSbench.create_cell_file(**************)
+ #main.step( "Creating a cell" )
+ # cell_create_result = main.ONOSbench.create_cell_file( **************
+ # )
- main.step("Installing ONOS package")
- onos1_install_result = main.ONOSbench.onos_install(options="-f", node=ONOS1_ip)
- onos2_install_result = main.ONOSbench.onos_install(options="-f", node=ONOS2_ip)
- onos3_install_result = main.ONOSbench.onos_install(options="-f", node=ONOS3_ip)
- onos_install_result = onos1_install_result and onos2_install_result and onos3_install_result
+ main.step( "Installing ONOS package" )
+ onos1_install_result = main.ONOSbench.onos_install(
+ options="-f",
+ node=ONOS1_ip )
+ onos2_install_result = main.ONOSbench.onos_install(
+ options="-f",
+ node=ONOS2_ip )
+ onos3_install_result = main.ONOSbench.onos_install(
+ options="-f",
+ node=ONOS3_ip )
+ onos_install_result = onos1_install_result and onos2_install_result and onos3_install_result
if onos_install_result == main.TRUE:
- main.log.report("Installing ONOS package successful")
+ main.log.report( "Installing ONOS package successful" )
else:
- main.log.report("Installing ONOS package failed")
-
- onos1_isup = main.ONOSbench.isup(ONOS1_ip)
- onos2_isup = main.ONOSbench.isup(ONOS2_ip)
- onos3_isup = main.ONOSbench.isup(ONOS3_ip)
+ main.log.report( "Installing ONOS package failed" )
+
+ onos1_isup = main.ONOSbench.isup( ONOS1_ip )
+ onos2_isup = main.ONOSbench.isup( ONOS2_ip )
+ onos3_isup = main.ONOSbench.isup( ONOS3_ip )
onos_isup = onos1_isup and onos2_isup and onos3_isup
if onos_isup == main.TRUE:
- main.log.report("ONOS instances are up and ready")
+ main.log.report( "ONOS instances are up and ready" )
else:
- main.log.report("ONOS instances may not be up")
+ main.log.report( "ONOS instances may not be up" )
- main.step("Starting ONOS service")
+ main.step( "Starting ONOS service" )
start_result = main.TRUE
- #start_result = main.ONOSbench.onos_start(ONOS1_ip)
- startcli1 = main.ONOScli1.start_onos_cli(ONOS_ip = ONOS1_ip)
- startcli2 = main.ONOScli2.start_onos_cli(ONOS_ip = ONOS2_ip)
- startcli3 = main.ONOScli3.start_onos_cli(ONOS_ip = ONOS3_ip)
+ #start_result = main.ONOSbench.onos_start( ONOS1_ip )
+ startcli1 = main.ONOScli1.start_onos_cli( ONOS_ip=ONOS1_ip )
+ startcli2 = main.ONOScli2.start_onos_cli( ONOS_ip=ONOS2_ip )
+ startcli3 = main.ONOScli3.start_onos_cli( ONOS_ip=ONOS3_ip )
print startcli1
print startcli2
print startcli3
-
- case1_result = (package_result and\
- cell_result and verify_result and onos_install_result and\
- onos_isup and start_result )
- utilities.assert_equals(expect=main.TRUE, actual=case1_result,
- onpass="Test startup successful",
- onfail="Test startup NOT successful")
- def CASE11(self, main):
- '''
+ case1_result = ( package_result and
+ cell_result and verify_result and onos_install_result and
+ onos_isup and start_result )
+ utilities.assert_equals( expect=main.TRUE, actual=case1_result,
+ onpass="Test startup successful",
+ onfail="Test startup NOT successful" )
+
+ def CASE11( self, main ):
+ """
Cleanup sequence:
onos-service <node_ip> stop
onos-uninstall
TODO: Define rest of cleanup
-
- '''
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
-
- main.case("Cleaning up test environment")
+ """
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
- main.step("Testing ONOS kill function")
- kill_result1 = main.ONOSbench.onos_kill(ONOS1_ip)
- kill_result2 = main.ONOSbench.onos_kill(ONOS2_ip)
- kill_result3 = main.ONOSbench.onos_kill(ONOS3_ip)
-
- main.step("Stopping ONOS service")
- stop_result1 = main.ONOSbench.onos_stop(ONOS1_ip)
- stop_result2 = main.ONOSbench.onos_stop(ONOS2_ip)
- stop_result3 = main.ONOSbench.onos_stop(ONOS3_ip)
+ main.case( "Cleaning up test environment" )
- main.step("Uninstalling ONOS service")
+ main.step( "Testing ONOS kill function" )
+ kill_result1 = main.ONOSbench.onos_kill( ONOS1_ip )
+ kill_result2 = main.ONOSbench.onos_kill( ONOS2_ip )
+ kill_result3 = main.ONOSbench.onos_kill( ONOS3_ip )
+
+ main.step( "Stopping ONOS service" )
+ stop_result1 = main.ONOSbench.onos_stop( ONOS1_ip )
+ stop_result2 = main.ONOSbench.onos_stop( ONOS2_ip )
+ stop_result3 = main.ONOSbench.onos_stop( ONOS3_ip )
+
+ main.step( "Uninstalling ONOS service" )
uninstall_result = main.ONOSbench.onos_uninstall()
- def CASE3(self, main):
- '''
+ def CASE3( self, main ):
+ """
Test 'onos' command and its functionality in driver
- '''
-
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
+ """
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
- main.case("Testing 'onos' command")
+ main.case( "Testing 'onos' command" )
- main.step("Sending command 'onos -w <onos-ip> system:name'")
+ main.step( "Sending command 'onos -w <onos-ip> system:name'" )
cmdstr1 = "system:name"
- cmd_result1 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr1)
- main.log.info("onos command returned: "+cmd_result1)
- cmd_result2 = main.ONOSbench.onos_cli(ONOS2_ip, cmdstr1)
- main.log.info("onos command returned: "+cmd_result2)
- cmd_result3 = main.ONOSbench.onos_cli(ONOS3_ip, cmdstr1)
- main.log.info("onos command returned: "+cmd_result3)
+ cmd_result1 = main.ONOSbench.onos_cli( ONOS1_ip, cmdstr1 )
+ main.log.info( "onos command returned: " + cmd_result1 )
+ cmd_result2 = main.ONOSbench.onos_cli( ONOS2_ip, cmdstr1 )
+ main.log.info( "onos command returned: " + cmd_result2 )
+ cmd_result3 = main.ONOSbench.onos_cli( ONOS3_ip, cmdstr1 )
+ main.log.info( "onos command returned: " + cmd_result3 )
- main.step("Sending command 'onos -w <onos-ip> onos:topology'")
+ main.step( "Sending command 'onos -w <onos-ip> onos:topology'" )
cmdstr2 = "onos:topology"
- cmd_result4 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr2)
- main.log.info("onos command returned: "+cmd_result4)
- cmd_result5 = main.ONOSbench.onos_cli(ONOS2_ip, cmdstr2)
- main.log.info("onos command returned: "+cmd_result5)
- cmd_result6 = main.ONOSbench.onos_cli(ONOS6_ip, cmdstr2)
- main.log.info("onos command returned: "+cmd_result6)
+ cmd_result4 = main.ONOSbench.onos_cli( ONOS1_ip, cmdstr2 )
+ main.log.info( "onos command returned: " + cmd_result4 )
+ cmd_result5 = main.ONOSbench.onos_cli( ONOS2_ip, cmdstr2 )
+ main.log.info( "onos command returned: " + cmd_result5 )
+ cmd_result6 = main.ONOSbench.onos_cli( ONOS6_ip, cmdstr2 )
+ main.log.info( "onos command returned: " + cmd_result6 )
-
- def CASE4(self, main):
+ def CASE4( self, main ):
import re
import time
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
- ONOS1_port = main.params['CTRL']['port1']
- ONOS2_port = main.params['CTRL']['port2']
- ONOS3_port = main.params['CTRL']['port3']
-
- main.log.report("This testcase is testing the assignment of all the switches to all controllers and discovering the hosts in reactive mode")
- main.log.report("__________________________________")
- main.case("Pingall Test(No intents are added)")
- main.step("Assigning switches to controllers")
- for i in range(1,29): #1 to (num of switches +1)
- main.Mininet1.assign_sw_controller(sw=str(i),count=3,
- ip1=ONOS1_ip, port1=ONOS1_port,
- ip2=ONOS2_ip, port2=ONOS2_port,
- ip3=ONOS3_ip, port3=ONOS3_port)
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+ ONOS1_port = main.params[ 'CTRL' ][ 'port1' ]
+ ONOS2_port = main.params[ 'CTRL' ][ 'port2' ]
+ ONOS3_port = main.params[ 'CTRL' ][ 'port3' ]
+
+ main.log.report(
+ "This testcase is testing the assignment of all the switches to all controllers and discovering the hosts in reactive mode" )
+ main.log.report( "__________________________________" )
+ main.case( "Pingall Test(No intents are added)" )
+ main.step( "Assigning switches to controllers" )
+ for i in range( 1, 29 ): # 1 to ( num of switches +1 )
+ main.Mininet1.assign_sw_controller(
+ sw=str( i ),
+ count=3,
+ ip1=ONOS1_ip,
+ port1=ONOS1_port,
+ ip2=ONOS2_ip,
+ port2=ONOS2_port,
+ ip3=ONOS3_ip,
+ port3=ONOS3_port )
switch_mastership = main.TRUE
- for i in range (1,29):
- response = main.Mininet1.get_sw_controller("s"+str(i))
- print("Response is " + str(response))
- if re.search("tcp:"+ONOS1_ip,response):
+ for i in range( 1, 29 ):
+ response = main.Mininet1.get_sw_controller( "s" + str( i ) )
+ print( "Response is " + str( response ) )
+ if re.search( "tcp:" + ONOS1_ip, response ):
switch_mastership = switch_mastership and main.TRUE
else:
switch_mastership = main.FALSE
if switch_mastership == main.TRUE:
- main.log.report("Controller assignment successfull")
+ main.log.report( "Controller assignment successfull" )
else:
- main.log.report("Controller assignment failed")
- #REACTIVE FWD test
- main.step("Pingall")
+ main.log.report( "Controller assignment failed" )
+ # REACTIVE FWD test
+ main.step( "Pingall" )
ping_result = main.FALSE
time1 = time.time()
ping_result = main.Mininet1.pingall()
time2 = time.time()
- print "Time for pingall: %2f seconds" % (time2 - time1)
-
+ print "Time for pingall: %2f seconds" % ( time2 - time1 )
+
case4_result = switch_mastership and ping_result
if ping_result == main.TRUE:
- main.log.report("Pingall Test in reactive mode to discover the hosts successful")
+ main.log.report(
+ "Pingall Test in reactive mode to discover the hosts successful" )
else:
- main.log.report("Pingall Test in reactive mode to discover the hosts failed")
+ main.log.report(
+ "Pingall Test in reactive mode to discover the hosts failed" )
- utilities.assert_equals(expect=main.TRUE, actual=case4_result,onpass="Controller assignment and Pingall Test successful",onfail="Controller assignment and Pingall Test NOT successful")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case4_result,
+ onpass="Controller assignment and Pingall Test successful",
+ onfail="Controller assignment and Pingall Test NOT successful" )
-
-
- def CASE5(self,main) :
+ def CASE5( self, main ):
import json
from subprocess import Popen, PIPE
- from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
- ONOS1_ip = main.params['CTRL']['ip1']
- ONOS2_ip = main.params['CTRL']['ip2']
- ONOS3_ip = main.params['CTRL']['ip3']
-
- main.log.report("This testcase is testing if all ONOS nodes are in topology sync with mininet and its peer ONOS nodes")
- main.log.report("__________________________________")
- main.case ("Testing Mininet topology with the topology of multi instances ONOS")
- main.step("Collecting topology information from ONOS")
+ # assumes that sts is already in you PYTHONPATH
+ from sts.topology.teston_topology import TestONTopology
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
+ ONOS2_ip = main.params[ 'CTRL' ][ 'ip2' ]
+ ONOS3_ip = main.params[ 'CTRL' ][ 'ip3' ]
+
+ main.log.report(
+ "This testcase is testing if all ONOS nodes are in topology sync with mininet and its peer ONOS nodes" )
+ main.log.report( "__________________________________" )
+ main.case(
+ "Testing Mininet topology with the topology of multi instances ONOS" )
+ main.step( "Collecting topology information from ONOS" )
devices1 = main.ONOScli1.devices()
devices2 = main.ONOScli2.devices()
devices3 = main.ONOScli3.devices()
- #print "devices1 = ", devices1
- #print "devices2 = ", devices2
- #print "devices3 = ", devices3
+ # print "devices1 = ", devices1
+ # print "devices2 = ", devices2
+ # print "devices3 = ", devices3
hosts1 = main.ONOScli1.hosts()
hosts2 = main.ONOScli2.hosts()
hosts3 = main.ONOScli3.hosts()
- #print "hosts1 = ", hosts1
- #print "hosts2 = ", hosts2
- #print "hosts3 = ", hosts3
+ # print "hosts1 = ", hosts1
+ # print "hosts2 = ", hosts2
+ # print "hosts3 = ", hosts3
ports1 = main.ONOScli1.ports()
ports2 = main.ONOScli2.ports()
ports3 = main.ONOScli3.ports()
- #print "ports1 = ", ports1
- #print "ports2 = ", ports2
- #print "ports3 = ", ports3
+ # print "ports1 = ", ports1
+ # print "ports2 = ", ports2
+ # print "ports3 = ", ports3
links1 = main.ONOScli1.links()
links2 = main.ONOScli2.links()
links3 = main.ONOScli3.links()
- #print "links1 = ", links1
- #print "links2 = ", links2
- #print "links3 = ", links3
-
- print "**************"
-
- main.step("Start continuous pings")
- main.Mininet2.pingLong(src=main.params['PING']['source1'],
- target=main.params['PING']['target1'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source2'],
- target=main.params['PING']['target2'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source3'],
- target=main.params['PING']['target3'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source4'],
- target=main.params['PING']['target4'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source5'],
- target=main.params['PING']['target5'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source6'],
- target=main.params['PING']['target6'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source7'],
- target=main.params['PING']['target7'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source8'],
- target=main.params['PING']['target8'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source9'],
- target=main.params['PING']['target9'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source10'],
- target=main.params['PING']['target10'],pingTime=500)
+ # print "links1 = ", links1
+ # print "links2 = ", links2
+ # print "links3 = ", links3
- main.step("Create TestONTopology object")
+ print "**************"
+
+ main.step( "Start continuous pings" )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source1' ],
+ target=main.params[ 'PING' ][ 'target1' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source2' ],
+ target=main.params[ 'PING' ][ 'target2' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source3' ],
+ target=main.params[ 'PING' ][ 'target3' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source4' ],
+ target=main.params[ 'PING' ][ 'target4' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source5' ],
+ target=main.params[ 'PING' ][ 'target5' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source6' ],
+ target=main.params[ 'PING' ][ 'target6' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source7' ],
+ target=main.params[ 'PING' ][ 'target7' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source8' ],
+ target=main.params[ 'PING' ][ 'target8' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source9' ],
+ target=main.params[ 'PING' ][ 'target9' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source10' ],
+ target=main.params[ 'PING' ][ 'target10' ],
+ pingTime=500 )
+
+ main.step( "Create TestONTopology object" )
global ctrls
ctrls = []
count = 1
while True:
temp = ()
- if ('ip' + str(count)) in main.params['CTRL']:
- temp = temp + (getattr(main,('ONOS' + str(count))),)
- temp = temp + ("ONOS"+str(count),)
- temp = temp + (main.params['CTRL']['ip'+str(count)],)
- temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
- ctrls.append(temp)
+ if ( 'ip' + str( count ) ) in main.params[ 'CTRL' ]:
+ temp = temp + ( getattr( main, ( 'ONOS' + str( count ) ) ), )
+ temp = temp + ( "ONOS" + str( count ), )
+ temp = temp + ( main.params[ 'CTRL' ][ 'ip' + str( count ) ], )
+ temp = temp + \
+ ( eval( main.params[ 'CTRL' ][ 'port' + str( count ) ] ), )
+ ctrls.append( temp )
count = count + 1
else:
break
global MNTopo
- Topo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+ Topo = TestONTopology(
+ main.Mininet1,
+ ctrls ) # can also add Intent API info for intent operations
MNTopo = Topo
Topology_Check = main.TRUE
- main.step("Compare ONOS Topology to MN Topology")
-
- switches_results1 = main.Mininet1.compare_switches(MNTopo, json.loads(devices1))
+ main.step( "Compare ONOS Topology to MN Topology" )
+
+ switches_results1 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices1 ) )
print "switches_Result1 = ", switches_results1
- utilities.assert_equals(expect=main.TRUE, actual=switches_results1,
- onpass="ONOS1 Switches view is correct",
- onfail="ONOS1 Switches view is incorrect")
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results1,
+ onpass="ONOS1 Switches view is correct",
+ onfail="ONOS1 Switches view is incorrect" )
- switches_results2 = main.Mininet1.compare_switches(MNTopo, json.loads(devices2))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results2,
- onpass="ONOS2 Switches view is correct",
- onfail="ONOS2 Switches view is incorrect")
-
- switches_results3 = main.Mininet1.compare_switches(MNTopo, json.loads(devices3))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results3,
- onpass="ONOS3 Switches view is correct",
- onfail="ONOS3 Switches view is incorrect")
+ switches_results2 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results2,
+ onpass="ONOS2 Switches view is correct",
+ onfail="ONOS2 Switches view is incorrect" )
- '''
- ports_results1 = main.Mininet1.compare_ports(MNTopo, json.loads(ports1))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results1,
+ switches_results3 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results3,
+ onpass="ONOS3 Switches view is correct",
+ onfail="ONOS3 Switches view is incorrect" )
+
+ """
+ ports_results1 = main.Mininet1.compare_ports( MNTopo, json.loads( ports1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results1,
onpass="ONOS1 Ports view is correct",
- onfail="ONOS1 Ports view is incorrect")
+ onfail="ONOS1 Ports view is incorrect" )
- ports_results2 = main.Mininet1.compare_ports(MNTopo, json.loads(ports2))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results2,
+ ports_results2 = main.Mininet1.compare_ports( MNTopo, json.loads( ports2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results2,
onpass="ONOS2 Ports view is correct",
- onfail="ONOS2 Ports view is incorrect")
+ onfail="ONOS2 Ports view is incorrect" )
- ports_results3 = main.Mininet1.compare_ports(MNTopo, json.loads(ports3))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results3,
+ ports_results3 = main.Mininet1.compare_ports( MNTopo, json.loads( ports3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results3,
onpass="ONOS3 Ports view is correct",
- onfail="ONOS3 Ports view is incorrect")
- '''
+ onfail="ONOS3 Ports view is incorrect" )
+ """
+ links_results1 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results1,
+ onpass="ONOS1 Links view is correct",
+ onfail="ONOS1 Links view is incorrect" )
- links_results1 = main.Mininet1.compare_links(MNTopo, json.loads(links1))
- utilities.assert_equals(expect=main.TRUE, actual=links_results1,
- onpass="ONOS1 Links view is correct",
- onfail="ONOS1 Links view is incorrect")
+ links_results2 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results2,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
- links_results2 = main.Mininet1.compare_links(MNTopo, json.loads(links2))
- utilities.assert_equals(expect=main.TRUE, actual=links_results2,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
-
- links_results3 = main.Mininet1.compare_links(MNTopo, json.loads(links3))
- utilities.assert_equals(expect=main.TRUE, actual=links_results3,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
+ links_results3 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results3,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
#topo_result = switches_results1 and switches_results2 and switches_results3\
- #and ports_results1 and ports_results2 and ports_results3\
- #and links_results1 and links_results2 and links_results3
-
+ # and ports_results1 and ports_results2 and ports_results3\
+ # and links_results1 and links_results2 and links_results3
+
topo_result = switches_results1 and switches_results2 and switches_results3\
- and links_results1 and links_results2 and links_results3
+ and links_results1 and links_results2 and links_results3
if topo_result == main.TRUE:
- main.log.report("Topology Check Test with mininet and ONOS instances successful")
+ main.log.report(
+ "Topology Check Test with mininet and ONOS instances successful" )
else:
- main.log.report("Topology Check Test with mininet and ONOS instances failed")
+ main.log.report(
+ "Topology Check Test with mininet and ONOS instances failed" )
- utilities.assert_equals(expect=main.TRUE, actual=topo_result,
- onpass="Topology Check Test successful",
- onfail="Topology Check Test NOT successful")
+ utilities.assert_equals( expect=main.TRUE, actual=topo_result,
+ onpass="Topology Check Test successful",
+ onfail="Topology Check Test NOT successful" )
+ def CASE10( self ):
+ main.log.report(
+ "This testcase uninstalls the reactive forwarding app" )
+ main.log.report( "__________________________________" )
+ main.case( "Uninstalling reactive forwarding app" )
+ # Unistall onos-app-fwd app to disable reactive forwarding
+ appUninstall_result1 = main.ONOScli1.feature_uninstall(
+ "onos-app-fwd" )
+ appUninstall_result2 = main.ONOScli2.feature_uninstall(
+ "onos-app-fwd" )
+ appUninstall_result3 = main.ONOScli3.feature_uninstall(
+ "onos-app-fwd" )
+ main.log.info( "onos-app-fwd uninstalled" )
+ # After reactive forwarding is disabled, the reactive flows on switches timeout in 10-15s
+ # So sleep for 15s
+ time.sleep( 15 )
-
- def CASE10(self):
- main.log.report("This testcase uninstalls the reactive forwarding app")
- main.log.report("__________________________________")
- main.case("Uninstalling reactive forwarding app")
- #Unistall onos-app-fwd app to disable reactive forwarding
- appUninstall_result1 = main.ONOScli1.feature_uninstall("onos-app-fwd")
- appUninstall_result2 = main.ONOScli2.feature_uninstall("onos-app-fwd")
- appUninstall_result3 = main.ONOScli3.feature_uninstall("onos-app-fwd")
- main.log.info("onos-app-fwd uninstalled")
-
- #After reactive forwarding is disabled, the reactive flows on switches timeout in 10-15s
- #So sleep for 15s
- time.sleep(15)
-
hosts = main.ONOScli1.hosts()
- main.log.info(hosts)
-
+ main.log.info( hosts )
+
case10_result = appUninstall_result1 and appUninstall_result2 and appUninstall_result3
- utilities.assert_equals(expect=main.TRUE, actual=case10_result,onpass="Reactive forwarding app uninstallation successful",onfail="Reactive forwarding app uninstallation failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case10_result,
+ onpass="Reactive forwarding app uninstallation successful",
+ onfail="Reactive forwarding app uninstallation failed" )
-
- def CASE6(self):
- main.log.report("This testcase is testing the addition of host intents and then doing pingall")
- main.log.report("__________________________________")
- main.case("Obtaining hostsfor adding host intents")
- main.step("Get hosts")
+ def CASE6( self ):
+ main.log.report(
+ "This testcase is testing the addition of host intents and then doing pingall" )
+ main.log.report( "__________________________________" )
+ main.case( "Obtaining hostsfor adding host intents" )
+ main.step( "Get hosts" )
hosts = main.ONOScli1.hosts()
- main.log.info(hosts)
+ main.log.info( hosts )
- main.step("Get all devices id")
+ main.step( "Get all devices id" )
devices_id_list = main.ONOScli1.get_all_devices_id()
- main.log.info(devices_id_list)
+ main.log.info( devices_id_list )
- #ONOS displays the hosts in hex format unlike mininet which does in decimal format
- #So take care while adding intents
-
- '''
- main.step("Add host intents for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:08/-1", "00:00:00:00:00:12/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:09/-1", "00:00:00:00:00:13/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0A/-1", "00:00:00:00:00:14/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0B/-1", "00:00:00:00:00:15/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0C/-1", "00:00:00:00:00:16/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0D/-1", "00:00:00:00:00:17/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0E/-1", "00:00:00:00:00:18/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:0F/-1", "00:00:00:00:00:19/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:10/-1", "00:00:00:00:00:1A/-1")
- hth_intent_result = main.ONOScli1.add_host_intent("00:00:00:00:00:11/-1", "00:00:00:00:00:1B/-1")
- '''
+ # ONOS displays the hosts in hex format unlike mininet which does in decimal format
+ # So take care while adding intents
- for i in range(8,18):
- main.log.info("Adding host intent between h"+str(i)+" and h"+str(i+10))
- host1 = "00:00:00:00:00:" + str(hex(i)[2:]).zfill(2).upper()
- host2 = "00:00:00:00:00:" + str(hex(i+10)[2:]).zfill(2).upper()
- #NOTE: get host can return None
- #TODO: handle this
- host1_id = main.ONOScli1.get_host(host1)['id']
- host2_id = main.ONOScli1.get_host(host2)['id']
- tmp_result = main.ONOScli1.add_host_intent(host1_id, host2_id )
+ """
+ main.step( "Add host intents for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:08/-1", "00:00:00:00:00:12/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:09/-1", "00:00:00:00:00:13/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0A/-1", "00:00:00:00:00:14/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0B/-1", "00:00:00:00:00:15/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0C/-1", "00:00:00:00:00:16/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0D/-1", "00:00:00:00:00:17/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0E/-1", "00:00:00:00:00:18/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:0F/-1", "00:00:00:00:00:19/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:10/-1", "00:00:00:00:00:1A/-1" )
+ hth_intent_result = main.ONOScli1.add_host_intent( "00:00:00:00:00:11/-1", "00:00:00:00:00:1B/-1" )
+ """
+ for i in range( 8, 18 ):
+ main.log.info(
+ "Adding host intent between h" + str( i ) + " and h" + str( i + 10 ) )
+ host1 = "00:00:00:00:00:" + \
+ str( hex( i )[ 2: ] ).zfill( 2 ).upper()
+ host2 = "00:00:00:00:00:" + \
+ str( hex( i + 10 )[ 2: ] ).zfill( 2 ).upper()
+ # NOTE: get host can return None
+ # TODO: handle this
+ host1_id = main.ONOScli1.get_host( host1 )[ 'id' ]
+ host2_id = main.ONOScli1.get_host( host2 )[ 'id' ]
+ tmp_result = main.ONOScli1.add_host_intent( host1_id, host2_id )
flowHandle = main.ONOScli1.flows()
- #print "flowHandle = ", flowHandle
- main.log.info("flows:" +flowHandle)
+ # print "flowHandle = ", flowHandle
+ main.log.info( "flows:" + flowHandle )
count = 1
i = 8
Ping_Result = main.TRUE
- while i <18 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping == main.FALSE and count <5:
- count+=1
+ while i < 18:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.FALSE and count < 5:
+ count += 1
#i = 8
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+10) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
- i=19
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
+ i = 19
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+10) + "passed!")
- i+=1
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "passed!" )
+ i += 1
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
- if Ping_Result==main.FALSE:
- main.log.report("Host intents have not ben installed correctly. Cleaning up")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Host intents have been installed correctly")
+ if Ping_Result == main.FALSE:
+ main.log.report(
+ "Host intents have not ben installed correctly. Cleaning up" )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report( "Host intents have been installed correctly" )
case6_result = Ping_Result
- utilities.assert_equals(expect=main.TRUE, actual=case6_result,
- onpass="Host intent addition and Pingall Test successful",
- onfail="Host intent addition and Pingall Test NOT successful")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case6_result,
+ onpass="Host intent addition and Pingall Test successful",
+ onfail="Host intent addition and Pingall Test NOT successful" )
+ def CASE7( self, main ):
- def CASE7 (self,main):
-
- ONOS1_ip = main.params['CTRL']['ip1']
+ ONOS1_ip = main.params[ 'CTRL' ][ 'ip1' ]
- link_sleep = int(main.params['timers']['LinkDiscovery'])
+ link_sleep = int( main.params[ 'timers' ][ 'LinkDiscovery' ] )
- main.log.report("This testscase is killing a link to ensure that link discovery is consistent")
- main.log.report("__________________________________")
- main.case("Killing a link to Ensure that Link Discovery is Working Properly")
- main.step("Start continuous pings")
-
- main.Mininet2.pingLong(src=main.params['PING']['source1'],
- target=main.params['PING']['target1'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source2'],
- target=main.params['PING']['target2'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source3'],
- target=main.params['PING']['target3'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source4'],
- target=main.params['PING']['target4'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source5'],
- target=main.params['PING']['target5'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source6'],
- target=main.params['PING']['target6'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source7'],
- target=main.params['PING']['target7'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source8'],
- target=main.params['PING']['target8'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source9'],
- target=main.params['PING']['target9'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source10'],
- target=main.params['PING']['target10'],pingTime=500)
+ main.log.report(
+ "This testscase is killing a link to ensure that link discovery is consistent" )
+ main.log.report( "__________________________________" )
+ main.case(
+ "Killing a link to Ensure that Link Discovery is Working Properly" )
+ main.step( "Start continuous pings" )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source1' ],
+ target=main.params[ 'PING' ][ 'target1' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source2' ],
+ target=main.params[ 'PING' ][ 'target2' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source3' ],
+ target=main.params[ 'PING' ][ 'target3' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source4' ],
+ target=main.params[ 'PING' ][ 'target4' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source5' ],
+ target=main.params[ 'PING' ][ 'target5' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source6' ],
+ target=main.params[ 'PING' ][ 'target6' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source7' ],
+ target=main.params[ 'PING' ][ 'target7' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source8' ],
+ target=main.params[ 'PING' ][ 'target8' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source9' ],
+ target=main.params[ 'PING' ][ 'target9' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source10' ],
+ target=main.params[ 'PING' ][ 'target10' ],
+ pingTime=500 )
- main.step("Determine the current number of switches and links")
+ main.step( "Determine the current number of switches and links" )
topology_output = main.ONOScli1.topology()
- topology_result = main.ONOSbench.get_topology(topology_output)
- activeSwitches = topology_result['devices']
- links = topology_result['links']
- print "activeSwitches = ", type(activeSwitches)
- print "links = ", type(links)
- main.log.info("Currently there are %s switches and %s links" %(str(activeSwitches), str(links)))
+ topology_result = main.ONOSbench.get_topology( topology_output )
+ activeSwitches = topology_result[ 'devices' ]
+ links = topology_result[ 'links' ]
+ print "activeSwitches = ", type( activeSwitches )
+ print "links = ", type( links )
+ main.log.info(
+ "Currently there are %s switches and %s links" %
+ ( str( activeSwitches ), str( links ) ) )
- main.step("Kill Link between s3 and s28")
- main.Mininet1.link(END1="s3",END2="s28",OPTION="down")
- time.sleep(link_sleep)
+ main.step( "Kill Link between s3 and s28" )
+ main.Mininet1.link( END1="s3", END2="s28", OPTION="down" )
+ time.sleep( link_sleep )
topology_output = main.ONOScli2.topology()
- Link_Down = main.ONOSbench.check_status(topology_output,activeSwitches,str(int(links)-2))
+ Link_Down = main.ONOSbench.check_status(
+ topology_output, activeSwitches, str(
+ int( links ) - 2 ) )
if Link_Down == main.TRUE:
- main.log.report("Link Down discovered properly")
- utilities.assert_equals(expect=main.TRUE,actual=Link_Down,
- onpass="Link Down discovered properly",
- onfail="Link down was not discovered in "+ str(link_sleep) + " seconds")
-
- main.step("Bring link between s3 and s28 back up")
- Link_Up = main.Mininet1.link(END1="s3",END2="s28",OPTION="up")
- time.sleep(link_sleep)
- topology_output = main.ONOScli2.topology()
- Link_Up = main.ONOSbench.check_status(topology_output,activeSwitches,str(links))
- if Link_Up == main.TRUE:
- main.log.report("Link up discovered properly")
- utilities.assert_equals(expect=main.TRUE,actual=Link_Up,
- onpass="Link up discovered properly",
- onfail="Link up was not discovered in "+ str(link_sleep) + " seconds")
+ main.log.report( "Link Down discovered properly" )
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=Link_Down,
+ onpass="Link Down discovered properly",
+ onfail="Link down was not discovered in " +
+ str( link_sleep ) +
+ " seconds" )
- main.step("Compare ONOS Topology to MN Topology")
- main.case ("Testing Mininet topology with the topology of multi instances ONOS")
- main.step("Collecting topology information from ONOS")
+ main.step( "Bring link between s3 and s28 back up" )
+ Link_Up = main.Mininet1.link( END1="s3", END2="s28", OPTION="up" )
+ time.sleep( link_sleep )
+ topology_output = main.ONOScli2.topology()
+ Link_Up = main.ONOSbench.check_status(
+ topology_output,
+ activeSwitches,
+ str( links ) )
+ if Link_Up == main.TRUE:
+ main.log.report( "Link up discovered properly" )
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=Link_Up,
+ onpass="Link up discovered properly",
+ onfail="Link up was not discovered in " +
+ str( link_sleep ) +
+ " seconds" )
+
+ main.step( "Compare ONOS Topology to MN Topology" )
+ main.case(
+ "Testing Mininet topology with the topology of multi instances ONOS" )
+ main.step( "Collecting topology information from ONOS" )
devices1 = main.ONOScli1.devices()
devices2 = main.ONOScli2.devices()
devices3 = main.ONOScli3.devices()
@@ -539,625 +660,864 @@
hosts1 = main.ONOScli1.hosts()
hosts2 = main.ONOScli2.hosts()
hosts3 = main.ONOScli3.hosts()
- #print "hosts1 = ", hosts1
- #print "hosts2 = ", hosts2
- #print "hosts3 = ", hosts3
+ # print "hosts1 = ", hosts1
+ # print "hosts2 = ", hosts2
+ # print "hosts3 = ", hosts3
ports1 = main.ONOScli1.ports()
ports2 = main.ONOScli2.ports()
ports3 = main.ONOScli3.ports()
- #print "ports1 = ", ports1
- #print "ports2 = ", ports2
- #print "ports3 = ", ports3
+ # print "ports1 = ", ports1
+ # print "ports2 = ", ports2
+ # print "ports3 = ", ports3
links1 = main.ONOScli1.links()
links2 = main.ONOScli2.links()
links3 = main.ONOScli3.links()
- #print "links1 = ", links1
- #print "links2 = ", links2
- #print "links3 = ", links3
-
- print "**************"
-
- main.step("Start continuous pings")
- main.Mininet2.pingLong(src=main.params['PING']['source1'],
- target=main.params['PING']['target1'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source2'],
- target=main.params['PING']['target2'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source3'],
- target=main.params['PING']['target3'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source4'],
- target=main.params['PING']['target4'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source5'],
- target=main.params['PING']['target5'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source6'],
- target=main.params['PING']['target6'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source7'],
- target=main.params['PING']['target7'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source8'],
- target=main.params['PING']['target8'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source9'],
- target=main.params['PING']['target9'],pingTime=500)
- main.Mininet2.pingLong(src=main.params['PING']['source10'],
- target=main.params['PING']['target10'],pingTime=500)
+ # print "links1 = ", links1
+ # print "links2 = ", links2
+ # print "links3 = ", links3
- main.step("Create TestONTopology object")
+ print "**************"
+
+ main.step( "Start continuous pings" )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source1' ],
+ target=main.params[ 'PING' ][ 'target1' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source2' ],
+ target=main.params[ 'PING' ][ 'target2' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source3' ],
+ target=main.params[ 'PING' ][ 'target3' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source4' ],
+ target=main.params[ 'PING' ][ 'target4' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source5' ],
+ target=main.params[ 'PING' ][ 'target5' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source6' ],
+ target=main.params[ 'PING' ][ 'target6' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source7' ],
+ target=main.params[ 'PING' ][ 'target7' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source8' ],
+ target=main.params[ 'PING' ][ 'target8' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source9' ],
+ target=main.params[ 'PING' ][ 'target9' ],
+ pingTime=500 )
+ main.Mininet2.pingLong(
+ src=main.params[ 'PING' ][ 'source10' ],
+ target=main.params[ 'PING' ][ 'target10' ],
+ pingTime=500 )
+
+ main.step( "Create TestONTopology object" )
global ctrls
ctrls = []
count = 1
while True:
temp = ()
- if ('ip' + str(count)) in main.params['CTRL']:
- temp = temp + (getattr(main,('ONOS' + str(count))),)
- temp = temp + ("ONOS"+str(count),)
- temp = temp + (main.params['CTRL']['ip'+str(count)],)
- temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
- ctrls.append(temp)
+ if ( 'ip' + str( count ) ) in main.params[ 'CTRL' ]:
+ temp = temp + ( getattr( main, ( 'ONOS' + str( count ) ) ), )
+ temp = temp + ( "ONOS" + str( count ), )
+ temp = temp + ( main.params[ 'CTRL' ][ 'ip' + str( count ) ], )
+ temp = temp + \
+ ( eval( main.params[ 'CTRL' ][ 'port' + str( count ) ] ), )
+ ctrls.append( temp )
count = count + 1
else:
break
global MNTopo
- Topo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+ Topo = TestONTopology(
+ main.Mininet1,
+ ctrls ) # can also add Intent API info for intent operations
MNTopo = Topo
Topology_Check = main.TRUE
- main.step("Compare ONOS Topology to MN Topology")
-
- switches_results1 = main.Mininet1.compare_switches(MNTopo, json.loads(devices1))
+ main.step( "Compare ONOS Topology to MN Topology" )
+
+ switches_results1 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices1 ) )
print "switches_Result1 = ", switches_results1
- utilities.assert_equals(expect=main.TRUE, actual=switches_results1,
- onpass="ONOS1 Switches view is correct",
- onfail="ONOS1 Switches view is incorrect")
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results1,
+ onpass="ONOS1 Switches view is correct",
+ onfail="ONOS1 Switches view is incorrect" )
- switches_results2 = main.Mininet1.compare_switches(MNTopo, json.loads(devices2))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results2,
- onpass="ONOS2 Switches view is correct",
- onfail="ONOS2 Switches view is incorrect")
-
- switches_results3 = main.Mininet1.compare_switches(MNTopo, json.loads(devices3))
- utilities.assert_equals(expect=main.TRUE, actual=switches_results3,
- onpass="ONOS3 Switches view is correct",
- onfail="ONOS3 Switches view is incorrect")
+ switches_results2 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results2,
+ onpass="ONOS2 Switches view is correct",
+ onfail="ONOS2 Switches view is incorrect" )
- '''
- ports_results1 = main.Mininet1.compare_ports(MNTopo, json.loads(ports1))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results1,
+ switches_results3 = main.Mininet1.compare_switches(
+ MNTopo,
+ json.loads( devices3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=switches_results3,
+ onpass="ONOS3 Switches view is correct",
+ onfail="ONOS3 Switches view is incorrect" )
+
+ """
+ ports_results1 = main.Mininet1.compare_ports( MNTopo, json.loads( ports1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results1,
onpass="ONOS1 Ports view is correct",
- onfail="ONOS1 Ports view is incorrect")
+ onfail="ONOS1 Ports view is incorrect" )
- ports_results2 = main.Mininet1.compare_ports(MNTopo, json.loads(ports2))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results2,
+ ports_results2 = main.Mininet1.compare_ports( MNTopo, json.loads( ports2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results2,
onpass="ONOS2 Ports view is correct",
- onfail="ONOS2 Ports view is incorrect")
+ onfail="ONOS2 Ports view is incorrect" )
- ports_results3 = main.Mininet1.compare_ports(MNTopo, json.loads(ports3))
- utilities.assert_equals(expect=main.TRUE, actual=ports_results3,
+ ports_results3 = main.Mininet1.compare_ports( MNTopo, json.loads( ports3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=ports_results3,
onpass="ONOS3 Ports view is correct",
- onfail="ONOS3 Ports view is incorrect")
- '''
+ onfail="ONOS3 Ports view is incorrect" )
+ """
+ links_results1 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links1 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results1,
+ onpass="ONOS1 Links view is correct",
+ onfail="ONOS1 Links view is incorrect" )
- links_results1 = main.Mininet1.compare_links(MNTopo, json.loads(links1))
- utilities.assert_equals(expect=main.TRUE, actual=links_results1,
- onpass="ONOS1 Links view is correct",
- onfail="ONOS1 Links view is incorrect")
+ links_results2 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links2 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results2,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
- links_results2 = main.Mininet1.compare_links(MNTopo, json.loads(links2))
- utilities.assert_equals(expect=main.TRUE, actual=links_results2,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
+ links_results3 = main.Mininet1.compare_links(
+ MNTopo,
+ json.loads( links3 ) )
+ utilities.assert_equals( expect=main.TRUE, actual=links_results3,
+ onpass="ONOS2 Links view is correct",
+ onfail="ONOS2 Links view is incorrect" )
- links_results3 = main.Mininet1.compare_links(MNTopo, json.loads(links3))
- utilities.assert_equals(expect=main.TRUE, actual=links_results3,
- onpass="ONOS2 Links view is correct",
- onfail="ONOS2 Links view is incorrect")
-
#topo_result = switches_results1 and switches_results2 and switches_results3\
- #and ports_results1 and ports_results2 and ports_results3\
- #and links_results1 and links_results2 and links_results3
-
+ # and ports_results1 and ports_results2 and ports_results3\
+ # and links_results1 and links_results2 and links_results3
+
topo_result = switches_results1 and switches_results2 and switches_results3\
- and links_results1 and links_results2 and links_results3
+ and links_results1 and links_results2 and links_results3
- utilities.assert_equals(expect=main.TRUE, actual=topo_result and Link_Up and Link_Down,
- onpass="Topology Check Test successful",
- onfail="Topology Check Test NOT successful")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=topo_result and Link_Up and Link_Down,
+ onpass="Topology Check Test successful",
+ onfail="Topology Check Test NOT successful" )
-
- def CASE8(self):
- '''
+ def CASE8( self ):
+ """
Intent removal
- '''
- main.log.report("This testcase removes host any previously added intents")
- main.log.report("__________________________________")
- main.log.info("Removing any previously installed intents")
- main.case("Removing intents")
- main.step("Obtain the intent id's")
- intent_result = main.ONOScli1.intents(json_format = False)
-
- intent_linewise = intent_result.split("\n")
+ """
+ main.log.report(
+ "This testcase removes host any previously added intents" )
+ main.log.report( "__________________________________" )
+ main.log.info( "Removing any previously installed intents" )
+ main.case( "Removing intents" )
+ main.step( "Obtain the intent id's" )
+ intent_result = main.ONOScli1.intents( json_format=False )
+
+ intent_linewise = intent_result.split( "\n" )
intentList = []
for line in intent_linewise:
- if line.startswith("id="):
- intentList.append(line)
+ if line.startswith( "id=" ):
+ intentList.append( line )
intentids = []
for line in intentList:
- intentids.append(line.split(",")[0].split("=")[1])
+ intentids.append( line.split( "," )[ 0 ].split( "=" )[ 1 ] )
for id in intentids:
- main.log.info("id = " +id)
+ main.log.info( "id = " + id )
- main.step("Iterate through the intentids list and remove each intent")
+ main.step(
+ "Iterate through the intentids list and remove each intent" )
for id in intentids:
- main.ONOScli1.remove_intent(intent_id = id)
+ main.ONOScli1.remove_intent( intent_id=id )
- intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info("intent_result = " +intent_result)
+ intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( "intent_result = " + intent_result )
case8_result = main.TRUE
-
+
i = 8
Ping_Result = main.TRUE
- while i <18 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping==main.TRUE:
+ while i < 18:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.TRUE:
i = 19
Ping_Result = main.TRUE
- elif ping==main.FALSE:
- i+=1
+ elif ping == main.FALSE:
+ i += 1
Ping_Result = main.FALSE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
-
- #Note: If the ping result failed, that means the intents have been withdrawn correctly.
- if Ping_Result==main.TRUE:
- main.log.report("Host intents have not been withdrawn correctly")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.FALSE:
- main.log.report("Host intents have been withdrawn correctly")
+
+ # Note: If the ping result failed, that means the intents have been
+ # withdrawn correctly.
+ if Ping_Result == main.TRUE:
+ main.log.report( "Host intents have not been withdrawn correctly" )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.FALSE:
+ main.log.report( "Host intents have been withdrawn correctly" )
case8_result = case8_result and Ping_Result
if case8_result == main.FALSE:
- main.log.report("Intent removal successful")
+ main.log.report( "Intent removal successful" )
else:
- main.log.report("Intent removal failed")
-
- utilities.assert_equals(expect=main.FALSE, actual=case8_result,
- onpass="Intent removal test failed",
- onfail="Intent removal test successful")
-
+ main.log.report( "Intent removal failed" )
- def CASE9(self):
- '''
+ utilities.assert_equals( expect=main.FALSE, actual=case8_result,
+ onpass="Intent removal test failed",
+ onfail="Intent removal test successful" )
+
+ def CASE9( self ):
+ """
This test case adds point intents. Make sure you run test case 8 which is host intent removal before executing this test case.
Else the host intent's flows will persist on switches and the pings would work even if there is some issue with the point intent's flows
- '''
- main.log.report("This testcase adds point intents and then does pingall")
- main.log.report("__________________________________")
- main.log.info("Adding point intents")
- main.case("Adding bidirectional point for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)")
- main.step("Add point-to-point intents for mininet hosts h8 and h18 or ONOS hosts h8 and h12")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003008/1", "of:0000000000006018/1")
+ """
+ main.log.report(
+ "This testcase adds point intents and then does pingall" )
+ main.log.report( "__________________________________" )
+ main.log.info( "Adding point intents" )
+ main.case(
+ "Adding bidirectional point for mn hosts(h8-h18,h9-h19,h10-h20,h11-h21,h12-h22,h13-h23,h14-h24,h15-h25,h16-h26,h17-h27)" )
+ main.step(
+ "Add point-to-point intents for mininet hosts h8 and h18 or ONOS hosts h8 and h12" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003008/1",
+ "of:0000000000006018/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006018/1", "of:0000000000003008/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h9 and h19 or ONOS hosts h9 and h13")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003009/1", "of:0000000000006019/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006019/1", "of:0000000000003009/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h10 and h20 or ONOS hosts hA and h14")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003010/1", "of:0000000000006020/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006020/1", "of:0000000000003010/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
- main.step("Add point-to-point intents for mininet hosts h11 and h21 or ONOS hosts hB and h15")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003011/1", "of:0000000000006021/1")
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006018/1",
+ "of:0000000000003008/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006021/1", "of:0000000000003011/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h12 and h22 or ONOS hosts hC and h16")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003012/1", "of:0000000000006022/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006022/1", "of:0000000000003012/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h13 and h23 or ONOS hosts hD and h17")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003013/1", "of:0000000000006023/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006023/1", "of:0000000000003013/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
- main.step("Add point-to-point intents for mininet hosts h14 and h24 or ONOS hosts hE and h18")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003014/1", "of:0000000000006024/1")
+ main.step(
+ "Add point-to-point intents for mininet hosts h9 and h19 or ONOS hosts h9 and h13" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003009/1",
+ "of:0000000000006019/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006024/1", "of:0000000000003014/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h15 and h25 or ONOS hosts hF and h19")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003015/1", "of:0000000000006025/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006025/1", "of:0000000000003015/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- main.step("Add point-to-point intents for mininet hosts h16 and h26 or ONOS hosts h10 and h1A")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003016/1", "of:0000000000006026/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006026/1", "of:0000000000003016/1")
- if ptp_intent_result == main.TRUE:
- get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
-
- main.step("Add point-to-point intents for mininet hosts h17 and h27 or ONOS hosts h11 and h1B")
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000003017/1", "of:0000000000006027/1")
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006019/1",
+ "of:0000000000003009/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
-
- ptp_intent_result = main.ONOScli1.add_point_intent("of:0000000000006027/1", "of:0000000000003017/1")
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h10 and h20 or ONOS hosts hA and h14" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003010/1",
+ "of:0000000000006020/1" )
if ptp_intent_result == main.TRUE:
get_intent_result = main.ONOScli1.intents()
- main.log.info("Point to point intent install successful")
- #main.log.info(get_intent_result)
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
- print("_______________________________________________________________________________________")
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006020/1",
+ "of:0000000000003010/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h11 and h21 or ONOS hosts hB and h15" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003011/1",
+ "of:0000000000006021/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006021/1",
+ "of:0000000000003011/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h12 and h22 or ONOS hosts hC and h16" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003012/1",
+ "of:0000000000006022/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006022/1",
+ "of:0000000000003012/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h13 and h23 or ONOS hosts hD and h17" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003013/1",
+ "of:0000000000006023/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006023/1",
+ "of:0000000000003013/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h14 and h24 or ONOS hosts hE and h18" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003014/1",
+ "of:0000000000006024/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006024/1",
+ "of:0000000000003014/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h15 and h25 or ONOS hosts hF and h19" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003015/1",
+ "of:0000000000006025/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006025/1",
+ "of:0000000000003015/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h16 and h26 or ONOS hosts h10 and h1A" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003016/1",
+ "of:0000000000006026/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006026/1",
+ "of:0000000000003016/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ main.step(
+ "Add point-to-point intents for mininet hosts h17 and h27 or ONOS hosts h11 and h1B" )
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000003017/1",
+ "of:0000000000006027/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ ptp_intent_result = main.ONOScli1.add_point_intent(
+ "of:0000000000006027/1",
+ "of:0000000000003017/1" )
+ if ptp_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents()
+ main.log.info( "Point to point intent install successful" )
+ # main.log.info( get_intent_result )
+
+ print(
+ "_______________________________________________________________________________________" )
flowHandle = main.ONOScli1.flows()
- #print "flowHandle = ", flowHandle
- main.log.info("flows :" + flowHandle)
+ # print "flowHandle = ", flowHandle
+ main.log.info( "flows :" + flowHandle )
count = 1
i = 8
Ping_Result = main.TRUE
- while i <18 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping == main.FALSE and count <5:
- count+=1
+ while i < 18:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.FALSE and count < 5:
+ count += 1
#i = 8
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+10) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
- i=19
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
+ i = 19
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+10) + "passed!")
- i+=1
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "passed!" )
+ i += 1
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
- if Ping_Result==main.FALSE:
- main.log.report("Ping all test after Point intents addition failed. Cleaning up")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Ping all test after Point intents addition successful")
+ if Ping_Result == main.FALSE:
+ main.log.report(
+ "Ping all test after Point intents addition failed. Cleaning up" )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report(
+ "Ping all test after Point intents addition successful" )
case8_result = Ping_Result
- utilities.assert_equals(expect=main.TRUE, actual=case8_result,
- onpass="Ping all test after Point intents addition successful",
- onfail="Ping all test after Point intents addition failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case8_result,
+ onpass="Ping all test after Point intents addition successful",
+ onfail="Ping all test after Point intents addition failed" )
- def CASE31(self):
- '''
- This test case adds point intent related to SDN-IP matching on ICMP (ethertype=IPV4, ipProto=1)
- '''
+ def CASE31( self ):
+ """
+ This test case adds point intent related to SDN-IP matching on ICMP ( ethertype=IPV4, ipProto=1 )
+ """
import json
- main.log.report("This test case adds point intent related to SDN-IP matching on ICMP")
- main.case("Adding bidirectional point intent related to SDN-IP matching on ICMP")
- main.step("Adding bidirectional point intent")
- #add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32 --ethType=IPV4 --ipProto=1 of:0000000000003008/1 of:0000000000006018/1
-
- hosts_json = json.loads(main.ONOScli1.hosts())
- for i in range(8,11):
- main.log.info("Adding point intent between h"+str(i)+" and h"+str(i+10))
- host1 = "00:00:00:00:00:" + str(hex(i)[2:]).zfill(2).upper()
- host2 = "00:00:00:00:00:" + str(hex(i+10)[2:]).zfill(2).upper()
- host1_id = main.ONOScli1.get_host(host1)['id']
- host2_id = main.ONOScli1.get_host(host2)['id']
+ main.log.report(
+ "This test case adds point intent related to SDN-IP matching on ICMP" )
+ main.case(
+ "Adding bidirectional point intent related to SDN-IP matching on ICMP" )
+ main.step( "Adding bidirectional point intent" )
+ # add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32
+ # --ethType=IPV4 --ipProto=1 of:0000000000003008/1
+ # of:0000000000006018/1
+
+ hosts_json = json.loads( main.ONOScli1.hosts() )
+ for i in range( 8, 11 ):
+ main.log.info(
+ "Adding point intent between h" + str( i ) + " and h" + str( i + 10 ) )
+ host1 = "00:00:00:00:00:" + \
+ str( hex( i )[ 2: ] ).zfill( 2 ).upper()
+ host2 = "00:00:00:00:00:" + \
+ str( hex( i + 10 )[ 2: ] ).zfill( 2 ).upper()
+ host1_id = main.ONOScli1.get_host( host1 )[ 'id' ]
+ host2_id = main.ONOScli1.get_host( host2 )[ 'id' ]
for host in hosts_json:
- if host['id'] == host1_id:
- ip1 = host['ips'][0]
- ip1 = str(ip1+"/32")
- device1 = host['location']['device']
- device1 = str(device1+"/1")
- elif host['id'] == host2_id:
- ip2 = str(host['ips'][0])+"/32"
- device2 = host['location']["device"]
- device2 = str(device2+"/1")
-
- p_intent_result1 = main.ONOScli1.add_point_intent(ingress_device=device1, egress_device=device2, ipSrc=ip1, ipDst=ip2,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['icmpProto'])
-
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info(get_intent_result)
-
- p_intent_result2 = main.ONOScli1.add_point_intent(ingress_device=device2, egress_device=device1, ipSrc=ip2, ipDst=ip1,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['icmpProto'])
-
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info(get_intent_result)
- if (p_intent_result1 and p_intent_result2) == main.TRUE:
+ if host[ 'id' ] == host1_id:
+ ip1 = host[ 'ips' ][ 0 ]
+ ip1 = str( ip1 + "/32" )
+ device1 = host[ 'location' ][ 'device' ]
+ device1 = str( device1 + "/1" )
+ elif host[ 'id' ] == host2_id:
+ ip2 = str( host[ 'ips' ][ 0 ] ) + "/32"
+ device2 = host[ 'location' ][ "device" ]
+ device2 = str( device2 + "/1" )
+
+ p_intent_result1 = main.ONOScli1.add_point_intent(
+ ingress_device=device1,
+ egress_device=device2,
+ ipSrc=ip1,
+ ipDst=ip2,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'icmpProto' ] )
+
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( get_intent_result )
+
+ p_intent_result2 = main.ONOScli1.add_point_intent(
+ ingress_device=device2,
+ egress_device=device1,
+ ipSrc=ip2,
+ ipDst=ip1,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'icmpProto' ] )
+
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( get_intent_result )
+ if ( p_intent_result1 and p_intent_result2 ) == main.TRUE:
#get_intent_result = main.ONOScli1.intents()
- #main.log.info(get_intent_result)
- main.log.info("Point intent related to SDN-IP matching on ICMP install successful")
-
- time.sleep(15)
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info("intents = "+ get_intent_result)
+ # main.log.info( get_intent_result )
+ main.log.info(
+ "Point intent related to SDN-IP matching on ICMP install successful" )
+
+ time.sleep( 15 )
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( "intents = " + get_intent_result )
get_flows_result = main.ONOScli1.flows()
- main.log.info("flows = " + get_flows_result)
-
+ main.log.info( "flows = " + get_flows_result )
+
count = 1
i = 8
Ping_Result = main.TRUE
- while i <11 :
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+10))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+10))
- if ping == main.FALSE and count <3:
- count+=1
+ while i < 11:
+ main.log.info(
+ "\n\nh" + str( i ) + " is Pinging h" + str( i + 10 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 10 ) )
+ if ping == main.FALSE and count < 3:
+ count += 1
#i = 8
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+10) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
- i=19
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
+ i = 19
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+10) + "passed!")
- i+=1
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "passed!" )
+ i += 1
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
- if Ping_Result==main.FALSE:
- main.log.report("Ping test after Point intents related to SDN-IP matching on ICMP failed.")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Ping all test after Point intents related to SDN-IP matching on ICMP successful")
-
+ if Ping_Result == main.FALSE:
+ main.log.report(
+ "Ping test after Point intents related to SDN-IP matching on ICMP failed." )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report(
+ "Ping all test after Point intents related to SDN-IP matching on ICMP successful" )
+
case31_result = Ping_Result and p_intent_result1 and p_intent_result2
- utilities.assert_equals(expect=main.TRUE, actual=case31_result,
- onpass="Point intent related to SDN-IP matching on ICMP and ping test successful",
- onfail="Point intent related to SDN-IP matching on ICMP and ping test failed")
-
- def CASE32(self):
- '''
- This test case adds point intent related to SDN-IP matching on TCP (ethertype=IPV4, ipProto=6, DefaultPort for iperf=5001)
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case31_result,
+ onpass="Point intent related to SDN-IP matching on ICMP and ping test successful",
+ onfail="Point intent related to SDN-IP matching on ICMP and ping test failed" )
+
+ def CASE32( self ):
+ """
+ This test case adds point intent related to SDN-IP matching on TCP ( ethertype=IPV4, ipProto=6, DefaultPort for iperf=5001 )
Note: Although BGP port is 179, we are using 5001 because iperf is used for verifying and iperf's default port is 5001
- '''
+ """
import json
- main.log.report("This test case adds point intent related to SDN-IP matching on TCP")
- main.case("Adding bidirectional point intent related to SDN-IP matching on TCP")
- main.step("Adding bidirectional point intent")
+ main.log.report(
+ "This test case adds point intent related to SDN-IP matching on TCP" )
+ main.case(
+ "Adding bidirectional point intent related to SDN-IP matching on TCP" )
+ main.step( "Adding bidirectional point intent" )
"""
add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32 --ethType=IPV4 --ipProto=6 --tcpDst=5001 of:0000000000003008/1 of:0000000000006018/1
add-point-intent --ipSrc=10.0.0.18/32 --ipDst=10.0.0.8/32 --ethType=IPV4 --ipProto=6 --tcpDst=5001 of:0000000000006018/1 of:0000000000003008/1
-
+
add-point-intent --ipSrc=10.0.0.8/32 --ipDst=10.0.0.18/32 --ethType=IPV4 --ipProto=6 --tcpSrc=5001 of:0000000000003008/1 of:0000000000006018/1
add-point-intent --ipSrc=10.0.0.18/32 --ipDst=10.0.0.8/32 --ethType=IPV4 --ipProto=6 --tcpSrc=5001 of:0000000000006018/1 of:0000000000003008/1
- """
-
- hosts_json = json.loads(main.ONOScli1.hosts())
- for i in range(8,9):
- main.log.info("Adding point intent between h"+str(i)+" and h"+str(i+10))
- host1 = "00:00:00:00:00:" + str(hex(i)[2:]).zfill(2).upper()
- host2 = "00:00:00:00:00:" + str(hex(i+10)[2:]).zfill(2).upper()
- host1_id = main.ONOScli1.get_host(host1)['id']
- host2_id = main.ONOScli1.get_host(host2)['id']
+ """
+ hosts_json = json.loads( main.ONOScli1.hosts() )
+ for i in range( 8, 9 ):
+ main.log.info(
+ "Adding point intent between h" + str( i ) + " and h" + str( i + 10 ) )
+ host1 = "00:00:00:00:00:" + \
+ str( hex( i )[ 2: ] ).zfill( 2 ).upper()
+ host2 = "00:00:00:00:00:" + \
+ str( hex( i + 10 )[ 2: ] ).zfill( 2 ).upper()
+ host1_id = main.ONOScli1.get_host( host1 )[ 'id' ]
+ host2_id = main.ONOScli1.get_host( host2 )[ 'id' ]
for host in hosts_json:
- if host['id'] == host1_id:
- ip1 = host['ips'][0]
- ip1 = str(ip1+"/32")
- device1 = host['location']['device']
- device1 = str(device1+"/1")
- elif host['id'] == host2_id:
- ip2 = str(host['ips'][0])+"/32"
- device2 = host['location']["device"]
- device2 = str(device2+"/1")
-
- p_intent_result1 = main.ONOScli1.add_point_intent(ingress_device=device1, egress_device=device2, ipSrc=ip1, ipDst=ip2,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpDst=main.params['SDNIP']['dstPort'])
- p_intent_result2 = main.ONOScli1.add_point_intent(ingress_device=device2, egress_device=device1, ipSrc=ip2, ipDst=ip1,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpDst=main.params['SDNIP']['dstPort'])
+ if host[ 'id' ] == host1_id:
+ ip1 = host[ 'ips' ][ 0 ]
+ ip1 = str( ip1 + "/32" )
+ device1 = host[ 'location' ][ 'device' ]
+ device1 = str( device1 + "/1" )
+ elif host[ 'id' ] == host2_id:
+ ip2 = str( host[ 'ips' ][ 0 ] ) + "/32"
+ device2 = host[ 'location' ][ "device" ]
+ device2 = str( device2 + "/1" )
- p_intent_result3 = main.ONOScli1.add_point_intent(ingress_device=device1, egress_device=device2, ipSrc=ip1, ipDst=ip2,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpSrc=main.params['SDNIP']['srcPort'])
- p_intent_result4 = main.ONOScli1.add_point_intent(ingress_device=device2, egress_device=device1, ipSrc=ip2, ipDst=ip1,
- ethType=main.params['SDNIP']['ethType'], ipProto=main.params['SDNIP']['tcpProto'], tcpSrc=main.params['SDNIP']['srcPort'])
+ p_intent_result1 = main.ONOScli1.add_point_intent(
+ ingress_device=device1,
+ egress_device=device2,
+ ipSrc=ip1,
+ ipDst=ip2,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpDst=main.params[ 'SDNIP' ][ 'dstPort' ] )
+ p_intent_result2 = main.ONOScli1.add_point_intent(
+ ingress_device=device2,
+ egress_device=device1,
+ ipSrc=ip2,
+ ipDst=ip1,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpDst=main.params[ 'SDNIP' ][ 'dstPort' ] )
+
+ p_intent_result3 = main.ONOScli1.add_point_intent(
+ ingress_device=device1,
+ egress_device=device2,
+ ipSrc=ip1,
+ ipDst=ip2,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpSrc=main.params[ 'SDNIP' ][ 'srcPort' ] )
+ p_intent_result4 = main.ONOScli1.add_point_intent(
+ ingress_device=device2,
+ egress_device=device1,
+ ipSrc=ip2,
+ ipDst=ip1,
+ ethType=main.params[ 'SDNIP' ][ 'ethType' ],
+ ipProto=main.params[ 'SDNIP' ][ 'tcpProto' ],
+ tcpSrc=main.params[ 'SDNIP' ][ 'srcPort' ] )
p_intent_result = p_intent_result1 and p_intent_result2 and p_intent_result3 and p_intent_result4
- if p_intent_result ==main.TRUE:
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info(get_intent_result)
- main.log.info("Point intent related to SDN-IP matching on TCP install successful")
-
- iperf_result = main.Mininet1.iperf('h8', 'h18')
- if iperf_result == main.TRUE:
- main.log.report("iperf test successful")
- else:
- main.log.report("iperf test failed")
+ if p_intent_result == main.TRUE:
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( get_intent_result )
+ main.log.info(
+ "Point intent related to SDN-IP matching on TCP install successful" )
+ iperf_result = main.Mininet1.iperf( 'h8', 'h18' )
+ if iperf_result == main.TRUE:
+ main.log.report( "iperf test successful" )
+ else:
+ main.log.report( "iperf test failed" )
case32_result = p_intent_result and iperf_result
- utilities.assert_equals(expect=main.TRUE, actual=case32_result,
- onpass="Ping all test after Point intents addition related to SDN-IP on TCP match successful",
- onfail="Ping all test after Point intents addition related to SDN-IP on TCP match failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case32_result,
+ onpass="Ping all test after Point intents addition related to SDN-IP on TCP match successful",
+ onfail="Ping all test after Point intents addition related to SDN-IP on TCP match failed" )
-
- def CASE33(self):
- '''
- This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and the action is to rewrite the mac address
+ def CASE33( self ):
+ """
+ This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and the action is to rewrite the mac address
Here the mac address to be rewritten is the mac address of the egress device
- '''
+ """
import json
import time
- main.log.report("This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and rewrite mac address action")
- main.case("Adding multipoint to singlepoint intent related to SDN-IP matching on destination ip")
- main.step("Adding bidirectional multipoint to singlepoint intent")
+ main.log.report(
+ "This test case adds multipoint to singlepoint intent related to SDN-IP matching on destination ip and rewrite mac address action" )
+ main.case(
+ "Adding multipoint to singlepoint intent related to SDN-IP matching on destination ip" )
+ main.step( "Adding bidirectional multipoint to singlepoint intent" )
"""
add-multi-to-single-intent --ipDst=10.0.3.0/24 --setEthDst=00:00:00:00:00:12 of:0000000000003008/1 0000000000003009/1 of:0000000000006018/1
-
- add-multi-to-single-intent --ipDst=10.0.1.0/24 --setEthDst=00:00:00:00:00:08 of:0000000000006018/1 0000000000003009/1 of:0000000000003008/1
- """
-
- main.case("Installing multipoint to single point intent with rewrite mac address")
- main.step("Uninstalling proxy arp app")
- #Unistall onos-app-proxyarp app to disable reactive forwarding
- appUninstall_result1 = main.ONOScli1.feature_uninstall("onos-app-proxyarp")
- appUninstall_result2 = main.ONOScli2.feature_uninstall("onos-app-proxyarp")
- appUninstall_result3 = main.ONOScli3.feature_uninstall("onos-app-proxyarp")
- main.log.info("onos-app-proxyarp uninstalled")
- main.step("Changing ipaddress of hosts h8,h9 and h18")
- main.Mininet1.changeIP(host='h8', intf='h8-eth0', newIP='10.0.1.1', newNetmask='255.255.255.0')
- main.Mininet1.changeIP(host='h9', intf='h9-eth0', newIP='10.0.2.1', newNetmask='255.255.255.0')
- main.Mininet1.changeIP(host='h10', intf='h10-eth0', newIP='10.0.3.1', newNetmask='255.255.255.0')
+ add-multi-to-single-intent --ipDst=10.0.1.0/24 --setEthDst=00:00:00:00:00:08 of:0000000000006018/1 0000000000003009/1 of:0000000000003008/1
+ """
+ main.case(
+ "Installing multipoint to single point intent with rewrite mac address" )
+ main.step( "Uninstalling proxy arp app" )
+ # Unistall onos-app-proxyarp app to disable reactive forwarding
+ appUninstall_result1 = main.ONOScli1.feature_uninstall(
+ "onos-app-proxyarp" )
+ appUninstall_result2 = main.ONOScli2.feature_uninstall(
+ "onos-app-proxyarp" )
+ appUninstall_result3 = main.ONOScli3.feature_uninstall(
+ "onos-app-proxyarp" )
+ main.log.info( "onos-app-proxyarp uninstalled" )
- main.step("Changing default gateway of hosts h8,h9 and h18")
- main.Mininet1.changeDefaultGateway(host='h8', newGW='10.0.1.254')
- main.Mininet1.changeDefaultGateway(host='h9', newGW='10.0.2.254')
- main.Mininet1.changeDefaultGateway(host='h10', newGW='10.0.3.254')
+ main.step( "Changing ipaddress of hosts h8,h9 and h18" )
+ main.Mininet1.changeIP(
+ host='h8',
+ intf='h8-eth0',
+ newIP='10.0.1.1',
+ newNetmask='255.255.255.0' )
+ main.Mininet1.changeIP(
+ host='h9',
+ intf='h9-eth0',
+ newIP='10.0.2.1',
+ newNetmask='255.255.255.0' )
+ main.Mininet1.changeIP(
+ host='h10',
+ intf='h10-eth0',
+ newIP='10.0.3.1',
+ newNetmask='255.255.255.0' )
- main.step("Assigning random mac address to the default gateways since proxyarp app is uninstalled")
- main.Mininet1.addStaticMACAddress(host='h8', GW='10.0.1.254', macaddr='00:00:00:00:11:11')
- main.Mininet1.addStaticMACAddress(host='h9', GW='10.0.2.254', macaddr='00:00:00:00:22:22')
- main.Mininet1.addStaticMACAddress(host='h10', GW='10.0.3.254', macaddr='00:00:00:00:33:33')
-
- main.step("Verify static gateway and MAC address assignment")
- main.Mininet1.verifyStaticGWandMAC(host='h8')
- main.Mininet1.verifyStaticGWandMAC(host='h9')
- main.Mininet1.verifyStaticGWandMAC(host='h10')
-
- main.step("Adding multipoint to singlepoint intent")
- p_intent_result1 = main.ONOScli1.add_multipoint_to_singlepoint_intent(ingress_device1=main.params['MULTIPOINT_INTENT']['device1'], ingress_device2=main.params['MULTIPOINT_INTENT']['device2'],
- egress_device=main.params['MULTIPOINT_INTENT']['device3'], ipDst=main.params['MULTIPOINT_INTENT']['ip1'], setEthDst=main.params['MULTIPOINT_INTENT']['mac1'])
-
- p_intent_result2 = main.ONOScli1.add_multipoint_to_singlepoint_intent(ingress_device1=main.params['MULTIPOINT_INTENT']['device3'], ingress_device2=main.params['MULTIPOINT_INTENT']['device2'],
- egress_device=main.params['MULTIPOINT_INTENT']['device1'], ipDst=main.params['MULTIPOINT_INTENT']['ip2'], setEthDst=main.params['MULTIPOINT_INTENT']['mac2'])
+ main.step( "Changing default gateway of hosts h8,h9 and h18" )
+ main.Mininet1.changeDefaultGateway( host='h8', newGW='10.0.1.254' )
+ main.Mininet1.changeDefaultGateway( host='h9', newGW='10.0.2.254' )
+ main.Mininet1.changeDefaultGateway( host='h10', newGW='10.0.3.254' )
+ main.step(
+ "Assigning random mac address to the default gateways since proxyarp app is uninstalled" )
+ main.Mininet1.addStaticMACAddress(
+ host='h8',
+ GW='10.0.1.254',
+ macaddr='00:00:00:00:11:11' )
+ main.Mininet1.addStaticMACAddress(
+ host='h9',
+ GW='10.0.2.254',
+ macaddr='00:00:00:00:22:22' )
+ main.Mininet1.addStaticMACAddress(
+ host='h10',
+ GW='10.0.3.254',
+ macaddr='00:00:00:00:33:33' )
- get_intent_result = main.ONOScli1.intents(json_format = False)
- main.log.info("intents = "+ get_intent_result)
-
- time.sleep(10)
- get_flows_result = main.ONOScli1.flows(json_format = False)
- main.log.info("flows = " + get_flows_result)
+ main.step( "Verify static gateway and MAC address assignment" )
+ main.Mininet1.verifyStaticGWandMAC( host='h8' )
+ main.Mininet1.verifyStaticGWandMAC( host='h9' )
+ main.Mininet1.verifyStaticGWandMAC( host='h10' )
+
+ main.step( "Adding multipoint to singlepoint intent" )
+ p_intent_result1 = main.ONOScli1.add_multipoint_to_singlepoint_intent(
+ ingress_device1=main.params[ 'MULTIPOINT_INTENT' ][ 'device1' ],
+ ingress_device2=main.params[ 'MULTIPOINT_INTENT' ][ 'device2' ],
+ egress_device=main.params[ 'MULTIPOINT_INTENT' ][ 'device3' ],
+ ipDst=main.params[ 'MULTIPOINT_INTENT' ][ 'ip1' ],
+ setEthDst=main.params[ 'MULTIPOINT_INTENT' ][ 'mac1' ] )
+
+ p_intent_result2 = main.ONOScli1.add_multipoint_to_singlepoint_intent(
+ ingress_device1=main.params[ 'MULTIPOINT_INTENT' ][ 'device3' ],
+ ingress_device2=main.params[ 'MULTIPOINT_INTENT' ][ 'device2' ],
+ egress_device=main.params[ 'MULTIPOINT_INTENT' ][ 'device1' ],
+ ipDst=main.params[ 'MULTIPOINT_INTENT' ][ 'ip2' ],
+ setEthDst=main.params[ 'MULTIPOINT_INTENT' ][ 'mac2' ] )
+
+ get_intent_result = main.ONOScli1.intents( json_format=False )
+ main.log.info( "intents = " + get_intent_result )
+
+ time.sleep( 10 )
+ get_flows_result = main.ONOScli1.flows( json_format=False )
+ main.log.info( "flows = " + get_flows_result )
count = 1
i = 8
Ping_Result = main.TRUE
-
- main.log.info("\n\nh"+str(i)+" is Pinging h" + str(i+2))
- ping = main.Mininet1.pingHost(src="h"+str(i),target="h"+str(i+2))
- if ping == main.FALSE and count <3:
- count+=1
+
+ main.log.info( "\n\nh" + str( i ) + " is Pinging h" + str( i + 2 ) )
+ ping = main.Mininet1.pingHost(
+ src="h" + str( i ), target="h" + str( i + 2 ) )
+ if ping == main.FALSE and count < 3:
+ count += 1
Ping_Result = main.FALSE
- main.log.report("Ping between h" + str(i) + " and h" + str(i+2) + " failed. Making attempt number "+str(count) + " in 2 seconds")
- time.sleep(2)
- elif ping==main.FALSE:
- main.log.report("All ping attempts between h" + str(i) + " and h" + str(i+10) +"have failed")
+ main.log.report( "Ping between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 2 ) +
+ " failed. Making attempt number " +
+ str( count ) +
+ " in 2 seconds" )
+ time.sleep( 2 )
+ elif ping == main.FALSE:
+ main.log.report( "All ping attempts between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 10 ) +
+ "have failed" )
Ping_Result = main.FALSE
- elif ping==main.TRUE:
- main.log.info("Ping test between h" + str(i) + " and h" + str(i+2) + "passed!")
+ elif ping == main.TRUE:
+ main.log.info( "Ping test between h" +
+ str( i ) +
+ " and h" +
+ str( i +
+ 2 ) +
+ "passed!" )
Ping_Result = main.TRUE
else:
- main.log.info("Unknown error")
+ main.log.info( "Unknown error" )
Ping_Result = main.ERROR
-
- if Ping_Result==main.FALSE:
- main.log.report("Ping test failed.")
- #main.cleanup()
- #main.exit()
- if Ping_Result==main.TRUE:
- main.log.report("Ping all successful")
+ if Ping_Result == main.FALSE:
+ main.log.report( "Ping test failed." )
+ # main.cleanup()
+ # main.exit()
+ if Ping_Result == main.TRUE:
+ main.log.report( "Ping all successful" )
p_intent_result = p_intent_result1 and p_intent_result2
- if p_intent_result ==main.TRUE:
- main.log.info("Multi point intent with rewrite mac address installation successful")
+ if p_intent_result == main.TRUE:
+ main.log.info(
+ "Multi point intent with rewrite mac address installation successful" )
else:
- main.log.info("Multi point intent with rewrite mac address installation failed")
-
+ main.log.info(
+ "Multi point intent with rewrite mac address installation failed" )
+
case33_result = p_intent_result and Ping_Result
- utilities.assert_equals(expect=main.TRUE, actual=case33_result,
- onpass="Ping all test after multipoint to single point intent addition with rewrite mac address successful",
- onfail="Ping all test after multipoint to single point intent addition with rewrite mac address failed")
+ utilities.assert_equals(
+ expect=main.TRUE,
+ actual=case33_result,
+ onpass="Ping all test after multipoint to single point intent addition with rewrite mac address successful",
+ onfail="Ping all test after multipoint to single point intent addition with rewrite mac address failed" )
diff --git a/TestON/tests/PingallExample/PingallExample.params b/TestON/tests/PingallExample/PingallExample.params
index aecaab6..8d0d10b 100644
--- a/TestON/tests/PingallExample/PingallExample.params
+++ b/TestON/tests/PingallExample/PingallExample.params
@@ -1,12 +1,12 @@
<PARAMS>
<testcases>1,2,3</testcases>
<ENV>
- <cellName>HA</cellName>
+ <cellName>kelvin</cellName>
</ENV>
<Git>True</Git>
<CTRL>
- <ip1>10.128.30.11</ip1>
+ <ip1>10.128.10.21</ip1>
<port1>6633</port1>
</CTRL>
</PARAMS>
diff --git a/TestON/tests/PingallExample/PingallExample.topo b/TestON/tests/PingallExample/PingallExample.topo
index 1712756..363ac95 100644
--- a/TestON/tests/PingallExample/PingallExample.topo
+++ b/TestON/tests/PingallExample/PingallExample.topo
@@ -2,7 +2,7 @@
<COMPONENT>
<ONOSbench>
- <host>10.128.30.10</host>
+ <host>10.128.10.20</host>
<user>admin</user>
<password></password>
<type>OnosDriver</type>
@@ -11,7 +11,7 @@
</ONOSbench>
<ONOScli1>
- <host>10.128.30.10</host>
+ <host>10.128.10.20</host>
<user>admin</user>
<password></password>
<type>OnosCliDriver</type>
@@ -20,7 +20,7 @@
</ONOScli1>
<ONOS1>
- <host>10.128.30.11</host>
+ <host>10.128.10.21</host>
<user>sdn</user>
<password>rocks</password>
<type>OnosDriver</type>
@@ -29,7 +29,7 @@
</ONOS1>
<Mininet1>
- <host>10.128.30.9</host>
+ <host>10.128.10.20</host>
<user>admin</user>
<password></password>
<type>MininetCliDriver</type>