blob: 71ec642552774782b50e06abf93c1a8226132d86 [file] [log] [blame]
Gilles Depatiec68b3ad2018-08-21 16:29:03 -04001# 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
15*** Settings ***
16Library Process
Kailashf8ff51a2018-11-13 13:49:53 -080017Library OperatingSystem
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040018Library ../common/auto_test.py
19Library ../common/volthaMngr.py
Gilles Depatie84cb1e72018-10-26 12:41:33 -040020Library ../common/preprovisioning.py
Gilles Depatie1be639b2018-12-06 10:51:08 -050021Library ../common/discovery.py
Gilles Depatiea85fe812019-01-23 15:55:53 -050022Library ../common/authentication.py
Gilles Depatie2e683692019-02-22 16:06:52 -050023Library ../common/dhcp.py
Gilles Depatieed99efe2019-03-12 16:12:26 -040024Library ../common/unicast.py
Gilles Depatie84cb1e72018-10-26 12:41:33 -040025Library volthaMngr.VolthaMngr
Kailash32ce8e52018-11-13 13:03:36 -080026Library preprovisioning.Preprovisioning
Gilles Depatie1be639b2018-12-06 10:51:08 -050027Library discovery.Discovery
Gilles Depatiea85fe812019-01-23 15:55:53 -050028Library authentication.Authentication
Gilles Depatie2e683692019-02-22 16:06:52 -050029Library dhcp.DHCP
Gilles Depatieed99efe2019-03-12 16:12:26 -040030Library unicast.Unicast
Gilles Depatie9651e462018-11-21 15:58:33 -050031
Gilles Depatie1be639b2018-12-06 10:51:08 -050032Suite Setup Start Voltha
33Suite Teardown Stop Voltha
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040034
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040035*** Variables ***
Gilles Depatie2e683692019-02-22 16:06:52 -050036${LOG_DIR} /tmp/voltha_test_results
37${ROOT_DIR} ${EMPTY}
38${VOLTHA_DIR} ${EMPTY}
Gilles Depatie2e683692019-02-22 16:06:52 -050039${OLT_PORT_ID} 50060
Gilles Depatieea423712019-04-12 16:39:12 -040040${OLT_TYPE} ${EMPTY}
41${ONU_TYPE} ${EMPTY}
42${OLT_HOST_IP} ${EMPTY}
43${ONU_COUNT} ${EMPTY}
44${ADAPTER} ${EMPTY}
Gilles Depatie2e683692019-02-22 16:06:52 -050045${RETRY_TIMEOUT_60} 60s
46${RETRY_INTERVAL_2} 2s
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040047
48*** Test Cases ***
Gilles Depatie1be639b2018-12-06 10:51:08 -050049Olt Pre Provisioning
50 [Documentation] Olt Pre Provisioning
Gilles Depatie84cb1e72018-10-26 12:41:33 -040051 ... This test preprovisions a ponsim-OLT with given IP address and TCP port
52 ... and then enables both it and a number of ponsim-ONUs with predefined IP/port
53 ... information. It then verifies that all the physical and logical devices are ACTIVE
54 ... and REACHEABLE
Gilles Depatie0bf31352019-02-04 13:48:41 -050055 P Set Log Dirs ${LOG_DIR}
Gilles Depatieea423712019-04-12 16:39:12 -040056 P Configure ${OLT_HOST_IP} ${OLT_PORT_ID} ${OLT_TYPE} ${ONU_TYPE} ${ONU_COUNT}
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040057 Preprovision Olt
Gilles Depatie2e683692019-02-22 16:06:52 -050058 Wait Until Keyword Succeeds ${RETRY_TIMEOUT_60} ${RETRY_INTERVAL_2} Query Devices Before Enabling
Gilles Depatie9651e462018-11-21 15:58:33 -050059 Status Should Be Success After Preprovision Command
60 Check Olt Fields Before Enabling
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040061 Enable
Gilles Depatie2e683692019-02-22 16:06:52 -050062 Wait Until Keyword Succeeds ${RETRY_TIMEOUT_60} ${RETRY_INTERVAL_2} Query Devices After Enabling
Gilles Depatie9651e462018-11-21 15:58:33 -050063 Status Should Be Success After Enable Command
64 Check Olt Fields After Enabling
65 Check Onu Fields After Enabling
Gilles Depatieea423712019-04-12 16:39:12 -040066 Sleep 60
67
Gilles Depatie1be639b2018-12-06 10:51:08 -050068Olt Onu Discovery
69 [Documentation] Olt Onu Discovery
70 ... This test covers both Onu Discovery and yet to be developped Olt Discovery
Gilles Depatie2e683692019-02-22 16:06:52 -050071 ... It aims to verify the integrity of all port fields under each discrete device, including
72 ... Logical Device.
Gilles Depatie1be639b2018-12-06 10:51:08 -050073 ... It also insures that the peers fields contains device Id entries for the corresponding
74 ... Olt or Onu device. Functionality to support multiple ONU accomodated
75 ... The extent of the flow validation is limited to checking whether number of Flows is > 0
Gilles Depatie0bf31352019-02-04 13:48:41 -050076 D Set Log Dirs ${LOG_DIR}
Gilles Depatieea423712019-04-12 16:39:12 -040077 D Configure ${OLT_HOST_IP} ${OLT_TYPE} ${ONU_TYPE} ${ONU_COUNT}
Gilles Depatie1be639b2018-12-06 10:51:08 -050078 Olt Discovery
79 Onu Discovery
Kailasha4d45742019-02-11 14:46:43 -080080 Logical Device
Gilles Depatie82dd2022019-02-19 14:31:33 -050081 Logical Device Ports Should Exist
82 Logical Device Should Have At Least One Flow
Gilles Depatie1be639b2018-12-06 10:51:08 -050083 Olt Ports Should Be Enabled and Active
84 Onu Ports Should Be Enabled and Active
85 Olt Should Have At Least One Flow
86 Onu Should Have At Least One Flow
87
Gilles Depatiea85fe812019-01-23 15:55:53 -050088Radius Authentication
89 [Documentation] Radius Authentication
90 ... This test attempts to perform a Radius Authentication from the RG
91 ... It uses the wpa_supplicant app to authenticate using EAPOL.
92 ... We then verify the generated log file confirming all the authentication steps
Gilles Depatieea423712019-04-12 16:39:12 -040093 [Tags] ponsim
Gilles Depatie0bf31352019-02-04 13:48:41 -050094 A Set Log Dirs ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR}
Gilles Depatiea85fe812019-01-23 15:55:53 -050095 Discover Freeradius Pod Name
96 Discover Freeradius Ip Addr
97 Set Current Freeradius Ip In AAA Json
98 Alter AAA Application Configuration In Onos Using AAA Json
Gilles Depatie0bf31352019-02-04 13:48:41 -050099 Execute Authentication On RG
Gilles Depatiea85fe812019-01-23 15:55:53 -0500100 Verify Authentication Should Have Started
101 Verify Authentication Should Have Completed
102 Verify Authentication Should Have Disconnected
103 Verify Authentication Should Have Terminated
104
Gilles Depatie2e683692019-02-22 16:06:52 -0500105Dhcp IP Address Assignment on RG
106 [Documentation] DHCP assigned IP Address
107 ... A DHCP server is configured and Activated on Onos. We need to change
108 ... the Firewall rules so as to allow packets to flow between RG and OLT/ONU
109 ... We also must add a second DHCP flow rule in onos in the direction from NNI
110 ... by calling 'add subscriber access' on onos. We then deassign the default
111 ... IP address granted to RG upon instantiating the RG pod. Finally we invoke
112 ... 'dhclient' on RG to request a DHCP IP address.
Gilles Depatieea423712019-04-12 16:39:12 -0400113 [Tags] ponsim
Gilles Depatie2e683692019-02-22 16:06:52 -0500114 H Set Log Dirs ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR}
Gilles Depatie2e683692019-02-22 16:06:52 -0500115 Set Firewall Rules
116 Discover Authorized Users
117 Retrieve Authorized Users Device Id And Port Number
118 Add Subscriber Access
119 Should Now Have Two Dhcp Flows
120 Add Dhcp Server Configuration Data In Onos
121 Activate Dhcp Server In Onos
122 Wait Until Keyword Succeeds ${RETRY_TIMEOUT_60} ${RETRY_INTERVAL_2} Query For Default Ip On Rg
123 De Assign Default Ip On Rg
124 Wait Until Keyword Succeeds ${RETRY_TIMEOUT_60} ${RETRY_INTERVAL_2} Assign Dhcp Ip Addr To Rg
125 Wait Until Keyword Succeeds ${RETRY_TIMEOUT_60} ${RETRY_INTERVAL_2} Should Have Dhcp Assigned Ip
126
Gilles Depatieed99efe2019-03-12 16:12:26 -0400127Unicast flow setup ctag/stag assignment
128 [Documentation] Unicast ctag/stag assignment
129 ... We call Ping from RG to a non-existant IP address an we ignore the
130 ... Destination Host Unreachable message. We then invoke tcpdump on 'pon1'
131 ... network looking for ARP request from RG IP address. These packets should
132 ... be double tagged with different s and c Tags but matching tag configuration
133 ... in sadis entry.
Gilles Depatieea423712019-04-12 16:39:12 -0400134 [Tags] ponsim
Gilles Depatieed99efe2019-03-12 16:12:26 -0400135 U Set Log Dirs ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR}
Gilles Depatieea423712019-04-12 16:39:12 -0400136 U Configure ${ONU_TYPE} ${ONU_COUNT}
137 Read Sadis Entries From Sadis Json
138 Retrieve Onu Serial Numbers
139 Manage Onu Testing
Gilles Depatieed99efe2019-03-12 16:12:26 -0400140
Gilles Depatiec68b3ad2018-08-21 16:29:03 -0400141*** Keywords ***
142Start Voltha
143 [Documentation] Start Voltha infrastructure to run test(s). This includes starting all
Gilles Depatie84cb1e72018-10-26 12:41:33 -0400144 ... Kubernetes Pods and start collection of logs. PonsimV2 has now been
145 ... containerized and does not need to be managed separately
Gilles Depatieea423712019-04-12 16:39:12 -0400146 ... Initialize working DIRs as well as Adapter specific variables
Gilles Depatie0bf31352019-02-04 13:48:41 -0500147 ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR} Dir Init ${LOG_DIR}
Gilles Depatiea85fe812019-01-23 15:55:53 -0500148 Set Suite Variable ${ROOT_DIR}
149 Set Suite Variable ${VOLTHA_DIR}
150 Set Suite Variable ${LOG_DIR}
Gilles Depatie0bf31352019-02-04 13:48:41 -0500151 V Set Log Dirs ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR}
Gilles Depatieea423712019-04-12 16:39:12 -0400152 ${OLT_TYPE} ${ONU_TYPE} ${OLT_HOST_IP} ${ONU_COUNT} Adapter Init ${ADAPTER}
153 Set Suite Variable ${OLT_TYPE}
154 Set Suite Variable ${ONU_TYPE}
155 Set Suite Variable ${OLT_HOST_IP}
156 Set Suite Variable ${ONU_COUNT}
Gilles Depatiec68b3ad2018-08-21 16:29:03 -0400157 Stop Voltha
Gilles Depatieea423712019-04-12 16:39:12 -0400158 Start All Pods ${ADAPTER}
Kailash2da848e2018-11-13 10:58:53 -0800159 Sleep 60
Gilles Depatieea423712019-04-12 16:39:12 -0400160 ${pod_status} Run kubectl get pods --all-namespaces
161 Log To Console \n${pod_status}\n
Gilles Depatie0bf31352019-02-04 13:48:41 -0500162 Alter Onos Net Cfg
Gilles Depatiec68b3ad2018-08-21 16:29:03 -0400163
Gilles Depatiec68b3ad2018-08-21 16:29:03 -0400164Stop Voltha
Gilles Depatie0bf31352019-02-04 13:48:41 -0500165 [Documentation] Stop Voltha infrastructure. This includes clearing all installation milestones
Kailash32ce8e52018-11-13 13:03:36 -0800166 ... files and stopping all Kubernetes pods
Kailash8ae83ac2019-02-11 12:23:52 -0800167 Collect Pod Logs
Gilles Depatieea423712019-04-12 16:39:12 -0400168 Stop All Pods ${ADAPTER}
169 Reset Kube Adm ${ADAPTER}