blob: 42345e5f082b9d9ab77f56993c5361e922ae7544 [file] [log] [blame]
Hardik Windlassa3d04b92020-02-17 15:06:05 +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.
14# FIXME Can we use the same test against BBSim and Hardware?
15
16*** Settings ***
17Documentation Test various end-to-end scenarios
18Suite Setup Setup Suite
19Test Setup Setup
20Test Teardown Teardown
21Suite Teardown Teardown Suite
22Library Collections
23Library String
24Library OperatingSystem
25Library XML
26Library RequestsLibrary
27Library ../../libraries/DependencyLibrary.py
28Resource ../../libraries/onos.robot
29Resource ../../libraries/voltctl.robot
30Resource ../../libraries/voltha.robot
31Resource ../../libraries/utils.robot
32Resource ../../libraries/k8s.robot
33Resource ../../variables/variables.robot
34
35*** Variables ***
36${POD_NAME} flex-ocp-cord
37${KUBERNETES_CONF} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
38${KUBERNETES_CONFIGS_DIR} ~/pod-configs/kubernetes-configs
39#${KUBERNETES_CONFIGS_DIR} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
40${KUBERNETES_YAML} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.yml
41${HELM_CHARTS_DIR} ~/helm-charts
42${VOLTHA_POD_NUM} 8
43${NAMESPACE} voltha
44# For below variable value, using deployment name as using grep for
45# parsing radius pod name, we can also use full radius pod name
46${RESTART_POD_NAME} radius
47${timeout} 60s
48${of_id} 0
49${logical_id} 0
50${has_dataplane} True
Hardik Windlassffbf0602020-04-24 23:14:45 +053051${teardown_device} True
Hardik Windlassa3d04b92020-02-17 15:06:05 +000052${scripts} ../../scripts
53
54# Per-test logging on failure is turned off by default; set this variable to enable
55${container_log_dir} ${None}
56
57*** Test Cases ***
58Sanity E2E Test for OLT/ONU on POD for DT
59 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
60 ... Validate successful DHCP/E2E ping (no EAPOL and DHCP flows) for the tech profile that is used
61 ... Traffic sent with same vlan from different RGs,
62 ... should reach the NNI port on the OLT with the expected double tagged vlan ids
63 ... Inner vlans from the RG should not change
Suchitra Vemurif2388ad2020-03-15 21:44:44 -070064 [Tags] sanityDt
Andy Baviere187eda2020-04-20 15:00:02 -070065 [Setup] Run Keywords Start Logging SanityTestDt
Hardik Windlassa3d04b92020-02-17 15:06:05 +000066 ... AND Setup
67 [Teardown] Run Keywords Collect Logs
68 ... AND Stop Logging SanityTestDt
Hardik Windlassa3d04b92020-02-17 15:06:05 +000069 Run Keyword If ${has_dataplane} Clean Up Linux
70 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
71
Hardik Windlass35706ba2020-02-20 08:16:42 +000072Test Subscriber Delete and Add for DT
73 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
Hardik Windlass63d5e002020-03-06 21:07:09 +053074 ... Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
Hardik Windlass35706ba2020-02-20 08:16:42 +000075 ... Delete a subscriber and validate that the pings do not succeed and state is purged
76 ... Disable and Enable the ONU (This is to replicate the existing DT behaviour)
77 ... Re-add the subscriber, and validate that the flows are present and pings are successful
Suchitra Vemurif2388ad2020-03-15 21:44:44 -070078 [Tags] functionalDt SubAddDeleteDt
Andy Baviere187eda2020-04-20 15:00:02 -070079 [Setup] Start Logging SubAddDeleteDt
Hardik Windlass35706ba2020-02-20 08:16:42 +000080 [Teardown] Run Keywords Collect Logs
81 ... AND Stop Logging SubAddDeleteDt
Hardik Windlass35706ba2020-02-20 08:16:42 +000082 FOR ${I} IN RANGE 0 ${num_onus}
83 ${src}= Set Variable ${hosts.src[${I}]}
84 ${dst}= Set Variable ${hosts.dst[${I}]}
85 ${onu_device_id}= Get Device ID From SN ${src['onu']}
86 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
87 ... ${of_id}
88 # Remove Subscriber Access
ubuntu6b6e7d42020-03-02 12:35:42 -080089 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
Hardik Windlass35706ba2020-02-20 08:16:42 +000090 ... ${ONOS_SSH_PORT} volt-remove-subscriber-access ${of_id} ${onu_port}
91 Sleep 10s
Hardik Windlassfb5eace2020-03-26 14:49:01 +053092 # TODO: Yet to Verify on the GPON based Physical POD (VOL-2652)
Hardik Windlass35706ba2020-02-20 08:16:42 +000093 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
94 ... Wait Until Keyword Succeeds 60s 2s
95 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
96 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hardik Windlassfb5eace2020-03-26 14:49:01 +053097 # Number of Access Flows on ONOS equals 4 * the Number of Active ONUs (2 for each downstream and upstream)
98 ${onos_flows_count}= Evaluate 4 * ( ${num_onus} - 1 )
99 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
100 ... Verify Subscriber Access Flows Added Count DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
Hardik Windlass25e11702020-03-30 20:05:19 +0530101 ... ${of_id} ${onos_flows_count}
Hardik Windlass35706ba2020-02-20 08:16:42 +0000102 # Verify VOLTHA flows for OLT equals twice the number of ONUS (minus ONU under test) + 1 for LLDP
103 ${olt_flows}= Evaluate 2 * ( ${num_onus} - 1 ) + 1
104 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Flows ${olt_flows}
105 # Verify VOLTHA flows for ONU under test is Zero
106 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate Device Flows
107 ... ${onu_device_id} 0
108 # Disable and Re-Enable the ONU (To replicate DT current workflow)
109 # TODO: Delete and Auto-Discovery Add of ONU (not yet supported)
110 Disable Device ${onu_device_id}
111 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
112 ... Validate Device DISABLED UNKNOWN
113 ... REACHABLE ${src['onu']}
114 Enable Device ${onu_device_id}
115 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
116 ... Validate Device ENABLED ACTIVE
117 ... REACHABLE ${src['onu']}
118 # Add Subscriber Access
ubuntu6b6e7d42020-03-02 12:35:42 -0800119 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command ${ONOS_SSH_IP}
Hardik Windlass35706ba2020-02-20 08:16:42 +0000120 ... ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
121 Sleep 10s
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530122 # Verify subscriber access flows are added for the ONU port
123 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
Hardik Windlass25e11702020-03-30 20:05:19 +0530124 ... Verify Subscriber Access Flows Added For ONU DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
125 ... ${onu_port} ${nni_port} ${src['s_tag']}
Hardik Windlass35706ba2020-02-20 08:16:42 +0000126 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
127 ... Validate Device ENABLED ACTIVE
128 ... REACHABLE ${src['onu']} onu=True onu_reason=omci-flows-pushed
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530129 # TODO: Yet to Verify on the GPON based Physical POD (VOL-2652)
Hardik Windlass35706ba2020-02-20 08:16:42 +0000130 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
131 ... Wait Until Keyword Succeeds 60s 2s
132 ... Check Ping True ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
133 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
134 Run Keyword and Ignore Error Get Device Output from Voltha ${onu_device_id}
135 Run Keyword and Ignore Error Collect Logs
136 END
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530137 # Verify ONOS Flows
138 # Number of Access Flows on ONOS equals 4 * the Number of Active ONUs (2 for each downstream and upstream)
139 ${onos_flows_count}= Evaluate 4 * ${num_onus}
140 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
Hardik Windlass25e11702020-03-30 20:05:19 +0530141 ... Verify Subscriber Access Flows Added Count DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
142 ... ${of_id} ${onos_flows_count}
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530143 # Verify VOLTHA Flows
Hardik Windlass35706ba2020-02-20 08:16:42 +0000144 # Number of per OLT Flows equals Twice the Number of Active ONUs (each for downstream and upstream) + 1 for LLDP
145 ${olt_flows}= Evaluate 2 * ${num_onus} + 1
146 # Number of per ONU Flows equals 2 (one each for downstream and upstream)
147 ${onu_flows}= Set Variable 2
148 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Flows ${olt_flows}
149 ${List_ONU_Serial} Create List
150 Set Suite Variable ${List_ONU_Serial}
151 Build ONU SN List ${List_ONU_Serial}
152 Log ${List_ONU_Serial}
153 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate ONU Flows
154 ... ${List_ONU_Serial} ${onu_flows}
155
Hardik Windlass63d5e002020-03-06 21:07:09 +0530156Test Disable and Enable ONU for DT
157 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
158 ... Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
159 ... Perform disable on the ONUs and validate that the pings do not succeed
160 ... Perform enable on the ONUs and validate that the pings are successful
Suchitra Vemurif2388ad2020-03-15 21:44:44 -0700161 [Tags] functionalDt DisableEnableONUDt
Andy Baviere187eda2020-04-20 15:00:02 -0700162 [Setup] Start Logging DisableEnableONUDt
Hardik Windlass63d5e002020-03-06 21:07:09 +0530163 [Teardown] Run Keywords Collect Logs
164 ... AND Stop Logging DisableEnableONUDt
Hardik Windlass63d5e002020-03-06 21:07:09 +0530165 FOR ${I} IN RANGE 0 ${num_onus}
166 ${src}= Set Variable ${hosts.src[${I}]}
167 ${dst}= Set Variable ${hosts.dst[${I}]}
168 ${onu_device_id}= Get Device ID From SN ${src['onu']}
169 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
170 ... ${of_id}
171 Disable Device ${onu_device_id}
172 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
173 ... Validate Device DISABLED UNKNOWN
174 ... REACHABLE ${src['onu']} onu=True onu_reason=omci-admin-lock
175 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
176 ... Verify ONU Port Is Disabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530177 # TODO: Yet to Verify on the GPON based Physical POD (VOL-2652)
Hardik Windlass63d5e002020-03-06 21:07:09 +0530178 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
179 ... Wait Until Keyword Succeeds 60s 2s
180 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
181 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
182 Sleep 5s
183 Enable Device ${onu_device_id}
184 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
185 ... Validate Device ENABLED ACTIVE
186 ... REACHABLE ${src['onu']} onu=True onu_reason=onu-reenabled
187 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
188 ... Verify ONU Port Is Enabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${onu_port}
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530189 # TODO: Yet to Verify on the GPON based Physical POD (VOL-2652)
Hardik Windlass63d5e002020-03-06 21:07:09 +0530190 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
191 ... Wait Until Keyword Succeeds 60s 2s
192 ... Check Ping True ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
193 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
194 Run Keyword and Ignore Error Get Device Output from Voltha ${onu_device_id}
195 Run Keyword and Ignore Error Collect Logs
196 END
197
Hardik Windlassaaea3402020-03-10 19:45:45 +0530198Test Disable and Delete OLT for DT
199 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
200 ... Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
201 ... Perform disable on the OLT and validate ONUs state and that the pings do not succeed
202 ... Perform delete on the OLT, Re-do Setup (Recreate the OLT) and Perform Sanity Test DT
Suchitra Vemurif2388ad2020-03-15 21:44:44 -0700203 [Tags] functionalDt DisableDeleteOLTDt
Andy Baviere187eda2020-04-20 15:00:02 -0700204 [Setup] Start Logging DisableDeleteOLTDt
Hardik Windlassaaea3402020-03-10 19:45:45 +0530205 [Teardown] Run Keywords Collect Logs
206 ... AND Stop Logging DisableDeleteOLTDt
Hardik Windlassaaea3402020-03-10 19:45:45 +0530207 # Disable and Validate OLT Device
208 Disable Device ${olt_device_id}
209 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
210 ... Validate OLT Device DISABLED UNKNOWN REACHABLE
211 ... ${olt_serial_number}
212 # Validate ONUs
213 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate ONUs After OLT Disable
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530214 # Verify ONOS Flows
215 # Number of Access Flows on ONOS equals 4 * the Number of Active ONUs (2 for each downstream and upstream)
216 ${onos_flows_count}= Evaluate 4 * ${num_onus}
217 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
Hardik Windlass25e11702020-03-30 20:05:19 +0530218 ... Verify Subscriber Access Flows Added Count DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
219 ... ${of_id} ${onos_flows_count}
Hardik Windlassfb5eace2020-03-26 14:49:01 +0530220 # Verify VOLTHA Flows
Hardik Windlassaaea3402020-03-10 19:45:45 +0530221 # Number of per OLT Flows equals Twice the Number of Active ONUs (each for downstream and upstream) + 1 for LLDP
222 ${olt_flows}= Evaluate 2 * ${num_onus} + 1
223 # Number of per ONU Flows equals 2 (one each for downstream and upstream)
224 ${onu_flows}= Set Variable 2
225 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Flows ${olt_flows}
226 ${List_ONU_Serial} Create List
227 Set Suite Variable ${List_ONU_Serial}
228 Build ONU SN List ${List_ONU_Serial}
229 Log ${List_ONU_Serial}
230 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate ONU Flows
231 ... ${List_ONU_Serial} ${onu_flows}
232 # Delete OLT and Validate Empty Device List
233 Delete Device ${olt_device_id}
234 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s Test Empty Device List
Hardik Windlass480f3e22020-04-02 20:14:14 +0530235 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
236 ... Verify Device Flows Removed ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
Hardik Windlassaaea3402020-03-10 19:45:45 +0530237 Run Keyword and Ignore Error Collect Logs
238 # Re-do Setup (Recreate the OLT) and Perform Sanity Test DT
239 Run Keyword Setup
240 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
Suchitra Vemuriae9cecb2020-03-12 12:59:14 -0700241 Run Keyword If ${has_dataplane} Clean Up Linux
Hardik Windlassaaea3402020-03-10 19:45:45 +0530242
Hardik Windlass3b531fa2020-04-23 18:51:44 +0530243Test Disable and Enable OLT for DT
244 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
245 ... Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
246 ... Perform disable on the OLT and validate that the pings do not succeed
247 ... Perform enable on the OLT and validate that the pings are successful
Andrea Campanella3e2f1a02020-04-30 20:23:18 +0200248 [Tags] functionalDt DisableEnableOLTDt notready
Hardik Windlass3b531fa2020-04-23 18:51:44 +0530249 [Setup] Start Logging DisableEnableOLTDt
250 [Teardown] Run Keywords Collect Logs
251 ... AND Stop Logging DisableEnableOLTDt
252 # Disable and Validate OLT Device
253 Disable Device ${olt_device_id}
254 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
255 ... Validate OLT Device DISABLED UNKNOWN REACHABLE
256 ... ${olt_serial_number}
257 # Validate ONUs
258 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate ONUs After OLT Disable
259 # Verify ONOS Flows
260 # Number of Access Flows on ONOS equals 4 * the Number of Active ONUs (2 for each downstream and upstream)
261 ${onos_flows_count}= Evaluate 4 * ${num_onus}
262 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
263 ... Verify Subscriber Access Flows Added Count DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
264 ... ${of_id} ${onos_flows_count}
265 # Verify VOLTHA Flows
266 # Number of per OLT Flows equals Twice the Number of Active ONUs (each for downstream and upstream) + 1 for LLDP
267 ${olt_flows}= Evaluate 2 * ${num_onus} + 1
268 # Number of per ONU Flows equals 2 (one each for downstream and upstream)
269 ${onu_flows}= Set Variable 2
270 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Flows ${olt_flows}
271 ${List_ONU_Serial} Create List
272 Set Suite Variable ${List_ONU_Serial}
273 Build ONU SN List ${List_ONU_Serial}
274 Log ${List_ONU_Serial}
275 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate ONU Flows
276 ... ${List_ONU_Serial} ${onu_flows}
277 # Enable the OLT back and check ONU, OLT status are back to "ACTIVE"
278 Enable Device ${olt_device_id}
279 Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Device ENABLED ACTIVE REACHABLE
280 ... ${olt_serial_number}
281 Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Port Types
282 ... PON_OLT ETHERNET_NNI
283 FOR ${I} IN RANGE 0 ${num_onus}
284 ${src}= Set Variable ${hosts.src[${I}]}
285 ${dst}= Set Variable ${hosts.dst[${I}]}
286 ${onu_device_id}= Get Device ID From SN ${src['onu']}
287 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
288 ... ${of_id}
Hardik Windlass3b531fa2020-04-23 18:51:44 +0530289 Wait Until Keyword Succeeds ${timeout} 10s Validate Device ENABLED ACTIVE
Hardik Windlassd03b62a2020-04-27 17:31:16 +0530290 ... REACHABLE ${src['onu']} onu=True onu_reason=discovery-mibsync-complete
Hardik Windlass3b531fa2020-04-23 18:51:44 +0530291 # Verify that ping works fine again
292 Run Keyword If ${has_dataplane}
293 ... Run Keyword And Continue On Failure Wait Until Keyword Succeeds 60s 2s
294 ... Check Ping True ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
295 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}}
296 Run Keyword and Ignore Error Collect Logs
297 END
298 # Verify ONOS Flows
299 # Number of Access Flows on ONOS equals 4 * the Number of Active ONUs (2 for each downstream and upstream)
300 ${onos_flows_count}= Evaluate 4 * ${num_onus}
301 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
302 ... Verify Subscriber Access Flows Added Count DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
303 ... ${onos_flows_count}
304 # Verify VOLTHA Flows
305 # Number of per OLT Flows equals Twice the Number of Active ONUs (each for downstream and upstream) + 1 for LLDP
306 ${olt_flows}= Evaluate 2 * ${num_onus} + 1
307 # Number of per ONU Flows equals 2 (one each for downstream and upstream)
308 ${onu_flows}= Set Variable 2
309 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Flows ${olt_flows}
310 ${List_ONU_Serial} Create List
311 Set Suite Variable ${List_ONU_Serial}
312 Build ONU SN List ${List_ONU_Serial}
313 Log ${List_ONU_Serial}
314 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate ONU Flows
315 ... ${List_ONU_Serial} ${onu_flows}
316
317Test Delete and ReAdd OLT for DT
318 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
319 ... Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
320 ... Disable and Delete the OLT
321 ... Create/Enable the same OLT again
322 ... Validate DHCP/E2E pings succeed for all the ONUs connected to the OLT
323 [Tags] functionalDt DeleteReAddOLTDt
324 [Setup] Start Logging DeleteReAddOLTDt
325 [Teardown] Run Keywords Collect Logs
326 ... AND Stop Logging DeleteReAddOLTDt
327 Run Keyword If ${has_dataplane} Clean Up Linux
328 Delete Device and Verify
329 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
330 ... Verify Device Flows Removed ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
331 Run Keyword and Ignore Error Collect Logs
332 # Recreate the OLT
333 Setup
334 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
335
336Test Disable ONUs and OLT Then Delete ONUs and OLT for DT
337 [Documentation] On deployed POD, disable the ONU, disable the OLT and then delete ONU and OLT.
338 ... This TC is to confirm that ONU removal is not impacting OLT
339 ... Devices will be removed during the execution of this TC
340 ... so calling setup at the end to add the devices back to avoid the confusion.
341 [Tags] functionalDt DisableDeleteONUOLTDt
342 [Setup] Start Logging DisableDeleteONUOLTDt
343 [Teardown] Run Keywords Collect Logs
344 ... AND Stop Logging DisableDeleteONUOLTDt
345 ${olt_device_id}= Get Device ID From SN ${olt_serial_number}
346 FOR ${I} IN RANGE 0 ${num_onus}
347 ${src}= Set Variable ${hosts.src[${I}]}
348 ${dst}= Set Variable ${hosts.dst[${I}]}
349 ${onu_device_id}= Get Device ID From SN ${src['onu']}
350 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
351 ... Validate Device ENABLED ACTIVE
352 ... REACHABLE ${src['onu']} onu=True onu_reason=omci-flows-pushed
353 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
354 ... Validate OLT Device ENABLED ACTIVE
355 ... REACHABLE ${olt_serial_number}
356 Disable Device ${onu_device_id}
357 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
358 ... Validate Device DISABLED UNKNOWN
359 ... REACHABLE ${src['onu']} onu=false
360 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
361 ... Validate OLT Device ENABLED ACTIVE
362 ... REACHABLE ${olt_serial_number}
363 END
364 Disable Device ${olt_device_id}
365 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
366 ... Validate OLT Device DISABLED UNKNOWN REACHABLE
367 ... ${olt_serial_number}
368 FOR ${I} IN RANGE 0 ${num_onus}
369 ${src}= Set Variable ${hosts.src[${I}]}
370 ${dst}= Set Variable ${hosts.dst[${I}]}
371 ${onu_device_id}= Get Device ID From SN ${src['onu']}
372 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
373 ... Validate Device DISABLED DISCOVERED
374 ... UNREACHABLE ${src['onu']} onu=false
375 Delete Device ${onu_device_id}
376 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
377 ... Validate OLT Device DISABLED UNKNOWN
378 ... REACHABLE ${olt_serial_number}
379 END
380 Delete Device ${olt_device_id}
381 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s Test Empty Device List
382 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
383 ... Verify Device Flows Removed ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
384 # Re-do Setup (Recreate the OLT) and Perform Sanity Test DT
385 Run Keyword Setup
386 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
387 Run Keyword If ${has_dataplane} Clean Up Linux
388
Hardik Windlassa3d04b92020-02-17 15:06:05 +0000389*** Keywords ***
390Setup Suite
391 [Documentation] Set up the test suite
392 Common Test Suite Setup
393
394Clear All Devices Then Create New Device
395 [Documentation] Remove any devices from VOLTHA and ONOS
396 # Remove all devices from voltha and nos
397 Delete All Devices and Verify
398 # Execute normal test Setup Keyword
399 Setup
400