| 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. |
| """ |
| |