blob: f1e310dcbd039c61debf24aad475b48ae04e7ddd [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
A.R Karthick517f7812017-05-18 11:22:46 -0700104 def channel_join_next(self, delay = 2, leave_flag = True):
A R Karthickb7e80902016-05-17 09:38:31 -0700105 '''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
A.R Karthick517f7812017-05-18 11:22:46 -0700110 chan, join_time = self.join_next(leave_flag = leave_flag)
A R Karthickb7e80902016-05-17 09:38:31 -0700111 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
A.R Karthick517f7812017-05-18 11:22:46 -0700214 leave_flag = True
A R Karthick338268f2016-06-21 17:12:13 -0700215 num_channels = 0
216 recv_timeout = False
A R Karthick4e0c0912016-08-17 16:57:42 -0700217 onos_restartable = bool(int(os.getenv('ONOS_RESTART', 0)))
A R Karthickb7e80902016-05-17 09:38:31 -0700218
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700219 INTF_TX_DEFAULT = 'veth2'
220 INTF_RX_DEFAULT = 'veth0'
221 SUBSCRIBER_TIMEOUT = 300
222
223 CLIENT_CERT = """-----BEGIN CERTIFICATE-----
224MIICuDCCAiGgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
225CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
226IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
227RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwNjA2MjExMjI3WhcN
228MTcwNjAxMjExMjI3WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
229BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
230hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
231gYEAwvXiSzb9LZ6c7uNziUfKvoHO7wu/uiFC5YUpXbmVGuGZizbVrny0xnR85Dfe
232+9R4diansfDhIhzOUl1XjN3YDeSS9OeF5YWNNE8XDhlz2d3rVzaN6hIhdotBkUjg
233rUewjTg5OFR31QEyG3v8xR3CLgiE9xQELjZbSA07pD79zuUCAwEAAaNPME0wEwYD
234VR0lBAwwCgYIKwYBBQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5l
235eGFtcGxlLmNvbS9leGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOBgQDAjkrY
2366tDChmKbvr8w6Du/t8vHjTCoCIocHTN0qzWOeb1YsAGX89+TrWIuO1dFyYd+Z0KC
237PDKB5j/ygml9Na+AklSYAVJIjvlzXKZrOaPmhZqDufi+rXWti/utVqY4VMW2+HKC
238nXp37qWeuFLGyR1519Y1d6F/5XzqmvbwURuEug==
239-----END CERTIFICATE-----"""
240
241 CLIENT_CERT_INVALID = '''-----BEGIN CERTIFICATE-----
242MIIDvTCCAqWgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMCVVMx
243CzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTb21ld2hlcmUxEzARBgNVBAoTCkNpZW5h
244IEluYy4xHjAcBgkqhkiG9w0BCQEWD2FkbWluQGNpZW5hLmNvbTEmMCQGA1UEAxMd
245RXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwMzExMTg1MzM2WhcN
246MTcwMzA2MTg1MzM2WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNV
247BAoTCkNpZW5hIEluYy4xFzAVBgNVBAMUDnVzZXJAY2llbmEuY29tMR0wGwYJKoZI
248hvcNAQkBFg51c2VyQGNpZW5hLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
249AQoCggEBAOxemcBsPn9tZsCa5o2JA6sQDC7A6JgCNXXl2VFzKLNNvB9PS6D7ZBsQ
2505An0zEDMNzi51q7lnrYg1XyiE4S8FzMGAFr94RlGMQJUbRD9V/oqszMX4k++iAOK
251tIA1gr3x7Zi+0tkjVSVzXTmgNnhChAamdMsjYUG5+CY9WAicXyy+VEV3zTphZZDR
252OjcjEp4m/TSXVPYPgYDXI40YZKX5BdvqykWtT/tIgZb48RS1NPyN/XkCYzl3bv21
253qx7Mc0fcEbsJBIIRYTUkfxnsilcnmLxSYO+p+DZ9uBLBzcQt+4Rd5pLSfi21WM39
2542Z2oOi3vs/OYAPAqgmi2JWOv3mePa/8CAwEAAaNPME0wEwYDVR0lBAwwCgYIKwYB
255BQUHAwIwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3d3dy5leGFtcGxlLmNvbS9l
256eGFtcGxlX2NhLmNybDANBgkqhkiG9w0BAQUFAAOCAQEALBzMPDTIB6sLyPl0T6JV
257MjOkyldAVhXWiQsTjaGQGJUUe1cmUJyZbUZEc13MygXMPOM4x7z6VpXGuq1c/Vxn
258VzQ2fNnbJcIAHi/7G8W5/SQfPesIVDsHTEc4ZspPi5jlS/MVX3HOC+BDbOjdbwqP
259RX0JEr+uOyhjO+lRxG8ilMRACoBUbw1eDuVDoEBgErSUC44pq5ioDw2xelc+Y6hQ
260dmtYwfY0DbvwxHtA495frLyPcastDiT/zre7NL51MyUDPjjYjghNQEwvu66IKbQ3
261T1tJBrgI7/WI+dqhKBFolKGKTDWIHsZXQvZ1snGu/FRYzg1l+R/jT8cRB9BDwhUt
262yg==
263-----END CERTIFICATE-----'''
264
A R Karthickb7e80902016-05-17 09:38:31 -0700265 @classmethod
A R Karthickd44cea12016-07-20 12:16:41 -0700266 def load_device_id(cls):
A R Karthickb03cecd2016-07-27 10:27:55 -0700267 '''Configure the device id'''
268 did = OnosCtrl.get_device_id()
A R Karthickd44cea12016-07-20 12:16:41 -0700269 #Set the default config
270 cls.device_id = did
271 cls.device_dict = { "devices" : {
272 "{}".format(did) : {
273 "basic" : {
274 "driver" : "pmc-olt"
275 }
276 }
277 },
278 }
279 return did
280
281 @classmethod
A R Karthickb7e80902016-05-17 09:38:31 -0700282 def setUpClass(cls):
283 '''Load the OLT config and activate relevant apps'''
A R Karthick0f6b6842016-12-06 17:17:44 -0800284 dids = OnosCtrl.get_device_ids()
285 device_map = {}
286 for did in dids:
287 device_map[did] = { 'basic' : { 'driver' : 'pmc-olt' } }
288 network_cfg = {}
289 network_cfg = { 'devices' : device_map }
A R Karthick4b72d4b2016-06-15 11:09:17 -0700290 ## Restart ONOS with cpqd driver config for OVS
291 cls.start_onos(network_cfg = network_cfg)
A R Karthickb7e80902016-05-17 09:38:31 -0700292 cls.install_app_table()
A R Karthickb7e80902016-05-17 09:38:31 -0700293 cls.olt = OltConfig(olt_conf_file = cls.olt_conf_file)
A R Karthick0f6b6842016-12-06 17:17:44 -0800294 OnosCtrl.cord_olt_config(cls.olt)
A R Karthickb03cecd2016-07-27 10:27:55 -0700295 cls.port_map, cls.port_list = cls.olt.olt_port_map()
A R Karthick0f6b6842016-12-06 17:17:44 -0800296 cls.switches = cls.port_map['switches']
297 cls.num_ports = cls.port_map['num_ports']
298 if cls.num_ports > 1:
299 cls.num_ports -= 1 ##account for the tx port
A R Karthickb7e80902016-05-17 09:38:31 -0700300 cls.activate_apps(cls.apps + cls.olt_apps)
301
302 @classmethod
303 def tearDownClass(cls):
304 '''Deactivate the olt apps and restart OVS back'''
305 apps = cls.olt_apps + ( cls.table_app,)
306 for app in apps:
307 onos_ctrl = OnosCtrl(app)
308 onos_ctrl.deactivate()
A R Karthicke0f33fa2016-06-22 13:36:02 -0700309 cls.start_onos(network_cfg = {})
A R Karthicke5939f02016-11-16 12:08:07 -0800310 cls.install_app_igmp()
A R Karthickb7e80902016-05-17 09:38:31 -0700311
312 @classmethod
313 def activate_apps(cls, apps):
314 for app in apps:
315 onos_ctrl = OnosCtrl(app)
316 status, _ = onos_ctrl.activate()
317 assert_equal(status, True)
318 time.sleep(2)
319
320 @classmethod
321 def install_app_table(cls):
322 ##Uninstall the existing app if any
323 OnosCtrl.uninstall_app(cls.table_app)
324 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700325 log_test.info('Installing the multi table app %s for subscriber test' %(cls.table_app_file))
A R Karthickb7e80902016-05-17 09:38:31 -0700326 OnosCtrl.install_app(cls.table_app_file)
327 time.sleep(3)
A R Karthickedab01c2016-09-08 14:05:44 -0700328 #onos_ctrl = OnosCtrl(cls.vtn_app)
329 #onos_ctrl.deactivate()
A R Karthickb7e80902016-05-17 09:38:31 -0700330
331 @classmethod
A R Karthicke5939f02016-11-16 12:08:07 -0800332 def install_app_igmp(cls):
A R Karthickb7e80902016-05-17 09:38:31 -0700333 ##Uninstall the table app on class exit
334 OnosCtrl.uninstall_app(cls.table_app)
335 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700336 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 -0700337 OnosCtrl.install_app(cls.app_file)
A R Karthickedab01c2016-09-08 14:05:44 -0700338 #onos_ctrl = OnosCtrl(cls.vtn_app)
339 #onos_ctrl.activate()
A R Karthickb7e80902016-05-17 09:38:31 -0700340
341 @classmethod
342 def start_onos(cls, network_cfg = None):
A R Karthicka478df42016-07-27 16:51:08 -0700343 if cls.onos_restartable is False:
A R Karthick76a497a2017-04-12 10:59:39 -0700344 log_test.info('ONOS restart is disabled. Skipping ONOS restart')
A R Karthick65c4d722016-07-18 14:20:17 -0700345 return
A R Karthickb7e80902016-05-17 09:38:31 -0700346 if network_cfg is None:
A R Karthick4b72d4b2016-06-15 11:09:17 -0700347 network_cfg = cls.device_dict
A R Karthickb7e80902016-05-17 09:38:31 -0700348
349 if type(network_cfg) is tuple:
350 res = []
351 for v in network_cfg:
352 res += v.items()
353 config = dict(res)
354 else:
355 config = network_cfg
A R Karthick76a497a2017-04-12 10:59:39 -0700356 log_test.info('Restarting ONOS with new network configuration')
A R Karthick338268f2016-06-21 17:12:13 -0700357 return cord_test_onos_restart(config = config)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700358
359 @classmethod
360 def remove_onos_config(cls):
361 try:
362 os.unlink('{}/network-cfg.json'.format(cls.onos_config_path))
363 except: pass
A R Karthickb7e80902016-05-17 09:38:31 -0700364
365 @classmethod
366 def start_cpqd(cls, mac = '00:11:22:33:44:55'):
367 dpid = mac.replace(':', '')
368 cpqd_file = os.sep.join( (cls.cpqd_path, 'cpqd.sh') )
369 cpqd_cmd = '{} {}'.format(cpqd_file, dpid)
370 ret = os.system(cpqd_cmd)
371 assert_equal(ret, 0)
372 time.sleep(10)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700373 device_id = 'of:{}{}'.format('0'*4, dpid)
374 return device_id
A R Karthickb7e80902016-05-17 09:38:31 -0700375
376 @classmethod
377 def start_ovs(cls):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700378 ovs_file = os.sep.join( (cls.ovs_path, 'of-bridge.sh') )
A R Karthickb7e80902016-05-17 09:38:31 -0700379 ret = os.system(ovs_file)
380 assert_equal(ret, 0)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700381 time.sleep(30)
A R Karthickb7e80902016-05-17 09:38:31 -0700382
A R Karthicka013a272016-08-16 16:40:19 -0700383 @classmethod
384 def ovs_cleanup(cls):
385 ##For every test case, delete all the OVS groups
386 cmd = 'ovs-ofctl del-groups br-int -OOpenFlow11 >/dev/null 2>&1'
A R Karthicka013a272016-08-16 16:40:19 -0700387 try:
A.R Karthick98fc7cf2017-05-17 14:39:46 -0700388 cord_test_shell(cmd)
389 ##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 -0700390 os.system(cmd)
A.R Karthick98fc7cf2017-05-17 14:39:46 -0700391 finally:
392 return
A R Karthicka013a272016-08-16 16:40:19 -0700393
A R Karthickb7e80902016-05-17 09:38:31 -0700394 def onos_aaa_load(self):
395 if self.aaa_loaded:
396 return
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700397 aaa_dict = {'apps' : { 'org.opencord.aaa' : { 'AAA' : { 'radiusSecret': 'radius_password',
398 'radiusIp': '172.17.0.2' } } } }
A R Karthickb7e80902016-05-17 09:38:31 -0700399 radius_ip = os.getenv('ONOS_AAA_IP') or '172.17.0.2'
A.R Karthicka6c88fd2017-03-13 09:29:41 -0700400 aaa_dict['apps']['org.opencord.aaa']['AAA']['radiusIp'] = radius_ip
401 self.onos_load_config('org.opencord.aaa', aaa_dict)
A R Karthickb7e80902016-05-17 09:38:31 -0700402 self.aaa_loaded = True
403
404 def onos_dhcp_table_load(self, config = None):
405 dhcp_dict = {'apps' : { 'org.onosproject.dhcp' : { 'dhcp' : copy.copy(self.dhcp_server_config) } } }
406 dhcp_config = dhcp_dict['apps']['org.onosproject.dhcp']['dhcp']
407 if config:
408 for k in config.keys():
409 if dhcp_config.has_key(k):
410 dhcp_config[k] = config[k]
411 self.onos_load_config('org.onosproject.dhcp', dhcp_dict)
412
413 def onos_load_config(self, app, config):
414 status, code = OnosCtrl.config(config)
415 if status is False:
A R Karthick76a497a2017-04-12 10:59:39 -0700416 log_test.info('JSON config request for app %s returned status %d' %(app, code))
A R Karthickb7e80902016-05-17 09:38:31 -0700417 assert_equal(status, True)
418 time.sleep(2)
419
420 def dhcp_sndrcv(self, dhcp, update_seed = False):
421 cip, sip = dhcp.discover(update_seed = update_seed)
422 assert_not_equal(cip, None)
423 assert_not_equal(sip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700424 log_test.info('Got dhcp client IP %s from server %s for mac %s' %
A R Karthickb7e80902016-05-17 09:38:31 -0700425 (cip, sip, dhcp.get_mac(cip)[0]))
426 return cip,sip
427
428 def dhcp_request(self, subscriber, seed_ip = '10.10.10.1', update_seed = False):
429 config = {'startip':'10.10.10.20', 'endip':'10.10.10.200',
430 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
431 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
432 self.onos_dhcp_table_load(config)
433 dhcp = DHCPTest(seed_ip = seed_ip, iface = subscriber.iface)
434 cip, sip = self.dhcp_sndrcv(dhcp, update_seed = update_seed)
435 return cip, sip
436
437 def recv_channel_cb(self, pkt):
438 ##First verify that we have received the packet for the joined instance
439 chan = self.subscriber.caddr(pkt[IP].dst)
440 assert_equal(chan in self.subscriber.join_map.keys(), True)
441 recv_time = monotonic.monotonic() * 1000000
442 join_time = self.subscriber.join_map[chan][self.subscriber.STATS_JOIN].start
443 delta = recv_time - join_time
444 self.subscriber.join_rx_stats.update(packets=1, t = delta, usecs = True)
445 self.subscriber.channel_update(chan, self.subscriber.STATS_RX, 1, t = delta)
A R Karthick76a497a2017-04-12 10:59:39 -0700446 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 -0700447 self.test_status = True
448
A R Karthick65c4d722016-07-18 14:20:17 -0700449 def traffic_verify(self, subscriber):
450 if subscriber.has_service('TRAFFIC'):
451 url = 'http://www.google.com'
452 resp = requests.get(url)
453 self.test_status = resp.ok
454 if resp.ok == False:
A R Karthick76a497a2017-04-12 10:59:39 -0700455 log_test.info('Subscriber %s failed get from url %s with status code %d'
A R Karthick65c4d722016-07-18 14:20:17 -0700456 %(subscriber.name, url, resp.status_code))
457 else:
A R Karthick76a497a2017-04-12 10:59:39 -0700458 log_test.info('GET request from %s succeeded for subscriber %s'
A R Karthick65c4d722016-07-18 14:20:17 -0700459 %(url, subscriber.name))
A R Karthicka013a272016-08-16 16:40:19 -0700460 return self.test_status
A R Karthick65c4d722016-07-18 14:20:17 -0700461
A R Karthickb7e80902016-05-17 09:38:31 -0700462 def tls_verify(self, subscriber):
463 if subscriber.has_service('TLS'):
464 time.sleep(2)
A R Karthick4b72d4b2016-06-15 11:09:17 -0700465 tls = TLSAuthTest(intf = subscriber.rx_intf)
A R Karthick76a497a2017-04-12 10:59:39 -0700466 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700467 tls.runTest()
468 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700469 return self.test_status
470 else:
471 self.test_status = True
472 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700473
474 def dhcp_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700475 if subscriber.has_service('DHCP'):
476 cip, sip = self.dhcp_request(subscriber, update_seed = True)
A R Karthick76a497a2017-04-12 10:59:39 -0700477 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700478 subscriber.src_list = [cip]
479 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700480 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700481 else:
482 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
483 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700484 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700485
486 def dhcp_jump_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700487 if subscriber.has_service('DHCP'):
488 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.200.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700489 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700490 subscriber.src_list = [cip]
491 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700492 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700493 else:
494 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
495 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700496 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700497
498 def dhcp_next_verify(self, subscriber):
A R Karthick4b72d4b2016-06-15 11:09:17 -0700499 if subscriber.has_service('DHCP'):
500 cip, sip = self.dhcp_request(subscriber, seed_ip = '10.10.150.1')
A R Karthick76a497a2017-04-12 10:59:39 -0700501 log_test.info('Subscriber %s got client ip %s from server %s' %(subscriber.name, cip, sip))
A R Karthick4b72d4b2016-06-15 11:09:17 -0700502 subscriber.src_list = [cip]
503 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700504 return self.test_status
A R Karthick4b72d4b2016-06-15 11:09:17 -0700505 else:
506 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
507 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700508 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700509
510 def igmp_verify(self, subscriber):
511 chan = 0
512 if subscriber.has_service('IGMP'):
A R Karthick338268f2016-06-21 17:12:13 -0700513 ##We wait for all the subscribers to join before triggering leaves
514 if subscriber.rx_port > 1:
515 time.sleep(5)
516 subscriber.channel_join(chan, delay = 0)
517 self.num_joins += 1
518 while self.num_joins < self.num_subscribers:
519 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700520 log_test.info('All subscribers have joined the channel')
A R Karthick338268f2016-06-21 17:12:13 -0700521 for i in range(10):
522 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
A R Karthick76a497a2017-04-12 10:59:39 -0700523 log_test.info('Leaving channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700524 subscriber.channel_leave(chan)
A R Karthick338268f2016-06-21 17:12:13 -0700525 time.sleep(5)
A R Karthick76a497a2017-04-12 10:59:39 -0700526 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 -0700527 #Should not receive packets for this subscriber
528 self.recv_timeout = True
529 subscriber.recv_timeout = True
530 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 10)
531 subscriber.recv_timeout = False
532 self.recv_timeout = False
A R Karthick76a497a2017-04-12 10:59:39 -0700533 log_test.info('Joining channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthick338268f2016-06-21 17:12:13 -0700534 subscriber.channel_join(chan, delay = 0)
A R Karthickb7e80902016-05-17 09:38:31 -0700535 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700536 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700537
538 def igmp_jump_verify(self, subscriber):
539 if subscriber.has_service('IGMP'):
540 for i in xrange(subscriber.num):
A R Karthick76a497a2017-04-12 10:59:39 -0700541 log_test.info('Subscriber %s jumping channel' %subscriber.name)
A R Karthickb7e80902016-05-17 09:38:31 -0700542 chan = subscriber.channel_jump(delay=0)
543 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count = 1)
A R Karthick76a497a2017-04-12 10:59:39 -0700544 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700545 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700546 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 -0700547 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700548 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700549
550 def igmp_next_verify(self, subscriber):
551 if subscriber.has_service('IGMP'):
552 for i in xrange(subscriber.num):
553 if i:
A.R Karthick517f7812017-05-18 11:22:46 -0700554 chan = subscriber.channel_join_next(delay=0, leave_flag = self.leave_flag)
A R Karthickb7e80902016-05-17 09:38:31 -0700555 else:
556 chan = subscriber.channel_join(i, delay=0)
A R Karthick76a497a2017-04-12 10:59:39 -0700557 log_test.info('Joined next channel %d for subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700558 subscriber.channel_receive(chan, cb = subscriber.recv_channel_cb, count=1)
A R Karthick76a497a2017-04-12 10:59:39 -0700559 log_test.info('Verified receive for channel %d, subscriber %s' %(chan, subscriber.name))
A R Karthickb7e80902016-05-17 09:38:31 -0700560 time.sleep(3)
A R Karthick76a497a2017-04-12 10:59:39 -0700561 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 -0700562 self.test_status = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700563 return self.test_status
A R Karthickb7e80902016-05-17 09:38:31 -0700564
565 def generate_port_list(self, subscribers, channels):
566 return self.port_list[:subscribers]
567
568 def subscriber_load(self, create = True, num = 10, num_channels = 1, channel_start = 0, port_list = []):
569 '''Load the subscriber from the database'''
A R Karthick4b72d4b2016-06-15 11:09:17 -0700570 self.subscriber_db = SubscriberDB(create = create, services = self.test_services)
A R Karthickb7e80902016-05-17 09:38:31 -0700571 if create is True:
572 self.subscriber_db.generate(num)
573 self.subscriber_info = self.subscriber_db.read(num)
574 self.subscriber_list = []
575 if not port_list:
576 port_list = self.generate_port_list(num, num_channels)
577
578 index = 0
579 for info in self.subscriber_info:
A.R Karthick95d044e2016-06-10 18:44:36 -0700580 self.subscriber_list.append(Subscriber(name=info['Name'],
A R Karthickb7e80902016-05-17 09:38:31 -0700581 service=info['Service'],
582 port_map = self.port_map,
583 num=num_channels,
584 channel_start = channel_start,
585 tx_port = port_list[index][0],
586 rx_port = port_list[index][1]))
587 if num_channels > 1:
588 channel_start += num_channels
589 index += 1
590
591 #load the ssm list for all subscriber channels
592 igmpChannel = IgmpChannel()
593 ssm_groups = map(lambda sub: sub.channels, self.subscriber_list)
594 ssm_list = reduce(lambda ssm1, ssm2: ssm1+ssm2, ssm_groups)
595 igmpChannel.igmp_load_ssm_config(ssm_list)
596
A.R Karthick95d044e2016-06-10 18:44:36 -0700597 def subscriber_join_verify( self, num_subscribers = 10, num_channels = 1,
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700598 channel_start = 0, cbs = None, port_list = [], negative_subscriber_auth = None):
A R Karthickb7e80902016-05-17 09:38:31 -0700599 self.test_status = False
A R Karthicka013a272016-08-16 16:40:19 -0700600 self.ovs_cleanup()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700601 subscribers_count = num_subscribers
602 sub_loop_count = num_subscribers
A R Karthickb7e80902016-05-17 09:38:31 -0700603 self.subscriber_load(create = True, num = num_subscribers,
604 num_channels = num_channels, channel_start = channel_start, port_list = port_list)
605 self.onos_aaa_load()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700606 self.thread_pool = ThreadPool(min(100, subscribers_count), queue_size=1, wait_timeout=1)
607
A R Karthick338268f2016-06-21 17:12:13 -0700608 chan_leave = False #for single channel, multiple subscribers
A R Karthicke237aee2016-12-01 17:46:43 -0800609 if cbs is None:
A R Karthick65c4d722016-07-18 14:20:17 -0700610 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
A R Karthick338268f2016-06-21 17:12:13 -0700611 chan_leave = True
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700612 cbs_negative = cbs
A R Karthickb7e80902016-05-17 09:38:31 -0700613 for subscriber in self.subscriber_list:
614 subscriber.start()
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700615 if negative_subscriber_auth is 'half' and sub_loop_count%2 is not 0:
616 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
617 elif negative_subscriber_auth is 'onethird' and sub_loop_count%3 is not 0:
618 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify, self.traffic_verify)
619 else:
620 cbs = cbs_negative
621 sub_loop_count = sub_loop_count - 1
A R Karthickb7e80902016-05-17 09:38:31 -0700622 pool_object = subscriber_pool(subscriber, cbs)
623 self.thread_pool.addTask(pool_object.pool_cb)
624 self.thread_pool.cleanUpThreads()
625 for subscriber in self.subscriber_list:
626 subscriber.stop()
A R Karthick338268f2016-06-21 17:12:13 -0700627 if chan_leave is True:
628 subscriber.channel_leave(0)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700629 subscribers_count = 0
A R Karthickb7e80902016-05-17 09:38:31 -0700630 return self.test_status
631
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700632 def tls_invalid_cert(self, subscriber):
633 if subscriber.has_service('TLS'):
634 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700635 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700636 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_INVALID)
637 tls.runTest()
638 if tls.failTest == True:
639 self.test_status = False
640 return self.test_status
641 else:
642 self.test_status = True
643 return self.test_status
644
645 def tls_no_cert(self, subscriber):
646 if subscriber.has_service('TLS'):
647 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700648 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700649 tls = TLSAuthTest(client_cert = '')
650 tls.runTest()
651 if tls.failTest == True:
652 self.test_status = False
653 return self.test_status
654 else:
655 self.test_status = True
656 return self.test_status
657
658 def tls_self_signed_cert(self, subscriber):
659 if subscriber.has_service('TLS'):
660 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700661 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700662 tls = TLSAuthTest(client_cert = self.CLIENT_CERT)
663 tls.runTest()
664 if tls.failTest == False:
665 self.test_status = True
666 return self.test_status
667 else:
668 self.test_status = True
669 return self.test_status
670
671 def tls_non_ca_authrized_cert(self, subscriber):
672 if subscriber.has_service('TLS'):
673 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700674 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700675 tls = TLSAuthTest(client_cert = self.CLIENT_CERT_NON_CA_AUTHORIZED)
676 tls.runTest()
677 if tls.failTest == False:
678 self.test_status = True
679 return self.test_status
680 else:
681 self.test_status = True
682 return self.test_status
683
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700684 def tls_Nsubscribers_use_same_valid_cert(self, subscriber):
685 if subscriber.has_service('TLS'):
686 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700687 log_test.info('Running subscriber %s tls auth test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700688 num_users = 3
689 for i in xrange(num_users):
690 tls = TLSAuthTest(intf = 'veth{}'.format(i*2))
691 tls.runTest()
692 if tls.failTest == False:
693 self.test_status = True
694 return self.test_status
695 else:
696 self.test_status = True
697 return self.test_status
698
699 def dhcp_discover_scenario(self, subscriber):
700 if subscriber.has_service('DHCP'):
701 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700702 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700703 t1 = self.subscriber_dhcp_1release()
704 self.test_status = True
705 return self.test_status
706 else:
707 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
708 self.test_status = True
709 return self.test_status
710
711 def subscriber_dhcp_1release(self, iface = INTF_RX_DEFAULT):
A R Karthick76a497a2017-04-12 10:59:39 -0700712 config = {'startip':'10.10.100.20', 'endip':'10.10.100.21',
713 'ip':'10.10.100.2', 'mac': "ca:fe:ca:fe:8a:fe",
714 'subnet': '255.255.255.0', 'broadcast':'10.10.100.255', 'router':'10.10.100.1'}
715 self.onos_dhcp_table_load(config)
716 self.dhcp = DHCPTest(seed_ip = '10.10.100.10', iface = iface)
717 cip, sip = self.send_recv()
718 log_test.info('Releasing ip %s to server %s' %(cip, sip))
719 assert_equal(self.dhcp.release(cip), True)
720 log_test.info('Triggering DHCP discover again after release')
721 cip2, sip2 = self.send_recv(update_seed = True)
722 log_test.info('Verifying released IP was given back on rediscover')
723 assert_equal(cip, cip2)
724 log_test.info('Test done. Releasing ip %s to server %s' %(cip2, sip2))
725 assert_equal(self.dhcp.release(cip2), True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700726
727 def dhcp_client_reboot_scenario(self, subscriber):
728 if subscriber.has_service('DHCP'):
729 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700730 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700731 tl = self.subscriber_dhcp_client_request_after_reboot()
732 self.test_status = True
733 return self.test_status
734 else:
735 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
736 self.test_status = True
737 return self.test_status
738
739 def subscriber_dhcp_client_request_after_reboot(self, iface = INTF_RX_DEFAULT):
740 #''' Client sends DHCP Request after reboot.'''
741
742 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
743 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
744 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
745 self.onos_dhcp_table_load(config)
746 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
747 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700748 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700749 (cip, sip, mac) )
750
A R Karthick76a497a2017-04-12 10:59:39 -0700751 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 -0700752
753 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700754 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 -0700755 assert_not_equal(cip, None)
756
757 else:
758 new_cip, new_sip = self.dhcp.only_request(cip, mac)
759 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700760 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700761 os.system('ifconfig '+iface+' down')
A R Karthick76a497a2017-04-12 10:59:39 -0700762 log_test.info('Client goes down.')
763 log_test.info('Delay for 5 seconds.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700764
765 time.sleep(5)
766
767 os.system('ifconfig '+iface+' up')
A R Karthick76a497a2017-04-12 10:59:39 -0700768 log_test.info('Client is up now.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700769
770 new_cip, new_sip = self.dhcp.only_request(cip, mac)
771 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700772 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700773 assert_not_equal(new_cip, None)
774 elif new_cip != None:
A R Karthick76a497a2017-04-12 10:59:39 -0700775 log_test.info("Got DHCP ACK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700776
777 def dhcp_client_renew_scenario(self, subscriber):
778 if subscriber.has_service('DHCP'):
779 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700780 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700781 tl = self.subscriber_dhcp_client_renew_time()
782 self.test_status = True
783 return self.test_status
784 else:
785 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
786 self.test_status = True
787 return self.test_status
788
789 def subscriber_dhcp_client_renew_time(self, iface = INTF_RX_DEFAULT):
790 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
791 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
792 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
793 self.onos_dhcp_table_load(config)
794 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
795 cip, sip, mac , lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700796 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700797 (cip, sip, mac) )
798
A R Karthick76a497a2017-04-12 10:59:39 -0700799 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 -0700800 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700801 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 -0700802 assert_not_equal(cip, None)
803 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700804 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700805 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, renew_time = True)
806 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700807 log_test.info("Client 's Renewal time is :%s",lval)
808 log_test.info("Generating delay till renewal time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700809 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700810 log_test.info("Client Sending Unicast DHCP request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700811 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac, unicast = True)
812 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700813 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700814 (latest_cip, mac, latest_sip) )
815
816 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700817 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700818 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700819 log_test.info("Got DHCP NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700820
821 def dhcp_server_reboot_scenario(self, subscriber):
822 if subscriber.has_service('DHCP'):
823 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700824 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700825 tl = self.subscriber_dhcp_server_after_reboot()
826 self.test_status = True
827 return self.test_status
828 else:
829 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
830 self.test_status = True
831 return self.test_status
832
833 def subscriber_dhcp_server_after_reboot(self, iface = INTF_RX_DEFAULT):
834 ''' DHCP server goes down.'''
835 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
836 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
837 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
838 self.onos_dhcp_table_load(config)
839 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
840 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700841 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700842 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700843 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 -0700844 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700845 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 -0700846 assert_not_equal(cip, None)
847 else:
848 new_cip, new_sip = self.dhcp.only_request(cip, mac)
849 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700850 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700851 assert_not_equal(new_cip, None)
A R Karthick76a497a2017-04-12 10:59:39 -0700852 log_test.info('Getting DHCP server Down.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700853 onos_ctrl = OnosCtrl(self.dhcp_app)
854 onos_ctrl.deactivate()
855 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700856 log_test.info("Sending DHCP Request.")
857 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700858 new_cip, new_sip = self.dhcp.only_request(cip, mac)
859 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700860 log_test.info('')
861 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700862 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700863 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700864 assert_equal(new_cip,None) #Neagtive Test Case
A R Karthick76a497a2017-04-12 10:59:39 -0700865 log_test.info('Getting DHCP server Up.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700866# self.activate_apps(self.dhcp_app)
867 onos_ctrl = OnosCtrl(self.dhcp_app)
868 status, _ = onos_ctrl.activate()
869 assert_equal(status, True)
870 time.sleep(3)
871 for i in range(0,4):
A R Karthick76a497a2017-04-12 10:59:39 -0700872 log_test.info("Sending DHCP Request after DHCP server is up.")
873 log_test.info('')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700874 new_cip, new_sip = self.dhcp.only_request(cip, mac)
875 if new_cip == None and new_sip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700876 log_test.info('')
877 log_test.info("DHCP Request timed out.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700878 elif new_cip and new_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700879 log_test.info("Got Reply from DHCP server.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700880 assert_equal(new_cip,None) #Neagtive Test Case
881
882 def dhcp_client_rebind_scenario(self, subscriber):
883 if subscriber.has_service('DHCP'):
884 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700885 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700886 tl = self.subscriber_dhcp_client_rebind_time()
887 self.test_status = True
888 return self.test_status
889 else:
890 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
891 self.test_status = True
892 return self.test_status
893
894 def subscriber_dhcp_client_rebind_time(self, iface = INTF_RX_DEFAULT):
895 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
896 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
897 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
898 self.onos_dhcp_table_load(config)
899 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
900 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700901 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700902 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700903 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 -0700904 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -0700905 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 -0700906 assert_not_equal(cip, None)
907 elif cip and sip and mac:
A R Karthick76a497a2017-04-12 10:59:39 -0700908 log_test.info("Triggering DHCP Request.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700909 new_cip, new_sip, lval = self.dhcp.only_request(cip, mac, rebind_time = True)
910 if new_cip and new_sip and lval:
A R Karthick76a497a2017-04-12 10:59:39 -0700911 log_test.info("Client 's Rebind time is :%s",lval)
912 log_test.info("Generating delay till rebind time.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700913 time.sleep(lval)
A R Karthick76a497a2017-04-12 10:59:39 -0700914 log_test.info("Client Sending broadcast DHCP requests for renewing lease or for getting new ip.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700915 self.dhcp.after_T2 = True
916 for i in range(0,4):
917 latest_cip, latest_sip = self.dhcp.only_request(new_cip, mac)
918 if latest_cip and latest_sip:
A R Karthick76a497a2017-04-12 10:59:39 -0700919 log_test.info("Got DHCP Ack. Lease Renewed for ip %s and mac %s from server %s." %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700920 (latest_cip, mac, latest_sip) )
921 break
922 elif latest_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700923 log_test.info("Got DHCP NAK. Lease not renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700924 assert_not_equal(latest_cip, None)
925 elif new_cip == None or new_sip == None or lval == None:
A R Karthick76a497a2017-04-12 10:59:39 -0700926 log_test.info("Got DHCP NAK.Lease not Renewed.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700927
928 def dhcp_starvation_scenario(self, subscriber):
929 if subscriber.has_service('DHCP'):
930 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700931 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700932 tl = self.subscriber_dhcp_starvation()
933 self.test_status = True
934 return self.test_status
935 else:
936 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
937 self.test_status = True
938 return self.test_status
939
940 def subscriber_dhcp_starvation(self, iface = INTF_RX_DEFAULT):
941 '''DHCP starve'''
942 config = {'startip':'182.17.0.20', 'endip':'182.17.0.69',
943 'ip':'182.17.0.2', 'mac': "ca:fe:c3:fe:ca:fe",
944 'subnet': '255.255.255.0', 'broadcast':'182.17.0.255', 'router':'182.17.0.1'}
945 self.onos_dhcp_table_load(config)
946 self.dhcp = DHCPTest(seed_ip = '182.17.0.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -0700947 log_test.info('Verifying 1 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700948 for x in xrange(50):
949 mac = RandMAC()._fix()
950 self.send_recv(mac = mac)
A R Karthick76a497a2017-04-12 10:59:39 -0700951 log_test.info('Verifying 2 ')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700952 cip, sip = self.send_recv(update_seed = True, validate = False)
953 assert_equal(cip, None)
954 assert_equal(sip, None)
955
956 def dhcp_same_client_multi_discovers_scenario(self, subscriber):
957 if subscriber.has_service('DHCP'):
958 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700959 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700960 tl = self.subscriber_dhcp_same_client_multiple_discover()
961 self.test_status = True
962 return self.test_status
963 else:
964 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
965 self.test_status = True
966 return self.test_status
967
968 def subscriber_dhcp_same_client_multiple_discover(self, iface = INTF_RX_DEFAULT):
969 ''' DHCP Client sending multiple discover . '''
970 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
971 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
972 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
973 self.onos_dhcp_table_load(config)
974 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
975 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -0700976 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 -0700977 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -0700978 log_test.info('Triggering DHCP discover again.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700979 new_cip, new_sip, new_mac , lval = self.dhcp.only_discover()
980 if cip == new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700981 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 -0700982 % (new_cip, new_sip, new_mac) )
983 elif cip != new_cip:
A R Karthick76a497a2017-04-12 10:59:39 -0700984 log_test.info('Ip after 1st discover %s' %cip)
985 log_test.info('Map after 2nd discover %s' %new_cip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700986 assert_equal(cip, new_cip)
987
988 def dhcp_same_client_multi_request_scenario(self, subscriber):
989 if subscriber.has_service('DHCP'):
990 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -0700991 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -0700992 tl = self.subscriber_dhcp_same_client_multiple_request()
993 self.test_status = True
994 return self.test_status
995 else:
996 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
997 self.test_status = True
998 return self.test_status
999
1000 def subscriber_dhcp_same_client_multiple_request(self, iface = INTF_RX_DEFAULT):
1001 ''' DHCP Client sending multiple repeat DHCP requests. '''
1002 config = {'startip':'10.10.10.20', 'endip':'10.10.10.69',
1003 'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
1004 'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
1005 self.onos_dhcp_table_load(config)
1006 self.dhcp = DHCPTest(seed_ip = '10.10.10.1', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001007 log_test.info('Sending DHCP discover and DHCP request.')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001008 cip, sip = self.send_recv()
1009 mac = self.dhcp.get_mac(cip)[0]
A R Karthick76a497a2017-04-12 10:59:39 -07001010 log_test.info("Sending DHCP request again.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001011 new_cip, new_sip = self.dhcp.only_request(cip, mac)
1012 if (new_cip,new_sip) == (cip,sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001013 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 -07001014 % (new_cip, new_sip, mac) )
1015 elif (new_cip,new_sip):
A R Karthick76a497a2017-04-12 10:59:39 -07001016 log_test.info('No DHCP ACK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001017 assert_equal(new_cip, None)
1018 assert_equal(new_sip, None)
1019 else:
1020 print "Something went wrong."
1021
1022 def dhcp_client_desired_ip_scenario(self, subscriber):
1023 if subscriber.has_service('DHCP'):
1024 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001025 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001026 tl = self.subscriber_dhcp_client_desired_address()
1027 self.test_status = True
1028 return self.test_status
1029 else:
1030 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1031 self.test_status = True
1032 return self.test_status
1033
1034 def subscriber_dhcp_client_desired_address(self, iface = INTF_RX_DEFAULT):
1035 '''DHCP Client asking for desired IP address.'''
1036 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1037 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1038 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1039 self.onos_dhcp_table_load(config)
1040 self.dhcp = DHCPTest(seed_ip = '20.20.20.31', iface = iface)
1041 cip, sip, mac , lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001042 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001043 (cip, sip, mac) )
1044 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001045 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001046 (cip, sip, mac) )
1047 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001048 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001049 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001050 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001051 assert_equal(cip, self.dhcp.seed_ip)
1052
1053 def dhcp_client_request_pkt_with_non_offered_ip_scenario(self, subscriber):
1054 if subscriber.has_service('DHCP'):
1055 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001056 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001057 tl = self.subscriber_dhcp_server_nak_packet()
1058 self.test_status = True
1059 return self.test_status
1060 else:
1061 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1062 self.test_status = True
1063 return self.test_status
1064
1065 def subscriber_dhcp_server_nak_packet(self, iface = INTF_RX_DEFAULT):
1066 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1067 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1068 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1069 self.onos_dhcp_table_load(config)
1070 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
1071 cip, sip, mac, lval = self.dhcp.only_discover()
A R Karthick76a497a2017-04-12 10:59:39 -07001072 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001073 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001074 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 -07001075 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001076 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 -07001077 assert_not_equal(cip, None)
1078 else:
1079 new_cip, new_sip = self.dhcp.only_request('20.20.20.31', mac)
1080 if new_cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001081 log_test.info("Got DHCP server NAK.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001082 assert_equal(new_cip, None) #Negative Test Case
1083
1084 def dhcp_client_requested_out_pool_ip_scenario(self, subscriber):
1085 if subscriber.has_service('DHCP'):
1086 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001087 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001088 tl = self.subscriber_dhcp_client_desired_address_out_of_pool()
1089 self.test_status = True
1090 return self.test_status
1091 else:
1092 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1093 self.test_status = True
1094 return self.test_status
1095
1096 def subscriber_dhcp_client_desired_address_out_of_pool(self, iface = INTF_RX_DEFAULT):
1097 '''DHCP Client asking for desired IP address from out of pool.'''
1098 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1099 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1100 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1101 self.onos_dhcp_table_load(config)
1102 self.dhcp = DHCPTest(seed_ip = '20.20.20.35', iface = iface)
1103 cip, sip, mac, lval = self.dhcp.only_discover(desired = True)
A R Karthick76a497a2017-04-12 10:59:39 -07001104 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001105 (cip, sip, mac) )
1106 if cip == self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001107 log_test.info('Got dhcp client IP %s from server %s for mac %s as desired .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001108 (cip, sip, mac) )
1109 assert_equal(cip, self.dhcp.seed_ip) #Negative Test Case
1110
1111 elif cip != self.dhcp.seed_ip:
A R Karthick76a497a2017-04-12 10:59:39 -07001112 log_test.info('Got dhcp client IP %s from server %s for mac %s .' %
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001113 (cip, sip, mac) )
A R Karthick76a497a2017-04-12 10:59:39 -07001114 log_test.info('The desired ip was: %s .' % self.dhcp.seed_ip)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001115 assert_not_equal(cip, self.dhcp.seed_ip)
1116
1117 elif cip == None:
A R Karthick76a497a2017-04-12 10:59:39 -07001118 log_test.info('Got DHCP NAK')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001119
1120 def dhcp_client_specific_lease_scenario(self, subscriber):
1121 if subscriber.has_service('DHCP'):
1122 time.sleep(2)
A R Karthick76a497a2017-04-12 10:59:39 -07001123 log_test.info('Running subscriber %s DHCP rediscover scenario test' %subscriber.name)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001124 tl = self.subscriber_dhcp_specific_lease_packet()
1125 self.test_status = True
1126 return self.test_status
1127 else:
1128 subscriber.src_list = ['10.10.10.{}'.format(subscriber.rx_port)]
1129 self.test_status = True
1130 return self.test_status
1131
1132 def subscriber_dhcp_specific_lease_packet(self, iface = INTF_RX_DEFAULT):
1133 ''' Client sends DHCP Discover packet for particular lease time.'''
1134 config = {'startip':'20.20.20.30', 'endip':'20.20.20.69',
1135 'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
1136 'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
1137 self.onos_dhcp_table_load(config)
1138 self.dhcp = DHCPTest(seed_ip = '20.20.20.45', iface = iface)
A R Karthick76a497a2017-04-12 10:59:39 -07001139 log_test.info('Sending DHCP discover with lease time of 700')
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001140 cip, sip, mac, lval = self.dhcp.only_discover(lease_time = True)
1141
A R Karthick76a497a2017-04-12 10:59:39 -07001142 log_test.info("Verifying Client 's IP and mac in DHCP Offer packet.")
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001143 if (cip == None and mac != None):
A R Karthick76a497a2017-04-12 10:59:39 -07001144 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 -07001145 assert_not_equal(cip, None)
1146 elif lval != 700:
A R Karthick76a497a2017-04-12 10:59:39 -07001147 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 -07001148 (cip, sip, mac, lval) )
1149 assert_not_equal(lval, 700)
1150
1151 def test_cord_subscriber_join_recv(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001152 """Test subscriber join and receive for channel surfing"""
A R Karthick338268f2016-06-21 17:12:13 -07001153 self.num_subscribers = 5
1154 self.num_channels = 1
A R Karthicka478df42016-07-27 16:51:08 -07001155 test_status = True
1156 ##Run this test only if ONOS can be restarted as it incurs a network-cfg change
1157 if self.onos_restartable is True:
1158 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1159 num_channels = self.num_channels,
1160 port_list = self.generate_port_list(self.num_subscribers,
1161 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001162 assert_equal(test_status, True)
1163
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001164 def test_cord_subscriber_join_jump(self):
A R Karthicka478df42016-07-27 16:51:08 -07001165 """Test subscriber join jump for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001166 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001167 self.num_channels = 10
1168 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1169 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001170 cbs = (self.tls_verify, self.dhcp_jump_verify,
1171 self.igmp_jump_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001172 port_list = self.generate_port_list(self.num_subscribers,
1173 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001174 assert_equal(test_status, True)
1175
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001176 def test_cord_subscriber_join_next(self):
ChetanGaonkerf9c2f8b2016-07-19 15:49:41 -07001177 """Test subscriber join next for channel surfing"""
A R Karthick0f6b6842016-12-06 17:17:44 -08001178 self.num_subscribers = self.num_ports * len(self.switches)
A R Karthick338268f2016-06-21 17:12:13 -07001179 self.num_channels = 10
1180 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1181 num_channels = self.num_channels,
A R Karthick65c4d722016-07-18 14:20:17 -07001182 cbs = (self.tls_verify, self.dhcp_next_verify,
1183 self.igmp_next_verify, self.traffic_verify),
A R Karthick338268f2016-06-21 17:12:13 -07001184 port_list = self.generate_port_list(self.num_subscribers,
1185 self.num_channels))
A R Karthickb7e80902016-05-17 09:38:31 -07001186 assert_equal(test_status, True)
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001187
A.R Karthick517f7812017-05-18 11:22:46 -07001188 def test_cord_subscriber_join_next_without_leave(self):
1189 """Test subscriber join next for channel surfing"""
1190 self.num_subscribers = self.num_ports * len(self.switches)
1191 self.num_channels = 5
1192 self.leave_flag = False
1193 test_status = self.subscriber_join_verify(num_subscribers = self.num_subscribers,
1194 num_channels = self.num_channels,
1195 cbs = (self.tls_verify, self.dhcp_next_verify,
1196 self.igmp_next_verify, self.traffic_verify),
1197 port_list = self.generate_port_list(self.num_subscribers,
1198 self.num_channels))
1199 self.leave_flag = True
1200 assert_equal(test_status, True)
1201
ChetanGaonkerbd9e3942016-08-05 10:02:20 -07001202 #@deferred(SUBSCRIBER_TIMEOUT)
1203 def test_cord_subscriber_authentication_with_invalid_certificate_and_channel_surfing(self):
1204 ### """Test subscriber to auth with invalidCertification and join channel"""
1205 num_subscribers = 1
1206 num_channels = 1
1207 df = defer.Deferred()
1208 def sub_auth_invalid_cert(df):
1209 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1210 num_channels = num_channels,
1211 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1212 self.igmp_verify, self.traffic_verify),
1213 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1214 assert_equal(test_status, False)
1215 df.callback(0)
1216 reactor.callLater(0, sub_auth_invalid_cert, df)
1217 return df
1218
1219 #@deferred(SUBSCRIBER_TIMEOUT)
1220 def test_cord_subscriber_authentication_with_no_certificate_and_channel_surfing(self):
1221 ### """Test subscriber to auth with No Certification and join channel"""
1222 num_subscribers = 1
1223 num_channels = 1
1224 df = defer.Deferred()
1225 def sub_auth_no_cert(df):
1226 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1227 num_channels = num_channels,
1228 cbs = (self.tls_no_cert, self.dhcp_verify,
1229 self.igmp_verify, self.traffic_verify),
1230 port_list = self.generate_port_list(num_subscribers, num_channels),
1231 negative_subscriber_auth = 'all')
1232 assert_equal(test_status, False)
1233 df.callback(0)
1234 reactor.callLater(0, sub_auth_no_cert, df)
1235 return df
1236 def test_cord_subscriber_authentication_with_self_signed_certificate_and_channel_surfing(self):
1237 ### """Test subscriber to auth with Self Signed Certification and join channel"""
1238 num_subscribers = 1
1239 num_channels = 1
1240 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1241 num_channels = num_channels,
1242 cbs = (self.tls_self_signed_cert, self.dhcp_verify,
1243 self.igmp_verify, self.traffic_verify),
1244 port_list = self.generate_port_list(num_subscribers, num_channels),
1245 negative_subscriber_auth = 'all')
1246 assert_equal(test_status, True)
1247
1248 @deferred(SUBSCRIBER_TIMEOUT)
1249 def test_2_cord_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1250 ### """Test 2 subscribers to auth, one of the subscriber with invalidCertification and join channel"""
1251 num_subscribers = 2
1252 num_channels = 1
1253 df = defer.Deferred()
1254 def sub_auth_invalid_cert(df):
1255 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1256 num_channels = num_channels,
1257 cbs = (self.tls_invalid_cert, self.dhcp_verify,self.igmp_verify, self.traffic_verify),
1258 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1259 assert_equal(test_status, True)
1260 df.callback(0)
1261 reactor.callLater(0, sub_auth_invalid_cert, df)
1262 return df
1263
1264 @deferred(SUBSCRIBER_TIMEOUT)
1265 def test_2_cord_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1266 ### """Test 2 subscribers to auth, one of the subscriber with No Certification and join channel"""
1267 num_subscribers = 2
1268 num_channels = 1
1269 df = defer.Deferred()
1270 def sub_auth_no_cert(df):
1271 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1272 num_channels = num_channels,
1273 cbs = (self.tls_no_cert, self.dhcp_verify,
1274 self.igmp_verify, self.traffic_verify),
1275 port_list = self.generate_port_list(num_subscribers, num_channels),
1276 negative_subscriber_auth = 'half')
1277 assert_equal(test_status, True)
1278 df.callback(0)
1279 reactor.callLater(0, sub_auth_no_cert, df)
1280 return df
1281
1282 @deferred(SUBSCRIBER_TIMEOUT)
1283 def test_2_cord_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1284 ### """Test 2 subscribers to auth, one of the subscriber with Non CA authorized Certificate and join channel"""
1285 num_subscribers = 2
1286 num_channels = 1
1287 df = defer.Deferred()
1288 def sub_auth_no_cert(df):
1289 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1290 num_channels = num_channels,
1291 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify,
1292 self.igmp_verify, self.traffic_verify),
1293 port_list = self.generate_port_list(num_subscribers, num_channels),
1294 negative_subscriber_auth = 'half')
1295 assert_equal(test_status, True)
1296 df.callback(0)
1297 reactor.callLater(0, sub_auth_no_cert, df)
1298 return df
1299
1300 def test_cord_subscriber_authentication_with_dhcp_discover_and_channel_surfing(self):
1301 ### """Test subscriber auth success, DHCP re-discover with DHCP server and join channel"""
1302 num_subscribers = 1
1303 num_channels = 1
1304 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1305 num_channels = num_channels,
1306 cbs = (self.tls_verify, self.dhcp_discover_scenario,
1307 self.igmp_verify, self.traffic_verify),
1308 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1309 assert_equal(test_status, True)
1310
1311 def test_cord_subscriber_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1312 ### """Test subscriber auth success, DHCP client got re-booted and join channel"""
1313 num_subscribers = 1
1314 num_channels = 1
1315 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1316 num_channels = num_channels,
1317 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario,
1318 self.igmp_verify, self.traffic_verify),
1319 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1320 assert_equal(test_status, True)
1321
1322 def test_cord_subscriber_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1323 ### """Test subscriber auth , DHCP server re-boot during DHCP process and join channel"""
1324 num_subscribers = 1
1325 num_channels = 1
1326 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1327 num_channels = num_channels,
1328 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario,
1329 self.igmp_verify, self.traffic_verify),
1330 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1331 assert_equal(test_status, True)
1332
1333 def test_cord_subscriber_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1334 ### """Test subscriber auth , DHCP client rebind IP and join channel"""
1335 num_subscribers = 1
1336 num_channels = 1
1337 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1338 num_channels = num_channels,
1339 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario,
1340 self.igmp_verify, self.traffic_verify),
1341 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1342 assert_equal(test_status, True)
1343
1344
1345 def test_cord_subscriber_authentication_with_dhcp_starvation_and_channel_surfing(self):
1346 ### """Test subscriber auth , DHCP starvation and join channel"""
1347 num_subscribers = 1
1348 num_channels = 1
1349 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1350 num_channels = num_channels,
1351 cbs = (self.tls_verify, self.dhcp_starvation_scenario,
1352 self.igmp_verify, self.traffic_verify),
1353 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1354 assert_equal(test_status, True)
1355
1356 def test_cord_subscriber_authentication_with_multiple_dhcp_discover_for_same_subscriber_and_channel_surfing(self):
1357 ### """Test subscriber auth , sending same DHCP client discover multiple times and join channel"""
1358 num_subscribers = 1
1359 num_channels = 1
1360 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1361 num_channels = num_channels,
1362 cbs = (self.tls_verify, self.dhcp_same_client_multi_discovers_scenario,
1363 self.igmp_verify, self.traffic_verify),
1364 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1365 assert_equal(test_status, True)
1366
1367 def test_cord_subscriber_authentication_with_multiple_dhcp_request_for_same_subscriber_and_channel_surfing(self):
1368 ### """Test subscriber auth , same DHCP client multiple requerts times and join channel"""
1369 num_subscribers = 1
1370 num_channels = 1
1371 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1372 num_channels = num_channels,
1373 cbs = (self.tls_verify, self.dhcp_same_client_multi_request_scenario,
1374 self.igmp_verify, self.traffic_verify),
1375 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1376 assert_equal(test_status, True)
1377
1378 def test_cord_subscriber_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1379 ### """Test subscriber auth with DHCP client requesting ip and join channel"""
1380 num_subscribers = 1
1381 num_channels = 1
1382 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1383 num_channels = num_channels,
1384 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario,
1385 self.igmp_verify, self.traffic_verify),
1386 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1387 assert_equal(test_status, True)
1388
1389 def test_cord_subscriber_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1390 ### """Test subscriber auth with DHCP client request for non-offered ip and join channel"""
1391 num_subscribers = 1
1392 num_channels = 1
1393 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1394 num_channels = num_channels,
1395 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario,
1396 self.igmp_verify, self.traffic_verify),
1397 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1398 assert_equal(test_status, True)
1399
1400 def test_cord_subscriber_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1401 ### """Test subscriber auth with DHCP client requesting out of pool ip and join channel"""
1402 num_subscribers = 1
1403 num_channels = 1
1404 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1405 num_channels = num_channels,
1406 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario,
1407 self.igmp_verify, self.traffic_verify),
1408 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1409 assert_equal(test_status, True)
1410
1411
1412 def test_cord_subscriber_authentication_with_dhcp_specified_lease_time_functionality_and_channel_surfing(self):
1413 ### """Test subscriber auth with DHCP client specifying lease time and join channel"""
1414 num_subscribers = 1
1415 num_channels = 1
1416 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1417 num_channels = num_channels,
1418 cbs = (self.tls_verify, self.dhcp_client_specific_lease_scenario,
1419 self.igmp_verify, self.traffic_verify),
1420 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1421 assert_equal(test_status, True)
1422
1423 #@deferred(SUBSCRIBER_TIMEOUT)
1424 @nottest
1425 def test_1k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1426 ### """Test 1k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1427 num_subscribers = 1000
1428 num_channels = 1
1429 df = defer.Deferred()
1430 def sub_auth_invalid_cert(df):
1431 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1432 num_channels = num_channels,
1433 cbs = (self.tls_invalid_cert, self.dhcp_verify,
1434 self.igmp_verify, self.traffic_verify),
1435 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1436 assert_equal(test_status, True)
1437 df.callback(0)
1438 reactor.callLater(0, sub_auth_invalid_cert, df)
1439 return df
1440
1441 @nottest
1442 @deferred(SUBSCRIBER_TIMEOUT)
1443 def test_1k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1444 ### """Test 1k subscribers to auth, half of the subscribers with No Certification and join channel"""
1445 num_subscribers = 1000
1446 num_channels = 1
1447 df = defer.Deferred()
1448 def sub_auth_no_cert(df):
1449 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1450 num_channels = num_channels,
1451 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1452 port_list = self.generate_port_list(num_subscribers, num_channels),
1453 negative_subscriber_auth = 'half')
1454 assert_equal(test_status, True)
1455 df.callback(0)
1456 reactor.callLater(0, sub_auth_no_cert, df)
1457 return df
1458
1459 #@deferred(SUBSCRIBER_TIMEOUT)
1460 @nottest
1461 def test_1k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1462 ### """Test 1k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1463 num_subscribers = 1000
1464 num_channels = 1
1465 df = defer.Deferred()
1466 def sub_auth_no_cert(df):
1467 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1468 num_channels = num_channels,
1469 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1470 port_list = self.generate_port_list(num_subscribers, num_channels),
1471 negative_subscriber_auth = 'half')
1472 assert_equal(test_status, True)
1473 df.callback(0)
1474 reactor.callLater(0, sub_auth_no_cert, df)
1475 return df
1476
1477 #@deferred(SUBSCRIBER_TIMEOUT)
1478 @nottest
1479 def test_5k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1480 ### """Test 5k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1481 num_subscribers = 5000
1482 num_channels = 1
1483 df = defer.Deferred()
1484 def sub_auth_invalid_cert(df):
1485 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1486 num_channels = num_channels,
1487 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1488 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'half')
1489 assert_equal(test_status, True)
1490 df.callback(0)
1491 reactor.callLater(0, sub_auth_invalid_cert, df)
1492 return df
1493
1494 #@deferred(SUBSCRIBER_TIMEOUT)
1495 @nottest
1496 def test_5k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1497 ### """Test 5k subscribers to auth, half of the subscribers with No Certification and join channel"""
1498 num_subscribers = 5000
1499 num_channels = 1
1500 df = defer.Deferred()
1501 def sub_auth_no_cert(df):
1502 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1503 num_channels = num_channels,
1504 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1505 port_list = self.generate_port_list(num_subscribers, num_channels),
1506 negative_subscriber_auth = 'half')
1507 assert_equal(test_status, True)
1508 df.callback(0)
1509 reactor.callLater(0, sub_auth_no_cert, df)
1510 return df
1511
1512 #@deferred(SUBSCRIBER_TIMEOUT)
1513 @nottest
1514 def test_5k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1515 ### """Test 5k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1516 num_subscribers = 5000
1517 num_channels = 1
1518 df = defer.Deferred()
1519 def sub_auth_no_cert(df):
1520 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1521 num_channels = num_channels,
1522 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1523 port_list = self.generate_port_list(num_subscribers, num_channels),
1524 negative_subscriber_auth = 'half')
1525 assert_equal(test_status, True)
1526 df.callback(0)
1527 reactor.callLater(0, sub_auth_no_cert, df)
1528 return df
1529
1530 #@deferred(SUBSCRIBER_TIMEOUT)
1531 @nottest
1532 def test_10k_subscribers_authentication_with_valid_and_invalid_certificates_and_channel_surfing(self):
1533 ### """Test 10k subscribers to auth, half of the subscribers with invalidCertification and join channel"""
1534 num_subscribers = 10000
1535 num_channels = 1
1536 df = defer.Deferred()
1537 def sub_auth_invalid_cert(df):
1538 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1539 num_channels = num_channels,
1540 cbs = (self.tls_invalid_cert, self.dhcp_verify, self.igmp_verify),
1541 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'onethird')
1542 assert_equal(test_status, True)
1543 df.callback(0)
1544 reactor.callLater(0, sub_auth_invalid_cert, df)
1545 return df
1546
1547 #@deferred(SUBSCRIBER_TIMEOUT)
1548 @nottest
1549 def test_10k_subscribers_authentication_with_valid_and_no_certificates_and_channel_surfing(self):
1550 ### """Test 10k subscribers to auth, half of the subscribers with No Certification and join channel"""
1551 num_subscribers = 10000
1552 num_channels = 1
1553 df = defer.Deferred()
1554 def sub_auth_no_cert(df):
1555 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1556 num_channels = num_channels,
1557 cbs = (self.tls_no_cert, self.dhcp_verify, self.igmp_verify),
1558 port_list = self.generate_port_list(num_subscribers, num_channels),
1559 negative_subscriber_auth = 'onethird')
1560 assert_equal(test_status, True)
1561 df.callback(0)
1562 reactor.callLater(0, sub_auth_no_cert, df)
1563 return df
1564
1565 #@deferred(SUBSCRIBER_TIMEOUT)
1566 @nottest
1567 def test_10k_subscribers_authentication_with_valid_and_non_ca_authorized_certificates_and_channel_surfing(self):
1568 ### """Test 10k subscribers to auth, half of the subscribers with Non CA authorized Certificate and join channel"""
1569 num_subscribers = 10000
1570 num_channels = 1
1571 df = defer.Deferred()
1572 def sub_auth_no_cert(df):
1573 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1574 num_channels = num_channels,
1575 cbs = (self.tls_non_ca_authrized_cert, self.dhcp_verify, self.igmp_verify),
1576 port_list = self.generate_port_list(num_subscribers, num_channels),
1577 negative_subscriber_auth = 'onethird')
1578 assert_equal(test_status, False)
1579 assert_equal(test_status, True)
1580 df.callback(0)
1581 reactor.callLater(0, sub_auth_no_cert, df)
1582 return df
1583
1584 @nottest
1585 def test_1k_cord_subscribers_authentication_with_dhcp_discovers_and_channel_surfing(self):
1586 ### """Test 1k subscribers auth success, DHCP re-discover with DHCP server and join channel"""
1587 num_subscribers = 1000
1588 num_channels = 1
1589 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1590 num_channels = num_channels,
1591 cbs = (self.tls_verify, self.dhcp_discover_scenario, self.igmp_verify),
1592 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1593 assert_equal(test_status, True)
1594
1595 @nottest
1596 def test_1k_cord_subscribers_authentication_with_dhcp_client_reboot_and_channel_surfing(self):
1597 ### """Test 1k subscribers auth success, DHCP client got re-booted and join channel"""
1598 num_subscribers = 1000
1599 num_channels = 1
1600 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1601 num_channels = num_channels,
1602 cbs = (self.tls_verify, self.dhcp_client_reboot_scenario, self.igmp_verify),
1603 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1604 assert_equal(test_status, True)
1605
1606 @nottest
1607 def test_1k_cord_subscribers_authentication_with_dhcp_server_reboot_and_channel_surfing(self):
1608 ### """Test 1k subscribers auth , DHCP server re-boot during DHCP process and join channel"""
1609 num_subscribers = 1000
1610 num_channels = 1
1611 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1612 num_channels = num_channels,
1613 cbs = (self.tls_verify, self.dhcp_server_reboot_scenario, self.igmp_verify),
1614 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1615 assert_equal(test_status, True)
1616
1617 @nottest
1618 def test_1k_cord_subscribers_authentication_with_dhcp_client_rebind_and_channel_surfing(self):
1619 ### """Test 1k subscribers auth , DHCP client rebind IP and join channel"""
1620 num_subscribers = 1000
1621 num_channels = 1
1622 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1623 num_channels = num_channels,
1624 cbs = (self.tls_verify, self.dhcp_client_rebind_scenario, self.igmp_verify),
1625 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1626 assert_equal(test_status, True)
1627
1628 @nottest
1629 def test_1k_cord_subscribers_authentication_with_dhcp_starvation_and_channel_surfing(self):
1630 ### """Test 1k subscribers auth , DHCP starvation and join channel"""
1631 num_subscribers = 1000
1632 num_channels = 1
1633 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1634 num_channels = num_channels,
1635 cbs = (self.tls_verify, self.dhcp_starvation_scenario, self.igmp_verify),
1636 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1637 assert_equal(test_status, True)
1638
1639 @nottest
1640 def test_1k_cord_subscribers_authentication_with_dhcp_client_requested_ip_and_channel_surfing(self):
1641 ### """Test 1k subscribers auth with DHCP client requesting ip and join channel"""
1642 num_subscribers = 1000
1643 num_channels = 1
1644 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1645 num_channels = num_channels,
1646 cbs = (self.tls_verify, self.dhcp_client_desired_ip_scenario, self.igmp_verify),
1647 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1648 assert_equal(test_status, True)
1649
1650 @nottest
1651 def test_1k_cord_subscribers_authentication_with_dhcp_non_offered_ip_and_channel_surfing(self):
1652 ### """Test subscribers auth with DHCP client request for non-offered ip and join channel"""
1653 num_subscribers = 1000
1654 num_channels = 1
1655 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1656 num_channels = num_channels,
1657 cbs = (self.tls_verify, self.dhcp_client_request_pkt_with_non_offered_ip_scenario, self.igmp_verify),
1658 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1659 assert_equal(test_status, True)
1660
1661 def test_4_cord_subscribers_join_recv_5channel(self):
1662 ###"""Test 4 subscribers join and receive for 5 channels surfing"""
1663 num_subscribers = 4
1664 num_channels = 5
1665 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1666 num_channels = num_channels,
1667 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1668 port_list = self.generate_port_list(num_subscribers, num_channels),
1669 negative_subscriber_auth = 'all')
1670 assert_equal(test_status, True)
1671
1672 def test_4_cord_subscribers_join_jump_5channel(self):
1673 ###"""Test 4 subscribers jump and receive for 5 channels surfing"""
1674 num_subscribers = 4
1675 num_channels = 5
1676 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1677 num_channels = num_channels,
1678 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1679 port_list = self.generate_port_list(num_subscribers, num_channels),
1680 negative_subscriber_auth = 'all')
1681 assert_equal(test_status, True)
1682
1683 def test_4_cord_subscribers_join_next_5channel(self):
1684 ###"""Test 4 subscribers join next for 5 channels"""
1685 num_subscribers = 4
1686 num_channels = 5
1687 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1688 num_channels = num_channels,
1689 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1690 port_list = self.generate_port_list(num_subscribers, num_channels),
1691 negative_subscriber_auth = 'all')
1692 assert_equal(test_status, True)
1693
1694 def test_10_cord_subscribers_join_recv_5channel(self):
1695 ###"""Test 10 subscribers join and receive for 5 channels surfing"""
1696 num_subscribers = 10
1697 num_channels = 5
1698 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1699 num_channels = num_channels,
1700 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1701 port_list = self.generate_port_list(num_subscribers, num_channels),
1702 negative_subscriber_auth = 'all')
1703 assert_equal(test_status, True)
1704
1705 def test_10_cord_subscribers_join_jump_5channel(self):
1706 ###"""Test 10 subscribers jump and receive for 5 channels surfing"""
1707 num_subscribers = 10
1708 num_channels = 5
1709 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1710 num_channels = num_channels,
1711 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1712 port_list = self.generate_port_list(num_subscribers, num_channels),
1713 negative_subscriber_auth = 'all')
1714 assert_equal(test_status, True)
1715
1716
1717 def test_10_cord_subscribers_join_next_5channel(self):
1718 ###"""Test 10 subscribers join next for 5 channels"""
1719 num_subscribers = 10
1720 num_channels = 5
1721 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1722 num_channels = num_channels,
1723 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1724 port_list = self.generate_port_list(num_subscribers, num_channels),
1725 negative_subscriber_auth = 'all')
1726 assert_equal(test_status, True)
1727
1728
1729
1730 def test_cord_subscriber_join_recv_100channels(self):
1731 num_subscribers = 1
1732 num_channels = 100
1733 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1734 num_channels = num_channels,
1735 cbs = (self.tls_verify, self.dhcp_verify,
1736 self.igmp_verify, self.traffic_verify),
1737 port_list = self.generate_port_list(num_subscribers, num_channels),
1738 negative_subscriber_auth = 'all')
1739 assert_equal(test_status, True)
1740
1741 def test_cord_subscriber_join_recv_400channels(self):
1742 num_subscribers = 1
1743 num_channels = 400
1744 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1745 num_channels = num_channels,
1746 cbs = (self.tls_verify, self.dhcp_verify,
1747 self.igmp_verify, self.traffic_verify),
1748 port_list = self.generate_port_list(num_subscribers, num_channels),
1749 negative_subscriber_auth = 'all')
1750 assert_equal(test_status, True)
1751
1752 def test_cord_subscriber_join_recv_800channels(self):
1753 num_subscribers = 1
1754 num_channels = 800
1755 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1756 num_channels = num_channels,
1757 cbs = (self.tls_verify, self.dhcp_verify,
1758 self.igmp_verify, self.traffic_verify),
1759 port_list = self.generate_port_list(num_subscribers, num_channels),
1760 negative_subscriber_auth = 'all')
1761 assert_equal(test_status, True)
1762
1763 def test_cord_subscriber_join_recv_1200channels(self):
1764 num_subscribers = 1
1765 num_channels = 1200
1766 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1767 num_channels = num_channels,
1768 cbs = (self.tls_verify, self.dhcp_verify,
1769 self.igmp_verify, self.traffic_verify),
1770 port_list = self.generate_port_list(num_subscribers, num_channels),
1771 negative_subscriber_auth = 'all')
1772 assert_equal(test_status, True)
1773
1774 def test_cord_subscriber_join_recv_1500channels(self):
1775 num_subscribers = 1
1776 num_channels = 1500
1777 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1778 num_channels = num_channels,
1779 cbs = (self.tls_verify, self.dhcp_verify,
1780 self.igmp_verify, self.traffic_verify),
1781 port_list = self.generate_port_list(num_subscribers, num_channels),
1782 negative_subscriber_auth = 'all')
1783 assert_equal(test_status, True)
1784
1785 def test_cord_subscriber_join_jump_100channels(self):
1786 num_subscribers = 1
1787 num_channels = 100
1788 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1789 num_channels = num_channels,
1790 cbs = (self.tls_verify, self.dhcp_jump_verify,
1791 self.igmp_jump_verify, self.traffic_verify),
1792 port_list = self.generate_port_list(num_subscribers, num_channels),
1793 negative_subscriber_auth = 'all')
1794 assert_equal(test_status, True)
1795 def test_cord_subscriber_join_jump_400channels(self):
1796 num_subscribers = 1
1797 num_channels = 400
1798 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1799 num_channels = num_channels,
1800 cbs = (self.tls_verify, self.dhcp_jump_verify,
1801 self.igmp_jump_verify, self.traffic_verify),
1802 port_list = self.generate_port_list(num_subscribers, num_channels),
1803 negative_subscriber_auth = 'all')
1804 assert_equal(test_status, True)
1805
1806 def test_cord_subscriber_join_jump_800channels(self):
1807 num_subscribers = 1
1808 num_channels = 800
1809 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1810 num_channels = num_channels,
1811 cbs = (self.tls_verify, self.dhcp_jump_verify,
1812 self.igmp_jump_verify, self.traffic_verify),
1813 port_list = self.generate_port_list(num_subscribers, num_channels),
1814 negative_subscriber_auth = 'all')
1815 assert_equal(test_status, True)
1816 def test_cord_subscriber_join_jump_1200channel(sself):
1817 num_subscribers = 1
1818 num_channels = 1200
1819 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1820 num_channels = num_channels,
1821 cbs = (self.tls_verify, self.dhcp_jump_verify,
1822 self.igmp_jump_verify, self.traffic_verify),
1823 port_list = self.generate_port_list(num_subscribers, num_channels),
1824 negative_subscriber_auth = 'all')
1825 assert_equal(test_status, True)
1826 def test_cord_subscriber_join_jump_1500channels(self):
1827 num_subscribers = 1
1828 num_channels = 1500
1829 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1830 num_channels = num_channels,
1831 cbs = (self.tls_verify, self.dhcp_jump_verify,
1832 self.igmp_jump_verify, self.traffic_verify),
1833 port_list = self.generate_port_list(num_subscribers, num_channels),
1834 negative_subscriber_auth = 'all')
1835 assert_equal(test_status, True)
1836
1837 def test_cord_subscriber_join_next_100channels(self):
1838 num_subscribers = 1
1839 num_channels = 100
1840 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1841 num_channels = num_channels,
1842 cbs = (self.tls_verify, self.dhcp_next_verify,
1843 self.igmp_next_verify, self.traffic_verify),
1844 port_list = self.generate_port_list(num_subscribers, num_channels),
1845 negative_subscriber_auth = 'all')
1846 assert_equal(test_status, True)
1847
1848 def test_cord_subscriber_join_next_400channels(self):
1849 num_subscribers = 1
1850 num_channels = 400
1851 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1852 num_channels = num_channels,
1853 cbs = (self.tls_verify, self.dhcp_next_verify,
1854 self.igmp_next_verify, self.traffic_verify),
1855 port_list = self.generate_port_list(num_subscribers, num_channels),
1856 negative_subscriber_auth = 'all')
1857 assert_equal(test_status, True)
1858
1859 def test_cord_subscriber_join_next_800channels(self):
1860 num_subscribers = 1
1861 num_channels = 800
1862 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1863 num_channels = num_channels,
1864 cbs = (self.tls_verify, self.dhcp_next_verify,
1865 self.igmp_next_verify, self.traffic_verify),
1866 port_list = self.generate_port_list(num_subscribers, num_channels),
1867 negative_subscriber_auth = 'all')
1868 assert_equal(test_status, True)
1869
1870
1871 def test_cord_subscriber_join_next_1200channels(self):
1872 num_subscribers = 1
1873 num_channels = 1200
1874 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1875 num_channels = num_channels,
1876 cbs = (self.tls_verify, self.dhcp_next_verify,
1877 self.igmp_next_verify, self.traffic_verify),
1878 port_list = self.generate_port_list(num_subscribers, num_channels),
1879 negative_subscriber_auth = 'all')
1880 assert_equal(test_status, True)
1881
1882 def test_cord_subscriber_join_next_1500channels(self):
1883 num_subscribers = 1
1884 num_channels = 1500
1885 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1886 num_channels = num_channels,
1887 cbs = (self.tls_verify, self.dhcp_next_verify,
1888 self.igmp_next_verify, self.traffic_verify),
1889 port_list = self.generate_port_list(num_subscribers, num_channels),
1890 negative_subscriber_auth = 'all')
1891 assert_equal(test_status, True)
1892
1893 @nottest
1894 def test_1k_cord_subscribers_authentication_with_dhcp_request_out_of_pool_ip_by_client_and_channel_surfing(self):
1895 ### """Test 1k subscribers auth with DHCP client requesting out of pool ip and join channel"""
1896 num_subscribers = 1000
1897 num_channels = 1
1898 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1899 num_channels = num_channels,
1900 cbs = (self.tls_verify, self.dhcp_client_requested_out_pool_ip_scenario, self.igmp_verify),
1901 port_list = self.generate_port_list(num_subscribers, num_channels), negative_subscriber_auth = 'all')
1902 assert_equal(test_status, True)
1903
1904 @nottest
1905 def test_1k_cord_subscribers_join_recv_100channel(self):
1906 ###"""Test 1k subscribers join and receive for 100 channels surfing"""
1907 num_subscribers = 1000
1908 num_channels = 100
1909 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1910 num_channels = num_channels,
1911 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1912 port_list = self.generate_port_list(num_subscribers, num_channels),
1913 negative_subscriber_auth = 'all')
1914 assert_equal(test_status, True)
1915
1916 @nottest
1917 def test_1k_cord_subscribers_join_jump_100channel(self):
1918 ###"""Test 1k subscribers jump and receive for 100 channels surfing"""
1919 num_subscribers = 1000
1920 num_channels = 100
1921 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1922 num_channels = num_channels,
1923 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1924 port_list = self.generate_port_list(num_subscribers, num_channels),
1925 negative_subscriber_auth = 'all')
1926 assert_equal(test_status, True)
1927
1928 @nottest
1929 def test_1k_cord_subscribers_join_next_100channel(self):
1930 ###"""Test 1k subscribers join next for 100 channels"""
1931 num_subscribers = 1000
1932 num_channels = 100
1933 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1934 num_channels = num_channels,
1935 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1936 port_list = self.generate_port_list(num_subscribers, num_channels),
1937 negative_subscriber_auth = 'all')
1938 assert_equal(test_status, True)
1939
1940 @nottest
1941 def test_1k_cord_subscribers_join_recv_400channel(self):
1942 ###"""Test 1k subscribers join and receive for 400 channels surfing"""
1943 num_subscribers = 1000
1944 num_channels = 400
1945 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1946 num_channels = num_channels,
1947 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1948 port_list = self.generate_port_list(num_subscribers, num_channels),
1949 negative_subscriber_auth = 'all')
1950 assert_equal(test_status, True)
1951
1952 @nottest
1953 def test_1k_cord_subscribers_join_jump_400channel(self):
1954 ###"""Test 1k subscribers jump and receive for 400 channels surfing"""
1955 num_subscribers = 1000
1956 num_channels = 400
1957 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1958 num_channels = num_channels,
1959 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1960 port_list = self.generate_port_list(num_subscribers, num_channels),
1961 negative_subscriber_auth = 'all')
1962 assert_equal(test_status, True)
1963
1964 @nottest
1965 def test_1k_cord_subscribers_join_next_400channel(self):
1966 ###"""Test 1k subscribers join next for 400 channels"""
1967 num_subscribers = 1000
1968 num_channels = 400
1969 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1970 num_channels = num_channels,
1971 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
1972 port_list = self.generate_port_list(num_subscribers, num_channels),
1973 negative_subscriber_auth = 'all')
1974 assert_equal(test_status, True)
1975
1976 @nottest
1977 def test_1k_cord_subscribers_join_recv_800channel(self):
1978 ###"""Test 1k subscribers join and receive for 800 channels surfing"""
1979 num_subscribers = 1000
1980 num_channels = 800
1981 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1982 num_channels = num_channels,
1983 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
1984 port_list = self.generate_port_list(num_subscribers, num_channels),
1985 negative_subscriber_auth = 'all')
1986 assert_equal(test_status, True)
1987
1988 @nottest
1989 def test_1k_cord_subscribers_join_jump_800channel(self):
1990 ###"""Test 1k subscribers jump and receive for 800 channels surfing"""
1991 num_subscribers = 1000
1992 num_channels = 800
1993 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
1994 num_channels = num_channels,
1995 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
1996 port_list = self.generate_port_list(num_subscribers, num_channels),
1997 negative_subscriber_auth = 'all')
1998 assert_equal(test_status, True)
1999
2000 @nottest
2001 def test_1k_cord_subscribers_join_next_800channel(self):
2002 ###"""Test 1k subscribers join next for 800 channels"""
2003 num_subscribers = 1000
2004 num_channels = 800
2005 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2006 num_channels = num_channels,
2007 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2008 port_list = self.generate_port_list(num_subscribers, num_channels),
2009 negative_subscriber_auth = 'all')
2010 assert_equal(test_status, True)
2011
2012 @nottest
2013 def test_1k_cord_subscribers_join_recv_1200channel(self):
2014 ###"""Test 1k subscribers join and receive for 1200 channels surfing"""
2015 num_subscribers = 1000
2016 num_channels = 1200
2017 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2018 num_channels = num_channels,
2019 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2020 port_list = self.generate_port_list(num_subscribers, num_channels),
2021 negative_subscriber_auth = 'all')
2022 assert_equal(test_status, True)
2023
2024 @nottest
2025 def test_1k_cord_subscribers_join_jump_1200channel(self):
2026 ###"""Test 1k subscribers jump and receive for 1200 channels surfing"""
2027 num_subscribers = 1000
2028 num_channels = 1200
2029 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2030 num_channels = num_channels,
2031 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2032 port_list = self.generate_port_list(num_subscribers, num_channels),
2033 negative_subscriber_auth = 'all')
2034 assert_equal(test_status, True)
2035
2036 @nottest
2037 def test_1k_cord_subscribers_join_next_1200channel(self):
2038 ###"""Test 1k subscribers join next for 1200 channels"""
2039 num_subscribers = 1000
2040 num_channels = 1200
2041 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2042 num_channels = num_channels,
2043 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2044 port_list = self.generate_port_list(num_subscribers, num_channels),
2045 negative_subscriber_auth = 'all')
2046 assert_equal(test_status, True)
2047
2048 @nottest
2049 def test_1k_cord_subscribers_join_recv_1500channel(self):
2050 ###"""Test 1k subscribers join and receive for 1500 channels surfing"""
2051 num_subscribers = 1000
2052 num_channels = 1500
2053 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2054 num_channels = num_channels,
2055 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2056 port_list = self.generate_port_list(num_subscribers, num_channels),
2057 negative_subscriber_auth = 'all')
2058 assert_equal(test_status, True)
2059
2060 @nottest
2061 def test_1k_cord_subscribers_join_jump_1500channel(self):
2062 ###"""Test 1k subscribers jump and receive for 1500 channels surfing"""
2063 num_subscribers = 1000
2064 num_channels = 1500
2065 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2066 num_channels = num_channels,
2067 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2068 port_list = self.generate_port_list(num_subscribers, num_channels),
2069 negative_subscriber_auth = 'all')
2070 assert_equal(test_status, True)
2071
2072 @nottest
2073 def test_1k_cord_subscribers_join_next_1500channel(self):
2074 ###"""Test 1k subscribers join next for 1500 channels"""
2075 num_subscribers = 1000
2076 num_channels = 1500
2077 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2078 num_channels = num_channels,
2079 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2080 port_list = self.generate_port_list(num_subscribers, num_channels),
2081 negative_subscriber_auth = 'all')
2082 assert_equal(test_status, True)
2083
2084 @nottest
2085 def test_5k_cord_subscribers_join_recv_100channel(self):
2086 ###"""Test 5k subscribers join and receive for 100 channels surfing"""
2087 num_subscribers = 5000
2088 num_channels = 100
2089 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2090 num_channels = num_channels,
2091 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2092 port_list = self.generate_port_list(num_subscribers, num_channels),
2093 negative_subscriber_auth = 'all')
2094 assert_equal(test_status, True)
2095
2096 @nottest
2097 def test_5k_cord_subscribers_join_jump_100channel(self):
2098 ###"""Test 5k subscribers jump and receive for 100 channels surfing"""
2099 num_subscribers = 5000
2100 num_channels = 100
2101 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2102 num_channels = num_channels,
2103 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2104 port_list = self.generate_port_list(num_subscribers, num_channels),
2105 negative_subscriber_auth = 'all')
2106 assert_equal(test_status, True)
2107
2108 @nottest
2109 def test_5k_cord_subscribers_join_next_100channel(self):
2110 ###"""Test 5k subscribers join next for 100 channels"""
2111 num_subscribers = 5000
2112 num_channels = 100
2113 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2114 num_channels = num_channels,
2115 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2116 port_list = self.generate_port_list(num_subscribers, num_channels),
2117 negative_subscriber_auth = 'all')
2118 assert_equal(test_status, True)
2119
2120 @nottest
2121 def test_5k_cord_subscribers_join_recv_400channel(self):
2122 ###"""Test 5k subscribers join and receive for 400 channels surfing"""
2123 num_subscribers = 5000
2124 num_channels = 400
2125 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2126 num_channels = num_channels,
2127 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2128 port_list = self.generate_port_list(num_subscribers, num_channels),
2129 negative_subscriber_auth = 'all')
2130 assert_equal(test_status, True)
2131
2132 @nottest
2133 def test_5k_cord_subscribers_join_jump_400channel(self):
2134 ###"""Test 5k subscribers jump and receive for 400 channels surfing"""
2135 num_subscribers = 5000
2136 num_channels = 400
2137 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2138 num_channels = num_channels,
2139 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2140 port_list = self.generate_port_list(num_subscribers, num_channels),
2141 negative_subscriber_auth = 'all')
2142 assert_equal(test_status, True)
2143
2144 @nottest
2145 def test_5k_cord_subscribers_join_next_400channel(self):
2146 ###"""Test 5k subscribers join next for 400 channels"""
2147 num_subscribers = 5000
2148 num_channels = 400
2149 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2150 num_channels = num_channels,
2151 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2152 port_list = self.generate_port_list(num_subscribers, num_channels),
2153 negative_subscriber_auth = 'all')
2154 assert_equal(test_status, True)
2155
2156 @nottest
2157 def test_5k_cord_subscribers_join_recv_800channel(self):
2158 ###"""Test 5k subscribers join and receive for 800 channels surfing"""
2159 num_subscribers = 5000
2160 num_channels = 800
2161 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2162 num_channels = num_channels,
2163 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2164 port_list = self.generate_port_list(num_subscribers, num_channels),
2165 negative_subscriber_auth = 'all')
2166 assert_equal(test_status, True)
2167
2168 @nottest
2169 def test_5k_cord_subscribers_join_jump_800channel(self):
2170 ###"""Test 5k subscribers jump and receive for 800 channels surfing"""
2171 num_subscribers = 5000
2172 num_channels = 800
2173 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2174 num_channels = num_channels,
2175 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2176 port_list = self.generate_port_list(num_subscribers, num_channels),
2177 negative_subscriber_auth = 'all')
2178 assert_equal(test_status, True)
2179
2180 @nottest
2181 def test_5k_cord_subscribers_join_next_800channel(self):
2182 ###"""Test 5k subscribers join next for 800 channels"""
2183 num_subscribers = 5000
2184 num_channels = 800
2185 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2186 num_channels = num_channels,
2187 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2188 port_list = self.generate_port_list(num_subscribers, num_channels),
2189 negative_subscriber_auth = 'all')
2190 assert_equal(test_status, True)
2191
2192 @nottest
2193 def test_5k_cord_subscribers_join_recv_1200channel(self):
2194 ###"""Test 5k subscribers join and receive for 1200 channels surfing"""
2195 num_subscribers = 5000
2196 num_channels = 1200
2197 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2198 num_channels = num_channels,
2199 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2200 port_list = self.generate_port_list(num_subscribers, num_channels),
2201 negative_subscriber_auth = 'all')
2202 assert_equal(test_status, True)
2203
2204 @nottest
2205 def test_5k_cord_subscribers_join_jump_1200channel(self):
2206 ###"""Test 5k subscribers jump and receive for 1200 channels surfing"""
2207 num_subscribers = 5000
2208 num_channels = 1200
2209 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2210 num_channels = num_channels,
2211 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2212 port_list = self.generate_port_list(num_subscribers, num_channels),
2213 negative_subscriber_auth = 'all')
2214 assert_equal(test_status, True)
2215
2216 @nottest
2217 def test_5k_cord_subscribers_join_next_1200channel(self):
2218 ###"""Test 5k subscribers join next for 1200 channels"""
2219 num_subscribers = 5000
2220 num_channels = 1200
2221 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2222 num_channels = num_channels,
2223 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2224 port_list = self.generate_port_list(num_subscribers, num_channels),
2225 negative_subscriber_auth = 'all')
2226 assert_equal(test_status, True)
2227
2228 @nottest
2229 def test_5k_cord_subscribers_join_recv_1500channel(self):
2230 ###"""Test 5k subscribers join and receive for 1500 channels surfing"""
2231 num_subscribers = 5000
2232 num_channels = 1500
2233 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2234 num_channels = num_channels,
2235 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2236 port_list = self.generate_port_list(num_subscribers, num_channels),
2237 negative_subscriber_auth = 'all')
2238 assert_equal(test_status, True)
2239
2240 @nottest
2241 def test_5k_cord_subscribers_join_jump_1500channel(self):
2242 ###"""Test 5k subscribers jump and receive for 1500 channels surfing"""
2243 num_subscribers = 5000
2244 num_channels = 1500
2245 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2246 num_channels = num_channels,
2247 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2248 port_list = self.generate_port_list(num_subscribers, num_channels),
2249 negative_subscriber_auth = 'all')
2250 assert_equal(test_status, True)
2251
2252 @nottest
2253 def test_5k_cord_subscribers_join_next_1500channel(self):
2254 ###"""Test 5k subscribers join next for 1500 channels"""
2255 num_subscribers = 5000
2256 num_channels = 1500
2257 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2258 num_channels = num_channels,
2259 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2260 port_list = self.generate_port_list(num_subscribers, num_channels),
2261 negative_subscriber_auth = 'all')
2262 assert_equal(test_status, True)
2263
2264 @nottest
2265 def test_10k_cord_subscribers_join_recv_100channel(self):
2266 ###"""Test 10k subscribers join and receive for 100 channels surfing"""
2267 num_subscribers = 10000
2268 num_channels = 100
2269 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2270 num_channels = num_channels,
2271 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2272 port_list = self.generate_port_list(num_subscribers, num_channels),
2273 negative_subscriber_auth = 'all')
2274 assert_equal(test_status, True)
2275
2276 @nottest
2277 def test_10k_cord_subscribers_join_jump_100channel(self):
2278 ###"""Test 10k subscribers jump and receive for 100 channels surfing"""
2279 num_subscribers = 10000
2280 num_channels = 100
2281 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2282 num_channels = num_channels,
2283 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2284 port_list = self.generate_port_list(num_subscribers, num_channels),
2285 negative_subscriber_auth = 'all')
2286 assert_equal(test_status, True)
2287
2288 @nottest
2289 def test_10k_cord_subscribers_join_next_100channel(self):
2290 ###"""Test 10k subscribers join next for 100 channels"""
2291 num_subscribers = 10000
2292 num_channels = 100
2293 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2294 num_channels = num_channels,
2295 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2296 port_list = self.generate_port_list(num_subscribers, num_channels),
2297 negative_subscriber_auth = 'all')
2298 assert_equal(test_status, True)
2299
2300 @nottest
2301 def test_100k_cord_subscribers_join_recv_100channel(self):
2302 ###"""Test 100k subscribers join and receive for 100 channels surfing"""
2303 num_subscribers = 100000
2304 num_channels = 100
2305 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2306 num_channels = num_channels,
2307 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2308 port_list = self.generate_port_list(num_subscribers, num_channels),
2309 negative_subscriber_auth = 'all')
2310 assert_equal(test_status, True)
2311
2312 @nottest
2313 def test_100k_cord_subscribers_join_jump_100channel(self):
2314 ###"""Test 100k subscribers jump and receive for 100 channels surfing"""
2315 num_subscribers = 100000
2316 num_channels = 100
2317 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2318 num_channels = num_channels,
2319 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2320 port_list = self.generate_port_list(num_subscribers, num_channels),
2321 negative_subscriber_auth = 'all')
2322 assert_equal(test_status, True)
2323
2324 @nottest
2325 def test_100k_cord_subscribers_join_next_100channel(self):
2326 ###"""Test 100k subscribers join next for 100 channels"""
2327 num_subscribers = 100000
2328 num_channels = 100
2329 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2330 num_channels = num_channels,
2331 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2332 port_list = self.generate_port_list(num_subscribers, num_channels),
2333 negative_subscriber_auth = 'all')
2334 assert_equal(test_status, True)
2335
2336 @nottest
2337 def test_10k_cord_subscribers_join_recv_400channel(self):
2338 ###"""Test 10k subscribers join and receive for 400 channels surfing"""
2339 num_subscribers = 10000
2340 num_channels = 400
2341 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2342 num_channels = num_channels,
2343 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2344 port_list = self.generate_port_list(num_subscribers, num_channels),
2345 negative_subscriber_auth = 'all')
2346 assert_equal(test_status, True)
2347
2348 @nottest
2349 def test_10k_cord_subscribers_join_jump_400channel(self):
2350 ###"""Test 10k subscribers jump and receive for 400 channels surfing"""
2351 num_subscribers = 10000
2352 num_channels = 400
2353 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2354 num_channels = num_channels,
2355 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2356 port_list = self.generate_port_list(num_subscribers, num_channels),
2357 negative_subscriber_auth = 'all')
2358 assert_equal(test_status, True)
2359
2360 @nottest
2361 def test_10k_cord_subscribers_join_next_400channel(self):
2362 ###"""Test 10k subscribers join next for 400 channels"""
2363 num_subscribers = 10000
2364 num_channels = 400
2365 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2366 num_channels = num_channels,
2367 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2368 port_list = self.generate_port_list(num_subscribers, num_channels),
2369 negative_subscriber_auth = 'all')
2370 assert_equal(test_status, True)
2371
2372 @nottest
2373 def test_10k_cord_subscribers_join_recv_800channel(self):
2374 ###"""Test 10k subscribers join and receive for 800 channels surfing"""
2375 num_subscribers = 10000
2376 num_channels = 800
2377 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2378 num_channels = num_channels,
2379 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2380 port_list = self.generate_port_list(num_subscribers, num_channels),
2381 negative_subscriber_auth = 'all')
2382 assert_equal(test_status, True)
2383
2384 @nottest
2385 def test_10k_cord_subscribers_join_jump_800channel(self):
2386 ###"""Test 10k subscribers jump and receive for 800 channels surfing"""
2387 num_subscribers = 10000
2388 num_channels = 800
2389 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2390 num_channels = num_channels,
2391 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2392 port_list = self.generate_port_list(num_subscribers, num_channels),
2393 negative_subscriber_auth = 'all')
2394 assert_equal(test_status, True)
2395
2396 @nottest
2397 def test_10k_cord_subscribers_join_next_800channel(self):
2398 ###"""Test 10k subscribers join next for 800 channels"""
2399 num_subscribers = 10000
2400 num_channels = 800
2401 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2402 num_channels = num_channels,
2403 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2404 port_list = self.generate_port_list(num_subscribers, num_channels),
2405 negative_subscriber_auth = 'all')
2406 assert_equal(test_status, True)
2407
2408 @nottest
2409 def test_10k_cord_subscribers_join_recv_1200channel(self):
2410 ###"""Test 10k subscribers join and receive for 1200 channels surfing"""
2411 num_subscribers = 10000
2412 num_channels = 1200
2413 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2414 num_channels = num_channels,
2415 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2416 port_list = self.generate_port_list(num_subscribers, num_channels),
2417 negative_subscriber_auth = 'all')
2418 assert_equal(test_status, True)
2419
2420 @nottest
2421 def test_10k_cord_subscribers_join_jump_1200channel(self):
2422 ###"""Test 10k subscribers jump and receive for 1200 channels surfing"""
2423 num_subscribers = 10000
2424 num_channels = 1200
2425 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2426 num_channels = num_channels,
2427 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2428 port_list = self.generate_port_list(num_subscribers, num_channels),
2429 negative_subscriber_auth = 'all')
2430 assert_equal(test_status, True)
2431
2432 @nottest
2433 def test_10k_cord_subscribers_join_next_1200channel(self):
2434 ###"""Test 10k subscribers join next for 1200 channels"""
2435 num_subscribers = 10000
2436 num_channels = 1200
2437 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2438 num_channels = num_channels,
2439 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2440 port_list = self.generate_port_list(num_subscribers, num_channels),
2441 negative_subscriber_auth = 'all')
2442 assert_equal(test_status, True)
2443
2444 @nottest
2445 def test_10k_cord_subscribers_join_recv_1500channel(self):
2446 ###"""Test 10k subscribers join and receive for 1500 channels surfing"""
2447 num_subscribers = 10000
2448 num_channels = 1500
2449 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2450 num_channels = num_channels,
2451 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2452 port_list = self.generate_port_list(num_subscribers, num_channels),
2453 negative_subscriber_auth = 'all')
2454 assert_equal(test_status, True)
2455
2456 @nottest
2457 def test_10k_cord_subscribers_join_jump_1500channel(self):
2458 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2459 num_subscribers = 10000
2460 num_channels = 1500
2461 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2462 num_channels = num_channels,
2463 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2464 port_list = self.generate_port_list(num_subscribers, num_channels),
2465 negative_subscriber_auth = 'all')
2466 assert_equal(test_status, True)
2467
2468 @nottest
2469 def test_10k_cord_subscribers_join_next_1500channel(self):
2470 ###"""Test 10k subscribers join next for 1500 channels"""
2471 num_subscribers = 10000
2472 num_channels = 1500
2473 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2474 num_channels = num_channels,
2475 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2476 port_list = self.generate_port_list(num_subscribers, num_channels),
2477 negative_subscriber_auth = 'all')
2478 assert_equal(test_status, True)
2479
2480 @nottest
2481 def test_100k_cord_subscribers_join_recv_1500channel(self):
2482 ###"""Test 100k subscribers join and receive for 1500 channels surfing"""
2483 num_subscribers = 100000
2484 num_channels = 1500
2485 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2486 num_channels = num_channels,
2487 cbs = (self.tls_verify, self.dhcp_verify, self.igmp_verify),
2488 port_list = self.generate_port_list(num_subscribers, num_channels),
2489 negative_subscriber_auth = 'all')
2490 assert_equal(test_status, True)
2491
2492 @nottest
2493 def test_100k_cord_subscribers_join_jump_1500channel(self):
2494 ###"""Test 10k subscribers jump and receive for 1500 channels surfing"""
2495 num_subscribers = 100000
2496 num_channels = 1500
2497 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2498 num_channels = num_channels,
2499 cbs = (self.tls_verify, self.dhcp_jump_verify, self.igmp_jump_verify),
2500 port_list = self.generate_port_list(num_subscribers, num_channels),
2501 negative_subscriber_auth = 'all')
2502 assert_equal(test_status, True)
2503
2504 @nottest
2505 def test_100k_cord_subscribers_join_next_1500channel(self):
2506 ###"""Test 10k subscribers join next for 1500 channels"""
2507 num_subscribers = 100000
2508 num_channels = 1500
2509 test_status = self.subscriber_join_verify(num_subscribers = num_subscribers,
2510 num_channels = num_channels,
2511 cbs = (self.tls_verify, self.dhcp_next_verify, self.igmp_next_verify),
2512 port_list = self.generate_port_list(num_subscribers, num_channels),
2513 negative_subscriber_auth = 'all')
2514 assert_equal(test_status, True)