Upgrade RF syntax for v3.2 compatibility
[integration/test.git] / csit / suites / openstack / securitygroup / security_group_l3bcast.robot
index cac298d9f5b3df42012f0482c5838b72ac9b9f04..4a7a1ad7c293b6df4117cbf8ce346367c9793689 100644 (file)
@@ -33,24 +33,43 @@ ${ROUTER}         sgbcast_router
 ${DUMP_FLOW}      sudo ovs-ofctl dump-flows br-int -OOpenflow13
 ${DUMP_PORT_DESC}    sudo ovs-ofctl dump-ports-desc br-int -OOpenflow13
 ${PACKET_COUNT}    5
-${PACKET_COUNT_CMB}    10
-${PACKET_DIFF}    0
-${PACKET_DIFF_CMB}    5
 ${BCAST_IP}       255.255.255.255
-${SUBNET1_BCAST_IP}    10.0.0.255
-${SUBNET2_BCAST_IP}    20.0.0.255
+${SUBNET1_BCAST_IP}    55.0.0.255
+${SUBNET2_BCAST_IP}    56.0.0.255
 ${ENABLE_BCAST}    echo 0 | sudo tee /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 
-*** Test case ***
+*** Test Case ***
 Verify Network Broadcast traffic between the VMs hosted in Single Network
     [Documentation]    This TC is to verify Network Broadcast traffic between the VMs hosted in Same Network on same/different compute node
+    ${pkt_check} =    BuiltIn.Set Variable If    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"    10    5
     Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}
-    ...    @{VM_IPS}[0]    same
+    ...    @{VM_IPS}[0]    same    pingsuccess    pkt_check=${pkt_check}
 
 Verify Network Broadcast traffic between the VMs hosted in Multi Network
     [Documentation]    This TC is to verify Network Broadcast traffic between the VMs hosted in Different Network on same/different compute node.
+    ${pkt_check} =    BuiltIn.Set Variable If    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"    5    0
     Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}
-    ...    @{VM_IPS}[3]    different
+    ...    @{VM_IPS}[3]    different    pingsuccess    pkt_check=${pkt_check}
+
+Verify Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
+    [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
+    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET1_BCAST_IP}
+    ...    @{VM_IPS}[0]    same    pingsuccess    ${VM2_SUBMETA}    pkt_check=5    additional_args=| grep ${VM2_SUBMETA}
+
+Verify Subnet Broadcast traffic between the VMs hosted on Different compute node in Single Network
+    [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
+    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP2_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET1_BCAST_IP}
+    ...    @{VM_IPS}[0]    same    pingsuccess    ${VM3_SUBMETA}    pkt_check=5    additional_args=| grep ${VM3_SUBMETA}
+
+Verify Subnet Broadcast traffic between the VMs hosted on same compute node in Multi Network
+    [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Multi Network
+    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET2_BCAST_IP}
+    ...    @{VM_IPS}[0]    different    nosuccess    ${VM4_SUBMETA}    pkt_check=0    additional_args=| grep ${VM4_SUBMETA}
+
+Verify Subnet Broadcast traffic between the VMs hosted on Different compute node in Multi Network
+    [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on Different compute node in Multi Network
+    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP2_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET2_BCAST_IP}
+    ...    @{VM_IPS}[0]    different    nosuccess    ${VM5_SUBMETA}    pkt_check=0    additional_args=| grep ${VM5_SUBMETA}
 
 *** Keywords ***
 Start Suite
@@ -61,24 +80,30 @@ Start Suite
     OpenStackOperations.Get Suite Debugs
 
 Create Setup
-    : FOR    ${network}    IN    @{NETWORKS}
-    \    OpenStackOperations.Create Network    ${network}
-    : FOR    ${i}    IN RANGE    len(${NETWORKS})
-    \    OpenStackOperations.Create SubNet    @{NETWORKS}[${i}]    @{SUBNETS}[${i}]    @{SUBNET_CIDRS}[${i}]
+    FOR    ${network}    IN    @{NETWORKS}
+        OpenStackOperations.Create Network    ${network}
+    END
+    FOR    ${i}    IN RANGE    len(${NETWORKS})
+        OpenStackOperations.Create SubNet    @{NETWORKS}[${i}]    @{SUBNETS}[${i}]    @{SUBNET_CIDRS}[${i}]
+    END
     OpenStackOperations.Create Allow All SecurityGroup    @{SECURITY_GROUP}[0]
     OpenStackOperations.Create Router    ${ROUTER}
