blob: 37f14188891f25715e80634799fcad43bbe3c851 [file] [log] [blame]
Gayathri.Selvan283a63c2020-01-23 04:09:18 +00001# Copyright 2017 - present Open Networking Foundation
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
Gayathri.Selvan283a63c2020-01-23 04:09:18 +000014
15*** Settings ***
HungWei Chiu87edb1f2020-01-28 00:10:58 +000016Documentation Test various failure scenarios
HungWei Chiu1408fb92020-03-03 19:43:30 -050017Suite Setup Setup Suite
Gayathri.Selvan283a63c2020-01-23 04:09:18 +000018Test Setup Setup
19Test Teardown Teardown
20#Suite Teardown Teardown Suite
21Library Collections
22Library String
23Library OperatingSystem
24Library XML
25Library RequestsLibrary
26Library ../../libraries/DependencyLibrary.py
27Resource ../../libraries/onos.robot
28Resource ../../libraries/voltctl.robot
29Resource ../../libraries/voltha.robot
30Resource ../../libraries/utils.robot
31Resource ../../libraries/k8s.robot
32Resource ../../variables/variables.robot
HungWei Chiu87edb1f2020-01-28 00:10:58 +000033Resource ../../libraries/power_switch.robot
Hardik Windlassc082c422021-03-16 15:44:10 +000034Resource ../../libraries/bbsim.robot
Gayathri.Selvan283a63c2020-01-23 04:09:18 +000035
36*** Variables ***
37${POD_NAME} flex-ocp-cord
38${KUBERNETES_CONF} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
39${KUBERNETES_CONFIGS_DIR} ~/pod-configs/kubernetes-configs
40#${KUBERNETES_CONFIGS_DIR} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
41${KUBERNETES_YAML} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.yml
42${HELM_CHARTS_DIR} ~/helm-charts
43${VOLTHA_POD_NUM} 8
44${NAMESPACE} voltha
Suchitra Vemurica1c5d32020-04-09 18:45:29 -070045${DEFAULTSPACE} default
Matteo Scandolo10acf562021-05-03 15:35:16 -070046${INFRA_NAMESPACE} infra
Gayathri.Selvan283a63c2020-01-23 04:09:18 +000047# For below variable value, using deployment name as using grep for
48# parsing radius pod name, we can also use full radius pod name
49${RESTART_POD_NAME} radius
50${timeout} 60s
51${of_id} 0
52${logical_id} 0
Suchitra Vemuri109feb12020-01-23 16:25:02 -080053${has_dataplane} True
Gayathri.Selvan283a63c2020-01-23 04:09:18 +000054${teardown_device} False
55${scripts} ../../scripts
56
Andy Bavierabeba262020-02-07 16:22:16 -070057# Per-test logging on failure is turned off by default; set this variable to enable
58${container_log_dir} ${None}
59
Gayathri.Selvan283a63c2020-01-23 04:09:18 +000060*** Test Cases ***
Suchitra Vemuri60be98b2020-02-19 16:41:21 -080061Verify ONU after rebooting physically
62 [Documentation] Test the ONU functionality by physically turning on/off ONU.
63 ... Prerequisite : Subscriber are authenticated/DHCP/pingable state
64 ... Test case runs only on the PODs that are configured with PowerSwitch that
65 ... controls the power off/on ONUs/OLT remotely (simulating a physical reboot)
66 ... VOL-2634
67 [Tags] functional PowerSwitch
Andy Baviere187eda2020-04-20 15:00:02 -070068 [Setup] Start Logging ONUreboot_PowerSwitch
Suchitra Vemuri60be98b2020-02-19 16:41:21 -080069 [Teardown] Run Keywords Collect Logs
Suchitra Vemuri9a6dd6d2020-02-28 17:46:26 -080070 ... AND Stop Logging ONUreboot_PowerSwitch
Suchitra Vemuria6879aa2020-11-03 11:03:11 -080071 ... AND Delete All Devices and Verify
Suchitra Vemuri60be98b2020-02-19 16:41:21 -080072 # Add OLT device
73 setup
74 # Performing Sanity Test to make sure subscribers are all AUTH+DHCP and pingable
75 Run Keyword If ${has_dataplane} Clean Up Linux
76 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
77 Power Switch Connection Suite ${web_power_switch.ip} ${web_power_switch.user} ${web_power_switch.password}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -080078 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemuri60be98b2020-02-19 16:41:21 -080079 ${src}= Set Variable ${hosts.src[${I}]}
80 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -080081 ${of_id}= Get ofID From OLT List ${src['olt']}
Hardik Windlass0560f802020-05-06 23:06:53 +053082 ${onu_device_id}= Get Device ID From SN ${src['onu']}
Suchitra Vemuri60be98b2020-02-19 16:41:21 -080083 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
84 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
85 Disable Switch Outlet ${src['power_switch_port']}
86 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
87 ... Wait Until Keyword Succeeds 60s 2s
88 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
89 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hardik Windlass7c801e62020-05-04 19:33:21 +053090 # Remove Subscriber Access (To replicate ATT workflow)
91 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
92 ... ${ONOS_SSH_PORT} volt-remove-subscriber-access ${of_id} ${onu_port}
Suchitra Vemuri60be98b2020-02-19 16:41:21 -080093
94 Enable Switch Outlet ${src['power_switch_port']}
95 # Check ONU port is Enabled in ONOS
96 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 120s 2s
Suchitra Vemuri760bdd32020-06-17 12:34:48 -070097 ... Verify ONU Port Is Enabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${src['onu']}
Suchitra Vemuri60be98b2020-02-19 16:41:21 -080098 # Verify EAPOL flows are added for the ONU port
99 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
ubuntu6b6e7d42020-03-02 12:35:42 -0800100 ... Verify Eapol Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Suchitra Vemuri60be98b2020-02-19 16:41:21 -0800101 # Verify ONU state in voltha
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700102 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s Validate Device
Suchitra Vemuri60be98b2020-02-19 16:41:21 -0800103 ... ENABLED ACTIVE REACHABLE
104 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
Hardik Windlass7c801e62020-05-04 19:33:21 +0530105 Run Keyword If ${has_dataplane} Clean Up Linux
106 # Perform Authentication
107 ${wpa_log}= Run Keyword If ${has_dataplane} Catenate SEPARATOR=.
108 ... /tmp/wpa ${src['dp_iface_name']} log
109 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate Authentication True
110 ... ${src['dp_iface_name']} wpa_supplicant.conf ${src['ip']} ${src['user']} ${src['pass']}
111 ... ${src['container_type']} ${src['container_name']} ${wpa_log}
112 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
113 ... Verify ONU in AAA-Users ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
114 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
115 ... Execute ONOS CLI Command ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
116 ... volt-add-subscriber-access ${of_id} ${onu_port}
117 # Verify that no pending flows exist for the ONU port
118 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
119 ... Verify No Pending Flows For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Hardik Windlass21807632020-04-14 16:24:55 +0530120 # Verify subscriber access flows are added for the ONU port
121 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
122 ... Verify Subscriber Access Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
123 ... ${onu_port} ${nni_port} ${src['c_tag']} ${src['s_tag']}
Hardik Windlass7c801e62020-05-04 19:33:21 +0530124 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
125 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
Suchitra Vemuri60be98b2020-02-19 16:41:21 -0800126 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hardik Windlass7c801e62020-05-04 19:33:21 +0530127 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
128 ... ${dst['container_name']}
129 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
130 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Suchitra Vemuri60be98b2020-02-19 16:41:21 -0800131 END
Suchitra Vemurid7096132020-02-21 14:50:47 -0800132 # Deleting OLT after tests completes independently (as this test doesn't not run on each POD)
Suchitra Vemuri0656bc22020-03-21 19:07:49 -0700133 #Run Keyword If ${has_dataplane} Delete Device and Verify
Suchitra Vemuria7dae322020-02-19 22:38:18 -0800134
Suchitra Vemuri784e1ae2020-03-16 18:40:25 -0700135Verify OLT after rebooting physically
136 [Documentation] Test the physical reboot of the OLT
137 ... Prerequisite : Subscriber are authenticated/DHCP/pingable state
138 ... Test performs a physical reboot, performs "reboot" from the OLT CLI
139 ... VOL-1956
140 [Tags] functional PhysicalOLTReboot
Andy Baviere187eda2020-04-20 15:00:02 -0700141 [Setup] Start Logging PhysicalOLTReboot
Suchitra Vemuri784e1ae2020-03-16 18:40:25 -0700142 [Teardown] Run Keywords Collect Logs
143 ... AND Stop Logging PhysicalOLTReboot
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800144 ... AND Delete All Devices and Verify
Suchitra Vemuri784e1ae2020-03-16 18:40:25 -0700145 # Add OLT device
146 setup
147 # Performing Sanity Test to make sure subscribers are all AUTH+DHCP and pingable
148 Run Keyword If ${has_dataplane} Clean Up Linux
149 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
150 # Reboot the OLT from the OLT CLI
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800151 FOR ${I} IN RANGE 0 ${olt_count}
152 ${olt_user}= Get From Dictionary ${list_olts}[${I}] user
153 ${olt_pass}= Get From Dictionary ${list_olts}[${I}] pass
154 ${olt_ssh_ip}= Get From Dictionary ${list_olts}[${I}] sship
155 ${olt_serial_number}= Get From Dictionary ${list_olts}[${I}] sn
156 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
157 Run Keyword If ${has_dataplane} Login And Run Command On Remote System
Andrea Campanella5ef88142021-02-02 14:34:50 +0100158 ... reboot ${olt_ssh_ip} ${olt_user} ${olt_pass} prompt=#
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800159 END
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800160 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemuri784e1ae2020-03-16 18:40:25 -0700161 ${src}= Set Variable ${hosts.src[${I}]}
162 ${dst}= Set Variable ${hosts.dst[${I}]}
163 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
164 ... Wait Until Keyword Succeeds 60s 2s
165 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
166 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
167 END
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800168 # Wait for the OLTs to come back up
169 FOR ${I} IN RANGE 0 ${olt_count}
170 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
171 ${olt_user}= Get From Dictionary ${list_olts}[${I}] user
172 ${olt_pass}= Get From Dictionary ${list_olts}[${I}] pass
173 ${olt_ssh_ip}= Get From Dictionary ${list_olts}[${I}] sship
174 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
175 Run Keyword If ${has_dataplane} Wait Until Keyword Succeeds 120s 10s
176 ... Check Remote System Reachability True ${olt_ssh_ip}
177 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s
178 ... Validate OLT Device ENABLED ACTIVE
179 ... REACHABLE ${olt_serial_number}
180 END
Suchitra Vemuri64db9652020-03-22 21:11:13 -0700181 # Waiting extra time for the ONUs to come up
182 Sleep 60s
Suchitra Vemuri784e1ae2020-03-16 18:40:25 -0700183 Run Keyword If ${has_dataplane} Clean Up Linux
184 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
185 # Deleting OLT after test completes
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800186 #Run Keyword If ${has_dataplane} Delete All Devices and Verify
Suchitra Vemuri784e1ae2020-03-16 18:40:25 -0700187
Suchitra Vemuri05180cb2020-03-26 13:13:27 -0700188Verify restart openolt-adapter container after subscriber provisioning
Suchitra Vemuria7dae322020-02-19 22:38:18 -0800189 [Documentation] Restart openolt-adapter container after VOLTHA is operational.
190 ... Prerequisite : ONUs are authenticated and pingable.
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800191 [Tags] functional VOL-1958 Restart-OpenOlt released
Andy Baviere187eda2020-04-20 15:00:02 -0700192 [Setup] Start Logging Restart-OpenOlt
Suchitra Vemuria7dae322020-02-19 22:38:18 -0800193 [Teardown] Run Keywords Collect Logs
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800194 ... AND Stop Logging Restart-OpenOlt
Suchitra Vemuria7dae322020-02-19 22:38:18 -0800195 # Add OLT device
196 setup
197 # Performing Sanity Test to make sure subscribers are all AUTH+DHCP and pingable
198 Run Keyword If ${has_dataplane} Clean Up Linux
199 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
200 ${waitforRestart} Set Variable 120s
201 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
202 Log ${podStatusOutput}
203 ${countBforRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
Andrea Campanella3dcce272021-01-15 16:04:47 +0100204 ${podName} Set Variable ${OLT_ADAPTER_APP_LABEL}
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530205 Wait Until Keyword Succeeds ${timeout} 15s Delete K8s Pods By Label ${NAMESPACE} app ${podName}
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530206 Wait Until Keyword Succeeds ${timeout} 2s Validate Pods Status By Label ${NAMESPACE}
207 ... app ${podName} Running
Suchitra Vemuri312bfe02020-03-16 16:11:34 -0700208 # Wait for 1min after openolt adapter is restarted
Hardik Windlass5e214b22021-02-26 10:37:14 +0000209 # TBD: Need for this Sleep
Suchitra Vemuri312bfe02020-03-16 16:11:34 -0700210 Sleep 60s
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800211 Run Keyword If ${has_dataplane} Clean Up Linux
212 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
Suchitra Vemuria7dae322020-02-19 22:38:18 -0800213 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
214 Log ${podStatusOutput}
215 ${countAfterRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
216 Should Be Equal As Strings ${countAfterRestart} ${countBforRestart}
217 Log to console Pod ${podName} restarted and sanity checks passed successfully
Suchitra Vemuri60be98b2020-02-19 16:41:21 -0800218
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800219Check OLT/ONU Authentication After Radius Pod Restart
220 [Documentation] After radius restart, triggers reassociation, checks status and
221 ... authentication, validates dhcp and ping. Note : wpa reassociate works only when
222 ... wpa supplicant is running in background hence it is recommended to remove
223 ... teardown from previous test or uncomment 'Teardown None'.
224 ... Assuming that test1 was executed where all the ONUs are authenticated/DHCP/pingable
225 [Tags] functional RadiusRestart released
Andy Baviere187eda2020-04-20 15:00:02 -0700226 [Setup] Start Logging RadiusRestart
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800227 [Teardown] Run Keywords Collect Logs
228 ... AND Stop Logging RadiusRestart
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800229 ${waitforRestart} Set Variable 120s
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530230 ${podName} Set Variable radius
Matteo Scandolo10acf562021-05-03 15:35:16 -0700231 Wait Until Keyword Succeeds ${timeout} 15s Delete K8s Pods By Label ${INFRA_NAMESPACE} app ${podName}
232 Wait Until Keyword Succeeds ${waitforRestart} 2s Validate Pods Status By Label ${INFRA_NAMESPACE}
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530233 ... app ${podName} Running
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800234 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800235 ${src}= Set Variable ${hosts.src[${I}]}
236 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800237 ${of_id}= Get ofID From OLT List ${src['olt']}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800238 ${onu_device_id}= Get Device ID From SN ${src['onu']}
239 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s
240 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
241 Wait Until Keyword Succeeds ${timeout} 2s
ubuntu6b6e7d42020-03-02 12:35:42 -0800242 ... Verify Eapol Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800243 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
244 ... Validate Authentication After Reassociate True ${src['dp_iface_name']}
245 ... ${src['ip']} ${src['user']} ${src['pass']}
246 ... ${src['container_type']} ${src['container_name']}
ubuntu6b6e7d42020-03-02 12:35:42 -0800247 Wait Until Keyword Succeeds ${timeout} 2s Verify ONU in AAA-Users ${ONOS_SSH_IP}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800248 ... ${ONOS_SSH_PORT} ${onu_port}
249 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
250 ... Validate DHCP and Ping True True ${src['dp_iface_name']}
251 ... ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
252 ... ${src['ip']} ${src['user']} ${src['pass']}
253 ... ${src['container_type']} ${src['container_name']}
254 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']}
255 ... ${dst['pass']} ${dst['container_type']} ${dst['container_name']}
256 Wait Until Keyword Succeeds ${timeout} 2s Run Keyword And Continue On Failure
ubuntu6b6e7d42020-03-02 12:35:42 -0800257 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800258 END
259
Suchitra Vemuri05180cb2020-03-26 13:13:27 -0700260Verify openolt adapter restart before subscriber provisioning
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800261 [Documentation] Deploys an device instance and waits for it to authenticate. After
262 ... authentication is successful the rw-core deployment is scaled to 0 instances to
263 ... simulate a POD crash. The test then scales the rw-core back to a single instance
264 ... and configures ONOS for access. The test succeeds if the device is able to
265 ... complete the DHCP sequence.
Hung-Wei Chiud3576762020-03-25 18:06:26 -0700266 [Tags] functional olt-adapter-restart
Andy Baviere187eda2020-04-20 15:00:02 -0700267 [Setup] Start Logging OltAdapterRestart
Suchitra Vemuria0c086f2020-03-29 19:14:13 -0700268 #... AND Clear All Devices Then Create New Device
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800269 [Teardown] Run Keywords Collect Logs
270 ... AND Stop Logging OltAdapterRestart
Hung-Wei Chiud3576762020-03-25 18:06:26 -0700271 # Add OLT and perform sanity test
Suchitra Vemuri59ad2772020-03-26 22:27:27 -0700272 #setup
Suchitra Vemuri91537c82020-03-29 15:03:26 -0700273 Run Keyword If ${has_dataplane} Clean Up Linux
Suchitra Vemuri59ad2772020-03-26 22:27:27 -0700274 #Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800275 #Set Global Variable ${of_id}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800276
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800277 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800278 ${src}= Set Variable ${hosts.src[${I}]}
279 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800280 ${of_id}= Get ofID From OLT List ${src['olt']}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800281 ${onu_device_id}= Get Device ID From SN ${src['onu']}
282 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
283 ... ${of_id}
284
285 # Bring up the device and verify it authenticates
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700286 Wait Until Keyword Succeeds 360s 5s Validate Device ENABLED ACTIVE REACHABLE
Hardik Windlass8b446492021-06-10 06:25:23 +0000287 ... ${onu_device_id} onu=True onu_reason=omci-flows-pushed by_dev_id=True
ubuntu6b6e7d42020-03-02 12:35:42 -0800288 Wait Until Keyword Succeeds ${timeout} 2s Verify Eapol Flows Added For ONU ${ONOS_SSH_IP}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800289 ... ${ONOS_SSH_PORT} ${onu_port}
Andy Bavier84834d42020-02-25 13:49:50 -0700290 ${wpa_log}= Run Keyword If ${has_dataplane} Catenate SEPARATOR=.
291 ... /tmp/wpa ${src['dp_iface_name']} log
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800292 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate Authentication True
293 ... ${src['dp_iface_name']} wpa_supplicant.conf ${src['ip']} ${src['user']} ${src['pass']}
Andy Bavier84834d42020-02-25 13:49:50 -0700294 ... ${src['container_type']} ${src['container_name']} ${wpa_log}
ubuntu6b6e7d42020-03-02 12:35:42 -0800295 Wait Until Keyword Succeeds ${timeout} 2s Verify ONU in AAA-Users ${ONOS_SSH_IP}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800296 ... ${ONOS_SSH_PORT} ${onu_port}
297 END
298 # Scale down the open OLT adapter deployment to 0 PODs and once confirmed, scale it back to 1
Andrea Campanella3dcce272021-01-15 16:04:47 +0100299 Scale K8s Deployment by Pod Label ${NAMESPACE} app ${OLT_ADAPTER_APP_LABEL} 0
300 Wait Until Keyword Succeeds ${timeout} 2s Pods Do Not Exist By Label ${NAMESPACE} app
301 ... ${OLT_ADAPTER_APP_LABEL}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800302 # Scale up the open OLT adapter deployment and make sure both it and the ofagent deployment are back
Andrea Campanella3dcce272021-01-15 16:04:47 +0100303 Scale K8s Deployment by Pod Label ${NAMESPACE} app ${OLT_ADAPTER_APP_LABEL} 1
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800304 Wait Until Keyword Succeeds ${timeout} 2s
Andrea Campanella3dcce272021-01-15 16:04:47 +0100305 ... Check Expected Available Deployment Replicas By Pod Label ${NAMESPACE} app ${OLT_ADAPTER_APP_LABEL} 1
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800306
307 # Ensure the device is available in ONOS, this represents system connectivity being restored
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800308 FOR ${I} IN RANGE 0 ${olt_count}
309 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
310 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
311 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
312 ... ${olt_serial_number}
313 Wait Until Keyword Succeeds ${timeout} 2s Device Is Available In ONOS
314 ... http://karaf:karaf@${ONOS_REST_IP}:${ONOS_REST_PORT} ${of_id}
315 END
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800316
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800317 FOR ${I} IN RANGE 0 ${num_all_onus}
318 ${src}= Set Variable ${hosts.src[${I}]}
319 ${dst}= Set Variable ${hosts.dst[${I}]}
320 ${of_id}= Get ofID From OLT List ${src['olt']}
321 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
322 ... ${of_id}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800323 # Add subscriber access and verify that DHCP completes to ensure system is still functioning properly
ubuntu6b6e7d42020-03-02 12:35:42 -0800324 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800325 ... ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
Hardik Windlass21807632020-04-14 16:24:55 +0530326 # Verify subscriber access flows are added for the ONU port
327 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
328 ... Verify Subscriber Access Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
329 ... ${onu_port} ${nni_port} ${src['c_tag']} ${src['s_tag']}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800330 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
331 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
332 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
333 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
334 ... ${dst['container_name']}
335 Wait Until Keyword Succeeds ${timeout} 2s Run Keyword And Continue On Failure
ubuntu6b6e7d42020-03-02 12:35:42 -0800336 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800337 END
338
hwchiu14c05102020-03-27 00:44:30 +0000339Verify restart ofagent container after subscriber is provisioned
Gayathri.Selvanb6a2b542020-01-24 07:24:23 +0000340 [Documentation] Restart ofagent container after VOLTHA is operational.
Gayathri.Selvanb6a2b542020-01-24 07:24:23 +0000341 ... Prerequisite : ONUs are authenticated and pingable.
Hardik Windlass7a846662020-03-19 20:42:59 +0530342 [Tags] functional VOL-2409 ofagentRestart
Andy Baviere187eda2020-04-20 15:00:02 -0700343 [Setup] Start Logging ofagentRestart
Andy Bavier4a8450e2020-02-04 08:58:37 -0700344 [Teardown] Run Keywords Collect Logs
Andy Bavierabeba262020-02-07 16:22:16 -0700345 ... AND Stop Logging ofagentRestart
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530346 ... AND Scale K8s Deployment ${NAMESPACE} voltha-voltha-ofagent 1
Suchitra Vemuriceb002a2020-03-25 13:36:21 -0700347 # set timeout value
Gayathri.Selvanb6a2b542020-01-24 07:24:23 +0000348 ${waitforRestart} Set Variable 120s
Andy Bavier4a8450e2020-02-04 08:58:37 -0700349 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
Gayathri.Selvanb6a2b542020-01-24 07:24:23 +0000350 Log ${podStatusOutput}
Andy Bavier4a8450e2020-02-04 08:58:37 -0700351 ${countBforRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530352 ${podName} Set Variable ofagent
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530353 Wait Until Keyword Succeeds ${timeout} 15s Delete K8s Pods By Label ${NAMESPACE} app ${podName}
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530354 Wait Until Keyword Succeeds ${timeout} 2s Validate Pods Status By Label ${NAMESPACE}
355 ... app ${podName} Running
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530356 # Performing Sanity Test to make sure subscribers are all AUTH+DHCP and pingable
357 Run Keyword If ${has_dataplane} Clean Up Linux
358 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
Andy Bavier4a8450e2020-02-04 08:58:37 -0700359 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
Gayathri.Selvanb6a2b542020-01-24 07:24:23 +0000360 Log ${podStatusOutput}
Andy Bavier4a8450e2020-02-04 08:58:37 -0700361 ${countAfterRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
Gayathri.Selvanb6a2b542020-01-24 07:24:23 +0000362 Should Be Equal As Strings ${countAfterRestart} ${countBforRestart}
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530363 # Scale Down the Of-Agent Deployment
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530364 Scale K8s Deployment ${NAMESPACE} voltha-voltha-ofagent 0
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530365 Sleep 30s
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800366 FOR ${I} IN RANGE 0 ${num_all_onus}
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530367 ${src}= Set Variable ${hosts.src[${I}]}
368 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800369 ${of_id}= Get ofID From OLT List ${src['olt']}
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530370 ${onu_device_id}= Get Device ID From SN ${src['onu']}
371 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
372 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
373 # Verify ONU state in voltha
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700374 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s Validate Device
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530375 ... ENABLED ACTIVE REACHABLE
376 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
377 # Check ONU port is Disabled in ONOS
378 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 120s 2s
Suchitra Vemuri760bdd32020-06-17 12:34:48 -0700379 ... Verify ONU Port Is Disabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${src['onu']}
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530380 # Verify EAPOL flows are present for the ONU port
381 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
382 ... Verify Eapol Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
383 # Verify ONU in AAA-Users
384 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
385 ... Verify ONU in AAA-Users ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
386 # Verify DHCP-Allocations
387 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
388 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Hardik Windlass21807632020-04-14 16:24:55 +0530389 # Verify subscriber access flows are added for the ONU port
390 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
391 ... Verify Subscriber Access Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
392 ... ${onu_port} ${nni_port} ${src['c_tag']} ${src['s_tag']}
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530393 # Verify Ping
394 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Check Ping True
395 ... ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']} ${src['ip']}
396 ... ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530397 END
398 # Scale Up the Of-Agent Deployment
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530399 Scale K8s Deployment ${NAMESPACE} voltha-voltha-ofagent 1
Hardik Windlass8f2aadc2020-03-16 20:16:39 +0530400 Wait Until Keyword Succeeds ${waitforRestart} 2s Validate Pod Status ofagent ${NAMESPACE}
401 ... Running
402 # Performing Sanity Test to make sure subscribers are all AUTH+DHCP and pingable
403 Run Keyword If ${has_dataplane} Clean Up Linux
404 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
405 Log to console Pod ${podName} restarted and sanity checks passed successfully
Gayathri.Selvanb6a2b542020-01-24 07:24:23 +0000406
Gayathri.Selvanc0b37022020-02-06 05:17:00 +0000407Check ONU adapter crash not forcing authentication again
408 [Documentation] After ONU adapter restart, checks wpa log for 'authentication started'
409 ... message count to make sure auth not started again and validates EAP status and ping.
410 ... Assuming that test1 or sanity was executed where all the ONUs are authenticated/DHCP/pingable
hwchiu14c05102020-03-27 00:44:30 +0000411 [Tags] functional ONUAdaptCrash
Andy Baviere187eda2020-04-20 15:00:02 -0700412 [Setup] Start Logging ONUAdaptCrash
Andy Bavierabeba262020-02-07 16:22:16 -0700413 [Teardown] Run Keywords Collect Logs
414 ... AND Stop Logging ONUAdaptCrash
hwchiu14c05102020-03-27 00:44:30 +0000415 # Wait for adapter to resync
Hardik Windlass5e214b22021-02-26 10:37:14 +0000416 # TBD: Need for this Sleep
hwchiu14c05102020-03-27 00:44:30 +0000417 Sleep 60s
418 # Restart the onu
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530419 ${podName} Set Variable adapter-open-onu
Hung-Wei Chiu2bee4d42020-04-24 11:31:50 -0700420 Wait Until Keyword Succeeds ${timeout} 15s Delete K8s Pods By Label ${NAMESPACE} app ${podName}
hwchiu14c05102020-03-27 00:44:30 +0000421 # Validate ONU Ports
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800422 FOR ${I} IN RANGE 0 ${num_all_onus}
Gayathri.Selvanc0b37022020-02-06 05:17:00 +0000423 ${src}= Set Variable ${hosts.src[${I}]}
424 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800425 ${of_id}= Get ofID From OLT List ${src['olt']}
Gayathri.Selvanc0b37022020-02-06 05:17:00 +0000426 ${onu_device_id}= Get Device ID From SN ${src['onu']}
427 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
428 ... ${of_id}
hwchiu14c05102020-03-27 00:44:30 +0000429 Run Keyword And Continue On Failure Verify ONU Port Is Enabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
Suchitra Vemuri760bdd32020-06-17 12:34:48 -0700430 ... ${src['onu']}
Gayathri.Selvanc0b37022020-02-06 05:17:00 +0000431 ${output}= Run Keyword If ${has_dataplane} Login And Run Command On Remote System
432 ... wpa_cli status | grep SUCCESS ${src['ip']} ${src['user']} ${src['pass']}
433 ... ${src['container_type']} ${src['container_name']}
434 Run Keyword If ${has_dataplane} Should Contain ${output} SUCCESS
Gayathri.Selvanc0b37022020-02-06 05:17:00 +0000435 END
Hung-Wei Chiu2bee4d42020-04-24 11:31:50 -0700436 Wait Until Keyword Succeeds ${timeout} 2s Validate Pods Status By Label ${NAMESPACE}
437 ... app ${podName} Running
hwchiu14c05102020-03-27 00:44:30 +0000438 # Wait for adapter to resync
Hardik Windlass5e214b22021-02-26 10:37:14 +0000439 # TBD: Need for this Sleep
hwchiu14c05102020-03-27 00:44:30 +0000440 Sleep 60s
Andy Bavier8da0e132020-04-13 10:25:16 -0700441 Run Keyword If ${has_dataplane} Clean Up Linux
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800442 # Validate OLTs are active in ONOS
443 FOR ${I} IN RANGE 0 ${olt_count}
444 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
445 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
446 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
447 ... ${olt_serial_number}
448 END
hwchiu14c05102020-03-27 00:44:30 +0000449 # Perform all steps in Sanity Test except the subscriber addition
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800450 FOR ${I} IN RANGE 0 ${num_all_onus}
hwchiu14c05102020-03-27 00:44:30 +0000451 ${src}= Set Variable ${hosts.src[${I}]}
452 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800453 ${of_id}= Get ofID From OLT List ${src['olt']}
hwchiu14c05102020-03-27 00:44:30 +0000454 ${onu_device_id}= Get Device ID From SN ${src['onu']}
455 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
456 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
457 # Check ONU port is Enabled in ONOS
458 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 120s 2s
Suchitra Vemuri760bdd32020-06-17 12:34:48 -0700459 ... Verify ONU Port Is Enabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${src['onu']}
hwchiu14c05102020-03-27 00:44:30 +0000460 # Verify EAPOL flows are added for the ONU port
461 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
462 ... Verify Eapol Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
463 # Verify ONU state in voltha
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700464 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s Validate Device
hwchiu14c05102020-03-27 00:44:30 +0000465 ... ENABLED ACTIVE REACHABLE
466 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
467 # Perform Authentication
468 ${wpa_log}= Run Keyword If ${has_dataplane} Catenate SEPARATOR=.
469 ... /tmp/wpa ${src['dp_iface_name']} log
470 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate Authentication True
471 ... ${src['dp_iface_name']} wpa_supplicant.conf ${src['ip']} ${src['user']} ${src['pass']}
472 ... ${src['container_type']} ${src['container_name']} ${wpa_log}
473 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
474 ... Verify ONU in AAA-Users ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
475 # Verify that no pending flows exist for the ONU port
476 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
477 ... Verify No Pending Flows For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Hardik Windlass21807632020-04-14 16:24:55 +0530478 # Verify subscriber access flows are added for the ONU port
479 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
480 ... Verify Subscriber Access Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
481 ... ${onu_port} ${nni_port} ${src['c_tag']} ${src['s_tag']}
hwchiu14c05102020-03-27 00:44:30 +0000482 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
483 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
484 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
485 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
486 ... ${dst['container_name']}
487 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
488 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
hwchiu14c05102020-03-27 00:44:30 +0000489 END
490
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700491Sanity E2E Test for OLT/ONU on POD With Core Fail and Restart
492 [Documentation] Deploys an device instance and waits for it to authenticate. After
493 ... authentication is successful the rw-core deployment is scaled to 0 instances to
494 ... simulate a POD crash. The test then scales the rw-core back to a single instance
495 ... and configures ONOS for access. The test succeeds if the device is able to
496 ... complete the DHCP sequence.
497 [Tags] functional rwcore-restart
Andy Baviere187eda2020-04-20 15:00:02 -0700498 [Setup] Run Keywords Start Logging RwCoreFailAndRestart
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700499 ... AND Clear All Devices Then Create New Device
500 [Teardown] Run Keywords Collect Logs
501 ... AND Stop Logging RwCoreFailAndRestart
Suchitra Vemuri5d3383f2020-04-03 11:02:26 -0700502 #... AND Delete Device and Verify
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700503 Run Keyword If ${has_dataplane} Clean Up Linux
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800504 FOR ${I} IN RANGE 0 ${olt_count}
505 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
506 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
507 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
508 ... ${olt_serial_number}
509 ${nni_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
510 ... Get NNI Port in ONOS ${of_id}
511 # Set Global Variable ${nni_port}
512 END
513 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700514 ${src}= Set Variable ${hosts.src[${I}]}
515 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800516 ${of_id}= Get ofID From OLT List ${src['olt']}
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700517 ${onu_device_id}= Get Device ID From SN ${src['onu']}
518 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
519 ... ${of_id}
520 # Bring up the device and verify it authenticates
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700521 Wait Until Keyword Succeeds 360s 5s Validate Device ENABLED ACTIVE REACHABLE
Hardik Windlass8b446492021-06-10 06:25:23 +0000522 ... ${onu_device_id} onu=True onu_reason=omci-flows-pushed by_dev_id=True
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700523 Wait Until Keyword Succeeds ${timeout} 2s Verify Eapol Flows Added For ONU ${ONOS_SSH_IP}
524 ... ${ONOS_SSH_PORT} ${onu_port}
525 ${wpa_log}= Run Keyword If ${has_dataplane} Catenate SEPARATOR=.
526 ... /tmp/wpa ${src['dp_iface_name']} log
527 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate Authentication True
528 ... ${src['dp_iface_name']} wpa_supplicant.conf ${src['ip']} ${src['user']} ${src['pass']}
529 ... ${src['container_type']} ${src['container_name']} ${wpa_log}
530 Wait Until Keyword Succeeds ${timeout} 2s Verify ONU in AAA-Users ${ONOS_SSH_IP}
531 ... ${ONOS_SSH_PORT} ${onu_port}
532 END
533
534 # Scale down the rw-core deployment to 0 PODs and once confirmed, scale it back to 1
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530535 Scale K8s Deployment voltha voltha-voltha-rw-core 0
536 Wait Until Keyword Succeeds ${timeout} 2s Pod Does Not Exist voltha voltha-voltha-rw-core
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700537 # Ensure the ofagent POD goes "not-ready" as expected
538 Wait Until keyword Succeeds ${timeout} 2s
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530539 ... Check Expected Available Deployment Replicas voltha voltha-voltha-ofagent 0
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700540 # Scale up the core deployment and make sure both it and the ofagent deployment are back
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530541 Scale K8s Deployment voltha voltha-voltha-rw-core 1
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700542 Wait Until Keyword Succeeds ${timeout} 2s
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530543 ... Check Expected Available Deployment Replicas voltha voltha-voltha-rw-core 1
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700544 Wait Until Keyword Succeeds ${timeout} 2s
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530545 ... Check Expected Available Deployment Replicas voltha voltha-voltha-ofagent 1
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700546 # For some reason scaling down and up the POD behind a service causes the port forward to stop working,
547 # so restart the port forwarding for the API service
David Bainbridge07321ff2020-06-12 13:55:42 -0700548 Restart VOLTHA Port Forward voltha-api
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700549 # Ensure that the ofagent pod is up and ready and the device is available in ONOS, this
550 # represents system connectivity being restored
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800551 FOR ${I} IN RANGE 0 ${olt_count}
552 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
553 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
554 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
555 ... ${olt_serial_number}
Girish Gowdrae4de3b32021-03-23 22:20:00 -0700556 Wait Until Keyword Succeeds 120s 2s Device Is Available In ONOS
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800557 ... http://karaf:karaf@${ONOS_REST_IP}:${ONOS_REST_PORT} ${of_id}
558 END
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700559
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800560 FOR ${I} IN RANGE 0 ${num_all_onus}
Andy Bavier52094622020-05-12 15:54:24 -0700561 ${src}= Set Variable ${hosts.src[${I}]}
562 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800563 ${of_id}= Get ofID From OLT List ${src['olt']}
Andy Bavier52094622020-05-12 15:54:24 -0700564 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
565 ... ${of_id}
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700566 # Add subscriber access and verify that DHCP completes to ensure system is still functioning properly
567 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
568 ... ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
Hardik Windlass21807632020-04-14 16:24:55 +0530569 # Verify subscriber access flows are added for the ONU port
570 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
571 ... Verify Subscriber Access Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
572 ... ${onu_port} ${nni_port} ${src['c_tag']} ${src['s_tag']}
Suchitra Vemuriebf65322020-04-03 10:09:41 -0700573 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
574 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
575 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
576 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
577 ... ${dst['container_name']}
578 Wait Until Keyword Succeeds ${timeout} 2s Run Keyword And Continue On Failure
579 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
580 END
581
Suchitra Vemuri19e942f2020-08-11 18:04:28 -0700582Verify OLT Soft Reboot
583 [Documentation] Test soft reboot of the OLT using voltctl command
584 [Tags] VOL-2745 OLTSoftReboot functional
585 [Setup] Start Logging OLTSoftReboot
586 [Teardown] Run Keywords Collect Logs
587 ... AND Stop Logging OLTSoftReboot
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800588 FOR ${I} IN RANGE 0 ${olt_count}
589 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
590 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
591 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s
592 ... Validate OLT Device ENABLED ACTIVE
593 ... REACHABLE ${olt_serial_number}
594 # Reboot the OLT using "voltctl device reboot" command
595 Reboot Device ${olt_device_id}
Andrea Campanella9d8d3a52021-06-17 12:18:23 +0200596 # Wait for the OLT to actually go down
597 Wait Until Keyword Succeeds 360s 5s Validate OLT Device ENABLED UNKNOWN UNREACHABLE
598 ... ${olt_serial_number}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800599 END
Suchitra Vemuri19e942f2020-08-11 18:04:28 -0700600 #Verify that ping fails
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800601 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemuri19e942f2020-08-11 18:04:28 -0700602 ${src}= Set Variable ${hosts.src[${I}]}
603 ${dst}= Set Variable ${hosts.dst[${I}]}
604 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
605 ... Wait Until Keyword Succeeds 60s 2s
606 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
607 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
608 END
Suchitra Vemuri19e942f2020-08-11 18:04:28 -0700609 # Check OLT states
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800610 FOR ${I} IN RANGE 0 ${olt_count}
611 ${olt_serial_number}= Get From Dictionary ${list_olts}[${I}] sn
612 ${olt_ssh_ip}= Get From Dictionary ${list_olts}[${I}] sship
613 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
614 # Wait for the OLT to come back up
615 Run Keyword If ${has_dataplane} Wait Until Keyword Succeeds 120s 10s
616 ... Check Remote System Reachability True ${olt_ssh_ip}
617 # Check OLT states
618 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s
619 ... Validate OLT Device ENABLED ACTIVE
620 ... REACHABLE ${olt_serial_number}
621 END
622 # Waiting extra time for the ONUs to come up
623 Sleep 60s
Suchitra Vemuri19e942f2020-08-11 18:04:28 -0700624 #Check after reboot that ONUs are active, authenticated/DHCP/pingable
625 Run Keyword If ${has_dataplane} Clean Up Linux
626 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
627
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700628Verify restart ofagent container before subscriber is provisioned
629 [Documentation] Restart ofagent container before subscriber is provisioned.
630 [Tags] functional VOL-2962 ofagentRestart2
631 [Setup] Start Logging ofagentRestart2
632 [Teardown] Run Keywords Collect Logs
Suchitra Vemuri8130be82020-09-15 16:47:58 -0700633 ... AND Stop Logging ofagentRestart2
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700634 ... AND Scale K8s Deployment ${NAMESPACE} voltha-voltha-ofagent 1
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800635 Delete All Devices And Verify
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700636 setup
637 Run Keyword If ${has_dataplane} Clean Up Linux
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800638 FOR ${I} IN RANGE 0 ${olt_count}
639 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
640 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
641 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
642 ... ${olt_serial_number}
643 Wait Until Keyword Succeeds ${timeout} 2s Device Is Available In ONOS
644 ... http://karaf:karaf@${ONOS_REST_IP}:${ONOS_REST_PORT} ${of_id}
645 END
646 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700647 ${src}= Set Variable ${hosts.src[${I}]}
648 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800649 ${of_id}= Get ofID From OLT List ${src['olt']}
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700650 ${onu_device_id}= Get Device ID From SN ${src['onu']}
651 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
652 ... ${of_id}
653 # Bring up the device and verify it authenticates
654 Wait Until Keyword Succeeds ${timeout} 5s Validate Device ENABLED ACTIVE REACHABLE
Hardik Windlass8b446492021-06-10 06:25:23 +0000655 ... ${onu_device_id} onu=True onu_reason=omci-flows-pushed by_dev_id=True
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700656 Wait Until Keyword Succeeds ${timeout} 2s Verify Eapol Flows Added For ONU ${ONOS_SSH_IP}
657 ... ${ONOS_SSH_PORT} ${onu_port}
658 ${wpa_log}= Run Keyword If ${has_dataplane} Catenate SEPARATOR=.
659 ... /tmp/wpa ${src['dp_iface_name']} log
660 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate Authentication True
661 ... ${src['dp_iface_name']} wpa_supplicant.conf ${src['ip']} ${src['user']} ${src['pass']}
662 ... ${src['container_type']} ${src['container_name']} ${wpa_log}
663 Wait Until Keyword Succeeds ${timeout} 2s Verify ONU in AAA-Users ${ONOS_SSH_IP}
664 ... ${ONOS_SSH_PORT} ${onu_port}
665 END
666 # Restart POD ofagent
667 ${waitforRestart} Set Variable 120s
668 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
669 Log ${podStatusOutput}
670 ${countBforRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
671 ${podName} Set Variable ofagent
672 Restart Pod ${NAMESPACE} ${podName}
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700673 Wait Until Keyword Succeeds ${waitforRestart} 2s Validate Pod Status ofagent ${NAMESPACE}
674 ... Running
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800675 FOR ${I} IN RANGE 0 ${num_all_onus}
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700676 # Add subscriber access and verify that DHCP completes to ensure system is still functioning properly
677 #Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
678 #... ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
679 ${src}= Set Variable ${hosts.src[${I}]}
680 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800681 ${of_id}= Get ofID From OLT List ${src['olt']}
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700682 ${onu_device_id}= Get Device ID From SN ${src['onu']}
683 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
684 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
685 # Add subscriber access and verify that DHCP completes to ensure system is still functioning properly
686 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
687 ... ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
688 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
689 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
690 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
691 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
692 ... ${dst['container_name']}
693 # Verify DHCP-Allocations
694 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
695 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Suchitra Vemuri10e737e2020-08-14 14:59:10 -0700696 END
697
Hardik Windlassc082c422021-03-16 15:44:10 +0000698Verify OLT Grpc Disconnection
699 [Documentation] Restarts OLT Grpc Server and verifies everything works as before without any system disruption.
700 [Tags] functional VOL-3904 restartGrpcServer bbsim
701 [Setup] Start Logging restartGrpcServer
702 [Teardown] Run Keywords Collect Logs
703 ... AND Stop Logging restartGrpcServer
704 Delete All Devices And Verify
705 Setup
706 Run Keyword If ${has_dataplane} Clean Up Linux
707 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
708 FOR ${J} IN RANGE 0 ${num_olts}
709 ${bbsim_rel}= Catenate SEPARATOR= bbsim ${J}
710 ${bbsim_pod}= Get Pod Name By Label ${NAMESPACE} release ${bbsim_rel}
711 Restart Grpc Server ${NAMESPACE} ${bbsim_pod} 5
712 END
713 # Repeat sanity test without subscriber changes
714 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test True
715 # Additional Verification
716 Wait Until Keyword Succeeds ${timeout} 2s Delete All Devices and Verify
717 Setup
718 Run Keyword If ${has_dataplane} Clean Up Linux
719 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
720
Hema123aff52020-05-26 15:41:47 +0530721Verify ONU Soft Reboot
722 [Documentation] Test soft reboot of the ONU using voltctl command
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800723 [Tags] VOL-1957 ONUSoftReboot functional notready
Hema123aff52020-05-26 15:41:47 +0530724 [Setup] Start Logging ONUSoftReboot
725 #... AND Setup
Andy Bavier4a8450e2020-02-04 08:58:37 -0700726 [Teardown] Run Keywords Collect Logs
Hema123aff52020-05-26 15:41:47 +0530727 ... AND Stop Logging ONUSoftReboot
728 #... AND Delete Device and Verify
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800729 FOR ${I} IN RANGE 0 ${num_all_onus}
Gayathri.Selvanf68ea4b2020-02-03 07:36:39 +0000730 ${src}= Set Variable ${hosts.src[${I}]}
731 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800732 ${of_id}= Get ofID From OLT List ${src['olt']}
Gayathri.Selvanf68ea4b2020-02-03 07:36:39 +0000733 ${onu_device_id}= Get Device ID From SN ${src['onu']}
Suchitra Vemuricd2f64f2020-02-18 18:30:27 -0800734 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
735 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
Hema123aff52020-05-26 15:41:47 +0530736 Reboot Device ${onu_device_id}
737 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
738 ... Wait Until Keyword Succeeds 60s 2s
739 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
740 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
741 # Remove Subscriber Access (To replicate ATT workflow)
742 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
743 ... ${ONOS_SSH_PORT} volt-remove-subscriber-access ${of_id} ${onu_port}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800744 Verify ping is succesful except for given device ${num_all_onus} ${onu_device_id}
Hema123aff52020-05-26 15:41:47 +0530745 Sleep 40s
Suchitra Vemuricd2f64f2020-02-18 18:30:27 -0800746 # Check ONU port is Enabled in ONOS
747 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 120s 2s
Suchitra Vemuri760bdd32020-06-17 12:34:48 -0700748 ... Verify ONU Port Is Enabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${src['onu']}
Suchitra Vemuricd2f64f2020-02-18 18:30:27 -0800749 # Verify EAPOL flows are added for the ONU port
750 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
ubuntu6b6e7d42020-03-02 12:35:42 -0800751 ... Verify Eapol Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Suchitra Vemuricd2f64f2020-02-18 18:30:27 -0800752 # Verify ONU state in voltha
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700753 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s Validate Device
Suchitra Vemuricd2f64f2020-02-18 18:30:27 -0800754 ... ENABLED ACTIVE REACHABLE
755 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
Hema123aff52020-05-26 15:41:47 +0530756 Run Keyword If ${has_dataplane} Clean Up Linux
757 # Perform Authentication
758 ${wpa_log}= Run Keyword If ${has_dataplane} Catenate SEPARATOR=.
759 ... /tmp/wpa ${src['dp_iface_name']} log
760 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate Authentication True
761 ... ${src['dp_iface_name']} wpa_supplicant.conf ${src['ip']} ${src['user']} ${src['pass']}
762 ... ${src['container_type']} ${src['container_name']} ${wpa_log}
763 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
764 ... Verify ONU in AAA-Users ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
765 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
766 ... Execute ONOS CLI Command ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
767 ... volt-add-subscriber-access ${of_id} ${onu_port}
768 # Verify that no pending flows exist for the ONU port
769 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
770 ... Verify No Pending Flows For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Hardik Windlass21807632020-04-14 16:24:55 +0530771 # Verify subscriber access flows are added for the ONU port
772 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
773 ... Verify Subscriber Access Flows Added For ONU ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
774 ... ${onu_port} ${nni_port} ${src['c_tag']} ${src['s_tag']}
Hema123aff52020-05-26 15:41:47 +0530775 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
776 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
Suchitra Vemuricd2f64f2020-02-18 18:30:27 -0800777 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hema123aff52020-05-26 15:41:47 +0530778 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
779 ... ${dst['container_name']}
780 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
781 ... Validate Subscriber DHCP Allocation ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Gayathri.Selvanf68ea4b2020-02-03 07:36:39 +0000782 END
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800783
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800784
785*** Keywords ***
786Setup Suite
787 [Documentation] Set up the test suite
788 Common Test Suite Setup
HungWei Chiu1408fb92020-03-03 19:43:30 -0500789 #power_switch.robot needs it to support different vendor's power switch
Hung-Wei Chiufcc6d8e2020-03-10 12:05:11 -0700790 ${switch_type}= Get Variable Value ${web_power_switch.type}
791 Run Keyword If "${switch_type}"!="" Set Global Variable ${powerswitch_type} ${switch_type}
Suchitra Vemurif7a033c2020-02-26 17:22:41 -0800792
793Clear All Devices Then Create New Device
794 [Documentation] Remove any devices from VOLTHA and ONOS
795 # Remove all devices from voltha and nos
796 Delete All Devices and Verify
797 # Execute normal test Setup Keyword
798 Setup