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