*** Variables ***
${SH_BR_CMD} ovs-vsctl list Bridge
${SH_CNTL_CMD} ovs-vsctl list Controller
+${SHOW_OVS_VERSION} sudo ovs-vsctl show | grep version
+${GET_LOCAL_IP} sudo ovs-vsctl list Open_vSwitch | grep local_ip=
${ovs_switch_data} ${None}
${lprompt} mininet>
${lcmd_prefix} sh
${packetcountlist} = String.Get Regexp Matches ${flow} n_packets=([0-9]+), 1
${packetcount} = Collections.Get From List ${packetcountlist} 0
[Return] ${packetcount}
+
+Get Packet Count In Table For IP
+ [Arguments] ${os_compute_ip} ${table_no} ${ip_address} ${additional_args}=${EMPTY}
+ [Documentation] Capture packetcount for IP in Table
+ ${cmd} = BuiltIn.Set Variable sudo ovs-ofctl dump-flows br-int -OOpenFlow13 | grep table=${table_no} | grep ${ip_address} ${additional_args}
+ ${output} = Utils.Run Command On Remote System And Log ${os_compute_ip} ${cmd}
+ @{output_list} = String.Split String ${output} \r\n
+ ${flow} = Collections.Get From List ${output_list} 0
+ ${packetcount_list} = String.Get Regexp Matches ${flow} n_packets=([0-9]+) 1
+ ${count} = Collections.Get From List ${packetcount_list} 0
+ [Return] ${count}
+
+Verify Ovs Version Greater Than Or Equal To
+ [Arguments] ${ovs_version} @{nodes}
+ [Documentation] Get ovs version and verify greater than required version
+ : FOR ${ip} IN @{nodes}
+ \ ${output} = Utils.Run Command On Remote System ${ip} ${SHOW_OVS_VERSION}
+ \ ${version} = String.Get Regexp Matches ${output} \[0-9].\[0-9]
+ \ ${result} = BuiltIn.Convert To Number ${version[0]}
+ \ BuiltIn.Should Be True ${result} >= ${ovs_version}
+
+Get OVS Local Ip
+ [Arguments] ${ip}
+ [Documentation] Get local ip of compute node ovsdb
+ ${cmd_output} = Utils.Run Command On Remote System ${ip} ${GET_LOCAL_IP}
+ ${localip} = String.Get Regexp Matches ${cmd_output} (\[0-9]+\.\[0-9]+\.\[0-9]+\.\[0-9]+)
+ [Return] @{localip}[0]