OPNFV L3VPN Any-to-Any Compliance Test Plan

L3VPN Any-to-Any Compliance Test Cases

The Compliance Test Cases for L3VPN Any-to-Any Scenario are as follows. Please note that the test cases do not cover other L3VPN Scenarios such as ECMP, Hub and Spoke etc.

Test Case 1: Tempest Create BGPVPN

# Need to add Tempest API Tests

Test Case 2: VPN Provides Connectivity between Subnets

# Note: Available in FuncTest
# Description: VPNs provide connectivity across Neutron networks and subnets if configured accordingly.
# Step 1: Test Setup
#    1.1: Set up VM1 and VM2 on Node1 and VM3 on Node2
#    1.1.1: All have ports in the same Neutron Network N1
#    1.1.2: All have 10.10.10.0/24 addresses (this subnet is referred to as SN1 in the following steps)
#    1.2: Set up VM4 on Node1 and VM5 on Node2
#    1.2.1: Both have ports in Neutron Network N2
#    1.2.2: Both have 10.10.11.0/24 addresses (this subnet is referred to as SN2 in the following steps)
# Step 2: Test Execution
#    2.1: Create VPN1 with eRT<>iRT (so that connected subnets should not reach each other) and associate SN1 to it
#    2.2: Ping from VM1 to VM2 should work
#    2.3: Ping from VM1 to VM3 should work
#    2.4: Ping from VM1 to VM4 should not work
#    2.5: Associate SN2 to VPN1
#    2.6: Ping from VM4 to VM5 should work
#    2.7: Ping from VM1 to VM4 should not work
#    2.8: Ping from VM1 to VM5 should not work
#    2.9: Change VPN 1 so that iRT=eRT
#    2.10: Ping from VM1 to VM4 should work
#    2.11: Ping from VM1 to VM5 should work

Test Case 3: Tenant Isolation

# Note: Available in FuncTest
# Description: Using VPNs to isolate tenants so that overlapping IP address ranges can be used
# Step 1: Test Setup
#    1.1: set up VM1 and VM2 on Node1 and VM3 on Node2
#    1.1.1: All have ports in the same Neutron Network N1
#    1.2: VM1 and VM2 have IP addresses in the subnet SN1a with range 10.10.10.0/24
#    1.2.1: VM1: 10.10.10.11, running an HTTP server which returns "I am VM1" for any HTTP request
#    1.2.2: VM2: 10.10.10.12, running an HTTP server which returns "I am VM2" for any HTTP request
#    1.3: VM3 has an IP address in the subnet SN2a with range 10.10.11.0/24
#    1.3.1: VM3: 10.10.11.13, running an HTTP server which returns "I am VM3" for any HTTP request
#    1.4: Set up VM4 on Node1 and VM5 on Node2, both having ports in Neutron Network N2
#    1.5: VM4 has an address in the subnet SN1b with range 10.10.10.0/24
#    1.5.1: VM4: 10.10.10.12, running an HTTP server which returns "I am VM4" for any HTTP request
#    1.5.2: Note VM4 has the same IP address as VM2
#    1.6: VM5 has an address in the subnet SN2b with range 10.10.11/24
#    1.6.1: VM5: 10.10.11.13, running an HTTP server which returns "I am VM5" for any HTTP request
#    1.6.2: Note VM5 has the same IP address as VM3
# Step 2: Test Execution
#    2.1: Create VPN 1 with iRT=eRT=RT1 and associate N1 to it
#    2.2: HTTP from VM1 to VM2 and VM3 should work
#    2.2.1: It returns "I am VM2" and "I am VM3" respectively
#    2.3: HTTP from VM1 to VM4 and VM5 should not work
#    2.3.1: It never returns "I am VM4" or "I am VM5"
#    2.4: Create VPN2 with iRT=eRT=RT2 and associate N2 to it
#    2.5: HTTP from VM4 to VM5 should work
#    2.5.1: It returns "I am VM5"
#    2.6: HTTP from VM4 to VM1 and VM3 should not work
#    2.6.1: It never returns "I am VM1" or "I am VM3"