Add Vxlan To Bridge
[Arguments] ${mininet_ip} ${bridge_num} ${vxlan_port} ${remote_ip} ${custom_port}=create_port.json
[Documentation] This request will create vxlan port for vxlan tunnel and attach it to the specific bridge
- ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/${custom_port}
- ${body} Replace String ${sample} 192.168.0.21 ${remote_ip}
- Log URL is ${SOUTHBOUND_CONFIG_API}${mininet_ip}:${OVSDB_PORT}%2Fbridge%2F${bridge_num}/termination-point/${vxlan_port}/
- Log data: ${body}
- ${resp} RequestsLibrary.Put Request session ${SOUTHBOUND_CONFIG_API}${mininet_ip}:${OVSDB_PORT}%2Fbridge%2F${bridge_num}/termination-point/${vxlan_port}/ data=${body}
- Log ${resp.content}
+ Add Termination Point ${mininet_ip}:${OVSDB_PORT} ${bridge_num} ${vxlan_port} ${remote_ip}
+
+Add Termination Point
+ [Arguments] ${node_id} ${bridge_name} ${tp_name} ${remote_ip}=${TOOLS_SYSTEM_IP}
+ [Documentation] Using the json data body file as a template, a REST config request is made to
+ ... create a termination-point ${tp_name} on ${bridge_name} for the given ${node_id}. The ports
+ ... remote-ip defaults to ${TOOLS_SYSTEM_IP}
+ ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port.json
+ ${body} Replace String ${body} 192.168.0.21 ${remote_ip}
+ ${body} Replace String ${body} vxlanport ${tp_name}
+ ${uri}= Set Variable ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${node_id}%2Fbridge%2F${bridge_name}
+ ${resp} RequestsLibrary.Put Request session ${uri}/termination-point/${tp_name}/ data=${body}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
Verify OVS Reports Connected
[Arguments] ${tools_system}=${TOOLS_SYSTEM_IP}
[Documentation] Uses "vsctl show" to check for string "is_connected"
- ${output}= Utils.Run Command On Mininet ${tools_system} sudo ovs-vsctl show
- Should Contain ${output} is_connected
+ ${output} Verify Ovs-vsctl Output show is_connected ${tools_system}
+ [Return] ${output}
+
+Verify Ovs-vsctl Output
+ [Arguments] ${vsctl_args} ${expected_output} ${ovs_system}=${TOOLS_SYSTEM_IP} ${should_match}=True
+ [Documentation] A wrapper keyword to make it easier to validate ovs-vsctl output, and gives an easy
+ ... way to check this output in a WUKS. The argument ${should_match} can control if the match should
+ ... exist (True} or not (False) or don't care (anything but True or False). ${should_match} is True by default
+ ${output}= Utils.Run Command On Mininet ${ovs_system} sudo ovs-vsctl ${vsctl_args}
+ Log ${output}
+ Run Keyword If "${should_match}"=="True" Should Contain ${output} ${expected_output}
+ Run Keyword If "${should_match}"=="False" Should Not Contain ${output} ${expected_output}
[Return] ${output}
Get OVSDB UUID
Utils.Run Command On Mininet ${tools_system} sudo rm -rf /etc/openvswitch/conf.db
Utils.Run Command On Mininet ${tools_system} sudo /usr/share/openvswitch/scripts/ovs-ctl start
+Restart OVSDB
+ [Arguments] ${ovs_ip}
+ [Documentation] Restart the OVS node without cleaning the current configuration.
+ ${output} = Utils.Run Command On Mininet ${ovs_ip} sudo /usr/share/openvswitch/scripts/ovs-ctl stop
+ Log ${output}
+ ${output} = Utils.Run Command On Mininet ${ovs_ip} sudo /usr/share/openvswitch/scripts/ovs-ctl start
+ Log ${output}
+
Set Controller In OVS Bridge
[Arguments] ${tools_system} ${bridge} ${controller_opt}
[Documentation] Sets controller for a given OVS ${bridge} using controller options in ${controller_opt}
Add Multiple Managers to OVS
[Arguments] ${tools_system}=${TOOLS_SYSTEM_IP} ${controller_index_list}=${EMPTY} ${ovs_mgr_port}=6640
[Documentation] Connect OVS to the list of controllers in the ${controller_index_list} or all if no list is provided.
- ${index_list} = ClusterManagement__Given_Or_Internal_Index_List given_list=${controller_index_list}
+ ${index_list} = ClusterManagement.List Indices Or All given_list=${controller_index_list}
Log Clear any existing mininet
Utils.Clean Mininet System ${tools_system}
${ovs_opt}= Set Variable
${gateway} = Run Command On Remote System ${ip} /usr/sbin/route -n | grep '^0.0.0.0' | cut -d " " -f 10
Log ${gateway}
[Return] ${gateway}
+
+Add OVS Logging
+ [Arguments] ${conn_id}
+ [Documentation] Add higher levels of OVS logging
+ SSHLibrary.Switch Connection ${conn_id}
+ @{modules} = BuiltIn.Create List bridge:file:dbg connmgr:file:dbg inband:file:dbg ofp_actions:file:dbg ofp_errors:file:dbg
+ ... ofp_msgs:file:dbg ovsdb_error:file:dbg rconn:file:dbg tunnel:file:dbg vconn:file:dbg
+ : FOR ${module} IN @{modules}
+ \ Write Commands Until Expected Prompt sudo ovs-appctl --target ovs-vswitchd vlog/set ${module} ${DEFAULT_LINUX_PROMPT_STRICT}
+ Write Commands Until Expected Prompt sudo ovs-appctl --target ovs-vswitchd vlog/list ${DEFAULT_LINUX_PROMPT_STRICT}
+
+Reset OVS Logging
+ [Arguments] ${conn_id}
+ [Documentation] Reset the OVS logging
+ SSHLibrary.Switch Connection ${conn_id}
+ ${output} = Write Commands Until Expected Prompt sudo ovs-appctl --target ovs-vswitchd vlog/set :file:info ${DEFAULT_LINUX_PROMPT_STRICT}