blob: 2578521db8a3254234caa795ef669171735c4193 [file] [log] [blame]
import os
import sys
import unittest
from nose.tools import *
from CordTestConfig import setup_module
from CordTestUtils import log_test
from VolthaCtrl import VolthaCtrl
class voltha_exchange(unittest.TestCase):
OLT_TYPE = 'tibit_olt'
OLT_MAC = '00:0c:e2:31:12:00'
VOLTHA_HOST = 'localhost'
VOLTHA_REST_PORT = 8881
voltha = None
@classmethod
def setUpClass(cls):
cls.voltha = VolthaCtrl(cls.VOLTHA_HOST, rest_port = cls.VOLTHA_REST_PORT)
def test_olt_enable(self):
log_test.info('Enabling OLT type %s, MAC %s' %(self.OLT_TYPE, self.OLT_MAC))
status = self.voltha.enable_device(self.OLT_TYPE, self.OLT_MAC)
assert_equal(status, True)
def test_subscriber_with_voltha_for_eap_tls_authentication(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue auth request packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls valid auth packets are being exchanged between subscriber, onos and freeradius.
5. Verify that subscriber is authenticated successfully.
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_failure(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls without cert auth packet is being exchanged between subscriber, onos and freeradius.
5. Verify that subscriber authentication is unsuccessful..
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_using_invalid_cert(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets and exchange invalid cert from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls with invalid cert auth packet is being exchanged between subscriber, onos and freeradius.
5. Verify that subscriber authentication is unsuccessful..
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_with_aaa_app_deactivation(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls without sending client hello, it's not being exchanged between client, onos and freeradius.
5. Verify that subscriber authentication is unsuccessful..
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_restarting_radius_server(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls with restart of radius server and packets are being exchanged between subscriber, onos and freeradius.
5. Verify that subscriber authentication is unsuccessful..
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_with_disabled_olt(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
5. Validate that eap tls packets are being exchanged between subscriber, onos and freeradius.
6. Verify that subscriber authenticated successfully.
7. Disable olt which is seen in voltha and issue tls auth packets from subscriber.
8. Validate that eap tls packets are not being exchanged between subscriber, onos and freeradius.
9. Verify that subscriber authentication is unsuccessful..
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_disabling_uni_port_in_voltha(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
5. Validate that eap tls packets are being exchanged between subscriber, onos and freeradius.
6. Verify that subscriber authenticated successfully.
7. Disable uni port which is seen in voltha and issue tls auth packets from subscriber.
8. Validate that eap tls packets are not being exchanged between subscriber, onos and freeradius.
9. Verify that subscriber authentication is unsuccessful..
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_restarting_olt(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
5. Validate that eap tls packets are being exchanged between subscriber, onos and freeradius.
6. Verify that subscriber authenticated successfully.
7. Restart olt which is seen in voltha and issue tls auth packets from subscriber.
8. Validate that eap tls packets are not being exchanged between subscriber, onos and freeradius.
9. Verify that subscriber authentication is unsuccessful..
"""
def test_subscriber_with_voltha_for_eap_tls_authentication_restarting_onu(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
5. Validate that eap tls packets are being exchanged between subscriber, onos and freeradius.
6. Verify that subscriber authenticated successfully.
7. Restart onu which is seen in voltha and issue tls auth packets from subscriber.
8. Validate that eap tls packets are not being exchanged between subscriber, onos and freeradius.
9. Verify that subscriber authentication is unsuccessful..
"""
def test_two_subscribers_with_voltha_for_eap_tls_authentication(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT is detected and ONU ports(nni and 2 uni's) are being seen.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Bring up two Residential subscribers from cord-tester and issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls valid auth packets are being exchanged between two subscriber, onos and freeradius.
5. Verify that two subscribers are authenticated successfully.
"""
def test_two_subscribers_with_voltha_for_eap_tls_authentication_using_same_certificates(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT is detected and ONU ports(nni and 2 uni's) are being seen.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Bring up two Residential subscribers from cord-tester and issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that two valid certificates are being exchanged between two subscriber, onos and freeradius.
5. Verify that two subscribers are not authenticated.
"""
def test_two_subscribers_with_voltha_for_eap_tls_authentication_initiating_invalid_tls_packets_for_one_subscriber(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT is detected and ONU ports(nni and 2 uni's) are being seen.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Bring up two Residential subscribers from cord-tester and issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls valid auth packets are being exchanged between valid subscriber, onos and freeradius.
5. Validate that eap tls valid auth packets are being exchanged between invalid client, onos and freeradius.
6. Verify that valid subscriber authenticated successfully.
7. Verify that invalid subscriber are not authenticated successfully.
"""
def test_two_subscribers_with_voltha_for_eap_tls_authentication_initiating_invalid_cert_for_one_subscriber(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT is detected and ONU ports(nni and 2 uni's) are being seen.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Bring up two Residential subscribers from cord-tester and issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
4. Validate that eap tls valid auth packets are being exchanged between valid subscriber, onos and freeradius.
5. Validate that eap tls invalid cert auth packets are being exchanged between invalid subscriber, onos and freeradius.
6. Verify that valid subscriber authenticated successfully.
7. Verify that invalid subscriber are not authenticated successfully.
"""
def test_two_subscribers_with_voltha_for_eap_tls_authentication_with_one_uni_port_disabled(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Bring up freeradius server container using CORD TESTER and make sure that ONOS have connectivity to freeradius server.
3. Bring up two Residential subscribers from cord-tester and issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
5. Validate that eap tls packets are being exchanged between two subscriber, onos and freeradius.
6. Verify that subscriber authenticated successfully.
7. Disable one of the uni port which is seen in voltha and issue tls auth packets from subscriber.
8. Validate that eap tls packets are not being exchanged between one subscriber, onos and freeradius.
9. Verify that subscriber authentication is unsuccessful..
10. Verify that other subscriber authenticated successfully.
"""
def test_subscriber_with_voltha_for_dhcp_request(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
3. Send dhcp request from residential subscrber to dhcp server which is running as onos app.
4. Verify that subscriber get ip from dhcp server successfully.
"""
def test_subscriber_with_voltha_for_dhcp_request_with_invalid_broadcast_source_mac(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
3. Send dhcp request with invalid source mac broadcast from residential subscrber to dhcp server which is running as onos app.
4. Verify that subscriber should not get ip from dhcp server.
"""
def test_subscriber_with_voltha_for_dhcp_request_with_invalid_multicast_source_mac(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
3. Send dhcp request with invalid source mac multicast from residential subscrber to dhcp server which is running as onos app.
4. Verify that subscriber should not get ip from dhcp server.
"""
def test_subscriber_with_voltha_for_dhcp_request_with_invalid_source_mac(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
3. Send dhcp request with invalid source mac zero from residential subscrber to dhcp server which is running as onos app.
4. Verify that subscriber should not get ip from dhcp server.
"""
def test_subscriber_with_voltha_for_dhcp_request_and_release(self):
"""
Test Method:
0. Make sure that voltha is up and running on CORD-POD setup.
1. OLT and ONU is detected and validated.
2. Issue tls auth packets from CORD TESTER voltha test module acting as a subscriber..
3. Send dhcp request from residential subscrber to dhcp server which is running as onos app.
4. Verify that subscriber get ip from dhcp server successfully.
5. Send dhcp release from residential subscrber to dhcp server which is running as onos app.
6 Verify that subscriber should not get ip from dhcp server, ping to gateway.
"""