Add basic routing functionality to vpn suite.
[integration/test.git] / csit / suites / netvirt / vpnservice / vpn_basic.robot
index 053f805b03fd3679bede06602e0ea9875a4e3277..b99add3564f68cf36a22f4536ef8ebd47d4faf52 100644 (file)
@@ -154,21 +154,36 @@ Delete Router Failure When Associated With L3VPN
     BuiltIn.Should Contain    ${resp}    ${router_id}
     Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
 
-Remove Router Interfaces
+Verify Remove Interface From Router When Associated With L3VPN
+    OpenStackOperations.Remove Interface    ${ROUTER}    @{SUBNETS}[0]
+    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_1_VM_IPS}
+    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_2_VM_IPS}    ping_should_succeed=False
+
+Verify L3VPN Datapath With Router Dissociation When Interfaces are Added To Router
+    OpenStackOperations.Add Router Interface    ${ROUTER}    @{SUBNETS}[0]
+    ${vm_ips} =    BuiltIn.Create List    @{NET_1_VM_IPS}    @{NET_2_VM_IPS}
+    ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}
+    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    BuiltIn.Should Not Contain    ${resp}    ${router_id}
+    Verify Flows Are Present For L3VPN On All Compute Nodes    ${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}
+    BuiltIn.Log    Check datapath from network2 to network1
+    ${dst_ip_list} =    BuiltIn.Create List    @{NET_2_VM_IPS}[1]    @{NET_1_VM_IPS}
+    BuiltIn.Wait Until Keyword Succeeds    60s    10s    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[1]    @{NET_2_VM_IPS}[0]    ${dst_ip_list}
+
+Remove Router Interfaces And Check L3_Datapath Traffic Across Networks
     ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}
     : FOR    ${INTERFACE}    IN    @{SUBNETS}
     \    OpenStackOperations.Remove Interface    ${ROUTER}    ${INTERFACE}
+    \    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_1_VM_IPS}
+    \    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_2_VM_IPS}    ping_should_succeed=False
     ${interface_output} =    OpenStackOperations.Show Router Interface    ${ROUTER}
     : FOR    ${INTERFACE}    IN    @{SUBNETS}
     \    ${subnet_id} =    OpenStackOperations.Get Subnet Id    ${INTERFACE}
     \    BuiltIn.Should Not Contain    ${interface_output}    ${subnet_id}
 
-Disassociate L3VPN From Router
-    ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}
-    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
-    BuiltIn.Should Not Contain    ${resp}    ${router_id}
-
 Delete Router
     Delete Router    ${ROUTER}
     ${router_output} =    OpenStackOperations.List Routers