def testConfigAddRule(self): pat1 = Pattern(in_port=3, dl_type=2048, nw_src="10.0.0.2", nw_dst="10.0.0.12") act1 = Action("forward", [1]) r1 = Rule(pat1, [act1]) c1 = SwitchConfiguration([r1]) c2 = SwitchConfiguration() c2.add_rule(r1) self.assertEqual(c1,c2)
def testConfigDiff(self): pat1 = Pattern(in_port=3, nw_src="10.0.0.2", nw_dst="10.0.0.12") act1 = Action("forward", [3]) r1 = Rule(pat1, [act1]) pat2 = Pattern(nw_src="10.0.0.1", nw_dst="10.0.0.10") r2 = Rule(pat2, []) c1 = SwitchConfiguration([r1,r2]) c2 = SwitchConfiguration([r1]) c3 = SwitchConfiguration([r2]) self.assertEqual(c1 - c2, c3)
def testPatternIntersect(self): pat1 = Pattern(dl_vlan=1) pat2 = Pattern(dl_vlan=2) act = Action("forward", [3]) r1 = Rule(pat1, [act]) r2 = Rule(pat2, [act]) c1 = SwitchConfiguration([r1]) c2 = SwitchConfiguration([r2]) pol1 = NetworkPolicy({1: c1}) pol2 = NetworkPolicy({1: c2}) self.assertEqual(pol1.pattern_intersect(pol2), NetworkPolicy())
def testPolicySum2(self): pat1 = Pattern(in_port=2) act1 = Action("forward", [3]) r1 = Rule(pat1, [act1]) c1 = SwitchConfiguration([r1]) pol1 = NetworkPolicy({1:c1}) pat2 = Pattern(in_port=3) r2 = Rule(pat2, []) c2 = SwitchConfiguration([r2]) pol2 = NetworkPolicy({1:c2}) pol3 = NetworkPolicy({1: c1 + c2}) self.assertEqual(pol1 + pol2, pol3)
def testConfigMembership(self): pat1 = Pattern(in_port=3, dl_type=2048, nw_src="10.0.0.2", nw_dst="10.0.0.12") act1 = Action("forward", [1]) r1 = Rule(pat1, [act1]) c = SwitchConfiguration([r1]) self.assertTrue(r1 in c)
def testPolicyBool(self): pat1 = Pattern(in_port=2) act1 = Action("forward", [3]) r1 = Rule(pat1, [act1]) c1 = SwitchConfiguration([r1]) pol1 = NetworkPolicy({1:c1}) self.assertTrue(pol1)
def testPolicyNotEmpty(self): pat1 = Pattern(in_port=2) act1 = Action("forward", [3]) r1 = Rule(pat1, [act1]) c1 = SwitchConfiguration([r1]) pol1 = NetworkPolicy({1:c1}) self.assertFalse(pol1.is_empty())
def testPolicyGetConfig(self): pat1 = Pattern(in_port=2) act1 = Action("forward", [3]) r1 = Rule(pat1, [act1]) c1 = SwitchConfiguration([r1]) pol1 = NetworkPolicy({1:c1}) self.assertEqual(c1, pol1[1])
ingress_config_1 = SwitchConfiguration([ Rule({core.IN_PORT: host0}, [forward(ingress_port_map[leftFilter])]), Rule({core.IN_PORT: host1}, [forward(ingress_port_map[leftFilter])]), Rule({core.IN_PORT: host2}, [forward(ingress_port_map[middleFilter])]), Rule({core.IN_PORT: host3}, [forward(ingress_port_map[rightFilter])]), Rule({ core.DL_TYPE: ethernet.IP_TYPE, core.NW_DST: host0_ip }, [forward(ingress_port_map[host0])]), Rule({ core.DL_TYPE: ethernet.IP_TYPE, core.NW_DST: host1_ip }, [forward(ingress_port_map[host1])]), Rule({ core.DL_TYPE: ethernet.IP_TYPE, core.NW_DST: host2_ip }, [forward(ingress_port_map[host2])]), Rule({ core.DL_TYPE: ethernet.IP_TYPE, core.NW_DST: host3_ip }, [forward(ingress_port_map[host3])]), # ARP Rule( { core.DL_TYPE: ethernet.ARP_TYPE, core.IN_PORT: ingress_port_map[leftFilter] }, [ forward(ingress_port_map[host0]), forward(ingress_port_map[host1]), forward(ingress_port_map[host2]), forward(ingress_port_map[host3]) ]), ])