Added test for VOL_1823 & VOL_1824
Change-Id: I79d917ec315c6eb8627d86d899a5839ced5f760b
diff --git a/tests/functional/Voltha_ScaleFunctionalTests.robot b/tests/functional/Voltha_ScaleFunctionalTests.robot
index 06d3ef1..e428cb7 100644
--- a/tests/functional/Voltha_ScaleFunctionalTests.robot
+++ b/tests/functional/Voltha_ScaleFunctionalTests.robot
@@ -13,8 +13,8 @@
# limitations under the License.
*** Settings ***
-Documentation Test suite that engages a larger number of ONU at the same time to test scale
-... It is compatible with either BBSim or real H/W using a configuration file
+Documentation Test suite that engages a larger number of ONU at the same which makes it a more realistic test
+... It is addaptable to either BBSim or Real H/W using a configuration file
Suite Setup Setup Suite
Suite Teardown Teardown Suite
Library Collections
@@ -30,10 +30,10 @@
Resource ../../variables/variables.robot
*** Variables ***
-${timeout} 60s
-${long_timeout} 420s
-${of_id} 0
-${logical_id} 0
+${timeout} 60s
+${long_timeout} 420
+${of_id} 0
+${logical_id} 0
${has_dataplane} True
${external_libs} True
${teardown_device} False
@@ -50,13 +50,13 @@
${olt_device_id}= Create Device ${olt_ip} ${OLT_PORT}
Set Global Variable ${olt_device_id}
#validate olt states
- Wait Until Keyword Succeeds ${timeout} 5s
- ... Validate OLT Device PREPROVISIONED UNKNOWN UNKNOWN ${EMPTY} ${olt_device_id}
+ Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Device PREPROVISIONED UNKNOWN UNKNOWN
+ ... ${EMPTY} ${olt_device_id}
#enable device
Enable Device ${olt_device_id}
#validate olt states
- Wait Until Keyword Succeeds ${timeout} 5s
- ... Validate OLT Device ENABLED ACTIVE REACHABLE ${EMPTY} ${olt_device_id}
+ Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Device ENABLED ACTIVE REACHABLE ${EMPTY}
+ ... ${olt_device_id}
ONU Discovery
[Documentation] Discover lists of ONUS, their Serial Numbers and device id
@@ -65,15 +65,22 @@
${List_ONU_Serial} Create List
Set Suite Variable ${List_ONU_Serial}
Build ONU SN List ${List_ONU_Serial}
- Log ${List_ONU_Serial}
#validate onu states
- Wait Until Keyword Succeeds ${long_timeout} 20s
- ... Validate ONU Devices ENABLED ACTIVE REACHABLE ${List_ONU_Serial}
+ Wait Until Keyword Succeeds ${long_timeout} 20s Validate ONU Devices ENABLED ACTIVE REACHABLE
+ ... ${List_ONU_Serial}
+
+Verify AAA-Users Authentication
+ [Documentation] Authenticating all AAA-users in onos
+ [Tags] VOL-1823 active
+ #build onu sn list
+ ${List_ONU_Serial} Create List
+ Set Suite Variable ${List_ONU_Serial}
+ Build ONU SN List ${List_ONU_Serial}
+ Wait Until Keyword Succeeds ${long_timeout} 60s Verify Number of AAA-Users ${k8s_node_ip} ${ONOS_SSH_PORT} 16
Validate Device's Ports and Flows
[Documentation] Verify Ports and Flows listed for OLT and ONUs
- ... For OLT we validate the port types and numbers and for flows we simply
- ... verify that their numbers > 0
+ ... For OLT we validate the port types and numbers and for flows we simply verify that their numbers > 0
... For each ONU, we validate the port types and numbers for each and for flows.
... For flows they should be == 0 at this stage
[Tags] active
@@ -84,8 +91,46 @@
#validate onu port types
Validate ONU Port Types ${List_ONU_Serial} PON_ONU ETHERNET_UNI
#validate onu flows
- Wait Until Keyword Succeeds ${timeout} 5s
- ... Validate ONU Flows ${List_ONU_Serial} ${num_onu_flows}
+ Wait Until Keyword Succeeds ${timeout} 5s Validate ONU Flows ${List_ONU_Serial} ${num_onu_flows}
+
+Verify Total Number Of Eapol Flows
+ [Documentation] Verify Flows listed for ONUs
+ ... For 16 ONUs we validate the number of flows to be 16 eapol flows
+ [Tags] VOL-1823 active
+ #verify eapol flows added
+ Wait Until Keyword Succeeds ${long_timeout} 5s Verify Eapol Flows Added ${k8s_node_ip} ${ONOS_SSH_PORT} 16
+
+Allocate DHCP To All ONU Devices
+ [Documentation] DHCP Allocation for all ONUs
+ [Tags] VOL-1824 active
+ ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS ${olt_serial_number}
+ Set Global Variable ${of_id}
+ FOR ${I} IN RANGE 0 ${num_onus}
+ ${src}= Set Variable ${hosts.src[${I}]}
+ ${dst}= Set Variable ${hosts.dst[${I}]}
+ ${onu_device_id}= Get Device ID From SN ${src['onu']}
+ ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
+ ... Get ONU Port in ONOS ${src['onu']} ${of_id}
+ Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
+ ... Execute ONOS CLI Command ${k8s_node_ip} ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
+ END
+
+Validate Total Number Of DHCP Allocations
+ [Documentation] Verify dhcp allocation for multiple ONU user
+ [Tags] VOL-1824 active
+ #validate total number of DHCP allocations
+ Wait Until Keyword Succeeds ${long_timeout} 20s Validate DHCP Allocations ${k8s_node_ip}
+ ... ${ONOS_SSH_PORT} 16
+ #validate DHCP allocation for each port
+ FOR ${I} IN RANGE 0 ${num_onus}
+ ${src}= Set Variable ${hosts.src[${I}]}
+ ${dst}= Set Variable ${hosts.dst[${I}]}
+ ${onu_device_id}= Get Device ID From SN ${src['onu']}
+ ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
+ ... Get ONU Port in ONOS ${src['onu']} ${of_id}
+ Wait Until Keyword Succeeds ${long_timeout} 20s Validate Subscriber DHCP Allocation ${k8s_node_ip}
+ ... ${ONOS_SSH_PORT} ${onu_port}
+ END
Validate Logical Device
[Documentation] Verify that logical device exists and then verify its ports and flows
@@ -120,8 +165,7 @@
... kills processes and cleans up interfaces on src+dst servers
Run Keyword If ${external_libs} Get ONOS Status ${k8s_node_ip}
Run Keyword If ${has_dataplane} Clean Up Linux
- Run Keyword If ${external_libs}
- ... Log Kubernetes Containers Logs Since Time ${datetime} ${container_list}
+ Run Keyword If ${external_libs} Log Kubernetes Containers Logs Since Time ${datetime} ${container_list}
Run Keyword If ${teardown_device} Delete Device and Verify
Run Keyword If ${teardown_device} Test Empty Device List
Run Keyword If ${teardown_device} Execute ONOS CLI Command ${k8s_node_ip} ${ONOS_SSH_PORT}
@@ -148,12 +192,10 @@
Delete Device and Verify
[Documentation] Disable -> Delete devices via voltctl and verify its removed
- ${rc} ${output}= Run and Return Rc and Output
- ... ${VOLTCTL_CONFIG}; voltctl device disable ${olt_device_id}
+ ${rc} ${output}= Run and Return Rc and Output ${VOLTCTL_CONFIG}; voltctl device disable ${olt_device_id}
Should Be Equal As Integers ${rc} 0
- Wait Until Keyword Succeeds ${timeout} 5s
- ... Validate OLT Device DISABLED UNKNOWN REACHABLE ${olt_serial_number}
- ${rc} ${output}= Run and Return Rc and Output
- ... ${VOLTCTL_CONFIG}; voltctl device delete ${olt_device_id}
+ Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Device DISABLED UNKNOWN REACHABLE
+ ... ${olt_serial_number}
+ ${rc} ${output}= Run and Return Rc and Output ${VOLTCTL_CONFIG}; voltctl device delete ${olt_device_id}
Should Be Equal As Integers ${rc} 0
- Wait Until Keyword Succeeds ${long_timeout} 5s Validate Device Removed ${olt_device_id}
+ Wait Until Keyword Succeeds ${timeout} 5s Validate Device Removed ${olt_device_id}