diff --git a/TestON/tests/SAMPscaleTopo/Dependency/multiovs.py b/TestON/tests/SCPFscaleTopo/Dependency/multiovs.py
similarity index 100%
rename from TestON/tests/SAMPscaleTopo/Dependency/multiovs.py
rename to TestON/tests/SCPFscaleTopo/Dependency/multiovs.py
diff --git a/TestON/tests/SAMPscaleTopo/Dependency/newFuncTopo.py b/TestON/tests/SCPFscaleTopo/Dependency/newFuncTopo.py
similarity index 100%
rename from TestON/tests/SAMPscaleTopo/Dependency/newFuncTopo.py
rename to TestON/tests/SCPFscaleTopo/Dependency/newFuncTopo.py
diff --git a/TestON/tests/SAMPscaleTopo/Dependency/scaleTopoFunction.py b/TestON/tests/SCPFscaleTopo/Dependency/scaleTopoFunction.py
similarity index 99%
rename from TestON/tests/SAMPscaleTopo/Dependency/scaleTopoFunction.py
rename to TestON/tests/SCPFscaleTopo/Dependency/scaleTopoFunction.py
index 95eb195..075f4f2 100644
--- a/TestON/tests/SAMPscaleTopo/Dependency/scaleTopoFunction.py
+++ b/TestON/tests/SCPFscaleTopo/Dependency/scaleTopoFunction.py
@@ -45,6 +45,8 @@
 
     # Starts topology
     startResult = startNewTopology( main, topoFile, args, mnCmd, timeout=timeout )
+    # onos needs time to see the links
+    time.sleep(15)
 
     # Gets list of switches in mininet
     #assignSwitch( main )
diff --git a/TestON/tests/SAMPscaleTopo/Dependency/spine.py b/TestON/tests/SCPFscaleTopo/Dependency/spine.py
similarity index 100%
rename from TestON/tests/SAMPscaleTopo/Dependency/spine.py
rename to TestON/tests/SCPFscaleTopo/Dependency/spine.py
diff --git a/TestON/tests/SAMPscaleTopo/Dependency/startUp.py b/TestON/tests/SCPFscaleTopo/Dependency/startUp.py
similarity index 100%
rename from TestON/tests/SAMPscaleTopo/Dependency/startUp.py
rename to TestON/tests/SCPFscaleTopo/Dependency/startUp.py
diff --git a/TestON/tests/SAMPscaleTopo/Dependency/topo.py b/TestON/tests/SCPFscaleTopo/Dependency/topo.py
similarity index 100%
rename from TestON/tests/SAMPscaleTopo/Dependency/topo.py
rename to TestON/tests/SCPFscaleTopo/Dependency/topo.py
diff --git a/TestON/tests/SAMPscaleTopo/SAMPscaleTopo.params b/TestON/tests/SCPFscaleTopo/SCPFscaleTopo.params
similarity index 82%
rename from TestON/tests/SAMPscaleTopo/SAMPscaleTopo.params
rename to TestON/tests/SCPFscaleTopo/SCPFscaleTopo.params
index 395b2fb..e2b0a72 100755
--- a/TestON/tests/SAMPscaleTopo/SAMPscaleTopo.params
+++ b/TestON/tests/SCPFscaleTopo/SCPFscaleTopo.params
@@ -1,14 +1,14 @@
 <PARAMS>
 
-    <testcases>1</testcases>
+    <testcases>1,2,1001,8,1002,8</testcases>
 
     <SCALE>
-        <size>1,2,3</size>
+        <size>3</size>
         <max>3</max>
     </SCALE>
 
     <DEPENDENCY>
-        <path>/tests/SAMPscaleTopo/Dependency/</path>
+        <path>/tests/SCPFscaleTopo/Dependency/</path>
         <wrapper1>startUp</wrapper1>
         <wrapper2>scaleTopoFunction</wrapper2>
         <wrapper3>topo</wrapper3>
diff --git a/TestON/tests/SAMPscaleTopo/SAMPscaleTopo.py b/TestON/tests/SCPFscaleTopo/SCPFscaleTopo.py
similarity index 95%
rename from TestON/tests/SAMPscaleTopo/SAMPscaleTopo.py
rename to TestON/tests/SCPFscaleTopo/SCPFscaleTopo.py
index 5801fcd..95edf25 100644
--- a/TestON/tests/SAMPscaleTopo/SAMPscaleTopo.py
+++ b/TestON/tests/SCPFscaleTopo/SCPFscaleTopo.py
@@ -2,7 +2,7 @@
 # Testing network scalability, this test suite scales up a network topology
 # using mininet and verifies ONOS stability
 
