@{VPN_NAME} vpn1_dualstack_subnet vpn2_dualstack_subnet vpn3_dualstack_subnet
@{RDS} ["2506:2"] ["2606:2"] ["2706:2"]
${LOOP_COUNT} 4
+@{TABLE_NO_21} 21
+${DUMP_FLOWS} sudo ovs-ofctl dump-flows br-int -O Openflow13
*** Test Cases ***
Check ELAN Datapath Traffic Within The Networks
Configure Extra IPv4/IPv6 Addresss On Interface For Subnet Routing
[Documentation] Extra IPv4/IPv6 Address configuration on Interfaces
- ${vm_ipv6} = BuiltIn.Create List @{net_1_vm_ipv6}[0] @{net_1_vm_ipv6}[1] @{net_2_vm_ipv6}[0] @{net_2_vm_ipv6}[1]
- ${vm_ipv4} = BuiltIn.Create List @{net_1_vm_ipv4}[0] @{net_1_vm_ipv4}[1] @{net_2_vm_ipv4}[0] @{net_2_vm_ipv4}[1]
+ ${VM_IPV6} = BuiltIn.Create List @{net_1_vm_ipv6}[0] @{net_1_vm_ipv6}[1] @{net_2_vm_ipv6}[0] @{net_2_vm_ipv6}[1]
+ ${VM_IPV4} = BuiltIn.Create List @{net_1_vm_ipv4}[0] @{net_1_vm_ipv4}[1] @{net_2_vm_ipv4}[0] @{net_2_vm_ipv4}[1]
: FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{vm_ipv6}[${index}] sudo ip -6 addr add @{EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
+ \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr add @{EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
: FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{vm_ipv4}[${index}] sudo ifconfig eth0:1 @{EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
+ \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 @{EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
+ BuiltIn.Set Suite Variable ${VM_IPV6}
+ BuiltIn.Set Suite Variable ${VM_IPV4}
+ BuiltIn.Should Not Contain ${VM_IPV6} None
+ BuiltIn.Should Not Contain ${VM_IPV4} None
Verify Data Traffic On Configured Subnet Ipv4/IPv6 Address
[Documentation] Check Dual Stack data path verifcation within and across network.
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
+Delete the configured extra IPv4/IPv6 Addresss and verify traffic
+ [Documentation] Delete IPv4/IPv6 Address configuration on Interfaces and verify traffic
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr del @{EXTRA_NW_IPV6}[${index}]/64 dev eth0
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 down
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
+ BuiltIn.Wait Until Keyword Succeeds 10x 40s Verify Table 21 for No VPN Routes
+
+Configure Again Extra IPv4/IPv6 Addresss On Interface For Subnet Routing
+ [Documentation] Extra IPv4/IPv6 Address configuration on Interfaces
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr add @{EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 @{EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
+
+Remove Interface From Router And Verify Traffic
+ [Documentation] Remove subnet from router and check data path verification
+ ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
+ : FOR ${interface} IN @{SUBNETS4}
+ \ OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
+ ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
+ : FOR ${interface} IN @{SUBNETS6}
+ \ OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
+ ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
+ : FOR ${interface} IN @{SUBNETS4}
+ \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE}
+ \ BuiltIn.Should Not Contain ${interface_output} ${subnet_id}
+ : FOR ${interface} IN @{SUBNETS6}
+ \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE}
+ \ BuiltIn.Should Not Contain ${interface_output} ${subnet_id}
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
+
+Add Interface To Router And Verify Traffic
+ [Documentation] Add interface router to again and check data path verification
+ : FOR ${interface} IN @{SUBNETS4}
+ \ OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
+ : FOR ${interface} IN @{SUBNETS6}
+ \ OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
+ BuiltIn.Wait Until Keyword Succeeds 10x 60s Verify Ipv4 Data Traffic
+ BuiltIn.Wait Until Keyword Succeeds 10x 60s Verify Ipv6 Data Traffic
+
Delete L3VPN
[Documentation] Delete L3VPN.
VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
+
+ReCreate L3VPN and associate L3VPN To Routers and verify traffic
+ [Documentation] Recreate L3VPN and associate L3VPN To Routers and verify ipv4/ipv6 traffic
+ ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
+ ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ BuiltIn.Should Contain ${resp} ${router_id}
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
+ BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
*** Keywords ***
Suite Setup
${net_2_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_2_VMS} @{NETWORKS}[1] ${prefix_net20}
${loop_count} Get Length ${NET_1_VMS}
: FOR ${index} IN RANGE 0 ${loop_count}
- \ ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain @{net_1_vm_ipv6}[${index}] None
+ \ ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_1_vm_ipv6}[${index}] None
\ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_1_VMS}[${index}] 30s
- \ ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain @{net_2_vm_ipv6}[${index}] None
+ \ ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_2_vm_ipv6}[${index}] None
\ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_2_VMS}[${index}] 30s
BuiltIn.Set Suite Variable ${net_1_vm_ipv4}
BuiltIn.Set Suite Variable ${net_2_vm_ipv4}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
+Verify Table 21 for VPN Routes
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
+
+Verify Table 21 for No VPN Routes
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
+ : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
+ \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
+
Suite Teardown
[Documentation] Delete the setup
BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]