-    : FOR    ${interface}    IN    @{SUBNETS}
-    \    OpenStackOperations.Add Router Interface    ${ROUTER}    ${interface}
-    : FOR    ${port_net1}    IN    @{NET_1_PORTS}
-    \    OpenStackOperations.Create Port    @{NETWORKS}[0]    ${port_net1}    sg=@{SECURITY_GROUP}[0]
-    : FOR    ${port_net2}    IN    @{NET_2_PORTS}
-    \    OpenStackOperations.Create Port    @{NETWORKS}[1]    ${port_net2}    sg=@{SECURITY_GROUP}[0]
+    FOR    ${interface}    IN    @{SUBNETS}
+        OpenStackOperations.Add Router Interface    ${ROUTER}    ${interface}
+    END
+    FOR    ${port_net1}    IN    @{NET_1_PORTS}
+        OpenStackOperations.Create Port    @{NETWORKS}[0]    ${port_net1}    sg=@{SECURITY_GROUP}[0]
+    END
+    FOR    ${port_net2}    IN    @{NET_2_PORTS}
+        OpenStackOperations.Create Port    @{NETWORKS}[1]    ${port_net2}    sg=@{SECURITY_GROUP}[0]
+    END
     @{ports} =    BuiltIn.Create List    @{NET_1_PORTS}[0]    @{NET_1_PORTS}[1]    @{NET_1_PORTS}[2]    @{NET_2_PORTS}[0]    @{NET_2_PORTS}[1]
     @{vms} =    BuiltIn.Create List    @{NET_1_VMS}[0]    @{NET_1_VMS}[1]    @{NET_1_VMS}[2]    @{NET_2_VMS}[0]    @{NET_2_VMS}[1]
     @{nodes} =    BuiltIn.Create List    ${OS_CMP1_HOSTNAME}    ${OS_CMP1_HOSTNAME}    ${OS_CMP2_HOSTNAME}    ${OS_CMP1_HOSTNAME}    ${OS_CMP2_HOSTNAME}
-    FOR    ${port}    ${vm}    ${node}    IN ZIP    ${ports}    ${vms}
+    FOR    ${port}    ${vm}    ${node}    IN ZIP    ${ports}    ${vms}
     ...    ${nodes}
-    \    OpenStackOperations.Create Vm Instance With Port On Compute Node    ${port}    ${vm}    ${node}    sg=@{SECURITY_GROUP}[0]
+        OpenStackOperations.Create Vm Instance With Port On Compute Node    ${port}    ${vm}    ${node}    sg=@{SECURITY_GROUP}[0]
+    END
     @{vms} =    Collections.Combine Lists    ${NET_1_VMS}    ${NET_2_VMS}
     @{VM_IPS} =    OpenStackOperations.Get VM IPs    @{vms}
     BuiltIn.Should Not Contain    ${VM_IPS}    None
@@ -129,20 +154,20 @@ Get Submetadata
     ${cmd2} =    Utils.Run Command On Remote System And Log    ${OS_CMP2_IP}    ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
     ${output2} =    String.Get Regexp Matches    ${cmd2}    reg6=(\\w+)    1
     ${metalist} =    Collections.Combine Lists    ${output1}    ${output2}
-    : FOR    ${meta}    IN    @{metalist}
-    \    ${metadata_check_status} =    Run Keyword And Return Status    should contain    ${vm_metadata}    ${meta}
-    \    Return From Keyword if    ${metadata_check_status} == True    ${meta}
+    FOR    ${meta}    IN    @{metalist}
+        ${metadata_check_status} =    Run Keyword And Return Status    should contain    ${vm_metadata}    ${meta}
+        Return From Keyword if    ${metadata_check_status} == True    ${meta}
+    END
 
 Verify L3Broadcast With Antispoofing Table
-    [Arguments]    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}    ${vm_ip}    ${subnet_var}
+    [Arguments]    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}    ${vm_ip}    ${subnet_var}    ${ping_response}='pingsuccess'
+    ...    ${vm_submeta}=''    ${pkt_check}=0    ${additional_args}=${EMPTY}
     [Documentation]    Verify the l3 broadcast requests are hitting to antispoofing table in same subnet
-    ${get_pkt_count_before_bcast} =    OvsManager.Get Packet Count In Table For IP    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}
+    ${get_pkt_count_before_bcast} =    OvsManager.Get Packet Count In Table For IP    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}    additional_args=| grep ${vm_submeta}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    ${vm_ip}    ping -c ${PACKET_COUNT} ${BCAST_IP}
-    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
-    ${bcast_egress} =    Utils.Run Command On Remote System And Log    ${OS_COMPUTE_IP}    ${DUMP_FLOW} | grep table=${EGRESS_ACL_TABLE} | grep ${BCAST_IP}
-    ${get_pkt_count_after_bcast} =    OvsManager.Get Packet Count In Table For IP    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}
+    BuiltIn.Run Keyword If    '${ping_response}'=='pingsuccess'    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
+    ...    ELSE    BuiltIn.Should Contain    ${output}    ${NO_PING_REGEXP}
+    ${bcast_egress} =    Utils.Run Command On Remote System And Log    ${OS_COMPUTE_IP}    ${DUMP_FLOW} | grep table=${EGRESS_ACL_TABLE} | grep ${BCAST_IP} ${additional_args}
+    ${get_pkt_count_after_bcast} =    OvsManager.Get Packet Count In Table For IP    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}    additional_args=| grep ${vm_submeta}
     ${pkt_diff} =    Evaluate    int(${get_pkt_count_after_bcast})-int(${get_pkt_count_before_bcast})
-    ${pkt_diff_expected} =    BuiltIn.Set Variable If    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"    ${PACKET_DIFF_CMB}    ${PACKET_DIFF}
-    ${pkt_count} =    BuiltIn.Set Variable If    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"    ${PACKET_COUNT_CMB}    ${PACKET_COUNT}
-    BuiltIn.Run Keyword If    '${subnet_var}' == 'same'    Should Be Equal As Numbers    ${pkt_diff}    ${pkt_count}
-    ...    ELSE    Should Be True    ${pkt_diff} == ${pkt_diff_expected}
+    BuiltIn.Should Be Equal As Numbers    ${pkt_diff}    ${pkt_check}