Work in progress: link discovery latency case and 100 switch discovery latency case
diff --git a/TestON/tests/TopoPerfNext/TopoPerfNext.py b/TestON/tests/TopoPerfNext/TopoPerfNext.py
index e3940f8..5b80b50 100644
--- a/TestON/tests/TopoPerfNext/TopoPerfNext.py
+++ b/TestON/tests/TopoPerfNext/TopoPerfNext.py
@@ -832,6 +832,77 @@
# link down discovery. Take timestamp and
# gather list for num_iter
+ def CASE5(self, main):
+ '''
+ 100 Switch discovery latency
+
+ Important:
+ If a simple topology was used in previous cases,
+ you will need to change the topology file in the
+ params for this case to proceed
+ '''
+ import time
+ import subprocess
+ import os
+ import requests
+ import json
+
+ ONOS1_ip = main.params['CTRL']['ip1']
+ ONOS2_ip = main.params['CTRL']['ip2']
+ ONOS3_ip = main.params['CTRL']['ip3']
+ MN1_ip = main.params['MN']['ip1']
+ ONOS_user = main.params['CTRL']['user']
+
+ default_sw_port = main.params['CTRL']['port1']
+
+ #Number of iterations of case
+ num_iter = main.params['TEST']['numIter']
+
+ #Timestamp 'keys' for json metrics output.
+ #These are subject to change, hence moved into params
+ deviceTimestamp = main.params['JSON']['deviceTimestamp']
+
+ main.case("100 Switch discovery latency")
+ main.step("Assigning all switches to ONOS1")
+ #Assumes that topology consists of 100 switches
+ for i in range(1, 101):
+ main.Mininet1.assign_sw_controller(
+ sw=str(i),
+ ip1=ONOS1_ip,
+ port1=default_sw_port)
+ #Ensure that nodes are configured with ptpd
+ #ONOS1 ptpd is master without NTP
+ ONOS1_ptpd = main.ONOS1.ptpd("-W")
+ ONOS2_ptpd = main.ONOS2.ptpd("-g")
+ ONOS3_ptpd = main.ONOS3.ptpd("-g")
+ os.system("sudo ptpd -g")
+
+ if ONOS1_ptpd == main.TRUE and\
+ ONOS2_ptpd == main.TRUE and\
+ ONOS3_ptpd == main.TRUE:
+ main.log.info("ptpd started on all ONOS instances")
+ else:
+ main.log.info("Check ptpd configuration to ensure"+\
+ " All nodes' system times are in sync")
+
+ for i in range(0, int(num_iter)):
-
-
+ main.step("Set iptables rule to block incoming sw connections")
+ #Set iptables rule to block incoming switch connections
+ main.ONOS1.handle.sendline(
+ "sudo iptables -A INPUT -p tcp -s "+MN_ip+
+ " --dport "+default_sw_port+" -j DROP")
+ main.ONOS1.handle.expect("\$")
+ #Give time to allow rule to take effect
+ time.sleep(10)
+
+ #TODO: Implement iptables to block all switch communication
+ # sudo iptables -A INPUT -p packet_type -s ip_to_block
+ # --dport port_to_block -j rule<DROP>
+ #TODO: Remove all iptables rule quickly (flush)
+ # Before removal, obtain TestON timestamp at which
+ # removal took place (ensuring nodes are configured via ptp)
+ # sudo iptables -F
+
+
+
diff --git a/TestON/tests/TopoPerfNext/TopoPerfNext.topo b/TestON/tests/TopoPerfNext/TopoPerfNext.topo
index 37ca2f9..5010fcc 100644
--- a/TestON/tests/TopoPerfNext/TopoPerfNext.topo
+++ b/TestON/tests/TopoPerfNext/TopoPerfNext.topo
@@ -46,6 +46,24 @@
<COMPONENTS> </COMPONENTS>
</ONOS1>
+ <ONOS2>
+ <host>10.128.174.2</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosDriver</type>
+ <connect_order>3</connect_order>
+ <COMPONENTS> </COMPONENTS>
+ </ONOS2>
+
+ <ONOS3>
+ <host>10.128.174.3</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosDriver</type>
+ <connect_order>3</connect_order>
+ <COMPONENTS> </COMPONENTS>
+ </ONOS3>
+
<Mininet1>
<host>10.128.10.90</host>
<user>admin</user>
@@ -53,7 +71,7 @@
<type>MininetCliDriver</type>
<connect_order>4</connect_order>
<COMPONENTS>
- <arg1> --custom topo-perf-2sw.py </arg1>
+ <arg1> --custom topo-100sw.py </arg1>
<arg2> --arp --mac --topo mytopo</arg2>
<arg3> </arg3>
<controller> remote </controller>