def importTopologyFromBrite(self, britefile): parser = BriteParser(britefile) parser.doParse() self.all_hosts = parser.hosts self.links = parser.links self.routers = parser.routers self.__selectMulticastGroup__() self.multicast_source = self.selectRandomHost(self.multicast_group) self.__selectActiveHosts__()
def importTopologyFromBrite(self, britefile, group_size=0, initial_group_size=0, initial_source=0, delta_id=1): parser = BriteParser(britefile, delta_id) parser.doParse() self.all_hosts = parser.hosts self.links = parser.links self.routers = parser.routers print 'Parser Done: routers', len(self.routers), ' | hosts', len(self.all_hosts), ' | links', len(self.links) hosts_numbers = len(self.all_hosts) if group_size != 0: if hosts_numbers < group_size: raise Exception('Demanded group is bigger than the topology!') else: if initial_source != 0: if not self.isHost(initial_source): raise Exception('Demanded source is invalid!') self.multicast_source = self.getHostById(initial_source) self.multicast_group.append(self.multicast_source) if group_size >= 2: self.__selectMulticastGroup__(group_size-1) else: self.__selectMulticastGroup__(group_size) self.multicast_source = self.selectRandomHost(self.multicast_group) else: self.__selectMulticastGroup__(hosts_numbers/2 +1) self.multicast_source = self.selectRandomHost(self.multicast_group) print 'Multicast Group Selected:', len(self.multicast_group), 'hosts' print 'Multicast Source: ', self.multicast_source if initial_group_size != 0: if group_size - 1 < initial_group_size: raise Exception('Initial group size is bigger than the group size') else: self.__selectActiveHosts__( initial_group_size ) else: self.__selectActiveHosts__( (len(self.multicast_group)-1) / 2) print 'Active Hosts Selected:', len(self.active_hosts), 'hosts' #self.__calcLinksWeight__() #print 'Links Weight Calculated' print 'mimimimimimimimi'