blob: 2db3d82eafcc8e39e4e40db25ef461ef6ada5089 [file] [log] [blame]
A R Karthicke237aee2016-12-01 17:46:43 -08001#
A R Karthick07608ef2016-08-23 16:51:19 -07002# Copyright 2016-present Ciena Corporation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
A R Karthicke237aee2016-12-01 17:46:43 -08007#
A R Karthick07608ef2016-08-23 16:51:19 -07008# http://www.apache.org/licenses/LICENSE-2.0
A R Karthicke237aee2016-12-01 17:46:43 -08009#
A R Karthick07608ef2016-08-23 16:51:19 -070010# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
A R Karthickb7e80902016-05-17 09:38:31 -070016import unittest
17from nose.tools import *
18from nose.twistedtools import reactor, deferred
19from twisted.internet import defer
20from scapy.all import *
21import time, monotonic
22import os, sys
23import tempfile
24import random
25import threading
26import json
A R Karthick65c4d722016-07-18 14:20:17 -070027import requests
A R Karthickb7e80902016-05-17 09:38:31 -070028from Stats import Stats
29from OnosCtrl import OnosCtrl
30from DHCP import DHCPTest
31from EapTLS import TLSAuthTest
32from Channels import Channels, IgmpChannel
33from subscriberDb import SubscriberDB
34from threadPool import ThreadPool
A.R Karthick95d044e2016-06-10 18:44:36 -070035from portmaps import g_subscriber_port_map
A R Karthickb7e80902016-05-17 09:38:31 -070036from OltConfig import *
A R Karthicka013a272016-08-16 16:40:19 -070037from CordTestServer import cord_test_onos_restart, cord_test_shell
A R Karthick9313b762016-11-07 13:14:35 -080038from CordLogger import CordLogger
A R Karthickb7e80902016-05-17 09:38:31 -070039
40log.setLevel('INFO')
41
42class Subscriber(Channels):
43 PORT_TX_DEFAULT = 2
44 PORT_RX_DEFAULT = 1
45 INTF_TX_DEFAULT = 'veth2'
46 INTF_RX_DEFAULT = 'veth0'
47 STATS_RX = 0
48 STATS_TX = 1
49 STATS_JOIN = 2
50 STATS_LEAVE = 3
51 SUBSCRIBER_SERVICES = 'DHCP IGMP TLS'
52 def __init__(self, name = 'sub', service = SUBSCRIBER_SERVICES, port_map = None,
53 num = 1, channel_start = 0,
54 tx_port = PORT_TX_DEFAULT, rx_port = PORT_RX_DEFAULT,
55 iface = INTF_RX_DEFAULT, iface_mcast = INTF_TX_DEFAULT,
56 mcast_cb = None, loginType = 'wireless'):
57 self.tx_port = tx_port
58 self.rx_port = rx_port
59 self.port_map = port_map or g_subscriber_port_map
60 try:
61 self.tx_intf = self.port_map[tx_port]
62 self.rx_intf = self.port_map[rx_port]
63 except:
64 self.tx_intf = self.port_map[self.PORT_TX_DEFAULT]
65 self.rx_intf = self.port_map[self.PORT_RX_DEFAULT]
66
A R Karthick338268f2016-06-21 17:12:13 -070067 log.info('Subscriber %s, rx interface %s, uplink interface %s' %(name, self.rx_intf, self.tx_intf))
A.R Karthick95d044e2016-06-10 18:44:36 -070068 Channels.__init__(self, num, channel_start = channel_start,
A R Karthickb7e80902016-05-17 09:38:31 -070069 iface = self.rx_intf, iface_mcast = self.tx_intf, mcast_cb = mcast_cb)
70 self.name = name
71 self.service = service
72 self.service_map = {}
73 services = self.service.strip().split(' ')
74 for s in services:
75 self.service_map[s] = True
76 self.loginType = loginType
77 ##start streaming channels
78 self.join_map = {}
79 ##accumulated join recv stats
80 self.join_rx_stats = Stats()
A R Karthick338268f2016-06-21 17:12:13 -070081 self.recv_timeout = False
A R Karthickb7e80902016-05-17 09:38:31 -070082
83 def has_service(self, service):
84 if self.service_map.has_key(service):
85 return self.service_map[service]
86 if self.service_map.has_key(service.upper()):
87 return self.service_map[service.upper()]
88 return False
89
90 def channel_join_update(self, chan, join_time):
91 self.join_map[chan] = ( Stats(), Stats(), Stats(), Stats() )
92 self.channel_update(chan, self.STATS_JOIN, 1, t = join_time)
93
94 def channel_join(self, chan = 0, delay = 2):
95 '''Join a channel and create a send/recv stats map'''
96 if self.join_map.has_key(chan):
97 del self.join_map[chan]
98 self.delay = delay
99 chan, join_time = self.join(chan)
100 self.channel_join_update(chan, join_time)
101 return chan
102
103 def channel_join_next(self, delay = 2):
104 '''Joins the next channel leaving the last channel'''
105 if self.last_chan:
106 if self.join_map.has_key(self.last_chan):
107 del self.join_map[self.last_chan]
108 self.delay = delay
109 chan, join_time = self.join_next()
110 self.channel_join_update(chan, join_time)
111 return chan
112
113 def channel_jump(self, delay = 2):
114 '''Jumps randomly to the next channel leaving the last channel'''
115 if self.last_chan is not None:
116 if self.join_map.has_key(self.last_chan):
117 del self.join_map[self.last_chan]
118 self.delay = delay
119 chan, join_time = self.jump()
120 self.channel_join_update(chan, join_time)
121 return chan
122
123 def channel_leave(self, chan = 0):
124 if self.join_map.has_key(chan):
125 del self.join_map[chan]
126 self.leave(chan)
127
128 def channel_update(self, chan, stats_type, packets, t=0):
129 if type(chan) == type(0):
130 chan_list = (chan,)
131 else:
132 chan_list = chan
A.R Karthick95d044e2016-06-10 18:44:36 -0700133 for c in chan_list:
A R Karthickb7e80902016-05-17 09:38:31 -0700134 if self.join_map.has_key(c):
135 self.join_map[c][stats_type].update(packets = packets, t = t)
136
A R Karthick338268f2016-06-21 17:12:13 -0700137 def channel_receive(self, chan, cb = None, count = 1, timeout = 5):
138 log.info('Subscriber %s on port %s receiving from group %s, channel %d' %
139 (self.name, self.rx_intf, self.gaddr(chan), chan))
140 r = self.recv(chan, cb = cb, count = count, timeout = timeout)
A R Karthicka013a272016-08-16 16:40:19 -0700141 if len(r) == 0:
142 log.info('Subscriber %s on port %s timed out' %(self.name, self.rx_intf))
143 else:
144 log.info('Subscriber %s on port %s received %d packets' %(self.name, self.rx_intf, len(r)))
A R Karthick338268f2016-06-21 17:12:13 -0700145 if self.recv_timeout:
146 ##Negative test case is disabled for now
147 assert_equal(len(r), 0)
A R Karthickb7e80902016-05-17 09:38:31 -0700148
149 def recv_channel_cb(self, pkt):
150 ##First verify that we have received the packet for the joined instance
A R Karthick338268f2016-06-21 17:12:13 -0700151 log.info('Packet received for group %s, subscriber %s, port %s' %
152 (pkt[IP].dst, self.name, self.rx_intf))
153 if self.recv_timeout:
154 return
A R Karthickb7e80902016-05-17 09:38:31 -0700155 chan = self.caddr(pkt[IP].dst)
156 assert_equal(chan in self.join_map.keys(), True)
157 recv_time = monotonic.monotonic() * 1000000
158 join_time = self.join_map[chan][self.STATS_JOIN].start
159 delta = recv_time - join_time
160 self.join_rx_stats.update(packets=1, t = delta, usecs = True)
161 self.channel_update(chan, self.STATS_RX, 1, t = delta)
162 log.debug('Packet received in %.3f usecs for group %s after join' %(delta, pkt[IP].dst))
163
164class subscriber_pool:
165
166 def __init__(self, subscriber, test_cbs):
167 self.subscriber = subscriber
168 self.test_cbs = test_cbs
169
170 def pool_cb(self):
171 for cb in self.test_cbs:
172 if cb:
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700173 self.test_status = cb(self.subscriber)
174 if self.test_status is not True:
175 ## This is chaning for other sub status has to check again
176 self.test_status = True
177 log.info('This service is failed and other services will not run for this subscriber')
178 break
A R Karthicka013a272016-08-16 16:40:19 -0700179 log.info('This Subscriber is tested for multiple service eligibility ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700180 self.test_status = True
181
A.R Karthick95d044e2016-06-10 18:44:36 -0700182
A R Karthick9313b762016-11-07 13:14:35 -0800183class subscriber_exchange(CordLogger):
A R Karthickb7e80902016-05-17 09:38:31 -0700184
A.R Karthick95d044e2016-06-10 18:44:36 -0700185 apps = ('org.opencord.aaa', 'org.onosproject.dhcp')
186 olt_apps = () #'org.opencord.cordmcast')
A R Karthicka013a272016-08-16 16:40:19 -0700187 vtn_app = 'org.opencord.vtn'
A R Karthickb7e80902016-05-17 09:38:31 -0700188 table_app = 'org.ciena.cordigmp'
189 dhcp_server_config = {
190 "ip": "10.1.11.50",
191 "mac": "ca:fe:ca:fe:ca:fe",
192 "subnet": "255.255.252.0",
193 "broadcast": "10.1.11.255",
194 "router": "10.1.8.1",
195 "domain": "8.8.8.8",
196 "ttl": "63",
197 "delay": "2",
198 "startip": "10.1.11.51",
199 "endip": "10.1.11.100"
200 }
201
202 aaa_loaded = False
203 test_path = os.path.dirname(os.path.realpath(__file__))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700204 table_app_file = os.path.join(test_path, '..', 'apps/ciena-cordigmp-multitable-2.0-SNAPSHOT.oar')
205 app_file = os.path.join(test_path, '..', 'apps/ciena-cordigmp-2.0-SNAPSHOT.oar')
A R Karthickb7e80902016-05-17 09:38:31 -0700206 onos_config_path = os.path.join(test_path, '..', 'setup/onos-config')
A R Karthickb03cecd2016-07-27 10:27:55 -0700207 olt_conf_file = os.path.join(test_path, '..', 'setup/olt_config.json')
A R Karthickb7e80902016-05-17 09:38:31 -0700208 cpqd_path = os.path.join(test_path, '..', 'setup')
209 ovs_path = cpqd_path
A R Karthick65c4d722016-07-18 14:20:17 -0700210 test_services = ('IGMP', 'TRAFFIC')
A R Karthick338268f2016-06-21 17:12:13 -0700211 num_joins = 0
212 num_subscribers = 0
213 num_channels = 0
214 recv_timeout = False
A R Karthick4e0c0912016-08-17 16:57:42 -0700215 onos_restartable = bool(int(os.getenv('ONOS_RESTART', 0)))
A R Karthickb7e80902016-05-17 09:38:31 -0700216
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700217 INTF_TX_DEFAULT = 'veth2'
218 INTF_RX_DEFAULT = 'veth0'
219 SUBSCRIBER_TIMEOUT = 300
220
221 CLIENT_CERT = """-----BEGIN CERTIFICATE-----
222MIICuDCCAiGgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
223CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
224IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
225RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwNjA2MjExMjI3WhcN
226MTcwNjAxMjExMjI3WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
227BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
228hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
229gYEAwvXiSzb9LZ6c7uNziUfKvoHO7wu/uiFC5YUpXbmVGuGZizbVrny0xnR85Dfe
230+9R4diansfDhIhzOUl1XjN3YDeSS9OeF5YWNNE8XDhlz2d3rVzaN6hIhdotBkUjg
231rUewjTg5OFR31QEyG3v8xR3CLgiE9xQELjZbSA07pD79zuUCAwEAAaNPME0wEwYD
232VR0lBAwwCgYIKwYBBQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5l
233eGFtcGxlLmNvbS9leGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOBgQDAjkrY
2346tDChmKbvr8w6Du/t8vHjTCoCIocHTN0qzWOeb1YsAGX89+TrWIuO1dFyYd+Z0KC
235PDKB5j/ygml9Na+AklSYAVJIjvlzXKZrOaPmhZqDufi+rXWti/utVqY4VMW2+HKC
236nXp37qWeuFLGyR1519Y1d6F/5XzqmvbwURuEug==
237-----END CERTIFICATE-----"""
238
239 CLIENT_CERT_INVALID = '''-----BEGIN CERTIFICATE-----
240MIIDvTCCAqWgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
241CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
242IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
243RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwMzExMTg1MzM2WhcN
244MTcwMzA2MTg1MzM2WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
245BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
246hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
247AQoCggEBAOxemcBsPn9tZsCa5o2JA6sQDC7A6JgCNXXl2VFzKLNNvB9PS6D7ZBsQ
2485An0zEDMNzi51q7lnrYg1XyiE4S8FzMGAFr94RlGMQJUbRD9V/oqszMX4k++iAOK
249tIA1gr3x7Zi+0tkjVSVzXTmgNnhChAamdMsjYUG5+CY9WAicXyy+VEV3zTphZZDR
250OjcjEp4m/TSXVPYPgYDXI40YZKX5BdvqykWtT/tIgZb48RS1NPyN/XkCYzl3bv21
251qx7Mc0fcEbsJBIIRYTUkfxnsilcnmLxSYO+p+DZ9uBLBzcQt+4Rd5pLSfi21WM39
2522Z2oOi3vs/OYAPAqgmi2JWOv3mePa/8CAwEAAaNPME0wEwYDVR0lBAwwCgYIKwYB
253BQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5leGFtcGxlLmNvbS9l
254eGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOCAQEALBzMPDTIB6sLyPl0T6JV
255MjOkyldAVhXWiQsTjaGQGJUUe1cmUJyZbUZEc13MygXMPOM4x7z6VpXGuq1c/Vxn
256VzQ2fNnbJcIAHi/7G8W5/SQfPesIVDsHTEc4ZspPi5jlS/MVX3HOC+BDbOjdbwqP
257RX0JEr+uOyhjO+lRxG8ilMRACoBUbw1eDuVDoEBgErSUC44pq5ioDw2xelc+Y6hQ
258dmtYwfY0DbvwxHtA495frLyPcastDiT/zre7NL51MyUDPjjYjghNQEwvu66IKbQ3
259T1tJBrgI7/WI+dqhKBFolKGKTDWIHsZXQvZ1snGu/FRYzg1l+R/jT8cRB9BDwhUt
260yg==
261-----END CERTIFICATE-----'''
262
A R Karthickb7e80902016-05-17 09:38:31 -0700263 @classmethod
A R Karthickd44cea12016-07-20 12:16:41 -0700264 def load_device_id(cls):
A R Karthickb03cecd2016-07-27 10:27:55 -0700265 '''Configure the device id'''
266 did = OnosCtrl.get_device_id()
A R Karthickd44cea12016-07-20 12:16:41 -0700267 #Set the default config
268 cls.device_id = did
269 cls.device_dict = { "devices" : {
270 "{}".format(did) : {
271 "basic" : {
272 "driver" : "pmc-olt"
273 }
274 }
275 },
276 }
277 return did
278
279 @classmethod
A R Karthickb7e80902016-05-17 09:38:31 -0700280 def setUpClass(cls):
281 '''Load the OLT config and activate relevant apps'''
A R Karthickd44cea12016-07-20 12:16:41 -0700282 did = cls.load_device_id()
A R Karthick4b72d4b2016-06-15 11:09:17 -0700283 network_cfg = { "devices" : {
A R Karthickd44cea12016-07-20 12:16:41 -0700284 "{}".format(did) : {
A R Karthick4b72d4b2016-06-15 11:09:17 -0700285 "basic" : {
286 "driver" : "pmc-olt"
287 }
288 }
289 },
290 }
A R Karthick4b72d4b2016-06-15 11:09:17 -0700291 ## Restart ONOS with cpqd driver config for OVS
292 cls.start_onos(network_cfg = network_cfg)
A R Karthickb7e80902016-05-17 09:38:31 -0700293 cls.install_app_table()
A R Karthickb7e80902016-05-17 09:38:31 -0700294 cls.olt = OltConfig(olt_conf_file = cls.olt_conf_file)
295 OnosCtrl.cord_olt_config(cls.olt.olt_device_data())
A R Karthickb03cecd2016-07-27 10:27:55 -0700296 cls.port_map, cls.port_list = cls.olt.olt_port_map()
A R Karthickb7e80902016-05-17 09:38:31 -0700297 cls.activate_apps(cls.apps + cls.olt_apps)
298
299 @classmethod
300 def tearDownClass(cls):
301 '''Deactivate the olt apps and restart OVS back'''
302 apps = cls.olt_apps + ( cls.table_app,)
303 for app in apps:
304 onos_ctrl = OnosCtrl(app)
305 onos_ctrl.deactivate()
A R Karthicke0f33fa2016-06-22 13:36:02 -0700306 cls.start_onos(network_cfg = {})
A R Karthicke5939f02016-11-16 12:08:07 -0800307 cls.install_app_igmp()
A R Karthickb7e80902016-05-17 09:38:31 -0700308
309 @classmethod
310 def activate_apps(cls, apps):
311 for app in apps:
312 onos_ctrl = OnosCtrl(app)
313 status, _ = onos_ctrl.activate()
314 assert_equal(status, True)
315 time.sleep(2)
316
317 @classmethod
318 def install_app_table(cls):
319 ##Uninstall the existing app if any
320 OnosCtrl.uninstall_app(cls.table_app)
321 time.sleep(2)
322 log.info('Installing the multi table app %s for subscriber test' %(cls.table_app_file))
323 OnosCtrl.install_app(cls.table_app_file)
324 time.sleep(3)
A R Karthickedab01c2016-09-08 14:05:44 -0700325 #onos_ctrl = OnosCtrl(cls.vtn_app)
326 #onos_ctrl.deactivate()
A R Karthickb7e80902016-05-17 09:38:31 -0700327
328 @classmethod
A R Karthicke5939f02016-11-16 12:08:07 -0800329 def install_app_igmp(cls):
A R Karthickb7e80902016-05-17 09:38:31 -0700330 ##Uninstall the table app on class exit
331 OnosCtrl.uninstall_app(cls.table_app)
332 time.sleep(2)
333 log.info('Installing back the cord igmp app %s for subscriber test on exit' %(cls.app_file))
334 OnosCtrl.install_app(cls.app_file)
A R Karthickedab01c2016-09-08 14:05:44 -0700335 #onos_ctrl = OnosCtrl(cls.vtn_app)
336 #onos_ctrl.activate()
A R Karthickb7e80902016-05-17 09:38:31 -0700337
338 @classmethod
339 def start_onos(cls, network_cfg = None):
A R Karthicka478df42016-07-27 16:51:08 -0700340 if cls.onos_restartable is False:
A R Karthick65c4d722016-07-18 14:20:17 -0700341 log.info('ONOS restart is disabled. Skipping ONOS restart')
342 return
A R Karthickb7e80902016-05-17 09:38:31 -0700343 if network_cfg is None:
A R Karthick4b72d4b2016-06-15 11:09:17 -0700344 network_cfg = cls.device_dict
A R Karthickb7e80902016-05-17 09:38:31 -0700345
346 if type(network_cfg) is tuple:
347 res = []
348 for v in network_cfg:
349 res += v.items()
350 config = dict(res)
351 else:
352 config = network_cfg
353 log.info('Restarting ONOS with new network configuration')
A R Karthick338268f2016-06-21 17:12:13 -0700354 return cord_test_onos_restart(config = config)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700355
356 @classmethod
357 def remove_onos_config(cls):
358 try:
359 os.unlink('{}/network-cfg.json'.format(cls.onos_config_path))
360 except: pass
A R Karthickb7e80902016-05-17 09:38:31 -0700361
362 @classmethod
363 def start_cpqd(cls, mac = '00:11:22:33:44:55'):
364 dpid = mac.replace(':', '')
365 cpqd_file = os.sep.join( (cls.cpqd_path, 'cpqd.sh') )
366 cpqd_cmd = '{} {}'.format(cpqd_file, dpid)
367 ret = os.system(cpqd_cmd)
368 assert_equal(ret, 0)
369 time.sleep(10)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700370 device_id = 'of:{}{}'.format('0'*4, dpid)
371 return device_id
A R Karthickb7e80902016-05-17 09:38:31 -0700372
373 @classmethod
374 def start_ovs(cls):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700375 ovs_file = os.sep.join( (cls.ovs_path, 'of-bridge.sh') )
A R Karthickb7e80902016-05-17 09:38:31 -0700376 ret = os.system(ovs_file)
377 assert_equal(ret, 0)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700378 time.sleep(30)
A R Karthickb7e80902016-05-17 09:38:31 -0700379
A R Karthicka013a272016-08-16 16:40:19 -0700380 @classmethod
381 def ovs_cleanup(cls):
382 ##For every test case, delete all the OVS groups
383 cmd = 'ovs-ofctl del-groups br-int -OOpenFlow11 >/dev/null 2>&1'
384 cord_test_shell(cmd)
385 ##Since olt config is used for this test, we just fire a careless local cmd as well
386 try:
387 os.system(cmd)
388 except: pass
389
A R Karthickb7e80902016-05-17 09:38:31 -0700390 def onos_aaa_load(self):
391 if self.aaa_loaded:
392 return
A.R Karthick95d044e2016-06-10 18:44:36 -0700393 aaa_dict = {'apps' : { 'org.onosproject.aaa' : { 'AAA' : { 'radiusSecret': 'radius_password',
A R Karthickb7e80902016-05-17 09:38:31 -0700394 'radiusIp': '172.17.0.2' } } } }
395 radius_ip = os.getenv('ONOS_AAA_IP') or '172.17.0.2'
396 aaa_dict['apps']['org.onosproject.aaa']['AAA']['radiusIp'] = radius_ip
397 self.onos_load_config('org.onosproject.aaa', aaa_dict)
398 self.aaa_loaded = True
399
400 def onos_dhcp_table_load(self, config = None):
401 dhcp_dict = {'apps' : { 'org.onosproject.dhcp' : { 'dhcp' : copy.copy(self.dhcp_server_config) } } }
402 dhcp_config = dhcp_dict['apps']['org.onosproject.dhcp']['dhcp']
403 if config:
404 for k in config.keys():
405 if dhcp_config.has_key(k):
406 dhcp_config[k] = config[k]
407 self.onos_load_config('org.onosproject.dhcp', dhcp_dict)
408
409 def onos_load_config(self, app, config):
410 status, code = OnosCtrl.config(config)
411 if status is False:
412 log.info('JSON config request for app %s returned status %d' %(app, code))
413 assert_equal(status, True)
414 time.sleep(2)
415
416 def dhcp_sndrcv(self, dhcp, update_seed = False):
417 cip, sip = dhcp.discover(update_seed = update_seed)
418 assert_not_equal(cip, None)
419 assert_not_equal(sip, None)
420 log.info('Got dhcp client IP %s from server %s for mac %s' %
421 (cip, sip, dhcp.get_mac(cip)[0]))
422 return cip,sip
423
424 def dhcp_request(self, subscriber, seed_ip = '10.10.10.1', update_seed = False):
425 config = {'startip':'10.10.10.20', 'endip':'10.10.10.200',
426 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
427 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
428 self.onos_dhcp_table_load(config)
429 dhcp = DHCPTest(seed_ip = seed_ip, iface = subscriber.iface)
430 cip, sip = self.dhcp_sndrcv(dhcp, update_seed = update_seed)
431 return cip, sip
432
433 def recv_channel_cb(self, pkt):
434 ##First verify that we have received the packet for the joined instance
435 chan = self.subscriber.caddr(pkt[IP].dst)
436 assert_equal(chan in self.subscriber.join_map.keys(), True)
437 recv_time = monotonic.monotonic() * 1000000
438 join_time = self.subscriber.join_map[chan][self.subscriber.STATS_JOIN].start
439 delta = recv_time - join_time
440 self.subscriber.join_rx_stats.update(packets=1, t = delta, usecs = True)
441 self.subscriber.channel_update(chan, self.subscriber.STATS_RX, 1, t = delta)
442 log.debug('Packet received in %.3f usecs for group %s after join' %(delta, pkt[IP].dst))
443 self.test_status = True
444
A R Karthick65c4d722016-07-18 14:20:17 -0700445 def traffic_verify(self, subscriber):
446 if subscriber.has_service('TRAFFIC'):
447 url = 'http://www.google.com'
448 resp = requests.get(url)
449 self.test_status = resp.ok
450 if resp.ok == False:
451 log.info('Subscriber %s failed get from url %s with status code %d'
452 %(subscriber.name, url, resp.status_code))
453 else:
454 log.info('GET request from %s succeeded for subscriber %s'
455 %(url, subscriber.name))
A R Karthicka013a272016-08-16 16:40:19 -0700456 return self.test_status
A R Karthick65c4d722016-07-18 14:20:17 -0700457
A R Karthickb7e80902016-05-17 09:38:31 -0700458 def tls_verify(self, subscriber):
459 if subscriber.has_service('TLS'):
460 time.sleep(2)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700461 tls = TLSAuthTest(intf = subscriber.rx_intf)
A R Karthickb7e80902016-05-17 09:38:31 -0700462 log.info('Running subscriber %s tls auth test' %subscriber.name)
463 tls.runTest()
464 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700465 return self.test_status
466 else:
467 self.test_status = True
468 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700469
470 def dhcp_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700471 if subscriber.has_service('DHCP'):
472 cip, sip = self.dhcp_request(subscriber, update_seed = True)
473 log.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
474 subscriber.src_list = [cip]
475 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700476 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700477 else:
478 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
479 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700480 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700481
482 def dhcp_jump_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700483 if subscriber.has_service('DHCP'):
484 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.200.1')
485 log.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
486 subscriber.src_list = [cip]
487 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700488 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700489 else:
490 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
491 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700492 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700493
494 def dhcp_next_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700495 if subscriber.has_service('DHCP'):
496 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.150.1')
497 log.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
498 subscriber.src_list = [cip]
499 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700500 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700501 else:
502 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
503 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700504 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700505
506 def igmp_verify(self, subscriber):
507 chan = 0
508 if subscriber.has_service('IGMP'):
A R Karthick338268f2016-06-21 17:12:13 -0700509 ##We wait for all the subscribers to join before triggering leaves
510 if subscriber.rx_port > 1:
511 time.sleep(5)
512 subscriber.channel_join(chan, delay = 0)
513 self.num_joins += 1
514 while self.num_joins < self.num_subscribers:
515 time.sleep(5)
516 log.info('All subscribers have joined the channel')
517 for i in range(10):
518 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
A R Karthickb7e80902016-05-17 09:38:31 -0700519 log.info('Leaving channel %d for subscriber %s' %(chan, subscriber.name))
520 subscriber.channel_leave(chan)
A R Karthick338268f2016-06-21 17:12:13 -0700521 time.sleep(5)
A R Karthickb7e80902016-05-17 09:38:31 -0700522 log.info('Interface %s Join RX stats for subscriber %s, %s' %(subscriber.iface, subscriber.name,subscriber.join_rx_stats))
A R Karthick338268f2016-06-21 17:12:13 -0700523 #Should not receive packets for this subscriber
524 self.recv_timeout = True
525 subscriber.recv_timeout = True
526 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
527 subscriber.recv_timeout = False
528 self.recv_timeout = False
529 log.info('Joining channel %d for subscriber %s' %(chan, subscriber.name))
530 subscriber.channel_join(chan, delay = 0)
A R Karthickb7e80902016-05-17 09:38:31 -0700531 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700532 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700533
534 def igmp_jump_verify(self, subscriber):
535 if subscriber.has_service('IGMP'):
536 for i in xrange(subscriber.num):
537 log.info('Subscriber %s jumping channel' %subscriber.name)
538 chan = subscriber.channel_jump(delay=0)
539 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 1)
540 log.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
541 time.sleep(3)
542 log.info('Interface %s Jump RX stats for subscriber %s, %s' %(subscriber.iface, subscriber.name, subscriber.join_rx_stats))
543 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700544 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700545
546 def igmp_next_verify(self, subscriber):
547 if subscriber.has_service('IGMP'):
548 for i in xrange(subscriber.num):
549 if i:
550 chan = subscriber.channel_join_next(delay=0)
551 else:
552 chan = subscriber.channel_join(i, delay=0)
553 log.info('Joined next channel %d for subscriber %s' %(chan, subscriber.name))
554 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count=1)
555 log.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
556 time.sleep(3)
557 log.info('Interface %s Join Next RX stats for subscriber %s, %s' %(subscriber.iface, subscriber.name, subscriber.join_rx_stats))
558 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700559 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700560
561 def generate_port_list(self, subscribers, channels):
562 return self.port_list[:subscribers]
563
564 def subscriber_load(self, create = True, num = 10, num_channels = 1, channel_start = 0, port_list = []):
565 '''Load the subscriber from the database'''
A R Karthick4b72d4b2016-06-15 11:09:17 -0700566 self.subscriber_db = SubscriberDB(create = create, services = self.test_services)
A R Karthickb7e80902016-05-17 09:38:31 -0700567 if create is True:
568 self.subscriber_db.generate(num)
569 self.subscriber_info = self.subscriber_db.read(num)
570 self.subscriber_list = []
571 if not port_list:
572 port_list = self.generate_port_list(num, num_channels)
573
574 index = 0
575 for info in self.subscriber_info:
A.R Karthick95d044e2016-06-10 18:44:36 -0700576 self.subscriber_list.append(Subscriber(name=info['Name'],
A R Karthickb7e80902016-05-17 09:38:31 -0700577 service=info['Service'],
578 port_map = self.port_map,
579 num=num_channels,
580 channel_start = channel_start,
581 tx_port = port_list[index][0],
582 rx_port = port_list[index][1]))
583 if num_channels > 1:
584 channel_start += num_channels
585 index += 1
586
587 #load the ssm list for all subscriber channels
588 igmpChannel = IgmpChannel()
589 ssm_groups = map(lambda sub: sub.channels, self.subscriber_list)
590 ssm_list = reduce(lambda ssm1, ssm2: ssm1+ssm2, ssm_groups)
591 igmpChannel.igmp_load_ssm_config(ssm_list)
592
A.R Karthick95d044e2016-06-10 18:44:36 -0700593 def subscriber_join_verify( self, num_subscribers = 10, num_channels = 1,
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700594 channel_start = 0, cbs = None, port_list = [], negative_subscriber_auth = None):
A R Karthickb7e80902016-05-17 09:38:31 -0700595 self.test_status = False
A R Karthicka013a272016-08-16 16:40:19 -0700596 self.ovs_cleanup()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700597 subscribers_count = num_subscribers
598 sub_loop_count = num_subscribers
A R Karthickb7e80902016-05-17 09:38:31 -0700599 self.subscriber_load(create = True, num = num_subscribers,
600 num_channels = num_channels, channel_start = channel_start, port_list = port_list)
601 self.onos_aaa_load()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700602 self.thread_pool = ThreadPool(min(100, subscribers_count), queue_size=1, wait_timeout=1)
603
A R Karthick338268f2016-06-21 17:12:13 -0700604 chan_leave = False #for single channel, multiple subscribers
A R Karthicke237aee2016-12-01 17:46:43 -0800605 if cbs is None:
A R Karthick65c4d722016-07-18 14:20:17 -0700606 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
A R Karthick338268f2016-06-21 17:12:13 -0700607 chan_leave = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700608 cbs_negative = cbs
A R Karthickb7e80902016-05-17 09:38:31 -0700609 for subscriber in self.subscriber_list:
610 subscriber.start()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700611 if negative_subscriber_auth is 'half' and sub_loop_count%2 is not 0:
612 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
613 elif negative_subscriber_auth is 'onethird' and sub_loop_count%3 is not 0:
614 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
615 else:
616 cbs = cbs_negative
617 sub_loop_count = sub_loop_count - 1
A R Karthickb7e80902016-05-17 09:38:31 -0700618 pool_object = subscriber_pool(subscriber, cbs)
619 self.thread_pool.addTask(pool_object.pool_cb)
620 self.thread_pool.cleanUpThreads()
621 for subscriber in self.subscriber_list:
622 subscriber.stop()
A R Karthick338268f2016-06-21 17:12:13 -0700623 if chan_leave is True:
624 subscriber.channel_leave(0)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700625 subscribers_count = 0
A R Karthickb7e80902016-05-17 09:38:31 -0700626 return self.test_status
627
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700628 def tls_invalid_cert(self, subscriber):
629 if subscriber.has_service('TLS'):
630 time.sleep(2)
631 log.info('Running subscriber %s tls auth test' %subscriber.name)
632 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_INVALID)
633 tls.runTest()
634 if tls.failTest == True:
635 self.test_status = False
636 return self.test_status
637 else:
638 self.test_status = True
639 return self.test_status
640
641 def tls_no_cert(self, subscriber):
642 if subscriber.has_service('TLS'):
643 time.sleep(2)
644 log.info('Running subscriber %s tls auth test' %subscriber.name)
645 tls = TLSAuthTest(client_cert = '')
646 tls.runTest()
647 if tls.failTest == True:
648 self.test_status = False
649 return self.test_status
650 else:
651 self.test_status = True
652 return self.test_status
653
654 def tls_self_signed_cert(self, subscriber):
655 if subscriber.has_service('TLS'):
656 time.sleep(2)
657 log.info('Running subscriber %s tls auth test' %subscriber.name)
658 tls = TLSAuthTest(client_cert = self.CLIENT_CERT)
659 tls.runTest()
660 if tls.failTest == False:
661 self.test_status = True
662 return self.test_status
663 else:
664 self.test_status = True
665 return self.test_status
666
667 def tls_non_ca_authrized_cert(self, subscriber):
668 if subscriber.has_service('TLS'):
669 time.sleep(2)
670 log.info('Running subscriber %s tls auth test' %subscriber.name)
671 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_NON_CA_AUTHORIZED)
672 tls.runTest()
673 if tls.failTest == False:
674 self.test_status = True
675 return self.test_status
676 else:
677 self.test_status = True
678 return self.test_status
679
680
681 def tls_Nsubscribers_use_same_valid_cert(self, subscriber):
682 if subscriber.has_service('TLS'):
683 time.sleep(2)
684 log.info('Running subscriber %s tls auth test' %subscriber.name)
685 num_users = 3
686 for i in xrange(num_users):
687 tls = TLSAuthTest(intf = 'veth{}'.format(i*2))
688 tls.runTest()
689 if tls.failTest == False:
690 self.test_status = True
691 return self.test_status
692 else:
693 self.test_status = True
694 return self.test_status
695
696 def dhcp_discover_scenario(self, subscriber):
697 if subscriber.has_service('DHCP'):
698 time.sleep(2)
699 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
700 t1 = self.subscriber_dhcp_1release()
701 self.test_status = True
702 return self.test_status
703 else:
704 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
705 self.test_status = True
706 return self.test_status
707
708 def subscriber_dhcp_1release(self, iface = INTF_RX_DEFAULT):
709 config = {'startip':'10.10.100.20', 'endip':'10.10.100.21',
710 'ip':'10.10.100.2', 'mac': "ca:fe:ca:fe:8a:fe",
711 'subnet': '255.255.255.0', 'broadcast':'10.10.100.255', 'router':'10.10.100.1'}
712 self.onos_dhcp_table_load(config)
713 self.dhcp = DHCPTest(seed_ip = '10.10.100.10', iface = iface)
714 cip, sip = self.send_recv()
715 log.info('Releasing ip %s to server %s' %(cip, sip))
716 assert_equal(self.dhcp.release(cip), True)
717 log.info('Triggering DHCP discover again after release')
718 cip2, sip2 = self.send_recv(update_seed = True)
719 log.info('Verifying released IP was given back on rediscover')
720 assert_equal(cip, cip2)
721 log.info('Test done. Releasing ip %s to server %s' %(cip2, sip2))
722 assert_equal(self.dhcp.release(cip2), True)
723
724
725 def dhcp_client_reboot_scenario(self, subscriber):
726 if subscriber.has_service('DHCP'):
727 time.sleep(2)
728 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
729 tl = self.subscriber_dhcp_client_request_after_reboot()
730 self.test_status = True
731 return self.test_status
732 else:
733 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
734 self.test_status = True
735 return self.test_status
736
737 def subscriber_dhcp_client_request_after_reboot(self, iface = INTF_RX_DEFAULT):
738 #''' Client sends DHCP Request after reboot.'''
739
740 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
741 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
742 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
743 self.onos_dhcp_table_load(config)
744 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
745 cip, sip, mac, lval = self.dhcp.only_discover()
746 log.info('Got dhcp client IP %s from server %s for mac %s .' %
747 (cip, sip, mac) )
748
749 log.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
750
751 if (cip == None and mac != None):
752 log.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
753 assert_not_equal(cip, None)
754
755 else:
756 new_cip, new_sip = self.dhcp.only_request(cip, mac)
757 if new_cip == None:
758 log.info("Got DHCP server NAK.")
759 os.system('ifconfig '+iface+' down')
760 log.info('Client goes down.')
761 log.info('Delay for 5 seconds.')
762
763 time.sleep(5)
764
765 os.system('ifconfig '+iface+' up')
766 log.info('Client is up now.')
767
768 new_cip, new_sip = self.dhcp.only_request(cip, mac)
769 if new_cip == None:
770 log.info("Got DHCP server NAK.")
771 assert_not_equal(new_cip, None)
772 elif new_cip != None:
773 log.info("Got DHCP ACK.")
774
775 def dhcp_client_renew_scenario(self, subscriber):
776 if subscriber.has_service('DHCP'):
777 time.sleep(2)
778 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
779 tl = self.subscriber_dhcp_client_renew_time()
780 self.test_status = True
781 return self.test_status
782 else:
783 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
784 self.test_status = True
785 return self.test_status
786
787 def subscriber_dhcp_client_renew_time(self, iface = INTF_RX_DEFAULT):
788 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
789 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
790 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
791 self.onos_dhcp_table_load(config)
792 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
793 cip, sip, mac , lval = self.dhcp.only_discover()
794 log.info('Got dhcp client IP %s from server %s for mac %s .' %
795 (cip, sip, mac) )
796
797 log.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
798 if (cip == None and mac != None):
799 log.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
800 assert_not_equal(cip, None)
801 elif cip and sip and mac:
802 log.info("Triggering DHCP Request.")
803 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, renew_time = True)
804 if new_cip and new_sip and lval:
805 log.info("Client 's Renewal time is :%s",lval)
806 log.info("Generating delay till renewal time.")
807 time.sleep(lval)
808 log.info("Client Sending Unicast DHCP request.")
809 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac, unicast = True)
810 if latest_cip and latest_sip:
811 log.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
812 (latest_cip, mac, latest_sip) )
813
814 elif latest_cip == None:
815 log.info("Got DHCP NAK. Lease not renewed.")
816 elif new_cip == None or new_sip == None or lval == None:
817 log.info("Got DHCP NAK.")
818
819 def dhcp_server_reboot_scenario(self, subscriber):
820 if subscriber.has_service('DHCP'):
821 time.sleep(2)
822 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
823 tl = self.subscriber_dhcp_server_after_reboot()
824 self.test_status = True
825 return self.test_status
826 else:
827 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
828 self.test_status = True
829 return self.test_status
830
831 def subscriber_dhcp_server_after_reboot(self, iface = INTF_RX_DEFAULT):
832 ''' DHCP server goes down.'''
833 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
834 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
835 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
836 self.onos_dhcp_table_load(config)
837 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
838 cip, sip, mac, lval = self.dhcp.only_discover()
839 log.info('Got dhcp client IP %s from server %s for mac %s .' %
840 (cip, sip, mac) )
841 log.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
842 if (cip == None and mac != None):
843 log.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
844 assert_not_equal(cip, None)
845 else:
846 new_cip, new_sip = self.dhcp.only_request(cip, mac)
847 if new_cip == None:
848 log.info("Got DHCP server NAK.")
849 assert_not_equal(new_cip, None)
850 log.info('Getting DHCP server Down.')
851 onos_ctrl = OnosCtrl(self.dhcp_app)
852 onos_ctrl.deactivate()
853 for i in range(0,4):
854 log.info("Sending DHCP Request.")
855 log.info('')
856 new_cip, new_sip = self.dhcp.only_request(cip, mac)
857 if new_cip == None and new_sip == None:
858 log.info('')
859 log.info("DHCP Request timed out.")
860 elif new_cip and new_sip:
861 log.info("Got Reply from DHCP server.")
862 assert_equal(new_cip,None) #Neagtive Test Case
863 log.info('Getting DHCP server Up.')
864# self.activate_apps(self.dhcp_app)
865 onos_ctrl = OnosCtrl(self.dhcp_app)
866 status, _ = onos_ctrl.activate()
867 assert_equal(status, True)
868 time.sleep(3)
869 for i in range(0,4):
870 log.info("Sending DHCP Request after DHCP server is up.")
871 log.info('')
872 new_cip, new_sip = self.dhcp.only_request(cip, mac)
873 if new_cip == None and new_sip == None:
874 log.info('')
875 log.info("DHCP Request timed out.")
876 elif new_cip and new_sip:
877 log.info("Got Reply from DHCP server.")
878 assert_equal(new_cip,None) #Neagtive Test Case
879
880 def dhcp_client_rebind_scenario(self, subscriber):
881 if subscriber.has_service('DHCP'):
882 time.sleep(2)
883 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
884 tl = self.subscriber_dhcp_client_rebind_time()
885 self.test_status = True
886 return self.test_status
887 else:
888 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
889 self.test_status = True
890 return self.test_status
891
892 def subscriber_dhcp_client_rebind_time(self, iface = INTF_RX_DEFAULT):
893 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
894 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
895 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
896 self.onos_dhcp_table_load(config)
897 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
898 cip, sip, mac, lval = self.dhcp.only_discover()
899 log.info('Got dhcp client IP %s from server %s for mac %s .' %
900 (cip, sip, mac) )
901 log.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
902 if (cip == None and mac != None):
903 log.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
904 assert_not_equal(cip, None)
905 elif cip and sip and mac:
906 log.info("Triggering DHCP Request.")
907 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, rebind_time = True)
908 if new_cip and new_sip and lval:
909 log.info("Client 's Rebind time is :%s",lval)
910 log.info("Generating delay till rebind time.")
911 time.sleep(lval)
912 log.info("Client Sending broadcast DHCP requests for renewing lease or for getting new ip.")
913 self.dhcp.after_T2 = True
914 for i in range(0,4):
915 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac)
916 if latest_cip and latest_sip:
917 log.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
918 (latest_cip, mac, latest_sip) )
919 break
920 elif latest_cip == None:
921 log.info("Got DHCP NAK. Lease not renewed.")
922 assert_not_equal(latest_cip, None)
923 elif new_cip == None or new_sip == None or lval == None:
924 log.info("Got DHCP NAK.Lease not Renewed.")
925
926 def dhcp_starvation_scenario(self, subscriber):
927 if subscriber.has_service('DHCP'):
928 time.sleep(2)
929 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
930 tl = self.subscriber_dhcp_starvation()
931 self.test_status = True
932 return self.test_status
933 else:
934 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
935 self.test_status = True
936 return self.test_status
937
938 def subscriber_dhcp_starvation(self, iface = INTF_RX_DEFAULT):
939 '''DHCP starve'''
940 config = {'startip':'182.17.0.20', 'endip':'182.17.0.69',
941 'ip':'182.17.0.2', 'mac': "ca:fe:c3:fe:ca:fe",
942 'subnet': '255.255.255.0', 'broadcast':'182.17.0.255', 'router':'182.17.0.1'}
943 self.onos_dhcp_table_load(config)
944 self.dhcp = DHCPTest(seed_ip = '182.17.0.1', iface = iface)
945 log.info('Verifying 1 ')
946 for x in xrange(50):
947 mac = RandMAC()._fix()
948 self.send_recv(mac = mac)
949 log.info('Verifying 2 ')
950 cip, sip = self.send_recv(update_seed = True, validate = False)
951 assert_equal(cip, None)
952 assert_equal(sip, None)
953
954 def dhcp_same_client_multi_discovers_scenario(self, subscriber):
955 if subscriber.has_service('DHCP'):
956 time.sleep(2)
957 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
958 tl = self.subscriber_dhcp_same_client_multiple_discover()
959 self.test_status = True
960 return self.test_status
961 else:
962 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
963 self.test_status = True
964 return self.test_status
965
966 def subscriber_dhcp_same_client_multiple_discover(self, iface = INTF_RX_DEFAULT):
967 ''' DHCP Client sending multiple discover . '''
968 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
969 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
970 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
971 self.onos_dhcp_table_load(config)
972 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
973 cip, sip, mac, lval = self.dhcp.only_discover()
974 log.info('Got dhcp client IP %s from server %s for mac %s . Not going to send DHCPREQUEST.' %
975 (cip, sip, mac) )
976 log.info('Triggering DHCP discover again.')
977 new_cip, new_sip, new_mac , lval = self.dhcp.only_discover()
978 if cip == new_cip:
979 log.info('Got same ip for 2nd DHCP discover for client IP %s from server %s for mac %s. Triggering DHCP Request. '
980 % (new_cip, new_sip, new_mac) )
981 elif cip != new_cip:
982 log.info('Ip after 1st discover %s' %cip)
983 log.info('Map after 2nd discover %s' %new_cip)
984 assert_equal(cip, new_cip)
985
986 def dhcp_same_client_multi_request_scenario(self, subscriber):
987 if subscriber.has_service('DHCP'):
988 time.sleep(2)
989 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
990 tl = self.subscriber_dhcp_same_client_multiple_request()
991 self.test_status = True
992 return self.test_status
993 else:
994 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
995 self.test_status = True
996 return self.test_status
997
998 def subscriber_dhcp_same_client_multiple_request(self, iface = INTF_RX_DEFAULT):
999 ''' DHCP Client sending multiple repeat DHCP requests. '''
1000 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
1001 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
1002 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
1003 self.onos_dhcp_table_load(config)
1004 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
1005 log.info('Sending DHCP discover and DHCP request.')
1006 cip, sip = self.send_recv()
1007 mac = self.dhcp.get_mac(cip)[0]
1008 log.info("Sending DHCP request again.")
1009 new_cip, new_sip = self.dhcp.only_request(cip, mac)
1010 if (new_cip,new_sip) == (cip,sip):
1011 log.info('Got same ip for 2nd DHCP Request for client IP %s from server %s for mac %s.'
1012 % (new_cip, new_sip, mac) )
1013 elif (new_cip,new_sip):
1014 log.info('No DHCP ACK')
1015 assert_equal(new_cip, None)
1016 assert_equal(new_sip, None)
1017 else:
1018 print "Something went wrong."
1019
1020 def dhcp_client_desired_ip_scenario(self, subscriber):
1021 if subscriber.has_service('DHCP'):
1022 time.sleep(2)
1023 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
1024 tl = self.subscriber_dhcp_client_desired_address()
1025 self.test_status = True
1026 return self.test_status
1027 else:
1028 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1029 self.test_status = True
1030 return self.test_status
1031
1032 def subscriber_dhcp_client_desired_address(self, iface = INTF_RX_DEFAULT):
1033 '''DHCP Client asking for desired IP address.'''
1034 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1035 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1036 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1037 self.onos_dhcp_table_load(config)
1038 self.dhcp = DHCPTest(seed_ip = '20.20.20.31', iface = iface)
1039 cip, sip, mac , lval = self.dhcp.only_discover(desired = True)
1040 log.info('Got dhcp client IP %s from server %s for mac %s .' %
1041 (cip, sip, mac) )
1042 if cip == self.dhcp.seed_ip:
1043 log.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
1044 (cip, sip, mac) )
1045 elif cip != self.dhcp.seed_ip:
1046 log.info('Got dhcp client IP %s from server %s for mac %s .' %
1047 (cip, sip, mac) )
1048 log.info('The desired ip was: %s .' % self.dhcp.seed_ip)
1049 assert_equal(cip, self.dhcp.seed_ip)
1050
1051 def dhcp_client_request_pkt_with_non_offered_ip_scenario(self, subscriber):
1052 if subscriber.has_service('DHCP'):
1053 time.sleep(2)
1054 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
1055 tl = self.subscriber_dhcp_server_nak_packet()
1056 self.test_status = True
1057 return self.test_status
1058 else:
1059 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1060 self.test_status = True
1061 return self.test_status
1062
1063 def subscriber_dhcp_server_nak_packet(self, iface = INTF_RX_DEFAULT):
1064 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1065 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1066 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1067 self.onos_dhcp_table_load(config)
1068 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
1069 cip, sip, mac, lval = self.dhcp.only_discover()
1070 log.info('Got dhcp client IP %s from server %s for mac %s .' %
1071 (cip, sip, mac) )
1072 log.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
1073 if (cip == None and mac != None):
1074 log.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
1075 assert_not_equal(cip, None)
1076 else:
1077 new_cip, new_sip = self.dhcp.only_request('20.20.20.31', mac)
1078 if new_cip == None:
1079 log.info("Got DHCP server NAK.")
1080 assert_equal(new_cip, None) #Negative Test Case
1081
1082 def dhcp_client_requested_out_pool_ip_scenario(self, subscriber):
1083 if subscriber.has_service('DHCP'):
1084 time.sleep(2)
1085 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
1086 tl = self.subscriber_dhcp_client_desired_address_out_of_pool()
1087 self.test_status = True
1088 return self.test_status
1089 else:
1090 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1091 self.test_status = True
1092 return self.test_status
1093
1094 def subscriber_dhcp_client_desired_address_out_of_pool(self, iface = INTF_RX_DEFAULT):
1095 '''DHCP Client asking for desired IP address from out of pool.'''
1096 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1097 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1098 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1099 self.onos_dhcp_table_load(config)
1100 self.dhcp = DHCPTest(seed_ip = '20.20.20.35', iface = iface)
1101 cip, sip, mac, lval = self.dhcp.only_discover(desired = True)
1102 log.info('Got dhcp client IP %s from server %s for mac %s .' %
1103 (cip, sip, mac) )
1104 if cip == self.dhcp.seed_ip:
1105 log.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
1106 (cip, sip, mac) )
1107 assert_equal(cip, self.dhcp.seed_ip) #Negative Test Case
1108
1109 elif cip != self.dhcp.seed_ip:
1110 log.info('Got dhcp client IP %s from server %s for mac %s .' %
1111 (cip, sip, mac) )
1112 log.info('The desired ip was: %s .' % self.dhcp.seed_ip)
1113 assert_not_equal(cip, self.dhcp.seed_ip)
1114
1115 elif cip == None:
1116 log.info('Got DHCP NAK')
1117
1118 def dhcp_client_specific_lease_scenario(self, subscriber):
1119 if subscriber.has_service('DHCP'):
1120 time.sleep(2)
1121 log.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
1122 tl = self.subscriber_dhcp_specific_lease_packet()
1123 self.test_status = True
1124 return self.test_status
1125 else:
1126 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1127 self.test_status = True
1128 return self.test_status
1129
1130 def subscriber_dhcp_specific_lease_packet(self, iface = INTF_RX_DEFAULT):
1131 ''' Client sends DHCP Discover packet for particular lease time.'''
1132 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1133 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1134 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1135 self.onos_dhcp_table_load(config)
1136 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
1137 log.info('Sending DHCP discover with lease time of 700')
1138 cip, sip, mac, lval = self.dhcp.only_discover(lease_time = True)
1139
1140 log.info("Verifying Client 's IP and mac in DHCP Offer packet.")
1141 if (cip == None and mac != None):
1142 log.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
1143 assert_not_equal(cip, None)
1144 elif lval != 700:
1145 log.info('Getting dhcp client IP %s from server %s for mac %s with lease time %s. That is not 700.' %
1146 (cip, sip, mac, lval) )
1147 assert_not_equal(lval, 700)
1148
1149 def test_cord_subscriber_join_recv(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001150 """Test subscriber join and receive for channel surfing"""
A R Karthick338268f2016-06-21 17:12:13 -07001151 self.num_subscribers = 5
1152 self.num_channels = 1
A R Karthicka478df42016-07-27 16:51:08 -07001153 test_status = True
1154 ##Run this test only if ONOS can be restarted as it incurs a network-cfg change
1155 if self.onos_restartable is True:
1156 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1157 num_channels = self.num_channels,
1158 port_list = self.generate_port_list(self.num_subscribers,
1159 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001160 assert_equal(test_status, True)
1161
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001162 def test_cord_subscriber_join_jump(self):
A R Karthicka478df42016-07-27 16:51:08 -07001163 """Test subscriber join jump for channel surfing"""
A R Karthick338268f2016-06-21 17:12:13 -07001164 self.num_subscribers = 5
1165 self.num_channels = 10
1166 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1167 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001168 cbs = (self.tls_verify, self.dhcp_jump_verify,
1169 self.igmp_jump_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001170 port_list = self.generate_port_list(self.num_subscribers,
1171 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001172 assert_equal(test_status, True)
1173
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001174 def test_cord_subscriber_join_next(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001175 """Test subscriber join next for channel surfing"""
A R Karthick338268f2016-06-21 17:12:13 -07001176 self.num_subscribers = 5
1177 self.num_channels = 10
1178 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1179 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001180 cbs = (self.tls_verify, self.dhcp_next_verify,
1181 self.igmp_next_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001182 port_list = self.generate_port_list(self.num_subscribers,
1183 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001184 assert_equal(test_status, True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001185
1186 #@deferred(SUBSCRIBER_TIMEOUT)
1187 def test_cord_subscriber_authentication_with_invalid_certificate_and_channel_surfing(self):
1188 ### """Test subscriber to auth with invalidCertification and join channel"""
1189 num_subscribers = 1
1190 num_channels = 1
1191 df = defer.Deferred()
1192 def sub_auth_invalid_cert(df):
1193 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1194 num_channels = num_channels,
1195 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1196 self.igmp_verify, self.traffic_verify),
1197 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1198 assert_equal(test_status, False)
1199 df.callback(0)
1200 reactor.callLater(0, sub_auth_invalid_cert, df)
1201 return df
1202
1203 #@deferred(SUBSCRIBER_TIMEOUT)
1204 def test_cord_subscriber_authentication_with_no_certificate_and_channel_surfing(self):
1205 ### """Test subscriber to auth with No Certification and join channel"""
1206 num_subscribers = 1
1207 num_channels = 1
1208 df = defer.Deferred()
1209 def sub_auth_no_cert(df):
1210 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1211 num_channels = num_channels,
1212 cbs = (self.tls_no_cert, self.dhcp_verify,
1213 self.igmp_verify, self.traffic_verify),
1214 port_list = self.generate_port_list(num_subscribers, num_channels),
1215 negative_subscriber_auth = 'all')
1216 assert_equal(test_status, False)
1217 df.callback(0)
1218 reactor.callLater(0, sub_auth_no_cert, df)
1219 return df
1220 def test_cord_subscriber_authentication_with_self_signed_certificate_and_channel_surfing(self):
1221 ### """Test subscriber to auth with Self Signed Certification and join channel"""
1222 num_subscribers = 1
1223 num_channels = 1
1224 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1225 num_channels = num_channels,
1226 cbs = (self.tls_self_signed_cert, self.dhcp_verify,
1227 self.igmp_verify, self.traffic_verify),
1228 port_list = self.generate_port_list(num_subscribers, num_channels),
1229 negative_subscriber_auth = 'all')
1230 assert_equal(test_status, True)
1231
1232 @deferred(SUBSCRIBER_TIMEOUT)
1233 def test_2_cord_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1234 ### """Test 2 subscribers to auth, one of the subscriber with invalidCertification and join channel"""
1235 num_subscribers = 2
1236 num_channels = 1
1237 df = defer.Deferred()
1238 def sub_auth_invalid_cert(df):
1239 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1240 num_channels = num_channels,
1241 cbs = (self.tls_invalid_cert, self.dhcp_verify,self.igmp_verify, self.traffic_verify),
1242 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1243 assert_equal(test_status, True)
1244 df.callback(0)
1245 reactor.callLater(0, sub_auth_invalid_cert, df)
1246 return df
1247
1248 @deferred(SUBSCRIBER_TIMEOUT)
1249 def test_2_cord_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1250 ### """Test 2 subscribers to auth, one of the subscriber with No Certification and join channel"""
1251 num_subscribers = 2
1252 num_channels = 1
1253 df = defer.Deferred()
1254 def sub_auth_no_cert(df):
1255 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1256 num_channels = num_channels,
1257 cbs = (self.tls_no_cert, self.dhcp_verify,
1258 self.igmp_verify, self.traffic_verify),
1259 port_list = self.generate_port_list(num_subscribers, num_channels),
1260 negative_subscriber_auth = 'half')
1261 assert_equal(test_status, True)
1262 df.callback(0)
1263 reactor.callLater(0, sub_auth_no_cert, df)
1264 return df
1265
1266 @deferred(SUBSCRIBER_TIMEOUT)
1267 def test_2_cord_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1268 ### """Test 2 subscribers to auth, one of the subscriber with Non CA authorized Certificate and join channel"""
1269 num_subscribers = 2
1270 num_channels = 1
1271 df = defer.Deferred()
1272 def sub_auth_no_cert(df):
1273 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1274 num_channels = num_channels,
1275 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify,
1276 self.igmp_verify, self.traffic_verify),
1277 port_list = self.generate_port_list(num_subscribers, num_channels),
1278 negative_subscriber_auth = 'half')
1279 assert_equal(test_status, True)
1280 df.callback(0)
1281 reactor.callLater(0, sub_auth_no_cert, df)
1282 return df
1283
1284 def test_cord_subscriber_authentication_with_dhcp_discover_and_channel_surfing(self):
1285 ### """Test subscriber auth success, DHCP re-discover with DHCP server and join channel"""
1286 num_subscribers = 1
1287 num_channels = 1
1288 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1289 num_channels = num_channels,
1290 cbs = (self.tls_verify, self.dhcp_discover_scenario,
1291 self.igmp_verify, self.traffic_verify),
1292 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1293 assert_equal(test_status, True)
1294
1295 def test_cord_subscriber_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1296 ### """Test subscriber auth success, DHCP client got re-booted and join channel"""
1297 num_subscribers = 1
1298 num_channels = 1
1299 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1300 num_channels = num_channels,
1301 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario,
1302 self.igmp_verify, self.traffic_verify),
1303 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1304 assert_equal(test_status, True)
1305
1306 def test_cord_subscriber_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1307 ### """Test subscriber auth , DHCP server re-boot during DHCP process and join channel"""
1308 num_subscribers = 1
1309 num_channels = 1
1310 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1311 num_channels = num_channels,
1312 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario,
1313 self.igmp_verify, self.traffic_verify),
1314 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1315 assert_equal(test_status, True)
1316
1317 def test_cord_subscriber_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1318 ### """Test subscriber auth , DHCP client rebind IP and join channel"""
1319 num_subscribers = 1
1320 num_channels = 1
1321 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1322 num_channels = num_channels,
1323 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario,
1324 self.igmp_verify, self.traffic_verify),
1325 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1326 assert_equal(test_status, True)
1327
1328
1329 def test_cord_subscriber_authentication_with_dhcp_starvation_and_channel_surfing(self):
1330 ### """Test subscriber auth , DHCP starvation and join channel"""
1331 num_subscribers = 1
1332 num_channels = 1
1333 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1334 num_channels = num_channels,
1335 cbs = (self.tls_verify, self.dhcp_starvation_scenario,
1336 self.igmp_verify, self.traffic_verify),
1337 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1338 assert_equal(test_status, True)
1339
1340 def test_cord_subscriber_authentication_with_multiple_dhcp_discover_for_same_subscriber_and_channel_surfing(self):
1341 ### """Test subscriber auth , sending same DHCP client discover multiple times and join channel"""
1342 num_subscribers = 1
1343 num_channels = 1
1344 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1345 num_channels = num_channels,
1346 cbs = (self.tls_verify, self.dhcp_same_client_multi_discovers_scenario,
1347 self.igmp_verify, self.traffic_verify),
1348 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1349 assert_equal(test_status, True)
1350
1351 def test_cord_subscriber_authentication_with_multiple_dhcp_request_for_same_subscriber_and_channel_surfing(self):
1352 ### """Test subscriber auth , same DHCP client multiple requerts times and join channel"""
1353 num_subscribers = 1
1354 num_channels = 1
1355 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1356 num_channels = num_channels,
1357 cbs = (self.tls_verify, self.dhcp_same_client_multi_request_scenario,
1358 self.igmp_verify, self.traffic_verify),
1359 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1360 assert_equal(test_status, True)
1361
1362 def test_cord_subscriber_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1363 ### """Test subscriber auth with DHCP client requesting ip and join channel"""
1364 num_subscribers = 1
1365 num_channels = 1
1366 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1367 num_channels = num_channels,
1368 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario,
1369 self.igmp_verify, self.traffic_verify),
1370 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1371 assert_equal(test_status, True)
1372
1373 def test_cord_subscriber_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1374 ### """Test subscriber auth with DHCP client request for non-offered ip and join channel"""
1375 num_subscribers = 1
1376 num_channels = 1
1377 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1378 num_channels = num_channels,
1379 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario,
1380 self.igmp_verify, self.traffic_verify),
1381 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1382 assert_equal(test_status, True)
1383
1384 def test_cord_subscriber_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1385 ### """Test subscriber auth with DHCP client requesting out of pool ip and join channel"""
1386 num_subscribers = 1
1387 num_channels = 1
1388 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1389 num_channels = num_channels,
1390 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario,
1391 self.igmp_verify, self.traffic_verify),
1392 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1393 assert_equal(test_status, True)
1394
1395
1396 def test_cord_subscriber_authentication_with_dhcp_specified_lease_time_functionality_and_channel_surfing(self):
1397 ### """Test subscriber auth with DHCP client specifying lease time and join channel"""
1398 num_subscribers = 1
1399 num_channels = 1
1400 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1401 num_channels = num_channels,
1402 cbs = (self.tls_verify, self.dhcp_client_specific_lease_scenario,
1403 self.igmp_verify, self.traffic_verify),
1404 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1405 assert_equal(test_status, True)
1406
1407 #@deferred(SUBSCRIBER_TIMEOUT)
1408 @nottest
1409 def test_1k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1410 ### """Test 1k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1411 num_subscribers = 1000
1412 num_channels = 1
1413 df = defer.Deferred()
1414 def sub_auth_invalid_cert(df):
1415 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1416 num_channels = num_channels,
1417 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1418 self.igmp_verify, self.traffic_verify),
1419 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1420 assert_equal(test_status, True)
1421 df.callback(0)
1422 reactor.callLater(0, sub_auth_invalid_cert, df)
1423 return df
1424
1425 @nottest
1426 @deferred(SUBSCRIBER_TIMEOUT)
1427 def test_1k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1428 ### """Test 1k subscribers to auth, half of the subscribers with No Certification and join channel"""
1429 num_subscribers = 1000
1430 num_channels = 1
1431 df = defer.Deferred()
1432 def sub_auth_no_cert(df):
1433 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1434 num_channels = num_channels,
1435 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1436 port_list = self.generate_port_list(num_subscribers, num_channels),
1437 negative_subscriber_auth = 'half')
1438 assert_equal(test_status, True)
1439 df.callback(0)
1440 reactor.callLater(0, sub_auth_no_cert, df)
1441 return df
1442
1443 #@deferred(SUBSCRIBER_TIMEOUT)
1444 @nottest
1445 def test_1k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1446 ### """Test 1k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1447 num_subscribers = 1000
1448 num_channels = 1
1449 df = defer.Deferred()
1450 def sub_auth_no_cert(df):
1451 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1452 num_channels = num_channels,
1453 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1454 port_list = self.generate_port_list(num_subscribers, num_channels),
1455 negative_subscriber_auth = 'half')
1456 assert_equal(test_status, True)
1457 df.callback(0)
1458 reactor.callLater(0, sub_auth_no_cert, df)
1459 return df
1460
1461 #@deferred(SUBSCRIBER_TIMEOUT)
1462 @nottest
1463 def test_5k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1464 ### """Test 5k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1465 num_subscribers = 5000
1466 num_channels = 1
1467 df = defer.Deferred()
1468 def sub_auth_invalid_cert(df):
1469 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1470 num_channels = num_channels,
1471 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1472 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1473 assert_equal(test_status, True)
1474 df.callback(0)
1475 reactor.callLater(0, sub_auth_invalid_cert, df)
1476 return df
1477
1478 #@deferred(SUBSCRIBER_TIMEOUT)
1479 @nottest
1480 def test_5k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1481 ### """Test 5k subscribers to auth, half of the subscribers with No Certification and join channel"""
1482 num_subscribers = 5000
1483 num_channels = 1
1484 df = defer.Deferred()
1485 def sub_auth_no_cert(df):
1486 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1487 num_channels = num_channels,
1488 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1489 port_list = self.generate_port_list(num_subscribers, num_channels),
1490 negative_subscriber_auth = 'half')
1491 assert_equal(test_status, True)
1492 df.callback(0)
1493 reactor.callLater(0, sub_auth_no_cert, df)
1494 return df
1495
1496 #@deferred(SUBSCRIBER_TIMEOUT)
1497 @nottest
1498 def test_5k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1499 ### """Test 5k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1500 num_subscribers = 5000
1501 num_channels = 1
1502 df = defer.Deferred()
1503 def sub_auth_no_cert(df):
1504 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1505 num_channels = num_channels,
1506 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1507 port_list = self.generate_port_list(num_subscribers, num_channels),
1508 negative_subscriber_auth = 'half')
1509 assert_equal(test_status, True)
1510 df.callback(0)
1511 reactor.callLater(0, sub_auth_no_cert, df)
1512 return df
1513
1514 #@deferred(SUBSCRIBER_TIMEOUT)
1515 @nottest
1516 def test_10k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1517 ### """Test 10k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1518 num_subscribers = 10000
1519 num_channels = 1
1520 df = defer.Deferred()
1521 def sub_auth_invalid_cert(df):
1522 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1523 num_channels = num_channels,
1524 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1525 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'onethird')
1526 assert_equal(test_status, True)
1527 df.callback(0)
1528 reactor.callLater(0, sub_auth_invalid_cert, df)
1529 return df
1530
1531 #@deferred(SUBSCRIBER_TIMEOUT)
1532 @nottest
1533 def test_10k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1534 ### """Test 10k subscribers to auth, half of the subscribers with No Certification and join channel"""
1535 num_subscribers = 10000
1536 num_channels = 1
1537 df = defer.Deferred()
1538 def sub_auth_no_cert(df):
1539 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1540 num_channels = num_channels,
1541 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1542 port_list = self.generate_port_list(num_subscribers, num_channels),
1543 negative_subscriber_auth = 'onethird')
1544 assert_equal(test_status, True)
1545 df.callback(0)
1546 reactor.callLater(0, sub_auth_no_cert, df)
1547 return df
1548
1549 #@deferred(SUBSCRIBER_TIMEOUT)
1550 @nottest
1551 def test_10k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1552 ### """Test 10k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1553 num_subscribers = 10000
1554 num_channels = 1
1555 df = defer.Deferred()
1556 def sub_auth_no_cert(df):
1557 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1558 num_channels = num_channels,
1559 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1560 port_list = self.generate_port_list(num_subscribers, num_channels),
1561 negative_subscriber_auth = 'onethird')
1562 assert_equal(test_status, False)
1563 assert_equal(test_status, True)
1564 df.callback(0)
1565 reactor.callLater(0, sub_auth_no_cert, df)
1566 return df
1567
1568 @nottest
1569 def test_1k_cord_subscribers_authentication_with_dhcp_discovers_and_channel_surfing(self):
1570 ### """Test 1k subscribers auth success, DHCP re-discover with DHCP server and join channel"""
1571 num_subscribers = 1000
1572 num_channels = 1
1573 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1574 num_channels = num_channels,
1575 cbs = (self.tls_verify, self.dhcp_discover_scenario, self.igmp_verify),
1576 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1577 assert_equal(test_status, True)
1578
1579 @nottest
1580 def test_1k_cord_subscribers_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1581 ### """Test 1k subscribers auth success, DHCP client got re-booted and join channel"""
1582 num_subscribers = 1000
1583 num_channels = 1
1584 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1585 num_channels = num_channels,
1586 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario, self.igmp_verify),
1587 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1588 assert_equal(test_status, True)
1589
1590 @nottest
1591 def test_1k_cord_subscribers_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1592 ### """Test 1k subscribers auth , DHCP server re-boot during DHCP process and join channel"""
1593 num_subscribers = 1000
1594 num_channels = 1
1595 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1596 num_channels = num_channels,
1597 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario, self.igmp_verify),
1598 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1599 assert_equal(test_status, True)
1600
1601 @nottest
1602 def test_1k_cord_subscribers_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1603 ### """Test 1k subscribers auth , DHCP client rebind IP and join channel"""
1604 num_subscribers = 1000
1605 num_channels = 1
1606 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1607 num_channels = num_channels,
1608 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario, self.igmp_verify),
1609 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1610 assert_equal(test_status, True)
1611
1612 @nottest
1613 def test_1k_cord_subscribers_authentication_with_dhcp_starvation_and_channel_surfing(self):
1614 ### """Test 1k subscribers auth , DHCP starvation and join channel"""
1615 num_subscribers = 1000
1616 num_channels = 1
1617 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1618 num_channels = num_channels,
1619 cbs = (self.tls_verify, self.dhcp_starvation_scenario, self.igmp_verify),
1620 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1621 assert_equal(test_status, True)
1622
1623 @nottest
1624 def test_1k_cord_subscribers_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1625 ### """Test 1k subscribers auth with DHCP client requesting ip and join channel"""
1626 num_subscribers = 1000
1627 num_channels = 1
1628 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1629 num_channels = num_channels,
1630 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario, self.igmp_verify),
1631 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1632 assert_equal(test_status, True)
1633
1634 @nottest
1635 def test_1k_cord_subscribers_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1636 ### """Test subscribers auth with DHCP client request for non-offered ip and join channel"""
1637 num_subscribers = 1000
1638 num_channels = 1
1639 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1640 num_channels = num_channels,
1641 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario, self.igmp_verify),
1642 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1643 assert_equal(test_status, True)
1644
1645 def test_4_cord_subscribers_join_recv_5channel(self):
1646 ###"""Test 4 subscribers join and receive for 5 channels surfing"""
1647 num_subscribers = 4
1648 num_channels = 5
1649 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1650 num_channels = num_channels,
1651 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1652 port_list = self.generate_port_list(num_subscribers, num_channels),
1653 negative_subscriber_auth = 'all')
1654 assert_equal(test_status, True)
1655
1656 def test_4_cord_subscribers_join_jump_5channel(self):
1657 ###"""Test 4 subscribers jump and receive for 5 channels surfing"""
1658 num_subscribers = 4
1659 num_channels = 5
1660 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1661 num_channels = num_channels,
1662 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1663 port_list = self.generate_port_list(num_subscribers, num_channels),
1664 negative_subscriber_auth = 'all')
1665 assert_equal(test_status, True)
1666
1667 def test_4_cord_subscribers_join_next_5channel(self):
1668 ###"""Test 4 subscribers join next for 5 channels"""
1669 num_subscribers = 4
1670 num_channels = 5
1671 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1672 num_channels = num_channels,
1673 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1674 port_list = self.generate_port_list(num_subscribers, num_channels),
1675 negative_subscriber_auth = 'all')
1676 assert_equal(test_status, True)
1677
1678 def test_10_cord_subscribers_join_recv_5channel(self):
1679 ###"""Test 10 subscribers join and receive for 5 channels surfing"""
1680 num_subscribers = 10
1681 num_channels = 5
1682 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1683 num_channels = num_channels,
1684 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1685 port_list = self.generate_port_list(num_subscribers, num_channels),
1686 negative_subscriber_auth = 'all')
1687 assert_equal(test_status, True)
1688
1689 def test_10_cord_subscribers_join_jump_5channel(self):
1690 ###"""Test 10 subscribers jump and receive for 5 channels surfing"""
1691 num_subscribers = 10
1692 num_channels = 5
1693 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1694 num_channels = num_channels,
1695 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1696 port_list = self.generate_port_list(num_subscribers, num_channels),
1697 negative_subscriber_auth = 'all')
1698 assert_equal(test_status, True)
1699
1700
1701 def test_10_cord_subscribers_join_next_5channel(self):
1702 ###"""Test 10 subscribers join next for 5 channels"""
1703 num_subscribers = 10
1704 num_channels = 5
1705 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1706 num_channels = num_channels,
1707 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1708 port_list = self.generate_port_list(num_subscribers, num_channels),
1709 negative_subscriber_auth = 'all')
1710 assert_equal(test_status, True)
1711
1712
1713
1714 def test_cord_subscriber_join_recv_100channels(self):
1715 num_subscribers = 1
1716 num_channels = 100
1717 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1718 num_channels = num_channels,
1719 cbs = (self.tls_verify, self.dhcp_verify,
1720 self.igmp_verify, self.traffic_verify),
1721 port_list = self.generate_port_list(num_subscribers, num_channels),
1722 negative_subscriber_auth = 'all')
1723 assert_equal(test_status, True)
1724
1725 def test_cord_subscriber_join_recv_400channels(self):
1726 num_subscribers = 1
1727 num_channels = 400
1728 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1729 num_channels = num_channels,
1730 cbs = (self.tls_verify, self.dhcp_verify,
1731 self.igmp_verify, self.traffic_verify),
1732 port_list = self.generate_port_list(num_subscribers, num_channels),
1733 negative_subscriber_auth = 'all')
1734 assert_equal(test_status, True)
1735
1736 def test_cord_subscriber_join_recv_800channels(self):
1737 num_subscribers = 1
1738 num_channels = 800
1739 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1740 num_channels = num_channels,
1741 cbs = (self.tls_verify, self.dhcp_verify,
1742 self.igmp_verify, self.traffic_verify),
1743 port_list = self.generate_port_list(num_subscribers, num_channels),
1744 negative_subscriber_auth = 'all')
1745 assert_equal(test_status, True)
1746
1747 def test_cord_subscriber_join_recv_1200channels(self):
1748 num_subscribers = 1
1749 num_channels = 1200
1750 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1751 num_channels = num_channels,
1752 cbs = (self.tls_verify, self.dhcp_verify,
1753 self.igmp_verify, self.traffic_verify),
1754 port_list = self.generate_port_list(num_subscribers, num_channels),
1755 negative_subscriber_auth = 'all')
1756 assert_equal(test_status, True)
1757
1758 def test_cord_subscriber_join_recv_1500channels(self):
1759 num_subscribers = 1
1760 num_channels = 1500
1761 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1762 num_channels = num_channels,
1763 cbs = (self.tls_verify, self.dhcp_verify,
1764 self.igmp_verify, self.traffic_verify),
1765 port_list = self.generate_port_list(num_subscribers, num_channels),
1766 negative_subscriber_auth = 'all')
1767 assert_equal(test_status, True)
1768
1769 def test_cord_subscriber_join_jump_100channels(self):
1770 num_subscribers = 1
1771 num_channels = 100
1772 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1773 num_channels = num_channels,
1774 cbs = (self.tls_verify, self.dhcp_jump_verify,
1775 self.igmp_jump_verify, self.traffic_verify),
1776 port_list = self.generate_port_list(num_subscribers, num_channels),
1777 negative_subscriber_auth = 'all')
1778 assert_equal(test_status, True)
1779 def test_cord_subscriber_join_jump_400channels(self):
1780 num_subscribers = 1
1781 num_channels = 400
1782 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1783 num_channels = num_channels,
1784 cbs = (self.tls_verify, self.dhcp_jump_verify,
1785 self.igmp_jump_verify, self.traffic_verify),
1786 port_list = self.generate_port_list(num_subscribers, num_channels),
1787 negative_subscriber_auth = 'all')
1788 assert_equal(test_status, True)
1789
1790 def test_cord_subscriber_join_jump_800channels(self):
1791 num_subscribers = 1
1792 num_channels = 800
1793 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1794 num_channels = num_channels,
1795 cbs = (self.tls_verify, self.dhcp_jump_verify,
1796 self.igmp_jump_verify, self.traffic_verify),
1797 port_list = self.generate_port_list(num_subscribers, num_channels),
1798 negative_subscriber_auth = 'all')
1799 assert_equal(test_status, True)
1800 def test_cord_subscriber_join_jump_1200channel(sself):
1801 num_subscribers = 1
1802 num_channels = 1200
1803 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1804 num_channels = num_channels,
1805 cbs = (self.tls_verify, self.dhcp_jump_verify,
1806 self.igmp_jump_verify, self.traffic_verify),
1807 port_list = self.generate_port_list(num_subscribers, num_channels),
1808 negative_subscriber_auth = 'all')
1809 assert_equal(test_status, True)
1810 def test_cord_subscriber_join_jump_1500channels(self):
1811 num_subscribers = 1
1812 num_channels = 1500
1813 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1814 num_channels = num_channels,
1815 cbs = (self.tls_verify, self.dhcp_jump_verify,
1816 self.igmp_jump_verify, self.traffic_verify),
1817 port_list = self.generate_port_list(num_subscribers, num_channels),
1818 negative_subscriber_auth = 'all')
1819 assert_equal(test_status, True)
1820
1821 def test_cord_subscriber_join_next_100channels(self):
1822 num_subscribers = 1
1823 num_channels = 100
1824 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1825 num_channels = num_channels,
1826 cbs = (self.tls_verify, self.dhcp_next_verify,
1827 self.igmp_next_verify, self.traffic_verify),
1828 port_list = self.generate_port_list(num_subscribers, num_channels),
1829 negative_subscriber_auth = 'all')
1830 assert_equal(test_status, True)
1831
1832 def test_cord_subscriber_join_next_400channels(self):
1833 num_subscribers = 1
1834 num_channels = 400
1835 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1836 num_channels = num_channels,
1837 cbs = (self.tls_verify, self.dhcp_next_verify,
1838 self.igmp_next_verify, self.traffic_verify),
1839 port_list = self.generate_port_list(num_subscribers, num_channels),
1840 negative_subscriber_auth = 'all')
1841 assert_equal(test_status, True)
1842
1843 def test_cord_subscriber_join_next_800channels(self):
1844 num_subscribers = 1
1845 num_channels = 800
1846 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1847 num_channels = num_channels,
1848 cbs = (self.tls_verify, self.dhcp_next_verify,
1849 self.igmp_next_verify, self.traffic_verify),
1850 port_list = self.generate_port_list(num_subscribers, num_channels),
1851 negative_subscriber_auth = 'all')
1852 assert_equal(test_status, True)
1853
1854
1855 def test_cord_subscriber_join_next_1200channels(self):
1856 num_subscribers = 1
1857 num_channels = 1200
1858 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1859 num_channels = num_channels,
1860 cbs = (self.tls_verify, self.dhcp_next_verify,
1861 self.igmp_next_verify, self.traffic_verify),
1862 port_list = self.generate_port_list(num_subscribers, num_channels),
1863 negative_subscriber_auth = 'all')
1864 assert_equal(test_status, True)
1865
1866 def test_cord_subscriber_join_next_1500channels(self):
1867 num_subscribers = 1
1868 num_channels = 1500
1869 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1870 num_channels = num_channels,
1871 cbs = (self.tls_verify, self.dhcp_next_verify,
1872 self.igmp_next_verify, self.traffic_verify),
1873 port_list = self.generate_port_list(num_subscribers, num_channels),
1874 negative_subscriber_auth = 'all')
1875 assert_equal(test_status, True)
1876
1877 @nottest
1878 def test_1k_cord_subscribers_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1879 ### """Test 1k subscribers auth with DHCP client requesting out of pool ip and join channel"""
1880 num_subscribers = 1000
1881 num_channels = 1
1882 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1883 num_channels = num_channels,
1884 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario, self.igmp_verify),
1885 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1886 assert_equal(test_status, True)
1887
1888 @nottest
1889 def test_1k_cord_subscribers_join_recv_100channel(self):
1890 ###"""Test 1k subscribers join and receive for 100 channels surfing"""
1891 num_subscribers = 1000
1892 num_channels = 100
1893 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1894 num_channels = num_channels,
1895 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1896 port_list = self.generate_port_list(num_subscribers, num_channels),
1897 negative_subscriber_auth = 'all')
1898 assert_equal(test_status, True)
1899
1900 @nottest
1901 def test_1k_cord_subscribers_join_jump_100channel(self):
1902 ###"""Test 1k subscribers jump and receive for 100 channels surfing"""
1903 num_subscribers = 1000
1904 num_channels = 100
1905 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1906 num_channels = num_channels,
1907 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1908 port_list = self.generate_port_list(num_subscribers, num_channels),
1909 negative_subscriber_auth = 'all')
1910 assert_equal(test_status, True)
1911
1912 @nottest
1913 def test_1k_cord_subscribers_join_next_100channel(self):
1914 ###"""Test 1k subscribers join next for 100 channels"""
1915 num_subscribers = 1000
1916 num_channels = 100
1917 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1918 num_channels = num_channels,
1919 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1920 port_list = self.generate_port_list(num_subscribers, num_channels),
1921 negative_subscriber_auth = 'all')
1922 assert_equal(test_status, True)
1923
1924 @nottest
1925 def test_1k_cord_subscribers_join_recv_400channel(self):
1926 ###"""Test 1k subscribers join and receive for 400 channels surfing"""
1927 num_subscribers = 1000
1928 num_channels = 400
1929 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1930 num_channels = num_channels,
1931 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1932 port_list = self.generate_port_list(num_subscribers, num_channels),
1933 negative_subscriber_auth = 'all')
1934 assert_equal(test_status, True)
1935
1936 @nottest
1937 def test_1k_cord_subscribers_join_jump_400channel(self):
1938 ###"""Test 1k subscribers jump and receive for 400 channels surfing"""
1939 num_subscribers = 1000
1940 num_channels = 400
1941 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1942 num_channels = num_channels,
1943 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1944 port_list = self.generate_port_list(num_subscribers, num_channels),
1945 negative_subscriber_auth = 'all')
1946 assert_equal(test_status, True)
1947
1948 @nottest
1949 def test_1k_cord_subscribers_join_next_400channel(self):
1950 ###"""Test 1k subscribers join next for 400 channels"""
1951 num_subscribers = 1000
1952 num_channels = 400
1953 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1954 num_channels = num_channels,
1955 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1956 port_list = self.generate_port_list(num_subscribers, num_channels),
1957 negative_subscriber_auth = 'all')
1958 assert_equal(test_status, True)
1959
1960 @nottest
1961 def test_1k_cord_subscribers_join_recv_800channel(self):
1962 ###"""Test 1k subscribers join and receive for 800 channels surfing"""
1963 num_subscribers = 1000
1964 num_channels = 800
1965 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1966 num_channels = num_channels,
1967 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1968 port_list = self.generate_port_list(num_subscribers, num_channels),
1969 negative_subscriber_auth = 'all')
1970 assert_equal(test_status, True)
1971
1972 @nottest
1973 def test_1k_cord_subscribers_join_jump_800channel(self):
1974 ###"""Test 1k subscribers jump and receive for 800 channels surfing"""
1975 num_subscribers = 1000
1976 num_channels = 800
1977 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1978 num_channels = num_channels,
1979 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1980 port_list = self.generate_port_list(num_subscribers, num_channels),
1981 negative_subscriber_auth = 'all')
1982 assert_equal(test_status, True)
1983
1984 @nottest
1985 def test_1k_cord_subscribers_join_next_800channel(self):
1986 ###"""Test 1k subscribers join next for 800 channels"""
1987 num_subscribers = 1000
1988 num_channels = 800
1989 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1990 num_channels = num_channels,
1991 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1992 port_list = self.generate_port_list(num_subscribers, num_channels),
1993 negative_subscriber_auth = 'all')
1994 assert_equal(test_status, True)
1995
1996 @nottest
1997 def test_1k_cord_subscribers_join_recv_1200channel(self):
1998 ###"""Test 1k subscribers join and receive for 1200 channels surfing"""
1999 num_subscribers = 1000
2000 num_channels = 1200
2001 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2002 num_channels = num_channels,
2003 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2004 port_list = self.generate_port_list(num_subscribers, num_channels),
2005 negative_subscriber_auth = 'all')
2006 assert_equal(test_status, True)
2007
2008 @nottest
2009 def test_1k_cord_subscribers_join_jump_1200channel(self):
2010 ###"""Test 1k subscribers jump and receive for 1200 channels surfing"""
2011 num_subscribers = 1000
2012 num_channels = 1200
2013 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2014 num_channels = num_channels,
2015 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2016 port_list = self.generate_port_list(num_subscribers, num_channels),
2017 negative_subscriber_auth = 'all')
2018 assert_equal(test_status, True)
2019
2020 @nottest
2021 def test_1k_cord_subscribers_join_next_1200channel(self):
2022 ###"""Test 1k subscribers join next for 1200 channels"""
2023 num_subscribers = 1000
2024 num_channels = 1200
2025 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2026 num_channels = num_channels,
2027 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2028 port_list = self.generate_port_list(num_subscribers, num_channels),
2029 negative_subscriber_auth = 'all')
2030 assert_equal(test_status, True)
2031
2032 @nottest
2033 def test_1k_cord_subscribers_join_recv_1500channel(self):
2034 ###"""Test 1k subscribers join and receive for 1500 channels surfing"""
2035 num_subscribers = 1000
2036 num_channels = 1500
2037 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2038 num_channels = num_channels,
2039 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2040 port_list = self.generate_port_list(num_subscribers, num_channels),
2041 negative_subscriber_auth = 'all')
2042 assert_equal(test_status, True)
2043
2044 @nottest
2045 def test_1k_cord_subscribers_join_jump_1500channel(self):
2046 ###"""Test 1k subscribers jump and receive for 1500 channels surfing"""
2047 num_subscribers = 1000
2048 num_channels = 1500
2049 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2050 num_channels = num_channels,
2051 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2052 port_list = self.generate_port_list(num_subscribers, num_channels),
2053 negative_subscriber_auth = 'all')
2054 assert_equal(test_status, True)
2055
2056 @nottest
2057 def test_1k_cord_subscribers_join_next_1500channel(self):
2058 ###"""Test 1k subscribers join next for 1500 channels"""
2059 num_subscribers = 1000
2060 num_channels = 1500
2061 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2062 num_channels = num_channels,
2063 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2064 port_list = self.generate_port_list(num_subscribers, num_channels),
2065 negative_subscriber_auth = 'all')
2066 assert_equal(test_status, True)
2067
2068 @nottest
2069 def test_5k_cord_subscribers_join_recv_100channel(self):
2070 ###"""Test 5k subscribers join and receive for 100 channels surfing"""
2071 num_subscribers = 5000
2072 num_channels = 100
2073 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2074 num_channels = num_channels,
2075 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2076 port_list = self.generate_port_list(num_subscribers, num_channels),
2077 negative_subscriber_auth = 'all')
2078 assert_equal(test_status, True)
2079
2080 @nottest
2081 def test_5k_cord_subscribers_join_jump_100channel(self):
2082 ###"""Test 5k subscribers jump and receive for 100 channels surfing"""
2083 num_subscribers = 5000
2084 num_channels = 100
2085 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2086 num_channels = num_channels,
2087 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2088 port_list = self.generate_port_list(num_subscribers, num_channels),
2089 negative_subscriber_auth = 'all')
2090 assert_equal(test_status, True)
2091
2092 @nottest
2093 def test_5k_cord_subscribers_join_next_100channel(self):
2094 ###"""Test 5k subscribers join next for 100 channels"""
2095 num_subscribers = 5000
2096 num_channels = 100
2097 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2098 num_channels = num_channels,
2099 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2100 port_list = self.generate_port_list(num_subscribers, num_channels),
2101 negative_subscriber_auth = 'all')
2102 assert_equal(test_status, True)
2103
2104 @nottest
2105 def test_5k_cord_subscribers_join_recv_400channel(self):
2106 ###"""Test 5k subscribers join and receive for 400 channels surfing"""
2107 num_subscribers = 5000
2108 num_channels = 400
2109 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2110 num_channels = num_channels,
2111 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2112 port_list = self.generate_port_list(num_subscribers, num_channels),
2113 negative_subscriber_auth = 'all')
2114 assert_equal(test_status, True)
2115
2116 @nottest
2117 def test_5k_cord_subscribers_join_jump_400channel(self):
2118 ###"""Test 5k subscribers jump and receive for 400 channels surfing"""
2119 num_subscribers = 5000
2120 num_channels = 400
2121 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2122 num_channels = num_channels,
2123 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2124 port_list = self.generate_port_list(num_subscribers, num_channels),
2125 negative_subscriber_auth = 'all')
2126 assert_equal(test_status, True)
2127
2128 @nottest
2129 def test_5k_cord_subscribers_join_next_400channel(self):
2130 ###"""Test 5k subscribers join next for 400 channels"""
2131 num_subscribers = 5000
2132 num_channels = 400
2133 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2134 num_channels = num_channels,
2135 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2136 port_list = self.generate_port_list(num_subscribers, num_channels),
2137 negative_subscriber_auth = 'all')
2138 assert_equal(test_status, True)
2139
2140 @nottest
2141 def test_5k_cord_subscribers_join_recv_800channel(self):
2142 ###"""Test 5k subscribers join and receive for 800 channels surfing"""
2143 num_subscribers = 5000
2144 num_channels = 800
2145 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2146 num_channels = num_channels,
2147 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2148 port_list = self.generate_port_list(num_subscribers, num_channels),
2149 negative_subscriber_auth = 'all')
2150 assert_equal(test_status, True)
2151
2152 @nottest
2153 def test_5k_cord_subscribers_join_jump_800channel(self):
2154 ###"""Test 5k subscribers jump and receive for 800 channels surfing"""
2155 num_subscribers = 5000
2156 num_channels = 800
2157 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2158 num_channels = num_channels,
2159 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2160 port_list = self.generate_port_list(num_subscribers, num_channels),
2161 negative_subscriber_auth = 'all')
2162 assert_equal(test_status, True)
2163
2164 @nottest
2165 def test_5k_cord_subscribers_join_next_800channel(self):
2166 ###"""Test 5k subscribers join next for 800 channels"""
2167 num_subscribers = 5000
2168 num_channels = 800
2169 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2170 num_channels = num_channels,
2171 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2172 port_list = self.generate_port_list(num_subscribers, num_channels),
2173 negative_subscriber_auth = 'all')
2174 assert_equal(test_status, True)
2175
2176 @nottest
2177 def test_5k_cord_subscribers_join_recv_1200channel(self):
2178 ###"""Test 5k subscribers join and receive for 1200 channels surfing"""
2179 num_subscribers = 5000
2180 num_channels = 1200
2181 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2182 num_channels = num_channels,
2183 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2184 port_list = self.generate_port_list(num_subscribers, num_channels),
2185 negative_subscriber_auth = 'all')
2186 assert_equal(test_status, True)
2187
2188 @nottest
2189 def test_5k_cord_subscribers_join_jump_1200channel(self):
2190 ###"""Test 5k subscribers jump and receive for 1200 channels surfing"""
2191 num_subscribers = 5000
2192 num_channels = 1200
2193 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2194 num_channels = num_channels,
2195 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2196 port_list = self.generate_port_list(num_subscribers, num_channels),
2197 negative_subscriber_auth = 'all')
2198 assert_equal(test_status, True)
2199
2200 @nottest
2201 def test_5k_cord_subscribers_join_next_1200channel(self):
2202 ###"""Test 5k subscribers join next for 1200 channels"""
2203 num_subscribers = 5000
2204 num_channels = 1200
2205 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2206 num_channels = num_channels,
2207 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2208 port_list = self.generate_port_list(num_subscribers, num_channels),
2209 negative_subscriber_auth = 'all')
2210 assert_equal(test_status, True)
2211
2212 @nottest
2213 def test_5k_cord_subscribers_join_recv_1500channel(self):
2214 ###"""Test 5k subscribers join and receive for 1500 channels surfing"""
2215 num_subscribers = 5000
2216 num_channels = 1500
2217 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2218 num_channels = num_channels,
2219 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2220 port_list = self.generate_port_list(num_subscribers, num_channels),
2221 negative_subscriber_auth = 'all')
2222 assert_equal(test_status, True)
2223
2224 @nottest
2225 def test_5k_cord_subscribers_join_jump_1500channel(self):
2226 ###"""Test 5k subscribers jump and receive for 1500 channels surfing"""
2227 num_subscribers = 5000
2228 num_channels = 1500
2229 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2230 num_channels = num_channels,
2231 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2232 port_list = self.generate_port_list(num_subscribers, num_channels),
2233 negative_subscriber_auth = 'all')
2234 assert_equal(test_status, True)
2235
2236 @nottest
2237 def test_5k_cord_subscribers_join_next_1500channel(self):
2238 ###"""Test 5k subscribers join next for 1500 channels"""
2239 num_subscribers = 5000
2240 num_channels = 1500
2241 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2242 num_channels = num_channels,
2243 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2244 port_list = self.generate_port_list(num_subscribers, num_channels),
2245 negative_subscriber_auth = 'all')
2246 assert_equal(test_status, True)
2247
2248 @nottest
2249 def test_10k_cord_subscribers_join_recv_100channel(self):
2250 ###"""Test 10k subscribers join and receive for 100 channels surfing"""
2251 num_subscribers = 10000
2252 num_channels = 100
2253 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2254 num_channels = num_channels,
2255 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2256 port_list = self.generate_port_list(num_subscribers, num_channels),
2257 negative_subscriber_auth = 'all')
2258 assert_equal(test_status, True)
2259
2260 @nottest
2261 def test_10k_cord_subscribers_join_jump_100channel(self):
2262 ###"""Test 10k subscribers jump and receive for 100 channels surfing"""
2263 num_subscribers = 10000
2264 num_channels = 100
2265 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2266 num_channels = num_channels,
2267 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2268 port_list = self.generate_port_list(num_subscribers, num_channels),
2269 negative_subscriber_auth = 'all')
2270 assert_equal(test_status, True)
2271
2272 @nottest
2273 def test_10k_cord_subscribers_join_next_100channel(self):
2274 ###"""Test 10k subscribers join next for 100 channels"""
2275 num_subscribers = 10000
2276 num_channels = 100
2277 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2278 num_channels = num_channels,
2279 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2280 port_list = self.generate_port_list(num_subscribers, num_channels),
2281 negative_subscriber_auth = 'all')
2282 assert_equal(test_status, True)
2283
2284 @nottest
2285 def test_100k_cord_subscribers_join_recv_100channel(self):
2286 ###"""Test 100k subscribers join and receive for 100 channels surfing"""
2287 num_subscribers = 100000
2288 num_channels = 100
2289 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2290 num_channels = num_channels,
2291 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2292 port_list = self.generate_port_list(num_subscribers, num_channels),
2293 negative_subscriber_auth = 'all')
2294 assert_equal(test_status, True)
2295
2296 @nottest
2297 def test_100k_cord_subscribers_join_jump_100channel(self):
2298 ###"""Test 100k subscribers jump and receive for 100 channels surfing"""
2299 num_subscribers = 100000
2300 num_channels = 100
2301 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2302 num_channels = num_channels,
2303 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2304 port_list = self.generate_port_list(num_subscribers, num_channels),
2305 negative_subscriber_auth = 'all')
2306 assert_equal(test_status, True)
2307
2308 @nottest
2309 def test_100k_cord_subscribers_join_next_100channel(self):
2310 ###"""Test 100k subscribers join next for 100 channels"""
2311 num_subscribers = 100000
2312 num_channels = 100
2313 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2314 num_channels = num_channels,
2315 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2316 port_list = self.generate_port_list(num_subscribers, num_channels),
2317 negative_subscriber_auth = 'all')
2318 assert_equal(test_status, True)
2319
2320 @nottest
2321 def test_10k_cord_subscribers_join_recv_400channel(self):
2322 ###"""Test 10k subscribers join and receive for 400 channels surfing"""
2323 num_subscribers = 10000
2324 num_channels = 400
2325 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2326 num_channels = num_channels,
2327 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2328 port_list = self.generate_port_list(num_subscribers, num_channels),
2329 negative_subscriber_auth = 'all')
2330 assert_equal(test_status, True)
2331
2332 @nottest
2333 def test_10k_cord_subscribers_join_jump_400channel(self):
2334 ###"""Test 10k subscribers jump and receive for 400 channels surfing"""
2335 num_subscribers = 10000
2336 num_channels = 400
2337 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2338 num_channels = num_channels,
2339 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2340 port_list = self.generate_port_list(num_subscribers, num_channels),
2341 negative_subscriber_auth = 'all')
2342 assert_equal(test_status, True)
2343
2344 @nottest
2345 def test_10k_cord_subscribers_join_next_400channel(self):
2346 ###"""Test 10k subscribers join next for 400 channels"""
2347 num_subscribers = 10000
2348 num_channels = 400
2349 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2350 num_channels = num_channels,
2351 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2352 port_list = self.generate_port_list(num_subscribers, num_channels),
2353 negative_subscriber_auth = 'all')
2354 assert_equal(test_status, True)
2355
2356 @nottest
2357 def test_10k_cord_subscribers_join_recv_800channel(self):
2358 ###"""Test 10k subscribers join and receive for 800 channels surfing"""
2359 num_subscribers = 10000
2360 num_channels = 800
2361 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2362 num_channels = num_channels,
2363 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2364 port_list = self.generate_port_list(num_subscribers, num_channels),
2365 negative_subscriber_auth = 'all')
2366 assert_equal(test_status, True)
2367
2368 @nottest
2369 def test_10k_cord_subscribers_join_jump_800channel(self):
2370 ###"""Test 10k subscribers jump and receive for 800 channels surfing"""
2371 num_subscribers = 10000
2372 num_channels = 800
2373 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2374 num_channels = num_channels,
2375 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2376 port_list = self.generate_port_list(num_subscribers, num_channels),
2377 negative_subscriber_auth = 'all')
2378 assert_equal(test_status, True)
2379
2380 @nottest
2381 def test_10k_cord_subscribers_join_next_800channel(self):
2382 ###"""Test 10k subscribers join next for 800 channels"""
2383 num_subscribers = 10000
2384 num_channels = 800
2385 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2386 num_channels = num_channels,
2387 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2388 port_list = self.generate_port_list(num_subscribers, num_channels),
2389 negative_subscriber_auth = 'all')
2390 assert_equal(test_status, True)
2391
2392 @nottest
2393 def test_10k_cord_subscribers_join_recv_1200channel(self):
2394 ###"""Test 10k subscribers join and receive for 1200 channels surfing"""
2395 num_subscribers = 10000
2396 num_channels = 1200
2397 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2398 num_channels = num_channels,
2399 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2400 port_list = self.generate_port_list(num_subscribers, num_channels),
2401 negative_subscriber_auth = 'all')
2402 assert_equal(test_status, True)
2403
2404 @nottest
2405 def test_10k_cord_subscribers_join_jump_1200channel(self):
2406 ###"""Test 10k subscribers jump and receive for 1200 channels surfing"""
2407 num_subscribers = 10000
2408 num_channels = 1200
2409 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2410 num_channels = num_channels,
2411 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2412 port_list = self.generate_port_list(num_subscribers, num_channels),
2413 negative_subscriber_auth = 'all')
2414 assert_equal(test_status, True)
2415
2416 @nottest
2417 def test_10k_cord_subscribers_join_next_1200channel(self):
2418 ###"""Test 10k subscribers join next for 1200 channels"""
2419 num_subscribers = 10000
2420 num_channels = 1200
2421 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2422 num_channels = num_channels,
2423 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2424 port_list = self.generate_port_list(num_subscribers, num_channels),
2425 negative_subscriber_auth = 'all')
2426 assert_equal(test_status, True)
2427
2428 @nottest
2429 def test_10k_cord_subscribers_join_recv_1500channel(self):
2430 ###"""Test 10k subscribers join and receive for 1500 channels surfing"""
2431 num_subscribers = 10000
2432 num_channels = 1500
2433 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2434 num_channels = num_channels,
2435 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2436 port_list = self.generate_port_list(num_subscribers, num_channels),
2437 negative_subscriber_auth = 'all')
2438 assert_equal(test_status, True)
2439
2440 @nottest
2441 def test_10k_cord_subscribers_join_jump_1500channel(self):
2442 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2443 num_subscribers = 10000
2444 num_channels = 1500
2445 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2446 num_channels = num_channels,
2447 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2448 port_list = self.generate_port_list(num_subscribers, num_channels),
2449 negative_subscriber_auth = 'all')
2450 assert_equal(test_status, True)
2451
2452 @nottest
2453 def test_10k_cord_subscribers_join_next_1500channel(self):
2454 ###"""Test 10k subscribers join next for 1500 channels"""
2455 num_subscribers = 10000
2456 num_channels = 1500
2457 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2458 num_channels = num_channels,
2459 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2460 port_list = self.generate_port_list(num_subscribers, num_channels),
2461 negative_subscriber_auth = 'all')
2462 assert_equal(test_status, True)
2463
2464 @nottest
2465 def test_100k_cord_subscribers_join_recv_1500channel(self):
2466 ###"""Test 100k subscribers join and receive for 1500 channels surfing"""
2467 num_subscribers = 100000
2468 num_channels = 1500
2469 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2470 num_channels = num_channels,
2471 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2472 port_list = self.generate_port_list(num_subscribers, num_channels),
2473 negative_subscriber_auth = 'all')
2474 assert_equal(test_status, True)
2475
2476 @nottest
2477 def test_100k_cord_subscribers_join_jump_1500channel(self):
2478 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2479 num_subscribers = 100000
2480 num_channels = 1500
2481 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2482 num_channels = num_channels,
2483 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2484 port_list = self.generate_port_list(num_subscribers, num_channels),
2485 negative_subscriber_auth = 'all')
2486 assert_equal(test_status, True)
2487
2488 @nottest
2489 def test_100k_cord_subscribers_join_next_1500channel(self):
2490 ###"""Test 10k subscribers join next for 1500 channels"""
2491 num_subscribers = 100000
2492 num_channels = 1500
2493 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2494 num_channels = num_channels,
2495 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2496 port_list = self.generate_port_list(num_subscribers, num_channels),
2497 negative_subscriber_auth = 'all')
2498 assert_equal(test_status, True)