2 Documentation Test Suite for verification of HWVTEP usecases
3 Suite Setup BuiltIn.Run Keywords Basic Suite Setup
4 Suite Teardown Basic Suite Teardown
5 Test Teardown Get L2gw Debug Info
6 Resource ../../libraries/L2GatewayOperations.robot
9 TC01 Configure Hwvtep Manager OVS Manager Controller And Verify
10 L2GatewayOperations.Add Vtep Manager And Verify ${ODL_IP}
11 L2GatewayOperations.Add Ovs Bridge Manager Controller And Verify
13 TC02 Create First Set Of Network Subnet And Ports
14 OpenStackOperations.Create Network ${NET_1} ${NET_ADDT_ARG} ${NET_1_SEGID}
15 ${output}= OpenStackOperations.List Networks
16 Should Contain ${output} ${NET_1}
17 OpenStackOperations.Create SubNet ${NET_1} ${SUBNET_1} ${SUBNET_RANGE1} ${SUBNET_ADDT_ARG}
18 ${output}= OpenStackOperations.List Subnets
19 Should Contain ${output} ${SUBNET_1}
20 OpenStackOperations.Create And Configure Security Group ${SECURITY_GROUP_L2GW}
21 OpenStackOperations.Create Port ${NET_1} ${OVS_PORT_1} sg=${SECURITY_GROUP_L2GW}
22 OpenStackOperations.Create Port ${NET_1} ${HWVTEP_PORT_1} sg=${SECURITY_GROUP_L2GW}
23 ${port_mac}= Get Port Mac ${OVS_PORT_1} #port_mac[0]
24 ${port_ip}= Get Port Ip ${OVS_PORT_1} #port_ip[0]
25 Append To List ${port_mac_list} ${port_mac}
26 Append To List ${port_ip_list} ${port_ip}
27 ${port_mac}= Get Port Mac ${HWVTEP_PORT_1} #port_mac[1]
28 ${port_ip}= Get Port Ip ${HWVTEP_PORT_1} #port_ip[1]
29 Append To List ${port_mac_list} ${port_mac}
30 Append To List ${port_ip_list} ${port_ip}
32 TC03 Update Port For Hwvtep And Attach Port To Namespace
33 L2GatewayOperations.Update Port For Hwvtep ${HWVTEP_PORT_1}
34 Wait Until Keyword Succeeds 30s 2s L2GatewayOperations.Attach Port To Hwvtep Namespace ${port_mac_list[1]} ${HWVTEP_NS1} ${NS_TAP1}
36 TC04 Create Vms On Compute Node
37 OpenStackOperations.Create Vm Instance With Port On Compute Node ${OVS_PORT_1} ${OVS_VM1_NAME} ${OVS_IP}
38 ${vm_ip}= Wait Until Keyword Succeeds 60s 2s L2GatewayOperations.Verify Nova VM IP ${OVS_VM1_NAME}
40 Should Contain ${vm_ip[0]} ${port_ip_list[0]}
42 TC05 Create L2Gateway And Connection And Verify
43 ${output}= L2GatewayOperations.Create Verify L2Gateway ${HWVTEP_BRIDGE} ${NS_PORT1} ${L2GW_NAME1}
45 ${output}= L2GatewayOperations.Create Verify L2Gateway Connection ${L2GW_NAME1} ${NET_1}
47 L2GatewayOperations.Verify Ovs Tunnel ${HWVTEP_IP} ${OVS_IP}
48 ${output}= ITM Get Tunnels
50 Should Contain ${output} physicalswitch/${HWVTEP_BRIDGE}
51 Wait Until Keyword Succeeds 30s 1s L2GatewayOperations.Verify Vtep List ${hwvtep_conn_id} ${TUNNEL_TABLE} enable="true"
52 ${phy_port_out}= Get Vtep List ${PHYSICAL_PORT_TABLE}
53 Validate Regexp In String ${phy_port_out} ${VLAN_BINDING_REGEX} 1
54 ${list}= Create List ${OVS_IP} ${HWVTEP_IP}
55 Wait Until Keyword Succeeds 30s 1s L2GatewayOperations.Verify Vtep List ${hwvtep_conn_id} ${PHYSICAL_LOCATOR_TABLE} @{list}
56 Wait Until Keyword Succeeds 30s 1s L2GatewayOperations.Verify Vtep List ${hwvtep_conn_id} ${UCAST_MACS_REMOTE_TABLE} ${port_mac_list[0]}
58 TC06 Dhcp Ip Allocation For Hwvtep Tap Port
59 Wait Until Keyword Succeeds 180s 10s L2GatewayOperations.Namespace Dhclient Verify ${HWVTEP_NS1} ${NS_TAP1} ${port_ip_list[1]}
61 TC07 Verify Ping From Compute Node Vm To Hwvtep
62 ${output}= Wait Until Keyword Succeeds 60s 10s Execute Command on VM Instance ${NET_1} ${port_ip_list[0]}
63 ... ping -c 3 ${port_ip_list[1]}
65 Should Not Contain ${output} ${PACKET_LOSS}
66 ${src_mac_list}= Create List ${port_mac_list[0]}
67 ${dst_mac_list}= Create List ${port_mac_list[1]}
68 Wait Until Keyword Succeeds 30s 5s L2GatewayOperations.Verify Elan Flow Entries ${OVS_IP} ${src_mac_list} ${dst_mac_list}
70 TC08 Ping Verification From Namespace Tap To Ovs Vm
71 Wait Until Keyword Succeeds 30s 5s L2GatewayOperations.Verify Ping In Namespace Extra Timeout ${HWVTEP_NS1} ${port_mac_list[1]} ${port_ip_list[0]}
73 TC09 Additional Network Subnet Port Creation
74 OpenStackOperations.Create Network ${NET_2} ${NET_ADDT_ARG} ${NET_2_SEGID}
75 ${output}= OpenStackOperations.List Networks
76 Should Contain ${output} ${NET_2}
77 OpenStackOperations.Create SubNet ${NET_2} ${SUBNET_2} ${SUBNET_RANGE2} ${SUBNET_ADDT_ARG}
78 ${output}= OpenStackOperations.List Subnets
79 Should Contain ${output} ${SUBNET_2}
80 OpenStackOperations.Create Port ${NET_2} ${OVS_PORT_2} sg=${SECURITY_GROUP_L2GW}
81 OpenStackOperations.Create Port ${NET_2} ${HWVTEP_PORT_2} sg=${SECURITY_GROUP_L2GW}
82 ${port_mac}= Get Port Mac ${OVS_PORT_2} #port_mac[2]
83 ${port_ip}= Get Port Ip ${OVS_PORT_2} #port_ip[2]
84 Append To List ${port_mac_list} ${port_mac}
85 Append To List ${port_ip_list} ${port_ip}
86 ${port_mac}= Get Port Mac ${HWVTEP_PORT_2} #port_mac[3]
87 ${port_ip}= Get Port Ip ${HWVTEP_PORT_2} #port_ip[3]
88 Append To List ${port_mac_list} ${port_mac}
89 Append To List ${port_ip_list} ${port_ip}
91 TC10 Update And Attach Second Port To Hwvtep Create L2gw Connection
92 L2GatewayOperations.Update Port For Hwvtep ${HWVTEP_PORT_2}
93 Wait Until Keyword Succeeds 30s 2s L2GatewayOperations.Attach Port To Hwvtep Namespace ${port_mac_list[3]} ${HWVTEP_NS2} ${NS2_TAP1}
94 OpenStackOperations.Create Vm Instance With Port On Compute Node ${OVS_PORT_2} ${OVS_VM2_NAME} ${OVS_IP}
95 ${vm_ip}= Wait Until Keyword Succeeds 60s 2s L2GatewayOperations.Verify Nova VM IP ${OVS_VM2_NAME}
97 Should Contain ${vm_ip[0]} ${port_ip_list[2]}
98 ${output}= L2GatewayOperations.Create Verify L2Gateway ${HWVTEP_BRIDGE} ${NS_PORT2} ${L2GW_NAME2}
100 ${output}= L2GatewayOperations.Create Verify L2Gateway Connection ${L2GW_NAME2} ${NET_2}
102 ${phy_port_out}= Get Vtep List ${PHYSICAL_PORT_TABLE}
103 Validate Regexp In String ${phy_port_out} ${VLAN_BINDING_REGEX} 2
105 TC11 Dhcp Ip Allocation And Ping Validation Within Second Network
106 Wait Until Keyword Succeeds 180s 10s L2GatewayOperations.Namespace Dhclient Verify ${HWVTEP_NS2} ${NS2_TAP1} ${port_ip_list[3]}
107 ${output}= Wait Until Keyword Succeeds 60s 10s Execute Command on VM Instance ${NET_2} ${port_ip_list[2]}
108 ... ping -c 3 ${port_ip_list[3]}
110 Should Not Contain ${output} ${PACKET_LOSS}
111 ${src_mac_list}= Create List ${port_mac_list[2]}
112 ${dst_mac_list}= Create List ${port_mac_list[3]}
113 Wait Until Keyword Succeeds 30s 5s L2GatewayOperations.Verify Elan Flow Entries ${OVS_IP} ${src_mac_list} ${dst_mac_list}
114 Wait Until Keyword Succeeds 30s 5s L2GatewayOperations.Verify Ping In Namespace Extra Timeout ${HWVTEP_NS2} ${port_mac_list[3]} ${port_ip_list[2]}
116 TC12 Ping Between Vm In Second Network To Namespace In First Network
117 ${output}= Wait Until Keyword Succeeds 60s 10s Execute Command on VM Instance ${NET_2} ${port_ip_list[2]}
118 ... ping -c 3 ${port_ip_list[1]}
120 Should Contain ${output} ${PACKET_LOSS}
122 TC13 Ping Between Namespace In Second Network To Vm In First Network
123 Wait Until Keyword Succeeds 30s 5s L2GatewayOperations.Verify Ping Fails In Namespace ${HWVTEP_NS2} ${port_mac_list[3]} ${port_ip_list[0]}
125 TC99 Cleanup L2Gateway Connection Itm Tunnel Port Subnet And Network
126 L2GatewayOperations.Delete L2Gateway Connection ${L2GW_NAME1}
127 L2GatewayOperations.Delete L2Gateway Connection ${L2GW_NAME2}
128 L2GatewayOperations.Delete L2Gateway ${L2GW_NAME1}
129 L2GatewayOperations.Delete L2Gateway ${L2GW_NAME2}
130 OpenStackOperations.Delete Vm Instance ${OVS_VM1_NAME}
131 OpenStackOperations.Delete Vm Instance ${OVS_VM2_NAME}
132 OpenStackOperations.Delete Port ${OVS_PORT_1}
133 OpenStackOperations.Delete Port ${OVS_PORT_2}
134 OpenStackOperations.Delete Port ${HWVTEP_PORT_1}
135 OpenStackOperations.Delete Port ${HWVTEP_PORT_2}
136 OpenStackOperations.Delete SubNet ${SUBNET_1}
137 OpenStackOperations.Delete SubNet ${SUBNET_2}
138 OpenStackOperations.Delete Network ${NET_1}
139 OpenStackOperations.Delete Network ${NET_2}
143 [Documentation] Basic Suite Setup required for the HWVTEP Test Suite
144 RequestsLibrary.Create Session alias=session url=http://${ODL_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
145 ${devstack_conn_id}= SSHLibrary.Open Connection ${OS_IP} prompt=${DEFAULT_LINUX_PROMPT}
146 Log ${devstack_conn_id}
147 Set Suite Variable ${devstack_conn_id}
151 Wait Until Keyword Succeeds 30s 5s Flexible SSH Login ${OS_USER} ${OS_PASSWORD}
152 Write Commands Until Prompt cd ${DEVSTACK_DEPLOY_PATH}; source openrc admin admin 30s
153 ${hwvtep_conn_id}= SSHLibrary.Open Connection ${HWVTEP_IP} prompt=${DEFAULT_LINUX_PROMPT}
154 Log ${hwvtep_conn_id}
155 Set Suite Variable ${hwvtep_conn_id}
157 Log ${DEFAULT_PASSWORD}
158 Wait Until Keyword Succeeds 30s 5s Flexible SSH Login ${DEFAULT_USER} ${DEFAULT_PASSWORD}
159 ${ovs_conn_id}= SSHLibrary.Open Connection ${OVS_IP} prompt=${DEFAULT_LINUX_PROMPT}
161 Set Suite Variable ${ovs_conn_id}
162 Wait Until Keyword Succeeds 30s 5s Flexible SSH Login ${DEFAULT_USER} ${DEFAULT_PASSWORD}
163 ${port_mac_list}= Create List
164 Set Suite Variable ${port_mac_list}
165 ${port_ip_list}= Create List
166 Set Suite Variable ${port_ip_list}
169 Switch Connection ${devstack_conn_id}
171 Switch Connection ${hwvtep_conn_id}
173 Switch Connection ${ovs_conn_id}