Example #1
0
 def runTest(self):
     acl_cfg = {}
     acl_cfg['device-id'] = [cfg.leaf0['id']]
     acl = ACL(acl_cfg)
     actual_device = acl.delete_deviceById(cfg.leaf0['id'])
     time.sleep(3)
     actual_device = acl.get_device()
Example #2
0
    def runTest(self):
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "permit",
            "mac": {
                "srcMac": "11:11:11:11:11:11",
                "srcMacMask": "FF:FF:FF:FF:FF:FF"
            }
        }

        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        actual_device = acl.get_device()
        #print("debug acl device status1:", actual_device)
        actual_device = acl.build()
        time.sleep(2)
        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("==============================")
        #print("debug acl device status2:", actual_device)
        assert ("11:11:11:11:11:11" == actual_device[0]["mac"]["srcMac"]
                ), "acl setup src mac rule fail"
Example #3
0
 def runTest(self):
     acl_cfg = {}
     acl_cfg['device-id'] = [cfg.leaf0['id']]
     acl = ACL(acl_cfg)
     #print("debug acl_cfg1:", acl_cfg)
     #print("debug acl_cfg2:", acl_cfg['device-id'])
     #print("debug acl_cfg3:", acl_cfg['data'])
     actual_device = acl.get_device()
     #print("debug get_device status:", actual_device)
     #for a in actual_device.keys():
     #    print("debug actual_device:", a)
     if oftest.config['test_topology'] == 'scatter':
         assert (cfg.spine0['id']
                 in actual_device), "Spine0 device not found"
         assert (cfg.leaf0['id'] in actual_device), "leaf0 device not found"
         assert (cfg.leaf1['id'] in actual_device), "leaf1 device not found"
Example #4
0
    def runTest(self):
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]

        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        actual_device = acl.get_device()
        #print("debug acl device status1:", actual_device)
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "permit",
            "mac": {
                "srcMac": "11:11:11:11:11:11",
                "srcMacMask": "FF:FF:FF:FF:FF:FF"
            }
        }
        actual_device = acl.build()
        time.sleep(5)
        acl_cfg['device-id'] = [cfg.leaf1['id']]
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "permit",
            "mac": {
                "dstMac": "22:22:22:22:22:22",
                "dstMacMask": "FF:FF:FF:FF:FF:FF"
            }
        }
        actual_device = acl.build()
        time.sleep(2)
        #print("debug:==============================")
        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("debug actual_device1:", actual_device)
        assert (
            1 == len(actual_device)), "Acl rule set len != 1 fail on device 1"

        #print("debug:==============================")
        actual_device = acl.get_deviceById(cfg.leaf1['id'])
        #print("debug actual_device2:", actual_device)
        assert (
            1 == len(actual_device)), "Acl rule set len != 1 fail on device 2"
