vlan.tcl delay - bug?

Tarik Alj Tarik Alj <aljtarik@ozias.inrs-telecom.uquebec.ca>
Thu, 6 Jan 2000 10:39:15 -0500 (EST)


If you are using mac-802.3 you should be aware that collision detection is 
tightly linked to the maximum delay packets are experiencing (and therefore to 
the length of cable used and the bandwidth). 

LL is a child of linkdelay, not delaylink. linkdelay is really a class of 
connector that induces a delay, not some sort of link.

vlan.tcl is "configured" for plain MAC, not mac-802.3. If you want to set the 
Channel delay, you can do so in LanIface::init. 

Now the Notes (now NS-Manual) say:

Channel : delay_ is propagation delay on the Channel

LL : delay_ is link-level overhead.

So I would agree with your understanding.

> Date: Wed, 5 Jan 2000 14:51:00 -0500 (EST)
> From: Wing-Chung Hung <hungw@jupiter.nal.utoronto.ca>
> X-Sender: hungw@uranus
> To: Tarik Alj <aljtarik@ozias.inrs-telecom.uquebec.ca>
> cc: ns users mail list <ns-users@mash.cs.berkeley.edu>
> Subject: Re: vlan.tcl delay - bug?
> MIME-Version: 1.0
> 
> 
> Here are my understand:
> 
> 1.
> 
> LL is a child of DelayLink which is a child of link.
> In a point to point connection (not lan), the delay_ of link, I think, is
> the propagation delay (the time it take for a bit of information from
> transmitter to receiver) and there is no channel in such topology.
> 
> 2.
> 
> when I create a lan using make-lan
> 
>   set lan [$ns make-lan $nodelist $bw $delay LL Queue/DropTail Mac]
> 
> I am thinking that the $delay is the delay is the propagation
> (channel) delay between a transmitting and a receiving node.  I.e. it
> should be the delay_ of a channel.
> 
> In channel.cc, delay_  actually means propagation dealy and is used for
> collison calculation.
> 
> double 
> Channel::get_pdelay(Node* /*tnode*/, Node* /*rnode*/)
> {
> 	// Dummy function
> 	return delay_;
> }
> 
> By assigning the $delay to the delay_ of LL, this delay means the amount
> of time the packet stay in a node before being send to it's downtarget_
> which is the queue.  This is reflected in ll.cc
> 
> from ll.cc
> 
> void LL::sendDown(Packet* p)
> {	
> 	...
> 	if (tx == 0) {
> 		Scheduler& s = Scheduler::instance();
> 		s.schedule(downtarget_, p, delay_);
> 	}
> }
> 
> 
> My conclusion is that the $delay argument in make-lan
>   
>   set lan [$ns make-lan $nodelist $bw $delay LL Queue/DropTail Mac]
> 
> means the inbound processing delay (the amount of time to stay in the node
> before being queue for transmission), and is not related to propagation
> dealy.
> 
> Please comment.
> 
> Thanks.
> 
> -- Wing-Chung
> 

Tarik