diff --git a/src/test/robot/cluster.robot b/src/test/robot/cluster.robot
index bc7cffb..fe1d2fd 100644
--- a/src/test/robot/cluster.robot
+++ b/src/test/robot/cluster.robot
@@ -6,6 +6,7 @@
 
 *** Variables ***
 ${NODES}          3
+${EXTRA_OPTS}     -v
 
 *** Test Cases ***
 Verify Onos DHCP Server Functionality
diff --git a/src/test/robot/cluster_controller.robot b/src/test/robot/cluster_controller.robot
new file mode 100644
index 0000000..6a2d0b6
--- /dev/null
+++ b/src/test/robot/cluster_controller.robot
@@ -0,0 +1,21 @@
+*** Settings ***
+Documentation  Run Cord verification test cases for Cluster
+Resource  cord_resource.robot
+Suite Setup  Cord Cluster Setup
+Suite Teardown  Cord Teardown
+
+*** Variables ***
+${NODES}          3
+${EXTRA_OPTS}     -v
+
+*** Test Cases ***
+Verify Onos Controller Restart Functionality
+  [Documentation]  Verify ONOS cluster by restarting controllers iteratively
+  ${rc}=  Run Cord Tester  cluster:cluster_exchange.test_cluster_controller_restarts
+  Should Be Equal As Integers  ${rc}  0
+
+*** Keywords ***
+Cord Cluster Setup
+  [Documentation]  Configure a ${NODES} node ONOS cluster for cord tester
+  ${output}  Run  sudo docker ps |grep cord-onos | tr -s ' ' | awk '{print $NF}' | xargs docker kill
+  Cord Setup
diff --git a/src/test/robot/cord_resource.robot b/src/test/robot/cord_resource.robot
index 42884d3..67219e5 100644
--- a/src/test/robot/cord_resource.robot
+++ b/src/test/robot/cord_resource.robot
@@ -8,12 +8,13 @@
 ${CORD_TESTER}    %{HOME}/cord-tester/src/test/setup/cord-test.py
 ${RESTPORT}  8181
 ${NODES}  1
+${EXTRA_OPTS}
 
 *** Keywords ***
 Cord Setup
   [Documentation]  Setup the cord tester
   Cord Teardown
-  ${rc}=  Run and Return RC  sudo ${CORD_TESTER} setup --olt --start-switch -n ${NODES}
+  ${rc}=  Run and Return RC  sudo ${CORD_TESTER} setup --olt --start-switch -n ${NODES} ${EXTRA_OPTS}
   Should Be Equal As Integers  ${rc}  0
   ${test_container}=  Run  sudo docker ps | grep cord-tester | tail -1 | tr -s ' ' | awk '{print $NF}'
   ${controllers}=  Run  sudo docker ps | grep cord-onos | tr -s ' ' | awk '{print $NF}' | tr -s '\n' ' '
@@ -53,6 +54,6 @@
 
 Run Cord Tester
   [Arguments]   ${test_case}
-  ${status}  ${output}=  Run and Return RC and Output  sudo ${CORD_TESTER} run --container=${test_container} -t ${test_case}
+  ${status}  ${output}=  Run and Return RC and Output  sudo ${CORD_TESTER} run --onos-instances=${NODES} --container=${test_container} -t ${test_case}
   Log  ${output}
   [Return]    ${status}
diff --git a/src/test/setup/cord-test.py b/src/test/setup/cord-test.py
index 252216d..4f76d43 100755
--- a/src/test/setup/cord-test.py
+++ b/src/test/setup/cord-test.py
@@ -117,7 +117,7 @@
         status = 1
         ## Wait for the LLDP flows to be added to the switch
         tries = 0
-        while status != 0 and tries < 200:
+        while status != 0 and tries < 500:
             cmd = 'sudo ovs-ofctl dump-flows {0} | grep \"type=0x8942\"'.format(self.switch)
             status = self.execute_switch(cmd, shell = True)
             tries += 1
@@ -628,6 +628,8 @@
     Onos.PREFIX = args.prefix
     Onos.TAG = onos_cnt['tag']
     cluster_mode = True if args.onos_instances > 1 else False
+    existing_list = [ c['Names'][0][1:] for c in Container.dckr.containers() if c['Image'] == args.onos ]
+    setup_cluster = False if len(existing_list) == args.onos_instances else True
     onos = None
     if onos_ip is None:
         data_volume = '{}-data'.format(Onos.NAME) if args.shared_volume else None
@@ -647,7 +649,8 @@
                         data_volume = data_volume)
             onos_instances.append(onos)
             onos_ips.append(onos.ipaddr)
-        Onos.setup_cluster(onos_instances)
+        if setup_cluster is True:
+            Onos.setup_cluster(onos_instances)
 
     ctlr_addr = ','.join(onos_ips)
     print('Onos IP %s' %ctlr_addr)
