def createPolicyUnits(self, numPolicyUnits, num_spannedAPs, accessPoints): policyUnits = [] # from DestGraph, we can just set Destinations and actions for Policy Units for index in range(0, numPolicyUnits, 1): #### accessPointsInCurrentPolicyUnit = accessPoints spanned in the current policy units accessPointsInCurrentPolicyUnit = random.sample( accessPoints, num_spannedAPs) list_subnetAddr = [] # get all subnets for each_router in accessPointsInCurrentPolicyUnit: list_subnetAddr.extend(each_router) if len(list_subnetAddr) > 20: list_destAddresses = random.sample(list_subnetAddr, 20) else: list_destAddresses = list_subnetAddr p = Policy() p.setDest(list_destAddresses) a = Action.forward # action type: forward p.setAction(a) policyUnits.append(p) ### Update set_selectedDestIPs subSet_destIPs = set([]) ### add each subnet address in accessPointsInCurrentPolicyUnit, ### add that subnet address into set_selectedDestIps self.set_selectedDestIPs.update(set(list_destAddresses)) #subSet_destIPs = list(sublist_destIPs) #self.set_selectedDestIPs.update(subSet_destIPs) return policyUnits
def setSource(self,policyUnit,endHosts_toAssign): # assert isinstance(policyUnit,Policy) for each_endHost in endHosts_toAssign: p=Policy() p.setSource(each_endHost) p.setAction(policyUnit.getAction()) p.setDest(policyUnit.getDest()) self.policies.append(p)
def addMeasurementPolicies(self, listNodes): for each_node in listNodes: assert isinstance(each_node, Node) p = Policy() p.setDest(each_node.dstIP) a = Action(3) # action type: count p.setAction(a) p.setSource(each_node.srcIP) self.listPolicies.append(p)
def addMeasurementPolicies(self,listNodes): for each_node in listNodes: assert isinstance(each_node,Node) p=Policy() p.setDest(each_node.dstIP) a = Action(3) # action type: count p.setAction(a) p.setSource(each_node.srcIP) self.listPolicies.append(p)