def main(): parser = argparse.ArgumentParser() parser.add_argument("--hosts", "-nh", default="1000", help="No. of hosts you want in your network") parser.add_argument("--measurePolicies", "-c", default="40", help="enter no. of measurement policies to create") args = parser.parse_args() print("hosts:", args.hosts) print("Number of measurement policies: ", args.measurePolicies) file_measurementPolicies = open('MeasurementPolicies.txt', 'w').close() file_measurementPolicies = open('MeasurementPolicies.txt', 'w') s = Subnet() subnetList = s.createSubnets(int(args.hosts)) m = MeasurementPolicies() listPolicies = [] listPolicies = m.generateMeasurementPolicies(subnetList, set(subnetList), int(args.measurePolicies)) for each_measure_policy in listPolicies: assert isinstance(each_measure_policy, Policy) string= str(each_measure_policy.getSource()) + str(', '+str(each_measure_policy.getDest())) \ + str(', '+str(each_measure_policy.getAction())+'\n') print(string) file_measurementPolicies.write(string) ## writing into file print("total no. of measurement policies", len(listPolicies))
def main(): parser = argparse.ArgumentParser() parser.add_argument("--hosts", "-nh", default="1000", help="No. of hosts you want in your network") parser.add_argument( "--policyType", "-t", default="light", help="To create policy light network, argument: 'light' " + '\n' + "To create policy heavy network, argument: 'heavy' ") parser.add_argument("--measurePolicies", "-c", default="40", help="enter no. of measurement policies to create") args = parser.parse_args() print("hosts:", args.hosts) print("policy type:", args.policyType) s = Subnet() subnetList = s.createSubnets(int(args.hosts)) print("total no. of subnets created:", len(subnetList)) totalPolicyUnits = 0 if args.policyType == "light": destinationGraph = [(60, 50), (100, 100)] sourceGraph = [(17, 50), (100, 100)] totalPolicyUnits = 2 else: destinationGraph = [(1, 13), (3, 37), (5, 50), (6, 59), (7, 65), (8, 70), (10, 75), (18, 80), (19, 88), (20, 90), (21, 94), (54, 98), (75, 100)] sourceGraph = [(1, 1), (1, 2), (2, 4), (2.3, 10), (2.4, 12), (2.5, 15), (2.6, 18), (2.7, 20), (2.8, 23), (2.9, 26), (3, 29), (3.1, 32), (3.7, 35), (4.5, 38), (5, 40), (6, 42), (7, 44), (8, 46), (9, 48), (10, 50), (11, 52), (12, 54), (13, 56), (14, 58), (15, 60), (17, 63), (19, 66), (20, 70), (22, 73), (24, 76), (26, 80), (28, 82), (29, 84), (30, 87), (31, 90), (33, 92), (34, 96), (100, 100)] totalPolicyUnits = 40 destinationInfoObj = DestInfo() sourceInfoObj = SourceInfo() list_PolicyUnits = destinationInfoObj.traverseDestInfoGraph( destinationGraph, totalPolicyUnits, subnetList) print("total policy units: ", len(list_PolicyUnits)) fwd_policies = [] fwdPolicies = sourceInfoObj.traverseSourceInfoGraph( sourceGraph, list_PolicyUnits, subnetList) print(len(fwdPolicies), "total no. of end point reachability policies") print("set of destinations: ", destinationInfoObj.set_selectedDestIPs) print("measurement policy part") m = MeasurementPolicies() listMeasurePolicies = [] noMeasurePolicies = int(args.measurePolicies) measurePolicies = m.generateMeasurementPolicies( subnetList, destinationInfoObj.set_selectedDestIPs, noMeasurePolicies) for each_policy in measurePolicies: assert isinstance(each_policy, Policy) print(each_policy.getSource(), "source", each_policy.getDest(), "destination", each_policy.getAction(), "action") print(len(measurePolicies), "finally finished") o = Overlap() list_match_count = o.getOverlappedPolicies(fwdPolicies, measurePolicies) print(list_match_count, "list of match count") print(len(list_match_count)) count = 0 for each_element in list_match_count: count = count + each_element print(count, "total count")