Example #5
0
    def runTest(self):
        ports = sorted(config["port_map"].keys())
        vlan_cfg = {}
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]
        vlan = StaticVLAN(vlan_cfg)
        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        vlan.delete_DevieIdNoVerify({'device-id': cfg.leaf0['id']})
        time.sleep(2)
        vlan.delete_DevieIdNoVerify({'device-id': cfg.leaf1['id']})
        time.sleep(2)
        actual_device = acl.get_device()
        cfg.host0['ip'] = '192.168.100.1'
        cfg.host2['ip'] = '192.168.100.3'

        vlan_cfg['device-id'] = cfg.leaf0['id']
        vlan_cfg['ports'] = [{
            "port": 1,
            "native": 10,
            "mode": "hybrid",
            "vlans": ["10/tag"]
        }]
        vlan = StaticVLAN(vlan_cfg).build()
        time.sleep(6)

        vlan_cfg['device-id'] = cfg.leaf1['id']
        vlan_cfg['ports'] = [{
            "port": 1,
            "native": 10,
            "mode": "hybrid",
            "vlans": ["10/tag"]
        }]
        vlan = StaticVLAN(vlan_cfg).build()
        time.sleep(6)

        acl_cfg['device-id'] = [cfg.leaf0['id']]
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "permit",
            "mac": {
                "vid": 10,
                "vidMask": 4095
            }
        }
        actual_device = acl.build()
        time.sleep(5)
        pkt_from_p0_to_p2 = simple_tcp_packet(pktlen=68,
                                              dl_vlan_enable=True,
                                              vlan_vid=10,
                                              eth_dst=cfg.host2['mac'],
                                              eth_src=cfg.host0['mac'],
                                              ip_dst=cfg.host2['ip'],
                                              ip_src=cfg.host0['ip'])
        expected_pkt = pkt_from_p0_to_p2
        #print("debug: =======expect pkt_from_p0_to_p2 =======")
        for i in range(5):
            self.dataplane.send(ports[0], str(pkt_from_p0_to_p2))
            wait_for_seconds(1)
        verify_packet(self, str(expected_pkt), ports[2])
        #print("debug: ", str(expected_pkt), ports[2])

        acl_cfg['device-id'] = [cfg.leaf1['id']]
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "deny",
            "mac": {
                "vid": 10,
                "vidMask": 4095
            }
        }
        actual_device = acl.build()
        time.sleep(2)
        pkt_from_p2_to_p0 = simple_tcp_packet(pktlen=68,
                                              dl_vlan_enable=True,
                                              vlan_vid=10,
                                              eth_dst=cfg.host0['mac'],
                                              eth_src=cfg.host2['mac'],
                                              ip_dst=cfg.host0['ip'],
                                              ip_src=cfg.host2['ip'])
        expected_pkt = pkt_from_p2_to_p0
        #print("debug: =======expect pkt_from_p2_to_p0 =======")
        for i in range(5):
            self.dataplane.send(ports[2], str(pkt_from_p2_to_p0))
            wait_for_seconds(1)
        verify_no_packet(self, str(expected_pkt), ports[0])

        vlan_cfg['device-id'] = cfg.leaf0['id']
        vlan.delete({'port': 1, 'device-id': cfg.leaf0['id']})
        actual_port = vlan.get_port(1)
        assert (None == actual_port)
        vlan_cfg['device-id'] = cfg.leaf1['id']
        vlan.delete({'port': 1, 'device-id': cfg.leaf1['id']})
        actual_port = vlan.get_port(1)
        assert (None == actual_port)
Example #6
0
    def runTest(self):
        ports = sorted(config["port_map"].keys())
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]
        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        actual_device = acl.get_device()
        cfg.host0['ip'] = '192.168.100.1'
        cfg.host2['ip'] = '192.168.100.3'

        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "permit",
            "mac": {
                "srcMac": cfg.host0['mac'],
                "srcMacMask": "FF:FF:FF:FF:FF:FF"
            }
        }
        actual_device = acl.build()
        time.sleep(5)
        pkt_from_p0_to_p2 = simple_tcp_packet(pktlen=64,
                                              eth_dst=cfg.host2['mac'],
                                              eth_src=cfg.host0['mac'],
                                              ip_dst=cfg.host2['ip'],
                                              ip_src=cfg.host0['ip'])
        expected_pkt = pkt_from_p0_to_p2
        #print("debug: =======expect pkt_from_p0_to_p2 =======")
        for i in range(5):
            self.dataplane.send(ports[0], str(pkt_from_p0_to_p2))
            wait_for_seconds(1)
        verify_packet(self, str(expected_pkt), ports[2])
        #print("debug: ", str(expected_pkt), ports[2])

        acl_cfg['device-id'] = [cfg.leaf1['id']]
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "deny",
            "mac": {
                "srcMac": cfg.host2['mac'],
                "srcMacMask": "FF:FF:FF:FF:FF:FF"
            }
        }
        actual_device = acl.build()
        time.sleep(2)
        pkt_from_p2_to_p0 = simple_tcp_packet(pktlen=64,
                                              eth_dst=cfg.host0['mac'],
                                              eth_src=cfg.host2['mac'],
                                              ip_dst=cfg.host0['ip'],
                                              ip_src=cfg.host2['ip'])
        expected_pkt = pkt_from_p2_to_p0
        #print("debug: =======expect pkt_from_p2_to_p0 =======")
        for i in range(5):
            self.dataplane.send(ports[2], str(pkt_from_p2_to_p0))
            wait_for_seconds(1)
        verify_no_packet(self, str(expected_pkt), ports[0])
