diff --git a/TestON/tests/OnosCHO/OnosCHO.params b/TestON/tests/OnosCHO/OnosCHO.params
index 49f3422..024bd11 100644
--- a/TestON/tests/OnosCHO/OnosCHO.params
+++ b/TestON/tests/OnosCHO/OnosCHO.params
@@ -22,6 +22,11 @@
         <branch>master</branch>
     </GIT>
 
+    <CTRL>
+        <numCtrl>3</numCtrl>
+        <karafCliTimeout>3600000</karafCliTimeout>
+    </CTRL>
+
     <TOPO1>
         <topo>~/mininet/custom/topoAtt.py</topo>
         <numSwitches>25</numSwitches>
@@ -46,16 +51,6 @@
         <numPaths>1</numPaths>
     </TOPO3>
 
-    <CTRL>
-        <numCtrl>3</numCtrl>
-        <ip1>OC1</ip1>
-        <port1>6633</port1>
-        <ip2>OC2</ip2>
-        <port2>6633</port2>
-        <ip3>OC3</ip3>
-        <port3>6633</port3>
-    </CTRL>
-
     <HOSTS>
         <startMAC>00:00:00:00:00:01</startMAC>
         <endMAC>00:00:00:00:00:19</endMAC>
diff --git a/TestON/tests/OnosCHO/OnosCHO.py b/TestON/tests/OnosCHO/OnosCHO.py
index 8899845..dfdfd39 100644
--- a/TestON/tests/OnosCHO/OnosCHO.py
+++ b/TestON/tests/OnosCHO/OnosCHO.py
@@ -32,14 +32,13 @@
         cell_name = main.params[ 'ENV' ][ 'cellName' ]
         git_pull = main.params[ 'GIT' ][ 'autoPull' ]
         git_branch = main.params[ 'GIT' ][ 'branch' ]
+        karafTimeout = main.params['CTRL']['karafCliTimeout']
         main.newTopo = ""
         main.CLIs = []
         main.onosIPs = []
-        main.onosPorts = []
 
         for i in range( 1, int(main.numCtrls) + 1 ):
             main.CLIs.append( getattr( main, 'ONOScli' + str( i ) ) )
-            main.onosPorts.append( main.params[ 'CTRL' ][ 'port' + str( i ) ] )
 
         main.case( "Set up test environment" )
         main.log.report( "Set up test environment" )
@@ -117,7 +116,6 @@
         
         main.step( "Start ONOS CLI on all nodes" )
         cliResult = main.TRUE
-        karafTimeout = "3600000"
         main.log.step(" Start ONOS cli using thread ")
         startCliResult  = main.TRUE
         pool = []
@@ -181,8 +179,7 @@
         for i in range( 1, ( main.numMNswitches + 1 ) ):  # 1 to ( num of switches +1 )
             main.Mininet1.assignSwController(
                 sw="s" + str( i ),
-                ip=main.onosIPs,
-                port=main.onosPorts )
+                ip=main.onosIPs )
 
         switch_mastership = main.TRUE
         for i in range( 1, ( main.numMNswitches + 1 ) ):
@@ -245,8 +242,7 @@
         for i in range( 1, ( main.numMNswitches + 1 ) ):  # 1 to ( num of switches +1 )
             main.Mininet1.assignSwController(
                 sw="s" + str( i ),
-                ip=main.onosIPs,
-                port=main.onosPorts )
+                ip=main.onosIPs )
 
         switch_mastership = main.TRUE
         for i in range( 1, ( main.numMNswitches + 1 ) ):
@@ -305,8 +301,7 @@
         for i in range( 1, ( main.numMNswitches + 1 ) ):  # 1 to ( num of switches +1 )
             main.Mininet1.assignSwController(
                 sw="s" + str( i ),
-                ip=main.onosIPs,
-                port=main.onosPorts )
+                ip=main.onosIPs )
 
         switch_mastership = main.TRUE
         for i in range( 1, ( main.numMNswitches + 1 ) ):
