diff --git a/src/test/robot/cluster.robot b/src/test/robot/cluster.robot
new file mode 100644
index 0000000..bc7cffb
--- /dev/null
+++ b/src/test/robot/cluster.robot
@@ -0,0 +1,45 @@
+*** 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
+
+*** Test Cases ***
+Verify Onos DHCP Server Functionality
+  [Documentation]  Make a DHCP request to ONOS to get an IP
+  ${rc}=  Run Cord Tester  dhcp:dhcp_exchange.test_dhcp_1request
+  Should Be Equal As Integers  ${rc}  0
+
+Verify ONOS DHCP Relay Server Functionality
+  [Documentation]  Make a DHCP request to a relay server through ONOS to get an IP
+  ${rc}=  Run Cord Tester  dhcprelay:dhcprelay_exchange.test_dhcpRelay_1request
+  Should Be Equal As Integers  ${rc}  0
+
+Verify Onos AAA Functionality
+  [Documentation]  Make a TLS client request to a RADIUS server through ONOS AAA application
+  ${rc}=  Run Cord Tester  tls:eap_auth_exchange.test_eap_tls
+  Should Be Equal As Integers  ${rc}  0
+
+Verify Onos IGMP Functionality
+  [Documentation]  Make a IGMP join leave request through ONOS IGMP snooping application
+  ${rc}=  Run Cord Tester  igmp:igmp_exchange.test_igmp_join_verify_traffic
+  Should Be Equal As Integers  ${rc}  0
+
+Verify Cord SUBSCRIBER Functionality
+  [Documentation]  Simulate Channel Surfing experience
+  ${rc}=  Run Cord Tester  cordSubscriber:subscriber_exchange.test_cord_subscriber_join_jump
+  Should Be Equal As Integers  ${rc}  0
+
+Verify Cord VROUTER Functionality
+  [Documentation]  Start Quagga container, connect it to ONOS before validating ONOS routing works
+  ${rc}=  Run Cord Tester  vrouter:vrouter_exchange.test_vrouter_with_5_routes
+  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
\ No newline at end of file
diff --git a/src/test/robot/cord.robot b/src/test/robot/cord.robot
index c0c69d4..da58d9c 100644
--- a/src/test/robot/cord.robot
+++ b/src/test/robot/cord.robot
@@ -1,11 +1,8 @@
 *** Settings ***
 Documentation  Run Cord verification test cases
+Resource  cord_resource.robot
 Suite Setup  Cord Setup
 Suite Teardown  Cord Teardown
-Library    OperatingSystem
-
-*** Variables ***
-${CORD_TESTER}    %{HOME}/cord-tester/src/test/setup/cord-test.py
 
 *** Test Cases ***
 Verify Onos DHCP Server Functionality
@@ -37,22 +34,3 @@
   [Documentation]  Start Quagga container, connect it to ONOS before validating ONOS routing works
   ${rc}=  Run Cord Tester  vrouter:vrouter_exchange.test_vrouter_with_5_routes
   Should Be Equal As Integers  ${rc}  0
-
-*** Keywords ***
-Cord Setup
-  [Documentation]  Setup the cord tester
-  ${rc}=  Run and Return RC  sudo ${CORD_TESTER} setup --olt --start-switch
-  Should Be Equal As Integers  ${rc}  0
-  ${test_container}=  Run  sudo docker ps -l | tail -1 | tr -s ' ' | awk '{print $NF}'
-  Set Suite Variable  ${test_container}
-
-Cord Teardown
-  [Documentation]  Teardown the cord tester setup
-  ${output}=  Run  sudo ${CORD_TESTER} cleanup --olt
-
-Run Cord Tester
-  [Arguments]   ${test_case}
-  ${status}  ${output}=  Run and Return RC and Output  sudo ${CORD_TESTER} run --container=${test_container} -t ${test_case}
-  Log  ${output}
-  [Return]    ${status}
-
diff --git a/src/test/robot/cord_resource.robot b/src/test/robot/cord_resource.robot
new file mode 100644
index 0000000..42884d3
--- /dev/null
+++ b/src/test/robot/cord_resource.robot
@@ -0,0 +1,58 @@
+*** Settings ***
+Documentation  Common definitions of variables and keywords for running cord tester
+Library  OperatingSystem
+Library  Collections
+Library  RequestsLibrary
+
+*** Variables ***
+${CORD_TESTER}    %{HOME}/cord-tester/src/test/setup/cord-test.py
+${RESTPORT}  8181
+${NODES}  1
+
+*** Keywords ***
+Cord Setup
+  [Documentation]  Setup the cord tester
+  Cord Teardown
+  ${rc}=  Run and Return RC  sudo ${CORD_TESTER} setup --olt --start-switch -n ${NODES}
+  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' ' '
+  @{controller_names}=  Create List  ${controllers}
+  @{controller_list}=  Create List
+  : FOR  ${controller}  IN  @{controller_names}
+  \  ${ip}=  Run  sudo docker inspect -f '{{.NetworkSettings.Networks.bridge.IPAddress}}' ${controller}
+  \  Append To List  ${controller_list}  ${ip}
+
+  Set Suite Variable  ${test_container}
+  Set Suite Variable  @{controller_list}
+  Create HTTP Sessions
+  Wait Until Keyword Succeeds  30s  2s  Verify If All Controllers Are Up
+
+Cord Teardown
+  [Documentation]  Teardown the cord tester setup
+  ${output}=  Run  sudo ${CORD_TESTER} cleanup --olt
+
+Create HTTP Sessions
+  [Documentation]  Create controller http sessions
+  ${AUTH}=  Create List  karaf  karaf
+  : FOR  ${ip}  IN  @{controller_list}
+  \  Create Session  ${ip}  http://${ip}:${RESTPORT}  auth=${AUTH}
+
+Verify If All Controllers Are Up
+  [Documentation]  Make a rest call to the controller to see if its responding
+  : FOR  ${ip}  IN  @{controller_list}
+  \  ${resp}=  ONOS Get  ${ip}  devices
+  \  Should Be Equal As Strings  ${resp.status_code}  200
+
+ONOS Get
+  [Documentation]  Make a rest call to ONOS controller
+  [Arguments]  ${session}  ${noun}
+  ${resp}=  Get Request  ${session}  /onos/v1/${noun}
+  Log  ${resp.content}
+  [Return]  ${resp}
+
+Run Cord Tester
+  [Arguments]   ${test_case}
+  ${status}  ${output}=  Run and Return RC and Output  sudo ${CORD_TESTER} run --container=${test_container} -t ${test_case}
+  Log  ${output}
+  [Return]    ${status}
