blob: 180726a94a5f5f692e05bdb67d7dd0e25be2fea0 [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 Karthick401a1ed2017-05-18 11:08:27 -070020from scapy.all import IP
A R Karthickb7e80902016-05-17 09:38:31 -070021import time, monotonic
22import os, sys
23import tempfile
24import random
25import threading
26import json
A R Karthick65c4d722016-07-18 14:20:17 -070027import requests
A R Karthickb7e80902016-05-17 09:38:31 -070028from Stats import Stats
29from OnosCtrl import OnosCtrl
30from DHCP import DHCPTest
31from EapTLS import TLSAuthTest
32from Channels import Channels, IgmpChannel
33from subscriberDb import SubscriberDB
34from threadPool import ThreadPool
A.R Karthick95d044e2016-06-10 18:44:36 -070035from portmaps import g_subscriber_port_map
A R Karthickb7e80902016-05-17 09:38:31 -070036from OltConfig import *
A R Karthicka013a272016-08-16 16:40:19 -070037from CordTestServer import cord_test_onos_restart, cord_test_shell
A R Karthick76a497a2017-04-12 10:59:39 -070038from CordTestUtils import log_test
A R Karthick9313b762016-11-07 13:14:35 -080039from CordLogger import CordLogger
A R Karthickb7e80902016-05-17 09:38:31 -070040
A R Karthick76a497a2017-04-12 10:59:39 -070041log_test.setLevel('INFO')
A R Karthickb7e80902016-05-17 09:38:31 -070042
43class Subscriber(Channels):
44 PORT_TX_DEFAULT = 2
45 PORT_RX_DEFAULT = 1
46 INTF_TX_DEFAULT = 'veth2'
47 INTF_RX_DEFAULT = 'veth0'
48 STATS_RX = 0
49 STATS_TX = 1
50 STATS_JOIN = 2
51 STATS_LEAVE = 3
52 SUBSCRIBER_SERVICES = 'DHCP IGMP TLS'
53 def __init__(self, name = 'sub', service = SUBSCRIBER_SERVICES, port_map = None,
54 num = 1, channel_start = 0,
55 tx_port = PORT_TX_DEFAULT, rx_port = PORT_RX_DEFAULT,
56 iface = INTF_RX_DEFAULT, iface_mcast = INTF_TX_DEFAULT,
57 mcast_cb = None, loginType = 'wireless'):
58 self.tx_port = tx_port
59 self.rx_port = rx_port
60 self.port_map = port_map or g_subscriber_port_map
61 try:
62 self.tx_intf = self.port_map[tx_port]
63 self.rx_intf = self.port_map[rx_port]
64 except:
65 self.tx_intf = self.port_map[self.PORT_TX_DEFAULT]
66 self.rx_intf = self.port_map[self.PORT_RX_DEFAULT]
67
A R Karthick76a497a2017-04-12 10:59:39 -070068 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 -070069 Channels.__init__(self, num, channel_start = channel_start,
A R Karthickb7e80902016-05-17 09:38:31 -070070 iface = self.rx_intf, iface_mcast = self.tx_intf, mcast_cb = mcast_cb)
71 self.name = name
72 self.service = service
73 self.service_map = {}
74 services = self.service.strip().split(' ')
75 for s in services:
76 self.service_map[s] = True
77 self.loginType = loginType
78 ##start streaming channels
79 self.join_map = {}
80 ##accumulated join recv stats
81 self.join_rx_stats = Stats()
A R Karthick338268f2016-06-21 17:12:13 -070082 self.recv_timeout = False
A R Karthickb7e80902016-05-17 09:38:31 -070083
84 def has_service(self, service):
85 if self.service_map.has_key(service):
86 return self.service_map[service]
87 if self.service_map.has_key(service.upper()):
88 return self.service_map[service.upper()]
89 return False
90
91 def channel_join_update(self, chan, join_time):
92 self.join_map[chan] = ( Stats(), Stats(), Stats(), Stats() )
93 self.channel_update(chan, self.STATS_JOIN, 1, t = join_time)
94
95 def channel_join(self, chan = 0, delay = 2):
96 '''Join a channel and create a send/recv stats map'''
97 if self.join_map.has_key(chan):
98 del self.join_map[chan]
99 self.delay = delay
100 chan, join_time = self.join(chan)
101 self.channel_join_update(chan, join_time)
102 return chan
103
104 def channel_join_next(self, delay = 2):
105 '''Joins the next channel leaving the last channel'''
106 if self.last_chan:
107 if self.join_map.has_key(self.last_chan):
108 del self.join_map[self.last_chan]
109 self.delay = delay
110 chan, join_time = self.join_next()
111 self.channel_join_update(chan, join_time)
112 return chan
113
114 def channel_jump(self, delay = 2):
115 '''Jumps randomly to the next channel leaving the last channel'''
116 if self.last_chan is not None:
117 if self.join_map.has_key(self.last_chan):
118 del self.join_map[self.last_chan]
119 self.delay = delay
120 chan, join_time = self.jump()
121 self.channel_join_update(chan, join_time)
122 return chan
123
124 def channel_leave(self, chan = 0):
125 if self.join_map.has_key(chan):
126 del self.join_map[chan]
127 self.leave(chan)
128
129 def channel_update(self, chan, stats_type, packets, t=0):
130 if type(chan) == type(0):
131 chan_list = (chan,)
132 else:
133 chan_list = chan
A.R Karthick95d044e2016-06-10 18:44:36 -0700134 for c in chan_list:
A R Karthickb7e80902016-05-17 09:38:31 -0700135 if self.join_map.has_key(c):
136 self.join_map[c][stats_type].update(packets = packets, t = t)
137
A R Karthick338268f2016-06-21 17:12:13 -0700138 def channel_receive(self, chan, cb = None, count = 1, timeout = 5):
A R Karthick76a497a2017-04-12 10:59:39 -0700139 log_test.info('Subscriber %s on port %s receiving from group %s, channel %d' %
A R Karthick338268f2016-06-21 17:12:13 -0700140 (self.name, self.rx_intf, self.gaddr(chan), chan))
141 r = self.recv(chan, cb = cb, count = count, timeout = timeout)
A R Karthicka013a272016-08-16 16:40:19 -0700142 if len(r) == 0:
A R Karthick76a497a2017-04-12 10:59:39 -0700143 log_test.info('Subscriber %s on port %s timed out' %(self.name, self.rx_intf))
A R Karthicka013a272016-08-16 16:40:19 -0700144 else:
A R Karthick76a497a2017-04-12 10:59:39 -0700145 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 -0700146 if self.recv_timeout:
147 ##Negative test case is disabled for now
148 assert_equal(len(r), 0)
A R Karthickb7e80902016-05-17 09:38:31 -0700149
150 def recv_channel_cb(self, pkt):
151 ##First verify that we have received the packet for the joined instance
A R Karthick76a497a2017-04-12 10:59:39 -0700152 log_test.info('Packet received for group %s, subscriber %s, port %s' %
A R Karthick338268f2016-06-21 17:12:13 -0700153 (pkt[IP].dst, self.name, self.rx_intf))
154 if self.recv_timeout:
155 return
A R Karthickb7e80902016-05-17 09:38:31 -0700156 chan = self.caddr(pkt[IP].dst)
157 assert_equal(chan in self.join_map.keys(), True)
158 recv_time = monotonic.monotonic() * 1000000
159 join_time = self.join_map[chan][self.STATS_JOIN].start
160 delta = recv_time - join_time
161 self.join_rx_stats.update(packets=1, t = delta, usecs = True)
162 self.channel_update(chan, self.STATS_RX, 1, t = delta)
A R Karthick76a497a2017-04-12 10:59:39 -0700163 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 -0700164
165class subscriber_pool:
166
167 def __init__(self, subscriber, test_cbs):
168 self.subscriber = subscriber
169 self.test_cbs = test_cbs
170
171 def pool_cb(self):
172 for cb in self.test_cbs:
173 if cb:
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700174 self.test_status = cb(self.subscriber)
175 if self.test_status is not True:
176 ## This is chaning for other sub status has to check again
177 self.test_status = True
A R Karthick76a497a2017-04-12 10:59:39 -0700178 log_test.info('This service is failed and other services will not run for this subscriber')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700179 break
A R Karthick76a497a2017-04-12 10:59:39 -0700180 log_test.info('This Subscriber is tested for multiple service eligibility ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700181 self.test_status = True
182
A.R Karthick95d044e2016-06-10 18:44:36 -0700183
A R Karthick9313b762016-11-07 13:14:35 -0800184class subscriber_exchange(CordLogger):
A R Karthickb7e80902016-05-17 09:38:31 -0700185
A.R Karthick95d044e2016-06-10 18:44:36 -0700186 apps = ('org.opencord.aaa', 'org.onosproject.dhcp')
187 olt_apps = () #'org.opencord.cordmcast')
A R Karthicka013a272016-08-16 16:40:19 -0700188 vtn_app = 'org.opencord.vtn'
A R Karthickb7e80902016-05-17 09:38:31 -0700189 table_app = 'org.ciena.cordigmp'
190 dhcp_server_config = {
191 "ip": "10.1.11.50",
192 "mac": "ca:fe:ca:fe:ca:fe",
193 "subnet": "255.255.252.0",
194 "broadcast": "10.1.11.255",
195 "router": "10.1.8.1",
196 "domain": "8.8.8.8",
197 "ttl": "63",
198 "delay": "2",
199 "startip": "10.1.11.51",
200 "endip": "10.1.11.100"
201 }
202
203 aaa_loaded = False
204 test_path = os.path.dirname(os.path.realpath(__file__))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700205 table_app_file = os.path.join(test_path, '..', 'apps/ciena-cordigmp-multitable-2.0-SNAPSHOT.oar')
206 app_file = os.path.join(test_path, '..', 'apps/ciena-cordigmp-2.0-SNAPSHOT.oar')
A R Karthickb7e80902016-05-17 09:38:31 -0700207 onos_config_path = os.path.join(test_path, '..', 'setup/onos-config')
A.R Karthick5968e0d2017-05-16 14:50:46 -0700208 olt_conf_file = os.getenv('OLT_CONFIG_FILE', os.path.join(test_path, '..', 'setup/olt_config.json'))
A R Karthickb7e80902016-05-17 09:38:31 -0700209 cpqd_path = os.path.join(test_path, '..', 'setup')
210 ovs_path = cpqd_path
A R Karthick65c4d722016-07-18 14:20:17 -0700211 test_services = ('IGMP', 'TRAFFIC')
A R Karthick338268f2016-06-21 17:12:13 -0700212 num_joins = 0
213 num_subscribers = 0
214 num_channels = 0
215 recv_timeout = False
A R Karthick4e0c0912016-08-17 16:57:42 -0700216 onos_restartable = bool(int(os.getenv('ONOS_RESTART', 0)))
A R Karthickb7e80902016-05-17 09:38:31 -0700217
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700218 INTF_TX_DEFAULT = 'veth2'
219 INTF_RX_DEFAULT = 'veth0'
220 SUBSCRIBER_TIMEOUT = 300
221
222 CLIENT_CERT = """-----BEGIN CERTIFICATE-----
223MIICuDCCAiGgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
224CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
225IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
226RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwNjA2MjExMjI3WhcN
227MTcwNjAxMjExMjI3WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
228BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
229hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
230gYEAwvXiSzb9LZ6c7uNziUfKvoHO7wu/uiFC5YUpXbmVGuGZizbVrny0xnR85Dfe
231+9R4diansfDhIhzOUl1XjN3YDeSS9OeF5YWNNE8XDhlz2d3rVzaN6hIhdotBkUjg
232rUewjTg5OFR31QEyG3v8xR3CLgiE9xQELjZbSA07pD79zuUCAwEAAaNPME0wEwYD
233VR0lBAwwCgYIKwYBBQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5l
234eGFtcGxlLmNvbS9leGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOBgQDAjkrY
2356tDChmKbvr8w6Du/t8vHjTCoCIocHTN0qzWOeb1YsAGX89+TrWIuO1dFyYd+Z0KC
236PDKB5j/ygml9Na+AklSYAVJIjvlzXKZrOaPmhZqDufi+rXWti/utVqY4VMW2+HKC
237nXp37qWeuFLGyR1519Y1d6F/5XzqmvbwURuEug==
238-----END CERTIFICATE-----"""
239
240 CLIENT_CERT_INVALID = '''-----BEGIN CERTIFICATE-----
241MIIDvTCCAqWgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
242CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
243IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
244RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwMzExMTg1MzM2WhcN
245MTcwMzA2MTg1MzM2WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
246BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
247hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
248AQoCggEBAOxemcBsPn9tZsCa5o2JA6sQDC7A6JgCNXXl2VFzKLNNvB9PS6D7ZBsQ
2495An0zEDMNzi51q7lnrYg1XyiE4S8FzMGAFr94RlGMQJUbRD9V/oqszMX4k++iAOK
250tIA1gr3x7Zi+0tkjVSVzXTmgNnhChAamdMsjYUG5+CY9WAicXyy+VEV3zTphZZDR
251OjcjEp4m/TSXVPYPgYDXI40YZKX5BdvqykWtT/tIgZb48RS1NPyN/XkCYzl3bv21
252qx7Mc0fcEbsJBIIRYTUkfxnsilcnmLxSYO+p+DZ9uBLBzcQt+4Rd5pLSfi21WM39
2532Z2oOi3vs/OYAPAqgmi2JWOv3mePa/8CAwEAAaNPME0wEwYDVR0lBAwwCgYIKwYB
254BQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5leGFtcGxlLmNvbS9l
255eGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOCAQEALBzMPDTIB6sLyPl0T6JV
256MjOkyldAVhXWiQsTjaGQGJUUe1cmUJyZbUZEc13MygXMPOM4x7z6VpXGuq1c/Vxn
257VzQ2fNnbJcIAHi/7G8W5/SQfPesIVDsHTEc4ZspPi5jlS/MVX3HOC+BDbOjdbwqP
258RX0JEr+uOyhjO+lRxG8ilMRACoBUbw1eDuVDoEBgErSUC44pq5ioDw2xelc+Y6hQ
259dmtYwfY0DbvwxHtA495frLyPcastDiT/zre7NL51MyUDPjjYjghNQEwvu66IKbQ3
260T1tJBrgI7/WI+dqhKBFolKGKTDWIHsZXQvZ1snGu/FRYzg1l+R/jT8cRB9BDwhUt
261yg==
262-----END CERTIFICATE-----'''
263
A R Karthickb7e80902016-05-17 09:38:31 -0700264 @classmethod
A R Karthickd44cea12016-07-20 12:16:41 -0700265 def load_device_id(cls):
A R Karthickb03cecd2016-07-27 10:27:55 -0700266 '''Configure the device id'''
267 did = OnosCtrl.get_device_id()
A R Karthickd44cea12016-07-20 12:16:41 -0700268 #Set the default config
269 cls.device_id = did
270 cls.device_dict = { "devices" : {
271 "{}".format(did) : {
272 "basic" : {
273 "driver" : "pmc-olt"
274 }
275 }
276 },
277 }
278 return did
279
280 @classmethod
A R Karthickb7e80902016-05-17 09:38:31 -0700281 def setUpClass(cls):
282 '''Load the OLT config and activate relevant apps'''
A R Karthick0f6b6842016-12-06 17:17:44 -0800283 dids = OnosCtrl.get_device_ids()
284 device_map = {}
285 for did in dids:
286 device_map[did] = { 'basic' : { 'driver' : 'pmc-olt' } }
287 network_cfg = {}
288 network_cfg = { 'devices' : device_map }
A R Karthick4b72d4b2016-06-15 11:09:17 -0700289 ## Restart ONOS with cpqd driver config for OVS
290 cls.start_onos(network_cfg = network_cfg)
A R Karthickb7e80902016-05-17 09:38:31 -0700291 cls.install_app_table()
A R Karthickb7e80902016-05-17 09:38:31 -0700292 cls.olt = OltConfig(olt_conf_file = cls.olt_conf_file)
A R Karthick0f6b6842016-12-06 17:17:44 -0800293 OnosCtrl.cord_olt_config(cls.olt)
A R Karthickb03cecd2016-07-27 10:27:55 -0700294 cls.port_map, cls.port_list = cls.olt.olt_port_map()
A R Karthick0f6b6842016-12-06 17:17:44 -0800295 cls.switches = cls.port_map['switches']
296 cls.num_ports = cls.port_map['num_ports']
297 if cls.num_ports > 1:
298 cls.num_ports -= 1 ##account for the tx port
A R Karthickb7e80902016-05-17 09:38:31 -0700299 cls.activate_apps(cls.apps + cls.olt_apps)
300
301 @classmethod
302 def tearDownClass(cls):
303 '''Deactivate the olt apps and restart OVS back'''
304 apps = cls.olt_apps + ( cls.table_app,)
305 for app in apps:
306 onos_ctrl = OnosCtrl(app)
307 onos_ctrl.deactivate()
A R Karthicke0f33fa2016-06-22 13:36:02 -0700308 cls.start_onos(network_cfg = {})
A R Karthicke5939f02016-11-16 12:08:07 -0800309 cls.install_app_igmp()
A R Karthickb7e80902016-05-17 09:38:31 -0700310
311 @classmethod
312 def activate_apps(cls, apps):
313 for app in apps:
314 onos_ctrl = OnosCtrl(app)
315 status, _ = onos_ctrl.activate()
316 assert_equal(status, True)
317 time.sleep(2)
318
319 @classmethod
320 def install_app_table(cls):
321 ##Uninstall the existing app if any
322 OnosCtrl.uninstall_app(cls.table_app)
323 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700324 log_test.info('Installing the multi table app %s for subscriber test' %(cls.table_app_file))
A R Karthickb7e80902016-05-17 09:38:31 -0700325 OnosCtrl.install_app(cls.table_app_file)
326 time.sleep(3)
A R Karthickedab01c2016-09-08 14:05:44 -0700327 #onos_ctrl = OnosCtrl(cls.vtn_app)
328 #onos_ctrl.deactivate()
A R Karthickb7e80902016-05-17 09:38:31 -0700329
330 @classmethod
A R Karthicke5939f02016-11-16 12:08:07 -0800331 def install_app_igmp(cls):
A R Karthickb7e80902016-05-17 09:38:31 -0700332 ##Uninstall the table app on class exit
333 OnosCtrl.uninstall_app(cls.table_app)
334 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700335 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 -0700336 OnosCtrl.install_app(cls.app_file)
A R Karthickedab01c2016-09-08 14:05:44 -0700337 #onos_ctrl = OnosCtrl(cls.vtn_app)
338 #onos_ctrl.activate()
A R Karthickb7e80902016-05-17 09:38:31 -0700339
340 @classmethod
341 def start_onos(cls, network_cfg = None):
A R Karthicka478df42016-07-27 16:51:08 -0700342 if cls.onos_restartable is False:
A R Karthick76a497a2017-04-12 10:59:39 -0700343 log_test.info('ONOS restart is disabled. Skipping ONOS restart')
A R Karthick65c4d722016-07-18 14:20:17 -0700344 return
A R Karthickb7e80902016-05-17 09:38:31 -0700345 if network_cfg is None:
A R Karthick4b72d4b2016-06-15 11:09:17 -0700346 network_cfg = cls.device_dict
A R Karthickb7e80902016-05-17 09:38:31 -0700347
348 if type(network_cfg) is tuple:
349 res = []
350 for v in network_cfg:
351 res += v.items()
352 config = dict(res)
353 else:
354 config = network_cfg
A R Karthick76a497a2017-04-12 10:59:39 -0700355 log_test.info('Restarting ONOS with new network configuration')
A R Karthick338268f2016-06-21 17:12:13 -0700356 return cord_test_onos_restart(config = config)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700357
358 @classmethod
359 def remove_onos_config(cls):
360 try:
361 os.unlink('{}/network-cfg.json'.format(cls.onos_config_path))
362 except: pass
A R Karthickb7e80902016-05-17 09:38:31 -0700363
364 @classmethod
365 def start_cpqd(cls, mac = '00:11:22:33:44:55'):
366 dpid = mac.replace(':', '')
367 cpqd_file = os.sep.join( (cls.cpqd_path, 'cpqd.sh') )
368 cpqd_cmd = '{} {}'.format(cpqd_file, dpid)
369 ret = os.system(cpqd_cmd)
370 assert_equal(ret, 0)
371 time.sleep(10)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700372 device_id = 'of:{}{}'.format('0'*4, dpid)
373 return device_id
A R Karthickb7e80902016-05-17 09:38:31 -0700374
375 @classmethod
376 def start_ovs(cls):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700377 ovs_file = os.sep.join( (cls.ovs_path, 'of-bridge.sh') )
A R Karthickb7e80902016-05-17 09:38:31 -0700378 ret = os.system(ovs_file)
379 assert_equal(ret, 0)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700380 time.sleep(30)
A R Karthickb7e80902016-05-17 09:38:31 -0700381
A R Karthicka013a272016-08-16 16:40:19 -0700382 @classmethod
383 def ovs_cleanup(cls):
384 ##For every test case, delete all the OVS groups
385 cmd = 'ovs-ofctl del-groups br-int -OOpenFlow11 >/dev/null 2>&1'
A R Karthicka013a272016-08-16 16:40:19 -0700386 try:
A.R Karthick98fc7cf2017-05-17 14:39:46 -0700387 cord_test_shell(cmd)
388 ##Since olt config is used for this test, we just fire a careless local cmd as well
A R Karthicka013a272016-08-16 16:40:19 -0700389 os.system(cmd)
A.R Karthick98fc7cf2017-05-17 14:39:46 -0700390 finally:
391 return
A R Karthicka013a272016-08-16 16:40:19 -0700392
A R Karthickb7e80902016-05-17 09:38:31 -0700393 def onos_aaa_load(self):
394 if self.aaa_loaded:
395 return
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700396 aaa_dict = {'apps' : { 'org.opencord.aaa' : { 'AAA' : { 'radiusSecret': 'radius_password',
397 'radiusIp': '172.17.0.2' } } } }
A R Karthickb7e80902016-05-17 09:38:31 -0700398 radius_ip = os.getenv('ONOS_AAA_IP') or '172.17.0.2'
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700399 aaa_dict['apps']['org.opencord.aaa']['AAA']['radiusIp'] = radius_ip
400 self.onos_load_config('org.opencord.aaa', aaa_dict)
A R Karthickb7e80902016-05-17 09:38:31 -0700401 self.aaa_loaded = True
402
403 def onos_dhcp_table_load(self, config = None):
404 dhcp_dict = {'apps' : { 'org.onosproject.dhcp' : { 'dhcp' : copy.copy(self.dhcp_server_config) } } }
405 dhcp_config = dhcp_dict['apps']['org.onosproject.dhcp']['dhcp']
406 if config:
407 for k in config.keys():
408 if dhcp_config.has_key(k):
409 dhcp_config[k] = config[k]
410 self.onos_load_config('org.onosproject.dhcp', dhcp_dict)
411
412 def onos_load_config(self, app, config):
413 status, code = OnosCtrl.config(config)
414 if status is False:
A R Karthick76a497a2017-04-12 10:59:39 -0700415 log_test.info('JSON config request for app %s returned status %d' %(app, code))
A R Karthickb7e80902016-05-17 09:38:31 -0700416 assert_equal(status, True)
417 time.sleep(2)
418
419 def dhcp_sndrcv(self, dhcp, update_seed = False):
420 cip, sip = dhcp.discover(update_seed = update_seed)
421 assert_not_equal(cip, None)
422 assert_not_equal(sip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700423 log_test.info('Got dhcp client IP %s from server %s for mac %s' %
A R Karthickb7e80902016-05-17 09:38:31 -0700424 (cip, sip, dhcp.get_mac(cip)[0]))
425 return cip,sip
426
427 def dhcp_request(self, subscriber, seed_ip = '10.10.10.1', update_seed = False):
428 config = {'startip':'10.10.10.20', 'endip':'10.10.10.200',
429 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
430 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
431 self.onos_dhcp_table_load(config)
432 dhcp = DHCPTest(seed_ip = seed_ip, iface = subscriber.iface)
433 cip, sip = self.dhcp_sndrcv(dhcp, update_seed = update_seed)
434 return cip, sip
435
436 def recv_channel_cb(self, pkt):
437 ##First verify that we have received the packet for the joined instance
438 chan = self.subscriber.caddr(pkt[IP].dst)
439 assert_equal(chan in self.subscriber.join_map.keys(), True)
440 recv_time = monotonic.monotonic() * 1000000
441 join_time = self.subscriber.join_map[chan][self.subscriber.STATS_JOIN].start
442 delta = recv_time - join_time
443 self.subscriber.join_rx_stats.update(packets=1, t = delta, usecs = True)
444 self.subscriber.channel_update(chan, self.subscriber.STATS_RX, 1, t = delta)
A R Karthick76a497a2017-04-12 10:59:39 -0700445 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 -0700446 self.test_status = True
447
A R Karthick65c4d722016-07-18 14:20:17 -0700448 def traffic_verify(self, subscriber):
449 if subscriber.has_service('TRAFFIC'):
450 url = 'http://www.google.com'
451 resp = requests.get(url)
452 self.test_status = resp.ok
453 if resp.ok == False:
A R Karthick76a497a2017-04-12 10:59:39 -0700454 log_test.info('Subscriber %s failed get from url %s with status code %d'
A R Karthick65c4d722016-07-18 14:20:17 -0700455 %(subscriber.name, url, resp.status_code))
456 else:
A R Karthick76a497a2017-04-12 10:59:39 -0700457 log_test.info('GET request from %s succeeded for subscriber %s'
A R Karthick65c4d722016-07-18 14:20:17 -0700458 %(url, subscriber.name))
A R Karthicka013a272016-08-16 16:40:19 -0700459 return self.test_status
A R Karthick65c4d722016-07-18 14:20:17 -0700460
A R Karthickb7e80902016-05-17 09:38:31 -0700461 def tls_verify(self, subscriber):
462 if subscriber.has_service('TLS'):
463 time.sleep(2)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700464 tls = TLSAuthTest(intf = subscriber.rx_intf)
A R Karthick76a497a2017-04-12 10:59:39 -0700465 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700466 tls.runTest()
467 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700468 return self.test_status
469 else:
470 self.test_status = True
471 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700472
473 def dhcp_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700474 if subscriber.has_service('DHCP'):
475 cip, sip = self.dhcp_request(subscriber, update_seed = True)
A R Karthick76a497a2017-04-12 10:59:39 -0700476 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700477 subscriber.src_list = [cip]
478 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700479 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700480 else:
481 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
482 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700483 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700484
485 def dhcp_jump_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700486 if subscriber.has_service('DHCP'):
487 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.200.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700488 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700489 subscriber.src_list = [cip]
490 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700491 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700492 else:
493 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
494 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700495 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700496
497 def dhcp_next_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700498 if subscriber.has_service('DHCP'):
499 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.150.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700500 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700501 subscriber.src_list = [cip]
502 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700503 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700504 else:
505 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
506 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700507 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700508
509 def igmp_verify(self, subscriber):
510 chan = 0
511 if subscriber.has_service('IGMP'):
A R Karthick338268f2016-06-21 17:12:13 -0700512 ##We wait for all the subscribers to join before triggering leaves
513 if subscriber.rx_port > 1:
514 time.sleep(5)
515 subscriber.channel_join(chan, delay = 0)
516 self.num_joins += 1
517 while self.num_joins < self.num_subscribers:
518 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700519 log_test.info('All subscribers have joined the channel')
A R Karthick338268f2016-06-21 17:12:13 -0700520 for i in range(10):
521 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
A R Karthick76a497a2017-04-12 10:59:39 -0700522 log_test.info('Leaving channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700523 subscriber.channel_leave(chan)
A R Karthick338268f2016-06-21 17:12:13 -0700524 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700525 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 -0700526 #Should not receive packets for this subscriber
527 self.recv_timeout = True
528 subscriber.recv_timeout = True
529 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
530 subscriber.recv_timeout = False
531 self.recv_timeout = False
A R Karthick76a497a2017-04-12 10:59:39 -0700532 log_test.info('Joining channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthick338268f2016-06-21 17:12:13 -0700533 subscriber.channel_join(chan, delay = 0)
A R Karthickb7e80902016-05-17 09:38:31 -0700534 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700535 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700536
537 def igmp_jump_verify(self, subscriber):
538 if subscriber.has_service('IGMP'):
539 for i in xrange(subscriber.num):
A R Karthick76a497a2017-04-12 10:59:39 -0700540 log_test.info('Subscriber %s jumping channel' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700541 chan = subscriber.channel_jump(delay=0)
542 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 1)
A R Karthick76a497a2017-04-12 10:59:39 -0700543 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700544 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700545 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 -0700546 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700547 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700548
549 def igmp_next_verify(self, subscriber):
550 if subscriber.has_service('IGMP'):
551 for i in xrange(subscriber.num):
552 if i:
553 chan = subscriber.channel_join_next(delay=0)
554 else:
555 chan = subscriber.channel_join(i, delay=0)
A R Karthick76a497a2017-04-12 10:59:39 -0700556 log_test.info('Joined next channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700557 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count=1)
A R Karthick76a497a2017-04-12 10:59:39 -0700558 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700559 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700560 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 -0700561 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700562 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700563
564 def generate_port_list(self, subscribers, channels):
565 return self.port_list[:subscribers]
566
567 def subscriber_load(self, create = True, num = 10, num_channels = 1, channel_start = 0, port_list = []):
568 '''Load the subscriber from the database'''
A R Karthick4b72d4b2016-06-15 11:09:17 -0700569 self.subscriber_db = SubscriberDB(create = create, services = self.test_services)
A R Karthickb7e80902016-05-17 09:38:31 -0700570 if create is True:
571 self.subscriber_db.generate(num)
572 self.subscriber_info = self.subscriber_db.read(num)
573 self.subscriber_list = []
574 if not port_list:
575 port_list = self.generate_port_list(num, num_channels)
576
577 index = 0
578 for info in self.subscriber_info:
A.R Karthick95d044e2016-06-10 18:44:36 -0700579 self.subscriber_list.append(Subscriber(name=info['Name'],
A R Karthickb7e80902016-05-17 09:38:31 -0700580 service=info['Service'],
581 port_map = self.port_map,
582 num=num_channels,
583 channel_start = channel_start,
584 tx_port = port_list[index][0],
585 rx_port = port_list[index][1]))
586 if num_channels > 1:
587 channel_start += num_channels
588 index += 1
589
590 #load the ssm list for all subscriber channels
591 igmpChannel = IgmpChannel()
592 ssm_groups = map(lambda sub: sub.channels, self.subscriber_list)
593 ssm_list = reduce(lambda ssm1, ssm2: ssm1+ssm2, ssm_groups)
594 igmpChannel.igmp_load_ssm_config(ssm_list)
595
A.R Karthick95d044e2016-06-10 18:44:36 -0700596 def subscriber_join_verify( self, num_subscribers = 10, num_channels = 1,
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700597 channel_start = 0, cbs = None, port_list = [], negative_subscriber_auth = None):
A R Karthickb7e80902016-05-17 09:38:31 -0700598 self.test_status = False
A R Karthicka013a272016-08-16 16:40:19 -0700599 self.ovs_cleanup()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700600 subscribers_count = num_subscribers
601 sub_loop_count = num_subscribers
A R Karthickb7e80902016-05-17 09:38:31 -0700602 self.subscriber_load(create = True, num = num_subscribers,
603 num_channels = num_channels, channel_start = channel_start, port_list = port_list)
604 self.onos_aaa_load()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700605 self.thread_pool = ThreadPool(min(100, subscribers_count), queue_size=1, wait_timeout=1)
606
A R Karthick338268f2016-06-21 17:12:13 -0700607 chan_leave = False #for single channel, multiple subscribers
A R Karthicke237aee2016-12-01 17:46:43 -0800608 if cbs is None:
A R Karthick65c4d722016-07-18 14:20:17 -0700609 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
A R Karthick338268f2016-06-21 17:12:13 -0700610 chan_leave = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700611 cbs_negative = cbs
A R Karthickb7e80902016-05-17 09:38:31 -0700612 for subscriber in self.subscriber_list:
613 subscriber.start()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700614 if negative_subscriber_auth is 'half' and sub_loop_count%2 is not 0:
615 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
616 elif negative_subscriber_auth is 'onethird' and sub_loop_count%3 is not 0:
617 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
618 else:
619 cbs = cbs_negative
620 sub_loop_count = sub_loop_count - 1
A R Karthickb7e80902016-05-17 09:38:31 -0700621 pool_object = subscriber_pool(subscriber, cbs)
622 self.thread_pool.addTask(pool_object.pool_cb)
623 self.thread_pool.cleanUpThreads()
624 for subscriber in self.subscriber_list:
625 subscriber.stop()
A R Karthick338268f2016-06-21 17:12:13 -0700626 if chan_leave is True:
627 subscriber.channel_leave(0)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700628 subscribers_count = 0
A R Karthickb7e80902016-05-17 09:38:31 -0700629 return self.test_status
630
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700631 def tls_invalid_cert(self, subscriber):
632 if subscriber.has_service('TLS'):
633 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700634 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700635 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_INVALID)
636 tls.runTest()
637 if tls.failTest == True:
638 self.test_status = False
639 return self.test_status
640 else:
641 self.test_status = True
642 return self.test_status
643
644 def tls_no_cert(self, subscriber):
645 if subscriber.has_service('TLS'):
646 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700647 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700648 tls = TLSAuthTest(client_cert = '')
649 tls.runTest()
650 if tls.failTest == True:
651 self.test_status = False
652 return self.test_status
653 else:
654 self.test_status = True
655 return self.test_status
656
657 def tls_self_signed_cert(self, subscriber):
658 if subscriber.has_service('TLS'):
659 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700660 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700661 tls = TLSAuthTest(client_cert = self.CLIENT_CERT)
662 tls.runTest()
663 if tls.failTest == False:
664 self.test_status = True
665 return self.test_status
666 else:
667 self.test_status = True
668 return self.test_status
669
670 def tls_non_ca_authrized_cert(self, subscriber):
671 if subscriber.has_service('TLS'):
672 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700673 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700674 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_NON_CA_AUTHORIZED)
675 tls.runTest()
676 if tls.failTest == False:
677 self.test_status = True
678 return self.test_status
679 else:
680 self.test_status = True
681 return self.test_status
682
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700683 def tls_Nsubscribers_use_same_valid_cert(self, subscriber):
684 if subscriber.has_service('TLS'):
685 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700686 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700687 num_users = 3
688 for i in xrange(num_users):
689 tls = TLSAuthTest(intf = 'veth{}'.format(i*2))
690 tls.runTest()
691 if tls.failTest == False:
692 self.test_status = True
693 return self.test_status
694 else:
695 self.test_status = True
696 return self.test_status
697
698 def dhcp_discover_scenario(self, subscriber):
699 if subscriber.has_service('DHCP'):
700 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700701 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700702 t1 = self.subscriber_dhcp_1release()
703 self.test_status = True
704 return self.test_status
705 else:
706 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
707 self.test_status = True
708 return self.test_status
709
710 def subscriber_dhcp_1release(self, iface = INTF_RX_DEFAULT):
A R Karthick76a497a2017-04-12 10:59:39 -0700711 config = {'startip':'10.10.100.20', 'endip':'10.10.100.21',
712 'ip':'10.10.100.2', 'mac': "ca:fe:ca:fe:8a:fe",
713 'subnet': '255.255.255.0', 'broadcast':'10.10.100.255', 'router':'10.10.100.1'}
714 self.onos_dhcp_table_load(config)
715 self.dhcp = DHCPTest(seed_ip = '10.10.100.10', iface = iface)
716 cip, sip = self.send_recv()
717 log_test.info('Releasing ip %s to server %s' %(cip, sip))
718 assert_equal(self.dhcp.release(cip), True)
719 log_test.info('Triggering DHCP discover again after release')
720 cip2, sip2 = self.send_recv(update_seed = True)
721 log_test.info('Verifying released IP was given back on rediscover')
722 assert_equal(cip, cip2)
723 log_test.info('Test done. Releasing ip %s to server %s' %(cip2, sip2))
724 assert_equal(self.dhcp.release(cip2), True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700725
726 def dhcp_client_reboot_scenario(self, subscriber):
727 if subscriber.has_service('DHCP'):
728 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700729 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700730 tl = self.subscriber_dhcp_client_request_after_reboot()
731 self.test_status = True
732 return self.test_status
733 else:
734 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
735 self.test_status = True
736 return self.test_status
737
738 def subscriber_dhcp_client_request_after_reboot(self, iface = INTF_RX_DEFAULT):
739 #''' Client sends DHCP Request after reboot.'''
740
741 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
742 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
743 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
744 self.onos_dhcp_table_load(config)
745 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
746 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700747 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700748 (cip, sip, mac) )
749
A R Karthick76a497a2017-04-12 10:59:39 -0700750 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 -0700751
752 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700753 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 -0700754 assert_not_equal(cip, None)
755
756 else:
757 new_cip, new_sip = self.dhcp.only_request(cip, mac)
758 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700759 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700760 os.system('ifconfig '+iface+' down')
A R Karthick76a497a2017-04-12 10:59:39 -0700761 log_test.info('Client goes down.')
762 log_test.info('Delay for 5 seconds.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700763
764 time.sleep(5)
765
766 os.system('ifconfig '+iface+' up')
A R Karthick76a497a2017-04-12 10:59:39 -0700767 log_test.info('Client is up now.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700768
769 new_cip, new_sip = self.dhcp.only_request(cip, mac)
770 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700771 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700772 assert_not_equal(new_cip, None)
773 elif new_cip != None:
A R Karthick76a497a2017-04-12 10:59:39 -0700774 log_test.info("Got DHCP ACK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700775
776 def dhcp_client_renew_scenario(self, subscriber):
777 if subscriber.has_service('DHCP'):
778 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700779 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700780 tl = self.subscriber_dhcp_client_renew_time()
781 self.test_status = True
782 return self.test_status
783 else:
784 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
785 self.test_status = True
786 return self.test_status
787
788 def subscriber_dhcp_client_renew_time(self, iface = INTF_RX_DEFAULT):
789 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
790 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
791 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
792 self.onos_dhcp_table_load(config)
793 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
794 cip, sip, mac , lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700795 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700796 (cip, sip, mac) )
797
A R Karthick76a497a2017-04-12 10:59:39 -0700798 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 -0700799 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700800 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 -0700801 assert_not_equal(cip, None)
802 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700803 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700804 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, renew_time = True)
805 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700806 log_test.info("Client 's Renewal time is :%s",lval)
807 log_test.info("Generating delay till renewal time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700808 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700809 log_test.info("Client Sending Unicast DHCP request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700810 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac, unicast = True)
811 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700812 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700813 (latest_cip, mac, latest_sip) )
814
815 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700816 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700817 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700818 log_test.info("Got DHCP NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700819
820 def dhcp_server_reboot_scenario(self, subscriber):
821 if subscriber.has_service('DHCP'):
822 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700823 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700824 tl = self.subscriber_dhcp_server_after_reboot()
825 self.test_status = True
826 return self.test_status
827 else:
828 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
829 self.test_status = True
830 return self.test_status
831
832 def subscriber_dhcp_server_after_reboot(self, iface = INTF_RX_DEFAULT):
833 ''' DHCP server goes down.'''
834 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
835 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
836 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
837 self.onos_dhcp_table_load(config)
838 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
839 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700840 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700841 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700842 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 -0700843 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700844 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 -0700845 assert_not_equal(cip, None)
846 else:
847 new_cip, new_sip = self.dhcp.only_request(cip, mac)
848 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700849 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700850 assert_not_equal(new_cip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700851 log_test.info('Getting DHCP server Down.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700852 onos_ctrl = OnosCtrl(self.dhcp_app)
853 onos_ctrl.deactivate()
854 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700855 log_test.info("Sending DHCP Request.")
856 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700857 new_cip, new_sip = self.dhcp.only_request(cip, mac)
858 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700859 log_test.info('')
860 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700861 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700862 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700863 assert_equal(new_cip,None) #Neagtive Test Case
A R Karthick76a497a2017-04-12 10:59:39 -0700864 log_test.info('Getting DHCP server Up.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700865# self.activate_apps(self.dhcp_app)
866 onos_ctrl = OnosCtrl(self.dhcp_app)
867 status, _ = onos_ctrl.activate()
868 assert_equal(status, True)
869 time.sleep(3)
870 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700871 log_test.info("Sending DHCP Request after DHCP server is up.")
872 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700873 new_cip, new_sip = self.dhcp.only_request(cip, mac)
874 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700875 log_test.info('')
876 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700877 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700878 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700879 assert_equal(new_cip,None) #Neagtive Test Case
880
881 def dhcp_client_rebind_scenario(self, subscriber):
882 if subscriber.has_service('DHCP'):
883 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700884 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700885 tl = self.subscriber_dhcp_client_rebind_time()
886 self.test_status = True
887 return self.test_status
888 else:
889 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
890 self.test_status = True
891 return self.test_status
892
893 def subscriber_dhcp_client_rebind_time(self, iface = INTF_RX_DEFAULT):
894 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
895 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
896 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
897 self.onos_dhcp_table_load(config)
898 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
899 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700900 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700901 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700902 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 -0700903 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700904 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 -0700905 assert_not_equal(cip, None)
906 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700907 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700908 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, rebind_time = True)
909 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700910 log_test.info("Client 's Rebind time is :%s",lval)
911 log_test.info("Generating delay till rebind time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700912 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700913 log_test.info("Client Sending broadcast DHCP requests for renewing lease or for getting new ip.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700914 self.dhcp.after_T2 = True
915 for i in range(0,4):
916 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac)
917 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700918 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700919 (latest_cip, mac, latest_sip) )
920 break
921 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700922 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700923 assert_not_equal(latest_cip, None)
924 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700925 log_test.info("Got DHCP NAK.Lease not Renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700926
927 def dhcp_starvation_scenario(self, subscriber):
928 if subscriber.has_service('DHCP'):
929 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700930 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700931 tl = self.subscriber_dhcp_starvation()
932 self.test_status = True
933 return self.test_status
934 else:
935 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
936 self.test_status = True
937 return self.test_status
938
939 def subscriber_dhcp_starvation(self, iface = INTF_RX_DEFAULT):
940 '''DHCP starve'''
941 config = {'startip':'182.17.0.20', 'endip':'182.17.0.69',
942 'ip':'182.17.0.2', 'mac': "ca:fe:c3:fe:ca:fe",
943 'subnet': '255.255.255.0', 'broadcast':'182.17.0.255', 'router':'182.17.0.1'}
944 self.onos_dhcp_table_load(config)
945 self.dhcp = DHCPTest(seed_ip = '182.17.0.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -0700946 log_test.info('Verifying 1 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700947 for x in xrange(50):
948 mac = RandMAC()._fix()
949 self.send_recv(mac = mac)
A R Karthick76a497a2017-04-12 10:59:39 -0700950 log_test.info('Verifying 2 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700951 cip, sip = self.send_recv(update_seed = True, validate = False)
952 assert_equal(cip, None)
953 assert_equal(sip, None)
954
955 def dhcp_same_client_multi_discovers_scenario(self, subscriber):
956 if subscriber.has_service('DHCP'):
957 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700958 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700959 tl = self.subscriber_dhcp_same_client_multiple_discover()
960 self.test_status = True
961 return self.test_status
962 else:
963 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
964 self.test_status = True
965 return self.test_status
966
967 def subscriber_dhcp_same_client_multiple_discover(self, iface = INTF_RX_DEFAULT):
968 ''' DHCP Client sending multiple discover . '''
969 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
970 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
971 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
972 self.onos_dhcp_table_load(config)
973 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
974 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700975 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 -0700976 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700977 log_test.info('Triggering DHCP discover again.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700978 new_cip, new_sip, new_mac , lval = self.dhcp.only_discover()
979 if cip == new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700980 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 -0700981 % (new_cip, new_sip, new_mac) )
982 elif cip != new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700983 log_test.info('Ip after 1st discover %s' %cip)
984 log_test.info('Map after 2nd discover %s' %new_cip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700985 assert_equal(cip, new_cip)
986
987 def dhcp_same_client_multi_request_scenario(self, subscriber):
988 if subscriber.has_service('DHCP'):
989 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700990 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700991 tl = self.subscriber_dhcp_same_client_multiple_request()
992 self.test_status = True
993 return self.test_status
994 else:
995 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
996 self.test_status = True
997 return self.test_status
998
999 def subscriber_dhcp_same_client_multiple_request(self, iface = INTF_RX_DEFAULT):
1000 ''' DHCP Client sending multiple repeat DHCP requests. '''
1001 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
1002 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
1003 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
1004 self.onos_dhcp_table_load(config)
1005 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001006 log_test.info('Sending DHCP discover and DHCP request.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001007 cip, sip = self.send_recv()
1008 mac = self.dhcp.get_mac(cip)[0]
A R Karthick76a497a2017-04-12 10:59:39 -07001009 log_test.info("Sending DHCP request again.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001010 new_cip, new_sip = self.dhcp.only_request(cip, mac)
1011 if (new_cip,new_sip) == (cip,sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001012 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 -07001013 % (new_cip, new_sip, mac) )
1014 elif (new_cip,new_sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001015 log_test.info('No DHCP ACK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001016 assert_equal(new_cip, None)
1017 assert_equal(new_sip, None)
1018 else:
1019 print "Something went wrong."
1020
1021 def dhcp_client_desired_ip_scenario(self, subscriber):
1022 if subscriber.has_service('DHCP'):
1023 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001024 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001025 tl = self.subscriber_dhcp_client_desired_address()
1026 self.test_status = True
1027 return self.test_status
1028 else:
1029 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1030 self.test_status = True
1031 return self.test_status
1032
1033 def subscriber_dhcp_client_desired_address(self, iface = INTF_RX_DEFAULT):
1034 '''DHCP Client asking for desired IP address.'''
1035 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1036 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1037 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1038 self.onos_dhcp_table_load(config)
1039 self.dhcp = DHCPTest(seed_ip = '20.20.20.31', iface = iface)
1040 cip, sip, mac , lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001041 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001042 (cip, sip, mac) )
1043 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001044 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001045 (cip, sip, mac) )
1046 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001047 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001048 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001049 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001050 assert_equal(cip, self.dhcp.seed_ip)
1051
1052 def dhcp_client_request_pkt_with_non_offered_ip_scenario(self, subscriber):
1053 if subscriber.has_service('DHCP'):
1054 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001055 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001056 tl = self.subscriber_dhcp_server_nak_packet()
1057 self.test_status = True
1058 return self.test_status
1059 else:
1060 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1061 self.test_status = True
1062 return self.test_status
1063
1064 def subscriber_dhcp_server_nak_packet(self, iface = INTF_RX_DEFAULT):
1065 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1066 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1067 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1068 self.onos_dhcp_table_load(config)
1069 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
1070 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -07001071 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001072 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001073 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 -07001074 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001075 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 -07001076 assert_not_equal(cip, None)
1077 else:
1078 new_cip, new_sip = self.dhcp.only_request('20.20.20.31', mac)
1079 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001080 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001081 assert_equal(new_cip, None) #Negative Test Case
1082
1083 def dhcp_client_requested_out_pool_ip_scenario(self, subscriber):
1084 if subscriber.has_service('DHCP'):
1085 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001086 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001087 tl = self.subscriber_dhcp_client_desired_address_out_of_pool()
1088 self.test_status = True
1089 return self.test_status
1090 else:
1091 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1092 self.test_status = True
1093 return self.test_status
1094
1095 def subscriber_dhcp_client_desired_address_out_of_pool(self, iface = INTF_RX_DEFAULT):
1096 '''DHCP Client asking for desired IP address from out of pool.'''
1097 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1098 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1099 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1100 self.onos_dhcp_table_load(config)
1101 self.dhcp = DHCPTest(seed_ip = '20.20.20.35', iface = iface)
1102 cip, sip, mac, lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001103 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001104 (cip, sip, mac) )
1105 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001106 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001107 (cip, sip, mac) )
1108 assert_equal(cip, self.dhcp.seed_ip) #Negative Test Case
1109
1110 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001111 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001112 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001113 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001114 assert_not_equal(cip, self.dhcp.seed_ip)
1115
1116 elif cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001117 log_test.info('Got DHCP NAK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001118
1119 def dhcp_client_specific_lease_scenario(self, subscriber):
1120 if subscriber.has_service('DHCP'):
1121 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001122 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001123 tl = self.subscriber_dhcp_specific_lease_packet()
1124 self.test_status = True
1125 return self.test_status
1126 else:
1127 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1128 self.test_status = True
1129 return self.test_status
1130
1131 def subscriber_dhcp_specific_lease_packet(self, iface = INTF_RX_DEFAULT):
1132 ''' Client sends DHCP Discover packet for particular lease time.'''
1133 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1134 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1135 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1136 self.onos_dhcp_table_load(config)
1137 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001138 log_test.info('Sending DHCP discover with lease time of 700')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001139 cip, sip, mac, lval = self.dhcp.only_discover(lease_time = True)
1140
A R Karthick76a497a2017-04-12 10:59:39 -07001141 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001142 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001143 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 -07001144 assert_not_equal(cip, None)
1145 elif lval != 700:
A R Karthick76a497a2017-04-12 10:59:39 -07001146 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 -07001147 (cip, sip, mac, lval) )
1148 assert_not_equal(lval, 700)
1149
1150 def test_cord_subscriber_join_recv(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001151 """Test subscriber join and receive for channel surfing"""
A R Karthick338268f2016-06-21 17:12:13 -07001152 self.num_subscribers = 5
1153 self.num_channels = 1
A R Karthicka478df42016-07-27 16:51:08 -07001154 test_status = True
1155 ##Run this test only if ONOS can be restarted as it incurs a network-cfg change
1156 if self.onos_restartable is True:
1157 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1158 num_channels = self.num_channels,
1159 port_list = self.generate_port_list(self.num_subscribers,
1160 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001161 assert_equal(test_status, True)
1162
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001163 def test_cord_subscriber_join_jump(self):
A R Karthicka478df42016-07-27 16:51:08 -07001164 """Test subscriber join jump for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001165 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001166 self.num_channels = 10
1167 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1168 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001169 cbs = (self.tls_verify, self.dhcp_jump_verify,
1170 self.igmp_jump_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001171 port_list = self.generate_port_list(self.num_subscribers,
1172 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001173 assert_equal(test_status, True)
1174
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001175 def test_cord_subscriber_join_next(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001176 """Test subscriber join next for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001177 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001178 self.num_channels = 10
1179 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1180 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001181 cbs = (self.tls_verify, self.dhcp_next_verify,
1182 self.igmp_next_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001183 port_list = self.generate_port_list(self.num_subscribers,
1184 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001185 assert_equal(test_status, True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001186
1187 #@deferred(SUBSCRIBER_TIMEOUT)
1188 def test_cord_subscriber_authentication_with_invalid_certificate_and_channel_surfing(self):
1189 ### """Test subscriber to auth with invalidCertification and join channel"""
1190 num_subscribers = 1
1191 num_channels = 1
1192 df = defer.Deferred()
1193 def sub_auth_invalid_cert(df):
1194 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1195 num_channels = num_channels,
1196 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1197 self.igmp_verify, self.traffic_verify),
1198 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1199 assert_equal(test_status, False)
1200 df.callback(0)
1201 reactor.callLater(0, sub_auth_invalid_cert, df)
1202 return df
1203
1204 #@deferred(SUBSCRIBER_TIMEOUT)
1205 def test_cord_subscriber_authentication_with_no_certificate_and_channel_surfing(self):
1206 ### """Test subscriber to auth with No Certification and join channel"""
1207 num_subscribers = 1
1208 num_channels = 1
1209 df = defer.Deferred()
1210 def sub_auth_no_cert(df):
1211 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1212 num_channels = num_channels,
1213 cbs = (self.tls_no_cert, self.dhcp_verify,
1214 self.igmp_verify, self.traffic_verify),
1215 port_list = self.generate_port_list(num_subscribers, num_channels),
1216 negative_subscriber_auth = 'all')
1217 assert_equal(test_status, False)
1218 df.callback(0)
1219 reactor.callLater(0, sub_auth_no_cert, df)
1220 return df
1221 def test_cord_subscriber_authentication_with_self_signed_certificate_and_channel_surfing(self):
1222 ### """Test subscriber to auth with Self Signed Certification and join channel"""
1223 num_subscribers = 1
1224 num_channels = 1
1225 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1226 num_channels = num_channels,
1227 cbs = (self.tls_self_signed_cert, self.dhcp_verify,
1228 self.igmp_verify, self.traffic_verify),
1229 port_list = self.generate_port_list(num_subscribers, num_channels),
1230 negative_subscriber_auth = 'all')
1231 assert_equal(test_status, True)
1232
1233 @deferred(SUBSCRIBER_TIMEOUT)
1234 def test_2_cord_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1235 ### """Test 2 subscribers to auth, one of the subscriber with invalidCertification and join channel"""
1236 num_subscribers = 2
1237 num_channels = 1
1238 df = defer.Deferred()
1239 def sub_auth_invalid_cert(df):
1240 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1241 num_channels = num_channels,
1242 cbs = (self.tls_invalid_cert, self.dhcp_verify,self.igmp_verify, self.traffic_verify),
1243 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1244 assert_equal(test_status, True)
1245 df.callback(0)
1246 reactor.callLater(0, sub_auth_invalid_cert, df)
1247 return df
1248
1249 @deferred(SUBSCRIBER_TIMEOUT)
1250 def test_2_cord_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1251 ### """Test 2 subscribers to auth, one of the subscriber with No Certification and join channel"""
1252 num_subscribers = 2
1253 num_channels = 1
1254 df = defer.Deferred()
1255 def sub_auth_no_cert(df):
1256 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1257 num_channels = num_channels,
1258 cbs = (self.tls_no_cert, self.dhcp_verify,
1259 self.igmp_verify, self.traffic_verify),
1260 port_list = self.generate_port_list(num_subscribers, num_channels),
1261 negative_subscriber_auth = 'half')
1262 assert_equal(test_status, True)
1263 df.callback(0)
1264 reactor.callLater(0, sub_auth_no_cert, df)
1265 return df
1266
1267 @deferred(SUBSCRIBER_TIMEOUT)
1268 def test_2_cord_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1269 ### """Test 2 subscribers to auth, one of the subscriber with Non CA authorized Certificate and join channel"""
1270 num_subscribers = 2
1271 num_channels = 1
1272 df = defer.Deferred()
1273 def sub_auth_no_cert(df):
1274 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1275 num_channels = num_channels,
1276 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify,
1277 self.igmp_verify, self.traffic_verify),
1278 port_list = self.generate_port_list(num_subscribers, num_channels),
1279 negative_subscriber_auth = 'half')
1280 assert_equal(test_status, True)
1281 df.callback(0)
1282 reactor.callLater(0, sub_auth_no_cert, df)
1283 return df
1284
1285 def test_cord_subscriber_authentication_with_dhcp_discover_and_channel_surfing(self):
1286 ### """Test subscriber auth success, DHCP re-discover with DHCP server and join channel"""
1287 num_subscribers = 1
1288 num_channels = 1
1289 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1290 num_channels = num_channels,
1291 cbs = (self.tls_verify, self.dhcp_discover_scenario,
1292 self.igmp_verify, self.traffic_verify),
1293 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1294 assert_equal(test_status, True)
1295
1296 def test_cord_subscriber_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1297 ### """Test subscriber auth success, DHCP client got re-booted and join channel"""
1298 num_subscribers = 1
1299 num_channels = 1
1300 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1301 num_channels = num_channels,
1302 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario,
1303 self.igmp_verify, self.traffic_verify),
1304 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1305 assert_equal(test_status, True)
1306
1307 def test_cord_subscriber_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1308 ### """Test subscriber auth , DHCP server re-boot during DHCP process and join channel"""
1309 num_subscribers = 1
1310 num_channels = 1
1311 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1312 num_channels = num_channels,
1313 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario,
1314 self.igmp_verify, self.traffic_verify),
1315 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1316 assert_equal(test_status, True)
1317
1318 def test_cord_subscriber_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1319 ### """Test subscriber auth , DHCP client rebind IP and join channel"""
1320 num_subscribers = 1
1321 num_channels = 1
1322 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1323 num_channels = num_channels,
1324 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario,
1325 self.igmp_verify, self.traffic_verify),
1326 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1327 assert_equal(test_status, True)
1328
1329
1330 def test_cord_subscriber_authentication_with_dhcp_starvation_and_channel_surfing(self):
1331 ### """Test subscriber auth , DHCP starvation and join channel"""
1332 num_subscribers = 1
1333 num_channels = 1
1334 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1335 num_channels = num_channels,
1336 cbs = (self.tls_verify, self.dhcp_starvation_scenario,
1337 self.igmp_verify, self.traffic_verify),
1338 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1339 assert_equal(test_status, True)
1340
1341 def test_cord_subscriber_authentication_with_multiple_dhcp_discover_for_same_subscriber_and_channel_surfing(self):
1342 ### """Test subscriber auth , sending same DHCP client discover multiple times and join channel"""
1343 num_subscribers = 1
1344 num_channels = 1
1345 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1346 num_channels = num_channels,
1347 cbs = (self.tls_verify, self.dhcp_same_client_multi_discovers_scenario,
1348 self.igmp_verify, self.traffic_verify),
1349 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1350 assert_equal(test_status, True)
1351
1352 def test_cord_subscriber_authentication_with_multiple_dhcp_request_for_same_subscriber_and_channel_surfing(self):
1353 ### """Test subscriber auth , same DHCP client multiple requerts times and join channel"""
1354 num_subscribers = 1
1355 num_channels = 1
1356 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1357 num_channels = num_channels,
1358 cbs = (self.tls_verify, self.dhcp_same_client_multi_request_scenario,
1359 self.igmp_verify, self.traffic_verify),
1360 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1361 assert_equal(test_status, True)
1362
1363 def test_cord_subscriber_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1364 ### """Test subscriber auth with DHCP client requesting ip and join channel"""
1365 num_subscribers = 1
1366 num_channels = 1
1367 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1368 num_channels = num_channels,
1369 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario,
1370 self.igmp_verify, self.traffic_verify),
1371 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1372 assert_equal(test_status, True)
1373
1374 def test_cord_subscriber_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1375 ### """Test subscriber auth with DHCP client request for non-offered ip and join channel"""
1376 num_subscribers = 1
1377 num_channels = 1
1378 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1379 num_channels = num_channels,
1380 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario,
1381 self.igmp_verify, self.traffic_verify),
1382 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1383 assert_equal(test_status, True)
1384
1385 def test_cord_subscriber_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1386 ### """Test subscriber auth with DHCP client requesting out of pool ip and join channel"""
1387 num_subscribers = 1
1388 num_channels = 1
1389 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1390 num_channels = num_channels,
1391 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario,
1392 self.igmp_verify, self.traffic_verify),
1393 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1394 assert_equal(test_status, True)
1395
1396
1397 def test_cord_subscriber_authentication_with_dhcp_specified_lease_time_functionality_and_channel_surfing(self):
1398 ### """Test subscriber auth with DHCP client specifying lease time and join channel"""
1399 num_subscribers = 1
1400 num_channels = 1
1401 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1402 num_channels = num_channels,
1403 cbs = (self.tls_verify, self.dhcp_client_specific_lease_scenario,
1404 self.igmp_verify, self.traffic_verify),
1405 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1406 assert_equal(test_status, True)
1407
1408 #@deferred(SUBSCRIBER_TIMEOUT)
1409 @nottest
1410 def test_1k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1411 ### """Test 1k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1412 num_subscribers = 1000
1413 num_channels = 1
1414 df = defer.Deferred()
1415 def sub_auth_invalid_cert(df):
1416 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1417 num_channels = num_channels,
1418 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1419 self.igmp_verify, self.traffic_verify),
1420 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1421 assert_equal(test_status, True)
1422 df.callback(0)
1423 reactor.callLater(0, sub_auth_invalid_cert, df)
1424 return df
1425
1426 @nottest
1427 @deferred(SUBSCRIBER_TIMEOUT)
1428 def test_1k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1429 ### """Test 1k subscribers to auth, half of the subscribers with No Certification and join channel"""
1430 num_subscribers = 1000
1431 num_channels = 1
1432 df = defer.Deferred()
1433 def sub_auth_no_cert(df):
1434 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1435 num_channels = num_channels,
1436 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1437 port_list = self.generate_port_list(num_subscribers, num_channels),
1438 negative_subscriber_auth = 'half')
1439 assert_equal(test_status, True)
1440 df.callback(0)
1441 reactor.callLater(0, sub_auth_no_cert, df)
1442 return df
1443
1444 #@deferred(SUBSCRIBER_TIMEOUT)
1445 @nottest
1446 def test_1k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1447 ### """Test 1k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1448 num_subscribers = 1000
1449 num_channels = 1
1450 df = defer.Deferred()
1451 def sub_auth_no_cert(df):
1452 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1453 num_channels = num_channels,
1454 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1455 port_list = self.generate_port_list(num_subscribers, num_channels),
1456 negative_subscriber_auth = 'half')
1457 assert_equal(test_status, True)
1458 df.callback(0)
1459 reactor.callLater(0, sub_auth_no_cert, df)
1460 return df
1461
1462 #@deferred(SUBSCRIBER_TIMEOUT)
1463 @nottest
1464 def test_5k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1465 ### """Test 5k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1466 num_subscribers = 5000
1467 num_channels = 1
1468 df = defer.Deferred()
1469 def sub_auth_invalid_cert(df):
1470 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1471 num_channels = num_channels,
1472 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1473 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1474 assert_equal(test_status, True)
1475 df.callback(0)
1476 reactor.callLater(0, sub_auth_invalid_cert, df)
1477 return df
1478
1479 #@deferred(SUBSCRIBER_TIMEOUT)
1480 @nottest
1481 def test_5k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1482 ### """Test 5k subscribers to auth, half of the subscribers with No Certification and join channel"""
1483 num_subscribers = 5000
1484 num_channels = 1
1485 df = defer.Deferred()
1486 def sub_auth_no_cert(df):
1487 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1488 num_channels = num_channels,
1489 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1490 port_list = self.generate_port_list(num_subscribers, num_channels),
1491 negative_subscriber_auth = 'half')
1492 assert_equal(test_status, True)
1493 df.callback(0)
1494 reactor.callLater(0, sub_auth_no_cert, df)
1495 return df
1496
1497 #@deferred(SUBSCRIBER_TIMEOUT)
1498 @nottest
1499 def test_5k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1500 ### """Test 5k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1501 num_subscribers = 5000
1502 num_channels = 1
1503 df = defer.Deferred()
1504 def sub_auth_no_cert(df):
1505 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1506 num_channels = num_channels,
1507 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1508 port_list = self.generate_port_list(num_subscribers, num_channels),
1509 negative_subscriber_auth = 'half')
1510 assert_equal(test_status, True)
1511 df.callback(0)
1512 reactor.callLater(0, sub_auth_no_cert, df)
1513 return df
1514
1515 #@deferred(SUBSCRIBER_TIMEOUT)
1516 @nottest
1517 def test_10k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1518 ### """Test 10k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1519 num_subscribers = 10000
1520 num_channels = 1
1521 df = defer.Deferred()
1522 def sub_auth_invalid_cert(df):
1523 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1524 num_channels = num_channels,
1525 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1526 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'onethird')
1527 assert_equal(test_status, True)
1528 df.callback(0)
1529 reactor.callLater(0, sub_auth_invalid_cert, df)
1530 return df
1531
1532 #@deferred(SUBSCRIBER_TIMEOUT)
1533 @nottest
1534 def test_10k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1535 ### """Test 10k subscribers to auth, half of the subscribers with No Certification and join channel"""
1536 num_subscribers = 10000
1537 num_channels = 1
1538 df = defer.Deferred()
1539 def sub_auth_no_cert(df):
1540 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1541 num_channels = num_channels,
1542 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1543 port_list = self.generate_port_list(num_subscribers, num_channels),
1544 negative_subscriber_auth = 'onethird')
1545 assert_equal(test_status, True)
1546 df.callback(0)
1547 reactor.callLater(0, sub_auth_no_cert, df)
1548 return df
1549
1550 #@deferred(SUBSCRIBER_TIMEOUT)
1551 @nottest
1552 def test_10k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1553 ### """Test 10k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1554 num_subscribers = 10000
1555 num_channels = 1
1556 df = defer.Deferred()
1557 def sub_auth_no_cert(df):
1558 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1559 num_channels = num_channels,
1560 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1561 port_list = self.generate_port_list(num_subscribers, num_channels),
1562 negative_subscriber_auth = 'onethird')
1563 assert_equal(test_status, False)
1564 assert_equal(test_status, True)
1565 df.callback(0)
1566 reactor.callLater(0, sub_auth_no_cert, df)
1567 return df
1568
1569 @nottest
1570 def test_1k_cord_subscribers_authentication_with_dhcp_discovers_and_channel_surfing(self):
1571 ### """Test 1k subscribers auth success, DHCP re-discover with DHCP server and join channel"""
1572 num_subscribers = 1000
1573 num_channels = 1
1574 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1575 num_channels = num_channels,
1576 cbs = (self.tls_verify, self.dhcp_discover_scenario, self.igmp_verify),
1577 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1578 assert_equal(test_status, True)
1579
1580 @nottest
1581 def test_1k_cord_subscribers_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1582 ### """Test 1k subscribers auth success, DHCP client got re-booted and join channel"""
1583 num_subscribers = 1000
1584 num_channels = 1
1585 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1586 num_channels = num_channels,
1587 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario, self.igmp_verify),
1588 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1589 assert_equal(test_status, True)
1590
1591 @nottest
1592 def test_1k_cord_subscribers_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1593 ### """Test 1k subscribers auth , DHCP server re-boot during DHCP process and join channel"""
1594 num_subscribers = 1000
1595 num_channels = 1
1596 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1597 num_channels = num_channels,
1598 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario, self.igmp_verify),
1599 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1600 assert_equal(test_status, True)
1601
1602 @nottest
1603 def test_1k_cord_subscribers_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1604 ### """Test 1k subscribers auth , DHCP client rebind IP and join channel"""
1605 num_subscribers = 1000
1606 num_channels = 1
1607 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1608 num_channels = num_channels,
1609 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario, self.igmp_verify),
1610 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1611 assert_equal(test_status, True)
1612
1613 @nottest
1614 def test_1k_cord_subscribers_authentication_with_dhcp_starvation_and_channel_surfing(self):
1615 ### """Test 1k subscribers auth , DHCP starvation and join channel"""
1616 num_subscribers = 1000
1617 num_channels = 1
1618 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1619 num_channels = num_channels,
1620 cbs = (self.tls_verify, self.dhcp_starvation_scenario, self.igmp_verify),
1621 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1622 assert_equal(test_status, True)
1623
1624 @nottest
1625 def test_1k_cord_subscribers_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1626 ### """Test 1k subscribers auth with DHCP client requesting ip and join channel"""
1627 num_subscribers = 1000
1628 num_channels = 1
1629 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1630 num_channels = num_channels,
1631 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario, self.igmp_verify),
1632 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1633 assert_equal(test_status, True)
1634
1635 @nottest
1636 def test_1k_cord_subscribers_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1637 ### """Test subscribers auth with DHCP client request for non-offered ip and join channel"""
1638 num_subscribers = 1000
1639 num_channels = 1
1640 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1641 num_channels = num_channels,
1642 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario, self.igmp_verify),
1643 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1644 assert_equal(test_status, True)
1645
1646 def test_4_cord_subscribers_join_recv_5channel(self):
1647 ###"""Test 4 subscribers join and receive for 5 channels surfing"""
1648 num_subscribers = 4
1649 num_channels = 5
1650 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1651 num_channels = num_channels,
1652 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1653 port_list = self.generate_port_list(num_subscribers, num_channels),
1654 negative_subscriber_auth = 'all')
1655 assert_equal(test_status, True)
1656
1657 def test_4_cord_subscribers_join_jump_5channel(self):
1658 ###"""Test 4 subscribers jump and receive for 5 channels surfing"""
1659 num_subscribers = 4
1660 num_channels = 5
1661 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1662 num_channels = num_channels,
1663 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1664 port_list = self.generate_port_list(num_subscribers, num_channels),
1665 negative_subscriber_auth = 'all')
1666 assert_equal(test_status, True)
1667
1668 def test_4_cord_subscribers_join_next_5channel(self):
1669 ###"""Test 4 subscribers join next for 5 channels"""
1670 num_subscribers = 4
1671 num_channels = 5
1672 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1673 num_channels = num_channels,
1674 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1675 port_list = self.generate_port_list(num_subscribers, num_channels),
1676 negative_subscriber_auth = 'all')
1677 assert_equal(test_status, True)
1678
1679 def test_10_cord_subscribers_join_recv_5channel(self):
1680 ###"""Test 10 subscribers join and receive for 5 channels surfing"""
1681 num_subscribers = 10
1682 num_channels = 5
1683 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1684 num_channels = num_channels,
1685 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1686 port_list = self.generate_port_list(num_subscribers, num_channels),
1687 negative_subscriber_auth = 'all')
1688 assert_equal(test_status, True)
1689
1690 def test_10_cord_subscribers_join_jump_5channel(self):
1691 ###"""Test 10 subscribers jump and receive for 5 channels surfing"""
1692 num_subscribers = 10
1693 num_channels = 5
1694 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1695 num_channels = num_channels,
1696 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1697 port_list = self.generate_port_list(num_subscribers, num_channels),
1698 negative_subscriber_auth = 'all')
1699 assert_equal(test_status, True)
1700
1701
1702 def test_10_cord_subscribers_join_next_5channel(self):
1703 ###"""Test 10 subscribers join next for 5 channels"""
1704 num_subscribers = 10
1705 num_channels = 5
1706 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1707 num_channels = num_channels,
1708 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1709 port_list = self.generate_port_list(num_subscribers, num_channels),
1710 negative_subscriber_auth = 'all')
1711 assert_equal(test_status, True)
1712
1713
1714
1715 def test_cord_subscriber_join_recv_100channels(self):
1716 num_subscribers = 1
1717 num_channels = 100
1718 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1719 num_channels = num_channels,
1720 cbs = (self.tls_verify, self.dhcp_verify,
1721 self.igmp_verify, self.traffic_verify),
1722 port_list = self.generate_port_list(num_subscribers, num_channels),
1723 negative_subscriber_auth = 'all')
1724 assert_equal(test_status, True)
1725
1726 def test_cord_subscriber_join_recv_400channels(self):
1727 num_subscribers = 1
1728 num_channels = 400
1729 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1730 num_channels = num_channels,
1731 cbs = (self.tls_verify, self.dhcp_verify,
1732 self.igmp_verify, self.traffic_verify),
1733 port_list = self.generate_port_list(num_subscribers, num_channels),
1734 negative_subscriber_auth = 'all')
1735 assert_equal(test_status, True)
1736
1737 def test_cord_subscriber_join_recv_800channels(self):
1738 num_subscribers = 1
1739 num_channels = 800
1740 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1741 num_channels = num_channels,
1742 cbs = (self.tls_verify, self.dhcp_verify,
1743 self.igmp_verify, self.traffic_verify),
1744 port_list = self.generate_port_list(num_subscribers, num_channels),
1745 negative_subscriber_auth = 'all')
1746 assert_equal(test_status, True)
1747
1748 def test_cord_subscriber_join_recv_1200channels(self):
1749 num_subscribers = 1
1750 num_channels = 1200
1751 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1752 num_channels = num_channels,
1753 cbs = (self.tls_verify, self.dhcp_verify,
1754 self.igmp_verify, self.traffic_verify),
1755 port_list = self.generate_port_list(num_subscribers, num_channels),
1756 negative_subscriber_auth = 'all')
1757 assert_equal(test_status, True)
1758
1759 def test_cord_subscriber_join_recv_1500channels(self):
1760 num_subscribers = 1
1761 num_channels = 1500
1762 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1763 num_channels = num_channels,
1764 cbs = (self.tls_verify, self.dhcp_verify,
1765 self.igmp_verify, self.traffic_verify),
1766 port_list = self.generate_port_list(num_subscribers, num_channels),
1767 negative_subscriber_auth = 'all')
1768 assert_equal(test_status, True)
1769
1770 def test_cord_subscriber_join_jump_100channels(self):
1771 num_subscribers = 1
1772 num_channels = 100
1773 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1774 num_channels = num_channels,
1775 cbs = (self.tls_verify, self.dhcp_jump_verify,
1776 self.igmp_jump_verify, self.traffic_verify),
1777 port_list = self.generate_port_list(num_subscribers, num_channels),
1778 negative_subscriber_auth = 'all')
1779 assert_equal(test_status, True)
1780 def test_cord_subscriber_join_jump_400channels(self):
1781 num_subscribers = 1
1782 num_channels = 400
1783 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1784 num_channels = num_channels,
1785 cbs = (self.tls_verify, self.dhcp_jump_verify,
1786 self.igmp_jump_verify, self.traffic_verify),
1787 port_list = self.generate_port_list(num_subscribers, num_channels),
1788 negative_subscriber_auth = 'all')
1789 assert_equal(test_status, True)
1790
1791 def test_cord_subscriber_join_jump_800channels(self):
1792 num_subscribers = 1
1793 num_channels = 800
1794 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1795 num_channels = num_channels,
1796 cbs = (self.tls_verify, self.dhcp_jump_verify,
1797 self.igmp_jump_verify, self.traffic_verify),
1798 port_list = self.generate_port_list(num_subscribers, num_channels),
1799 negative_subscriber_auth = 'all')
1800 assert_equal(test_status, True)
1801 def test_cord_subscriber_join_jump_1200channel(sself):
1802 num_subscribers = 1
1803 num_channels = 1200
1804 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1805 num_channels = num_channels,
1806 cbs = (self.tls_verify, self.dhcp_jump_verify,
1807 self.igmp_jump_verify, self.traffic_verify),
1808 port_list = self.generate_port_list(num_subscribers, num_channels),
1809 negative_subscriber_auth = 'all')
1810 assert_equal(test_status, True)
1811 def test_cord_subscriber_join_jump_1500channels(self):
1812 num_subscribers = 1
1813 num_channels = 1500
1814 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1815 num_channels = num_channels,
1816 cbs = (self.tls_verify, self.dhcp_jump_verify,
1817 self.igmp_jump_verify, self.traffic_verify),
1818 port_list = self.generate_port_list(num_subscribers, num_channels),
1819 negative_subscriber_auth = 'all')
1820 assert_equal(test_status, True)
1821
1822 def test_cord_subscriber_join_next_100channels(self):
1823 num_subscribers = 1
1824 num_channels = 100
1825 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1826 num_channels = num_channels,
1827 cbs = (self.tls_verify, self.dhcp_next_verify,
1828 self.igmp_next_verify, self.traffic_verify),
1829 port_list = self.generate_port_list(num_subscribers, num_channels),
1830 negative_subscriber_auth = 'all')
1831 assert_equal(test_status, True)
1832
1833 def test_cord_subscriber_join_next_400channels(self):
1834 num_subscribers = 1
1835 num_channels = 400
1836 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1837 num_channels = num_channels,
1838 cbs = (self.tls_verify, self.dhcp_next_verify,
1839 self.igmp_next_verify, self.traffic_verify),
1840 port_list = self.generate_port_list(num_subscribers, num_channels),
1841 negative_subscriber_auth = 'all')
1842 assert_equal(test_status, True)
1843
1844 def test_cord_subscriber_join_next_800channels(self):
1845 num_subscribers = 1
1846 num_channels = 800
1847 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1848 num_channels = num_channels,
1849 cbs = (self.tls_verify, self.dhcp_next_verify,
1850 self.igmp_next_verify, self.traffic_verify),
1851 port_list = self.generate_port_list(num_subscribers, num_channels),
1852 negative_subscriber_auth = 'all')
1853 assert_equal(test_status, True)
1854
1855
1856 def test_cord_subscriber_join_next_1200channels(self):
1857 num_subscribers = 1
1858 num_channels = 1200
1859 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1860 num_channels = num_channels,
1861 cbs = (self.tls_verify, self.dhcp_next_verify,
1862 self.igmp_next_verify, self.traffic_verify),
1863 port_list = self.generate_port_list(num_subscribers, num_channels),
1864 negative_subscriber_auth = 'all')
1865 assert_equal(test_status, True)
1866
1867 def test_cord_subscriber_join_next_1500channels(self):
1868 num_subscribers = 1
1869 num_channels = 1500
1870 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1871 num_channels = num_channels,
1872 cbs = (self.tls_verify, self.dhcp_next_verify,
1873 self.igmp_next_verify, self.traffic_verify),
1874 port_list = self.generate_port_list(num_subscribers, num_channels),
1875 negative_subscriber_auth = 'all')
1876 assert_equal(test_status, True)
1877
1878 @nottest
1879 def test_1k_cord_subscribers_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1880 ### """Test 1k subscribers auth with DHCP client requesting out of pool ip and join channel"""
1881 num_subscribers = 1000
1882 num_channels = 1
1883 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1884 num_channels = num_channels,
1885 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario, self.igmp_verify),
1886 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1887 assert_equal(test_status, True)
1888
1889 @nottest
1890 def test_1k_cord_subscribers_join_recv_100channel(self):
1891 ###"""Test 1k subscribers join and receive for 100 channels surfing"""
1892 num_subscribers = 1000
1893 num_channels = 100
1894 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1895 num_channels = num_channels,
1896 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1897 port_list = self.generate_port_list(num_subscribers, num_channels),
1898 negative_subscriber_auth = 'all')
1899 assert_equal(test_status, True)
1900
1901 @nottest
1902 def test_1k_cord_subscribers_join_jump_100channel(self):
1903 ###"""Test 1k subscribers jump and receive for 100 channels surfing"""
1904 num_subscribers = 1000
1905 num_channels = 100
1906 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1907 num_channels = num_channels,
1908 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1909 port_list = self.generate_port_list(num_subscribers, num_channels),
1910 negative_subscriber_auth = 'all')
1911 assert_equal(test_status, True)
1912
1913 @nottest
1914 def test_1k_cord_subscribers_join_next_100channel(self):
1915 ###"""Test 1k subscribers join next for 100 channels"""
1916 num_subscribers = 1000
1917 num_channels = 100
1918 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1919 num_channels = num_channels,
1920 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1921 port_list = self.generate_port_list(num_subscribers, num_channels),
1922 negative_subscriber_auth = 'all')
1923 assert_equal(test_status, True)
1924
1925 @nottest
1926 def test_1k_cord_subscribers_join_recv_400channel(self):
1927 ###"""Test 1k subscribers join and receive for 400 channels surfing"""
1928 num_subscribers = 1000
1929 num_channels = 400
1930 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1931 num_channels = num_channels,
1932 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1933 port_list = self.generate_port_list(num_subscribers, num_channels),
1934 negative_subscriber_auth = 'all')
1935 assert_equal(test_status, True)
1936
1937 @nottest
1938 def test_1k_cord_subscribers_join_jump_400channel(self):
1939 ###"""Test 1k subscribers jump and receive for 400 channels surfing"""
1940 num_subscribers = 1000
1941 num_channels = 400
1942 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1943 num_channels = num_channels,
1944 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1945 port_list = self.generate_port_list(num_subscribers, num_channels),
1946 negative_subscriber_auth = 'all')
1947 assert_equal(test_status, True)
1948
1949 @nottest
1950 def test_1k_cord_subscribers_join_next_400channel(self):
1951 ###"""Test 1k subscribers join next for 400 channels"""
1952 num_subscribers = 1000
1953 num_channels = 400
1954 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1955 num_channels = num_channels,
1956 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1957 port_list = self.generate_port_list(num_subscribers, num_channels),
1958 negative_subscriber_auth = 'all')
1959 assert_equal(test_status, True)
1960
1961 @nottest
1962 def test_1k_cord_subscribers_join_recv_800channel(self):
1963 ###"""Test 1k subscribers join and receive for 800 channels surfing"""
1964 num_subscribers = 1000
1965 num_channels = 800
1966 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1967 num_channels = num_channels,
1968 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1969 port_list = self.generate_port_list(num_subscribers, num_channels),
1970 negative_subscriber_auth = 'all')
1971 assert_equal(test_status, True)
1972
1973 @nottest
1974 def test_1k_cord_subscribers_join_jump_800channel(self):
1975 ###"""Test 1k subscribers jump and receive for 800 channels surfing"""
1976 num_subscribers = 1000
1977 num_channels = 800
1978 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1979 num_channels = num_channels,
1980 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1981 port_list = self.generate_port_list(num_subscribers, num_channels),
1982 negative_subscriber_auth = 'all')
1983 assert_equal(test_status, True)
1984
1985 @nottest
1986 def test_1k_cord_subscribers_join_next_800channel(self):
1987 ###"""Test 1k subscribers join next for 800 channels"""
1988 num_subscribers = 1000
1989 num_channels = 800
1990 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1991 num_channels = num_channels,
1992 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1993 port_list = self.generate_port_list(num_subscribers, num_channels),
1994 negative_subscriber_auth = 'all')
1995 assert_equal(test_status, True)
1996
1997 @nottest
1998 def test_1k_cord_subscribers_join_recv_1200channel(self):
1999 ###"""Test 1k subscribers join and receive for 1200 channels surfing"""
2000 num_subscribers = 1000
2001 num_channels = 1200
2002 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2003 num_channels = num_channels,
2004 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2005 port_list = self.generate_port_list(num_subscribers, num_channels),
2006 negative_subscriber_auth = 'all')
2007 assert_equal(test_status, True)
2008
2009 @nottest
2010 def test_1k_cord_subscribers_join_jump_1200channel(self):
2011 ###"""Test 1k subscribers jump and receive for 1200 channels surfing"""
2012 num_subscribers = 1000
2013 num_channels = 1200
2014 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2015 num_channels = num_channels,
2016 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2017 port_list = self.generate_port_list(num_subscribers, num_channels),
2018 negative_subscriber_auth = 'all')
2019 assert_equal(test_status, True)
2020
2021 @nottest
2022 def test_1k_cord_subscribers_join_next_1200channel(self):
2023 ###"""Test 1k subscribers join next for 1200 channels"""
2024 num_subscribers = 1000
2025 num_channels = 1200
2026 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2027 num_channels = num_channels,
2028 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2029 port_list = self.generate_port_list(num_subscribers, num_channels),
2030 negative_subscriber_auth = 'all')
2031 assert_equal(test_status, True)
2032
2033 @nottest
2034 def test_1k_cord_subscribers_join_recv_1500channel(self):
2035 ###"""Test 1k subscribers join and receive for 1500 channels surfing"""
2036 num_subscribers = 1000
2037 num_channels = 1500
2038 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2039 num_channels = num_channels,
2040 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2041 port_list = self.generate_port_list(num_subscribers, num_channels),
2042 negative_subscriber_auth = 'all')
2043 assert_equal(test_status, True)
2044
2045 @nottest
2046 def test_1k_cord_subscribers_join_jump_1500channel(self):
2047 ###"""Test 1k subscribers jump and receive for 1500 channels surfing"""
2048 num_subscribers = 1000
2049 num_channels = 1500
2050 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2051 num_channels = num_channels,
2052 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2053 port_list = self.generate_port_list(num_subscribers, num_channels),
2054 negative_subscriber_auth = 'all')
2055 assert_equal(test_status, True)
2056
2057 @nottest
2058 def test_1k_cord_subscribers_join_next_1500channel(self):
2059 ###"""Test 1k subscribers join next for 1500 channels"""
2060 num_subscribers = 1000
2061 num_channels = 1500
2062 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2063 num_channels = num_channels,
2064 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2065 port_list = self.generate_port_list(num_subscribers, num_channels),
2066 negative_subscriber_auth = 'all')
2067 assert_equal(test_status, True)
2068
2069 @nottest
2070 def test_5k_cord_subscribers_join_recv_100channel(self):
2071 ###"""Test 5k subscribers join and receive for 100 channels surfing"""
2072 num_subscribers = 5000
2073 num_channels = 100
2074 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2075 num_channels = num_channels,
2076 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2077 port_list = self.generate_port_list(num_subscribers, num_channels),
2078 negative_subscriber_auth = 'all')
2079 assert_equal(test_status, True)
2080
2081 @nottest
2082 def test_5k_cord_subscribers_join_jump_100channel(self):
2083 ###"""Test 5k subscribers jump and receive for 100 channels surfing"""
2084 num_subscribers = 5000
2085 num_channels = 100
2086 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2087 num_channels = num_channels,
2088 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2089 port_list = self.generate_port_list(num_subscribers, num_channels),
2090 negative_subscriber_auth = 'all')
2091 assert_equal(test_status, True)
2092
2093 @nottest
2094 def test_5k_cord_subscribers_join_next_100channel(self):
2095 ###"""Test 5k subscribers join next for 100 channels"""
2096 num_subscribers = 5000
2097 num_channels = 100
2098 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2099 num_channels = num_channels,
2100 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2101 port_list = self.generate_port_list(num_subscribers, num_channels),
2102 negative_subscriber_auth = 'all')
2103 assert_equal(test_status, True)
2104
2105 @nottest
2106 def test_5k_cord_subscribers_join_recv_400channel(self):
2107 ###"""Test 5k subscribers join and receive for 400 channels surfing"""
2108 num_subscribers = 5000
2109 num_channels = 400
2110 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2111 num_channels = num_channels,
2112 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2113 port_list = self.generate_port_list(num_subscribers, num_channels),
2114 negative_subscriber_auth = 'all')
2115 assert_equal(test_status, True)
2116
2117 @nottest
2118 def test_5k_cord_subscribers_join_jump_400channel(self):
2119 ###"""Test 5k subscribers jump and receive for 400 channels surfing"""
2120 num_subscribers = 5000
2121 num_channels = 400
2122 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2123 num_channels = num_channels,
2124 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2125 port_list = self.generate_port_list(num_subscribers, num_channels),
2126 negative_subscriber_auth = 'all')
2127 assert_equal(test_status, True)
2128
2129 @nottest
2130 def test_5k_cord_subscribers_join_next_400channel(self):
2131 ###"""Test 5k subscribers join next for 400 channels"""
2132 num_subscribers = 5000
2133 num_channels = 400
2134 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2135 num_channels = num_channels,
2136 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2137 port_list = self.generate_port_list(num_subscribers, num_channels),
2138 negative_subscriber_auth = 'all')
2139 assert_equal(test_status, True)
2140
2141 @nottest
2142 def test_5k_cord_subscribers_join_recv_800channel(self):
2143 ###"""Test 5k subscribers join and receive for 800 channels surfing"""
2144 num_subscribers = 5000
2145 num_channels = 800
2146 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2147 num_channels = num_channels,
2148 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2149 port_list = self.generate_port_list(num_subscribers, num_channels),
2150 negative_subscriber_auth = 'all')
2151 assert_equal(test_status, True)
2152
2153 @nottest
2154 def test_5k_cord_subscribers_join_jump_800channel(self):
2155 ###"""Test 5k subscribers jump and receive for 800 channels surfing"""
2156 num_subscribers = 5000
2157 num_channels = 800
2158 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2159 num_channels = num_channels,
2160 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2161 port_list = self.generate_port_list(num_subscribers, num_channels),
2162 negative_subscriber_auth = 'all')
2163 assert_equal(test_status, True)
2164
2165 @nottest
2166 def test_5k_cord_subscribers_join_next_800channel(self):
2167 ###"""Test 5k subscribers join next for 800 channels"""
2168 num_subscribers = 5000
2169 num_channels = 800
2170 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2171 num_channels = num_channels,
2172 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2173 port_list = self.generate_port_list(num_subscribers, num_channels),
2174 negative_subscriber_auth = 'all')
2175 assert_equal(test_status, True)
2176
2177 @nottest
2178 def test_5k_cord_subscribers_join_recv_1200channel(self):
2179 ###"""Test 5k subscribers join and receive for 1200 channels surfing"""
2180 num_subscribers = 5000
2181 num_channels = 1200
2182 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2183 num_channels = num_channels,
2184 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2185 port_list = self.generate_port_list(num_subscribers, num_channels),
2186 negative_subscriber_auth = 'all')
2187 assert_equal(test_status, True)
2188
2189 @nottest
2190 def test_5k_cord_subscribers_join_jump_1200channel(self):
2191 ###"""Test 5k subscribers jump and receive for 1200 channels surfing"""
2192 num_subscribers = 5000
2193 num_channels = 1200
2194 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2195 num_channels = num_channels,
2196 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2197 port_list = self.generate_port_list(num_subscribers, num_channels),
2198 negative_subscriber_auth = 'all')
2199 assert_equal(test_status, True)
2200
2201 @nottest
2202 def test_5k_cord_subscribers_join_next_1200channel(self):
2203 ###"""Test 5k subscribers join next for 1200 channels"""
2204 num_subscribers = 5000
2205 num_channels = 1200
2206 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2207 num_channels = num_channels,
2208 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2209 port_list = self.generate_port_list(num_subscribers, num_channels),
2210 negative_subscriber_auth = 'all')
2211 assert_equal(test_status, True)
2212
2213 @nottest
2214 def test_5k_cord_subscribers_join_recv_1500channel(self):
2215 ###"""Test 5k subscribers join and receive for 1500 channels surfing"""
2216 num_subscribers = 5000
2217 num_channels = 1500
2218 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2219 num_channels = num_channels,
2220 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2221 port_list = self.generate_port_list(num_subscribers, num_channels),
2222 negative_subscriber_auth = 'all')
2223 assert_equal(test_status, True)
2224
2225 @nottest
2226 def test_5k_cord_subscribers_join_jump_1500channel(self):
2227 ###"""Test 5k subscribers jump and receive for 1500 channels surfing"""
2228 num_subscribers = 5000
2229 num_channels = 1500
2230 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2231 num_channels = num_channels,
2232 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2233 port_list = self.generate_port_list(num_subscribers, num_channels),
2234 negative_subscriber_auth = 'all')
2235 assert_equal(test_status, True)
2236
2237 @nottest
2238 def test_5k_cord_subscribers_join_next_1500channel(self):
2239 ###"""Test 5k subscribers join next for 1500 channels"""
2240 num_subscribers = 5000
2241 num_channels = 1500
2242 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2243 num_channels = num_channels,
2244 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2245 port_list = self.generate_port_list(num_subscribers, num_channels),
2246 negative_subscriber_auth = 'all')
2247 assert_equal(test_status, True)
2248
2249 @nottest
2250 def test_10k_cord_subscribers_join_recv_100channel(self):
2251 ###"""Test 10k subscribers join and receive for 100 channels surfing"""
2252 num_subscribers = 10000
2253 num_channels = 100
2254 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2255 num_channels = num_channels,
2256 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2257 port_list = self.generate_port_list(num_subscribers, num_channels),
2258 negative_subscriber_auth = 'all')
2259 assert_equal(test_status, True)
2260
2261 @nottest
2262 def test_10k_cord_subscribers_join_jump_100channel(self):
2263 ###"""Test 10k subscribers jump and receive for 100 channels surfing"""
2264 num_subscribers = 10000
2265 num_channels = 100
2266 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2267 num_channels = num_channels,
2268 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2269 port_list = self.generate_port_list(num_subscribers, num_channels),
2270 negative_subscriber_auth = 'all')
2271 assert_equal(test_status, True)
2272
2273 @nottest
2274 def test_10k_cord_subscribers_join_next_100channel(self):
2275 ###"""Test 10k subscribers join next for 100 channels"""
2276 num_subscribers = 10000
2277 num_channels = 100
2278 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2279 num_channels = num_channels,
2280 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2281 port_list = self.generate_port_list(num_subscribers, num_channels),
2282 negative_subscriber_auth = 'all')
2283 assert_equal(test_status, True)
2284
2285 @nottest
2286 def test_100k_cord_subscribers_join_recv_100channel(self):
2287 ###"""Test 100k subscribers join and receive for 100 channels surfing"""
2288 num_subscribers = 100000
2289 num_channels = 100
2290 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2291 num_channels = num_channels,
2292 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2293 port_list = self.generate_port_list(num_subscribers, num_channels),
2294 negative_subscriber_auth = 'all')
2295 assert_equal(test_status, True)
2296
2297 @nottest
2298 def test_100k_cord_subscribers_join_jump_100channel(self):
2299 ###"""Test 100k subscribers jump and receive for 100 channels surfing"""
2300 num_subscribers = 100000
2301 num_channels = 100
2302 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2303 num_channels = num_channels,
2304 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2305 port_list = self.generate_port_list(num_subscribers, num_channels),
2306 negative_subscriber_auth = 'all')
2307 assert_equal(test_status, True)
2308
2309 @nottest
2310 def test_100k_cord_subscribers_join_next_100channel(self):
2311 ###"""Test 100k subscribers join next for 100 channels"""
2312 num_subscribers = 100000
2313 num_channels = 100
2314 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2315 num_channels = num_channels,
2316 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2317 port_list = self.generate_port_list(num_subscribers, num_channels),
2318 negative_subscriber_auth = 'all')
2319 assert_equal(test_status, True)
2320
2321 @nottest
2322 def test_10k_cord_subscribers_join_recv_400channel(self):
2323 ###"""Test 10k subscribers join and receive for 400 channels surfing"""
2324 num_subscribers = 10000
2325 num_channels = 400
2326 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2327 num_channels = num_channels,
2328 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2329 port_list = self.generate_port_list(num_subscribers, num_channels),
2330 negative_subscriber_auth = 'all')
2331 assert_equal(test_status, True)
2332
2333 @nottest
2334 def test_10k_cord_subscribers_join_jump_400channel(self):
2335 ###"""Test 10k subscribers jump and receive for 400 channels surfing"""
2336 num_subscribers = 10000
2337 num_channels = 400
2338 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2339 num_channels = num_channels,
2340 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2341 port_list = self.generate_port_list(num_subscribers, num_channels),
2342 negative_subscriber_auth = 'all')
2343 assert_equal(test_status, True)
2344
2345 @nottest
2346 def test_10k_cord_subscribers_join_next_400channel(self):
2347 ###"""Test 10k subscribers join next for 400 channels"""
2348 num_subscribers = 10000
2349 num_channels = 400
2350 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2351 num_channels = num_channels,
2352 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2353 port_list = self.generate_port_list(num_subscribers, num_channels),
2354 negative_subscriber_auth = 'all')
2355 assert_equal(test_status, True)
2356
2357 @nottest
2358 def test_10k_cord_subscribers_join_recv_800channel(self):
2359 ###"""Test 10k subscribers join and receive for 800 channels surfing"""
2360 num_subscribers = 10000
2361 num_channels = 800
2362 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2363 num_channels = num_channels,
2364 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2365 port_list = self.generate_port_list(num_subscribers, num_channels),
2366 negative_subscriber_auth = 'all')
2367 assert_equal(test_status, True)
2368
2369 @nottest
2370 def test_10k_cord_subscribers_join_jump_800channel(self):
2371 ###"""Test 10k subscribers jump and receive for 800 channels surfing"""
2372 num_subscribers = 10000
2373 num_channels = 800
2374 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2375 num_channels = num_channels,
2376 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2377 port_list = self.generate_port_list(num_subscribers, num_channels),
2378 negative_subscriber_auth = 'all')
2379 assert_equal(test_status, True)
2380
2381 @nottest
2382 def test_10k_cord_subscribers_join_next_800channel(self):
2383 ###"""Test 10k subscribers join next for 800 channels"""
2384 num_subscribers = 10000
2385 num_channels = 800
2386 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2387 num_channels = num_channels,
2388 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2389 port_list = self.generate_port_list(num_subscribers, num_channels),
2390 negative_subscriber_auth = 'all')
2391 assert_equal(test_status, True)
2392
2393 @nottest
2394 def test_10k_cord_subscribers_join_recv_1200channel(self):
2395 ###"""Test 10k subscribers join and receive for 1200 channels surfing"""
2396 num_subscribers = 10000
2397 num_channels = 1200
2398 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2399 num_channels = num_channels,
2400 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2401 port_list = self.generate_port_list(num_subscribers, num_channels),
2402 negative_subscriber_auth = 'all')
2403 assert_equal(test_status, True)
2404
2405 @nottest
2406 def test_10k_cord_subscribers_join_jump_1200channel(self):
2407 ###"""Test 10k subscribers jump and receive for 1200 channels surfing"""
2408 num_subscribers = 10000
2409 num_channels = 1200
2410 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2411 num_channels = num_channels,
2412 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2413 port_list = self.generate_port_list(num_subscribers, num_channels),
2414 negative_subscriber_auth = 'all')
2415 assert_equal(test_status, True)
2416
2417 @nottest
2418 def test_10k_cord_subscribers_join_next_1200channel(self):
2419 ###"""Test 10k subscribers join next for 1200 channels"""
2420 num_subscribers = 10000
2421 num_channels = 1200
2422 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2423 num_channels = num_channels,
2424 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2425 port_list = self.generate_port_list(num_subscribers, num_channels),
2426 negative_subscriber_auth = 'all')
2427 assert_equal(test_status, True)
2428
2429 @nottest
2430 def test_10k_cord_subscribers_join_recv_1500channel(self):
2431 ###"""Test 10k subscribers join and receive for 1500 channels surfing"""
2432 num_subscribers = 10000
2433 num_channels = 1500
2434 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2435 num_channels = num_channels,
2436 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2437 port_list = self.generate_port_list(num_subscribers, num_channels),
2438 negative_subscriber_auth = 'all')
2439 assert_equal(test_status, True)
2440
2441 @nottest
2442 def test_10k_cord_subscribers_join_jump_1500channel(self):
2443 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2444 num_subscribers = 10000
2445 num_channels = 1500
2446 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2447 num_channels = num_channels,
2448 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2449 port_list = self.generate_port_list(num_subscribers, num_channels),
2450 negative_subscriber_auth = 'all')
2451 assert_equal(test_status, True)
2452
2453 @nottest
2454 def test_10k_cord_subscribers_join_next_1500channel(self):
2455 ###"""Test 10k subscribers join next for 1500 channels"""
2456 num_subscribers = 10000
2457 num_channels = 1500
2458 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2459 num_channels = num_channels,
2460 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2461 port_list = self.generate_port_list(num_subscribers, num_channels),
2462 negative_subscriber_auth = 'all')
2463 assert_equal(test_status, True)
2464
2465 @nottest
2466 def test_100k_cord_subscribers_join_recv_1500channel(self):
2467 ###"""Test 100k subscribers join and receive for 1500 channels surfing"""
2468 num_subscribers = 100000
2469 num_channels = 1500
2470 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2471 num_channels = num_channels,
2472 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2473 port_list = self.generate_port_list(num_subscribers, num_channels),
2474 negative_subscriber_auth = 'all')
2475 assert_equal(test_status, True)
2476
2477 @nottest
2478 def test_100k_cord_subscribers_join_jump_1500channel(self):
2479 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2480 num_subscribers = 100000
2481 num_channels = 1500
2482 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2483 num_channels = num_channels,
2484 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2485 port_list = self.generate_port_list(num_subscribers, num_channels),
2486 negative_subscriber_auth = 'all')
2487 assert_equal(test_status, True)
2488
2489 @nottest
2490 def test_100k_cord_subscribers_join_next_1500channel(self):
2491 ###"""Test 10k subscribers join next for 1500 channels"""
2492 num_subscribers = 100000
2493 num_channels = 1500
2494 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2495 num_channels = num_channels,
2496 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2497 port_list = self.generate_port_list(num_subscribers, num_channels),
2498 negative_subscriber_auth = 'all')
2499 assert_equal(test_status, True)