Example #7
0
    def runTest(self):
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]

        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        actual_device = acl.get_device()
        #print("debug acl device status1:", actual_device)
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "deny",
            "ipv4": {
                "protocol": 17,
                "srcIp": "1.1.1.1",
                "srcIpMask": "255.255.255.255"
            }
        }
        actual_device = acl.build()
        time.sleep(5)
        acl_cfg['device-id'] = [cfg.leaf0['id']]
        acl_cfg['data'] = {
            "ports": [2],
            "direction": "true",
            "action": "deny",
            "ipv4": {
                "protocol": 17,
                "dstIp": "2.2.2.2",
                "dstIpMask": "255.255.255.255"
            }
        }
        actual_device = acl.build()
        time.sleep(2)
        #print("debug:==============================")
        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("debug actual_device1:", actual_device)
        assert (2 == len(actual_device)), "Acl rule len != 2 fail on device 1"
        testResult = False
        for testData in actual_device:
            if testData["ipv4"]["srcIp"] == "1.1.1.1" and testData[
                    "action"] == "deny":
                testResult = True
                #print(testData["direction"], testData["ipv4"]["srcIp"])
        assert (True == testResult), "acl setup direction of srcIp rule fail"
        testResult = False
        for testData in actual_device:
            if testData["ipv4"]["dstIp"] == "2.2.2.2" and testData[
                    "action"] == "deny":
                testResult = True
                #print(testData["direction"], testData["ipv4"]["srcIp"])
        assert (True == testResult), "acl setup direction of dstIp rule fail"

        acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)

        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("debug actual_device3:", actual_device)
        assert (0 == len(actual_device)), "Acl rule len != 0 fail on device 1"
        acl.delete_deviceById(cfg.leaf1['id'])
Example #8
0
    def runTest(self):
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]

        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        actual_device = acl.get_device()
        #print("debug acl device status1:", actual_device)
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "permit",
            "mac": {
                "etherType": "0800",
                "etherTypeMask": "FFFF"
            }
        }
        actual_device = acl.build()
        time.sleep(5)
        acl_cfg['device-id'] = [cfg.leaf0['id']]
        acl_cfg['data'] = {
            "ports": [2],
            "direction": "true",
            "action": "permit",
            "mac": {
                "vid": 10,
                "vidMask": 4095
            }
        }
        actual_device = acl.build()
        time.sleep(2)
        #print("debug:==============================")
        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("debug actual_device1:", actual_device)
        assert (2 == len(actual_device)), "Acl rule len != 2 fail on device 1"
        assert ("0800" == actual_device[0]["mac"]["etherType"]
                ), "acl setup ether type rule fail"
        assert (10 == actual_device[1]["mac"]["vid"]
                ), "acl setup vlan id rule fail"
        acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)

        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("debug actual_device3:", actual_device)
        assert (0 == len(actual_device)), "Acl rule len != 0 fail on device 1"
        acl.delete_deviceById(cfg.leaf1['id'])
