Ejemplo n.º 1
0
	def send(self, duration):
		"""Sends random messages for specified duration."""
		stop_time = simulator.scheduler.get_time() + duration
		while stop_time > simulator.scheduler.get_time():
			message = ''.join(random.choice(string.letters) for _ in xrange(self.message_len))
			self.host.send(Packet(self.host.ip, self.dest, message))
			yield sleep(random.expovariate(self.rate))
Ejemplo n.º 2
0
	def __transmit(self):
		"""Transmit packet."""
		packet = self.queue.pop()
		log('queue-end %d %d' % (self.id, packet.id))
		
		log('transmit-start %d %d' % (self.id, packet.id))
		self.busy = True
		yield sleep(packet.size / self.bandwidth)
		log('transmit-end %d %d' % (self.id, packet.id))
		
		self.busy = False
		if self.queue:
			simulator.new_thread(self.__transmit())
		
		log('propogate-start %d %d' % (self.id, packet.id))
		yield sleep(self.prop_delay)
		log('propogate-end %d %d' % (self.id, packet.id))
		
		yield self.dest.received(packet)