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