diff --git a/libraries/onos.robot b/libraries/onos.robot
index bd9e671..a1542a4 100755
--- a/libraries/onos.robot
+++ b/libraries/onos.robot
@@ -24,6 +24,9 @@
 Library           OperatingSystem
 Resource          ./flows.robot
 
+*** Variables ***
+@{connection_list}
+
 *** Keywords ***
 
 Open ONOS SSH Connection
@@ -31,25 +34,60 @@
     [Arguments]    ${host}    ${port}    ${user}=karaf    ${pass}=karaf
     ${conn_id}=    SSHLibrary.Open Connection    ${host}    port=${port}    timeout=300s    alias=ONOS_SSH
     SSHLibrary.Login    ${user}    ${pass}
-    [Return]    ${conn_id}
+    ${conn_list_entry}=    Create Dictionary    conn_id=${conn_id}    user=${user}    pass=${pass}
+    Append To List    ${connection_list}    ${conn_list_entry}
+    ${conn_list_id}=    Get Index From List    ${connection_list}    ${conn_list_entry}
+    Set Global Variable    ${connection_list}
+    [Return]    ${conn_list_id}
 
 Execute ONOS CLI Command on open connection
     [Documentation]    Execute ONOS CLI Command On an Open Connection
-    [Arguments]    ${connection_alias}  ${cmd}
-    SSHLibrary.Switch Connection   ${connection_alias}
-    @{result_values}    SSHLibrary.Execute Command    ${cmd}    return_rc=True
-    ...    return_stderr=True    return_stdout=True
+    [Arguments]    ${connection_list_id}  ${cmd}
+    ${connection_entry}=    Get From List   ${connection_list}    ${connection_list_id}
+    SSHLibrary.Switch Connection   ${connection_entry.conn_id}
+    ${PassOrFail}    @{result_values}    Run Keyword And Ignore Error    SSHLibrary.Execute Command    ${cmd}
+    ...    return_rc=True    return_stderr=True    return_stdout=True
+    Run Keyword If    '${PassOrFail}'=='FAIL'    Reconnect ONOS SSH Connection    ${connection_list_id}
+    @{result_values}=    Run Keyword If    '${PassOrFail}'=='FAIL'
+    ...    SSHLibrary.Execute Command    ${cmd}    return_rc=True    return_stderr=True    return_stdout=True
+    ...    ELSE    Set Variable    @{result_values}
     ${output}    Set Variable    @{result_values}[0]
     Log    Command output: ${output}
     Should Be Empty    @{result_values}[1]
     Should Be Equal As Integers    @{result_values}[2]    0
     [Return]    ${output}
 
+Reconnect ONOS SSH Connection
+    [Documentation]    Reconnect an SSH Connection
+    [Arguments]    ${connection_list_id}
+    ${connection_entry}=    Get From List   ${connection_list}    ${connection_list_id}
+    ${user}=    Get From Dictionary    ${connection_entry}    user
+    ${pass}=    Get From Dictionary    ${connection_entry}    pass
+    ${oldconndata}=    Get Connection    ${connection_entry.conn_id}
+    SSHLibrary.Switch Connection   ${connection_entry.conn_id}
+    SSHLibrary.Close Connection
+    ${conn_id}=    SSHLibrary.Open Connection    ${oldconndata.host}    port=${oldconndata.port}
+    ...    timeout=300s    alias=ONOS_SSH
+    SSHLibrary.Login    ${user}    ${pass}
+    ${conn_list_entry}=    Create Dictionary    conn_id=${conn_id}    user=${user}    pass=${pass}
+    Set List Value    ${connection_list}    ${connection_list_id}    ${conn_list_entry}
+    Set Global Variable    ${connection_list}
+
 Close ONOS SSH Connection
     [Documentation]    Close an SSH Connection
-    [Arguments]    ${connection_alias}
+    [Arguments]    ${connection_list_id}
+    ${connection_entry}=    Get From List   ${connection_list}    ${connection_list_id}
+    ${connection_alias}=    Get From Dictionary    ${connection_entry}    conn_id
+    ${oldconndata}=    Get Connection    ${connection_entry.conn_id}
     SSHLibrary.Switch Connection   ${connection_alias}
     SSHLibrary.Close Connection
+    Remove From List    ${connection_list}    ${connection_list_id}
+    Set Global Variable    ${connection_list}
+
+Close All ONOS SSH Connections
+    [Documentation]    Close all SSH Connection and clear connection list.
+    SSHLibrary.Close All Connections
+    @{connection_list}    Create List
 
 Validate OLT Device in ONOS
     #    FIXME use volt-olts to check that the OLT is ONOS
@@ -528,8 +566,8 @@
 
 Wait for all flows to in ADDED state
     [Documentation]  Waits until the flows have been provisioned
-    [Arguments]  ${onos_ssh_connection}     ${deviceId}     ${workflow}    ${uni_count}    ${olt_count}    ${provisioned}
-    ...     ${withEapol}    ${withDhcp}     ${withIgmp}     ${withLldp}
+    [Arguments]  ${onos_ssh_connection}     ${deviceId}     ${workflow}    ${uni_count}    ${olt_count}
+    ...    ${provisioned}     ${withEapol}    ${withDhcp}     ${withIgmp}     ${withLldp}
     ${targetFlows}=     Calculate flows by workflow     ${workflow}    ${uni_count}    ${olt_count}     ${provisioned}
     ...     ${withEapol}    ${withDhcp}     ${withIgmp}     ${withLldp}
     Wait Until Keyword Succeeds     10m     5s      Count ADDED flows
