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