diff --git a/TestON/tests/scaleONOS7nodes/__init__.py b/TestON/tests/scaleONOS7nodes/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/__init__.py
diff --git a/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1 b/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1
new file mode 100644
index 0000000..9bf2f2d
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1
@@ -0,0 +1,176 @@
+ONOS1 
+1	0.0	0.0	0.0	0.00239947245396
+ONOS2 
+1	0.0	0.0	0.0	0.00240234871667
+ONOS3 
+5	0.0	0.0	0.0	0.0121141862312
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+1629	18.7889293392	4.48449607458	1.54147719592	3.62505307741
+ONOS2 
+1629	19.2261277938	4.60475972875	1.58370323175	3.62941581988
+ONOS3 
+1629	17.8382714302	4.24867153003	1.459765156	3.66161718472
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+3183	31.2994548933	9.22645211247	3.29904481351	6.61046866244
+ONOS2 
+3183	32.7606424407	9.56283317479	3.41481907462	6.61796407638
+ONOS3 
+3183	31.5861689913	9.24594010149	3.30141569916	6.673448832
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+4842	39.9442818508	13.4074669965	4.93312182074	9.42788406221
+ONOS2 
+4842	39.9501179617	13.4738095108	4.96166898609	9.43793553665
+ONOS3 
+4842	38.0249857507	12.9562504618	4.77594497277	9.51213793959
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+6333	43.3326254024	17.1545676648	6.55334823824	11.6061812929
+ONOS2 
+6333	43.1025815278	17.1367790337	6.5530511963	11.6177361571
+ONOS3 
+6333	43.777667171	17.1929221224	6.55828955792	11.7036190253
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+7959	46.9561811449	20.4581350129	8.03528568305	13.7759524559
+ONOS2 
+7959	46.3408669423	20.4108823645	8.02922603097	13.7889504862
+ONOS3 
+7959	45.6410475294	20.1576242077	7.92726689795	13.8850824339
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+9531	45.9906744738	22.7715112677	9.24095510988	15.6290021503
+ONOS2 
+9531	48.055448081	23.2523557438	9.41177895671	15.6430625973
+ONOS3 
+9531	47.4942907039	23.4438740596	9.53345804013	15.746412627
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+11178	48.3540408864	25.9507802704	10.8600911453	17.4138152199
+ONOS2 
+11178	47.5616430096	25.8795464358	10.8505372729	17.4285967804
+ONOS3 
+11178	48.7458886411	25.9965007518	10.8666758121	17.5380150699
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+12694	49.6724719708	28.3431418559	12.1755703493	18.8343463719
+ONOS2 
+12694	49.0146328907	28.2907017805	12.1735446036	18.849661524
+ONOS3 
+12694	48.6960578175	28.1228412863	12.0936097846	18.9623561373
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+14292	48.8589089419	30.4653291422	13.5261901847	20.242085149
+ONOS2 
+14292	49.3030435553	30.5976153949	13.5848633365	20.2578017737
+ONOS3 
+14292	48.9109659895	30.4555207991	13.5139122893	20.3733211479
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+15855	49.2637510688	32.350154998	14.7329286521	21.479967821
+ONOS2 
+15855	48.80087594	32.2746234064	14.721362789	21.4958003475
+ONOS3 
+15855	49.7070084114	32.4071423037	14.741735047	21.6129479915
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+17479	49.7954667568	34.2769555101	16.0681836861	22.6938152648
+ONOS2 
+17479	48.5948066323	33.8055349065	15.8243597438	22.71001968
+ONOS3 
+17479	50.1286934521	34.3315901641	16.077099823	22.8287509266
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+18996	50.4089945863	35.8426346551	17.200968186	23.6775401881
+ONOS2 
+18996	49.8422938084	35.7578440385	17.1873611818	23.6935523664
+ONOS3 
+18996	48.7482979129	35.4720353826	17.0666482037	23.8124199695
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+20565	48.5587834324	36.7329685213	18.1159622539	24.647671921
+ONOS2 
+20565	48.3110087382	36.676081054	18.1094495228	24.6638443055
+ONOS3 
+20565	48.93297292	36.793631721	18.1262156419	24.7827468466
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+22167	49.0508150775	38.1245132609	19.3059350415	25.5841260816
+ONOS2 
+22170	48.5221636661	38.0385655774	19.2912194483	25.6036562614
+ONOS3 
+22171	48.5824052178	37.9982884305	19.2528429078	25.7236458284
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+23639	47.9777788333	38.8926943034	20.1868609754	26.308941697
+ONOS2 
+23639	48.1528601732	38.9174026097	20.2069767591	26.3249181854
+ONOS3 
+23639	48.3280130991	38.9561603833	20.1981646715	26.4427299331
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+25268	49.8567068142	40.3154609814	21.3906394143	27.1525946206
+ONOS2 
+25268	49.260910735	40.2252713754	21.3745229372	27.1686258006
+ONOS3 
+25268	48.6285982236	40.0672365492	21.2987719637	27.2860637996
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+26786	48.5713107436	40.8577368773	22.194671911	27.82491922
+ONOS2 
+26786	48.2099421547	40.7761299471	22.1790837949	27.8408111321
+ONOS3 
+26786	48.806830681	40.9159842596	22.2060400391	27.9570400311
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+28345	49.5354143965	41.7745390383	23.1196161385	28.4949893223
+ONOS2 
+28345	48.9994356563	41.7084318627	23.1119888217	28.5101088539
+ONOS3 
+28352	48.8058937866	41.7666073305	23.2132849025	28.6323389508
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+29429	42.7205926401	41.133551867	23.6205125079	28.6600165985
+ONOS2 
+29429	42.3177151851	41.0468840661	23.6034227045	28.6753451692
+ONOS3 
+29429	43.0359873942	41.1940339927	23.632692912	28.7876408357
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+29429	25.9113492373	37.219176866	22.8461399993	27.7919878574
+ONOS2 
+29429	25.6669917087	37.1407565968	22.8296104663	27.8064105758
+ONOS3 
+29429	26.1026458256	37.2739033564	22.8579210822	27.9119214291
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+29429	14.4594435488	33.1206670242	21.9747328469	26.9749583673
+ONOS2 
+29429	14.3230834597	33.0508822562	21.9588337904	26.9884033819
+ONOS3 
+29429	14.5661937683	33.1693671304	21.9860645708	27.0878504545
+
+--------------------------------------------------------------------------------- 
diff --git a/TestON/tests/scaleONOS7nodes/scale3nodesrate1 b/TestON/tests/scaleONOS7nodes/scale3nodesrate1
new file mode 100644
index 0000000..9caaa19
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scale3nodesrate1
@@ -0,0 +1,176 @@
+ONOS1 
+46	0.0159911170741	0.00330570923568	0.00110803039902	0.441388322918
+ONOS2 
+169	1.4232094196	0.294208121975	0.0986147055128	1.51983829287
+ONOS3 
+171	0.0	0.0	0.0	1.55826946014
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+1798	22.6349154776	5.65275867857	1.9589352278	12.3275451079
+ONOS2 
+1798	20.8145837636	5.10869633674	1.76466018187	12.4714931153
+ONOS3 
+1798	22.0791171081	5.47471756204	1.8948008043	12.6620550588
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+3426	32.6111034518	9.70067081694	3.47552137643	19.2298566624
+ONOS2 
+3426	34.2140340329	10.1493268369	3.63676115043	19.4125205852
+ONOS3 
+3426	33.2868110325	9.74024939592	3.48023473974	19.6519137751
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+5055	41.1154795596	14.3295561289	5.31573150012	24.0283473918
+ONOS2 
+5055	40.2618482051	13.877993799	5.13339673365	24.228413302
+ONOS3 
+5055	40.3643986592	14.0755662838	5.21932817392	24.4842903967
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+6648	44.0476719882	17.5652363011	6.72454316035	27.4144919114
+ONOS2 
+6648	42.837315358	17.4660161912	6.71183843666	27.6117430147
+ONOS3 
+6660	44.6253917733	17.5746713259	6.71339463557	27.9185886652
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+8223	45.5204851503	20.4781124794	8.08545718874	29.9446955545
+ONOS2 
+8223	47.0478790956	20.9180018605	8.25491048977	30.134904835
+ONOS3 
+8223	46.0539241762	20.9125541798	8.28383012594	30.3823258358
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+9761	48.2472730422	23.9163379895	9.74938162547	31.8260874816
+ONOS2 
+9761	47.8554206671	23.5746897161	9.5837979702	32.0069787799
+ONOS3 
+9761	47.9086582813	23.7657314867	9.68161495588	32.2419983542
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+11390	48.2977231982	26.23623474	11.0124446377	33.6205734759
+ONOS2 
+11390	48.6817460585	26.4263736828	11.1034039314	33.7938746975
+ONOS3 
+11390	48.9914985281	26.3026447756	11.0160590425	34.0180954514
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+13019	49.5587788244	28.9609886715	12.535952061	35.1042945838
+ONOS2 
+13019	49.7703686117	28.7704010275	12.4112682408	35.2671782942
+ONOS3 
+13019	48.3486366824	28.6472976101	12.4114088561	35.4806994928
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+14618	49.576578555	30.8922696843	13.7378230586	36.2757731409
+ONOS2 
+14618	48.5440020686	30.7811465304	13.7316956109	36.4328337041
+ONOS3 
+14618	49.4866717797	30.8087248031	13.6891587016	36.6357205954
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+16187	49.4907941638	32.9074922652	15.0888963838	37.2077993376
+ONOS2 
+16187	49.6285423582	32.7484269078	14.9693742032	37.3552104338
+ONOS3 
+16187	48.8755660723	32.7250364726	15.0063681262	37.5478060295
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+17725	49.8836746982	34.5479805791	16.2364648337	37.9435104425
+ONOS2 
+17725	48.99884514	34.4732673007	16.246116043	38.0836022622
+ONOS3 
+17725	49.4211281632	34.4116883879	16.1694233436	38.2662174542
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+19354	49.8626223455	35.9745646504	17.3266700853	38.7671511869
+ONOS2 
+19354	48.4587733895	35.7738406011	17.2944948224	38.9024055739
+ONOS3 
+19354	49.6238625297	36.107629579	17.4523301701	39.0742037951
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+20949	48.7735412886	37.2334176044	18.4738354902	39.4261732644
+ONOS2 
+20949	49.2808245039	37.2112430739	18.3974292802	39.5555564351
+ONOS3 
+20949	49.0412343145	37.2603304894	18.4613220964	39.7222890977
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+22518	49.2233054229	38.459058778	19.5122554055	39.9666332511
+ONOS2 
+22518	49.3199190997	38.5500864358	19.5788242673	40.0902311981
+ONOS3 
+22518	48.5868586294	38.3006063004	19.437642791	40.2494766808
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+24059	49.2130863162	39.6417956777	20.6446125264	40.4016538809
+ONOS2 
+24059	48.8272590697	39.4712361736	20.518926366	40.5198056741
+ONOS3 
+24059	48.7738335012	39.5215088361	20.5824985986	40.6715650211
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+25687	48.7438034983	40.4560575512	21.5487100295	40.9303516742
+ONOS2 
+25687	49.5471148575	40.6750208451	21.6586836347	41.0440523285
+ONOS3 
+25687	49.5528136103	40.5962066501	21.5740317285	41.1905085161
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+27208	48.3440895308	41.1892039746	22.4234679597	41.246260379
+ONOS2 
+27208	49.7248389814	41.5217226735	22.5714921035	41.3552443508
+ONOS3 
+27208	48.9489326527	41.4186969689	22.5835508207	41.4954641517
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+28764	48.636023504	42.0763468157	23.4482599273	41.5834003461
+ONOS2 
+28764	49.5204659279	42.2043214958	23.4251146139	41.6880977866
+ONOS3 
+28764	48.7203412028	42.0949248759	23.4349162749	41.822682997
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+29669	41.3110354992	41.1541779314	23.753983268	40.9907471033
+ONOS2 
+29669	40.0637318705	40.9112993447	23.707965358	41.0894107566
+ONOS3 
+29669	41.8871662556	41.2877306835	23.7807095826	41.2163432863
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+29669	23.0530097167	36.6223527412	22.847948773	39.2515156116
+ONOS2 
+29669	24.299881722	37.0180744675	22.9307258039	39.3420203293
+ONOS3 
+29669	23.3745109274	36.7411989007	22.8736556812	39.4584630811
+
+--------------------------------------------------------------------------------- 
+ONOS1 
+29669	13.9823571918	33.1372750967	22.0989039162	37.6540346
+ONOS2 
+29669	13.5601880389	32.9417096657	22.0560923439	37.7370627214
+ONOS3 
+29669	14.1773575332	33.2448115489	22.1237680517	37.8440976097
+
+--------------------------------------------------------------------------------- 
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS.params.4nodes b/TestON/tests/scaleONOS7nodes/scaleONOS.params.4nodes
new file mode 100644
index 0000000..7d8d0c8
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS.params.4nodes
@@ -0,0 +1,62 @@
+<PARAMS>
+    <testcases>1,2,3,31,6,7,6,7,4,6,7,6,7,5,6,7,6,7,41,6,7,6,7,5,6,7,6,7,66</testcases>
+    <tcpdump> 
+        <intf>eth0</intf>
+        <port>port 6633</port>
+        <filename>~/packet_captures/Sanity.pcap</filename>
+    </tcpdump>
+    <CASE1>       
+        <destination>h6</destination>
+        <target>h40</target>
+    </CASE1>       
+    <PING>
+        <source1>h7</source1>
+        <target1>h32</target1>
+        <source2>h8</source2>
+        <target2>h33</target2>
+    </PING>
+    <LINK>
+        <begin>s1</begin>
+        <end>s2</end>
+    </LINK>
+    <YANK>
+        <hostname>h1</hostname>
+        <hostip>10.0.0.1</hostip>
+        <hostmac>00:00:00:00:00:01</hostmac>
+	<sw1>s1</sw1>
+        <sw6>s6</sw6>
+        <intf>s1-eth1</intf>
+    </YANK>
+    <PLUG>
+        <intf>s1-eth1</intf>
+	<sw6>s6</sw6>
+	<sw1>s1</sw1>
+    </PLUG>
+    <CTRL>
+        <ip1>10.128.10.1</ip1>
+        <port1>6633</port1>
+        <ip2>10.128.10.2</ip2>
+        <port2>6633</port2>
+        <ip3>10.128.10.3</ip3>
+        <port3>6633</port3>
+        <ip4>10.128.10.4</ip4>
+        <port4>6633</port4>
+    </CTRL>
+    <INTENTREST>
+        <intentIP>10.128.10.1</intentIP>
+        <intentPort>8080</intentPort>
+        <intentURL>wm/onos/intent/high</intentURL>
+    </INTENTREST>
+    <RestIP>10.128.10.1</RestIP>
+    <RestIP2>10.128.10.2</RestIP2>
+    <RestIP3>10.128.10.3</RestIP3>
+    <RestIP4>10.128.10.4</RestIP4>
+    <NR_Switches>25</NR_Switches>
+    <NR_Links>50</NR_Links>
+    <RESTCALL>
+	<restIP1>10.128.10.1</restIP1>
+	<restIP2>10.128.10.2</restIP2>
+	<restPort>8080</restPort>
+	<restURL>/wm/onos/topology/hosts</restURL>
+    </RESTCALL>
+</PARAMS>      
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS.topo.4nodes b/TestON/tests/scaleONOS7nodes/scaleONOS.topo.4nodes
new file mode 100644
index 0000000..b58bd43
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS.topo.4nodes
@@ -0,0 +1,153 @@
+<TOPOLOGY>
+
+    <COMPONENT>
+        <Zookeeper1>
+            <host>10.128.10.1</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>1</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper1>
+
+        <Zookeeper2>
+            <host>10.128.10.2</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>2</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper2>
+
+        <Zookeeper3>
+            <host>10.128.10.3</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>3</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper3>
+       
+        <Zookeeper4>
+            <host>10.128.10.4</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>4</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper4>
+
+        <RamCloud1>
+            <host>10.128.10.1</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>5</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+       </RamCloud1>
+
+        <RamCloud2>
+            <host>10.128.10.2</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>6</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud2>
+       
+        <RamCloud3>
+            <host>10.128.10.3</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>7</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud3>
+       
+        <RamCloud4>
+            <host>10.128.10.4</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>8</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud4>
+
+        <ONOS1>
+            <host>10.128.10.1</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>9</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS1>
+
+        <ONOS2>
+            <host>10.128.10.2</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>10</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS2>
+
+        <ONOS3>
+            <host>10.128.10.3</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>11</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS3>
+       
+        <ONOS4>
+            <host>10.128.10.4</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>12</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS4>
+
+        <Mininet1>
+            <host>10.128.10.90</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>MininetCliDriver</type>
+            <connect_order>13</connect_order>
+            <COMPONENTS>
+                # Specify the Option for mininet
+                <arg1> --custom topo-onos4node.py </arg1>
+                <arg2> --topo mytopo --arp</arg2>
+                <controller> remote </controller>
+             </COMPONENTS>
+        </Mininet1>
+
+        <Mininet2>
+            <host>10.128.10.90</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RemoteMininetDriver</type>
+            <connect_order>13</connect_order>
+            <COMPONENTS>
+                # Specify the Option for mininet
+                <arg1> --custom topo-onos4node.py </arg1>
+                <arg2> --topo mytopo --arp</arg2>
+                <controller> remote </controller>
+             </COMPONENTS>
+        </Mininet2>
+
+    </COMPONENT>
+</TOPOLOGY>
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params
new file mode 100644
index 0000000..d485ee8
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params
@@ -0,0 +1,78 @@
+<PARAMS>
+    <testcases>1,2</testcases>
+    <tcpdump> 
+        <intf>eth0</intf>
+        <port>port 6633</port>
+        <filename>~/packet_captures/Sanity.pcap</filename>
+    </tcpdump>
+    <CASE1>       
+        <destination>h6</destination>
+        <target>h40</target>
+    </CASE1>       
+    <PING>
+        <source1>h7</source1>
+        <target1>h32</target1>
+        <source2>h8</source2>
+        <target2>h33</target2>
+    </PING>
+    <LINK>
+        <begin>s1</begin>
+        <end>s2</end>
+    </LINK>
+    <YANK>
+        <hostname>h1</hostname>
+        <hostip>10.0.0.1</hostip>
+        <hostmac>00:00:00:00:00:01</hostmac>
+	<sw1>s1</sw1>
+        <sw6>s6</sw6>
+        <intf>s1-eth1</intf>
+    </YANK>
+    <PLUG>
+        <intf>s1-eth1</intf>
+	<sw6>s6</sw6>
+	<sw1>s1</sw1>
+    </PLUG>
+    <CTRL>
+        <ip1>10.128.10.1</ip1>
+        <port1>6633</port1>
+        <ip2>10.128.10.2</ip2>
+        <port2>6633</port2>
+        <ip3>10.128.10.3</ip3>
+        <port3>6633</port3>
+        <ip4>10.128.10.4</ip4>
+        <port4>6633</port4>
+        <ip5>10.128.10.5</ip5>
+        <port5>6633</port5>
+        <ip6>10.128.10.6</ip6>
+        <port6>6633</port6>
+        <ip7>10.128.10.7</ip7>
+        <port7>6633</port7>
+    </CTRL>
+    <INTENTREST>
+        <intentIP>10.128.10.1</intentIP>
+        <intentPort>8080</intentPort>
+        <intentURL>wm/onos/intent/high</intentURL>
+    </INTENTREST>
+    <RestIP>10.128.10.1</RestIP>
+    <RestIP2>10.128.10.2</RestIP2>
+    <RestIP3>10.128.10.3</RestIP3>
+    <RestIP4>10.128.10.4</RestIP4>
+    <RestIP5>10.128.10.5</RestIP5>
+    <RestIP6>10.128.10.6</RestIP6>
+    <RestIP7>10.128.10.7</RestIP7>
+    <NR_Switches>25</NR_Switches>
+    <NR_Links>50</NR_Links>
+    <RESTCALL>
+	<restIP1>10.128.10.1</restIP1>
+	<restIP2>10.128.10.2</restIP2>
+	<restPort>8080</restPort>
+	<restURL>/wm/onos/topology/hosts</restURL>
+    </RESTCALL>
+    <switches_num>50</switches_num>
+    <RATE1>30</RATE1>
+    <RATE2>50</RATE2>
+    <RUN_DUR>600</RUN_DUR>
+    <sleep_t>32</sleep_t>
+    <loop>22</loop>
+    <port>10</port>
+</PARAMS>      
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py
new file mode 100644
index 0000000..e8a286e
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py
@@ -0,0 +1,771 @@
+class scaleONOS7nodes :
+
+
+
+    def __init__(self) :
+        self.default = ''
+
+#        def print_hello_world(self,main):
+#            print("hello world")
+#*****************************************************************************************************************************************************************************************
+#Test startup
+#Tests the startup of Zookeeper1, RamCloud1, and ONOS1 to be certain that all started up successfully
+    def CASE1(self,main) :  #Check to be sure ZK, Cass, and ONOS are up, then get ONOS version
+        main.case("Initial setup")
+        main.step("Stop ONOS")
+        import time
+        main.ONOS1.stop_all()
+        main.ONOS2.stop_all()
+        main.ONOS3.stop_all()
+#        main.print_hello_world()
+        main.ONOS4.stop_all()
+       # main.ONOS5.stop_all()
+       # main.ONOS6.stop_all()
+       # main.ONOS7.stop_all()
+        main.ONOS2.stop_rest()
+        #main.ONOS1.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+        #main.ONOS2.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+        #main.ONOS3.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+        #main.ONOS4.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")        
+        #main.step("Start tcpdump on mn")
+        #main.Mininet2.start_tcpdump(main.params['tcpdump']['filename'], intf = main.params['tcpdump']['intf'], port = main.params['tcpdump']['port'])
+        main.step("Start ONOS")
+        main.Zookeeper1.start()
+        main.Zookeeper2.start()
+        main.Zookeeper3.start()
+        main.Zookeeper4.start()
+        time.sleep(5)
+        
+        
+        main.RamCloud1.del_db()
+        main.RamCloud2.del_db()
+        main.RamCloud3.del_db()
+        main.RamCloud4.del_db()
+
+        time.sleep(5)
+        #main.log.report("Pulling latest code from github to all nodes")
+          
+        """
+        for i in range(2):
+            uptodate = main.ONOS1.git_pull()
+            main.ONOS2.git_pull()
+            main.ONOS3.git_pull()
+        #    main.ONOS4.git_pull()
+            ver1 = main.ONOS1.get_version()
+            ver2 = main.ONOS3.get_version()
+            if ver1==ver2:
+                break
+            elif i==1:
+                main.ONOS2.git_pull("ONOS1 master")
+                main.ONOS3.git_pull("ONOS1 master")
+               # main.ONOS4.git_pull("ONOS1 master")
+        if uptodate==0:
+       # if 1:
+            main.ONOS1.git_compile()
+            main.ONOS2.git_compile()
+            main.ONOS3.git_compile()
+           # main.ONOS4.git_compile()
+        main.ONOS1.print_version()    
+       # main.RamCloud1.git_pull()
+       # main.RamCloud2.git_pull()
+       # main.RamCloud3.git_pull()
+       # main.RamCloud4.git_pull()
+       # main.ONOS1.get_version()
+       # main.ONOS2.get_version()
+       # main.ONOS3.get_version()
+       # main.ONOS4.get_version()
+       # main.ONOS1.start_all()
+       # main.ONOS2.start_all()
+       # main.ONOS3.start_all()
+       # main.ONOS4.start_all()
+
+        """
+        main.RamCloud1.start_coor()
+        main.RamCloud1.start_serv()
+        main.RamCloud2.start_serv()
+        main.RamCloud3.start_serv()
+        #main.RamCloud4.start_serv()
+
+        main.ONOS1.start()
+        main.ONOS2.start()
+        main.ONOS3.start()
+        #main.ONOS4.start()
+
+
+
+        main.ONOS1.start_rest()
+        main.ONOS2.start_rest()
+        main.ONOS3.start_rest()
+        test= main.ONOS2.rest_status()
+        if test == main.FALSE:
+            main.ONOS1.start_rest()
+        main.ONOS1.get_version()
+        main.log.report("Startup check Zookeeper1, RamCloud1, and ONOS1 connections")
+        main.step("Testing startup Zookeeper")   
+        data =  main.Zookeeper1.isup() and main.Zookeeper2.isup() and main.Zookeeper3.isup()
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Zookeeper is up!",onfail="Zookeeper is down...")
+        
+        main.step("Testing startup RamCloud")   
+        data =  main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() #and main.RamCloud4.status_serv()
+        if data == main.FALSE:
+            main.RamCloud1.stop_coor()
+            main.RamCloud1.stop_serv()
+            main.RamCloud2.stop_serv()
+            main.RamCloud3.stop_serv()
+        #    main.RamCloud4.stop_serv()
+
+            time.sleep(5)
+            main.RamCloud1.start_coor()
+            main.RamCloud1.start_serv()
+            main.RamCloud2.start_serv()
+            main.RamCloud3.start_serv()
+         #   main.RamCloud4.start_serv()
+            time.sleep(5)
+            data =  main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() #and main.RamCloud4.status_serv()
+            
+
+        
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="RamCloud is up!",onfail="RamCloud is down...")
+        
+        main.step("Testing startup ONOS")   
+        data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() #and main.ONOS4.isup()
+        for i in range(3):
+            if data == main.FALSE: 
+                #main.log.report("Something is funny... restarting ONOS")
+                #main.ONOS1.stop()
+                time.sleep(3)
+                #main.ONOS1.start()
+                #time.sleep(5) 
+                data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() #and main.ONOS4.isup()
+            else:
+                break
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        time.sleep(10)
+
+
+    def CASE2(self,main) :
+        ip1 = main.params['CTRL']['ip1']
+        ip2 = main.params['CTRL']['ip2']
+        ip3 = main.params['CTRL']['ip3']
+        rate1 = main.params['RATE1']
+        run_dur = main.params['RUN_DUR']
+        loop = int( main.params['loop'])
+        port = main.params['port']
+        switches_num = main.params['switches_num']
+        print loop
+        sleep_t =int( main.params['sleep_t'])
+        main.case("Starting SB load on 3 nodes from mininet with " + rate1 +"  added/removed/s for " + run_dur)
+        main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + "\"" + " " + switches_num + " " + port +  " " + rate1 + " " + run_dur +  "  \"11\"")
+        main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=400)
+        import time
+        import json
+        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1", 'w').close()
+        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1", "a")
+        #time.sleep(10)
+        for i in range(int (loop)):
+            json_str1 = main.ONOS1.get_json(url1)
+            json_str2 = main.ONOS2.get_json(url2)
+            json_str3 = main.ONOS3.get_json(url3)
+            if json_str1 != "" and json_str2 != "" and json_str3 != "":
+                # write_str = str(json_str["meters"][4]["meter"][2])
+                #print str(json_str["meters"][4])
+                #f.write(str(json_str["meters"][4]))
+                #f.write('\n')
+                #time.sleep(3)
+                f.write("ONOS1 \n")
+                f.write(str(json_str1["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS2 \n")
+                f.write(str(json_str2["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS3 \n")
+                f.write(str(json_str3["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                f.write('\n')
+                
+                f.write("--------------------------------------------------------------------------------- \n") 
+                time.sleep(sleep_t)
+        f.close() 
+        main.Mininet2.handle.expect("\$", timeout=900)
+       # main.Mininet2.handle.sendline("sudo mn -c")
+        #main.Mininet2.handle.expect("\$")
+        time.sleep(5)
+       # main.Mininet2.handle.expect("\$", timeout=900)
+        
+
+    def CASE3(self,main):
+        ip1 = main.params['CTRL']['ip1']
+        ip2 = main.params['CTRL']['ip2']
+        ip3 = main.params['CTRL']['ip3']
+        import time
+        rate2 = main.params['RATE2']
+        run_dur = main.params['RUN_DUR']
+        loop = int(main.params['loop'])
+        sleep_t = int(main.params['sleep_t'])
+        port = main.params['port']
+        switches_num = main.params['switches_num']
+        main.case("Starting SB load on 3 nodes from mininet with " + rate2 +"  added/removed/s for " + run_dur)
+        main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + "\"" + " " + switches_num + " " + port + " " + rate2 + " " + run_dur +  "  \"11\"")
+       #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"10.128.10.1\" 100 50 1200 \"11\"")
+        main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=900 )
+        
+        import json
+        
+        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate2", 'w').close()
+        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate2", "a")
+        #time.sleep(10)
+        for i in range(int (loop)):
+            json_str1 = main.ONOS1.get_json(url1)
+            json_str2 = main.ONOS2.get_json(url2)
+            json_str3 = main.ONOS3.get_json(url3)
+            if json_str1 != "" and json_str2 != "" and json_str3 != "":
+                # write_str = str(json_str["meters"][4]["meter"][2])
+                #print str(json_str["meters"][4])
+                #f.write(str(json_str["meters"][4]))
+                #f.write('\n')
+                #time.sleep(3)
+                f.write("ONOS1 \n")
+                f.write(str(json_str1["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS2 \n")
+                f.write(str(json_str2["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS3 \n")
+                f.write(str(json_str3["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                f.write('\n')
+                f.write("--------------------------------------------------------------------------------- \n") 
+                time.sleep(sleep_t)
+        f.close()
+        main.Mininet2.handle.expect("\$", timeout=900)
+       # main.Mininet2.handle.sendline("sudo mn -c")
+        #time.sleep(5)
+       # main.Mininet2.handle.expect("\$", timeout=900)
+
+
+    def CASE4(self,main):
+        
+        main.case("Starting NB Throughput test")
+        ip1 = main.params['CTRL']['ip1']
+        ip2 = main.params['CTRL']['ip2']
+        ip3 = main.params['CTRL']['ip3']
+        import time
+        import json
+
+        main.Mininet4.handle.expect("\$")
+        #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
+        #main.Mininet2.handle.expect("mininet>" , timeout=400)
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.1:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.2:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.2:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.3:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.3:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.3:6633")
+
+        main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
+        main.ONOS3.handle.expect("\$")
+
+        main.ONOS3.handle.sendline("./multiLoadgen_NB.py -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 \" -i 4 -g 100 -a 1 -d 1 -p 0")
+        main.ONOS3.handle.expect("intent group is : 0", timeout=900)
+
+        
+        import json
+        
+        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale3nodesrate1", 'w').close()
+        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale3nodesrate1", "a")
+        #time.sleep(10)
+        for i in range(8):
+            json_str1 = main.ONOS1.get_json(url1)
+            json_str2 = main.ONOS2.get_json(url2)
+            json_str3 = main.ONOS3.get_json(url3)
+            if json_str1 != "" and json_str2 != "" and json_str3 != "":
+                f.write("ONOS1......IncomingRate \n ")
+                f.write(str(json_str1["meters"][0]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS2......IncomingRate \n")
+                f.write(str(json_str2["meters"][0]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS3......IncomingRate \n")
+                f.write(str(json_str3["meters"][0]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['mean_rate']))
+                f.write('\n')
+                f.write('\n')
+
+                f.write("--------------------------------------------------------------------------------- \n") 
+                
+                f.write("ONOS1......ProcessingRate \n ")
+                f.write(str(json_str1["meters"][1]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS2......ProcessingRate \n")
+                f.write(str(json_str2["meters"][1]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS3......ProcessingRate \n")
+                f.write(str(json_str3["meters"][1]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['mean_rate']))
+                f.write('\n')
+                f.write('\n')
+
+                f.write("--------------------------------------------------------------------------------- \n") 
+                time.sleep(10)
+        f.close()
+
+        main.ONOS3.handle.expect("\$", timeout=900)
+        
+    def CASE5(self,main):
+        
+        main.case("Starting ONOS scale-up to 4 nodes ")
+        import time
+       # main.RamCloud4.start_serv()
+        main.Zookeeper1.start()
+        main.ONOS4.start()
+        main.ONOS4.start_rest()
+        time.sleep(5)
+        data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
+        for i in range(3):
+            if data == main.FALSE: 
+                #main.log.report("Something is funny... restarting ONOS")
+                #main.ONOS1.stop()
+                time.sleep(3)
+                #main.ONOS1.start()
+                #time.sleep(5) 
+                data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
+            else:
+                break
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        time.sleep(10)
+
+    def CASE6(self,main):
+        
+        ip1 = main.params['CTRL']['ip1']
+        ip2 = main.params['CTRL']['ip2']
+        ip3 = main.params['CTRL']['ip3']
+        ip4 = main.params['CTRL']['ip4']
+        rate1 = main.params['RATE1']
+        run_dur = main.params['RUN_DUR']
+        loop = int( main.params['loop'])
+        switches_num = main.params['switches_num']
+        port = main.params['port']
+        print loop
+        sleep_t =int( main.params['sleep_t'])
+        main.case("Starting SB load on 4 nodes from mininet with " + rate1 +"  added/removed/s for " + run_dur)
+        main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + "\"" + " " + switches_num + " " + port + " " + rate1 + " " + run_dur +  "  \"11\"")
+        main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=900)
+        import time
+        import json
+        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate1", 'w').close()
+        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+
+        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate1", "a")
+        #time.sleep(10)
+        for i in range(int (loop)):
+            json_str1 = main.ONOS1.get_json(url1)
+            json_str2 = main.ONOS2.get_json(url2)
+            json_str3 = main.ONOS3.get_json(url3)
+            json_str4 = main.ONOS4.get_json(url4)
+            if json_str1 != "" and json_str2 != "" and json_str3 != "" and json_str4 != "":
+                # write_str = str(json_str["meters"][4]["meter"][2])
+                #print str(json_str["meters"][4])
+                #f.write(str(json_str["meters"][4]))
+                #f.write('\n')
+                #time.sleep(3)
+
+                f.write("ONOS1 \n")
+                f.write(str(json_str1["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+
+                f.write("ONOS2 \n")
+                f.write(str(json_str2["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+
+                f.write("ONOS3 \n")
+                f.write(str(json_str3["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+
+                f.write("ONOS4 \n")
+                f.write(str(json_str4["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+
+                f.write('\n')
+                
+                time.sleep(sleep_t)
+        f.close() 
+        #main.Mininet2.handle.expect("\$", timeout=900)
+        #main.Mininet2.handle.sendline("sudo mn -c")
+        #main.Mininet2.handle.expect("\$")
+        time.sleep(5)
+        main.Mininet2.handle.expect("\$", timeout=900)
+        
+
+    def CASE7(self,main):
+        
+        ip1 = main.params['CTRL']['ip1']
+        ip2 = main.params['CTRL']['ip2']
+        ip3 = main.params['CTRL']['ip3']
+        ip4 = main.params['CTRL']['ip4']
+        
+        import time
+        import json
+        rate2 = main.params['RATE2']
+        run_dur = main.params['RUN_DUR']
+        loop = int(main.params['loop'])
+        sleep_t = int(main.params['sleep_t'])
+        switches_num = main.params['sitches_num']
+        port = main.params['port']
+        main.case("Starting SB load on 4 nodes from mininet with " + rate2 +"  added/removed/s for " + run_dur)
+        main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 +  "\"" + " " + switches_num + " " + port +  " " + rate2 + " " + run_dur +  "  \"11\"")
+        main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=900 )
+        
+        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate2", 'w').close()
+        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate2", "a")
+        #time.sleep(10)
+        for i in range(int (loop)):
+            json_str1 = main.ONOS1.get_json(url1)
+            json_str2 = main.ONOS2.get_json(url2)
+            json_str3 = main.ONOS3.get_json(url3)
+            json_str4 = main.ONOS4.get_json(url4)
+            if json_str1 != "" and json_str2 != "" and json_str3 != "" and json_str4 != "":
+
+                f.write("ONOS1 \n")
+                f.write(str(json_str1["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                
+                f.write("ONOS2 \n")
+                f.write(str(json_str2["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                
+                f.write("ONOS3 \n")
+                f.write(str(json_str3["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+                
+                f.write("ONOS4 \n")
+                f.write(str(json_str4["meters"][4]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][4]['meter']['mean_rate']))
+                f.write('\n')
+
+                f.write('\n')
+                
+                time.sleep(sleep_t)
+        f.close()
+
+    def CASE8(self,main):
+        
+        main.case("Starting NB Throughput test after scaling up to 4 onos nodes")
+        ip1 = main.params['CTRL']['ip1']
+        ip2 = main.params['CTRL']['ip2']
+        ip3 = main.params['CTRL']['ip3']
+        ip4 = main.params['CTRL']['ip4']
+
+        import time
+        import json
+
+        main.Mininet4.handle.expect("\$")
+        #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
+        #main.Mininet2.handle.expect("mininet>" , timeout=400)
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.2:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.3:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.4:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.1:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.2:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.4:6633")
+
+        main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
+        main.ONOS3.handle.expect("\$")
+
+        main.ONOS3.handle.sendline("./multiLoadgen_NB.py -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 10.128.10.4:8080  \" -i 4 -g 100 -a 1 -d 1 -p 0")
+        main.ONOS3.handle.expect("intent group is : 0", timeout=900)
+
+        
+        import json
+        
+        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale4nodesrate1", 'w').close()
+        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale4nodesrate1", "a")
+        #time.sleep(10)
+        for i in range(8):
+            json_str1 = main.ONOS1.get_json(url1)
+            json_str2 = main.ONOS2.get_json(url2)
+            json_str3 = main.ONOS3.get_json(url3)
+            json_str4 = main.ONOS4.get_json(url4)
+
+            if json_str1 != "" and json_str2 != "" and json_str3 != "":
+                f.write("ONOS1......IncomingRate \n ")
+                f.write(str(json_str1["meters"][0]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][0]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS2......IncomingRate \n")
+                f.write(str(json_str2["meters"][0]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][0]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS3......IncomingRate \n")
+                f.write(str(json_str3["meters"][0]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][0]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS4......IncomingRate \n")
+                f.write(str(json_str4["meters"][0]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][0]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][0]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][0]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][0]['meter']['mean_rate']))
+                f.write('\n')
+                f.write('\n')
+
+                f.write("--------------------------------------------------------------------------------- \n") 
+                
+                f.write("ONOS1......ProcessingRate \n ")
+                f.write(str(json_str1["meters"][1]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str1["meters"][1]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS2......ProcessingRate \n")
+                f.write(str(json_str2["meters"][1]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str2["meters"][1]['meter']['mean_rate']))
+                f.write('\n')
+                f.write("ONOS3......ProcessingRate \n")
+                f.write(str(json_str3["meters"][1]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str3["meters"][1]['meter']['mean_rate']))
+                f.write('\n')
+
+                f.write("ONOS4......ProcessingRate \n")
+                f.write(str(json_str4["meters"][1]['meter']['count']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][1]['meter']['m1_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][1]['meter']['m5_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][1]['meter']['m15_rate']))
+                f.write('\t')
+                f.write(str(json_str4["meters"][1]['meter']['mean_rate']))
+                f.write('\n')
+
+                f.write('\n')
+
+                f.write("--------------------------------------------------------------------------------- \n") 
+       
+                time.sleep(10)
+        f.close()
+
+        main.ONOS3.handle.expect("\$", timeout=900)
+
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.topo b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.topo
new file mode 100644
index 0000000..5a4f78c
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.topo
@@ -0,0 +1,258 @@
+<TOPOLOGY>
+
+    <COMPONENT>
+        <Zookeeper1>
+            <host>10.128.10.1</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>1</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper1>
+
+        <Zookeeper2>
+            <host>10.128.10.2</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>2</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper2>
+
+        <Zookeeper3>
+            <host>10.128.10.3</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>3</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper3>
+       
+        <Zookeeper4>
+            <host>10.128.10.4</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>4</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper4>
+
+        <Zookeeper5>
+            <host>10.128.10.5</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>5</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper5>
+
+        <Zookeeper6>
+            <host>10.128.10.6</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>6</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper6>
+
+        <Zookeeper7>
+            <host>10.128.10.7</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>ZookeeperCliDriver</type>
+            <connect_order>7</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </Zookeeper7>
+
+        <RamCloud1>
+            <host>10.128.10.1</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>8</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+       </RamCloud1>
+
+        <RamCloud2>
+            <host>10.128.10.2</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>9</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud2>
+       
+        <RamCloud3>
+            <host>10.128.10.3</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>10</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud3>
+       
+        <RamCloud4>
+            <host>10.128.10.4</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>11</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud4>
+
+        <RamCloud5>
+            <host>10.128.10.5</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>12</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud5>
+
+        <RamCloud6>
+            <host>10.128.10.6</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>13</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud6>
+
+        <RamCloud7>
+            <host>10.128.10.7</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RamCloudCliDriver</type>
+            <connect_order>14</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </RamCloud7>
+
+
+        <ONOS1>
+            <host>10.128.10.1</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>15</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS1>
+
+        <ONOS2>
+            <host>10.128.10.2</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>16</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS2>
+
+        <ONOS3>
+            <host>10.128.10.3</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>17</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS3>
+       
+        <ONOS4>
+            <host>10.128.10.4</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>18</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS4>
+
+        <ONOS5>
+            <host>10.128.10.5</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>19</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS5>
+
+        <ONOS6>
+            <host>10.128.10.6</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>20</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS6>
+
+        <ONOS7>
+            <host>10.128.10.7</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>OnosCliDriver</type>
+            <connect_order>21</connect_order>
+            <COMPONENTS>
+             </COMPONENTS>
+        </ONOS7>
+
+         <Mininet2>
+            <host>10.128.10.90</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RemoteMininetDriver</type>
+            <connect_order>23</connect_order>
+            <COMPONENTS>
+                # Specify the Option for mininet
+                <arg1> --custom topo-onos4node.py </arg1>
+                <arg2> --topo mytopo --arp</arg2>
+                <controller> remote </controller>
+             </COMPONENTS>
+        </Mininet2>
+        
+        <Mininet3>
+            <host>10.128.10.91</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>MininetCliDriver</type>
+            <connect_order>24</connect_order>
+            <COMPONENTS>
+                # Specify the Option for mininet
+                <arg1> --custom topo-intentTPtest.py </arg1>
+                <arg2> --topo mytopo --arp</arg2>
+                <controller> remote </controller>
+            </COMPONENTS>
+        </Mininet3>
+
+        <Mininet4>
+            <host>10.128.10.91</host>
+            <user>admin</user>
+            <password>onos_test</password>
+            <type>RemoteMininetDriver</type>
+            <connect_order>24</connect_order>
+            <COMPONENTS>
+                # Specify the Option for mininet
+                <arg1> --custom topo-onos4node.py </arg1>
+                <arg2> --topo mytopo --arp</arg2>
+                <controller> remote </controller>
+            </COMPONENTS>
+        </Mininet4>
+
+    </COMPONENT>
+</TOPOLOGY>
diff --git a/TestON/tests/scaleONOS7nodes/scaleResults b/TestON/tests/scaleONOS7nodes/scaleResults
new file mode 100644
index 0000000..2488306
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleResults
@@ -0,0 +1,51 @@
+[2014-07-25 15:15:35.933098] [scaleONOS7nodes] [CASE]  Starting SB load from mininet with 20sw added/removed 10/s duration: 360s
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4, u'mean_rate': 0.059200312795650786, u'm5_rate': 0.0, u'm15_rate': 0.0, u'units': u'events/second', u'm1_rate': 0.0}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 189, u'mean_rate': 2.4356254535500663, u'm5_rate': 0.41843186533973237, u'm15_rate': 1.9369051806194815, u'units': u'events/second', u'm1_rate': 0.14129996658762756}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 305, u'mean_rate': 3.4808906901728482, u'm5_rate': 0.9457303370098417, u'm15_rate': 4.174524246234802, u'units': u'events/second', u'm1_rate': 0.3220664415995731}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 470, u'mean_rate': 4.813391854440621, u'm5_rate': 1.3653129541121973, u'm15_rate': 5.67074120039854, u'units': u'events/second', u'm1_rate': 0.47005007387755343}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 554, u'mean_rate': 5.145399853971431, u'm5_rate': 1.6878416231510096, u'm15_rate': 6.5221406321995365, u'units': u'events/second', u'm1_rate': 0.5886241207705653}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 670, u'mean_rate': 5.692871627444301, u'm5_rate': 1.9211151858691953, u'm15_rate': 6.874390831538807, u'units': u'events/second', u'm1_rate': 0.6793689049109783}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 782, u'mean_rate': 6.122985062753683, u'm5_rate': 2.298585202117126, u'm15_rate': 7.903041256773227, u'units': u'events/second', u'm1_rate': 0.8200558382406801}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 928, u'mean_rate': 6.737355933051502, u'm5_rate': 2.5440190839839243, u'm15_rate': 8.182751878849528, u'units': u'events/second', u'm1_rate': 0.9192254774790037}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1068, u'mean_rate': 7.2277027669966225, u'm5_rate': 3.0582120448420502, u'm15_rate': 9.742318376899973, u'units': u'events/second', u'm1_rate': 1.1102756658184045}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1178, u'mean_rate': 7.465643586983538, u'm5_rate': 3.3117994889825484, u'm15_rate': 9.89957751878761, u'units': u'events/second', u'm1_rate': 1.2173187929330158}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1272, u'mean_rate': 7.579869789467111, u'm5_rate': 3.491942657341365, u'm15_rate': 9.73588659125985, u'units': u'events/second', u'm1_rate': 1.3011290230067005}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1372, u'mean_rate': 7.714903896910294, u'm5_rate': 3.744533557606514, u'm15_rate': 9.958097598081375, u'units': u'events/second', u'm1_rate': 1.410495416418516}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1502, u'mean_rate': 7.995257880751603, u'm5_rate': 3.9832156189264327, u'm15_rate': 10.137227344552151, u'units': u'events/second', u'm1_rate': 1.5165477887836256}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1618, u'mean_rate': 8.17649661132665, u'm5_rate': 4.232923512725775, u'm15_rate': 10.361789679493679, u'units': u'events/second', u'm1_rate': 1.6279660102909048}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1796, u'mean_rate': 8.638436983286626, u'm5_rate': 4.625961247189527, u'm15_rate': 11.274683186266738, u'units': u'events/second', u'm1_rate': 1.7890611156116576}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1898, u'mean_rate': 8.70908577788645, u'm5_rate': 4.940218041617326, u'm15_rate': 11.732722831544308, u'units': u'events/second', u'm1_rate': 1.9262401293788511}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2014, u'mean_rate': 8.834979322143473, u'm5_rate': 5.086044615238827, u'm15_rate': 11.36565719225259, u'units': u'events/second', u'm1_rate': 2.00877929586214}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2096, u'mean_rate': 8.80741944058602, u'm5_rate': 5.23446678354358, u'm15_rate': 11.104825178674638, u'units': u'events/second', u'm1_rate': 2.092708438681387}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2212, u'mean_rate': 8.919169787587151, u'm5_rate': 5.42342880661179, u'm15_rate': 11.087454018930082, u'units': u'events/second', u'm1_rate': 2.1911244042226627}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2302, u'mean_rate': 8.921505549289213, u'm5_rate': 5.527733113130847, u'm15_rate': 10.709420105909206, u'units': u'events/second', u'm1_rate': 2.261958400590161}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2424, u'mean_rate': 9.043024690304492, u'm5_rate': 5.7730856298958795, u'm15_rate': 11.070016034135019, u'units': u'events/second', u'm1_rate': 2.3806525506070884}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2558, u'mean_rate': 9.198907190307924, u'm5_rate': 5.977993104861085, u'm15_rate': 11.230685676223507, u'units': u'events/second', u'm1_rate': 2.487028536364942}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2652, u'mean_rate': 9.205141639750474, u'm5_rate': 6.102910924894121, u'm15_rate': 11.002099225101214, u'units': u'events/second', u'm1_rate': 2.567791053544984}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2758, u'mean_rate': 9.251221641461491, u'm5_rate': 6.236628457203367, u'm15_rate': 10.864897965206772, u'units': u'events/second', u'm1_rate': 2.6520564660056722}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2866, u'mean_rate': 9.300808867298466, u'm5_rate': 6.4461734461098965, u'm15_rate': 11.153003681875704, u'units': u'events/second', u'm1_rate': 2.7620817265483906}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3000, u'mean_rate': 9.428962629183438, u'm5_rate': 6.549131070407777, u'm15_rate': 10.904360602384472, u'units': u'events/second', u'm1_rate': 2.837588952255399}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3114, u'mean_rate': 9.488273497253953, u'm5_rate': 6.760779624902542, u'm15_rate': 11.22991528533686, u'units': u'events/second', u'm1_rate': 2.9498980541385973}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3232, u'mean_rate': 9.555939548927737, u'm5_rate': 6.971335992976415, u'm15_rate': 11.519573501287377, u'units': u'events/second', u'm1_rate': 3.0630963037697176}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3322, u'mean_rate': 9.539302128630185, u'm5_rate': 7.005059610420453, u'm15_rate': 10.979254648249038, u'units': u'events/second', u'm1_rate': 3.117647167706458}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3426, u'mean_rate': 9.562668411317048, u'm5_rate': 7.168703957115292, u'm15_rate': 11.13340055572298, u'units': u'events/second', u'm1_rate': 3.2157814313436766}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3556, u'mean_rate': 9.6553664830416, u'm5_rate': 7.30835119706793, u'm15_rate': 11.196064287702198, u'units': u'events/second', u'm1_rate': 3.3063182176268193}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3690, u'mean_rate': 9.753744409437841, u'm5_rate': 7.436043897518086, u'm15_rate': 11.19922564971827, u'units': u'events/second', u'm1_rate': 3.3935526056733525}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3862, u'mean_rate': 9.94485575877501, u'm5_rate': 7.716475942451841, u'm15_rate': 11.928560772404543, u'units': u'events/second', u'm1_rate': 3.5328121098263545}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3962, u'mean_rate': 9.945657010947713, u'm5_rate': 7.921927978095857, u'm15_rate': 12.23377875835498, u'units': u'events/second', u'm1_rate': 3.6484090746318865}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4074, u'mean_rate': 9.975814947863958, u'm5_rate': 8.00901532078311, u'm15_rate': 11.966342332818853, u'units': u'events/second', u'm1_rate': 3.7251416456063717}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4156, u'mean_rate': 9.932800200694953, u'm5_rate': 8.054999692711906, u'm15_rate': 11.58131193842906, u'units': u'events/second', u'm1_rate': 3.7878895918323345}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4290, u'mean_rate': 10.013202869430945, u'm5_rate': 8.197664300462709, u'm15_rate': 11.712109833999651, u'units': u'events/second', u'm1_rate': 3.8830746138276506}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.97133516767342, u'm5_rate': 8.191184093898045, u'm15_rate': 11.142233135267437, u'units': u'events/second', u'm1_rate': 3.928565036650824}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.748514038149732, u'm5_rate': 8.052687964347193, u'm15_rate': 10.02019824138421, u'units': u'events/second', u'm1_rate': 3.9292315920501197}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.535437429356055, u'm5_rate': 7.788689451274274, u'm15_rate': 8.481914691112806, u'units': u'events/second', u'm1_rate': 3.885815112583944}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.331367778702917, u'm5_rate': 7.533345838926838, u'm15_rate': 7.179785778108208, u'units': u'events/second', u'm1_rate': 3.842878368314098}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.135919987284627, u'm5_rate': 7.286373385909162, u'm15_rate': 6.077557449798136, u'units': u'events/second', u'm1_rate': 3.80041605835342}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.948532183901525, u'm5_rate': 7.047497652974929, u'm15_rate': 5.144541313226928, u'units': u'events/second', u'm1_rate': 3.758422940387489}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.76863771104249, u'm5_rate': 6.8164531980665, u'm15_rate': 4.354760204591356, u'units': u'events/second', u'm1_rate': 3.7168938300274155}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.59583194470271, u'm5_rate': 6.592983281351978, u'm15_rate': 3.6862249294674947, u'units': u'events/second', u'm1_rate': 3.6758236001697906}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.429632452341373, u'm5_rate': 6.37683957993232, u'm15_rate': 3.120322036630427, u'units': u'events/second', u'm1_rate': 3.635207180363701}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.269862736358995, u'm5_rate': 6.167781911901452, u'm15_rate': 2.6412955797811177, u'units': u'events/second', u'm1_rate': 3.595039556184744}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.115976079788764, u'm5_rate': 5.965577969452773, u'm15_rate': 2.2358084383190753, u'units': u'events/second', u'm1_rate': 3.5553157686159524}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 7.967761632050002, u'm5_rate': 5.770003060735474, u'm15_rate': 1.892570983393321, u'units': u'events/second', u'm1_rate': 3.516030913435567}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 7.8248239429659785, u'm5_rate': 5.580839860173803, u'm15_rate': 1.6020267505007044, u'units': u'events/second', u'm1_rate': 3.477180140611569}}