Example #9
0
    def runTest(self):
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]

        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        actual_device = acl.get_device()
        #print("debug acl device status1:", actual_device)
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "true",
            "action": "permit",
            "mac": {
                "srcMac": "11:11:11:11:11:11",
                "srcMacMask": "FF:FF:FF:FF:FF:FF"
            }
        }
        actual_device = acl.build()
        time.sleep(5)
        acl_cfg['device-id'] = [cfg.leaf0['id']]
        acl_cfg['data'] = {
            "ports": [2],
            "direction": "true",
            "action": "permit",
            "mac": {
                "dstMac": "22:22:22:22:22:22",
                "dstMacMask": "FF:FF:FF:FF:FF:FF"
            }
        }
        actual_device = acl.build()
        time.sleep(2)
        #print("debug:==============================")
        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("debug actual_device:", actual_device)
        assert (2 == len(actual_device)), "Acl rule set len fail"

        delId_1 = actual_device[0]["policyId"]
        delId_2 = actual_device[1]["policyId"]
        #print("debug policyId 1:", delId_1)
        #print("debug policyId 2:", delId_2)

        actual_device = acl.delete_deviceSpecifyRuleId(cfg.leaf0['id'],
                                                       delId_1)
        time.sleep(2)
        actual_device = acl.delete_deviceSpecifyRuleId(cfg.leaf0['id'],
                                                       delId_2)
        time.sleep(2)
        actual_device = acl.get_deviceById(cfg.leaf0['id'])
        #print("debug acl device status:", actual_device)
        assert (0 == len(actual_device)), "Acl rule set len fail"
Example #10
0
    def runTest(self):
        ports = sorted(config["port_map"].keys())
        acl_cfg = {}
        acl_cfg['device-id'] = [cfg.leaf0['id']]

        acl = ACL(acl_cfg)
        actual_device = acl.delete_deviceById(cfg.leaf0['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.leaf1['id'])
        time.sleep(2)
        actual_device = acl.delete_deviceById(cfg.spine0['id'])
        time.sleep(2)
        actual_device = acl.get_device()
        #print("debug acl device status1:", actual_device)
        acl_cfg['data'] = {
            "ports": [2],
            "direction": "false",
            "action": "deny",
            "mac": {
                "etherType": "0806",
                "etherTypeMask": "FFFF"
            }
        }
        actual_device = acl.build()
        time.sleep(5)
        #print("debug host0:", cfg.host0)
        #print("debug ports:", ports)
        cfg.host0['ip'] = '192.168.100.1'
        cfg.host1['ip'] = '192.168.100.2'

        pkt_from_p0_to_p1 = simple_arp_packet(pktlen=60,
                                              eth_dst='ff:ff:ff:ff:ff:ff',
                                              eth_src=cfg.host0['mac'],
                                              vlan_vid=0,
                                              vlan_pcp=0,
                                              arp_op=1,
                                              ip_snd=cfg.host0['ip'],
                                              ip_tgt=cfg.host1['ip'],
                                              hw_snd=cfg.host0['mac'],
                                              hw_tgt='00:00:00:00:00:00')
        expected_pkt = pkt_from_p0_to_p1

        #print("debug: =======expect pkt_from_p0_to_p1 =======")
        for i in range(5):
            self.dataplane.send(ports[0], str(pkt_from_p0_to_p1))
            wait_for_seconds(1)
        verify_no_packet(self, str(expected_pkt), ports[1])
        #print("debug: ", str(expected_pkt), ports[1])

        acl_cfg['device-id'] = [cfg.leaf0['id']]
        acl_cfg['data'] = {
            "ports": [1],
            "direction": "false",
            "action": "permit",
            "mac": {
                "etherType": "0806",
                "etherTypeMask": "FFFF"
            }
        }
        actual_device = acl.build()
        time.sleep(2)
        #print("debug:==============================")
        pkt_from_p1_to_p0 = simple_arp_packet(pktlen=60,
                                              eth_dst='ff:ff:ff:ff:ff:ff',
                                              eth_src=cfg.host1['mac'],
                                              vlan_vid=0,
                                              vlan_pcp=0,
                                              arp_op=1,
                                              ip_snd=cfg.host0['ip'],
                                              ip_tgt=cfg.host1['ip'],
                                              hw_snd=cfg.host1['mac'],
                                              hw_tgt='00:00:00:00:00:00')
        expected_pkt = pkt_from_p1_to_p0

        #print("debug: =======expect pkt_from_p1_to_p0 =======")
        for i in range(5):
            self.dataplane.send(ports[1], str(pkt_from_p1_to_p0))
            wait_for_seconds(1)
        verify_packet(self, str(expected_pkt), ports[0])