X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fgenius%2FBFD_monitoring.robot;h=2802feb84ca1d2b4b8b1a224b4c4d5e993fd123a;hb=175a804ae2b4630acba90e364d3bc48b750a04e6;hp=dcf50120e01fab217c7d0e60896a18e05efa4cb3;hpb=e7eda24d470f2380b9f17ce9612ba7ee685e499a;p=integration%2Ftest.git diff --git a/csit/suites/genius/BFD_monitoring.robot b/csit/suites/genius/BFD_monitoring.robot index dcf50120e0..2802feb84c 100644 --- a/csit/suites/genius/BFD_monitoring.robot +++ b/csit/suites/genius/BFD_monitoring.robot @@ -1,141 +1,227 @@ *** Settings *** -Documentation Test Suite for BFD tunnel monitoring -Suite Setup Genius Suite Setup -Suite Teardown BFD Suite Teardown -Test Setup Genius Test Setup -Test Teardown Genius Test Teardown ${data_models} -Library OperatingSystem -Library String -Library RequestsLibrary -Library Collections -Library re -Library SSHLibrary -Variables ../../variables/genius/Modules.py -Resource ../../libraries/DataModels.robot -Resource ../../libraries/Genius.robot -Resource ../../libraries/KarafKeywords.robot -Resource ../../libraries/OVSDB.robot -Resource ../../libraries/Utils.robot -Resource ../../libraries/VpnOperations.robot -Resource ../../variables/Variables.robot +Documentation Test Suite for BFD tunnel monitoring + +Library OperatingSystem +Library String +Library RequestsLibrary +Library Collections +Library SSHLibrary +Resource ../../libraries/DataModels.robot +Resource ../../libraries/Genius.robot +Resource ../../libraries/KarafKeywords.robot +Resource ../../libraries/OVSDB.robot +Resource ../../libraries/ToolsSystem.robot +Resource ../../libraries/Utils.robot +Resource ../../libraries/VpnOperations.robot +Resource ../../variables/netvirt/Variables.robot +Resource ../../variables/Variables.robot +Resource ../../libraries/CompareStream.robot +Variables ../../variables/genius/Modules.py + +Suite Setup Genius Suite Setup +Suite Teardown BFD Suite Teardown +Test Setup Genius Test Setup +Test Teardown Genius Test Teardown ${data_models} + *** Variables *** -@{itm_created} TZA -${genius_config_dir} ${CURDIR}/../../variables/genius -${TEP_SHOW} tep:show -${TEP_SHOW_STATE} tep:show-state -${TUNNEL_MONITOR_ON} Tunnel Monitoring (for VXLAN tunnels): On -${DEFAULT_MONITORING_INTERVAL} Tunnel Monitoring Interval (for VXLAN tunnels): 1000 -${TUNNEL_MONITOR_OFF} Tunnel Monitoring (for VXLAN tunnels): Off -${INTERVAL_5000} {"tunnel-monitor-interval":{"interval":5000}} -${OK_201} 201 -${ENABLE_MONITORING} {"tunnel-monitor-params":{"enabled":true,"monitor-protocol":"odl-interface:tunnel-monitoring-type-bfd"}} -${DISABLE_MONITORING} {"tunnel-monitor-params":{"enabled":"false","monitor-protocol":"odl-interface:tunnel-monitoring-type-bfd"}} -${TUNNEL_MONI_PARAMS_TRUE} true -${TUNNEL_MONI_PARAMS_FALSE} false -${INTERFACE_DS_MONI_FALSE} "odl-interface:monitor-enabled": false -${INTERFACE_DS_MONI_TRUE} "odl-interface:monitor-enabled": true -${INTERFACE_DS_MONI_INT_1000} "odl-interface:monitor-interval": 1000 -${INTERFACE_DS_MONI_INT_5000} "odl-interface:monitor-interval": 5000 -${TUNNEL_MONI_PROTO} tunnel-monitoring-type-bfd +${TUNNEL_MONITOR_ON} Tunnel Monitoring (for VXLAN tunnels): On +${DEFAULT_MONITORING_INTERVAL} Tunnel Monitoring Interval (for VXLAN tunnels): 1000 +${TUNNEL_MONITOR_OFF} Tunnel Monitoring (for VXLAN tunnels): Off +${INTERVAL_5000} {"tunnel-monitor-interval":{"interval":5000}} +${ENABLE_MONITORING} +... {"tunnel-monitor-params":{"enabled":true,"monitor-protocol":"odl-interface:tunnel-monitoring-type-bfd"}} +${DISABLE_MONITORING} +... {"tunnel-monitor-params":{"enabled":"false","monitor-protocol":"odl-interface:tunnel-monitoring-type-bfd"}} +${TUNNEL_MONI_PARAMS_TRUE} true +${TUNNEL_MONI_PARAMS_FALSE} false +${INTERFACE_DS_MONI_FALSE} "odl-interface:monitor-enabled": false +${INTERFACE_DS_MONI_TRUE} "odl-interface:monitor-enabled": true +${INTERFACE_DS_MONI_INT_1000} "odl-interface:monitor-interval": 1000 +${INTERFACE_DS_MONI_INT_5000} "odl-interface:monitor-interval": 5000 +${TUNNEL_MONI_PROTO} tunnel-monitoring-type-bfd + *** Test Cases *** -BFD_TC00 Create ITM between DPNs Verify_BFD_Enablement - [Documentation] Create ITM between DPNs Verify_BFD_Enablement - ${Dpn_id_1} Genius.Get Dpn Ids ${conn_id_1} - ${Dpn_id_2} Genius.Get Dpn Ids ${conn_id_2} - ${vlan}= Set Variable 0 - ${gateway-ip}= Set Variable 0.0.0.0 - Genius.Create Vteps ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} ${vlan} ${gateway-ip} - Wait Until Keyword Succeeds 30s 5s Genius.Verify Tunnel Status as UP TZA - -BFD_TC01 Verify by default BFD monitoring is enabled on Controller - [Documentation] Verify by default BFD monitoring is enabled on Controller - Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Is On - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_TRUE} ${INTERFACE_DS_MONI_INT_1000} ${TUNNEL_MONI_PROTO} - -BFD_TC02 Verify that BFD tunnel monitoring interval is set with appropriate default value i.e.,1000 +BFD_TC00 Create ITM between DPNs + [Documentation] Create ITM between DPNs + Genius.Create Vteps ${NO_VLAN} ${gateway_ip} + BuiltIn.Wait Until Keyword Succeeds 30s 5s Genius.Verify Tunnel Status As Up + +BFD_TC01 Verify default BFD monitoring status on Controller + [Documentation] Verify the default value of BFD monitoring \ on the Controller + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Genius.Verify Tunnel Monitoring Status + ... ${TUNNEL_MONITOR_OFF} + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_FALSE} + ... ${INTERFACE_DS_MONI_INT_1000} + ... ${TUNNEL_MONI_PROTO} + +BFD_TC02 Enable BFD Monitoring And Verify On Controller + [Documentation] Enable BFD monitoring in branches greater than neon and verify that BFD is enabled in the controller. + Enable BFD And Verify ${INTERFACE_DS_MONI_INT_1000} + +BFD_TC03 Verify that BFD tunnel monitoring interval is set with appropriate default value i.e.,1000 [Documentation] This will verify BFD tunnel monitoring default interval - ${output} = Issue Command On Karaf Console ${TEP_SHOW} - ${tunnel_monitoring} = Get Lines Containing String ${output} Tunnel Monitoring Interval - Should Be Equal ${tunnel_monitoring} ${DEFAULT_MONITORING_INTERVAL} - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_TRUE} ${INTERFACE_DS_MONI_INT_1000} ${TUNNEL_MONI_PROTO} + ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW} + ${tunnel_monitoring} = String.Get Lines Containing String ${output} Tunnel Monitoring Interval + BuiltIn.Should Be Equal ${tunnel_monitoring} ${DEFAULT_MONITORING_INTERVAL} + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_TRUE} + ... ${INTERFACE_DS_MONI_INT_1000} + ... ${TUNNEL_MONI_PROTO} BFD_TC04 Verify that in controller tunnel status is up when ITM tunnel interface is brought up. [Documentation] Verify that in controller tunnel status is up when ITM tunnel interface is brought up. - Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Is On - Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status as UP TZA - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_TRUE} ${INTERFACE_DS_MONI_INT_1000} ${TUNNEL_MONI_PROTO} + BuiltIn.Wait Until Keyword Succeeds 10s 2s Genius.Verify Tunnel Monitoring Status ${TUNNEL_MONITOR_ON} + BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_TRUE} + ... ${INTERFACE_DS_MONI_INT_1000} + ... ${TUNNEL_MONI_PROTO} BFD_TC05 Verify BFD tunnel monitoring interval can be changed. [Documentation] Verify BFD tunnel monitoring interval can be changed. - ${oper_int} RequestsLibrary.Put Request session ${CONFIG_API}/itm-config:tunnel-monitor-interval/ data=${INTERVAL_5000} - ${Bfd_updated_value}= Create List 5000 - Wait Until Keyword Succeeds 30s 10s Check For Elements At Uri ${OPERATIONAL_API}/itm-config:tunnel-monitor-interval/ ${Bfd_updated_value} - Wait Until Keyword Succeeds 30s 10s Check For Elements At Uri ${CONFIG_API}/itm-config:tunnel-monitor-interval/ ${Bfd_updated_value} - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_TRUE} ${INTERFACE_DS_MONI_INT_5000} ${TUNNEL_MONI_PROTO} - ${tun_name} Wait Until Keyword Succeeds 20 5 Ovs Tunnel Get ${TOOLS_SYSTEM_1_IP} - Wait Until Keyword Succeeds 20s 5 OVSDB.Verify Ovs-vsctl Output list interface ${tun_name} 5000 ovs_system=${TOOLS_SYSTEM_1_IP} - ${tun_name} Wait Until Keyword Succeeds 20 5 Ovs Tunnel Get ${TOOLS_SYSTEM_2_IP} - Wait Until Keyword Succeeds 20s 5 OVSDB.Verify Ovs-vsctl Output list interface ${tun_name} 5000 ovs_system=${TOOLS_SYSTEM_2_IP} + ${oper_int} = RequestsLibrary.Put Request + ... session + ... ${CONFIG_API}/itm-config:tunnel-monitor-interval/ + ... data=${INTERVAL_5000} + ${Bfd_updated_value} = BuiltIn.Create List 5000 + Wait Until Keyword Succeeds + ... 30s + ... 10s + ... Utils.Check For Elements At URI + ... ${OPERATIONAL_API}/itm-config:tunnel-monitor-interval/ + ... ${Bfd_updated_value} + Wait Until Keyword Succeeds + ... 30s + ... 10s + ... Utils.Check For Elements At URI + ... ${CONFIG_API}/itm-config:tunnel-monitor-interval/ + ... ${Bfd_updated_value} + Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_TRUE} + ... ${INTERFACE_DS_MONI_INT_5000} + ... ${TUNNEL_MONI_PROTO} + FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM} + ${tun_names} = Genius.Get Tunnels On OVS ${TOOLS_SYSTEM_ALL_CONN_IDS[${tool_system_index}]} + Verify ovs-vsctl Output For Each Tunnel ${tun_names} ${tool_system_index} + END BFD_TC06 Verify that the tunnel state goes to UNKNOWN when DPN is disconnected [Documentation] Verify that the tunnel state goes to UNKNOWN when DPN is disconnected - Issue Command On Karaf Console ${TEP_SHOW} - Issue Command On Karaf Console ${TEP_SHOW_STATE} - SSHLibrary.Switch Connection ${conn_id_1} - Execute Command sudo ovs-vsctl del-controller ${Bridge} - SSHLibrary.Switch Connection ${conn_id_2} - Execute Command sudo ovs-vsctl del-controller ${Bridge} - Issue Command On Karaf Console ${TEP_SHOW} - Issue Command On Karaf Console ${TEP_SHOW_STATE} - Wait Until Keyword Succeeds 10s 1s Verify Tunnel Status as UNKNOWN - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_TRUE} ${INTERFACE_DS_MONI_INT_5000} ${TUNNEL_MONI_PROTO} - SSHLibrary.Switch Connection ${conn_id_1} - Execute Command sudo ovs-vsctl set-controller ${Bridge} tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT} - SSHLibrary.Switch Connection ${conn_id_2} - Execute Command sudo ovs-vsctl set-controller ${Bridge} tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT} - Log "After connecting CSS with controller" - Issue Command On Karaf Console ${TEP_SHOW} - Issue Command On Karaf Console ${TEP_SHOW_STATE} - Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status as UP TZA - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_TRUE} ${INTERFACE_DS_MONI_INT_5000} ${TUNNEL_MONI_PROTO} - -BFD_TC07 Verify that BFD monitoring is disabled on Controller - [Documentation] Verify that BFD monitoring is disabled on Controller - ${resp} RequestsLibrary.Put Request session ${CONFIG_API}/itm-config:tunnel-monitor-params/ data=${DISABLE_MONITORING} - Should Be Equal As Strings ${resp.status_code} 201 - Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Params ${TUNNEL_MONI_PARAMS_FALSE} - ${output}= Issue Command On Karaf Console ${TEP_SHOW} - Should Contain ${output} ${TUNNEL_MONITOR_OFF} - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_FALSE} ${INTERFACE_DS_MONI_INT_5000} ${TUNNEL_MONI_PROTO} - Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status as UP TZA - ${resp} RequestsLibrary.Put Request session ${CONFIG_API}/itm-config:tunnel-monitor-params/ data=${ENABLE_MONITORING} - Should Be Equal As Strings ${resp.status_code} 200 - Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Params ${TUNNEL_MONI_PARAMS_TRUE} - Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Is On - Wait Until Keyword Succeeds 10s 2s Verify Config Ietf Interface Output ${INTERFACE_DS_MONI_TRUE} ${INTERFACE_DS_MONI_INT_5000} ${TUNNEL_MONI_PROTO} + ToolsSystem.Run Command On All Tools Systems sudo ovs-vsctl del-controller ${Bridge} + BuiltIn.Wait Until Keyword Succeeds 10s 1s VpnOperations.Verify Tunnel Status as UNKNOWN + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_TRUE} + ... ${INTERFACE_DS_MONI_INT_5000} + ... ${TUNNEL_MONI_PROTO} + ToolsSystem.Run Command On All Tools Systems + ... sudo ovs-vsctl set-controller ${Bridge} tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT} + BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_TRUE} + ... ${INTERFACE_DS_MONI_INT_5000} + ... ${TUNNEL_MONI_PROTO} + +BFD_TC07 Set BFD monitoring To Default Value + [Documentation] Disable BFD monitoring(setting it to default value) and verify that BFD is disabled on the controller. + Disable BFD And Verify + *** Keywords *** Verify Config Ietf Interface Output + [Documentation] This keyword will get request from config ietf interface and verifies state, interval and proto are present [Arguments] ${state} ${interval} ${proto} - ${int_resp} RequestsLibrary.Get Request session ${CONFIG_API}/ietf-interfaces:interfaces/ - ${respjson} RequestsLibrary.To Json ${int_resp.content} pretty_print=True - Log ${respjson} - Should Contain ${respjson} ${state} - Should Contain ${respjson} ${interval} - Should Contain ${respjson} ${proto} + ${int_resp} = RequestsLibrary.Get Request session ${CONFIG_API}/ietf-interfaces:interfaces/ + ${respjson} = RequestsLibrary.To Json ${int_resp.content} pretty_print=True + BuiltIn.Should Contain ${respjson} ${state} + BuiltIn.Should Contain ${respjson} ${interval} + BuiltIn.Should Contain ${respjson} ${proto} Ovs Tunnel Get - [Arguments] ${tools_ip} [Documentation] This keyword will return the tunnel name on OVS - ${list_interface} Utils.Run Command On Remote System ${tools_ip} sudo ovs-vsctl list interface - ${tun_line} ${tun_name} Should Match Regexp ${list_interface} name\\s+: "(tun.*)" - log ${tun_name} - Should Not Be Empty ${tun_name} - [Return] ${tun_name} + [Arguments] ${tools_ip} + ${list_interface} = Utils.Run Command On Remote System ${tools_ip} sudo ovs-vsctl list interface + ${tun_line} = ${tun_name} = BuiltIn.Should Match Regexp ${list_interface} name\\s+: "(tun.*)" + BuiltIn.Log ${tun_name} + BuiltIn.Should Not Be Empty ${tun_name} + RETURN ${tun_name} Verify Tunnel Monitoring Params + [Documentation] This keyword will verify the tunnel monitoring is true or false [Arguments] ${flag} - @{checklist} create list ${flag} - Check For Elements At URI ${OPERATIONAL_API}/itm-config:tunnel-monitor-params/ ${checklist} + @{checklist} = BuiltIn.Create List ${flag} + Utils.Check For Elements At URI ${OPERATIONAL_API}/itm-config:tunnel-monitor-params/ ${checklist} + +Enable BFD And Verify + [Documentation] Enable BFD Monitoring And Verify On Controller. + [Arguments] ${interface_ds_moni_int} + ${resp} = RequestsLibrary.Put Request + ... session + ... ${CONFIG_API}/itm-config:tunnel-monitor-params/ + ... data=${ENABLE_MONITORING} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 201 + BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Params ${TUNNEL_MONI_PARAMS_TRUE} + BuiltIn.Wait Until Keyword Succeeds 10s 2s Genius.Verify Tunnel Monitoring Status ${TUNNEL_MONITOR_ON} + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_TRUE} + ... ${interface_ds_moni_int} + ... ${TUNNEL_MONI_PROTO} + BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up + +Disable BFD And Verify + [Documentation] Disable BFD Monitoring And Verify On Controller. + ${resp} = RequestsLibrary.Put Request + ... session + ... ${CONFIG_API}/itm-config:tunnel-monitor-params/ + ... data=${DISABLE_MONITORING} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 + BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Params ${TUNNEL_MONI_PARAMS_FALSE} + BuiltIn.Wait Until Keyword Succeeds 10s 2s Genius.Verify Tunnel Monitoring Status ${TUNNEL_MONITOR_OFF} + BuiltIn.Wait Until Keyword Succeeds + ... 10s + ... 2s + ... Verify Config Ietf Interface Output + ... ${INTERFACE_DS_MONI_FALSE} + ... ${INTERFACE_DS_MONI_INT_5000} + ... ${TUNNEL_MONI_PROTO} + BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up + +Verify ovs-vsctl Output For Each Tunnel + [Arguments] ${tun_names} ${tool_system_index} + ${no of tunnels} = BuiltIn.Get Length ${tun_names} + FOR ${each_tun} IN RANGE ${no of tunnels} + ${tun} = Collections.Get From List ${tun_names} ${each_tun} + BuiltIn.Wait Until Keyword Succeeds + ... 20 + ... 5 + ... OVSDB.Verify Ovs-vsctl Output + ... list interface ${tun} + ... 5000 + ... ovs_system=${TOOLS_SYSTEM_ALL_IPS}[${tool_system_index}] + END