+ [Return] ${list}[0]
+
+Verify Services
+ [Documentation] Verify if the services are operational
+ Wait Until Keyword Succeeds 60 2 ClusterManagement.Check Status Of Services Is OPERATIONAL @{NETVIRT_DIAG_SERVICES}
+
+Verify Expected Default Tunnels
+ [Documentation] Verify if the default tunnels are created.
+ ... SFC jobs currently fail this validation because it uses of-tunnels.
+ ... This validation will be blocked for NEtvirt SFC jobs until support for of-tunnels
+ ... added to odltools.
+ ${check_feature_list} = BuiltIn.Create List odl-netvirt-sfc
+ ${is_sfc_enabled} = OpenStackOperations.Is Feature Installed features=${check_feature_list}
+ BuiltIn.Return From Keyword If ${is_sfc_enabled} == ${True} ${True}
+ BuiltIn.Return From Keyword If ${OS_NODE_CNT} == ${1} ${True}
+ ${output} = ODLTools.Analyze Tunnels test_name=${SUITE_NAME}.Suite Setup
+ BuiltIn.Should Contain ${output} All tunnels are up
+
+Verify Expected Default Tables On Nodes
+ [Arguments] ${node_ips}=@{OS_ALL_IPS}
+ [Documentation] Verify if Default Table Entries are programmed on all Nodes
+ ${resp} = RequestsLibrary.Get Request session ${RFC8040_CONFIG_NODES_API}
+ Utils.Log Content ${resp.text}
+ ${failed_node_list} = BuiltIn.Create List
+ FOR ${node_ip} IN @{node_ips}
+ ${failed_table_list} = Verify Expected Default Tables ${node_ip}
+ ${failed_table_list_size} = BuiltIn.Get Length ${failed_table_list}
+ BuiltIn.Run Keyword If ${failed_table_list_size} > 0 Collections.Append To List ${failed_node_list} ${node_ip}
+ END
+ Builtin.Should Be Empty ${failed_node_list}
+
+Verify Expected Default Tables
+ [Arguments] ${ovs_ip}
+ [Documentation] Verify if Default Table Entries are programmed on specific Node
+ ${flow_dump} = Utils.Run Command On Remote System ${ovs_ip} sudo ovs-ofctl dump-flows ${INTEGRATION_BRIDGE} -OOpenFlow13
+ BuiltIn.Log ${flow_dump}
+ ${failed_table_list} = BuiltIn.Create List
+ FOR ${table} IN @{DEFAULT_FLOW_TABLES}
+ ${rc} = Builtin.Run Keyword And Return Status Builtin.Should Not Match Regexp ${flow_dump} .*table=${table}.*priority=0
+ BuiltIn.Run Keyword If ${rc} Collections.Append To List ${failed_table_list} ${table}
+ END
+ [Return] ${failed_table_list}
+
+Get Project Id
+ [Arguments] ${project_name}
+ [Documentation] Returns project ID for the given project name.
+ ${project_id} = OpenStack CLI openstack project show ${project_name} -f value -c id
+ [Return] ${project_id}
+
+Set Instance Quota For Project
+ [Arguments] ${num_instances} ${project_id}
+ [Documentation] Set quota for the created instances using the specific project id.
+ ${output} = OpenStack CLI openstack quota set --instances ${num_instances} ${project_id}
+ [Return] ${output}
+
+Create Bgpvpn
+ [Arguments] ${vpnname} ${additional_args}=${EMPTY}
+ [Documentation] Create Bgpvpn with neutron request.
+ ${output} = OpenStack CLI openstack bgpvpn create --name ${vpnname} ${additional_args}
+
+Get BgpVpn Id
+ [Arguments] ${vpnName}
+ [Documentation] Retrieve the bgpvpn id for the given bgpvpn name
+ ${output} = OpenStack CLI openstack bgpvpn show ${vpnName} | grep " ID" | awk '{print $4}'
+ ${splitted_output} = String.Split String ${output} ${EMPTY}
+ ${vpn_id} = Collections.Get from List ${splitted_output} 0
+ [Return] ${vpn_id}
+
+Configure_IP_On_Sub_Interface
+ [Arguments] ${network_name} ${ip} ${vm_ip} ${mask} ${sub_interface_state}=${EMPTY} ${interface}=eth0
+ ... ${sub_interface_number}=1
+ [Documentation] Keyword for configuring specified IP on specified interface and the corresponding specified sub interface
+ OpenStackOperations.Execute Command on VM Instance ${network_name} ${vm_ip} sudo ifconfig ${interface}:${sub_interface_number} ${ip} netmask ${mask} ${sub_interface_state}
+
+Verify_IP_Configured_On_Sub_Interface
+ [Arguments] ${network_name} ${ip} ${vm_ip} ${interface}=eth0 ${sub_interface_number}=1
+ [Documentation] Keyword for verifying specified IP on specified interface and the corresponding specified sub interface
+ ${resp} = OpenStackOperations.Execute Command on VM Instance ${network_name} ${vm_ip} sudo ifconfig ${interface}:${sub_interface_number}
+ BuiltIn.Should Contain ${resp} ${ip}