コード例 #1
0
 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__()
コード例 #2
0
ファイル: TopologyManager.py プロジェクト: Zemeio/CastFlow
 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'