blob: 6039ebdd4f68c993b3957e66018b8dd77b72b48b [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 Karthickb03cecd2016-07-27 10:27:55 -0700207 olt_conf_file = os.path.join(test_path, '..', 'setup/olt_config.json')
A R Karthickb7e80902016-05-17 09:38:31 -0700208 cpqd_path = os.path.join(test_path, '..', 'setup')
209 ovs_path = cpqd_path
A R Karthick65c4d722016-07-18 14:20:17 -0700210 test_services = ('IGMP', 'TRAFFIC')
A R Karthick338268f2016-06-21 17:12:13 -0700211 num_joins = 0
212 num_subscribers = 0
213 num_channels = 0
214 recv_timeout = False
A R Karthick4e0c0912016-08-17 16:57:42 -0700215 onos_restartable = bool(int(os.getenv('ONOS_RESTART', 0)))
A R Karthickb7e80902016-05-17 09:38:31 -0700216
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700217 INTF_TX_DEFAULT = 'veth2'
218 INTF_RX_DEFAULT = 'veth0'
219 SUBSCRIBER_TIMEOUT = 300
220
221 CLIENT_CERT = """-----BEGIN CERTIFICATE-----
222MIICuDCCAiGgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
223CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
224IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
225RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwNjA2MjExMjI3WhcN
226MTcwNjAxMjExMjI3WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
227BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
228hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
229gYEAwvXiSzb9LZ6c7uNziUfKvoHO7wu/uiFC5YUpXbmVGuGZizbVrny0xnR85Dfe
230+9R4diansfDhIhzOUl1XjN3YDeSS9OeF5YWNNE8XDhlz2d3rVzaN6hIhdotBkUjg
231rUewjTg5OFR31QEyG3v8xR3CLgiE9xQELjZbSA07pD79zuUCAwEAAaNPME0wEwYD
232VR0lBAwwCgYIKwYBBQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5l
233eGFtcGxlLmNvbS9leGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOBgQDAjkrY
2346tDChmKbvr8w6Du/t8vHjTCoCIocHTN0qzWOeb1YsAGX89+TrWIuO1dFyYd+Z0KC
235PDKB5j/ygml9Na+AklSYAVJIjvlzXKZrOaPmhZqDufi+rXWti/utVqY4VMW2+HKC
236nXp37qWeuFLGyR1519Y1d6F/5XzqmvbwURuEug==
237-----END CERTIFICATE-----"""
238
239 CLIENT_CERT_INVALID = '''-----BEGIN CERTIFICATE-----
240MIIDvTCCAqWgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
241CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
242IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
243RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwMzExMTg1MzM2WhcN
244MTcwMzA2MTg1MzM2WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
245BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
246hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
247AQoCggEBAOxemcBsPn9tZsCa5o2JA6sQDC7A6JgCNXXl2VFzKLNNvB9PS6D7ZBsQ
2485An0zEDMNzi51q7lnrYg1XyiE4S8FzMGAFr94RlGMQJUbRD9V/oqszMX4k++iAOK
249tIA1gr3x7Zi+0tkjVSVzXTmgNnhChAamdMsjYUG5+CY9WAicXyy+VEV3zTphZZDR
250OjcjEp4m/TSXVPYPgYDXI40YZKX5BdvqykWtT/tIgZb48RS1NPyN/XkCYzl3bv21
251qx7Mc0fcEbsJBIIRYTUkfxnsilcnmLxSYO+p+DZ9uBLBzcQt+4Rd5pLSfi21WM39
2522Z2oOi3vs/OYAPAqgmi2JWOv3mePa/8CAwEAAaNPME0wEwYDVR0lBAwwCgYIKwYB
253BQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5leGFtcGxlLmNvbS9l
254eGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOCAQEALBzMPDTIB6sLyPl0T6JV
255MjOkyldAVhXWiQsTjaGQGJUUe1cmUJyZbUZEc13MygXMPOM4x7z6VpXGuq1c/Vxn
256VzQ2fNnbJcIAHi/7G8W5/SQfPesIVDsHTEc4ZspPi5jlS/MVX3HOC+BDbOjdbwqP
257RX0JEr+uOyhjO+lRxG8ilMRACoBUbw1eDuVDoEBgErSUC44pq5ioDw2xelc+Y6hQ
258dmtYwfY0DbvwxHtA495frLyPcastDiT/zre7NL51MyUDPjjYjghNQEwvu66IKbQ3
259T1tJBrgI7/WI+dqhKBFolKGKTDWIHsZXQvZ1snGu/FRYzg1l+R/jT8cRB9BDwhUt
260yg==
261-----END CERTIFICATE-----'''
262
A R Karthickb7e80902016-05-17 09:38:31 -0700263 @classmethod
A R Karthickd44cea12016-07-20 12:16:41 -0700264 def load_device_id(cls):
A R Karthickb03cecd2016-07-27 10:27:55 -0700265 '''Configure the device id'''
266 did = OnosCtrl.get_device_id()
A R Karthickd44cea12016-07-20 12:16:41 -0700267 #Set the default config
268 cls.device_id = did
269 cls.device_dict = { "devices" : {
270 "{}".format(did) : {
271 "basic" : {
272 "driver" : "pmc-olt"
273 }
274 }
275 },
276 }
277 return did
278
279 @classmethod
A R Karthickb7e80902016-05-17 09:38:31 -0700280 def setUpClass(cls):
281 '''Load the OLT config and activate relevant apps'''
A R Karthick0f6b6842016-12-06 17:17:44 -0800282 dids = OnosCtrl.get_device_ids()
283 device_map = {}
284 for did in dids:
285 device_map[did] = { 'basic' : { 'driver' : 'pmc-olt' } }
286 network_cfg = {}
287 network_cfg = { 'devices' : device_map }
A R Karthick4b72d4b2016-06-15 11:09:17 -0700288 ## Restart ONOS with cpqd driver config for OVS
289 cls.start_onos(network_cfg = network_cfg)
A R Karthickb7e80902016-05-17 09:38:31 -0700290 cls.install_app_table()
A R Karthickb7e80902016-05-17 09:38:31 -0700291 cls.olt = OltConfig(olt_conf_file = cls.olt_conf_file)
A R Karthick0f6b6842016-12-06 17:17:44 -0800292 OnosCtrl.cord_olt_config(cls.olt)
A R Karthickb03cecd2016-07-27 10:27:55 -0700293 cls.port_map, cls.port_list = cls.olt.olt_port_map()
A R Karthick0f6b6842016-12-06 17:17:44 -0800294 cls.switches = cls.port_map['switches']
295 cls.num_ports = cls.port_map['num_ports']
296 if cls.num_ports > 1:
297 cls.num_ports -= 1 ##account for the tx port
A R Karthickb7e80902016-05-17 09:38:31 -0700298 cls.activate_apps(cls.apps + cls.olt_apps)
299
300 @classmethod
301 def tearDownClass(cls):
302 '''Deactivate the olt apps and restart OVS back'''
303 apps = cls.olt_apps + ( cls.table_app,)
304 for app in apps:
305 onos_ctrl = OnosCtrl(app)
306 onos_ctrl.deactivate()
A R Karthicke0f33fa2016-06-22 13:36:02 -0700307 cls.start_onos(network_cfg = {})
A R Karthicke5939f02016-11-16 12:08:07 -0800308 cls.install_app_igmp()
A R Karthickb7e80902016-05-17 09:38:31 -0700309
310 @classmethod
311 def activate_apps(cls, apps):
312 for app in apps:
313 onos_ctrl = OnosCtrl(app)
314 status, _ = onos_ctrl.activate()
315 assert_equal(status, True)
316 time.sleep(2)
317
318 @classmethod
319 def install_app_table(cls):
320 ##Uninstall the existing app if any
321 OnosCtrl.uninstall_app(cls.table_app)
322 time.sleep(2)
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'
385 cord_test_shell(cmd)
386 ##Since olt config is used for this test, we just fire a careless local cmd as well
387 try:
388 os.system(cmd)
389 except: pass
390
A R Karthickb7e80902016-05-17 09:38:31 -0700391 def onos_aaa_load(self):
392 if self.aaa_loaded:
393 return
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700394 aaa_dict = {'apps' : { 'org.opencord.aaa' : { 'AAA' : { 'radiusSecret': 'radius_password',
395 'radiusIp': '172.17.0.2' } } } }
A R Karthickb7e80902016-05-17 09:38:31 -0700396 radius_ip = os.getenv('ONOS_AAA_IP') or '172.17.0.2'
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700397 aaa_dict['apps']['org.opencord.aaa']['AAA']['radiusIp'] = radius_ip
398 self.onos_load_config('org.opencord.aaa', aaa_dict)
A R Karthickb7e80902016-05-17 09:38:31 -0700399 self.aaa_loaded = True
400
401 def onos_dhcp_table_load(self, config = None):
402 dhcp_dict = {'apps' : { 'org.onosproject.dhcp' : { 'dhcp' : copy.copy(self.dhcp_server_config) } } }
403 dhcp_config = dhcp_dict['apps']['org.onosproject.dhcp']['dhcp']
404 if config:
405 for k in config.keys():
406 if dhcp_config.has_key(k):
407 dhcp_config[k] = config[k]
408 self.onos_load_config('org.onosproject.dhcp', dhcp_dict)
409
410 def onos_load_config(self, app, config):
411 status, code = OnosCtrl.config(config)
412 if status is False:
A R Karthick76a497a2017-04-12 10:59:39 -0700413 log_test.info('JSON config request for app %s returned status %d' %(app, code))
A R Karthickb7e80902016-05-17 09:38:31 -0700414 assert_equal(status, True)
415 time.sleep(2)
416
417 def dhcp_sndrcv(self, dhcp, update_seed = False):
418 cip, sip = dhcp.discover(update_seed = update_seed)
419 assert_not_equal(cip, None)
420 assert_not_equal(sip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700421 log_test.info('Got dhcp client IP %s from server %s for mac %s' %
A R Karthickb7e80902016-05-17 09:38:31 -0700422 (cip, sip, dhcp.get_mac(cip)[0]))
423 return cip,sip
424
425 def dhcp_request(self, subscriber, seed_ip = '10.10.10.1', update_seed = False):
426 config = {'startip':'10.10.10.20', 'endip':'10.10.10.200',
427 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
428 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
429 self.onos_dhcp_table_load(config)
430 dhcp = DHCPTest(seed_ip = seed_ip, iface = subscriber.iface)
431 cip, sip = self.dhcp_sndrcv(dhcp, update_seed = update_seed)
432 return cip, sip
433
434 def recv_channel_cb(self, pkt):
435 ##First verify that we have received the packet for the joined instance
436 chan = self.subscriber.caddr(pkt[IP].dst)
437 assert_equal(chan in self.subscriber.join_map.keys(), True)
438 recv_time = monotonic.monotonic() * 1000000
439 join_time = self.subscriber.join_map[chan][self.subscriber.STATS_JOIN].start
440 delta = recv_time - join_time
441 self.subscriber.join_rx_stats.update(packets=1, t = delta, usecs = True)
442 self.subscriber.channel_update(chan, self.subscriber.STATS_RX, 1, t = delta)
A R Karthick76a497a2017-04-12 10:59:39 -0700443 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 -0700444 self.test_status = True
445
A R Karthick65c4d722016-07-18 14:20:17 -0700446 def traffic_verify(self, subscriber):
447 if subscriber.has_service('TRAFFIC'):
448 url = 'http://www.google.com'
449 resp = requests.get(url)
450 self.test_status = resp.ok
451 if resp.ok == False:
A R Karthick76a497a2017-04-12 10:59:39 -0700452 log_test.info('Subscriber %s failed get from url %s with status code %d'
A R Karthick65c4d722016-07-18 14:20:17 -0700453 %(subscriber.name, url, resp.status_code))
454 else:
A R Karthick76a497a2017-04-12 10:59:39 -0700455 log_test.info('GET request from %s succeeded for subscriber %s'
A R Karthick65c4d722016-07-18 14:20:17 -0700456 %(url, subscriber.name))
A R Karthicka013a272016-08-16 16:40:19 -0700457 return self.test_status
A R Karthick65c4d722016-07-18 14:20:17 -0700458
A R Karthickb7e80902016-05-17 09:38:31 -0700459 def tls_verify(self, subscriber):
460 if subscriber.has_service('TLS'):
461 time.sleep(2)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700462 tls = TLSAuthTest(intf = subscriber.rx_intf)
A R Karthick76a497a2017-04-12 10:59:39 -0700463 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700464 tls.runTest()
465 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700466 return self.test_status
467 else:
468 self.test_status = True
469 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700470
471 def dhcp_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700472 if subscriber.has_service('DHCP'):
473 cip, sip = self.dhcp_request(subscriber, update_seed = True)
A R Karthick76a497a2017-04-12 10:59:39 -0700474 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700475 subscriber.src_list = [cip]
476 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700477 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700478 else:
479 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
480 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700481 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700482
483 def dhcp_jump_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700484 if subscriber.has_service('DHCP'):
485 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.200.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700486 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700487 subscriber.src_list = [cip]
488 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700489 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700490 else:
491 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
492 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700493 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700494
495 def dhcp_next_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700496 if subscriber.has_service('DHCP'):
497 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.150.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700498 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700499 subscriber.src_list = [cip]
500 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700501 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700502 else:
503 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
504 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700505 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700506
507 def igmp_verify(self, subscriber):
508 chan = 0
509 if subscriber.has_service('IGMP'):
A R Karthick338268f2016-06-21 17:12:13 -0700510 ##We wait for all the subscribers to join before triggering leaves
511 if subscriber.rx_port > 1:
512 time.sleep(5)
513 subscriber.channel_join(chan, delay = 0)
514 self.num_joins += 1
515 while self.num_joins < self.num_subscribers:
516 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700517 log_test.info('All subscribers have joined the channel')
A R Karthick338268f2016-06-21 17:12:13 -0700518 for i in range(10):
519 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
A R Karthick76a497a2017-04-12 10:59:39 -0700520 log_test.info('Leaving channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700521 subscriber.channel_leave(chan)
A R Karthick338268f2016-06-21 17:12:13 -0700522 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700523 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 -0700524 #Should not receive packets for this subscriber
525 self.recv_timeout = True
526 subscriber.recv_timeout = True
527 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
528 subscriber.recv_timeout = False
529 self.recv_timeout = False
A R Karthick76a497a2017-04-12 10:59:39 -0700530 log_test.info('Joining channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthick338268f2016-06-21 17:12:13 -0700531 subscriber.channel_join(chan, delay = 0)
A R Karthickb7e80902016-05-17 09:38:31 -0700532 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700533 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700534
535 def igmp_jump_verify(self, subscriber):
536 if subscriber.has_service('IGMP'):
537 for i in xrange(subscriber.num):
A R Karthick76a497a2017-04-12 10:59:39 -0700538 log_test.info('Subscriber %s jumping channel' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700539 chan = subscriber.channel_jump(delay=0)
540 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 1)
A R Karthick76a497a2017-04-12 10:59:39 -0700541 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700542 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700543 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 -0700544 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700545 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700546
547 def igmp_next_verify(self, subscriber):
548 if subscriber.has_service('IGMP'):
549 for i in xrange(subscriber.num):
550 if i:
551 chan = subscriber.channel_join_next(delay=0)
552 else:
553 chan = subscriber.channel_join(i, delay=0)
A R Karthick76a497a2017-04-12 10:59:39 -0700554 log_test.info('Joined next channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700555 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count=1)
A R Karthick76a497a2017-04-12 10:59:39 -0700556 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700557 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700558 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 -0700559 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700560 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700561
562 def generate_port_list(self, subscribers, channels):
563 return self.port_list[:subscribers]
564
565 def subscriber_load(self, create = True, num = 10, num_channels = 1, channel_start = 0, port_list = []):
566 '''Load the subscriber from the database'''
A R Karthick4b72d4b2016-06-15 11:09:17 -0700567 self.subscriber_db = SubscriberDB(create = create, services = self.test_services)
A R Karthickb7e80902016-05-17 09:38:31 -0700568 if create is True:
569 self.subscriber_db.generate(num)
570 self.subscriber_info = self.subscriber_db.read(num)
571 self.subscriber_list = []
572 if not port_list:
573 port_list = self.generate_port_list(num, num_channels)
574
575 index = 0
576 for info in self.subscriber_info:
A.R Karthick95d044e2016-06-10 18:44:36 -0700577 self.subscriber_list.append(Subscriber(name=info['Name'],
A R Karthickb7e80902016-05-17 09:38:31 -0700578 service=info['Service'],
579 port_map = self.port_map,
580 num=num_channels,
581 channel_start = channel_start,
582 tx_port = port_list[index][0],
583 rx_port = port_list[index][1]))
584 if num_channels > 1:
585 channel_start += num_channels
586 index += 1
587
588 #load the ssm list for all subscriber channels
589 igmpChannel = IgmpChannel()
590 ssm_groups = map(lambda sub: sub.channels, self.subscriber_list)
591 ssm_list = reduce(lambda ssm1, ssm2: ssm1+ssm2, ssm_groups)
592 igmpChannel.igmp_load_ssm_config(ssm_list)
593
A.R Karthick95d044e2016-06-10 18:44:36 -0700594 def subscriber_join_verify( self, num_subscribers = 10, num_channels = 1,
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700595 channel_start = 0, cbs = None, port_list = [], negative_subscriber_auth = None):
A R Karthickb7e80902016-05-17 09:38:31 -0700596 self.test_status = False
A R Karthicka013a272016-08-16 16:40:19 -0700597 self.ovs_cleanup()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700598 subscribers_count = num_subscribers
599 sub_loop_count = num_subscribers
A R Karthickb7e80902016-05-17 09:38:31 -0700600 self.subscriber_load(create = True, num = num_subscribers,
601 num_channels = num_channels, channel_start = channel_start, port_list = port_list)
602 self.onos_aaa_load()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700603 self.thread_pool = ThreadPool(min(100, subscribers_count), queue_size=1, wait_timeout=1)
604
A R Karthick338268f2016-06-21 17:12:13 -0700605 chan_leave = False #for single channel, multiple subscribers
A R Karthicke237aee2016-12-01 17:46:43 -0800606 if cbs is None:
A R Karthick65c4d722016-07-18 14:20:17 -0700607 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
A R Karthick338268f2016-06-21 17:12:13 -0700608 chan_leave = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700609 cbs_negative = cbs
A R Karthickb7e80902016-05-17 09:38:31 -0700610 for subscriber in self.subscriber_list:
611 subscriber.start()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700612 if negative_subscriber_auth is 'half' and sub_loop_count%2 is not 0:
613 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
614 elif negative_subscriber_auth is 'onethird' and sub_loop_count%3 is not 0:
615 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
616 else:
617 cbs = cbs_negative
618 sub_loop_count = sub_loop_count - 1
A R Karthickb7e80902016-05-17 09:38:31 -0700619 pool_object = subscriber_pool(subscriber, cbs)
620 self.thread_pool.addTask(pool_object.pool_cb)
621 self.thread_pool.cleanUpThreads()
622 for subscriber in self.subscriber_list:
623 subscriber.stop()
A R Karthick338268f2016-06-21 17:12:13 -0700624 if chan_leave is True:
625 subscriber.channel_leave(0)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700626 subscribers_count = 0
A R Karthickb7e80902016-05-17 09:38:31 -0700627 return self.test_status
628
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700629 def tls_invalid_cert(self, subscriber):
630 if subscriber.has_service('TLS'):
631 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700632 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700633 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_INVALID)
634 tls.runTest()
635 if tls.failTest == True:
636 self.test_status = False
637 return self.test_status
638 else:
639 self.test_status = True
640 return self.test_status
641
642 def tls_no_cert(self, subscriber):
643 if subscriber.has_service('TLS'):
644 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700645 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700646 tls = TLSAuthTest(client_cert = '')
647 tls.runTest()
648 if tls.failTest == True:
649 self.test_status = False
650 return self.test_status
651 else:
652 self.test_status = True
653 return self.test_status
654
655 def tls_self_signed_cert(self, subscriber):
656 if subscriber.has_service('TLS'):
657 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700658 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700659 tls = TLSAuthTest(client_cert = self.CLIENT_CERT)
660 tls.runTest()
661 if tls.failTest == False:
662 self.test_status = True
663 return self.test_status
664 else:
665 self.test_status = True
666 return self.test_status
667
668 def tls_non_ca_authrized_cert(self, subscriber):
669 if subscriber.has_service('TLS'):
670 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700671 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700672 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_NON_CA_AUTHORIZED)
673 tls.runTest()
674 if tls.failTest == False:
675 self.test_status = True
676 return self.test_status
677 else:
678 self.test_status = True
679 return self.test_status
680
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700681 def tls_Nsubscribers_use_same_valid_cert(self, subscriber):
682 if subscriber.has_service('TLS'):
683 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700684 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700685 num_users = 3
686 for i in xrange(num_users):
687 tls = TLSAuthTest(intf = 'veth{}'.format(i*2))
688 tls.runTest()
689 if tls.failTest == False:
690 self.test_status = True
691 return self.test_status
692 else:
693 self.test_status = True
694 return self.test_status
695
696 def dhcp_discover_scenario(self, subscriber):
697 if subscriber.has_service('DHCP'):
698 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700699 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700700 t1 = self.subscriber_dhcp_1release()
701 self.test_status = True
702 return self.test_status
703 else:
704 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
705 self.test_status = True
706 return self.test_status
707
708 def subscriber_dhcp_1release(self, iface = INTF_RX_DEFAULT):
A R Karthick76a497a2017-04-12 10:59:39 -0700709 config = {'startip':'10.10.100.20', 'endip':'10.10.100.21',
710 'ip':'10.10.100.2', 'mac': "ca:fe:ca:fe:8a:fe",
711 'subnet': '255.255.255.0', 'broadcast':'10.10.100.255', 'router':'10.10.100.1'}
712 self.onos_dhcp_table_load(config)
713 self.dhcp = DHCPTest(seed_ip = '10.10.100.10', iface = iface)
714 cip, sip = self.send_recv()
715 log_test.info('Releasing ip %s to server %s' %(cip, sip))
716 assert_equal(self.dhcp.release(cip), True)
717 log_test.info('Triggering DHCP discover again after release')
718 cip2, sip2 = self.send_recv(update_seed = True)
719 log_test.info('Verifying released IP was given back on rediscover')
720 assert_equal(cip, cip2)
721 log_test.info('Test done. Releasing ip %s to server %s' %(cip2, sip2))
722 assert_equal(self.dhcp.release(cip2), True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700723
724 def dhcp_client_reboot_scenario(self, subscriber):
725 if subscriber.has_service('DHCP'):
726 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700727 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700728 tl = self.subscriber_dhcp_client_request_after_reboot()
729 self.test_status = True
730 return self.test_status
731 else:
732 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
733 self.test_status = True
734 return self.test_status
735
736 def subscriber_dhcp_client_request_after_reboot(self, iface = INTF_RX_DEFAULT):
737 #''' Client sends DHCP Request after reboot.'''
738
739 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
740 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
741 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
742 self.onos_dhcp_table_load(config)
743 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
744 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700745 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700746 (cip, sip, mac) )
747
A R Karthick76a497a2017-04-12 10:59:39 -0700748 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 -0700749
750 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700751 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 -0700752 assert_not_equal(cip, None)
753
754 else:
755 new_cip, new_sip = self.dhcp.only_request(cip, mac)
756 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700757 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700758 os.system('ifconfig '+iface+' down')
A R Karthick76a497a2017-04-12 10:59:39 -0700759 log_test.info('Client goes down.')
760 log_test.info('Delay for 5 seconds.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700761
762 time.sleep(5)
763
764 os.system('ifconfig '+iface+' up')
A R Karthick76a497a2017-04-12 10:59:39 -0700765 log_test.info('Client is up now.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700766
767 new_cip, new_sip = self.dhcp.only_request(cip, mac)
768 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700769 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700770 assert_not_equal(new_cip, None)
771 elif new_cip != None:
A R Karthick76a497a2017-04-12 10:59:39 -0700772 log_test.info("Got DHCP ACK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700773
774 def dhcp_client_renew_scenario(self, subscriber):
775 if subscriber.has_service('DHCP'):
776 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700777 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700778 tl = self.subscriber_dhcp_client_renew_time()
779 self.test_status = True
780 return self.test_status
781 else:
782 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
783 self.test_status = True
784 return self.test_status
785
786 def subscriber_dhcp_client_renew_time(self, iface = INTF_RX_DEFAULT):
787 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
788 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
789 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
790 self.onos_dhcp_table_load(config)
791 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
792 cip, sip, mac , lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700793 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700794 (cip, sip, mac) )
795
A R Karthick76a497a2017-04-12 10:59:39 -0700796 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 -0700797 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700798 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 -0700799 assert_not_equal(cip, None)
800 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700801 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700802 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, renew_time = True)
803 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700804 log_test.info("Client 's Renewal time is :%s",lval)
805 log_test.info("Generating delay till renewal time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700806 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700807 log_test.info("Client Sending Unicast DHCP request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700808 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac, unicast = True)
809 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700810 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700811 (latest_cip, mac, latest_sip) )
812
813 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700814 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700815 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700816 log_test.info("Got DHCP NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700817
818 def dhcp_server_reboot_scenario(self, subscriber):
819 if subscriber.has_service('DHCP'):
820 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700821 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700822 tl = self.subscriber_dhcp_server_after_reboot()
823 self.test_status = True
824 return self.test_status
825 else:
826 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
827 self.test_status = True
828 return self.test_status
829
830 def subscriber_dhcp_server_after_reboot(self, iface = INTF_RX_DEFAULT):
831 ''' DHCP server goes down.'''
832 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
833 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
834 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
835 self.onos_dhcp_table_load(config)
836 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
837 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700838 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700839 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700840 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 -0700841 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700842 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 -0700843 assert_not_equal(cip, None)
844 else:
845 new_cip, new_sip = self.dhcp.only_request(cip, mac)
846 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700847 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700848 assert_not_equal(new_cip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700849 log_test.info('Getting DHCP server Down.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700850 onos_ctrl = OnosCtrl(self.dhcp_app)
851 onos_ctrl.deactivate()
852 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700853 log_test.info("Sending DHCP Request.")
854 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700855 new_cip, new_sip = self.dhcp.only_request(cip, mac)
856 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700857 log_test.info('')
858 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700859 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700860 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700861 assert_equal(new_cip,None) #Neagtive Test Case
A R Karthick76a497a2017-04-12 10:59:39 -0700862 log_test.info('Getting DHCP server Up.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700863# self.activate_apps(self.dhcp_app)
864 onos_ctrl = OnosCtrl(self.dhcp_app)
865 status, _ = onos_ctrl.activate()
866 assert_equal(status, True)
867 time.sleep(3)
868 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700869 log_test.info("Sending DHCP Request after DHCP server is up.")
870 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700871 new_cip, new_sip = self.dhcp.only_request(cip, mac)
872 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700873 log_test.info('')
874 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700875 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700876 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700877 assert_equal(new_cip,None) #Neagtive Test Case
878
879 def dhcp_client_rebind_scenario(self, subscriber):
880 if subscriber.has_service('DHCP'):
881 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700882 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700883 tl = self.subscriber_dhcp_client_rebind_time()
884 self.test_status = True
885 return self.test_status
886 else:
887 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
888 self.test_status = True
889 return self.test_status
890
891 def subscriber_dhcp_client_rebind_time(self, iface = INTF_RX_DEFAULT):
892 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
893 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
894 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
895 self.onos_dhcp_table_load(config)
896 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
897 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700898 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700899 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700900 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 -0700901 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700902 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 -0700903 assert_not_equal(cip, None)
904 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700905 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700906 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, rebind_time = True)
907 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700908 log_test.info("Client 's Rebind time is :%s",lval)
909 log_test.info("Generating delay till rebind time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700910 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700911 log_test.info("Client Sending broadcast DHCP requests for renewing lease or for getting new ip.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700912 self.dhcp.after_T2 = True
913 for i in range(0,4):
914 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac)
915 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700916 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700917 (latest_cip, mac, latest_sip) )
918 break
919 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700920 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700921 assert_not_equal(latest_cip, None)
922 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700923 log_test.info("Got DHCP NAK.Lease not Renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700924
925 def dhcp_starvation_scenario(self, subscriber):
926 if subscriber.has_service('DHCP'):
927 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700928 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700929 tl = self.subscriber_dhcp_starvation()
930 self.test_status = True
931 return self.test_status
932 else:
933 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
934 self.test_status = True
935 return self.test_status
936
937 def subscriber_dhcp_starvation(self, iface = INTF_RX_DEFAULT):
938 '''DHCP starve'''
939 config = {'startip':'182.17.0.20', 'endip':'182.17.0.69',
940 'ip':'182.17.0.2', 'mac': "ca:fe:c3:fe:ca:fe",
941 'subnet': '255.255.255.0', 'broadcast':'182.17.0.255', 'router':'182.17.0.1'}
942 self.onos_dhcp_table_load(config)
943 self.dhcp = DHCPTest(seed_ip = '182.17.0.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -0700944 log_test.info('Verifying 1 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700945 for x in xrange(50):
946 mac = RandMAC()._fix()
947 self.send_recv(mac = mac)
A R Karthick76a497a2017-04-12 10:59:39 -0700948 log_test.info('Verifying 2 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700949 cip, sip = self.send_recv(update_seed = True, validate = False)
950 assert_equal(cip, None)
951 assert_equal(sip, None)
952
953 def dhcp_same_client_multi_discovers_scenario(self, subscriber):
954 if subscriber.has_service('DHCP'):
955 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700956 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700957 tl = self.subscriber_dhcp_same_client_multiple_discover()
958 self.test_status = True
959 return self.test_status
960 else:
961 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
962 self.test_status = True
963 return self.test_status
964
965 def subscriber_dhcp_same_client_multiple_discover(self, iface = INTF_RX_DEFAULT):
966 ''' DHCP Client sending multiple discover . '''
967 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
968 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
969 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
970 self.onos_dhcp_table_load(config)
971 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
972 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700973 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 -0700974 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700975 log_test.info('Triggering DHCP discover again.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700976 new_cip, new_sip, new_mac , lval = self.dhcp.only_discover()
977 if cip == new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700978 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 -0700979 % (new_cip, new_sip, new_mac) )
980 elif cip != new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700981 log_test.info('Ip after 1st discover %s' %cip)
982 log_test.info('Map after 2nd discover %s' %new_cip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700983 assert_equal(cip, new_cip)
984
985 def dhcp_same_client_multi_request_scenario(self, subscriber):
986 if subscriber.has_service('DHCP'):
987 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700988 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700989 tl = self.subscriber_dhcp_same_client_multiple_request()
990 self.test_status = True
991 return self.test_status
992 else:
993 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
994 self.test_status = True
995 return self.test_status
996
997 def subscriber_dhcp_same_client_multiple_request(self, iface = INTF_RX_DEFAULT):
998 ''' DHCP Client sending multiple repeat DHCP requests. '''
999 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
1000 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
1001 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
1002 self.onos_dhcp_table_load(config)
1003 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001004 log_test.info('Sending DHCP discover and DHCP request.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001005 cip, sip = self.send_recv()
1006 mac = self.dhcp.get_mac(cip)[0]
A R Karthick76a497a2017-04-12 10:59:39 -07001007 log_test.info("Sending DHCP request again.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001008 new_cip, new_sip = self.dhcp.only_request(cip, mac)
1009 if (new_cip,new_sip) == (cip,sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001010 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 -07001011 % (new_cip, new_sip, mac) )
1012 elif (new_cip,new_sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001013 log_test.info('No DHCP ACK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001014 assert_equal(new_cip, None)
1015 assert_equal(new_sip, None)
1016 else:
1017 print "Something went wrong."
1018
1019 def dhcp_client_desired_ip_scenario(self, subscriber):
1020 if subscriber.has_service('DHCP'):
1021 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001022 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001023 tl = self.subscriber_dhcp_client_desired_address()
1024 self.test_status = True
1025 return self.test_status
1026 else:
1027 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1028 self.test_status = True
1029 return self.test_status
1030
1031 def subscriber_dhcp_client_desired_address(self, iface = INTF_RX_DEFAULT):
1032 '''DHCP Client asking for desired IP address.'''
1033 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1034 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1035 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1036 self.onos_dhcp_table_load(config)
1037 self.dhcp = DHCPTest(seed_ip = '20.20.20.31', iface = iface)
1038 cip, sip, mac , lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001039 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001040 (cip, sip, mac) )
1041 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001042 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001043 (cip, sip, mac) )
1044 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001045 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001046 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001047 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001048 assert_equal(cip, self.dhcp.seed_ip)
1049
1050 def dhcp_client_request_pkt_with_non_offered_ip_scenario(self, subscriber):
1051 if subscriber.has_service('DHCP'):
1052 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001053 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001054 tl = self.subscriber_dhcp_server_nak_packet()
1055 self.test_status = True
1056 return self.test_status
1057 else:
1058 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1059 self.test_status = True
1060 return self.test_status
1061
1062 def subscriber_dhcp_server_nak_packet(self, iface = INTF_RX_DEFAULT):
1063 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1064 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1065 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1066 self.onos_dhcp_table_load(config)
1067 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
1068 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -07001069 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001070 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001071 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 -07001072 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001073 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 -07001074 assert_not_equal(cip, None)
1075 else:
1076 new_cip, new_sip = self.dhcp.only_request('20.20.20.31', mac)
1077 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001078 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001079 assert_equal(new_cip, None) #Negative Test Case
1080
1081 def dhcp_client_requested_out_pool_ip_scenario(self, subscriber):
1082 if subscriber.has_service('DHCP'):
1083 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001084 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001085 tl = self.subscriber_dhcp_client_desired_address_out_of_pool()
1086 self.test_status = True
1087 return self.test_status
1088 else:
1089 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1090 self.test_status = True
1091 return self.test_status
1092
1093 def subscriber_dhcp_client_desired_address_out_of_pool(self, iface = INTF_RX_DEFAULT):
1094 '''DHCP Client asking for desired IP address from out of pool.'''
1095 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1096 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1097 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1098 self.onos_dhcp_table_load(config)
1099 self.dhcp = DHCPTest(seed_ip = '20.20.20.35', iface = iface)
1100 cip, sip, mac, lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001101 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001102 (cip, sip, mac) )
1103 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001104 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001105 (cip, sip, mac) )
1106 assert_equal(cip, self.dhcp.seed_ip) #Negative Test Case
1107
1108 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001109 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001110 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001111 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001112 assert_not_equal(cip, self.dhcp.seed_ip)
1113
1114 elif cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001115 log_test.info('Got DHCP NAK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001116
1117 def dhcp_client_specific_lease_scenario(self, subscriber):
1118 if subscriber.has_service('DHCP'):
1119 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001120 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001121 tl = self.subscriber_dhcp_specific_lease_packet()
1122 self.test_status = True
1123 return self.test_status
1124 else:
1125 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1126 self.test_status = True
1127 return self.test_status
1128
1129 def subscriber_dhcp_specific_lease_packet(self, iface = INTF_RX_DEFAULT):
1130 ''' Client sends DHCP Discover packet for particular lease time.'''
1131 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1132 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1133 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1134 self.onos_dhcp_table_load(config)
1135 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001136 log_test.info('Sending DHCP discover with lease time of 700')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001137 cip, sip, mac, lval = self.dhcp.only_discover(lease_time = True)
1138
A R Karthick76a497a2017-04-12 10:59:39 -07001139 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001140 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001141 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 -07001142 assert_not_equal(cip, None)
1143 elif lval != 700:
A R Karthick76a497a2017-04-12 10:59:39 -07001144 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 -07001145 (cip, sip, mac, lval) )
1146 assert_not_equal(lval, 700)
1147
1148 def test_cord_subscriber_join_recv(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001149 """Test subscriber join and receive for channel surfing"""
A R Karthick338268f2016-06-21 17:12:13 -07001150 self.num_subscribers = 5
1151 self.num_channels = 1
A R Karthicka478df42016-07-27 16:51:08 -07001152 test_status = True
1153 ##Run this test only if ONOS can be restarted as it incurs a network-cfg change
1154 if self.onos_restartable is True:
1155 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1156 num_channels = self.num_channels,
1157 port_list = self.generate_port_list(self.num_subscribers,
1158 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001159 assert_equal(test_status, True)
1160
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001161 def test_cord_subscriber_join_jump(self):
A R Karthicka478df42016-07-27 16:51:08 -07001162 """Test subscriber join jump for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001163 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001164 self.num_channels = 10
1165 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1166 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001167 cbs = (self.tls_verify, self.dhcp_jump_verify,
1168 self.igmp_jump_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001169 port_list = self.generate_port_list(self.num_subscribers,
1170 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001171 assert_equal(test_status, True)
1172
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001173 def test_cord_subscriber_join_next(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001174 """Test subscriber join next for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001175 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001176 self.num_channels = 10
1177 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1178 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001179 cbs = (self.tls_verify, self.dhcp_next_verify,
1180 self.igmp_next_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001181 port_list = self.generate_port_list(self.num_subscribers,
1182 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001183 assert_equal(test_status, True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001184
1185 #@deferred(SUBSCRIBER_TIMEOUT)
1186 def test_cord_subscriber_authentication_with_invalid_certificate_and_channel_surfing(self):
1187 ### """Test subscriber to auth with invalidCertification and join channel"""
1188 num_subscribers = 1
1189 num_channels = 1
1190 df = defer.Deferred()
1191 def sub_auth_invalid_cert(df):
1192 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1193 num_channels = num_channels,
1194 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1195 self.igmp_verify, self.traffic_verify),
1196 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1197 assert_equal(test_status, False)
1198 df.callback(0)
1199 reactor.callLater(0, sub_auth_invalid_cert, df)
1200 return df
1201
1202 #@deferred(SUBSCRIBER_TIMEOUT)
1203 def test_cord_subscriber_authentication_with_no_certificate_and_channel_surfing(self):
1204 ### """Test subscriber to auth with No Certification and join channel"""
1205 num_subscribers = 1
1206 num_channels = 1
1207 df = defer.Deferred()
1208 def sub_auth_no_cert(df):
1209 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1210 num_channels = num_channels,
1211 cbs = (self.tls_no_cert, self.dhcp_verify,
1212 self.igmp_verify, self.traffic_verify),
1213 port_list = self.generate_port_list(num_subscribers, num_channels),
1214 negative_subscriber_auth = 'all')
1215 assert_equal(test_status, False)
1216 df.callback(0)
1217 reactor.callLater(0, sub_auth_no_cert, df)
1218 return df
1219 def test_cord_subscriber_authentication_with_self_signed_certificate_and_channel_surfing(self):
1220 ### """Test subscriber to auth with Self Signed Certification and join channel"""
1221 num_subscribers = 1
1222 num_channels = 1
1223 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1224 num_channels = num_channels,
1225 cbs = (self.tls_self_signed_cert, self.dhcp_verify,
1226 self.igmp_verify, self.traffic_verify),
1227 port_list = self.generate_port_list(num_subscribers, num_channels),
1228 negative_subscriber_auth = 'all')
1229 assert_equal(test_status, True)
1230
1231 @deferred(SUBSCRIBER_TIMEOUT)
1232 def test_2_cord_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1233 ### """Test 2 subscribers to auth, one of the subscriber with invalidCertification and join channel"""
1234 num_subscribers = 2
1235 num_channels = 1
1236 df = defer.Deferred()
1237 def sub_auth_invalid_cert(df):
1238 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1239 num_channels = num_channels,
1240 cbs = (self.tls_invalid_cert, self.dhcp_verify,self.igmp_verify, self.traffic_verify),
1241 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1242 assert_equal(test_status, True)
1243 df.callback(0)
1244 reactor.callLater(0, sub_auth_invalid_cert, df)
1245 return df
1246
1247 @deferred(SUBSCRIBER_TIMEOUT)
1248 def test_2_cord_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1249 ### """Test 2 subscribers to auth, one of the subscriber with No Certification and join channel"""
1250 num_subscribers = 2
1251 num_channels = 1
1252 df = defer.Deferred()
1253 def sub_auth_no_cert(df):
1254 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1255 num_channels = num_channels,
1256 cbs = (self.tls_no_cert, self.dhcp_verify,
1257 self.igmp_verify, self.traffic_verify),
1258 port_list = self.generate_port_list(num_subscribers, num_channels),
1259 negative_subscriber_auth = 'half')
1260 assert_equal(test_status, True)
1261 df.callback(0)
1262 reactor.callLater(0, sub_auth_no_cert, df)
1263 return df
1264
1265 @deferred(SUBSCRIBER_TIMEOUT)
1266 def test_2_cord_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1267 ### """Test 2 subscribers to auth, one of the subscriber with Non CA authorized Certificate and join channel"""
1268 num_subscribers = 2
1269 num_channels = 1
1270 df = defer.Deferred()
1271 def sub_auth_no_cert(df):
1272 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1273 num_channels = num_channels,
1274 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify,
1275 self.igmp_verify, self.traffic_verify),
1276 port_list = self.generate_port_list(num_subscribers, num_channels),
1277 negative_subscriber_auth = 'half')
1278 assert_equal(test_status, True)
1279 df.callback(0)
1280 reactor.callLater(0, sub_auth_no_cert, df)
1281 return df
1282
1283 def test_cord_subscriber_authentication_with_dhcp_discover_and_channel_surfing(self):
1284 ### """Test subscriber auth success, DHCP re-discover with DHCP server and join channel"""
1285 num_subscribers = 1
1286 num_channels = 1
1287 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1288 num_channels = num_channels,
1289 cbs = (self.tls_verify, self.dhcp_discover_scenario,
1290 self.igmp_verify, self.traffic_verify),
1291 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1292 assert_equal(test_status, True)
1293
1294 def test_cord_subscriber_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1295 ### """Test subscriber auth success, DHCP client got re-booted and join channel"""
1296 num_subscribers = 1
1297 num_channels = 1
1298 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1299 num_channels = num_channels,
1300 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario,
1301 self.igmp_verify, self.traffic_verify),
1302 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1303 assert_equal(test_status, True)
1304
1305 def test_cord_subscriber_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1306 ### """Test subscriber auth , DHCP server re-boot during DHCP process and join channel"""
1307 num_subscribers = 1
1308 num_channels = 1
1309 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1310 num_channels = num_channels,
1311 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario,
1312 self.igmp_verify, self.traffic_verify),
1313 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1314 assert_equal(test_status, True)
1315
1316 def test_cord_subscriber_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1317 ### """Test subscriber auth , DHCP client rebind IP and join channel"""
1318 num_subscribers = 1
1319 num_channels = 1
1320 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1321 num_channels = num_channels,
1322 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario,
1323 self.igmp_verify, self.traffic_verify),
1324 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1325 assert_equal(test_status, True)
1326
1327
1328 def test_cord_subscriber_authentication_with_dhcp_starvation_and_channel_surfing(self):
1329 ### """Test subscriber auth , DHCP starvation and join channel"""
1330 num_subscribers = 1
1331 num_channels = 1
1332 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1333 num_channels = num_channels,
1334 cbs = (self.tls_verify, self.dhcp_starvation_scenario,
1335 self.igmp_verify, self.traffic_verify),
1336 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1337 assert_equal(test_status, True)
1338
1339 def test_cord_subscriber_authentication_with_multiple_dhcp_discover_for_same_subscriber_and_channel_surfing(self):
1340 ### """Test subscriber auth , sending same DHCP client discover multiple times and join channel"""
1341 num_subscribers = 1
1342 num_channels = 1
1343 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1344 num_channels = num_channels,
1345 cbs = (self.tls_verify, self.dhcp_same_client_multi_discovers_scenario,
1346 self.igmp_verify, self.traffic_verify),
1347 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1348 assert_equal(test_status, True)
1349
1350 def test_cord_subscriber_authentication_with_multiple_dhcp_request_for_same_subscriber_and_channel_surfing(self):
1351 ### """Test subscriber auth , same DHCP client multiple requerts times and join channel"""
1352 num_subscribers = 1
1353 num_channels = 1
1354 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1355 num_channels = num_channels,
1356 cbs = (self.tls_verify, self.dhcp_same_client_multi_request_scenario,
1357 self.igmp_verify, self.traffic_verify),
1358 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1359 assert_equal(test_status, True)
1360
1361 def test_cord_subscriber_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1362 ### """Test subscriber auth with DHCP client requesting ip and join channel"""
1363 num_subscribers = 1
1364 num_channels = 1
1365 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1366 num_channels = num_channels,
1367 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario,
1368 self.igmp_verify, self.traffic_verify),
1369 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1370 assert_equal(test_status, True)
1371
1372 def test_cord_subscriber_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1373 ### """Test subscriber auth with DHCP client request for non-offered ip and join channel"""
1374 num_subscribers = 1
1375 num_channels = 1
1376 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1377 num_channels = num_channels,
1378 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario,
1379 self.igmp_verify, self.traffic_verify),
1380 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1381 assert_equal(test_status, True)
1382
1383 def test_cord_subscriber_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1384 ### """Test subscriber auth with DHCP client requesting out of pool ip and join channel"""
1385 num_subscribers = 1
1386 num_channels = 1
1387 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1388 num_channels = num_channels,
1389 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario,
1390 self.igmp_verify, self.traffic_verify),
1391 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1392 assert_equal(test_status, True)
1393
1394
1395 def test_cord_subscriber_authentication_with_dhcp_specified_lease_time_functionality_and_channel_surfing(self):
1396 ### """Test subscriber auth with DHCP client specifying lease time and join channel"""
1397 num_subscribers = 1
1398 num_channels = 1
1399 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1400 num_channels = num_channels,
1401 cbs = (self.tls_verify, self.dhcp_client_specific_lease_scenario,
1402 self.igmp_verify, self.traffic_verify),
1403 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1404 assert_equal(test_status, True)
1405
1406 #@deferred(SUBSCRIBER_TIMEOUT)
1407 @nottest
1408 def test_1k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1409 ### """Test 1k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1410 num_subscribers = 1000
1411 num_channels = 1
1412 df = defer.Deferred()
1413 def sub_auth_invalid_cert(df):
1414 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1415 num_channels = num_channels,
1416 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1417 self.igmp_verify, self.traffic_verify),
1418 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1419 assert_equal(test_status, True)
1420 df.callback(0)
1421 reactor.callLater(0, sub_auth_invalid_cert, df)
1422 return df
1423
1424 @nottest
1425 @deferred(SUBSCRIBER_TIMEOUT)
1426 def test_1k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1427 ### """Test 1k subscribers to auth, half of the subscribers with No Certification and join channel"""
1428 num_subscribers = 1000
1429 num_channels = 1
1430 df = defer.Deferred()
1431 def sub_auth_no_cert(df):
1432 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1433 num_channels = num_channels,
1434 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1435 port_list = self.generate_port_list(num_subscribers, num_channels),
1436 negative_subscriber_auth = 'half')
1437 assert_equal(test_status, True)
1438 df.callback(0)
1439 reactor.callLater(0, sub_auth_no_cert, df)
1440 return df
1441
1442 #@deferred(SUBSCRIBER_TIMEOUT)
1443 @nottest
1444 def test_1k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1445 ### """Test 1k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1446 num_subscribers = 1000
1447 num_channels = 1
1448 df = defer.Deferred()
1449 def sub_auth_no_cert(df):
1450 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1451 num_channels = num_channels,
1452 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1453 port_list = self.generate_port_list(num_subscribers, num_channels),
1454 negative_subscriber_auth = 'half')
1455 assert_equal(test_status, True)
1456 df.callback(0)
1457 reactor.callLater(0, sub_auth_no_cert, df)
1458 return df
1459
1460 #@deferred(SUBSCRIBER_TIMEOUT)
1461 @nottest
1462 def test_5k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1463 ### """Test 5k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1464 num_subscribers = 5000
1465 num_channels = 1
1466 df = defer.Deferred()
1467 def sub_auth_invalid_cert(df):
1468 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1469 num_channels = num_channels,
1470 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1471 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1472 assert_equal(test_status, True)
1473 df.callback(0)
1474 reactor.callLater(0, sub_auth_invalid_cert, df)
1475 return df
1476
1477 #@deferred(SUBSCRIBER_TIMEOUT)
1478 @nottest
1479 def test_5k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1480 ### """Test 5k subscribers to auth, half of the subscribers with No Certification and join channel"""
1481 num_subscribers = 5000
1482 num_channels = 1
1483 df = defer.Deferred()
1484 def sub_auth_no_cert(df):
1485 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1486 num_channels = num_channels,
1487 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1488 port_list = self.generate_port_list(num_subscribers, num_channels),
1489 negative_subscriber_auth = 'half')
1490 assert_equal(test_status, True)
1491 df.callback(0)
1492 reactor.callLater(0, sub_auth_no_cert, df)
1493 return df
1494
1495 #@deferred(SUBSCRIBER_TIMEOUT)
1496 @nottest
1497 def test_5k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1498 ### """Test 5k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1499 num_subscribers = 5000
1500 num_channels = 1
1501 df = defer.Deferred()
1502 def sub_auth_no_cert(df):
1503 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1504 num_channels = num_channels,
1505 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1506 port_list = self.generate_port_list(num_subscribers, num_channels),
1507 negative_subscriber_auth = 'half')
1508 assert_equal(test_status, True)
1509 df.callback(0)
1510 reactor.callLater(0, sub_auth_no_cert, df)
1511 return df
1512
1513 #@deferred(SUBSCRIBER_TIMEOUT)
1514 @nottest
1515 def test_10k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1516 ### """Test 10k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1517 num_subscribers = 10000
1518 num_channels = 1
1519 df = defer.Deferred()
1520 def sub_auth_invalid_cert(df):
1521 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1522 num_channels = num_channels,
1523 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1524 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'onethird')
1525 assert_equal(test_status, True)
1526 df.callback(0)
1527 reactor.callLater(0, sub_auth_invalid_cert, df)
1528 return df
1529
1530 #@deferred(SUBSCRIBER_TIMEOUT)
1531 @nottest
1532 def test_10k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1533 ### """Test 10k subscribers to auth, half of the subscribers with No Certification and join channel"""
1534 num_subscribers = 10000
1535 num_channels = 1
1536 df = defer.Deferred()
1537 def sub_auth_no_cert(df):
1538 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1539 num_channels = num_channels,
1540 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1541 port_list = self.generate_port_list(num_subscribers, num_channels),
1542 negative_subscriber_auth = 'onethird')
1543 assert_equal(test_status, True)
1544 df.callback(0)
1545 reactor.callLater(0, sub_auth_no_cert, df)
1546 return df
1547
1548 #@deferred(SUBSCRIBER_TIMEOUT)
1549 @nottest
1550 def test_10k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1551 ### """Test 10k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1552 num_subscribers = 10000
1553 num_channels = 1
1554 df = defer.Deferred()
1555 def sub_auth_no_cert(df):
1556 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1557 num_channels = num_channels,
1558 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1559 port_list = self.generate_port_list(num_subscribers, num_channels),
1560 negative_subscriber_auth = 'onethird')
1561 assert_equal(test_status, False)
1562 assert_equal(test_status, True)
1563 df.callback(0)
1564 reactor.callLater(0, sub_auth_no_cert, df)
1565 return df
1566
1567 @nottest
1568 def test_1k_cord_subscribers_authentication_with_dhcp_discovers_and_channel_surfing(self):
1569 ### """Test 1k subscribers auth success, DHCP re-discover with DHCP server and join channel"""
1570 num_subscribers = 1000
1571 num_channels = 1
1572 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1573 num_channels = num_channels,
1574 cbs = (self.tls_verify, self.dhcp_discover_scenario, self.igmp_verify),
1575 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1576 assert_equal(test_status, True)
1577
1578 @nottest
1579 def test_1k_cord_subscribers_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1580 ### """Test 1k subscribers auth success, DHCP client got re-booted and join channel"""
1581 num_subscribers = 1000
1582 num_channels = 1
1583 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1584 num_channels = num_channels,
1585 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario, self.igmp_verify),
1586 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1587 assert_equal(test_status, True)
1588
1589 @nottest
1590 def test_1k_cord_subscribers_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1591 ### """Test 1k subscribers auth , DHCP server re-boot during DHCP process and join channel"""
1592 num_subscribers = 1000
1593 num_channels = 1
1594 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1595 num_channels = num_channels,
1596 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario, self.igmp_verify),
1597 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1598 assert_equal(test_status, True)
1599
1600 @nottest
1601 def test_1k_cord_subscribers_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1602 ### """Test 1k subscribers auth , DHCP client rebind IP and join channel"""
1603 num_subscribers = 1000
1604 num_channels = 1
1605 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1606 num_channels = num_channels,
1607 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario, self.igmp_verify),
1608 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1609 assert_equal(test_status, True)
1610
1611 @nottest
1612 def test_1k_cord_subscribers_authentication_with_dhcp_starvation_and_channel_surfing(self):
1613 ### """Test 1k subscribers auth , DHCP starvation and join channel"""
1614 num_subscribers = 1000
1615 num_channels = 1
1616 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1617 num_channels = num_channels,
1618 cbs = (self.tls_verify, self.dhcp_starvation_scenario, self.igmp_verify),
1619 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1620 assert_equal(test_status, True)
1621
1622 @nottest
1623 def test_1k_cord_subscribers_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1624 ### """Test 1k subscribers auth with DHCP client requesting ip and join channel"""
1625 num_subscribers = 1000
1626 num_channels = 1
1627 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1628 num_channels = num_channels,
1629 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario, self.igmp_verify),
1630 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1631 assert_equal(test_status, True)
1632
1633 @nottest
1634 def test_1k_cord_subscribers_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1635 ### """Test subscribers auth with DHCP client request for non-offered ip and join channel"""
1636 num_subscribers = 1000
1637 num_channels = 1
1638 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1639 num_channels = num_channels,
1640 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario, self.igmp_verify),
1641 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1642 assert_equal(test_status, True)
1643
1644 def test_4_cord_subscribers_join_recv_5channel(self):
1645 ###"""Test 4 subscribers join and receive for 5 channels surfing"""
1646 num_subscribers = 4
1647 num_channels = 5
1648 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1649 num_channels = num_channels,
1650 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1651 port_list = self.generate_port_list(num_subscribers, num_channels),
1652 negative_subscriber_auth = 'all')
1653 assert_equal(test_status, True)
1654
1655 def test_4_cord_subscribers_join_jump_5channel(self):
1656 ###"""Test 4 subscribers jump and receive for 5 channels surfing"""
1657 num_subscribers = 4
1658 num_channels = 5
1659 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1660 num_channels = num_channels,
1661 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1662 port_list = self.generate_port_list(num_subscribers, num_channels),
1663 negative_subscriber_auth = 'all')
1664 assert_equal(test_status, True)
1665
1666 def test_4_cord_subscribers_join_next_5channel(self):
1667 ###"""Test 4 subscribers join next for 5 channels"""
1668 num_subscribers = 4
1669 num_channels = 5
1670 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1671 num_channels = num_channels,
1672 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1673 port_list = self.generate_port_list(num_subscribers, num_channels),
1674 negative_subscriber_auth = 'all')
1675 assert_equal(test_status, True)
1676
1677 def test_10_cord_subscribers_join_recv_5channel(self):
1678 ###"""Test 10 subscribers join and receive for 5 channels surfing"""
1679 num_subscribers = 10
1680 num_channels = 5
1681 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1682 num_channels = num_channels,
1683 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1684 port_list = self.generate_port_list(num_subscribers, num_channels),
1685 negative_subscriber_auth = 'all')
1686 assert_equal(test_status, True)
1687
1688 def test_10_cord_subscribers_join_jump_5channel(self):
1689 ###"""Test 10 subscribers jump and receive for 5 channels surfing"""
1690 num_subscribers = 10
1691 num_channels = 5
1692 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1693 num_channels = num_channels,
1694 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1695 port_list = self.generate_port_list(num_subscribers, num_channels),
1696 negative_subscriber_auth = 'all')
1697 assert_equal(test_status, True)
1698
1699
1700 def test_10_cord_subscribers_join_next_5channel(self):
1701 ###"""Test 10 subscribers join next for 5 channels"""
1702 num_subscribers = 10
1703 num_channels = 5
1704 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1705 num_channels = num_channels,
1706 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1707 port_list = self.generate_port_list(num_subscribers, num_channels),
1708 negative_subscriber_auth = 'all')
1709 assert_equal(test_status, True)
1710
1711
1712
1713 def test_cord_subscriber_join_recv_100channels(self):
1714 num_subscribers = 1
1715 num_channels = 100
1716 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1717 num_channels = num_channels,
1718 cbs = (self.tls_verify, self.dhcp_verify,
1719 self.igmp_verify, self.traffic_verify),
1720 port_list = self.generate_port_list(num_subscribers, num_channels),
1721 negative_subscriber_auth = 'all')
1722 assert_equal(test_status, True)
1723
1724 def test_cord_subscriber_join_recv_400channels(self):
1725 num_subscribers = 1
1726 num_channels = 400
1727 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1728 num_channels = num_channels,
1729 cbs = (self.tls_verify, self.dhcp_verify,
1730 self.igmp_verify, self.traffic_verify),
1731 port_list = self.generate_port_list(num_subscribers, num_channels),
1732 negative_subscriber_auth = 'all')
1733 assert_equal(test_status, True)
1734
1735 def test_cord_subscriber_join_recv_800channels(self):
1736 num_subscribers = 1
1737 num_channels = 800
1738 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1739 num_channels = num_channels,
1740 cbs = (self.tls_verify, self.dhcp_verify,
1741 self.igmp_verify, self.traffic_verify),
1742 port_list = self.generate_port_list(num_subscribers, num_channels),
1743 negative_subscriber_auth = 'all')
1744 assert_equal(test_status, True)
1745
1746 def test_cord_subscriber_join_recv_1200channels(self):
1747 num_subscribers = 1
1748 num_channels = 1200
1749 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1750 num_channels = num_channels,
1751 cbs = (self.tls_verify, self.dhcp_verify,
1752 self.igmp_verify, self.traffic_verify),
1753 port_list = self.generate_port_list(num_subscribers, num_channels),
1754 negative_subscriber_auth = 'all')
1755 assert_equal(test_status, True)
1756
1757 def test_cord_subscriber_join_recv_1500channels(self):
1758 num_subscribers = 1
1759 num_channels = 1500
1760 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1761 num_channels = num_channels,
1762 cbs = (self.tls_verify, self.dhcp_verify,
1763 self.igmp_verify, self.traffic_verify),
1764 port_list = self.generate_port_list(num_subscribers, num_channels),
1765 negative_subscriber_auth = 'all')
1766 assert_equal(test_status, True)
1767
1768 def test_cord_subscriber_join_jump_100channels(self):
1769 num_subscribers = 1
1770 num_channels = 100
1771 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1772 num_channels = num_channels,
1773 cbs = (self.tls_verify, self.dhcp_jump_verify,
1774 self.igmp_jump_verify, self.traffic_verify),
1775 port_list = self.generate_port_list(num_subscribers, num_channels),
1776 negative_subscriber_auth = 'all')
1777 assert_equal(test_status, True)
1778 def test_cord_subscriber_join_jump_400channels(self):
1779 num_subscribers = 1
1780 num_channels = 400
1781 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1782 num_channels = num_channels,
1783 cbs = (self.tls_verify, self.dhcp_jump_verify,
1784 self.igmp_jump_verify, self.traffic_verify),
1785 port_list = self.generate_port_list(num_subscribers, num_channels),
1786 negative_subscriber_auth = 'all')
1787 assert_equal(test_status, True)
1788
1789 def test_cord_subscriber_join_jump_800channels(self):
1790 num_subscribers = 1
1791 num_channels = 800
1792 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1793 num_channels = num_channels,
1794 cbs = (self.tls_verify, self.dhcp_jump_verify,
1795 self.igmp_jump_verify, self.traffic_verify),
1796 port_list = self.generate_port_list(num_subscribers, num_channels),
1797 negative_subscriber_auth = 'all')
1798 assert_equal(test_status, True)
1799 def test_cord_subscriber_join_jump_1200channel(sself):
1800 num_subscribers = 1
1801 num_channels = 1200
1802 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1803 num_channels = num_channels,
1804 cbs = (self.tls_verify, self.dhcp_jump_verify,
1805 self.igmp_jump_verify, self.traffic_verify),
1806 port_list = self.generate_port_list(num_subscribers, num_channels),
1807 negative_subscriber_auth = 'all')
1808 assert_equal(test_status, True)
1809 def test_cord_subscriber_join_jump_1500channels(self):
1810 num_subscribers = 1
1811 num_channels = 1500
1812 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1813 num_channels = num_channels,
1814 cbs = (self.tls_verify, self.dhcp_jump_verify,
1815 self.igmp_jump_verify, self.traffic_verify),
1816 port_list = self.generate_port_list(num_subscribers, num_channels),
1817 negative_subscriber_auth = 'all')
1818 assert_equal(test_status, True)
1819
1820 def test_cord_subscriber_join_next_100channels(self):
1821 num_subscribers = 1
1822 num_channels = 100
1823 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1824 num_channels = num_channels,
1825 cbs = (self.tls_verify, self.dhcp_next_verify,
1826 self.igmp_next_verify, self.traffic_verify),
1827 port_list = self.generate_port_list(num_subscribers, num_channels),
1828 negative_subscriber_auth = 'all')
1829 assert_equal(test_status, True)
1830
1831 def test_cord_subscriber_join_next_400channels(self):
1832 num_subscribers = 1
1833 num_channels = 400
1834 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1835 num_channels = num_channels,
1836 cbs = (self.tls_verify, self.dhcp_next_verify,
1837 self.igmp_next_verify, self.traffic_verify),
1838 port_list = self.generate_port_list(num_subscribers, num_channels),
1839 negative_subscriber_auth = 'all')
1840 assert_equal(test_status, True)
1841
1842 def test_cord_subscriber_join_next_800channels(self):
1843 num_subscribers = 1
1844 num_channels = 800
1845 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1846 num_channels = num_channels,
1847 cbs = (self.tls_verify, self.dhcp_next_verify,
1848 self.igmp_next_verify, self.traffic_verify),
1849 port_list = self.generate_port_list(num_subscribers, num_channels),
1850 negative_subscriber_auth = 'all')
1851 assert_equal(test_status, True)
1852
1853
1854 def test_cord_subscriber_join_next_1200channels(self):
1855 num_subscribers = 1
1856 num_channels = 1200
1857 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1858 num_channels = num_channels,
1859 cbs = (self.tls_verify, self.dhcp_next_verify,
1860 self.igmp_next_verify, self.traffic_verify),
1861 port_list = self.generate_port_list(num_subscribers, num_channels),
1862 negative_subscriber_auth = 'all')
1863 assert_equal(test_status, True)
1864
1865 def test_cord_subscriber_join_next_1500channels(self):
1866 num_subscribers = 1
1867 num_channels = 1500
1868 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1869 num_channels = num_channels,
1870 cbs = (self.tls_verify, self.dhcp_next_verify,
1871 self.igmp_next_verify, self.traffic_verify),
1872 port_list = self.generate_port_list(num_subscribers, num_channels),
1873 negative_subscriber_auth = 'all')
1874 assert_equal(test_status, True)
1875
1876 @nottest
1877 def test_1k_cord_subscribers_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1878 ### """Test 1k subscribers auth with DHCP client requesting out of pool ip and join channel"""
1879 num_subscribers = 1000
1880 num_channels = 1
1881 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1882 num_channels = num_channels,
1883 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario, self.igmp_verify),
1884 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1885 assert_equal(test_status, True)
1886
1887 @nottest
1888 def test_1k_cord_subscribers_join_recv_100channel(self):
1889 ###"""Test 1k subscribers join and receive for 100 channels surfing"""
1890 num_subscribers = 1000
1891 num_channels = 100
1892 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1893 num_channels = num_channels,
1894 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1895 port_list = self.generate_port_list(num_subscribers, num_channels),
1896 negative_subscriber_auth = 'all')
1897 assert_equal(test_status, True)
1898
1899 @nottest
1900 def test_1k_cord_subscribers_join_jump_100channel(self):
1901 ###"""Test 1k subscribers jump and receive for 100 channels surfing"""
1902 num_subscribers = 1000
1903 num_channels = 100
1904 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1905 num_channels = num_channels,
1906 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1907 port_list = self.generate_port_list(num_subscribers, num_channels),
1908 negative_subscriber_auth = 'all')
1909 assert_equal(test_status, True)
1910
1911 @nottest
1912 def test_1k_cord_subscribers_join_next_100channel(self):
1913 ###"""Test 1k subscribers join next for 100 channels"""
1914 num_subscribers = 1000
1915 num_channels = 100
1916 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1917 num_channels = num_channels,
1918 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1919 port_list = self.generate_port_list(num_subscribers, num_channels),
1920 negative_subscriber_auth = 'all')
1921 assert_equal(test_status, True)
1922
1923 @nottest
1924 def test_1k_cord_subscribers_join_recv_400channel(self):
1925 ###"""Test 1k subscribers join and receive for 400 channels surfing"""
1926 num_subscribers = 1000
1927 num_channels = 400
1928 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1929 num_channels = num_channels,
1930 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1931 port_list = self.generate_port_list(num_subscribers, num_channels),
1932 negative_subscriber_auth = 'all')
1933 assert_equal(test_status, True)
1934
1935 @nottest
1936 def test_1k_cord_subscribers_join_jump_400channel(self):
1937 ###"""Test 1k subscribers jump and receive for 400 channels surfing"""
1938 num_subscribers = 1000
1939 num_channels = 400
1940 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1941 num_channels = num_channels,
1942 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1943 port_list = self.generate_port_list(num_subscribers, num_channels),
1944 negative_subscriber_auth = 'all')
1945 assert_equal(test_status, True)
1946
1947 @nottest
1948 def test_1k_cord_subscribers_join_next_400channel(self):
1949 ###"""Test 1k subscribers join next for 400 channels"""
1950 num_subscribers = 1000
1951 num_channels = 400
1952 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1953 num_channels = num_channels,
1954 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1955 port_list = self.generate_port_list(num_subscribers, num_channels),
1956 negative_subscriber_auth = 'all')
1957 assert_equal(test_status, True)
1958
1959 @nottest
1960 def test_1k_cord_subscribers_join_recv_800channel(self):
1961 ###"""Test 1k subscribers join and receive for 800 channels surfing"""
1962 num_subscribers = 1000
1963 num_channels = 800
1964 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1965 num_channels = num_channels,
1966 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1967 port_list = self.generate_port_list(num_subscribers, num_channels),
1968 negative_subscriber_auth = 'all')
1969 assert_equal(test_status, True)
1970
1971 @nottest
1972 def test_1k_cord_subscribers_join_jump_800channel(self):
1973 ###"""Test 1k subscribers jump and receive for 800 channels surfing"""
1974 num_subscribers = 1000
1975 num_channels = 800
1976 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1977 num_channels = num_channels,
1978 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1979 port_list = self.generate_port_list(num_subscribers, num_channels),
1980 negative_subscriber_auth = 'all')
1981 assert_equal(test_status, True)
1982
1983 @nottest
1984 def test_1k_cord_subscribers_join_next_800channel(self):
1985 ###"""Test 1k subscribers join next for 800 channels"""
1986 num_subscribers = 1000
1987 num_channels = 800
1988 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1989 num_channels = num_channels,
1990 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1991 port_list = self.generate_port_list(num_subscribers, num_channels),
1992 negative_subscriber_auth = 'all')
1993 assert_equal(test_status, True)
1994
1995 @nottest
1996 def test_1k_cord_subscribers_join_recv_1200channel(self):
1997 ###"""Test 1k subscribers join and receive for 1200 channels surfing"""
1998 num_subscribers = 1000
1999 num_channels = 1200
2000 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2001 num_channels = num_channels,
2002 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2003 port_list = self.generate_port_list(num_subscribers, num_channels),
2004 negative_subscriber_auth = 'all')
2005 assert_equal(test_status, True)
2006
2007 @nottest
2008 def test_1k_cord_subscribers_join_jump_1200channel(self):
2009 ###"""Test 1k subscribers jump and receive for 1200 channels surfing"""
2010 num_subscribers = 1000
2011 num_channels = 1200
2012 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2013 num_channels = num_channels,
2014 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2015 port_list = self.generate_port_list(num_subscribers, num_channels),
2016 negative_subscriber_auth = 'all')
2017 assert_equal(test_status, True)
2018
2019 @nottest
2020 def test_1k_cord_subscribers_join_next_1200channel(self):
2021 ###"""Test 1k subscribers join next for 1200 channels"""
2022 num_subscribers = 1000
2023 num_channels = 1200
2024 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2025 num_channels = num_channels,
2026 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2027 port_list = self.generate_port_list(num_subscribers, num_channels),
2028 negative_subscriber_auth = 'all')
2029 assert_equal(test_status, True)
2030
2031 @nottest
2032 def test_1k_cord_subscribers_join_recv_1500channel(self):
2033 ###"""Test 1k subscribers join and receive for 1500 channels surfing"""
2034 num_subscribers = 1000
2035 num_channels = 1500
2036 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2037 num_channels = num_channels,
2038 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2039 port_list = self.generate_port_list(num_subscribers, num_channels),
2040 negative_subscriber_auth = 'all')
2041 assert_equal(test_status, True)
2042
2043 @nottest
2044 def test_1k_cord_subscribers_join_jump_1500channel(self):
2045 ###"""Test 1k subscribers jump and receive for 1500 channels surfing"""
2046 num_subscribers = 1000
2047 num_channels = 1500
2048 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2049 num_channels = num_channels,
2050 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2051 port_list = self.generate_port_list(num_subscribers, num_channels),
2052 negative_subscriber_auth = 'all')
2053 assert_equal(test_status, True)
2054
2055 @nottest
2056 def test_1k_cord_subscribers_join_next_1500channel(self):
2057 ###"""Test 1k subscribers join next for 1500 channels"""
2058 num_subscribers = 1000
2059 num_channels = 1500
2060 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2061 num_channels = num_channels,
2062 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2063 port_list = self.generate_port_list(num_subscribers, num_channels),
2064 negative_subscriber_auth = 'all')
2065 assert_equal(test_status, True)
2066
2067 @nottest
2068 def test_5k_cord_subscribers_join_recv_100channel(self):
2069 ###"""Test 5k subscribers join and receive for 100 channels surfing"""
2070 num_subscribers = 5000
2071 num_channels = 100
2072 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2073 num_channels = num_channels,
2074 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2075 port_list = self.generate_port_list(num_subscribers, num_channels),
2076 negative_subscriber_auth = 'all')
2077 assert_equal(test_status, True)
2078
2079 @nottest
2080 def test_5k_cord_subscribers_join_jump_100channel(self):
2081 ###"""Test 5k subscribers jump and receive for 100 channels surfing"""
2082 num_subscribers = 5000
2083 num_channels = 100
2084 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2085 num_channels = num_channels,
2086 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2087 port_list = self.generate_port_list(num_subscribers, num_channels),
2088 negative_subscriber_auth = 'all')
2089 assert_equal(test_status, True)
2090
2091 @nottest
2092 def test_5k_cord_subscribers_join_next_100channel(self):
2093 ###"""Test 5k subscribers join next for 100 channels"""
2094 num_subscribers = 5000
2095 num_channels = 100
2096 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2097 num_channels = num_channels,
2098 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2099 port_list = self.generate_port_list(num_subscribers, num_channels),
2100 negative_subscriber_auth = 'all')
2101 assert_equal(test_status, True)
2102
2103 @nottest
2104 def test_5k_cord_subscribers_join_recv_400channel(self):
2105 ###"""Test 5k subscribers join and receive for 400 channels surfing"""
2106 num_subscribers = 5000
2107 num_channels = 400
2108 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2109 num_channels = num_channels,
2110 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2111 port_list = self.generate_port_list(num_subscribers, num_channels),
2112 negative_subscriber_auth = 'all')
2113 assert_equal(test_status, True)
2114
2115 @nottest
2116 def test_5k_cord_subscribers_join_jump_400channel(self):
2117 ###"""Test 5k subscribers jump and receive for 400 channels surfing"""
2118 num_subscribers = 5000
2119 num_channels = 400
2120 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2121 num_channels = num_channels,
2122 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2123 port_list = self.generate_port_list(num_subscribers, num_channels),
2124 negative_subscriber_auth = 'all')
2125 assert_equal(test_status, True)
2126
2127 @nottest
2128 def test_5k_cord_subscribers_join_next_400channel(self):
2129 ###"""Test 5k subscribers join next for 400 channels"""
2130 num_subscribers = 5000
2131 num_channels = 400
2132 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2133 num_channels = num_channels,
2134 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2135 port_list = self.generate_port_list(num_subscribers, num_channels),
2136 negative_subscriber_auth = 'all')
2137 assert_equal(test_status, True)
2138
2139 @nottest
2140 def test_5k_cord_subscribers_join_recv_800channel(self):
2141 ###"""Test 5k subscribers join and receive for 800 channels surfing"""
2142 num_subscribers = 5000
2143 num_channels = 800
2144 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2145 num_channels = num_channels,
2146 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2147 port_list = self.generate_port_list(num_subscribers, num_channels),
2148 negative_subscriber_auth = 'all')
2149 assert_equal(test_status, True)
2150
2151 @nottest
2152 def test_5k_cord_subscribers_join_jump_800channel(self):
2153 ###"""Test 5k subscribers jump and receive for 800 channels surfing"""
2154 num_subscribers = 5000
2155 num_channels = 800
2156 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2157 num_channels = num_channels,
2158 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2159 port_list = self.generate_port_list(num_subscribers, num_channels),
2160 negative_subscriber_auth = 'all')
2161 assert_equal(test_status, True)
2162
2163 @nottest
2164 def test_5k_cord_subscribers_join_next_800channel(self):
2165 ###"""Test 5k subscribers join next for 800 channels"""
2166 num_subscribers = 5000
2167 num_channels = 800
2168 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2169 num_channels = num_channels,
2170 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2171 port_list = self.generate_port_list(num_subscribers, num_channels),
2172 negative_subscriber_auth = 'all')
2173 assert_equal(test_status, True)
2174
2175 @nottest
2176 def test_5k_cord_subscribers_join_recv_1200channel(self):
2177 ###"""Test 5k subscribers join and receive for 1200 channels surfing"""
2178 num_subscribers = 5000
2179 num_channels = 1200
2180 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2181 num_channels = num_channels,
2182 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2183 port_list = self.generate_port_list(num_subscribers, num_channels),
2184 negative_subscriber_auth = 'all')
2185 assert_equal(test_status, True)
2186
2187 @nottest
2188 def test_5k_cord_subscribers_join_jump_1200channel(self):
2189 ###"""Test 5k subscribers jump and receive for 1200 channels surfing"""
2190 num_subscribers = 5000
2191 num_channels = 1200
2192 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2193 num_channels = num_channels,
2194 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2195 port_list = self.generate_port_list(num_subscribers, num_channels),
2196 negative_subscriber_auth = 'all')
2197 assert_equal(test_status, True)
2198
2199 @nottest
2200 def test_5k_cord_subscribers_join_next_1200channel(self):
2201 ###"""Test 5k subscribers join next for 1200 channels"""
2202 num_subscribers = 5000
2203 num_channels = 1200
2204 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2205 num_channels = num_channels,
2206 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2207 port_list = self.generate_port_list(num_subscribers, num_channels),
2208 negative_subscriber_auth = 'all')
2209 assert_equal(test_status, True)
2210
2211 @nottest
2212 def test_5k_cord_subscribers_join_recv_1500channel(self):
2213 ###"""Test 5k subscribers join and receive for 1500 channels surfing"""
2214 num_subscribers = 5000
2215 num_channels = 1500
2216 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2217 num_channels = num_channels,
2218 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2219 port_list = self.generate_port_list(num_subscribers, num_channels),
2220 negative_subscriber_auth = 'all')
2221 assert_equal(test_status, True)
2222
2223 @nottest
2224 def test_5k_cord_subscribers_join_jump_1500channel(self):
2225 ###"""Test 5k subscribers jump and receive for 1500 channels surfing"""
2226 num_subscribers = 5000
2227 num_channels = 1500
2228 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2229 num_channels = num_channels,
2230 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2231 port_list = self.generate_port_list(num_subscribers, num_channels),
2232 negative_subscriber_auth = 'all')
2233 assert_equal(test_status, True)
2234
2235 @nottest
2236 def test_5k_cord_subscribers_join_next_1500channel(self):
2237 ###"""Test 5k subscribers join next for 1500 channels"""
2238 num_subscribers = 5000
2239 num_channels = 1500
2240 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2241 num_channels = num_channels,
2242 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2243 port_list = self.generate_port_list(num_subscribers, num_channels),
2244 negative_subscriber_auth = 'all')
2245 assert_equal(test_status, True)
2246
2247 @nottest
2248 def test_10k_cord_subscribers_join_recv_100channel(self):
2249 ###"""Test 10k subscribers join and receive for 100 channels surfing"""
2250 num_subscribers = 10000
2251 num_channels = 100
2252 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2253 num_channels = num_channels,
2254 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2255 port_list = self.generate_port_list(num_subscribers, num_channels),
2256 negative_subscriber_auth = 'all')
2257 assert_equal(test_status, True)
2258
2259 @nottest
2260 def test_10k_cord_subscribers_join_jump_100channel(self):
2261 ###"""Test 10k subscribers jump and receive for 100 channels surfing"""
2262 num_subscribers = 10000
2263 num_channels = 100
2264 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2265 num_channels = num_channels,
2266 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2267 port_list = self.generate_port_list(num_subscribers, num_channels),
2268 negative_subscriber_auth = 'all')
2269 assert_equal(test_status, True)
2270
2271 @nottest
2272 def test_10k_cord_subscribers_join_next_100channel(self):
2273 ###"""Test 10k subscribers join next for 100 channels"""
2274 num_subscribers = 10000
2275 num_channels = 100
2276 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2277 num_channels = num_channels,
2278 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2279 port_list = self.generate_port_list(num_subscribers, num_channels),
2280 negative_subscriber_auth = 'all')
2281 assert_equal(test_status, True)
2282
2283 @nottest
2284 def test_100k_cord_subscribers_join_recv_100channel(self):
2285 ###"""Test 100k subscribers join and receive for 100 channels surfing"""
2286 num_subscribers = 100000
2287 num_channels = 100
2288 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2289 num_channels = num_channels,
2290 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2291 port_list = self.generate_port_list(num_subscribers, num_channels),
2292 negative_subscriber_auth = 'all')
2293 assert_equal(test_status, True)
2294
2295 @nottest
2296 def test_100k_cord_subscribers_join_jump_100channel(self):
2297 ###"""Test 100k subscribers jump and receive for 100 channels surfing"""
2298 num_subscribers = 100000
2299 num_channels = 100
2300 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2301 num_channels = num_channels,
2302 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2303 port_list = self.generate_port_list(num_subscribers, num_channels),
2304 negative_subscriber_auth = 'all')
2305 assert_equal(test_status, True)
2306
2307 @nottest
2308 def test_100k_cord_subscribers_join_next_100channel(self):
2309 ###"""Test 100k subscribers join next for 100 channels"""
2310 num_subscribers = 100000
2311 num_channels = 100
2312 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2313 num_channels = num_channels,
2314 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2315 port_list = self.generate_port_list(num_subscribers, num_channels),
2316 negative_subscriber_auth = 'all')
2317 assert_equal(test_status, True)
2318
2319 @nottest
2320 def test_10k_cord_subscribers_join_recv_400channel(self):
2321 ###"""Test 10k subscribers join and receive for 400 channels surfing"""
2322 num_subscribers = 10000
2323 num_channels = 400
2324 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2325 num_channels = num_channels,
2326 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2327 port_list = self.generate_port_list(num_subscribers, num_channels),
2328 negative_subscriber_auth = 'all')
2329 assert_equal(test_status, True)
2330
2331 @nottest
2332 def test_10k_cord_subscribers_join_jump_400channel(self):
2333 ###"""Test 10k subscribers jump and receive for 400 channels surfing"""
2334 num_subscribers = 10000
2335 num_channels = 400
2336 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2337 num_channels = num_channels,
2338 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2339 port_list = self.generate_port_list(num_subscribers, num_channels),
2340 negative_subscriber_auth = 'all')
2341 assert_equal(test_status, True)
2342
2343 @nottest
2344 def test_10k_cord_subscribers_join_next_400channel(self):
2345 ###"""Test 10k subscribers join next for 400 channels"""
2346 num_subscribers = 10000
2347 num_channels = 400
2348 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2349 num_channels = num_channels,
2350 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2351 port_list = self.generate_port_list(num_subscribers, num_channels),
2352 negative_subscriber_auth = 'all')
2353 assert_equal(test_status, True)
2354
2355 @nottest
2356 def test_10k_cord_subscribers_join_recv_800channel(self):
2357 ###"""Test 10k subscribers join and receive for 800 channels surfing"""
2358 num_subscribers = 10000
2359 num_channels = 800
2360 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2361 num_channels = num_channels,
2362 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2363 port_list = self.generate_port_list(num_subscribers, num_channels),
2364 negative_subscriber_auth = 'all')
2365 assert_equal(test_status, True)
2366
2367 @nottest
2368 def test_10k_cord_subscribers_join_jump_800channel(self):
2369 ###"""Test 10k subscribers jump and receive for 800 channels surfing"""
2370 num_subscribers = 10000
2371 num_channels = 800
2372 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2373 num_channels = num_channels,
2374 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2375 port_list = self.generate_port_list(num_subscribers, num_channels),
2376 negative_subscriber_auth = 'all')
2377 assert_equal(test_status, True)
2378
2379 @nottest
2380 def test_10k_cord_subscribers_join_next_800channel(self):
2381 ###"""Test 10k subscribers join next for 800 channels"""
2382 num_subscribers = 10000
2383 num_channels = 800
2384 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2385 num_channels = num_channels,
2386 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2387 port_list = self.generate_port_list(num_subscribers, num_channels),
2388 negative_subscriber_auth = 'all')
2389 assert_equal(test_status, True)
2390
2391 @nottest
2392 def test_10k_cord_subscribers_join_recv_1200channel(self):
2393 ###"""Test 10k subscribers join and receive for 1200 channels surfing"""
2394 num_subscribers = 10000
2395 num_channels = 1200
2396 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2397 num_channels = num_channels,
2398 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2399 port_list = self.generate_port_list(num_subscribers, num_channels),
2400 negative_subscriber_auth = 'all')
2401 assert_equal(test_status, True)
2402
2403 @nottest
2404 def test_10k_cord_subscribers_join_jump_1200channel(self):
2405 ###"""Test 10k subscribers jump and receive for 1200 channels surfing"""
2406 num_subscribers = 10000
2407 num_channels = 1200
2408 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2409 num_channels = num_channels,
2410 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2411 port_list = self.generate_port_list(num_subscribers, num_channels),
2412 negative_subscriber_auth = 'all')
2413 assert_equal(test_status, True)
2414
2415 @nottest
2416 def test_10k_cord_subscribers_join_next_1200channel(self):
2417 ###"""Test 10k subscribers join next for 1200 channels"""
2418 num_subscribers = 10000
2419 num_channels = 1200
2420 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2421 num_channels = num_channels,
2422 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2423 port_list = self.generate_port_list(num_subscribers, num_channels),
2424 negative_subscriber_auth = 'all')
2425 assert_equal(test_status, True)
2426
2427 @nottest
2428 def test_10k_cord_subscribers_join_recv_1500channel(self):
2429 ###"""Test 10k subscribers join and receive for 1500 channels surfing"""
2430 num_subscribers = 10000
2431 num_channels = 1500
2432 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2433 num_channels = num_channels,
2434 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2435 port_list = self.generate_port_list(num_subscribers, num_channels),
2436 negative_subscriber_auth = 'all')
2437 assert_equal(test_status, True)
2438
2439 @nottest
2440 def test_10k_cord_subscribers_join_jump_1500channel(self):
2441 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2442 num_subscribers = 10000
2443 num_channels = 1500
2444 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2445 num_channels = num_channels,
2446 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2447 port_list = self.generate_port_list(num_subscribers, num_channels),
2448 negative_subscriber_auth = 'all')
2449 assert_equal(test_status, True)
2450
2451 @nottest
2452 def test_10k_cord_subscribers_join_next_1500channel(self):
2453 ###"""Test 10k subscribers join next for 1500 channels"""
2454 num_subscribers = 10000
2455 num_channels = 1500
2456 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2457 num_channels = num_channels,
2458 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2459 port_list = self.generate_port_list(num_subscribers, num_channels),
2460 negative_subscriber_auth = 'all')
2461 assert_equal(test_status, True)
2462
2463 @nottest
2464 def test_100k_cord_subscribers_join_recv_1500channel(self):
2465 ###"""Test 100k subscribers join and receive for 1500 channels surfing"""
2466 num_subscribers = 100000
2467 num_channels = 1500
2468 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2469 num_channels = num_channels,
2470 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2471 port_list = self.generate_port_list(num_subscribers, num_channels),
2472 negative_subscriber_auth = 'all')
2473 assert_equal(test_status, True)
2474
2475 @nottest
2476 def test_100k_cord_subscribers_join_jump_1500channel(self):
2477 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2478 num_subscribers = 100000
2479 num_channels = 1500
2480 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2481 num_channels = num_channels,
2482 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2483 port_list = self.generate_port_list(num_subscribers, num_channels),
2484 negative_subscriber_auth = 'all')
2485 assert_equal(test_status, True)
2486
2487 @nottest
2488 def test_100k_cord_subscribers_join_next_1500channel(self):
2489 ###"""Test 10k subscribers join next for 1500 channels"""
2490 num_subscribers = 100000
2491 num_channels = 1500
2492 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2493 num_channels = num_channels,
2494 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2495 port_list = self.generate_port_list(num_subscribers, num_channels),
2496 negative_subscriber_auth = 'all')
2497 assert_equal(test_status, True)