-class SAMPscaleTopo:
+class SCPFscaleTopo:
 
     def __init__( self ):
         self.default = ''
@@ -284,6 +284,7 @@
         main.log.case( "Start Mininet topology" )
 
         main.step( "Starting Mininet Topology" )
+        topology = main.dependencyPath + main.topology
         topoResult = main.Mininet1.startNet( topoFile=topology )
         stepResult = topoResult
         utilities.assert_equals( expect=main.TRUE,
@@ -315,9 +316,9 @@
                                                           clean=False )
 
         main.ONOSbench.scp( main.Mininet1,
-                            "~/mininet/custom/spine.json",
-                            "/tmp/",
-                            direction="to" )
+                           "~/mininet/custom/spine.json",
+                           "/tmp/",
+                           direction="to" )
 
         time.sleep(10)
 
@@ -328,20 +329,20 @@
                                  actual=stepResult,
                                  onpass=main.topoName + " topology successful",
                                  onfail=main.topoName +
-                                 "Torus 5-5 topology failed" )
+                                 "Spine topology failed" )
         time.sleep(60)
 
     def CASE1002( self, main ):
         """
             Topology test
         """
-        main.topoName = "TORUS10-10"
+        main.topoName = "TORUS28-28"
         main.case( "Topology discovery test" )
         stepResult = main.TRUE
         main.step( main.topoName + " topology" )
-        mnCmd = "sudo mn --custom=mininet/examples/multiovs.py " +\
-                "--switch=ovsm --topo=torus,10,10 " +\
-                "--controller=remote,ip=10.128.10.21 --mac"
+        mnCmd = "sudo mn --custom=mininet/custom/multiovs.py " +\
+                "--switch=ovsm --topo=torus,28,28 " +\
+                "--controller=remote,ip=" + main.ONOSip[ 0 ]  +" --mac"
         stepResult = main.scaleTopoFunction.testTopology( main,
                                                           mnCmd=mnCmd,
                                                           timeout=900,
@@ -349,4 +350,4 @@
         utilities.assert_equals( expect=main.TRUE,
                                  actual=stepResult,
                                  onpass=main.topoName + " topology successful",
-                                 onfail=main.topoName + "Torus 5-5 topology failed" )
+                                 onfail=main.topoName + "Torus 28-28 topology failed" )
diff --git a/TestON/tests/SAMPscaleTopo/SAMPscaleTopo.topo b/TestON/tests/SCPFscaleTopo/SCPFscaleTopo.topo
similarity index 85%
rename from TestON/tests/SAMPscaleTopo/SAMPscaleTopo.topo
rename to TestON/tests/SCPFscaleTopo/SCPFscaleTopo.topo
index 499e966..5fc6c09 100755
--- a/TestON/tests/SAMPscaleTopo/SAMPscaleTopo.topo
+++ b/TestON/tests/SCPFscaleTopo/SCPFscaleTopo.topo
@@ -4,7 +4,7 @@
         <ONOSbench>
             <host>localhost</host>
             <user>admin</user>
-            <password>onos_test</password>
+            <password></password>
             <type>OnosDriver</type>
             <connect_order>1</connect_order>
             <COMPONENTS>
@@ -15,7 +15,7 @@
         <ONOScli1>
             <host>localhost</host>
             <user>admin</user>
-            <password>onos_test</password>
+            <password></password>
             <type>OnosCliDriver</type>
             <connect_order>2</connect_order>
             <COMPONENTS>
@@ -25,7 +25,7 @@
         <ONOScli2>
             <host>localhost</host>
             <user>admin</user>
-            <password>onos_test</password>
+            <password></password>
             <type>OnosCliDriver</type>
             <connect_order>3</connect_order>
             <COMPONENTS>
@@ -35,7 +35,7 @@
          <ONOScli3>
             <host>localhost</host>
             <user>admin</user>
-            <password>onos_test</password>
+            <password></password>
             <type>OnosCliDriver</type>
             <connect_order>4</connect_order>
             <COMPONENTS>
@@ -45,7 +45,7 @@
         <Mininet1>
             <host>OCN</host>
             <user>admin</user>
-            <password>onos_test</password>
+            <password></password>
             <type>MininetCliDriver</type>
             <connect_order>5</connect_order>
             <COMPONENTS>
diff --git a/TestON/tests/SAMPscaleTopo/__init__.py b/TestON/tests/SCPFscaleTopo/__init__.py
similarity index 100%
rename from TestON/tests/SAMPscaleTopo/__init__.py
rename to TestON/tests/SCPFscaleTopo/__init__.py
