blob: d5853236d04f3a1d57e032e8230b79f5344d362c [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
A R Karthickb7e80902016-05-17 09:38:31 -070020import time, monotonic
21import os, sys
22import tempfile
23import random
24import threading
25import json
A R Karthick65c4d722016-07-18 14:20:17 -070026import requests
A R Karthickb7e80902016-05-17 09:38:31 -070027from Stats import Stats
28from OnosCtrl import OnosCtrl
29from DHCP import DHCPTest
30from EapTLS import TLSAuthTest
31from Channels import Channels, IgmpChannel
32from subscriberDb import SubscriberDB
33from threadPool import ThreadPool
A.R Karthick95d044e2016-06-10 18:44:36 -070034from portmaps import g_subscriber_port_map
A R Karthickb7e80902016-05-17 09:38:31 -070035from OltConfig import *
A R Karthicka013a272016-08-16 16:40:19 -070036from CordTestServer import cord_test_onos_restart, cord_test_shell
A R Karthick76a497a2017-04-12 10:59:39 -070037from CordTestUtils import log_test
A R Karthick9313b762016-11-07 13:14:35 -080038from CordLogger import CordLogger
A R Karthickb7e80902016-05-17 09:38:31 -070039
A R Karthick76a497a2017-04-12 10:59:39 -070040log_test.setLevel('INFO')
A R Karthickb7e80902016-05-17 09:38:31 -070041
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 Karthick76a497a2017-04-12 10:59:39 -070067 log_test.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):
A R Karthick76a497a2017-04-12 10:59:39 -0700138 log_test.info('Subscriber %s on port %s receiving from group %s, channel %d' %
A R Karthick338268f2016-06-21 17:12:13 -0700139 (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:
A R Karthick76a497a2017-04-12 10:59:39 -0700142 log_test.info('Subscriber %s on port %s timed out' %(self.name, self.rx_intf))
A R Karthicka013a272016-08-16 16:40:19 -0700143 else:
A R Karthick76a497a2017-04-12 10:59:39 -0700144 log_test.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 Karthick76a497a2017-04-12 10:59:39 -0700151 log_test.info('Packet received for group %s, subscriber %s, port %s' %
A R Karthick338268f2016-06-21 17:12:13 -0700152 (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)
A R Karthick76a497a2017-04-12 10:59:39 -0700162 log_test.debug('Packet received in %.3f usecs for group %s after join' %(delta, pkt[IP].dst))
A R Karthickb7e80902016-05-17 09:38:31 -0700163
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
A R Karthick76a497a2017-04-12 10:59:39 -0700177 log_test.info('This service is failed and other services will not run for this subscriber')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700178 break
A R Karthick76a497a2017-04-12 10:59:39 -0700179 log_test.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 Karthick5968e0d2017-05-16 14:50:46 -0700207 olt_conf_file = os.getenv('OLT_CONFIG_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)
A R Karthick76a497a2017-04-12 10:59:39 -0700323 log_test.info('Installing the multi table app %s for subscriber test' %(cls.table_app_file))
A R Karthickb7e80902016-05-17 09:38:31 -0700324 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)
A R Karthick76a497a2017-04-12 10:59:39 -0700334 log_test.info('Installing back the cord igmp app %s for subscriber test on exit' %(cls.app_file))
A R Karthickb7e80902016-05-17 09:38:31 -0700335 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 Karthick76a497a2017-04-12 10:59:39 -0700342 log_test.info('ONOS restart is disabled. Skipping ONOS restart')
A R Karthick65c4d722016-07-18 14:20:17 -0700343 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
A R Karthick76a497a2017-04-12 10:59:39 -0700354 log_test.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'
A R Karthicka013a272016-08-16 16:40:19 -0700385 try:
A.R Karthick98fc7cf2017-05-17 14:39:46 -0700386 cord_test_shell(cmd)
387 ##Since olt config is used for this test, we just fire a careless local cmd as well
A R Karthicka013a272016-08-16 16:40:19 -0700388 os.system(cmd)
A.R Karthick98fc7cf2017-05-17 14:39:46 -0700389 finally:
390 return
A R Karthicka013a272016-08-16 16:40:19 -0700391
A R Karthickb7e80902016-05-17 09:38:31 -0700392 def onos_aaa_load(self):
393 if self.aaa_loaded:
394 return
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700395 aaa_dict = {'apps' : { 'org.opencord.aaa' : { 'AAA' : { 'radiusSecret': 'radius_password',
396 'radiusIp': '172.17.0.2' } } } }
A R Karthickb7e80902016-05-17 09:38:31 -0700397 radius_ip = os.getenv('ONOS_AAA_IP') or '172.17.0.2'
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700398 aaa_dict['apps']['org.opencord.aaa']['AAA']['radiusIp'] = radius_ip
399 self.onos_load_config('org.opencord.aaa', aaa_dict)
A R Karthickb7e80902016-05-17 09:38:31 -0700400 self.aaa_loaded = True
401
402 def onos_dhcp_table_load(self, config = None):
403 dhcp_dict = {'apps' : { 'org.onosproject.dhcp' : { 'dhcp' : copy.copy(self.dhcp_server_config) } } }
404 dhcp_config = dhcp_dict['apps']['org.onosproject.dhcp']['dhcp']
405 if config:
406 for k in config.keys():
407 if dhcp_config.has_key(k):
408 dhcp_config[k] = config[k]
409 self.onos_load_config('org.onosproject.dhcp', dhcp_dict)
410
411 def onos_load_config(self, app, config):
412 status, code = OnosCtrl.config(config)
413 if status is False:
A R Karthick76a497a2017-04-12 10:59:39 -0700414 log_test.info('JSON config request for app %s returned status %d' %(app, code))
A R Karthickb7e80902016-05-17 09:38:31 -0700415 assert_equal(status, True)
416 time.sleep(2)
417
418 def dhcp_sndrcv(self, dhcp, update_seed = False):
419 cip, sip = dhcp.discover(update_seed = update_seed)
420 assert_not_equal(cip, None)
421 assert_not_equal(sip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700422 log_test.info('Got dhcp client IP %s from server %s for mac %s' %
A R Karthickb7e80902016-05-17 09:38:31 -0700423 (cip, sip, dhcp.get_mac(cip)[0]))
424 return cip,sip
425
426 def dhcp_request(self, subscriber, seed_ip = '10.10.10.1', update_seed = False):
427 config = {'startip':'10.10.10.20', 'endip':'10.10.10.200',
428 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
429 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
430 self.onos_dhcp_table_load(config)
431 dhcp = DHCPTest(seed_ip = seed_ip, iface = subscriber.iface)
432 cip, sip = self.dhcp_sndrcv(dhcp, update_seed = update_seed)
433 return cip, sip
434
435 def recv_channel_cb(self, pkt):
436 ##First verify that we have received the packet for the joined instance
437 chan = self.subscriber.caddr(pkt[IP].dst)
438 assert_equal(chan in self.subscriber.join_map.keys(), True)
439 recv_time = monotonic.monotonic() * 1000000
440 join_time = self.subscriber.join_map[chan][self.subscriber.STATS_JOIN].start
441 delta = recv_time - join_time
442 self.subscriber.join_rx_stats.update(packets=1, t = delta, usecs = True)
443 self.subscriber.channel_update(chan, self.subscriber.STATS_RX, 1, t = delta)
A R Karthick76a497a2017-04-12 10:59:39 -0700444 log_test.debug('Packet received in %.3f usecs for group %s after join' %(delta, pkt[IP].dst))
A R Karthickb7e80902016-05-17 09:38:31 -0700445 self.test_status = True
446
A R Karthick65c4d722016-07-18 14:20:17 -0700447 def traffic_verify(self, subscriber):
448 if subscriber.has_service('TRAFFIC'):
449 url = 'http://www.google.com'
450 resp = requests.get(url)
451 self.test_status = resp.ok
452 if resp.ok == False:
A R Karthick76a497a2017-04-12 10:59:39 -0700453 log_test.info('Subscriber %s failed get from url %s with status code %d'
A R Karthick65c4d722016-07-18 14:20:17 -0700454 %(subscriber.name, url, resp.status_code))
455 else:
A R Karthick76a497a2017-04-12 10:59:39 -0700456 log_test.info('GET request from %s succeeded for subscriber %s'
A R Karthick65c4d722016-07-18 14:20:17 -0700457 %(url, subscriber.name))
A R Karthicka013a272016-08-16 16:40:19 -0700458 return self.test_status
A R Karthick65c4d722016-07-18 14:20:17 -0700459
A R Karthickb7e80902016-05-17 09:38:31 -0700460 def tls_verify(self, subscriber):
461 if subscriber.has_service('TLS'):
462 time.sleep(2)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700463 tls = TLSAuthTest(intf = subscriber.rx_intf)
A R Karthick76a497a2017-04-12 10:59:39 -0700464 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700465 tls.runTest()
466 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700467 return self.test_status
468 else:
469 self.test_status = True
470 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700471
472 def dhcp_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700473 if subscriber.has_service('DHCP'):
474 cip, sip = self.dhcp_request(subscriber, update_seed = True)
A R Karthick76a497a2017-04-12 10:59:39 -0700475 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700476 subscriber.src_list = [cip]
477 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700478 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700479 else:
480 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
481 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700482 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700483
484 def dhcp_jump_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700485 if subscriber.has_service('DHCP'):
486 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.200.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700487 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700488 subscriber.src_list = [cip]
489 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700490 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700491 else:
492 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
493 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700494 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700495
496 def dhcp_next_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700497 if subscriber.has_service('DHCP'):
498 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.150.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700499 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700500 subscriber.src_list = [cip]
501 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700502 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700503 else:
504 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
505 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700506 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700507
508 def igmp_verify(self, subscriber):
509 chan = 0
510 if subscriber.has_service('IGMP'):
A R Karthick338268f2016-06-21 17:12:13 -0700511 ##We wait for all the subscribers to join before triggering leaves
512 if subscriber.rx_port > 1:
513 time.sleep(5)
514 subscriber.channel_join(chan, delay = 0)
515 self.num_joins += 1
516 while self.num_joins < self.num_subscribers:
517 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700518 log_test.info('All subscribers have joined the channel')
A R Karthick338268f2016-06-21 17:12:13 -0700519 for i in range(10):
520 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
A R Karthick76a497a2017-04-12 10:59:39 -0700521 log_test.info('Leaving channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700522 subscriber.channel_leave(chan)
A R Karthick338268f2016-06-21 17:12:13 -0700523 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700524 log_test.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 -0700525 #Should not receive packets for this subscriber
526 self.recv_timeout = True
527 subscriber.recv_timeout = True
528 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
529 subscriber.recv_timeout = False
530 self.recv_timeout = False
A R Karthick76a497a2017-04-12 10:59:39 -0700531 log_test.info('Joining channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthick338268f2016-06-21 17:12:13 -0700532 subscriber.channel_join(chan, delay = 0)
A R Karthickb7e80902016-05-17 09:38:31 -0700533 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700534 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700535
536 def igmp_jump_verify(self, subscriber):
537 if subscriber.has_service('IGMP'):
538 for i in xrange(subscriber.num):
A R Karthick76a497a2017-04-12 10:59:39 -0700539 log_test.info('Subscriber %s jumping channel' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700540 chan = subscriber.channel_jump(delay=0)
541 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 1)
A R Karthick76a497a2017-04-12 10:59:39 -0700542 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700543 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700544 log_test.info('Interface %s Jump RX stats for subscriber %s, %s' %(subscriber.iface, subscriber.name, subscriber.join_rx_stats))
A R Karthickb7e80902016-05-17 09:38:31 -0700545 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700546 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700547
548 def igmp_next_verify(self, subscriber):
549 if subscriber.has_service('IGMP'):
550 for i in xrange(subscriber.num):
551 if i:
552 chan = subscriber.channel_join_next(delay=0)
553 else:
554 chan = subscriber.channel_join(i, delay=0)
A R Karthick76a497a2017-04-12 10:59:39 -0700555 log_test.info('Joined next channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700556 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count=1)
A R Karthick76a497a2017-04-12 10:59:39 -0700557 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700558 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700559 log_test.info('Interface %s Join Next RX stats for subscriber %s, %s' %(subscriber.iface, subscriber.name, subscriber.join_rx_stats))
A R Karthickb7e80902016-05-17 09:38:31 -0700560 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700561 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700562
563 def generate_port_list(self, subscribers, channels):
564 return self.port_list[:subscribers]
565
566 def subscriber_load(self, create = True, num = 10, num_channels = 1, channel_start = 0, port_list = []):
567 '''Load the subscriber from the database'''
A R Karthick4b72d4b2016-06-15 11:09:17 -0700568 self.subscriber_db = SubscriberDB(create = create, services = self.test_services)
A R Karthickb7e80902016-05-17 09:38:31 -0700569 if create is True:
570 self.subscriber_db.generate(num)
571 self.subscriber_info = self.subscriber_db.read(num)
572 self.subscriber_list = []
573 if not port_list:
574 port_list = self.generate_port_list(num, num_channels)
575
576 index = 0
577 for info in self.subscriber_info:
A.R Karthick95d044e2016-06-10 18:44:36 -0700578 self.subscriber_list.append(Subscriber(name=info['Name'],
A R Karthickb7e80902016-05-17 09:38:31 -0700579 service=info['Service'],
580 port_map = self.port_map,
581 num=num_channels,
582 channel_start = channel_start,
583 tx_port = port_list[index][0],
584 rx_port = port_list[index][1]))
585 if num_channels > 1:
586 channel_start += num_channels
587 index += 1
588
589 #load the ssm list for all subscriber channels
590 igmpChannel = IgmpChannel()
591 ssm_groups = map(lambda sub: sub.channels, self.subscriber_list)
592 ssm_list = reduce(lambda ssm1, ssm2: ssm1+ssm2, ssm_groups)
593 igmpChannel.igmp_load_ssm_config(ssm_list)
594
A.R Karthick95d044e2016-06-10 18:44:36 -0700595 def subscriber_join_verify( self, num_subscribers = 10, num_channels = 1,
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700596 channel_start = 0, cbs = None, port_list = [], negative_subscriber_auth = None):
A R Karthickb7e80902016-05-17 09:38:31 -0700597 self.test_status = False
A R Karthicka013a272016-08-16 16:40:19 -0700598 self.ovs_cleanup()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700599 subscribers_count = num_subscribers
600 sub_loop_count = num_subscribers
A R Karthickb7e80902016-05-17 09:38:31 -0700601 self.subscriber_load(create = True, num = num_subscribers,
602 num_channels = num_channels, channel_start = channel_start, port_list = port_list)
603 self.onos_aaa_load()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700604 self.thread_pool = ThreadPool(min(100, subscribers_count), queue_size=1, wait_timeout=1)
605
A R Karthick338268f2016-06-21 17:12:13 -0700606 chan_leave = False #for single channel, multiple subscribers
A R Karthicke237aee2016-12-01 17:46:43 -0800607 if cbs is None:
A R Karthick65c4d722016-07-18 14:20:17 -0700608 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
A R Karthick338268f2016-06-21 17:12:13 -0700609 chan_leave = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700610 cbs_negative = cbs
A R Karthickb7e80902016-05-17 09:38:31 -0700611 for subscriber in self.subscriber_list:
612 subscriber.start()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700613 if negative_subscriber_auth is 'half' and sub_loop_count%2 is not 0:
614 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
615 elif negative_subscriber_auth is 'onethird' and sub_loop_count%3 is not 0:
616 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
617 else:
618 cbs = cbs_negative
619 sub_loop_count = sub_loop_count - 1
A R Karthickb7e80902016-05-17 09:38:31 -0700620 pool_object = subscriber_pool(subscriber, cbs)
621 self.thread_pool.addTask(pool_object.pool_cb)
622 self.thread_pool.cleanUpThreads()
623 for subscriber in self.subscriber_list:
624 subscriber.stop()
A R Karthick338268f2016-06-21 17:12:13 -0700625 if chan_leave is True:
626 subscriber.channel_leave(0)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700627 subscribers_count = 0
A R Karthickb7e80902016-05-17 09:38:31 -0700628 return self.test_status
629
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700630 def tls_invalid_cert(self, subscriber):
631 if subscriber.has_service('TLS'):
632 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700633 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700634 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_INVALID)
635 tls.runTest()
636 if tls.failTest == True:
637 self.test_status = False
638 return self.test_status
639 else:
640 self.test_status = True
641 return self.test_status
642
643 def tls_no_cert(self, subscriber):
644 if subscriber.has_service('TLS'):
645 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700646 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700647 tls = TLSAuthTest(client_cert = '')
648 tls.runTest()
649 if tls.failTest == True:
650 self.test_status = False
651 return self.test_status
652 else:
653 self.test_status = True
654 return self.test_status
655
656 def tls_self_signed_cert(self, subscriber):
657 if subscriber.has_service('TLS'):
658 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700659 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700660 tls = TLSAuthTest(client_cert = self.CLIENT_CERT)
661 tls.runTest()
662 if tls.failTest == False:
663 self.test_status = True
664 return self.test_status
665 else:
666 self.test_status = True
667 return self.test_status
668
669 def tls_non_ca_authrized_cert(self, subscriber):
670 if subscriber.has_service('TLS'):
671 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700672 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700673 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_NON_CA_AUTHORIZED)
674 tls.runTest()
675 if tls.failTest == False:
676 self.test_status = True
677 return self.test_status
678 else:
679 self.test_status = True
680 return self.test_status
681
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700682 def tls_Nsubscribers_use_same_valid_cert(self, subscriber):
683 if subscriber.has_service('TLS'):
684 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700685 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700686 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)
A R Karthick76a497a2017-04-12 10:59:39 -0700700 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700701 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):
A R Karthick76a497a2017-04-12 10:59:39 -0700710 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_test.info('Releasing ip %s to server %s' %(cip, sip))
717 assert_equal(self.dhcp.release(cip), True)
718 log_test.info('Triggering DHCP discover again after release')
719 cip2, sip2 = self.send_recv(update_seed = True)
720 log_test.info('Verifying released IP was given back on rediscover')
721 assert_equal(cip, cip2)
722 log_test.info('Test done. Releasing ip %s to server %s' %(cip2, sip2))
723 assert_equal(self.dhcp.release(cip2), True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700724
725 def dhcp_client_reboot_scenario(self, subscriber):
726 if subscriber.has_service('DHCP'):
727 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700728 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700729 tl = self.subscriber_dhcp_client_request_after_reboot()
730 self.test_status = True
731 return self.test_status
732 else:
733 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
734 self.test_status = True
735 return self.test_status
736
737 def subscriber_dhcp_client_request_after_reboot(self, iface = INTF_RX_DEFAULT):
738 #''' Client sends DHCP Request after reboot.'''
739
740 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
741 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
742 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
743 self.onos_dhcp_table_load(config)
744 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
745 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700746 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700747 (cip, sip, mac) )
748
A R Karthick76a497a2017-04-12 10:59:39 -0700749 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700750
751 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700752 log_test.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700753 assert_not_equal(cip, None)
754
755 else:
756 new_cip, new_sip = self.dhcp.only_request(cip, mac)
757 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700758 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700759 os.system('ifconfig '+iface+' down')
A R Karthick76a497a2017-04-12 10:59:39 -0700760 log_test.info('Client goes down.')
761 log_test.info('Delay for 5 seconds.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700762
763 time.sleep(5)
764
765 os.system('ifconfig '+iface+' up')
A R Karthick76a497a2017-04-12 10:59:39 -0700766 log_test.info('Client is up now.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700767
768 new_cip, new_sip = self.dhcp.only_request(cip, mac)
769 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700770 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700771 assert_not_equal(new_cip, None)
772 elif new_cip != None:
A R Karthick76a497a2017-04-12 10:59:39 -0700773 log_test.info("Got DHCP ACK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700774
775 def dhcp_client_renew_scenario(self, subscriber):
776 if subscriber.has_service('DHCP'):
777 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700778 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700779 tl = self.subscriber_dhcp_client_renew_time()
780 self.test_status = True
781 return self.test_status
782 else:
783 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
784 self.test_status = True
785 return self.test_status
786
787 def subscriber_dhcp_client_renew_time(self, iface = INTF_RX_DEFAULT):
788 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
789 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
790 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
791 self.onos_dhcp_table_load(config)
792 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
793 cip, sip, mac , lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700794 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700795 (cip, sip, mac) )
796
A R Karthick76a497a2017-04-12 10:59:39 -0700797 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700798 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700799 log_test.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700800 assert_not_equal(cip, None)
801 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700802 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700803 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, renew_time = True)
804 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700805 log_test.info("Client 's Renewal time is :%s",lval)
806 log_test.info("Generating delay till renewal time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700807 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700808 log_test.info("Client Sending Unicast DHCP request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700809 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac, unicast = True)
810 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700811 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700812 (latest_cip, mac, latest_sip) )
813
814 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700815 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700816 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700817 log_test.info("Got DHCP NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700818
819 def dhcp_server_reboot_scenario(self, subscriber):
820 if subscriber.has_service('DHCP'):
821 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700822 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700823 tl = self.subscriber_dhcp_server_after_reboot()
824 self.test_status = True
825 return self.test_status
826 else:
827 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
828 self.test_status = True
829 return self.test_status
830
831 def subscriber_dhcp_server_after_reboot(self, iface = INTF_RX_DEFAULT):
832 ''' DHCP server goes down.'''
833 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
834 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
835 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
836 self.onos_dhcp_table_load(config)
837 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
838 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700839 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700840 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700841 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700842 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700843 log_test.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700844 assert_not_equal(cip, None)
845 else:
846 new_cip, new_sip = self.dhcp.only_request(cip, mac)
847 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700848 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700849 assert_not_equal(new_cip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700850 log_test.info('Getting DHCP server Down.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700851 onos_ctrl = OnosCtrl(self.dhcp_app)
852 onos_ctrl.deactivate()
853 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700854 log_test.info("Sending DHCP Request.")
855 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700856 new_cip, new_sip = self.dhcp.only_request(cip, mac)
857 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700858 log_test.info('')
859 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700860 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700861 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700862 assert_equal(new_cip,None) #Neagtive Test Case
A R Karthick76a497a2017-04-12 10:59:39 -0700863 log_test.info('Getting DHCP server Up.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700864# self.activate_apps(self.dhcp_app)
865 onos_ctrl = OnosCtrl(self.dhcp_app)
866 status, _ = onos_ctrl.activate()
867 assert_equal(status, True)
868 time.sleep(3)
869 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700870 log_test.info("Sending DHCP Request after DHCP server is up.")
871 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700872 new_cip, new_sip = self.dhcp.only_request(cip, mac)
873 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700874 log_test.info('')
875 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700876 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700877 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700878 assert_equal(new_cip,None) #Neagtive Test Case
879
880 def dhcp_client_rebind_scenario(self, subscriber):
881 if subscriber.has_service('DHCP'):
882 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700883 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700884 tl = self.subscriber_dhcp_client_rebind_time()
885 self.test_status = True
886 return self.test_status
887 else:
888 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
889 self.test_status = True
890 return self.test_status
891
892 def subscriber_dhcp_client_rebind_time(self, iface = INTF_RX_DEFAULT):
893 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
894 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
895 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
896 self.onos_dhcp_table_load(config)
897 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
898 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700899 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700900 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700901 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700902 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700903 log_test.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700904 assert_not_equal(cip, None)
905 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700906 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700907 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, rebind_time = True)
908 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700909 log_test.info("Client 's Rebind time is :%s",lval)
910 log_test.info("Generating delay till rebind time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700911 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700912 log_test.info("Client Sending broadcast DHCP requests for renewing lease or for getting new ip.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700913 self.dhcp.after_T2 = True
914 for i in range(0,4):
915 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac)
916 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700917 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700918 (latest_cip, mac, latest_sip) )
919 break
920 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700921 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700922 assert_not_equal(latest_cip, None)
923 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700924 log_test.info("Got DHCP NAK.Lease not Renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700925
926 def dhcp_starvation_scenario(self, subscriber):
927 if subscriber.has_service('DHCP'):
928 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700929 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700930 tl = self.subscriber_dhcp_starvation()
931 self.test_status = True
932 return self.test_status
933 else:
934 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
935 self.test_status = True
936 return self.test_status
937
938 def subscriber_dhcp_starvation(self, iface = INTF_RX_DEFAULT):
939 '''DHCP starve'''
940 config = {'startip':'182.17.0.20', 'endip':'182.17.0.69',
941 'ip':'182.17.0.2', 'mac': "ca:fe:c3:fe:ca:fe",
942 'subnet': '255.255.255.0', 'broadcast':'182.17.0.255', 'router':'182.17.0.1'}
943 self.onos_dhcp_table_load(config)
944 self.dhcp = DHCPTest(seed_ip = '182.17.0.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -0700945 log_test.info('Verifying 1 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700946 for x in xrange(50):
947 mac = RandMAC()._fix()
948 self.send_recv(mac = mac)
A R Karthick76a497a2017-04-12 10:59:39 -0700949 log_test.info('Verifying 2 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700950 cip, sip = self.send_recv(update_seed = True, validate = False)
951 assert_equal(cip, None)
952 assert_equal(sip, None)
953
954 def dhcp_same_client_multi_discovers_scenario(self, subscriber):
955 if subscriber.has_service('DHCP'):
956 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700957 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700958 tl = self.subscriber_dhcp_same_client_multiple_discover()
959 self.test_status = True
960 return self.test_status
961 else:
962 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
963 self.test_status = True
964 return self.test_status
965
966 def subscriber_dhcp_same_client_multiple_discover(self, iface = INTF_RX_DEFAULT):
967 ''' DHCP Client sending multiple discover . '''
968 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
969 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
970 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
971 self.onos_dhcp_table_load(config)
972 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
973 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700974 log_test.info('Got dhcp client IP %s from server %s for mac %s . Not going to send DHCPREQUEST.' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700975 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700976 log_test.info('Triggering DHCP discover again.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700977 new_cip, new_sip, new_mac , lval = self.dhcp.only_discover()
978 if cip == new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700979 log_test.info('Got same ip for 2nd DHCP discover for client IP %s from server %s for mac %s. Triggering DHCP Request. '
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700980 % (new_cip, new_sip, new_mac) )
981 elif cip != new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700982 log_test.info('Ip after 1st discover %s' %cip)
983 log_test.info('Map after 2nd discover %s' %new_cip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700984 assert_equal(cip, new_cip)
985
986 def dhcp_same_client_multi_request_scenario(self, subscriber):
987 if subscriber.has_service('DHCP'):
988 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700989 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700990 tl = self.subscriber_dhcp_same_client_multiple_request()
991 self.test_status = True
992 return self.test_status
993 else:
994 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
995 self.test_status = True
996 return self.test_status
997
998 def subscriber_dhcp_same_client_multiple_request(self, iface = INTF_RX_DEFAULT):
999 ''' DHCP Client sending multiple repeat DHCP requests. '''
1000 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
1001 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
1002 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
1003 self.onos_dhcp_table_load(config)
1004 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001005 log_test.info('Sending DHCP discover and DHCP request.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001006 cip, sip = self.send_recv()
1007 mac = self.dhcp.get_mac(cip)[0]
A R Karthick76a497a2017-04-12 10:59:39 -07001008 log_test.info("Sending DHCP request again.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001009 new_cip, new_sip = self.dhcp.only_request(cip, mac)
1010 if (new_cip,new_sip) == (cip,sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001011 log_test.info('Got same ip for 2nd DHCP Request for client IP %s from server %s for mac %s.'
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001012 % (new_cip, new_sip, mac) )
1013 elif (new_cip,new_sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001014 log_test.info('No DHCP ACK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001015 assert_equal(new_cip, None)
1016 assert_equal(new_sip, None)
1017 else:
1018 print "Something went wrong."
1019
1020 def dhcp_client_desired_ip_scenario(self, subscriber):
1021 if subscriber.has_service('DHCP'):
1022 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001023 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001024 tl = self.subscriber_dhcp_client_desired_address()
1025 self.test_status = True
1026 return self.test_status
1027 else:
1028 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1029 self.test_status = True
1030 return self.test_status
1031
1032 def subscriber_dhcp_client_desired_address(self, iface = INTF_RX_DEFAULT):
1033 '''DHCP Client asking for desired IP address.'''
1034 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1035 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1036 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1037 self.onos_dhcp_table_load(config)
1038 self.dhcp = DHCPTest(seed_ip = '20.20.20.31', iface = iface)
1039 cip, sip, mac , lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001040 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001041 (cip, sip, mac) )
1042 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001043 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001044 (cip, sip, mac) )
1045 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001046 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001047 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001048 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001049 assert_equal(cip, self.dhcp.seed_ip)
1050
1051 def dhcp_client_request_pkt_with_non_offered_ip_scenario(self, subscriber):
1052 if subscriber.has_service('DHCP'):
1053 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001054 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001055 tl = self.subscriber_dhcp_server_nak_packet()
1056 self.test_status = True
1057 return self.test_status
1058 else:
1059 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1060 self.test_status = True
1061 return self.test_status
1062
1063 def subscriber_dhcp_server_nak_packet(self, iface = INTF_RX_DEFAULT):
1064 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1065 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1066 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1067 self.onos_dhcp_table_load(config)
1068 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
1069 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -07001070 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001071 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001072 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet. Those should not be none, which is expected.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001073 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001074 log_test.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001075 assert_not_equal(cip, None)
1076 else:
1077 new_cip, new_sip = self.dhcp.only_request('20.20.20.31', mac)
1078 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001079 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001080 assert_equal(new_cip, None) #Negative Test Case
1081
1082 def dhcp_client_requested_out_pool_ip_scenario(self, subscriber):
1083 if subscriber.has_service('DHCP'):
1084 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001085 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001086 tl = self.subscriber_dhcp_client_desired_address_out_of_pool()
1087 self.test_status = True
1088 return self.test_status
1089 else:
1090 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1091 self.test_status = True
1092 return self.test_status
1093
1094 def subscriber_dhcp_client_desired_address_out_of_pool(self, iface = INTF_RX_DEFAULT):
1095 '''DHCP Client asking for desired IP address from out of pool.'''
1096 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1097 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1098 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1099 self.onos_dhcp_table_load(config)
1100 self.dhcp = DHCPTest(seed_ip = '20.20.20.35', iface = iface)
1101 cip, sip, mac, lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001102 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001103 (cip, sip, mac) )
1104 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001105 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001106 (cip, sip, mac) )
1107 assert_equal(cip, self.dhcp.seed_ip) #Negative Test Case
1108
1109 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001110 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001111 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001112 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001113 assert_not_equal(cip, self.dhcp.seed_ip)
1114
1115 elif cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001116 log_test.info('Got DHCP NAK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001117
1118 def dhcp_client_specific_lease_scenario(self, subscriber):
1119 if subscriber.has_service('DHCP'):
1120 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001121 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001122 tl = self.subscriber_dhcp_specific_lease_packet()
1123 self.test_status = True
1124 return self.test_status
1125 else:
1126 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1127 self.test_status = True
1128 return self.test_status
1129
1130 def subscriber_dhcp_specific_lease_packet(self, iface = INTF_RX_DEFAULT):
1131 ''' Client sends DHCP Discover packet for particular lease time.'''
1132 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1133 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1134 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1135 self.onos_dhcp_table_load(config)
1136 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001137 log_test.info('Sending DHCP discover with lease time of 700')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001138 cip, sip, mac, lval = self.dhcp.only_discover(lease_time = True)
1139
A R Karthick76a497a2017-04-12 10:59:39 -07001140 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001141 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001142 log_test.info("Verified that Client 's IP and mac in DHCP Offer packet are none, which is not expected behavior.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001143 assert_not_equal(cip, None)
1144 elif lval != 700:
A R Karthick76a497a2017-04-12 10:59:39 -07001145 log_test.info('Getting dhcp client IP %s from server %s for mac %s with lease time %s. That is not 700.' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001146 (cip, sip, mac, lval) )
1147 assert_not_equal(lval, 700)
1148
1149 def test_cord_subscriber_join_recv(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001150 """Test subscriber join and receive for channel surfing"""
A R Karthick338268f2016-06-21 17:12:13 -07001151 self.num_subscribers = 5
1152 self.num_channels = 1
A R Karthicka478df42016-07-27 16:51:08 -07001153 test_status = True
1154 ##Run this test only if ONOS can be restarted as it incurs a network-cfg change
1155 if self.onos_restartable is True:
1156 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1157 num_channels = self.num_channels,
1158 port_list = self.generate_port_list(self.num_subscribers,
1159 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001160 assert_equal(test_status, True)
1161
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001162 def test_cord_subscriber_join_jump(self):
A R Karthicka478df42016-07-27 16:51:08 -07001163 """Test subscriber join jump for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001164 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001165 self.num_channels = 10
1166 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1167 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001168 cbs = (self.tls_verify, self.dhcp_jump_verify,
1169 self.igmp_jump_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001170 port_list = self.generate_port_list(self.num_subscribers,
1171 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001172 assert_equal(test_status, True)
1173
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001174 def test_cord_subscriber_join_next(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001175 """Test subscriber join next for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001176 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001177 self.num_channels = 10
1178 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1179 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001180 cbs = (self.tls_verify, self.dhcp_next_verify,
1181 self.igmp_next_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001182 port_list = self.generate_port_list(self.num_subscribers,
1183 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001184 assert_equal(test_status, True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001185
1186 #@deferred(SUBSCRIBER_TIMEOUT)
1187 def test_cord_subscriber_authentication_with_invalid_certificate_and_channel_surfing(self):
1188 ### """Test subscriber to auth with invalidCertification and join channel"""
1189 num_subscribers = 1
1190 num_channels = 1
1191 df = defer.Deferred()
1192 def sub_auth_invalid_cert(df):
1193 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1194 num_channels = num_channels,
1195 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1196 self.igmp_verify, self.traffic_verify),
1197 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1198 assert_equal(test_status, False)
1199 df.callback(0)
1200 reactor.callLater(0, sub_auth_invalid_cert, df)
1201 return df
1202
1203 #@deferred(SUBSCRIBER_TIMEOUT)
1204 def test_cord_subscriber_authentication_with_no_certificate_and_channel_surfing(self):
1205 ### """Test subscriber to auth with No Certification and join channel"""
1206 num_subscribers = 1
1207 num_channels = 1
1208 df = defer.Deferred()
1209 def sub_auth_no_cert(df):
1210 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1211 num_channels = num_channels,
1212 cbs = (self.tls_no_cert, self.dhcp_verify,
1213 self.igmp_verify, self.traffic_verify),
1214 port_list = self.generate_port_list(num_subscribers, num_channels),
1215 negative_subscriber_auth = 'all')
1216 assert_equal(test_status, False)
1217 df.callback(0)
1218 reactor.callLater(0, sub_auth_no_cert, df)
1219 return df
1220 def test_cord_subscriber_authentication_with_self_signed_certificate_and_channel_surfing(self):
1221 ### """Test subscriber to auth with Self Signed Certification and join channel"""
1222 num_subscribers = 1
1223 num_channels = 1
1224 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1225 num_channels = num_channels,
1226 cbs = (self.tls_self_signed_cert, self.dhcp_verify,
1227 self.igmp_verify, self.traffic_verify),
1228 port_list = self.generate_port_list(num_subscribers, num_channels),
1229 negative_subscriber_auth = 'all')
1230 assert_equal(test_status, True)
1231
1232 @deferred(SUBSCRIBER_TIMEOUT)
1233 def test_2_cord_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1234 ### """Test 2 subscribers to auth, one of the subscriber with invalidCertification and join channel"""
1235 num_subscribers = 2
1236 num_channels = 1
1237 df = defer.Deferred()
1238 def sub_auth_invalid_cert(df):
1239 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1240 num_channels = num_channels,
1241 cbs = (self.tls_invalid_cert, self.dhcp_verify,self.igmp_verify, self.traffic_verify),
1242 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1243 assert_equal(test_status, True)
1244 df.callback(0)
1245 reactor.callLater(0, sub_auth_invalid_cert, df)
1246 return df
1247
1248 @deferred(SUBSCRIBER_TIMEOUT)
1249 def test_2_cord_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1250 ### """Test 2 subscribers to auth, one of the subscriber with No Certification and join channel"""
1251 num_subscribers = 2
1252 num_channels = 1
1253 df = defer.Deferred()
1254 def sub_auth_no_cert(df):
1255 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1256 num_channels = num_channels,
1257 cbs = (self.tls_no_cert, self.dhcp_verify,
1258 self.igmp_verify, self.traffic_verify),
1259 port_list = self.generate_port_list(num_subscribers, num_channels),
1260 negative_subscriber_auth = 'half')
1261 assert_equal(test_status, True)
1262 df.callback(0)
1263 reactor.callLater(0, sub_auth_no_cert, df)
1264 return df
1265
1266 @deferred(SUBSCRIBER_TIMEOUT)
1267 def test_2_cord_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1268 ### """Test 2 subscribers to auth, one of the subscriber with Non CA authorized Certificate and join channel"""
1269 num_subscribers = 2
1270 num_channels = 1
1271 df = defer.Deferred()
1272 def sub_auth_no_cert(df):
1273 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1274 num_channels = num_channels,
1275 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify,
1276 self.igmp_verify, self.traffic_verify),
1277 port_list = self.generate_port_list(num_subscribers, num_channels),
1278 negative_subscriber_auth = 'half')
1279 assert_equal(test_status, True)
1280 df.callback(0)
1281 reactor.callLater(0, sub_auth_no_cert, df)
1282 return df
1283
1284 def test_cord_subscriber_authentication_with_dhcp_discover_and_channel_surfing(self):
1285 ### """Test subscriber auth success, DHCP re-discover with DHCP server and join channel"""
1286 num_subscribers = 1
1287 num_channels = 1
1288 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1289 num_channels = num_channels,
1290 cbs = (self.tls_verify, self.dhcp_discover_scenario,
1291 self.igmp_verify, self.traffic_verify),
1292 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1293 assert_equal(test_status, True)
1294
1295 def test_cord_subscriber_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1296 ### """Test subscriber auth success, DHCP client got re-booted and join channel"""
1297 num_subscribers = 1
1298 num_channels = 1
1299 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1300 num_channels = num_channels,
1301 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario,
1302 self.igmp_verify, self.traffic_verify),
1303 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1304 assert_equal(test_status, True)
1305
1306 def test_cord_subscriber_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1307 ### """Test subscriber auth , DHCP server re-boot during DHCP process and join channel"""
1308 num_subscribers = 1
1309 num_channels = 1
1310 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1311 num_channels = num_channels,
1312 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario,
1313 self.igmp_verify, self.traffic_verify),
1314 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1315 assert_equal(test_status, True)
1316
1317 def test_cord_subscriber_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1318 ### """Test subscriber auth , DHCP client rebind IP and join channel"""
1319 num_subscribers = 1
1320 num_channels = 1
1321 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1322 num_channels = num_channels,
1323 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario,
1324 self.igmp_verify, self.traffic_verify),
1325 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1326 assert_equal(test_status, True)
1327
1328
1329 def test_cord_subscriber_authentication_with_dhcp_starvation_and_channel_surfing(self):
1330 ### """Test subscriber auth , DHCP starvation and join channel"""
1331 num_subscribers = 1
1332 num_channels = 1
1333 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1334 num_channels = num_channels,
1335 cbs = (self.tls_verify, self.dhcp_starvation_scenario,
1336 self.igmp_verify, self.traffic_verify),
1337 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1338 assert_equal(test_status, True)
1339
1340 def test_cord_subscriber_authentication_with_multiple_dhcp_discover_for_same_subscriber_and_channel_surfing(self):
1341 ### """Test subscriber auth , sending same DHCP client discover multiple times and join channel"""
1342 num_subscribers = 1
1343 num_channels = 1
1344 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1345 num_channels = num_channels,
1346 cbs = (self.tls_verify, self.dhcp_same_client_multi_discovers_scenario,
1347 self.igmp_verify, self.traffic_verify),
1348 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1349 assert_equal(test_status, True)
1350
1351 def test_cord_subscriber_authentication_with_multiple_dhcp_request_for_same_subscriber_and_channel_surfing(self):
1352 ### """Test subscriber auth , same DHCP client multiple requerts times and join channel"""
1353 num_subscribers = 1
1354 num_channels = 1
1355 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1356 num_channels = num_channels,
1357 cbs = (self.tls_verify, self.dhcp_same_client_multi_request_scenario,
1358 self.igmp_verify, self.traffic_verify),
1359 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1360 assert_equal(test_status, True)
1361
1362 def test_cord_subscriber_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1363 ### """Test subscriber auth with DHCP client requesting ip and join channel"""
1364 num_subscribers = 1
1365 num_channels = 1
1366 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1367 num_channels = num_channels,
1368 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario,
1369 self.igmp_verify, self.traffic_verify),
1370 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1371 assert_equal(test_status, True)
1372
1373 def test_cord_subscriber_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1374 ### """Test subscriber auth with DHCP client request for non-offered ip and join channel"""
1375 num_subscribers = 1
1376 num_channels = 1
1377 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1378 num_channels = num_channels,
1379 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario,
1380 self.igmp_verify, self.traffic_verify),
1381 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1382 assert_equal(test_status, True)
1383
1384 def test_cord_subscriber_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1385 ### """Test subscriber auth with DHCP client requesting out of pool ip and join channel"""
1386 num_subscribers = 1
1387 num_channels = 1
1388 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1389 num_channels = num_channels,
1390 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario,
1391 self.igmp_verify, self.traffic_verify),
1392 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1393 assert_equal(test_status, True)
1394
1395
1396 def test_cord_subscriber_authentication_with_dhcp_specified_lease_time_functionality_and_channel_surfing(self):
1397 ### """Test subscriber auth with DHCP client specifying lease time and join channel"""
1398 num_subscribers = 1
1399 num_channels = 1
1400 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1401 num_channels = num_channels,
1402 cbs = (self.tls_verify, self.dhcp_client_specific_lease_scenario,
1403 self.igmp_verify, self.traffic_verify),
1404 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1405 assert_equal(test_status, True)
1406
1407 #@deferred(SUBSCRIBER_TIMEOUT)
1408 @nottest
1409 def test_1k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1410 ### """Test 1k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1411 num_subscribers = 1000
1412 num_channels = 1
1413 df = defer.Deferred()
1414 def sub_auth_invalid_cert(df):
1415 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1416 num_channels = num_channels,
1417 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1418 self.igmp_verify, self.traffic_verify),
1419 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1420 assert_equal(test_status, True)
1421 df.callback(0)
1422 reactor.callLater(0, sub_auth_invalid_cert, df)
1423 return df
1424
1425 @nottest
1426 @deferred(SUBSCRIBER_TIMEOUT)
1427 def test_1k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1428 ### """Test 1k subscribers to auth, half of the subscribers with No Certification and join channel"""
1429 num_subscribers = 1000
1430 num_channels = 1
1431 df = defer.Deferred()
1432 def sub_auth_no_cert(df):
1433 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1434 num_channels = num_channels,
1435 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1436 port_list = self.generate_port_list(num_subscribers, num_channels),
1437 negative_subscriber_auth = 'half')
1438 assert_equal(test_status, True)
1439 df.callback(0)
1440 reactor.callLater(0, sub_auth_no_cert, df)
1441 return df
1442
1443 #@deferred(SUBSCRIBER_TIMEOUT)
1444 @nottest
1445 def test_1k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1446 ### """Test 1k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1447 num_subscribers = 1000
1448 num_channels = 1
1449 df = defer.Deferred()
1450 def sub_auth_no_cert(df):
1451 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1452 num_channels = num_channels,
1453 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1454 port_list = self.generate_port_list(num_subscribers, num_channels),
1455 negative_subscriber_auth = 'half')
1456 assert_equal(test_status, True)
1457 df.callback(0)
1458 reactor.callLater(0, sub_auth_no_cert, df)
1459 return df
1460
1461 #@deferred(SUBSCRIBER_TIMEOUT)
1462 @nottest
1463 def test_5k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1464 ### """Test 5k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1465 num_subscribers = 5000
1466 num_channels = 1
1467 df = defer.Deferred()
1468 def sub_auth_invalid_cert(df):
1469 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1470 num_channels = num_channels,
1471 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1472 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1473 assert_equal(test_status, True)
1474 df.callback(0)
1475 reactor.callLater(0, sub_auth_invalid_cert, df)
1476 return df
1477
1478 #@deferred(SUBSCRIBER_TIMEOUT)
1479 @nottest
1480 def test_5k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1481 ### """Test 5k subscribers to auth, half of the subscribers with No Certification and join channel"""
1482 num_subscribers = 5000
1483 num_channels = 1
1484 df = defer.Deferred()
1485 def sub_auth_no_cert(df):
1486 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1487 num_channels = num_channels,
1488 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1489 port_list = self.generate_port_list(num_subscribers, num_channels),
1490 negative_subscriber_auth = 'half')
1491 assert_equal(test_status, True)
1492 df.callback(0)
1493 reactor.callLater(0, sub_auth_no_cert, df)
1494 return df
1495
1496 #@deferred(SUBSCRIBER_TIMEOUT)
1497 @nottest
1498 def test_5k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1499 ### """Test 5k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1500 num_subscribers = 5000
1501 num_channels = 1
1502 df = defer.Deferred()
1503 def sub_auth_no_cert(df):
1504 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1505 num_channels = num_channels,
1506 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1507 port_list = self.generate_port_list(num_subscribers, num_channels),
1508 negative_subscriber_auth = 'half')
1509 assert_equal(test_status, True)
1510 df.callback(0)
1511 reactor.callLater(0, sub_auth_no_cert, df)
1512 return df
1513
1514 #@deferred(SUBSCRIBER_TIMEOUT)
1515 @nottest
1516 def test_10k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1517 ### """Test 10k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1518 num_subscribers = 10000
1519 num_channels = 1
1520 df = defer.Deferred()
1521 def sub_auth_invalid_cert(df):
1522 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1523 num_channels = num_channels,
1524 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1525 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'onethird')
1526 assert_equal(test_status, True)
1527 df.callback(0)
1528 reactor.callLater(0, sub_auth_invalid_cert, df)
1529 return df
1530
1531 #@deferred(SUBSCRIBER_TIMEOUT)
1532 @nottest
1533 def test_10k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1534 ### """Test 10k subscribers to auth, half of the subscribers with No Certification and join channel"""
1535 num_subscribers = 10000
1536 num_channels = 1
1537 df = defer.Deferred()
1538 def sub_auth_no_cert(df):
1539 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1540 num_channels = num_channels,
1541 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1542 port_list = self.generate_port_list(num_subscribers, num_channels),
1543 negative_subscriber_auth = 'onethird')
1544 assert_equal(test_status, True)
1545 df.callback(0)
1546 reactor.callLater(0, sub_auth_no_cert, df)
1547 return df
1548
1549 #@deferred(SUBSCRIBER_TIMEOUT)
1550 @nottest
1551 def test_10k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1552 ### """Test 10k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1553 num_subscribers = 10000
1554 num_channels = 1
1555 df = defer.Deferred()
1556 def sub_auth_no_cert(df):
1557 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1558 num_channels = num_channels,
1559 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1560 port_list = self.generate_port_list(num_subscribers, num_channels),
1561 negative_subscriber_auth = 'onethird')
1562 assert_equal(test_status, False)
1563 assert_equal(test_status, True)
1564 df.callback(0)
1565 reactor.callLater(0, sub_auth_no_cert, df)
1566 return df
1567
1568 @nottest
1569 def test_1k_cord_subscribers_authentication_with_dhcp_discovers_and_channel_surfing(self):
1570 ### """Test 1k subscribers auth success, DHCP re-discover with DHCP server and join channel"""
1571 num_subscribers = 1000
1572 num_channels = 1
1573 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1574 num_channels = num_channels,
1575 cbs = (self.tls_verify, self.dhcp_discover_scenario, self.igmp_verify),
1576 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1577 assert_equal(test_status, True)
1578
1579 @nottest
1580 def test_1k_cord_subscribers_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1581 ### """Test 1k subscribers auth success, DHCP client got re-booted and join channel"""
1582 num_subscribers = 1000
1583 num_channels = 1
1584 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1585 num_channels = num_channels,
1586 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario, self.igmp_verify),
1587 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1588 assert_equal(test_status, True)
1589
1590 @nottest
1591 def test_1k_cord_subscribers_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1592 ### """Test 1k subscribers auth , DHCP server re-boot during DHCP process and join channel"""
1593 num_subscribers = 1000
1594 num_channels = 1
1595 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1596 num_channels = num_channels,
1597 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario, self.igmp_verify),
1598 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1599 assert_equal(test_status, True)
1600
1601 @nottest
1602 def test_1k_cord_subscribers_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1603 ### """Test 1k subscribers auth , DHCP client rebind IP and join channel"""
1604 num_subscribers = 1000
1605 num_channels = 1
1606 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1607 num_channels = num_channels,
1608 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario, self.igmp_verify),
1609 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1610 assert_equal(test_status, True)
1611
1612 @nottest
1613 def test_1k_cord_subscribers_authentication_with_dhcp_starvation_and_channel_surfing(self):
1614 ### """Test 1k subscribers auth , DHCP starvation and join channel"""
1615 num_subscribers = 1000
1616 num_channels = 1
1617 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1618 num_channels = num_channels,
1619 cbs = (self.tls_verify, self.dhcp_starvation_scenario, self.igmp_verify),
1620 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1621 assert_equal(test_status, True)
1622
1623 @nottest
1624 def test_1k_cord_subscribers_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1625 ### """Test 1k subscribers auth with DHCP client requesting ip and join channel"""
1626 num_subscribers = 1000
1627 num_channels = 1
1628 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1629 num_channels = num_channels,
1630 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario, self.igmp_verify),
1631 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1632 assert_equal(test_status, True)
1633
1634 @nottest
1635 def test_1k_cord_subscribers_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1636 ### """Test subscribers auth with DHCP client request for non-offered ip and join channel"""
1637 num_subscribers = 1000
1638 num_channels = 1
1639 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1640 num_channels = num_channels,
1641 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario, self.igmp_verify),
1642 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1643 assert_equal(test_status, True)
1644
1645 def test_4_cord_subscribers_join_recv_5channel(self):
1646 ###"""Test 4 subscribers join and receive for 5 channels surfing"""
1647 num_subscribers = 4
1648 num_channels = 5
1649 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1650 num_channels = num_channels,
1651 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1652 port_list = self.generate_port_list(num_subscribers, num_channels),
1653 negative_subscriber_auth = 'all')
1654 assert_equal(test_status, True)
1655
1656 def test_4_cord_subscribers_join_jump_5channel(self):
1657 ###"""Test 4 subscribers jump and receive for 5 channels surfing"""
1658 num_subscribers = 4
1659 num_channels = 5
1660 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1661 num_channels = num_channels,
1662 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1663 port_list = self.generate_port_list(num_subscribers, num_channels),
1664 negative_subscriber_auth = 'all')
1665 assert_equal(test_status, True)
1666
1667 def test_4_cord_subscribers_join_next_5channel(self):
1668 ###"""Test 4 subscribers join next for 5 channels"""
1669 num_subscribers = 4
1670 num_channels = 5
1671 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1672 num_channels = num_channels,
1673 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1674 port_list = self.generate_port_list(num_subscribers, num_channels),
1675 negative_subscriber_auth = 'all')
1676 assert_equal(test_status, True)
1677
1678 def test_10_cord_subscribers_join_recv_5channel(self):
1679 ###"""Test 10 subscribers join and receive for 5 channels surfing"""
1680 num_subscribers = 10
1681 num_channels = 5
1682 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1683 num_channels = num_channels,
1684 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1685 port_list = self.generate_port_list(num_subscribers, num_channels),
1686 negative_subscriber_auth = 'all')
1687 assert_equal(test_status, True)
1688
1689 def test_10_cord_subscribers_join_jump_5channel(self):
1690 ###"""Test 10 subscribers jump and receive for 5 channels surfing"""
1691 num_subscribers = 10
1692 num_channels = 5
1693 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1694 num_channels = num_channels,
1695 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1696 port_list = self.generate_port_list(num_subscribers, num_channels),
1697 negative_subscriber_auth = 'all')
1698 assert_equal(test_status, True)
1699
1700
1701 def test_10_cord_subscribers_join_next_5channel(self):
1702 ###"""Test 10 subscribers join next for 5 channels"""
1703 num_subscribers = 10
1704 num_channels = 5
1705 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1706 num_channels = num_channels,
1707 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1708 port_list = self.generate_port_list(num_subscribers, num_channels),
1709 negative_subscriber_auth = 'all')
1710 assert_equal(test_status, True)
1711
1712
1713
1714 def test_cord_subscriber_join_recv_100channels(self):
1715 num_subscribers = 1
1716 num_channels = 100
1717 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1718 num_channels = num_channels,
1719 cbs = (self.tls_verify, self.dhcp_verify,
1720 self.igmp_verify, self.traffic_verify),
1721 port_list = self.generate_port_list(num_subscribers, num_channels),
1722 negative_subscriber_auth = 'all')
1723 assert_equal(test_status, True)
1724
1725 def test_cord_subscriber_join_recv_400channels(self):
1726 num_subscribers = 1
1727 num_channels = 400
1728 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1729 num_channels = num_channels,
1730 cbs = (self.tls_verify, self.dhcp_verify,
1731 self.igmp_verify, self.traffic_verify),
1732 port_list = self.generate_port_list(num_subscribers, num_channels),
1733 negative_subscriber_auth = 'all')
1734 assert_equal(test_status, True)
1735
1736 def test_cord_subscriber_join_recv_800channels(self):
1737 num_subscribers = 1
1738 num_channels = 800
1739 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1740 num_channels = num_channels,
1741 cbs = (self.tls_verify, self.dhcp_verify,
1742 self.igmp_verify, self.traffic_verify),
1743 port_list = self.generate_port_list(num_subscribers, num_channels),
1744 negative_subscriber_auth = 'all')
1745 assert_equal(test_status, True)
1746
1747 def test_cord_subscriber_join_recv_1200channels(self):
1748 num_subscribers = 1
1749 num_channels = 1200
1750 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1751 num_channels = num_channels,
1752 cbs = (self.tls_verify, self.dhcp_verify,
1753 self.igmp_verify, self.traffic_verify),
1754 port_list = self.generate_port_list(num_subscribers, num_channels),
1755 negative_subscriber_auth = 'all')
1756 assert_equal(test_status, True)
1757
1758 def test_cord_subscriber_join_recv_1500channels(self):
1759 num_subscribers = 1
1760 num_channels = 1500
1761 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1762 num_channels = num_channels,
1763 cbs = (self.tls_verify, self.dhcp_verify,
1764 self.igmp_verify, self.traffic_verify),
1765 port_list = self.generate_port_list(num_subscribers, num_channels),
1766 negative_subscriber_auth = 'all')
1767 assert_equal(test_status, True)
1768
1769 def test_cord_subscriber_join_jump_100channels(self):
1770 num_subscribers = 1
1771 num_channels = 100
1772 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1773 num_channels = num_channels,
1774 cbs = (self.tls_verify, self.dhcp_jump_verify,
1775 self.igmp_jump_verify, self.traffic_verify),
1776 port_list = self.generate_port_list(num_subscribers, num_channels),
1777 negative_subscriber_auth = 'all')
1778 assert_equal(test_status, True)
1779 def test_cord_subscriber_join_jump_400channels(self):
1780 num_subscribers = 1
1781 num_channels = 400
1782 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1783 num_channels = num_channels,
1784 cbs = (self.tls_verify, self.dhcp_jump_verify,
1785 self.igmp_jump_verify, self.traffic_verify),
1786 port_list = self.generate_port_list(num_subscribers, num_channels),
1787 negative_subscriber_auth = 'all')
1788 assert_equal(test_status, True)
1789
1790 def test_cord_subscriber_join_jump_800channels(self):
1791 num_subscribers = 1
1792 num_channels = 800
1793 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1794 num_channels = num_channels,
1795 cbs = (self.tls_verify, self.dhcp_jump_verify,
1796 self.igmp_jump_verify, self.traffic_verify),
1797 port_list = self.generate_port_list(num_subscribers, num_channels),
1798 negative_subscriber_auth = 'all')
1799 assert_equal(test_status, True)
1800 def test_cord_subscriber_join_jump_1200channel(sself):
1801 num_subscribers = 1
1802 num_channels = 1200
1803 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1804 num_channels = num_channels,
1805 cbs = (self.tls_verify, self.dhcp_jump_verify,
1806 self.igmp_jump_verify, self.traffic_verify),
1807 port_list = self.generate_port_list(num_subscribers, num_channels),
1808 negative_subscriber_auth = 'all')
1809 assert_equal(test_status, True)
1810 def test_cord_subscriber_join_jump_1500channels(self):
1811 num_subscribers = 1
1812 num_channels = 1500
1813 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1814 num_channels = num_channels,
1815 cbs = (self.tls_verify, self.dhcp_jump_verify,
1816 self.igmp_jump_verify, self.traffic_verify),
1817 port_list = self.generate_port_list(num_subscribers, num_channels),
1818 negative_subscriber_auth = 'all')
1819 assert_equal(test_status, True)
1820
1821 def test_cord_subscriber_join_next_100channels(self):
1822 num_subscribers = 1
1823 num_channels = 100
1824 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1825 num_channels = num_channels,
1826 cbs = (self.tls_verify, self.dhcp_next_verify,
1827 self.igmp_next_verify, self.traffic_verify),
1828 port_list = self.generate_port_list(num_subscribers, num_channels),
1829 negative_subscriber_auth = 'all')
1830 assert_equal(test_status, True)
1831
1832 def test_cord_subscriber_join_next_400channels(self):
1833 num_subscribers = 1
1834 num_channels = 400
1835 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1836 num_channels = num_channels,
1837 cbs = (self.tls_verify, self.dhcp_next_verify,
1838 self.igmp_next_verify, self.traffic_verify),
1839 port_list = self.generate_port_list(num_subscribers, num_channels),
1840 negative_subscriber_auth = 'all')
1841 assert_equal(test_status, True)
1842
1843 def test_cord_subscriber_join_next_800channels(self):
1844 num_subscribers = 1
1845 num_channels = 800
1846 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1847 num_channels = num_channels,
1848 cbs = (self.tls_verify, self.dhcp_next_verify,
1849 self.igmp_next_verify, self.traffic_verify),
1850 port_list = self.generate_port_list(num_subscribers, num_channels),
1851 negative_subscriber_auth = 'all')
1852 assert_equal(test_status, True)
1853
1854
1855 def test_cord_subscriber_join_next_1200channels(self):
1856 num_subscribers = 1
1857 num_channels = 1200
1858 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1859 num_channels = num_channels,
1860 cbs = (self.tls_verify, self.dhcp_next_verify,
1861 self.igmp_next_verify, self.traffic_verify),
1862 port_list = self.generate_port_list(num_subscribers, num_channels),
1863 negative_subscriber_auth = 'all')
1864 assert_equal(test_status, True)
1865
1866 def test_cord_subscriber_join_next_1500channels(self):
1867 num_subscribers = 1
1868 num_channels = 1500
1869 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1870 num_channels = num_channels,
1871 cbs = (self.tls_verify, self.dhcp_next_verify,
1872 self.igmp_next_verify, self.traffic_verify),
1873 port_list = self.generate_port_list(num_subscribers, num_channels),
1874 negative_subscriber_auth = 'all')
1875 assert_equal(test_status, True)
1876
1877 @nottest
1878 def test_1k_cord_subscribers_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1879 ### """Test 1k subscribers auth with DHCP client requesting out of pool ip and join channel"""
1880 num_subscribers = 1000
1881 num_channels = 1
1882 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1883 num_channels = num_channels,
1884 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario, self.igmp_verify),
1885 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1886 assert_equal(test_status, True)
1887
1888 @nottest
1889 def test_1k_cord_subscribers_join_recv_100channel(self):
1890 ###"""Test 1k subscribers join and receive for 100 channels surfing"""
1891 num_subscribers = 1000
1892 num_channels = 100
1893 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1894 num_channels = num_channels,
1895 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1896 port_list = self.generate_port_list(num_subscribers, num_channels),
1897 negative_subscriber_auth = 'all')
1898 assert_equal(test_status, True)
1899
1900 @nottest
1901 def test_1k_cord_subscribers_join_jump_100channel(self):
1902 ###"""Test 1k subscribers jump and receive for 100 channels surfing"""
1903 num_subscribers = 1000
1904 num_channels = 100
1905 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1906 num_channels = num_channels,
1907 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1908 port_list = self.generate_port_list(num_subscribers, num_channels),
1909 negative_subscriber_auth = 'all')
1910 assert_equal(test_status, True)
1911
1912 @nottest
1913 def test_1k_cord_subscribers_join_next_100channel(self):
1914 ###"""Test 1k subscribers join next for 100 channels"""
1915 num_subscribers = 1000
1916 num_channels = 100
1917 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1918 num_channels = num_channels,
1919 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1920 port_list = self.generate_port_list(num_subscribers, num_channels),
1921 negative_subscriber_auth = 'all')
1922 assert_equal(test_status, True)
1923
1924 @nottest
1925 def test_1k_cord_subscribers_join_recv_400channel(self):
1926 ###"""Test 1k subscribers join and receive for 400 channels surfing"""
1927 num_subscribers = 1000
1928 num_channels = 400
1929 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1930 num_channels = num_channels,
1931 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1932 port_list = self.generate_port_list(num_subscribers, num_channels),
1933 negative_subscriber_auth = 'all')
1934 assert_equal(test_status, True)
1935
1936 @nottest
1937 def test_1k_cord_subscribers_join_jump_400channel(self):
1938 ###"""Test 1k subscribers jump and receive for 400 channels surfing"""
1939 num_subscribers = 1000
1940 num_channels = 400
1941 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1942 num_channels = num_channels,
1943 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1944 port_list = self.generate_port_list(num_subscribers, num_channels),
1945 negative_subscriber_auth = 'all')
1946 assert_equal(test_status, True)
1947
1948 @nottest
1949 def test_1k_cord_subscribers_join_next_400channel(self):
1950 ###"""Test 1k subscribers join next for 400 channels"""
1951 num_subscribers = 1000
1952 num_channels = 400
1953 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1954 num_channels = num_channels,
1955 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1956 port_list = self.generate_port_list(num_subscribers, num_channels),
1957 negative_subscriber_auth = 'all')
1958 assert_equal(test_status, True)
1959
1960 @nottest
1961 def test_1k_cord_subscribers_join_recv_800channel(self):
1962 ###"""Test 1k subscribers join and receive for 800 channels surfing"""
1963 num_subscribers = 1000
1964 num_channels = 800
1965 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1966 num_channels = num_channels,
1967 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1968 port_list = self.generate_port_list(num_subscribers, num_channels),
1969 negative_subscriber_auth = 'all')
1970 assert_equal(test_status, True)
1971
1972 @nottest
1973 def test_1k_cord_subscribers_join_jump_800channel(self):
1974 ###"""Test 1k subscribers jump and receive for 800 channels surfing"""
1975 num_subscribers = 1000
1976 num_channels = 800
1977 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1978 num_channels = num_channels,
1979 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1980 port_list = self.generate_port_list(num_subscribers, num_channels),
1981 negative_subscriber_auth = 'all')
1982 assert_equal(test_status, True)
1983
1984 @nottest
1985 def test_1k_cord_subscribers_join_next_800channel(self):
1986 ###"""Test 1k subscribers join next for 800 channels"""
1987 num_subscribers = 1000
1988 num_channels = 800
1989 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1990 num_channels = num_channels,
1991 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1992 port_list = self.generate_port_list(num_subscribers, num_channels),
1993 negative_subscriber_auth = 'all')
1994 assert_equal(test_status, True)
1995
1996 @nottest
1997 def test_1k_cord_subscribers_join_recv_1200channel(self):
1998 ###"""Test 1k subscribers join and receive for 1200 channels surfing"""
1999 num_subscribers = 1000
2000 num_channels = 1200
2001 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2002 num_channels = num_channels,
2003 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2004 port_list = self.generate_port_list(num_subscribers, num_channels),
2005 negative_subscriber_auth = 'all')
2006 assert_equal(test_status, True)
2007
2008 @nottest
2009 def test_1k_cord_subscribers_join_jump_1200channel(self):
2010 ###"""Test 1k subscribers jump and receive for 1200 channels surfing"""
2011 num_subscribers = 1000
2012 num_channels = 1200
2013 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2014 num_channels = num_channels,
2015 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2016 port_list = self.generate_port_list(num_subscribers, num_channels),
2017 negative_subscriber_auth = 'all')
2018 assert_equal(test_status, True)
2019
2020 @nottest
2021 def test_1k_cord_subscribers_join_next_1200channel(self):
2022 ###"""Test 1k subscribers join next for 1200 channels"""
2023 num_subscribers = 1000
2024 num_channels = 1200
2025 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2026 num_channels = num_channels,
2027 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2028 port_list = self.generate_port_list(num_subscribers, num_channels),
2029 negative_subscriber_auth = 'all')
2030 assert_equal(test_status, True)
2031
2032 @nottest
2033 def test_1k_cord_subscribers_join_recv_1500channel(self):
2034 ###"""Test 1k subscribers join and receive for 1500 channels surfing"""
2035 num_subscribers = 1000
2036 num_channels = 1500
2037 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2038 num_channels = num_channels,
2039 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2040 port_list = self.generate_port_list(num_subscribers, num_channels),
2041 negative_subscriber_auth = 'all')
2042 assert_equal(test_status, True)
2043
2044 @nottest
2045 def test_1k_cord_subscribers_join_jump_1500channel(self):
2046 ###"""Test 1k subscribers jump and receive for 1500 channels surfing"""
2047 num_subscribers = 1000
2048 num_channels = 1500
2049 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2050 num_channels = num_channels,
2051 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2052 port_list = self.generate_port_list(num_subscribers, num_channels),
2053 negative_subscriber_auth = 'all')
2054 assert_equal(test_status, True)
2055
2056 @nottest
2057 def test_1k_cord_subscribers_join_next_1500channel(self):
2058 ###"""Test 1k subscribers join next for 1500 channels"""
2059 num_subscribers = 1000
2060 num_channels = 1500
2061 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2062 num_channels = num_channels,
2063 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2064 port_list = self.generate_port_list(num_subscribers, num_channels),
2065 negative_subscriber_auth = 'all')
2066 assert_equal(test_status, True)
2067
2068 @nottest
2069 def test_5k_cord_subscribers_join_recv_100channel(self):
2070 ###"""Test 5k subscribers join and receive for 100 channels surfing"""
2071 num_subscribers = 5000
2072 num_channels = 100
2073 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2074 num_channels = num_channels,
2075 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2076 port_list = self.generate_port_list(num_subscribers, num_channels),
2077 negative_subscriber_auth = 'all')
2078 assert_equal(test_status, True)
2079
2080 @nottest
2081 def test_5k_cord_subscribers_join_jump_100channel(self):
2082 ###"""Test 5k subscribers jump and receive for 100 channels surfing"""
2083 num_subscribers = 5000
2084 num_channels = 100
2085 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2086 num_channels = num_channels,
2087 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2088 port_list = self.generate_port_list(num_subscribers, num_channels),
2089 negative_subscriber_auth = 'all')
2090 assert_equal(test_status, True)
2091
2092 @nottest
2093 def test_5k_cord_subscribers_join_next_100channel(self):
2094 ###"""Test 5k subscribers join next for 100 channels"""
2095 num_subscribers = 5000
2096 num_channels = 100
2097 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2098 num_channels = num_channels,
2099 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2100 port_list = self.generate_port_list(num_subscribers, num_channels),
2101 negative_subscriber_auth = 'all')
2102 assert_equal(test_status, True)
2103
2104 @nottest
2105 def test_5k_cord_subscribers_join_recv_400channel(self):
2106 ###"""Test 5k subscribers join and receive for 400 channels surfing"""
2107 num_subscribers = 5000
2108 num_channels = 400
2109 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2110 num_channels = num_channels,
2111 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2112 port_list = self.generate_port_list(num_subscribers, num_channels),
2113 negative_subscriber_auth = 'all')
2114 assert_equal(test_status, True)
2115
2116 @nottest
2117 def test_5k_cord_subscribers_join_jump_400channel(self):
2118 ###"""Test 5k subscribers jump and receive for 400 channels surfing"""
2119 num_subscribers = 5000
2120 num_channels = 400
2121 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2122 num_channels = num_channels,
2123 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2124 port_list = self.generate_port_list(num_subscribers, num_channels),
2125 negative_subscriber_auth = 'all')
2126 assert_equal(test_status, True)
2127
2128 @nottest
2129 def test_5k_cord_subscribers_join_next_400channel(self):
2130 ###"""Test 5k subscribers join next for 400 channels"""
2131 num_subscribers = 5000
2132 num_channels = 400
2133 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2134 num_channels = num_channels,
2135 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2136 port_list = self.generate_port_list(num_subscribers, num_channels),
2137 negative_subscriber_auth = 'all')
2138 assert_equal(test_status, True)
2139
2140 @nottest
2141 def test_5k_cord_subscribers_join_recv_800channel(self):
2142 ###"""Test 5k subscribers join and receive for 800 channels surfing"""
2143 num_subscribers = 5000
2144 num_channels = 800
2145 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2146 num_channels = num_channels,
2147 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2148 port_list = self.generate_port_list(num_subscribers, num_channels),
2149 negative_subscriber_auth = 'all')
2150 assert_equal(test_status, True)
2151
2152 @nottest
2153 def test_5k_cord_subscribers_join_jump_800channel(self):
2154 ###"""Test 5k subscribers jump and receive for 800 channels surfing"""
2155 num_subscribers = 5000
2156 num_channels = 800
2157 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2158 num_channels = num_channels,
2159 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2160 port_list = self.generate_port_list(num_subscribers, num_channels),
2161 negative_subscriber_auth = 'all')
2162 assert_equal(test_status, True)
2163
2164 @nottest
2165 def test_5k_cord_subscribers_join_next_800channel(self):
2166 ###"""Test 5k subscribers join next for 800 channels"""
2167 num_subscribers = 5000
2168 num_channels = 800
2169 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2170 num_channels = num_channels,
2171 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2172 port_list = self.generate_port_list(num_subscribers, num_channels),
2173 negative_subscriber_auth = 'all')
2174 assert_equal(test_status, True)
2175
2176 @nottest
2177 def test_5k_cord_subscribers_join_recv_1200channel(self):
2178 ###"""Test 5k subscribers join and receive for 1200 channels surfing"""
2179 num_subscribers = 5000
2180 num_channels = 1200
2181 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2182 num_channels = num_channels,
2183 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2184 port_list = self.generate_port_list(num_subscribers, num_channels),
2185 negative_subscriber_auth = 'all')
2186 assert_equal(test_status, True)
2187
2188 @nottest
2189 def test_5k_cord_subscribers_join_jump_1200channel(self):
2190 ###"""Test 5k subscribers jump and receive for 1200 channels surfing"""
2191 num_subscribers = 5000
2192 num_channels = 1200
2193 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2194 num_channels = num_channels,
2195 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2196 port_list = self.generate_port_list(num_subscribers, num_channels),
2197 negative_subscriber_auth = 'all')
2198 assert_equal(test_status, True)
2199
2200 @nottest
2201 def test_5k_cord_subscribers_join_next_1200channel(self):
2202 ###"""Test 5k subscribers join next for 1200 channels"""
2203 num_subscribers = 5000
2204 num_channels = 1200
2205 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2206 num_channels = num_channels,
2207 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2208 port_list = self.generate_port_list(num_subscribers, num_channels),
2209 negative_subscriber_auth = 'all')
2210 assert_equal(test_status, True)
2211
2212 @nottest
2213 def test_5k_cord_subscribers_join_recv_1500channel(self):
2214 ###"""Test 5k subscribers join and receive for 1500 channels surfing"""
2215 num_subscribers = 5000
2216 num_channels = 1500
2217 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2218 num_channels = num_channels,
2219 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2220 port_list = self.generate_port_list(num_subscribers, num_channels),
2221 negative_subscriber_auth = 'all')
2222 assert_equal(test_status, True)
2223
2224 @nottest
2225 def test_5k_cord_subscribers_join_jump_1500channel(self):
2226 ###"""Test 5k subscribers jump and receive for 1500 channels surfing"""
2227 num_subscribers = 5000
2228 num_channels = 1500
2229 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2230 num_channels = num_channels,
2231 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2232 port_list = self.generate_port_list(num_subscribers, num_channels),
2233 negative_subscriber_auth = 'all')
2234 assert_equal(test_status, True)
2235
2236 @nottest
2237 def test_5k_cord_subscribers_join_next_1500channel(self):
2238 ###"""Test 5k subscribers join next for 1500 channels"""
2239 num_subscribers = 5000
2240 num_channels = 1500
2241 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2242 num_channels = num_channels,
2243 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2244 port_list = self.generate_port_list(num_subscribers, num_channels),
2245 negative_subscriber_auth = 'all')
2246 assert_equal(test_status, True)
2247
2248 @nottest
2249 def test_10k_cord_subscribers_join_recv_100channel(self):
2250 ###"""Test 10k subscribers join and receive for 100 channels surfing"""
2251 num_subscribers = 10000
2252 num_channels = 100
2253 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2254 num_channels = num_channels,
2255 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2256 port_list = self.generate_port_list(num_subscribers, num_channels),
2257 negative_subscriber_auth = 'all')
2258 assert_equal(test_status, True)
2259
2260 @nottest
2261 def test_10k_cord_subscribers_join_jump_100channel(self):
2262 ###"""Test 10k subscribers jump and receive for 100 channels surfing"""
2263 num_subscribers = 10000
2264 num_channels = 100
2265 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2266 num_channels = num_channels,
2267 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2268 port_list = self.generate_port_list(num_subscribers, num_channels),
2269 negative_subscriber_auth = 'all')
2270 assert_equal(test_status, True)
2271
2272 @nottest
2273 def test_10k_cord_subscribers_join_next_100channel(self):
2274 ###"""Test 10k subscribers join next for 100 channels"""
2275 num_subscribers = 10000
2276 num_channels = 100
2277 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2278 num_channels = num_channels,
2279 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2280 port_list = self.generate_port_list(num_subscribers, num_channels),
2281 negative_subscriber_auth = 'all')
2282 assert_equal(test_status, True)
2283
2284 @nottest
2285 def test_100k_cord_subscribers_join_recv_100channel(self):
2286 ###"""Test 100k subscribers join and receive for 100 channels surfing"""
2287 num_subscribers = 100000
2288 num_channels = 100
2289 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2290 num_channels = num_channels,
2291 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2292 port_list = self.generate_port_list(num_subscribers, num_channels),
2293 negative_subscriber_auth = 'all')
2294 assert_equal(test_status, True)
2295
2296 @nottest
2297 def test_100k_cord_subscribers_join_jump_100channel(self):
2298 ###"""Test 100k subscribers jump and receive for 100 channels surfing"""
2299 num_subscribers = 100000
2300 num_channels = 100
2301 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2302 num_channels = num_channels,
2303 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2304 port_list = self.generate_port_list(num_subscribers, num_channels),
2305 negative_subscriber_auth = 'all')
2306 assert_equal(test_status, True)
2307
2308 @nottest
2309 def test_100k_cord_subscribers_join_next_100channel(self):
2310 ###"""Test 100k subscribers join next for 100 channels"""
2311 num_subscribers = 100000
2312 num_channels = 100
2313 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2314 num_channels = num_channels,
2315 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2316 port_list = self.generate_port_list(num_subscribers, num_channels),
2317 negative_subscriber_auth = 'all')
2318 assert_equal(test_status, True)
2319
2320 @nottest
2321 def test_10k_cord_subscribers_join_recv_400channel(self):
2322 ###"""Test 10k subscribers join and receive for 400 channels surfing"""
2323 num_subscribers = 10000
2324 num_channels = 400
2325 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2326 num_channels = num_channels,
2327 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2328 port_list = self.generate_port_list(num_subscribers, num_channels),
2329 negative_subscriber_auth = 'all')
2330 assert_equal(test_status, True)
2331
2332 @nottest
2333 def test_10k_cord_subscribers_join_jump_400channel(self):
2334 ###"""Test 10k subscribers jump and receive for 400 channels surfing"""
2335 num_subscribers = 10000
2336 num_channels = 400
2337 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2338 num_channels = num_channels,
2339 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2340 port_list = self.generate_port_list(num_subscribers, num_channels),
2341 negative_subscriber_auth = 'all')
2342 assert_equal(test_status, True)
2343
2344 @nottest
2345 def test_10k_cord_subscribers_join_next_400channel(self):
2346 ###"""Test 10k subscribers join next for 400 channels"""
2347 num_subscribers = 10000
2348 num_channels = 400
2349 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2350 num_channels = num_channels,
2351 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2352 port_list = self.generate_port_list(num_subscribers, num_channels),
2353 negative_subscriber_auth = 'all')
2354 assert_equal(test_status, True)
2355
2356 @nottest
2357 def test_10k_cord_subscribers_join_recv_800channel(self):
2358 ###"""Test 10k subscribers join and receive for 800 channels surfing"""
2359 num_subscribers = 10000
2360 num_channels = 800
2361 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2362 num_channels = num_channels,
2363 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2364 port_list = self.generate_port_list(num_subscribers, num_channels),
2365 negative_subscriber_auth = 'all')
2366 assert_equal(test_status, True)
2367
2368 @nottest
2369 def test_10k_cord_subscribers_join_jump_800channel(self):
2370 ###"""Test 10k subscribers jump and receive for 800 channels surfing"""
2371 num_subscribers = 10000
2372 num_channels = 800
2373 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2374 num_channels = num_channels,
2375 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2376 port_list = self.generate_port_list(num_subscribers, num_channels),
2377 negative_subscriber_auth = 'all')
2378 assert_equal(test_status, True)
2379
2380 @nottest
2381 def test_10k_cord_subscribers_join_next_800channel(self):
2382 ###"""Test 10k subscribers join next for 800 channels"""
2383 num_subscribers = 10000
2384 num_channels = 800
2385 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2386 num_channels = num_channels,
2387 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2388 port_list = self.generate_port_list(num_subscribers, num_channels),
2389 negative_subscriber_auth = 'all')
2390 assert_equal(test_status, True)
2391
2392 @nottest
2393 def test_10k_cord_subscribers_join_recv_1200channel(self):
2394 ###"""Test 10k subscribers join and receive for 1200 channels surfing"""
2395 num_subscribers = 10000
2396 num_channels = 1200
2397 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2398 num_channels = num_channels,
2399 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2400 port_list = self.generate_port_list(num_subscribers, num_channels),
2401 negative_subscriber_auth = 'all')
2402 assert_equal(test_status, True)
2403
2404 @nottest
2405 def test_10k_cord_subscribers_join_jump_1200channel(self):
2406 ###"""Test 10k subscribers jump and receive for 1200 channels surfing"""
2407 num_subscribers = 10000
2408 num_channels = 1200
2409 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2410 num_channels = num_channels,
2411 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2412 port_list = self.generate_port_list(num_subscribers, num_channels),
2413 negative_subscriber_auth = 'all')
2414 assert_equal(test_status, True)
2415
2416 @nottest
2417 def test_10k_cord_subscribers_join_next_1200channel(self):
2418 ###"""Test 10k subscribers join next for 1200 channels"""
2419 num_subscribers = 10000
2420 num_channels = 1200
2421 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2422 num_channels = num_channels,
2423 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2424 port_list = self.generate_port_list(num_subscribers, num_channels),
2425 negative_subscriber_auth = 'all')
2426 assert_equal(test_status, True)
2427
2428 @nottest
2429 def test_10k_cord_subscribers_join_recv_1500channel(self):
2430 ###"""Test 10k subscribers join and receive for 1500 channels surfing"""
2431 num_subscribers = 10000
2432 num_channels = 1500
2433 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2434 num_channels = num_channels,
2435 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2436 port_list = self.generate_port_list(num_subscribers, num_channels),
2437 negative_subscriber_auth = 'all')
2438 assert_equal(test_status, True)
2439
2440 @nottest
2441 def test_10k_cord_subscribers_join_jump_1500channel(self):
2442 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2443 num_subscribers = 10000
2444 num_channels = 1500
2445 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2446 num_channels = num_channels,
2447 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2448 port_list = self.generate_port_list(num_subscribers, num_channels),
2449 negative_subscriber_auth = 'all')
2450 assert_equal(test_status, True)
2451
2452 @nottest
2453 def test_10k_cord_subscribers_join_next_1500channel(self):
2454 ###"""Test 10k subscribers join next for 1500 channels"""
2455 num_subscribers = 10000
2456 num_channels = 1500
2457 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2458 num_channels = num_channels,
2459 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2460 port_list = self.generate_port_list(num_subscribers, num_channels),
2461 negative_subscriber_auth = 'all')
2462 assert_equal(test_status, True)
2463
2464 @nottest
2465 def test_100k_cord_subscribers_join_recv_1500channel(self):
2466 ###"""Test 100k subscribers join and receive for 1500 channels surfing"""
2467 num_subscribers = 100000
2468 num_channels = 1500
2469 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2470 num_channels = num_channels,
2471 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2472 port_list = self.generate_port_list(num_subscribers, num_channels),
2473 negative_subscriber_auth = 'all')
2474 assert_equal(test_status, True)
2475
2476 @nottest
2477 def test_100k_cord_subscribers_join_jump_1500channel(self):
2478 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2479 num_subscribers = 100000
2480 num_channels = 1500
2481 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2482 num_channels = num_channels,
2483 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2484 port_list = self.generate_port_list(num_subscribers, num_channels),
2485 negative_subscriber_auth = 'all')
2486 assert_equal(test_status, True)
2487
2488 @nottest
2489 def test_100k_cord_subscribers_join_next_1500channel(self):
2490 ###"""Test 10k subscribers join next for 1500 channels"""
2491 num_subscribers = 100000
2492 num_channels = 1500
2493 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2494 num_channels = num_channels,
2495 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2496 port_list = self.generate_port_list(num_subscribers, num_channels),
2497 negative_subscriber_auth = 'all')
2498 assert_equal(test_status, True)