- Map all incoming slave ips to internal test ips to match test
expectations, i.e. tests expecting to have two computes but there
is only one so map the second compute to the first internally
- Use OS_ALL_IPS to list all ips instead of explicitly calling each
node ip
Depends-On: I5e3577f60ba8b176b3c24badf26b6ac73792bc9c
JIRA: NETVIRT-1370
Change-Id: I67f03c66cd32d60829e73f8dd3d870e71ee498ea
Signed-off-by: Sam Hague <shague@redhat.com>
17 files changed:
BuiltIn.Set Suite Variable ${OS_CMP1_CONN_ID} ${OS_CNTL_CONN_ID}
BuiltIn.Set Suite Variable ${OS_CMP2_CONN_ID} ${OS_CNTL_CONN_ID}
BuiltIn.Set Suite Variable @{OS_ALL_CONN_IDS} ${OS_CNTL_CONN_ID}
BuiltIn.Set Suite Variable ${OS_CMP1_CONN_ID} ${OS_CNTL_CONN_ID}
BuiltIn.Set Suite Variable ${OS_CMP2_CONN_ID} ${OS_CNTL_CONN_ID}
BuiltIn.Set Suite Variable @{OS_ALL_CONN_IDS} ${OS_CNTL_CONN_ID}
+ BuiltIn.Set Suite Variable @{OS_CMP_CONN_IDS} ${OS_CNTL_CONN_ID}
Set Node Data For Control And Compute Node Setup
[Documentation] Assign global variables for DevStack nodes where the control node is also the compute
Set Node Data For Control And Compute Node Setup
[Documentation] Assign global variables for DevStack nodes where the control node is also the compute
BuiltIn.Set Suite Variable ${OS_CMP1_CONN_ID} ${OS_CNTL_CONN_ID}
DevstackUtils.Open Connection OS_CMP2_CONN_ID ${OS_COMPUTE_1_IP}
BuiltIn.Set Suite Variable @{OS_ALL_CONN_IDS} ${OS_CNTL_CONN_ID} ${OS_CMP2_CONN_ID}
BuiltIn.Set Suite Variable ${OS_CMP1_CONN_ID} ${OS_CNTL_CONN_ID}
DevstackUtils.Open Connection OS_CMP2_CONN_ID ${OS_COMPUTE_1_IP}
BuiltIn.Set Suite Variable @{OS_ALL_CONN_IDS} ${OS_CNTL_CONN_ID} ${OS_CMP2_CONN_ID}
+ BuiltIn.Set Suite Variable @{OS_CMP_CONN_IDS} ${OS_CNTL_CONN_ID} ${OS_CMP2_CONN_ID}
-Set Node Data For Control Only Node Setup
+Set Node Data For Control And Two Compute Node Setup
[Documentation] Assign global variables for DevStack nodes where the control node is different than the compute
BuiltIn.Set Suite Variable ${OS_CMP1_IP} ${OS_COMPUTE_1_IP}
BuiltIn.Set Suite Variable ${OS_CMP2_IP} ${OS_COMPUTE_2_IP}
[Documentation] Assign global variables for DevStack nodes where the control node is different than the compute
BuiltIn.Set Suite Variable ${OS_CMP1_IP} ${OS_COMPUTE_1_IP}
BuiltIn.Set Suite Variable ${OS_CMP2_IP} ${OS_COMPUTE_2_IP}
DevstackUtils.Open Connection OS_CMP1_CONN_ID ${OS_COMPUTE_1_IP}
DevstackUtils.Open Connection OS_CMP2_CONN_ID ${OS_COMPUTE_2_IP}
BuiltIn.Set Suite Variable @{OS_ALL_CONN_IDS} ${OS_CNTL_CONN_ID} ${OS_CMP1_CONN_ID} ${OS_CMP2_CONN_ID}
DevstackUtils.Open Connection OS_CMP1_CONN_ID ${OS_COMPUTE_1_IP}
DevstackUtils.Open Connection OS_CMP2_CONN_ID ${OS_COMPUTE_2_IP}
BuiltIn.Set Suite Variable @{OS_ALL_CONN_IDS} ${OS_CNTL_CONN_ID} ${OS_CMP1_CONN_ID} ${OS_CMP2_CONN_ID}
+ BuiltIn.Set Suite Variable @{OS_CMP_CONN_IDS} ${OS_CMP1_CONN_ID} ${OS_CMP2_CONN_ID}
Get DevStack Nodes Data
[Documentation] Assign global variables for DevStack nodes
BuiltIn.Set Suite Variable ${OS_CNTL_IP} ${OS_CONTROL_NODE_IP}
DevstackUtils.Open Connection OS_CNTL_CONN_ID ${OS_CNTL_IP}
Get DevStack Nodes Data
[Documentation] Assign global variables for DevStack nodes
BuiltIn.Set Suite Variable ${OS_CNTL_IP} ${OS_CONTROL_NODE_IP}
DevstackUtils.Open Connection OS_CNTL_CONN_ID ${OS_CNTL_IP}
- BuiltIn.Run Keyword If ${NUM_OS_SYSTEM} == 1 DevstackUtils.Set Node Data For AllinOne Setup
- ... ELSE IF ${NUM_OS_SYSTEM} == 2 DevstackUtils.Set Node Data For Control And Compute Node Setup
- ... ELSE IF ${NUM_OS_SYSTEM} == 3 DevstackUtils.Set Node Data For Control Only Node Setup
+ BuiltIn.Run Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" DevstackUtils.Set Node Data For AllinOne Setup
+ ... ELSE IF "${OS_DEPLOY}" == "1cmb-0ctl-1cmp" DevstackUtils.Set Node Data For Control And Compute Node Setup
+ ... ELSE IF "${OS_DEPLOY}" == "0cmb-1ctl-2cmp" DevstackUtils.Set Node Data For Control And Two Compute Node Setup
DevstackUtils.Get DevStack Hostnames
DevstackUtils.Log Devstack Nodes Data
DevstackUtils.Get DevStack Hostnames
DevstackUtils.Log Devstack Nodes Data
Setup Live Migration In Compute Nodes
[Documentation] Set instances to be created in the shared directory.
Setup Live Migration In Compute Nodes
[Documentation] Set instances to be created in the shared directory.
- OpenStackOperations.Modify OpenStack Configuration File ${OS_CMP1_CONN_ID} ${NOVA_CPU_CONF} DEFAULT instances_path ${CMP_INSTANCES_SHARED_PATH}
- OpenStackOperations.Modify OpenStack Configuration File ${OS_CMP2_CONN_ID} ${NOVA_CPU_CONF} DEFAULT instances_path ${CMP_INSTANCES_SHARED_PATH}
- OpenStackOperations.Restart DevStack Service ${OS_CMP1_CONN_ID} ${NOVA_COMPUTE_SERVICE}
- OpenStackOperations.Restart DevStack Service ${OS_CMP2_CONN_ID} ${NOVA_COMPUTE_SERVICE}
+ : FOR ${conn_id} IN @{OS_CMP_CONN_IDS}
+ \ OpenStackOperations.Modify OpenStack Configuration File ${conn_id} ${NOVA_CPU_CONF} DEFAULT instances_path ${CMP_INSTANCES_SHARED_PATH}
+ \ OpenStackOperations.Restart DevStack Service ${conn_id} ${NOVA_COMPUTE_SERVICE}
UnSet Live Migration In Compute Nodes
[Documentation] Clear settings done for Live Migration
UnSet Live Migration In Compute Nodes
[Documentation] Clear settings done for Live Migration
- OpenStackOperations.Modify OpenStack Configuration File ${OS_CMP1_CONN_ID} ${NOVA_CPU_CONF} DEFAULT instances_path ${CMP_INSTANCES_DEFAULT_PATH}
- OpenStackOperations.Modify OpenStack Configuration File ${OS_CMP2_CONN_ID} ${NOVA_CPU_CONF} DEFAULT instances_path ${CMP_INSTANCES_DEFAULT_PATH}
- OpenStackOperations.Restart DevStack Service ${OS_CMP1_CONN_ID} ${NOVA_COMPUTE_SERVICE}
- OpenStackOperations.Restart DevStack Service ${OS_CMP2_CONN_ID} ${NOVA_COMPUTE_SERVICE}
+ : FOR ${conn_id} IN @{OS_CMP_CONN_IDS}
+ \ OpenStackOperations.Modify OpenStack Configuration File ${conn_id} ${NOVA_CPU_CONF} DEFAULT instances_path ${CMP_INSTANCES_DEFAULT_PATH}
+ \ OpenStackOperations.Restart DevStack Service ${conn_id} ${NOVA_COMPUTE_SERVICE}
BuiltIn.Return From Keyword If "skip_if_${OPENSTACK_BRANCH}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${SECURITY_GROUP_MODE}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${ODL_SNAT_MODE}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${OPENSTACK_BRANCH}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${SECURITY_GROUP_MODE}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${ODL_SNAT_MODE}" in @{TEST_TAGS}
- ${tempest_conn_id} = SSHLibrary.Open Connection ${OS_CONTROL_NODE_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
+ ${tempest_conn_id} = SSHLibrary.Open Connection ${OS_CNTL_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
SSHKeywords.Flexible SSH Login ${OS_USER} ${DEVSTACK_SYSTEM_PASSWORD}
DevstackUtils.Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
DevstackUtils.Write Commands Until Prompt cd ${TEMPEST_DIRectory}
SSHKeywords.Flexible SSH Login ${OS_USER} ${DEVSTACK_SYSTEM_PASSWORD}
DevstackUtils.Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
DevstackUtils.Write Commands Until Prompt cd ${TEMPEST_DIRectory}
BuiltIn.Return From Keyword If "skip_if_${OPENSTACK_BRANCH}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${SECURITY_GROUP_MODE}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${ODL_SNAT_MODE}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${OPENSTACK_BRANCH}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${SECURITY_GROUP_MODE}" in @{TEST_TAGS}
BuiltIn.Return From Keyword If "skip_if_${ODL_SNAT_MODE}" in @{TEST_TAGS}
- ${tempest_conn_id} = SSHLibrary.Open Connection ${OS_CONTROL_NODE_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
+ ${tempest_conn_id} = SSHLibrary.Open Connection ${OS_CNTL_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
SSHKeywords.Flexible SSH Login ${OS_USER} ${DEVSTACK_SYSTEM_PASSWORD}
DevstackUtils.Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
DevstackUtils.Write Commands Until Prompt cd ${TEMPEST_DIRectory}
SSHKeywords.Flexible SSH Login ${OS_USER} ${DEVSTACK_SYSTEM_PASSWORD}
DevstackUtils.Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
DevstackUtils.Write Commands Until Prompt cd ${TEMPEST_DIRectory}
OpenStackOperations.Create Network ${EXTERNAL_NET_NAME} --external --default --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK}
OpenStackOperations.Create Subnet ${EXTERNAL_NET_NAME} ${EXTERNAL_SUBNET_NAME} ${EXTERNAL_SUBNET} --gateway ${EXTERNAL_GATEWAY} --allocation-pool ${EXTERNAL_SUBNET_ALLOCATION_POOL}
OpenStackOperations.List Networks
OpenStackOperations.Create Network ${EXTERNAL_NET_NAME} --external --default --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK}
OpenStackOperations.Create Subnet ${EXTERNAL_NET_NAME} ${EXTERNAL_SUBNET_NAME} ${EXTERNAL_SUBNET} --gateway ${EXTERNAL_GATEWAY} --allocation-pool ${EXTERNAL_SUBNET_ALLOCATION_POOL}
OpenStackOperations.List Networks
- ${control_node_conn_id} = SSHLibrary.Open Connection ${OS_CONTROL_NODE_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
+ ${control_node_conn_id} = SSHLibrary.Open Connection ${OS_CNTL_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
SSHKeywords.Flexible SSH Login ${OS_USER}
DevstackUtils.Write Commands Until Prompt And Log sudo pip install -U --verbose pip timeout=120s
DevstackUtils.Write Commands Until Prompt And Log sudo pip install -U --verbose os-testr>=1.0.0 timeout=120s
SSHKeywords.Flexible SSH Login ${OS_USER}
DevstackUtils.Write Commands Until Prompt And Log sudo pip install -U --verbose pip timeout=120s
DevstackUtils.Write Commands Until Prompt And Log sudo pip install -U --verbose os-testr>=1.0.0 timeout=120s
: FOR ${exclusion} IN @{${OPENSTACK_BRANCH}_EXCLUSION_REGEXES}
\ OperatingSystem.Append To File ${BLACKLIST_FILE} ${exclusion}\n
OperatingSystem.Log File ${BLACKLIST_FILE}
: FOR ${exclusion} IN @{${OPENSTACK_BRANCH}_EXCLUSION_REGEXES}
\ OperatingSystem.Append To File ${BLACKLIST_FILE} ${exclusion}\n
OperatingSystem.Log File ${BLACKLIST_FILE}
- SSHKeywords.Copy File To Remote System ${OS_CONTROL_NODE_IP} ${BLACKLIST_FILE} ${BLACKLIST_FILE}
+ SSHKeywords.Copy File To Remote System ${OS_CNTL_IP} ${BLACKLIST_FILE} ${BLACKLIST_FILE}
: FOR ${i} IN @{vm_ips}
\ ${resp}= Should Contain ${l3vpn_table} ${i}
: FOR ${i} IN @{vm_ips}
\ ${resp}= Should Contain ${l3vpn_table} ${i}
+Verify Flows Are Present For L3VPN On All Compute Nodes
+ [Arguments] ${vm_ips}
+ [Documentation] Verify Flows Are Present For L3VPN On All Compute Nodes
+ : FOR ${ip} IN @{OS_CMP_IPS}
+ \ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${ip} ${vm_ips}
+
Verify GWMAC Entry On ODL
[Arguments] ${GWMAC_ADDRS}
[Documentation] get ODL GWMAC table entry
Verify GWMAC Entry On ODL
[Arguments] ${GWMAC_ADDRS}
[Documentation] get ODL GWMAC table entry
: FOR ${macAdd} IN @{GWMAC_ADDRS}
\ Should Not Contain ${gwmac_table} dl_dst=${macAdd} actions=goto_table:${L3_TABLE}
: FOR ${macAdd} IN @{GWMAC_ADDRS}
\ Should Not Contain ${gwmac_table} dl_dst=${macAdd} actions=goto_table:${L3_TABLE}
+Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes
+ [Documentation] Verify the GWMAC Table, ARP Response table and Dispatcher table.
+ : FOR ${ip} IN @{OS_CMP_IPS}
+ \ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify GWMAC Flow Entry Removed From Flow Table ${ip}
+
Verify ARP REQUEST in groupTable
[Arguments] ${group_output} ${Group-ID}
[Documentation] get flow dump for group ID
Verify ARP REQUEST in groupTable
[Arguments] ${group_output} ${Group-ID}
[Documentation] get flow dump for group ID
BuiltIn.Run Keyword If '${ipv}' == 'ipv4' Verify IPv4 GWMAC Flow Entry On Flow Table ${group_output} ${group_id} ${flow_output}
... ELSE Verify IPv6 GWMAC Flow Entry On Flow Table ${flow_output}
BuiltIn.Run Keyword If '${ipv}' == 'ipv4' Verify IPv4 GWMAC Flow Entry On Flow Table ${group_output} ${group_id} ${flow_output}
... ELSE Verify IPv6 GWMAC Flow Entry On Flow Table ${flow_output}
+Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
+ [Arguments] ${ipv}=ipv4
+ [Documentation] Verify the GWMAC Table, ARP Response table and Dispatcher table.
+ : FOR ${ip} IN @{OS_CMP_IPS}
+ \ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${ip} ${ipv}
+
Delete Multiple L3VPNs
[Arguments] @{vpns}
[Documentation] Delete three L3VPNs created using Multiple L3VPN Test
: FOR ${vpn} IN ${vpns}
\ VPN Delete L3VPN vpnid=${vpn}
Delete Multiple L3VPNs
[Arguments] @{vpns}
[Documentation] Delete three L3VPNs created using Multiple L3VPN Test
: FOR ${vpn} IN ${vpns}
\ VPN Delete L3VPN vpnid=${vpn}
+
+VNI Test Setup
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
+ SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+
+VNI Test Teardown
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
+ OpenStackOperations.Get Test Teardown Debugs
ACL Service Recovery CLI
[Documentation] This test case covers ACL service recovery.
${count_before} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${INGRESS_ACL_REMOTE_ACL_TABLE}
ACL Service Recovery CLI
[Documentation] This test case covers ACL service recovery.
${count_before} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${INGRESS_ACL_REMOTE_ACL_TABLE}
- ${node_id} = OVSDB.Get DPID ${OS_COMPUTE_1_IP}
+ ${node_id} = OVSDB.Get DPID ${OS_CMP1_IP}
${resp} = RequestsLibrary.Delete Request session ${CONFIG_NODES_API}/node/openflow:${node_id}/flow-node-inventory:table/${INGRESS_ACL_REMOTE_ACL_TABLE}
Should Be Equal As Strings ${resp.status_code} 200
Wait Until Keyword Succeeds 30s 5s Verify ACL Flows Should Not Contain ${OS_CMP1_CONN_ID} ${INGRESS_ACL_REMOTE_ACL_TABLE}
${resp} = RequestsLibrary.Delete Request session ${CONFIG_NODES_API}/node/openflow:${node_id}/flow-node-inventory:table/${INGRESS_ACL_REMOTE_ACL_TABLE}
Should Be Equal As Strings ${resp.status_code} 200
Wait Until Keyword Succeeds 30s 5s Verify ACL Flows Should Not Contain ${OS_CMP1_CONN_ID} ${INGRESS_ACL_REMOTE_ACL_TABLE}
ACL Instance Recovery CLI
[Documentation] This test case covers ACL instance recovery.
${count_before} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${EGRESS_LEARN_ACL_FILTER_TABLE}
ACL Instance Recovery CLI
[Documentation] This test case covers ACL instance recovery.
${count_before} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${EGRESS_LEARN_ACL_FILTER_TABLE}
- ${node_id} = OVSDB.Get DPID ${OS_COMPUTE_1_IP}
+ ${node_id} = OVSDB.Get DPID ${OS_CMP1_IP}
Write Commands Until Expected Prompt sudo ovs-ofctl del-flows br-int -OOpenflow13 "table=${EGRESS_LEARN_ACL_FILTER_TABLE},icmp" ${DEFAULT_LINUX_PROMPT_STRICT}
Wait Until Keyword Succeeds 30s 5s Verify ACL Flows Should Not Contain ${OS_CMP1_CONN_ID} ${EGRESS_LEARN_ACL_FILTER_TABLE} icmp
${output} = OpenStack CLI openstack security group show ${acl_sr_security_group} | awk '/ id / {print $4}'
Write Commands Until Expected Prompt sudo ovs-ofctl del-flows br-int -OOpenflow13 "table=${EGRESS_LEARN_ACL_FILTER_TABLE},icmp" ${DEFAULT_LINUX_PROMPT_STRICT}
Wait Until Keyword Succeeds 30s 5s Verify ACL Flows Should Not Contain ${OS_CMP1_CONN_ID} ${EGRESS_LEARN_ACL_FILTER_TABLE} icmp
${output} = OpenStack CLI openstack security group show ${acl_sr_security_group} | awk '/ id / {print $4}'
@{list} = Split String ${output}
${port_mac} Set Variable ${list[0]}
${count_before} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${EGRESS_ACL_TABLE} port_mac=${port_mac}
@{list} = Split String ${output}
${port_mac} Set Variable ${list[0]}
${count_before} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${EGRESS_ACL_TABLE} port_mac=${port_mac}
- ${node_id} OVSDB.Get DPID ${OS_COMPUTE_1_IP}
+ ${node_id} OVSDB.Get DPID ${OS_CMP1_IP}
Write Commands Until Expected Prompt sudo ovs-ofctl del-flows br-int -OOpenflow13 "table=${EGRESS_ACL_TABLE},dl_dst=${port_mac}" ${DEFAULT_LINUX_PROMPT_STRICT}
Wait Until Keyword Succeeds 30s 5s Verify ACL Flows Should Not Contain ${OS_CMP1_CONN_ID} ${EGRESS_ACL_TABLE} ${port_mac}
${output} = OpenStack CLI openstack port show ${acl_sr_net_1_ports[0]} |awk '/ id / {print$4}'
Write Commands Until Expected Prompt sudo ovs-ofctl del-flows br-int -OOpenflow13 "table=${EGRESS_ACL_TABLE},dl_dst=${port_mac}" ${DEFAULT_LINUX_PROMPT_STRICT}
Wait Until Keyword Succeeds 30s 5s Verify ACL Flows Should Not Contain ${OS_CMP1_CONN_ID} ${EGRESS_ACL_TABLE} ${port_mac}
${output} = OpenStack CLI openstack port show ${acl_sr_net_1_ports[0]} |awk '/ id / {print$4}'
[Documentation] Verify Flow Table and Datapath
${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
${smac_cn2} = BuiltIn.Create List @{NET_1_MACS}[1]
[Documentation] Verify Flow Table and Datapath
${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
${smac_cn2} = BuiltIn.Create List @{NET_1_MACS}[1]
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${NET_1_MACS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_2_IP} ${smac_cn2} ${NET_1_MACS}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${NET_1_MACS}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP2_IP} ${smac_cn2} ${NET_1_MACS}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
Verify Datapath After OVS Restart
[Documentation] Verify datapath after OVS restart
Verify Datapath After OVS Restart
[Documentation] Verify datapath after OVS restart
- OVSDB.Restart OVSDB ${OS_COMPUTE_1_IP}
- OVSDB.Restart OVSDB ${OS_COMPUTE_2_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s OVSDB.Verify OVS Reports Connected tools_system=${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s OVSDB.Verify OVS Reports Connected tools_system=${OS_COMPUTE_2_IP}
+ : FOR ${ip} IN @{OS_CMP_IPS}
+ \ OVSDB.Restart OVSDB ${ip}
+ : FOR ${ip} IN @{OS_CMP_IPS}
+ \ BuiltIn.Wait Until Keyword Succeeds 30s 10s OVSDB.Verify OVS Reports Connected tools_system=${ip}
${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
${smac_cn2} = BuiltIn.Create List @{NET_1_MACS}[1]
${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
${smac_cn2} = BuiltIn.Create List @{NET_1_MACS}[1]
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${NET_1_MACS}
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_2_IP} ${smac_cn2} ${NET_1_MACS}
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${NET_1_MACS}
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_CMP2_IP} ${smac_cn2} ${NET_1_MACS}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
[Documentation] Verify datapath after recreating Vm instance
OpenStackOperations.Delete Vm Instance ${NET_1_VMS[0]}
${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
[Documentation] Verify datapath after recreating Vm instance
OpenStackOperations.Delete Vm Instance ${NET_1_VMS[0]}
${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Removed For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Removed For ELAN Service ${OS_CMP1_IP} ${smac_cn1}
OpenStackOperations.Remove RSA Key From KnownHosts @{NET_1_VM_IPS}[0]
OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_1_PORTS[0]} ${NET_1_VMS[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
Builtin.Set Suite Variable @{NET_1_VM_IPS}
BuiltIn.Should Not Contain ${NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None
OpenStackOperations.Remove RSA Key From KnownHosts @{NET_1_VM_IPS}[0]
OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_1_PORTS[0]} ${NET_1_VMS[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
Builtin.Set Suite Variable @{NET_1_VM_IPS}
BuiltIn.Should Not Contain ${NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${NET_1_MACS}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${NET_1_MACS}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
[Documentation] Verify Flow table after all VM instance deleted
: FOR ${vm} IN @{NET_1_VMS}
\ OpenStackOperations.Delete Vm Instance ${vm}
[Documentation] Verify Flow table after all VM instance deleted
: FOR ${vm} IN @{NET_1_VMS}
\ OpenStackOperations.Delete Vm Instance ${vm}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Removed For ELAN Service ${OS_COMPUTE_1_IP} ${NET_1_MACS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Removed For ELAN Service ${OS_COMPUTE_2_IP} ${NET_1_MACS}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Removed For ELAN Service ${OS_CMP1_IP} ${NET_1_MACS}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Removed For ELAN Service ${OS_CMP2_IP} ${NET_1_MACS}
Verify Datapath for Multiple ELAN with Multiple DPN
[Documentation] Verify Flow Table and Data path for Multiple ELAN with Multiple DPN
Verify Datapath for Multiple ELAN with Multiple DPN
[Documentation] Verify Flow Table and Data path for Multiple ELAN with Multiple DPN
${smac_cn1} = BuiltIn.Create List @{VM_MACAddr_elan_net_2}[0] @{VM_MACAddr_elan_net_3}[0]
${smac_cn2} = BuiltIn.Create List @{VM_MACAddr_elan_net_2}[1] @{VM_MACAddr_elan_net_3}[1]
${MAC_LIST} = BuiltIn.Create List @{VM_MACAddr_elan_net_2} @{VM_MACAddr_elan_net_3}
${smac_cn1} = BuiltIn.Create List @{VM_MACAddr_elan_net_2}[0] @{VM_MACAddr_elan_net_3}[0]
${smac_cn2} = BuiltIn.Create List @{VM_MACAddr_elan_net_2}[1] @{VM_MACAddr_elan_net_3}[1]
${MAC_LIST} = BuiltIn.Create List @{VM_MACAddr_elan_net_2} @{VM_MACAddr_elan_net_3}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${MAC_LIST}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_2_IP} ${smac_cn2} ${MAC_LIST}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${MAC_LIST}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP2_IP} ${smac_cn2} ${MAC_LIST}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS[1]}
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[1] ping -c 3 ${NET_3_VM_IPS[0]}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS[1]}
BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[1] ping -c 3 ${NET_3_VM_IPS[0]}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
BuiltIn.Should Not Contain ${NET_2_VM_IPS} None
BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
BuiltIn.Should Not Contain ${NET_2_VM_IPS} None
BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${MAC_LIST}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${MAC_LIST}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPS[1]} ping -c 3 @{NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPS[1]} ping -c 3 @{NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
*** Test Cases ***
Verify that table Miss entry for GWMAC table 19 points to table 17 dispatcher table
[Documentation] To Verify there should be an entry for table=17,in the table=19 DUMP_FLOWS
*** Test Cases ***
Verify that table Miss entry for GWMAC table 19 points to table 17 dispatcher table
[Documentation] To Verify there should be an entry for table=17,in the table=19 DUMP_FLOWS
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${GWMAC_TABLE} True ${EMPTY} priority=0 actions=resubmit(,17)
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${GWMAC_TABLE} True ${EMPTY} priority=0 actions=resubmit(,17)
Verify the pipeline flow from dispatcher table 17 (L3VPN) to table 19
[Documentation] To Verify the end to end pipeline flow from table=17 to table=19 DUMP_FLOWS
${subport_id_1} = OpenStackOperations.Get Sub Port Id ${PORT_LIST[0]}
${subport_id_2} = OpenStackOperations.Get Sub Port Id ${PORT_LIST[1]}
Verify the pipeline flow from dispatcher table 17 (L3VPN) to table 19
[Documentation] To Verify the end to end pipeline flow from table=17 to table=19 DUMP_FLOWS
${subport_id_1} = OpenStackOperations.Get Sub Port Id ${PORT_LIST[0]}
${subport_id_2} = OpenStackOperations.Get Sub Port Id ${PORT_LIST[1]}
- ${port_num_1} = OVSDB.Get Port Number ${subport_id_1} ${OS_COMPUTE_1_IP}
- ${port_num_2} = OVSDB.Get Port Number ${subport_id_2} ${OS_COMPUTE_1_IP}
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${TABLE_NO_0} True ${EMPTY} in_port=${port_num_1} goto_table:${DISPATCHER_TABLE}
- ${metadata} = OVSDB.Get Port Metadata ${OS_COMPUTE_1_IP} ${port_num_1}
+ ${port_num_1} = OVSDB.Get Port Number ${subport_id_1} ${OS_CMP1_IP}
+ ${port_num_2} = OVSDB.Get Port Number ${subport_id_2} ${OS_CMP1_IP}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_0} True ${EMPTY} in_port=${port_num_1} goto_table:${DISPATCHER_TABLE}
+ ${metadata} = OVSDB.Get Port Metadata ${OS_CMP1_IP} ${port_num_1}
${vpn_id} = VpnOperations.VPN Get L3VPN ID ${VRF_ID}
${vpn_id} = VpnOperations.VPN Get L3VPN ID ${VRF_ID}
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${DISPATCHER_TABLE} True |grep ${vpn_id} ${vpn_id} goto_table:${GWMAC_TABLE}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${DISPATCHER_TABLE} True |grep ${vpn_id} ${vpn_id} goto_table:${GWMAC_TABLE}
${gw_mac_addr} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[0]}
Verify Flows Are Present For ARP ${ARP_REQUEST_OPERATIONAL_CODE} |grep ${metadata}
${gw_mac_addr} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[0]}
Verify Flows Are Present For ARP ${ARP_REQUEST_OPERATIONAL_CODE} |grep ${metadata}
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${ARP_RESPONSE_TABLE} True ${EMPTY} set_field:${gw_mac_addr} resubmit(,220)
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${TABLE_NO_220} True ${EMPTY} output:${port_num_2}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_RESPONSE_TABLE} True ${EMPTY} set_field:${gw_mac_addr} resubmit(,220)
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_220} True ${EMPTY} output:${port_num_2}
Verify that ARP requests and ARP response received on GWMAC table are punted to controller for learning ,resubmitted to table 17,sent to ARP responder
[Documentation] To verify the ARP Request and ARP response entry should be there after the dump_groups and dispatcher table should point to ARP responder
Verify that ARP requests and ARP response received on GWMAC table are punted to controller for learning ,resubmitted to table 17,sent to ARP responder
[Documentation] To verify the ARP Request and ARP response entry should be there after the dump_groups and dispatcher table should point to ARP responder
Verify that table miss entry for table 17 should not point to table 81 arp table
[Documentation] To Verify there should not be an entry for the arp_responder_table in table=17
Verify that table miss entry for table 17 should not point to table 81 arp table
[Documentation] To Verify there should not be an entry for the arp_responder_table in table=17
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${DISPATCHER_TABLE} False |grep priority=0 goto_table:${ARP_RESPONSE_TABLE}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${DISPATCHER_TABLE} False |grep priority=0 goto_table:${ARP_RESPONSE_TABLE}
Verify that Multiple GWMAC entries in GWMAC table points to FIB table 21 (L3VPN pipeline)
[Documentation] To Verify the one or more default gateway mac enteries on the table=19 flows that points to FIB table 21
${gw_mac_addr_1} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[0]}
${gw_mac_addr_2} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[1]}
Verify that Multiple GWMAC entries in GWMAC table points to FIB table 21 (L3VPN pipeline)
[Documentation] To Verify the one or more default gateway mac enteries on the table=19 flows that points to FIB table 21
${gw_mac_addr_1} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[0]}
${gw_mac_addr_2} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[1]}
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${GWMAC_TABLE} True ${EMPTY} dl_dst=${gw_mac_addr_1} actions=goto_table:${L3_TABLE}
- ${pkt_count_before_ping} = OvsManager.Get Packet Count From Table ${OS_COMPUTE_1_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${GWMAC_TABLE} True ${EMPTY} dl_dst=${gw_mac_addr_1} actions=goto_table:${L3_TABLE}
+ ${pkt_count_before_ping} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 8 @{NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 8 @{NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${pkt_count_after_ping} = OvsManager.Get Packet Count From Table ${OS_COMPUTE_1_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
+ ${pkt_count_after_ping} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
${pkt_diff} = Evaluate int(${pkt_count_after_ping})-int(${pkt_count_before_ping})
BuiltIn.Should Be True ${pkt_diff} > ${PING_COUNT_VALUE}
${pkt_diff} = Evaluate int(${pkt_count_after_ping})-int(${pkt_count_before_ping})
BuiltIn.Should Be True ${pkt_diff} > ${PING_COUNT_VALUE}
- ${pkt_count_before_ping} = OvsManager.Get Packet Count From Table ${OS_COMPUTE_2_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
+ ${pkt_count_before_ping} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{NET_2_VM_IPS}[0] ping -c 8 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{NET_2_VM_IPS}[0] ping -c 8 @{NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${pkt_count_after_ping} = OvsManager.Get Packet Count From Table ${OS_COMPUTE_2_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
+ ${pkt_count_after_ping} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
${pkt_diff} = Evaluate int(${pkt_count_after_ping})-int(${pkt_count_before_ping})
BuiltIn.Should Be True ${pkt_diff} > ${PING_COUNT_VALUE}
Verify table miss entry of ARP responder table points to drop actions
[Documentation] To Verify the default flow entry of table=81 drops when openflow controller connected to compute node
${pkt_diff} = Evaluate int(${pkt_count_after_ping})-int(${pkt_count_before_ping})
BuiltIn.Should Be True ${pkt_diff} > ${PING_COUNT_VALUE}
Verify table miss entry of ARP responder table points to drop actions
[Documentation] To Verify the default flow entry of table=81 drops when openflow controller connected to compute node
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${ARP_RESPONSE_TABLE} True |grep priority=0 actions=drop
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_RESPONSE_TABLE} True |grep priority=0 actions=drop
Verify ARP eth_type entries and actions for ARP request and ARP response are populated on GWMAC table
[Documentation] To Verify the entry of ARP request(arp=1) and ARP response(arp=2) in table=19
Verify ARP eth_type entries and actions for ARP request and ARP response are populated on GWMAC table
[Documentation] To Verify the entry of ARP request(arp=1) and ARP response(arp=2) in table=19
- OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${GWMAC_TABLE} True ${EMPTY} arp_op=${ARP_REQUEST_OPERATIONAL_CODE} ${RESUBMIT_VALUE}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${GWMAC_TABLE} True ${EMPTY} arp_op=${ARP_REQUEST_OPERATIONAL_CODE} ${RESUBMIT_VALUE}
Verify GWMAC entires are populated with Neutron Router MAC address per network in GWMAC table
[Documentation] To Verify gateway mac entires are populated with neutron router mac address for network with vpn dissociation from router
VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}
${gw_mac_addr} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[1]}
Verify GWMAC entires are populated with Neutron Router MAC address per network in GWMAC table
[Documentation] To Verify gateway mac entires are populated with neutron router mac address for network with vpn dissociation from router
VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}
${gw_mac_addr} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[1]}
- BuiltIn.Wait Until Keyword Succeeds 60s 15s OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${GWMAC_TABLE} True
+ BuiltIn.Wait Until Keyword Succeeds 60s 15s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${GWMAC_TABLE} True
... ${EMPTY} dl_dst=${gw_mac_addr} actions=goto_table:${L3_TABLE}
${output} = VpnOperations.Get Fib Entries session
BuiltIn.Should Match Regexp ${output} .*@{DEFAULT_GATEWAY_IPS}[1]/32.*${NEXTHOP}
... ${EMPTY} dl_dst=${gw_mac_addr} actions=goto_table:${L3_TABLE}
${output} = VpnOperations.Get Fib Entries session
BuiltIn.Should Match Regexp ${output} .*@{DEFAULT_GATEWAY_IPS}[1]/32.*${NEXTHOP}
[Documentation] To Verify gateway mac entires are populated with port MAC address for network with vpn association to router
VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}
${gw_mac_addr} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[1]}
[Documentation] To Verify gateway mac entires are populated with port MAC address for network with vpn association to router
VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}
${gw_mac_addr} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[1]}
- BuiltIn.Wait Until Keyword Succeeds 60s 15s OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${GWMAC_TABLE} True
+ BuiltIn.Wait Until Keyword Succeeds 60s 15s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${GWMAC_TABLE} True
... ${EMPTY} dl_dst=${gw_mac_addr} actions=goto_table:${L3_TABLE}
${output} = VpnOperations.Get Fib Entries session
BuiltIn.Should Match Regexp ${output} .*${VRF_ID}.*${REQ_SUBNET_CIDR[0]}
... ${EMPTY} dl_dst=${gw_mac_addr} actions=goto_table:${L3_TABLE}
${output} = VpnOperations.Get Fib Entries session
BuiltIn.Should Match Regexp ${output} .*${VRF_ID}.*${REQ_SUBNET_CIDR[0]}
Verify Flows Are Present For ARP
[Arguments] ${arp_op_code} ${additional_args}=${EMPTY}
[Documentation] Verify Flows Are Present For ARP entry
Verify Flows Are Present For ARP
[Arguments] ${arp_op_code} ${additional_args}=${EMPTY}
[Documentation] Verify Flows Are Present For ARP entry
- ${flow_output} = Utils.Run Command On Remote System ${OS_COMPUTE_1_IP} ${DUMP_FLOWS} | grep table=${GWMAC_TABLE}
+ ${flow_output} = Utils.Run Command On Remote System ${OS_CMP1_IP} ${DUMP_FLOWS} | grep table=${GWMAC_TABLE}
BuiltIn.Should Contain ${flow_output} arp,arp_op=${arp_op_code} ${RESUBMIT_VALUE}
BuiltIn.Should Contain ${flow_output} arp,arp_op=${arp_op_code} ${RESUBMIT_VALUE}
- ${flow_output} = Utils.Run Command On Remote System ${OS_COMPUTE_1_IP} ${DUMP_FLOWS} | grep table=${DISPATCHER_TABLE} ${additional_args}
+ ${flow_output} = Utils.Run Command On Remote System ${OS_CMP1_IP} ${DUMP_FLOWS} | grep table=${DISPATCHER_TABLE} ${additional_args}
BuiltIn.Should Contain ${flow_output} goto_table:${ARP_CHECK_TABLE}
BuiltIn.Should Contain ${flow_output} goto_table:${ARP_CHECK_TABLE}
- ${flow_output} = Utils.Run Command On Remote System ${OS_COMPUTE_1_IP} ${DUMP_FLOWS} | grep table=${ARP_CHECK_TABLE}
+ ${flow_output} = Utils.Run Command On Remote System ${OS_CMP1_IP} ${DUMP_FLOWS} | grep table=${ARP_CHECK_TABLE}
@{group_id} = String.Get Regexp Matches ${flow_output} group:(\\d+) 1
BuiltIn.Should Contain ${flow_output} arp,arp_op=1 actions=group:${group_id[0]}
@{group_id} = String.Get Regexp Matches ${flow_output} group:(\\d+) 1
BuiltIn.Should Contain ${flow_output} arp,arp_op=1 actions=group:${group_id[0]}
- ${flow_output} = Utils.Run Command On Remote System ${OS_COMPUTE_1_IP} ${GROUP_FLOWS} | grep group_id=${group_id[0]}
+ ${flow_output} = Utils.Run Command On Remote System ${OS_CMP1_IP} ${GROUP_FLOWS} | grep group_id=${group_id[0]}
BuiltIn.Should Contain ${flow_output} bucket=actions=resubmit(,81)
BuiltIn.Should Contain ${flow_output} bucket=actions=resubmit(,81)
... wire and instead, replaces them with VNIs supplied by the
... tenant’s OpenStack.
Suite Setup Start Suite
... wire and instead, replaces them with VNIs supplied by the
... tenant’s OpenStack.
Suite Setup Start Suite
-Suite Teardown OpenStackOperations.OpenStack Suite Teardown
-Test Setup Run Keywords OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP1_CONN_ID}
-... AND OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP2_CONN_ID}
-Test Teardown OpenStackOperations.Get Test Teardown Debugs
+Suite Teardown Stop Suite
+Test Setup VpnOperations.VNI Test Setup
+Test Teardown VpnOperations.VNI Test Teardown
Library OperatingSystem
Library RequestsLibrary
Library String
Library OperatingSystem
Library RequestsLibrary
Library String
*** Test Cases ***
VNI Based IPv6 Forwarding
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
*** Test Cases ***
VNI Based IPv6 Forwarding
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI6_NET_0_PORTS}[0] @{VNI6_NET_1_PORTS}[0] @{VNI6_NETWORKS}[0]
... @{VNI6_NETWORKS}[1] @{VM_IP_NET0}[0] @{VM_IP_NET1}[0] ${IP}
VNI Based IPv6 Forwarding With BGPVPN Router Association
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Router associated to a BGPVPN.
BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI6_NET_0_PORTS}[0] @{VNI6_NET_1_PORTS}[0] @{VNI6_NETWORKS}[0]
... @{VNI6_NETWORKS}[1] @{VM_IP_NET0}[0] @{VM_IP_NET1}[0] ${IP}
VNI Based IPv6 Forwarding With BGPVPN Router Association
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Router associated to a BGPVPN.
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
${net_id} = OpenStackOperations.Get Net Id @{VNI6_NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
VpnOperations.VPN Create L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[0] name=@{VNI6_VPN_NAMES}[0] rd=@{VNI6_RDS}[0] exportrt=@{VNI6_RDS}[0] importrt=@{VNI6_RDS}[0] tenantid=${tenant_id}
${net_id} = OpenStackOperations.Get Net Id @{VNI6_NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
VpnOperations.VPN Create L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[0] name=@{VNI6_VPN_NAMES}[0] rd=@{VNI6_RDS}[0] exportrt=@{VNI6_RDS}[0] importrt=@{VNI6_RDS}[0] tenantid=${tenant_id}
VNI Based IPv6 Forwarding With Two Routers And BGPVPN With Irt Ert
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Two Routers each associated to a BGPVPN and The Two BGPVPN is connected with irt and ert.
VNI Based IPv6 Forwarding With Two Routers And BGPVPN With Irt Ert
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Two Routers each associated to a BGPVPN and The Two BGPVPN is connected with irt and ert.
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
OpenStackOperations.Create Network @{VNI6_NETWORKS}[2]
OpenStackOperations.Create Network @{VNI6_NETWORKS}[3]
OpenStackOperations.Create SubNet @{VNI6_NETWORKS}[2] @{VNI6_SUBNETS}[2] @{VNI6_SUBNET_CIDRS}[2] ${NET2_ADDITIONAL_ARGS}
OpenStackOperations.Create Network @{VNI6_NETWORKS}[2]
OpenStackOperations.Create Network @{VNI6_NETWORKS}[3]
OpenStackOperations.Create SubNet @{VNI6_NETWORKS}[2] @{VNI6_SUBNETS}[2] @{VNI6_SUBNET_CIDRS}[2] ${NET2_ADDITIONAL_ARGS}
Start Suite
[Documentation] Create Basic setup for the feature. Creates single network, subnet, two ports and two VMs.
... Create Two VMs for TC1 : (VM1, N1, Compute1) and (VM2, N2, Compute2) and R1
Start Suite
[Documentation] Create Basic setup for the feature. Creates single network, subnet, two ports and two VMs.
... Create Two VMs for TC1 : (VM1, N1, Compute1) and (VM2, N2, Compute2) and R1
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI6_SECURITY_GROUP} IPv6
OpenStackOperations.Create Network @{VNI6_NETWORKS}[0]
VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI6_SECURITY_GROUP} IPv6
OpenStackOperations.Create Network @{VNI6_NETWORKS}[0]
BuiltIn.Set Suite Variable ${VM_IP_NET1}
BuiltIn.Should Not Contain ${VM_IP_NET0} None
BuiltIn.Should Not Contain ${VM_IP_NET1} None
BuiltIn.Set Suite Variable ${VM_IP_NET1}
BuiltIn.Should Not Contain ${VM_IP_NET0} None
BuiltIn.Should Not Contain ${VM_IP_NET1} None
+ Get OvsDebugInfo
+
+Stop Suite
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
+ OpenStackOperations.OpenStack Suite Teardown
... wire and instead, replaces them with VNIs supplied by the
... tenant’s OpenStack.
Suite Setup Start Suite
... wire and instead, replaces them with VNIs supplied by the
... tenant’s OpenStack.
Suite Setup Start Suite
-Suite Teardown OpenStackOperations.OpenStack Suite Teardown
-Test Setup Run Keywords OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP1_CONN_ID}
-... AND OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP2_CONN_ID}
-Test Teardown OpenStackOperations.Get Test Teardown Debugs
+Suite Teardown Stop Suite
+Test Setup VpnOperations.VNI Test Setup
+Test Teardown VpnOperations.VNI Test Teardown
Library OperatingSystem
Library RequestsLibrary
Library String
Library OperatingSystem
Library RequestsLibrary
Library String
Resource ../../../libraries/OVSDB.robot
Resource ../../../libraries/SetupUtils.robot
Resource ../../../libraries/Utils.robot
Resource ../../../libraries/OVSDB.robot
Resource ../../../libraries/SetupUtils.robot
Resource ../../../libraries/Utils.robot
+Resource ../../../libraries/VpnOperations.robot
Resource ../../../variables/netvirt/Variables.robot
Resource ../../../variables/Variables.robot
Resource ../../../variables/netvirt/Variables.robot
Resource ../../../variables/Variables.robot
*** Test Cases ***
VNI Based L2 Switching
[Documentation] verify VNI id for L2 Unicast frames exchanged over OVS datapaths that are on different hypervisors
*** Test Cases ***
VNI Based L2 Switching
[Documentation] verify VNI id for L2 Unicast frames exchanged over OVS datapaths that are on different hypervisors
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
${port_mac1} = OpenStackOperations.Get Port Mac @{VNI_NET_1_PORTS}[0]
${port_mac2} = OpenStackOperations.Get Port Mac @{VNI_NET_1_PORTS}[1]
${segmentation_id} = OpenStackOperations.Get Network Segmentation Id @{VNI_NETWORKS}[0]
${port_mac1} = OpenStackOperations.Get Port Mac @{VNI_NET_1_PORTS}[0]
${port_mac2} = OpenStackOperations.Get Port Mac @{VNI_NET_1_PORTS}[1]
${segmentation_id} = OpenStackOperations.Get Network Segmentation Id @{VNI_NETWORKS}[0]
*** Keywords ***
Start Suite
[Documentation] Create Basic setup for the feature. Creates single network, subnet, two ports and two VMs.
*** Keywords ***
Start Suite
[Documentation] Create Basic setup for the feature. Creates single network, subnet, two ports and two VMs.
- OpenStackOperations.OpenStack Suite Setup
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
+ VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI_SECURITY_GROUP}
OpenStackOperations.Create Network @{VNI_NETWORKS}[0]
OpenStackOperations.Create SubNet @{VNI_NETWORKS}[0] @{VNI_SUBNETS}[0] @{VNI_SUBNET_CIDRS}[0]
OpenStackOperations.Create Allow All SecurityGroup ${VNI_SECURITY_GROUP}
OpenStackOperations.Create Network @{VNI_NETWORKS}[0]
OpenStackOperations.Create SubNet @{VNI_NETWORKS}[0] @{VNI_SUBNETS}[0] @{VNI_SUBNET_CIDRS}[0]
BuiltIn.Set Suite Variable @{VNI_NET_1_VM_IPS}
BuiltIn.Should Not Contain ${VNI_NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${vni_net_1_dhcp_ip} None
BuiltIn.Set Suite Variable @{VNI_NET_1_VM_IPS}
BuiltIn.Should Not Contain ${VNI_NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${vni_net_1_dhcp_ip} None
+ Get OvsDebugInfo
+
+Stop Suite
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
+ OpenStackOperations.OpenStack Suite Teardown
... wire and instead, replaces them with VNIs supplied by the
... tenant’s OpenStack.
Suite Setup Start Suite
... wire and instead, replaces them with VNIs supplied by the
... tenant’s OpenStack.
Suite Setup Start Suite
-Suite Teardown OpenStackOperations.OpenStack Suite Teardown
-Test Setup Run Keywords OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP1_CONN_ID}
-... AND OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP2_CONN_ID}
-Test Teardown OpenStackOperations.Get Test Teardown Debugs
+Suite Teardown Stop Suite
+Test Setup VpnOperations.VNI Test Setup
+Test Teardown VpnOperations.VNI Test Teardown
Library OperatingSystem
Library RequestsLibrary
Library String
Library OperatingSystem
Library RequestsLibrary
Library String
*** Test Cases ***
VNI Based L3 Forwarding
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
*** Test Cases ***
VNI Based L3 Forwarding
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI_NET_0_PORTS}[0] @{VNI_NET_1_PORTS}[0] @{VNI_NETWORKS}[0]
... @{VNI_NETWORKS}[1] @{NET_0_VM_IPS}[0] @{NET_1_VM_IPS}[0] ${IP}
VNI Based L3 Forwarding With BGPVPN Router Association
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Router associated to a BGPVPN.
Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI_NET_0_PORTS}[0] @{VNI_NET_1_PORTS}[0] @{VNI_NETWORKS}[0]
... @{VNI_NETWORKS}[1] @{NET_0_VM_IPS}[0] @{NET_1_VM_IPS}[0] ${IP}
VNI Based L3 Forwarding With BGPVPN Router Association
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Router associated to a BGPVPN.
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
${net_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
VpnOperations.VPN Create L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[0] name=@{VNI_VPN_NAMES}[0] rd=@{VNI_RDS}[0] exportrt=@{VNI_RDS}[0] importrt=@{VNI_RDS}[0] tenantid=${tenant_id}
${net_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
VpnOperations.VPN Create L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[0] name=@{VNI_VPN_NAMES}[0] rd=@{VNI_RDS}[0] exportrt=@{VNI_RDS}[0] importrt=@{VNI_RDS}[0] tenantid=${tenant_id}
VNI Based L3 Forwarding With BGPVPN Network Association
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Networks associated to a BGPVPN.
VNI Based L3 Forwarding With BGPVPN Network Association
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Networks associated to a BGPVPN.
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
OpenStackOperations.Create Network @{VNI_NETWORKS}[2]
OpenStackOperations.Create Network @{VNI_NETWORKS}[3]
OpenStackOperations.Create SubNet @{VNI_NETWORKS}[2] @{VNI_SUBNETS}[2] @{VNI_SUBNET_CIDRS}[2]
OpenStackOperations.Create Network @{VNI_NETWORKS}[2]
OpenStackOperations.Create Network @{VNI_NETWORKS}[3]
OpenStackOperations.Create SubNet @{VNI_NETWORKS}[2] @{VNI_SUBNETS}[2] @{VNI_SUBNET_CIDRS}[2]
VNI Based L3 Forwarding With BGPVPN With Irt Ert
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With two Networks associated to two BGPVPN.
VNI Based L3 Forwarding With BGPVPN With Irt Ert
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With two Networks associated to two BGPVPN.
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
OpenStackOperations.Create Network @{VNI_NETWORKS}[4]
OpenStackOperations.Create Network @{VNI_NETWORKS}[5]
OpenStackOperations.Create SubNet @{VNI_NETWORKS}[4] @{VNI_SUBNETS}[4] @{VNI_SUBNET_CIDRS}[4]
OpenStackOperations.Create Network @{VNI_NETWORKS}[4]
OpenStackOperations.Create Network @{VNI_NETWORKS}[5]
OpenStackOperations.Create SubNet @{VNI_NETWORKS}[4] @{VNI_SUBNETS}[4] @{VNI_SUBNET_CIDRS}[4]
Start Suite
[Documentation] Create Basic setup for the feature. Creates single network, subnet, two ports and two VMs.
... Create Two VMs for TC1 : (VM1, N1, Compute1) and (VM2, N2, Compute2) and R1
Start Suite
[Documentation] Create Basic setup for the feature. Creates single network, subnet, two ports and two VMs.
... Create Two VMs for TC1 : (VM1, N1, Compute1) and (VM2, N2, Compute2) and R1
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI_SECURITY_GROUP}
OpenStackOperations.Create Network @{VNI_NETWORKS}[0]
VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI_SECURITY_GROUP}
OpenStackOperations.Create Network @{VNI_NETWORKS}[0]
BuiltIn.Should Not Contain ${NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${NET_0_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${NET_0_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None
+ Get OvsDebugInfo
+
+Stop Suite
+ BuiltIn.Return From Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"
+ OpenStackOperations.OpenStack Suite Teardown
Verify GARP Requests
[Documentation] Verify that GARP request are sent to controller
Verify GARP Requests
[Documentation] Verify that GARP request are sent to controller
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
BuiltIn.Set Test Variable ${fib_entry_1} @{NET_1_VM_IPS}[0]
BuiltIn.Set Test Variable ${fib_entry_3} @{NET_1_VM_IPS}[1]
BuiltIn.Set Test Variable ${fib_entry_1} @{NET_1_VM_IPS}[0]
BuiltIn.Set Test Variable ${fib_entry_3} @{NET_1_VM_IPS}[1]
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Flows Are Present ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Flows Are Present ${OS_COMPUTE_2_IP}
+ Verify Flows Are Present On All Compute Nodes
${output} = VpnOperations.Get Fib Entries session
${output} = VpnOperations.Get Fib Entries session
- ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_3}\/32".*"${OS_COMPUTE_2_IP}\\"
- ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_1}\/32".*"${OS_COMPUTE_1_IP}\\"
+ ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_3}\/32".*"${OS_CMP2_IP}\\"
+ ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_1}\/32".*"${OS_CMP1_IP}\\"
${rx_packet1_before} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig eth0
${rx_packet0_before} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig eth0
${config_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} @{EXTRA_NW_IP}[0] netmask 255.255.255.0 up
${rx_packet1_before} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig eth0
${rx_packet0_before} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig eth0
${config_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} @{EXTRA_NW_IP}[0] netmask 255.255.255.0 up
${rx_packet0_after} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig eth0
BuiltIn.Should Not Be Equal ${rx_packet0_before} ${rx_packet0_after}
BuiltIn.Should Not Be Equal ${rx_packet1_before} ${rx_packet1_after}
${rx_packet0_after} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig eth0
BuiltIn.Should Not Be Equal ${rx_packet0_before} ${rx_packet0_after}
BuiltIn.Should Not Be Equal ${rx_packet1_before} ${rx_packet1_after}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present ${OS_COMPUTE_2_IP}
+ Verify Flows Are Present On All Compute Nodes
BuiltIn.Wait Until Keyword Succeeds 5s 1s Verify Learnt IP ${FIB_ENTRY_2} session
${output} = VpnOperations.Get Fib Entries session
BuiltIn.Wait Until Keyword Succeeds 5s 1s Verify Learnt IP ${FIB_ENTRY_2} session
${output} = VpnOperations.Get Fib Entries session
- ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_3}\\/32".*"${OS_COMPUTE_2_IP}\\"
- ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_1}\\/32".*"${OS_COMPUTE_1_IP}\\"
- ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${FIB_ENTRY_2}\\/32".*"${OS_COMPUTE_2_IP}\\"
+ ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_3}\\/32".*"${OS_CMP2_IP}\\"
+ ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_1}\\/32".*"${OS_CMP1_IP}\\"
+ ${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${FIB_ENTRY_2}\\/32".*"${OS_CMP2_IP}\\"
Verify Ping To Sub Interface ${FIB_ENTRY_2}
Verify MIP Migration
[Documentation] Verify that after migration of movable ip across compute nodes, the controller updates the routes
Verify Ping To Sub Interface ${FIB_ENTRY_2}
Verify MIP Migration
[Documentation] Verify that after migration of movable ip across compute nodes, the controller updates the routes
+ BuiltIn.Pass Execution If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
${unconfig_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} down
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${unconfig_extra_route_ip1}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig
${unconfig_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} down
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${unconfig_extra_route_ip1}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig
BuiltIn.Wait Until Keyword Succeeds 5s 1s Verify Learnt IP ${FIB_ENTRY_2} session
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${RPING_MIP_IP}
${output} VpnOperations.Get Fib Entries session
BuiltIn.Wait Until Keyword Succeeds 5s 1s Verify Learnt IP ${FIB_ENTRY_2} session
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${RPING_MIP_IP}
${output} VpnOperations.Get Fib Entries session
- ${resp}= BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${FIB_ENTRY_2}\\/32".*"${OS_COMPUTE_1_IP}\\"
+ ${resp}= BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${FIB_ENTRY_2}\\/32".*"${OS_CMP1_IP}\\"
Verify Ping To Sub Interface ${FIB_ENTRY_2}
${unconfig_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} down
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${unconfig_extra_route_ip1}
Verify Ping To Sub Interface ${FIB_ENTRY_2}
${unconfig_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} down
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${unconfig_extra_route_ip1}
: FOR ${ip} IN @{vm_ips}
\ ${resp} = Should Match regexp ${flow_output} table=21.*nw_dst=${ip}
: FOR ${ip} IN @{vm_ips}
\ ${resp} = Should Match regexp ${flow_output} table=21.*nw_dst=${ip}
+Verify Flows Are Present On All Compute Nodes
+ [Documentation] Verify Flows Are Present On All Compute Nodes
+ : FOR ${ip} IN @{OS_CMP_IPS}
+ \ BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Flows Are Present ${ip}
+
Verify Ping To Sub Interface
[Arguments] ${sub_interface_ip}
[Documentation] Verify ping to the sub-interface
Verify Ping To Sub Interface
[Arguments] ${sub_interface_ip}
[Documentation] Verify ping to the sub-interface
BuiltIn.Set Suite Variable ${GWIP_ADDRS}
Check L3_Datapath Traffic Across Networks With Router
BuiltIn.Set Suite Variable ${GWIP_ADDRS}
Check L3_Datapath Traffic Across Networks With Router
- @{tcpdump_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes tcpdump_vpn ${EMPTY} ${OS_CONTROL_NODE_IP} ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
+ @{tcpdump_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes tcpdump_vpn ${EMPTY} @{OS_ALL_IPS}
${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_ips}
${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_ips}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${vm_ips}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_2_IP} ${vm_ips}
+ Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
${dst_ip_list} = BuiltIn.Create List @{NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
${dst_ip_list} = BuiltIn.Create List @{NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
BuiltIn.Should Contain ${resp} ${router_id}
Verify L3VPN Datapath With Router Association
BuiltIn.Should Contain ${resp} ${router_id}
Verify L3VPN Datapath With Router Association
- ${vm_instances} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${vm_instances}
+ ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${vm_ips}
${RD} = Strip String @{RDS}[0] characters="[]
${RD} = Strip String @{RDS}[0] characters="[]
- BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${vm_instances}
- BuiltIn.Wait Until Keyword Succeeds 60s 15s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${vm_instances}
- BuiltIn.Wait Until Keyword Succeeds 60s 15s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_2_IP} ${vm_instances}
+ BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${vm_ips}
+ Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips}
BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
BuiltIn.Log Check datapath from network1 to network2
${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
BuiltIn.Log Check datapath from network1 to network2
${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${ROUTER_URL} ${router_list}
${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${ROUTER_URL} ${router_list}
${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
- BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
Remove Router Interfaces
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
Remove Router Interfaces
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements Not At URI ${ROUTER_URL} ${router_list}
${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${ROUTER}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements Not At URI ${ROUTER_URL} ${router_list}
${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${ROUTER}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes
Delete Router With NonExistentRouter Name
[Documentation] Delete router with nonExistentRouter name
Delete Router With NonExistentRouter Name
[Documentation] Delete router with nonExistentRouter name
Check L3_Datapath Traffic Across Networks With Router
[Documentation] L3 Datapath test across networks using previously created router.
BuiltIn.Log Verification of FIB Entries and Flow
Check L3_Datapath Traffic Across Networks With Router
[Documentation] L3 Datapath test across networks using previously created router.
BuiltIn.Log Verification of FIB Entries and Flow
- @{tcpdump_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes tcpdump_vpn_ds ${EMPTY} ${OS_CONTROL_NODE_IP} ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
+ @{tcpdump_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes tcpdump_vpn_ds ${EMPTY} @{OS_ALL_IPS}
${vm_instances} = BuiltIn.Create List @{NET_1_VM_IPV4} @{NET_2_VM_IPV4} @{NET_1_VM_IPV6} @{NET_2_VM_IPV6}
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_instances}
: FOR ${VM} IN ${vm_instances}
${vm_instances} = BuiltIn.Create List @{NET_1_VM_IPV4} @{NET_2_VM_IPV4} @{NET_1_VM_IPV6} @{NET_2_VM_IPV6}
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_instances}
: FOR ${VM} IN ${vm_instances}
- \ BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${VM}
+ \ BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${VM}
BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify GWMAC Entry On ODL ${GW_MAC_ADDRS}
BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify GWMAC Entry On ODL ${GW_MAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
BuiltIn.Log L3 Datapath test across the networks using router
${dst_ipv4_list1} = BuiltIn.Create List ${NET_1_VM_IPV4[1]} @{NET_2_VM_IPV4}
Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
BuiltIn.Log L3 Datapath test across the networks using router
${dst_ipv4_list1} = BuiltIn.Create List ${NET_1_VM_IPV4[1]} @{NET_2_VM_IPV4}
Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${VM_IPS}
${RD} = Strip String ${RDS[0]} characters="[]
BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${VM_IPS}
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${VM_IPS}
${RD} = Strip String ${RDS[0]} characters="[]
BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${VM_IPS}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${VM_IPS}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_2_IP} ${VM_IPS}
+ Verify Flows Are Present For L3VPN On All Compute Nodes ${VM_IPS}
BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify GWMAC Entry On ODL ${GW_MAC_ADDRS}
BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify GWMAC Entry On ODL ${GW_MAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
BuiltIn.Log L3 Datapath test across the networks using L3VPN
${dst_ipv4_list1} = BuiltIn.Create List ${NET_1_VM_IPV4[1]} @{NET_2_VM_IPV4}
Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
BuiltIn.Log L3 Datapath test across the networks using L3VPN
${dst_ipv4_list1} = BuiltIn.Create List ${NET_1_VM_IPV4[1]} @{NET_2_VM_IPV4}
Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
# Verify Router Entry removed from L3VPN
${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID[0]}
BuiltIn.Should Not Contain ${resp} ${router_id}
# Verify Router Entry removed from L3VPN
${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID[0]}
BuiltIn.Should Not Contain ${resp} ${router_id}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes
Delete Router With NonExistentRouter Name
[Documentation] Delete router with nonExistentRouter name.
Delete Router With NonExistentRouter Name
[Documentation] Delete router with nonExistentRouter name.
Check L3_Datapath Traffic Across Networks With Router
BuiltIn.Log Verification of FIB Entries and Flow
Check L3_Datapath Traffic Across Networks With Router
BuiltIn.Log Verification of FIB Entries and Flow
- @{tcpdump_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes tcpdump_vpn6 ${EMPTY} ${OS_CONTROL_NODE_IP} ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
+ @{tcpdump_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes tcpdump_vpn6 ${EMPTY} @{OS_ALL_IPS}
${vm_ips} = BuiltIn.Create List @{VM_IP_NET10} @{VM_IP_NET20}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_ips}
${vm_ips} = BuiltIn.Create List @{VM_IP_NET10} @{VM_IP_NET20}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_ips}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${VM_IP_NET10}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${VM_IP_NET20}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${VM_IP_NET10}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${VM_IP_NET20}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP} ipv6
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP} ipv6
+ Verify GWMAC Flow Entry On Flow Table On All Compute Nodes ipv6
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET20}[1] @{VM_IP_NET10}
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET20}[1] @{VM_IP_NET10}
Verify L3VPN Datapath With Router Association
BuiltIn.Log Verify VPN interfaces, FIB entries and Flow table
Verify L3VPN Datapath With Router Association
BuiltIn.Log Verify VPN interfaces, FIB entries and Flow table
- ${vm_instances} = BuiltIn.Create List @{VM_IP_NET10} @{VM_IP_NET20}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${vm_instances}
+ ${vm_ips} = BuiltIn.Create List @{VM_IP_NET10} @{VM_IP_NET20}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${vm_ips}
${RD} = Strip String @{RDS}[0] characters="[]
${RD} = Strip String @{RDS}[0] characters="[]
- BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${vm_instances}
- BuiltIn.Wait Until Keyword Succeeds 60s 15s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${vm_instances}
- BuiltIn.Wait Until Keyword Succeeds 60s 15s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_2_IP} ${vm_instances}
+ BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${vm_ips}
+ Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP} ipv6
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP} ipv6
+ Verify GWMAC Flow Entry On Flow Table On All Compute Nodes ipv6
BuiltIn.Log Check datapath from network1 to network2
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
BuiltIn.Log Check datapath from network1 to network2
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements Not At URI ${ROUTER_URL} ${router_list}
${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements Not At URI ${ROUTER_URL} ${router_list}
${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_2_IP}
+ Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes
Delete Router With NonExistentRouter Name
${rc} ${output}= Run And Return Rc And Output neutron router-delete nonExistentRouter
Delete Router With NonExistentRouter Name
${rc} ${output}= Run And Return Rc And Output neutron router-delete nonExistentRouter
Create Bridge Manually and Verify Before Fail
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
Create Bridge Manually and Verify Before Fail
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CNTL_IP}
Add Tap Device Manually and Verify Before Fail
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
Add Tap Device Manually and Verify Before Fail
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CNTL_IP}
Delete the Bridge Manually and Verify Before Fail
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
Delete the Bridge Manually and Verify Before Fail
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
- ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CNTL_IP}
Take Down ODL1
[Documentation] Kill the karaf in First Controller
Take Down ODL1
[Documentation] Kill the karaf in First Controller
Create Bridge Manually and Verify After Fail
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
Create Bridge Manually and Verify After Fail
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
+ ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CNTL_IP} ${new_cluster_list}
Add Tap Device Manually and Verify After Fail
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
Add Tap Device Manually and Verify After Fail
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
+ ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CNTL_IP} ${new_cluster_list}
Delete the Bridge Manually and Verify After Fail
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
Delete the Bridge Manually and Verify After Fail
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
- ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
+ ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CNTL_IP} ${new_cluster_list}
Bring Up ODL1
[Documentation] Bring up ODL1 again
Bring Up ODL1
[Documentation] Bring up ODL1 again
Create Bridge Manually and Verify After Recover
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
Create Bridge Manually and Verify After Recover
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CNTL_IP}
Add Tap Device Manually and Verify After Recover
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
Add Tap Device Manually and Verify After Recover
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CNTL_IP}
Delete the Bridge Manually and Verify After Recover
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
Delete the Bridge Manually and Verify After Recover
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
- ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CNTL_IP}
Take Down ODL2
[Documentation] Kill the karaf in Second Controller
Take Down ODL2
[Documentation] Kill the karaf in Second Controller
: FOR ${vm} IN @{vm_list}
\ BuiltIn.Wait Until Keyword Succeeds 6x 20s OpenStackOperations.Check If Migration Is Complete ${vm}
${vm_host_after_migration} = OpenStackOperations.Get Hypervisor Host Of Vm @{NET_1_VMS}[0]
: FOR ${vm} IN @{vm_list}
\ BuiltIn.Wait Until Keyword Succeeds 6x 20s OpenStackOperations.Check If Migration Is Complete ${vm}
${vm_host_after_migration} = OpenStackOperations.Get Hypervisor Host Of Vm @{NET_1_VMS}[0]
- BuiltIn.Should Not Match ${vm_host_after_migration} ${vm_host_before_migration}
+ BuiltIn.Run Keyword If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" BuiltIn.Should Match ${vm_host_after_migration} ${vm_host_before_migration}
+ ... ELSE BuiltIn.Should Not Match ${vm_host_after_migration} ${vm_host_before_migration}
SSHLibrary.Switch Connection ${devstack_conn_id}
RemoteBash.Write_Bare_Ctrl_C
${output} = SSHLibrary.Read Until packet loss
SSHLibrary.Switch Connection ${devstack_conn_id}
RemoteBash.Write_Bare_Ctrl_C
${output} = SSHLibrary.Read Until packet loss
${DUMP_FLOW} sudo ovs-ofctl dump-flows br-int -OOpenflow13
${DUMP_PORT_DESC} sudo ovs-ofctl dump-ports-desc br-int -OOpenflow13
${PACKET_COUNT} 5
${DUMP_FLOW} sudo ovs-ofctl dump-flows br-int -OOpenflow13
${DUMP_PORT_DESC} sudo ovs-ofctl dump-ports-desc br-int -OOpenflow13
${PACKET_COUNT} 5
+${PACKET_COUNT_CMB} 10
+${PACKET_DIFF} 0
+${PACKET_DIFF_CMB} 5
${BCAST_IP} 255.255.255.255
${SUBNET1_BCAST_IP} 10.0.0.255
${SUBNET2_BCAST_IP} 20.0.0.255
${BCAST_IP} 255.255.255.255
${SUBNET1_BCAST_IP} 10.0.0.255
${SUBNET2_BCAST_IP} 20.0.0.255
*** Test case ***
Verify Network Broadcast traffic between the VMs hosted in Single Network
[Documentation] This TC is to verify Network Broadcast traffic between the VMs hosted in Same Network on same/different compute node
*** Test case ***
Verify Network Broadcast traffic between the VMs hosted in Single Network
[Documentation] This TC is to verify Network Broadcast traffic between the VMs hosted in Same Network on same/different compute node
- Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_COMPUTE1_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
+ Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP1_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
... @{VM_IPS}[0] same
Verify Network Broadcast traffic between the VMs hosted in Multi Network
[Documentation] This TC is to verify Network Broadcast traffic between the VMs hosted in Different Network on same/different compute node.
... @{VM_IPS}[0] same
Verify Network Broadcast traffic between the VMs hosted in Multi Network
[Documentation] This TC is to verify Network Broadcast traffic between the VMs hosted in Different Network on same/different compute node.
- Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_COMPUTE1_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
+ Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP1_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
... @{VM_IPS}[3] different
*** Keywords ***
... @{VM_IPS}[3] different
*** Keywords ***
OpenStackOperations.Execute Command on VM Instance ${NETWORKS[0]} @{VM_IPS}[0] ${ENABLE_BCAST}
OpenStackOperations.Execute Command on VM Instance ${NETWORKS[1]} @{VM_IPS}[3] ${ENABLE_BCAST}
${vm1_in_port} ${vm1_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[0]
OpenStackOperations.Execute Command on VM Instance ${NETWORKS[0]} @{VM_IPS}[0] ${ENABLE_BCAST}
OpenStackOperations.Execute Command on VM Instance ${NETWORKS[1]} @{VM_IPS}[3] ${ENABLE_BCAST}
${vm1_in_port} ${vm1_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[0]
${vm2_in_port} ${vm2_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[1]
${vm2_in_port} ${vm2_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[1]
${vm3_in_port} ${vm3_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[2]
${vm3_in_port} ${vm3_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[2]
${vm4_in_port} ${vm4_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_2_PORTS}[0]
${vm4_in_port} ${vm4_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_2_PORTS}[0]
${vm5_in_port} ${vm5_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_2_PORTS}[1]
${vm5_in_port} ${vm5_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_2_PORTS}[1]
${VM1_SUBMETA} = Get Submetadata ${vm1_meta}
${VM2_SUBMETA} = Get Submetadata ${vm2_meta}
${VM3_SUBMETA} = Get Submetadata ${vm3_meta}
${VM1_SUBMETA} = Get Submetadata ${vm1_meta}
${VM2_SUBMETA} = Get Submetadata ${vm2_meta}
${VM3_SUBMETA} = Get Submetadata ${vm3_meta}
Get Submetadata
[Arguments] ${vm_metadata}
[Documentation] Get the submetadata of the VM
Get Submetadata
[Arguments] ${vm_metadata}
[Documentation] Get the submetadata of the VM
- ${cmd1} = Utils.Run Command On Remote System And Log ${OS_COMPUTE1_IP} ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
+ ${cmd1} = Utils.Run Command On Remote System And Log ${OS_CMP1_IP} ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
${output1} = String.Get Regexp Matches ${cmd1} reg6=(\\w+) 1
${output1} = String.Get Regexp Matches ${cmd1} reg6=(\\w+) 1
- ${cmd2} = Utils.Run Command On Remote System And Log ${OS_COMPUTE2_IP} ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
+ ${cmd2} = Utils.Run Command On Remote System And Log ${OS_CMP2_IP} ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
${output2} = String.Get Regexp Matches ${cmd2} reg6=(\\w+) 1
${metalist} = Collections.Combine Lists ${output1} ${output2}
: FOR ${meta} IN @{metalist}
${output2} = String.Get Regexp Matches ${cmd2} reg6=(\\w+) 1
${metalist} = Collections.Combine Lists ${output1} ${output2}
: FOR ${meta} IN @{metalist}
${bcast_egress} = Utils.Run Command On Remote System And Log ${OS_COMPUTE_IP} ${DUMP_FLOW} | grep table=${EGRESS_ACL_TABLE} | grep ${BCAST_IP}
${get_pkt_count_after_bcast} = OvsManager.Get Packet Count In Table For IP ${OS_COMPUTE_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
${pkt_diff} = Evaluate int(${get_pkt_count_after_bcast})-int(${get_pkt_count_before_bcast})
${bcast_egress} = Utils.Run Command On Remote System And Log ${OS_COMPUTE_IP} ${DUMP_FLOW} | grep table=${EGRESS_ACL_TABLE} | grep ${BCAST_IP}
${get_pkt_count_after_bcast} = OvsManager.Get Packet Count In Table For IP ${OS_COMPUTE_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
${pkt_diff} = Evaluate int(${get_pkt_count_after_bcast})-int(${get_pkt_count_before_bcast})
- BuiltIn.Run Keyword If '${subnet_var}' == 'same' Should Be Equal As Numbers ${pkt_diff} ${PACKET_COUNT}
- ... ELSE Should Be True ${pkt_diff}==0
+ ${pkt_diff_expected} = BuiltIn.Set Variable If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" ${PACKET_DIFF_CMB} ${PACKET_DIFF}
+ ${pkt_count} = BuiltIn.Set Variable If "${OS_DEPLOY}" == "1cmb-0ctl-0cmp" ${PACKET_COUNT_CMB} ${PACKET_COUNT}
+ BuiltIn.Run Keyword If '${subnet_var}' == 'same' Should Be Equal As Numbers ${pkt_diff} ${pkt_count}
+ ... ELSE Should Be True ${pkt_diff} == ${pkt_diff_expected}