Disable port security for l2gw csit netvirt
[integration/test.git] / csit / suites / l2gw / 01_Configure_verify_l2gateway.robot
1 *** Settings ***
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
7
8 *** Test Cases ***
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
12
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 Neutron Port With Additional Params    ${NET_1}    ${HWVTEP_PORT_1}    additional_args=${SECURITY_GROUPS_L2GW_NONE}
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}
31
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}
35
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}
39     Log    ${vm_ip}
40     Should Contain    ${vm_ip[0]}    ${port_ip_list[0]}
41
42 TC05 Create L2Gateway And Connection And Verify
43     ${output}=    L2GatewayOperations.Create Verify L2Gateway    ${HWVTEP_BRIDGE}    ${NS_PORT1}    ${L2GW_NAME1}
44     Log    ${output}
45     ${output}=    L2GatewayOperations.Create Verify L2Gateway Connection    ${L2GW_NAME1}    ${NET_1}
46     Log    ${output}
47     L2GatewayOperations.Verify Ovs Tunnel    ${HWVTEP_IP}    ${OVS_IP}
48     ${output}=    ITM Get Tunnels
49     Log    ${output}
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]}
57
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]}
60
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]}
64     Log    ${output}
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}
69
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]}
72
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 Neutron Port With Additional Params    ${NET_2}    ${HWVTEP_PORT_2}    additional_args=${SECURITY_GROUPS_L2GW_NONE}
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}
90
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}
96     Log    ${vm_ip}
97     Should Contain    ${vm_ip[0]}    ${port_ip_list[2]}
98     ${output}=    L2GatewayOperations.Create Verify L2Gateway    ${HWVTEP_BRIDGE}    ${NS_PORT2}    ${L2GW_NAME2}
99     Log    ${output}
100     ${output}=    L2GatewayOperations.Create Verify L2Gateway Connection    ${L2GW_NAME2}    ${NET_2}
101     Log    ${output}
102     ${phy_port_out}=    Get Vtep List    ${PHYSICAL_PORT_TABLE}
103     Validate Regexp In String    ${phy_port_out}    ${VLAN_BINDING_REGEX}    2
104
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]}
109     Log    ${output}
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]}
115
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]}
119     Log    ${output}
120     Should Contain    ${output}    ${PACKET_LOSS}
121
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]}
124
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}
140
141 *** Keywords ***
142 Basic Suite Setup
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}
148     Log    ${OS_IP}
149     Log    ${OS_USER}
150     Log    ${OS_PASSWORD}
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}
156     Log    ${DEFAULT_USER}
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}
160     Log    ${ovs_conn_id}
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}
167
168 Basic Suite Teardown
169     Switch Connection    ${devstack_conn_id}
170     close connection
171     Switch Connection    ${hwvtep_conn_id}
172     close connection
173     Switch Connection    ${ovs_conn_id}
174     close connection