[ns] My solution to the "Classifier::no-slot" error

Madhu Hosaagrahara madhu at io.ece.drexel.edu
Sat Jan 21 12:41:30 PST 2006


Hello,
		I had to spend this nice warm saturday afternoon debugging ns-2 : 
( since I encountered the
Classifier::no-slot error. A quick search on www.isi.edu/nsnam  
revealed lots of such queries, but few solutions that I could  
directly apply.
If you encounter the same error, this is probably the first (and  
easiest?) solution that you should try.

		 In my TCL script I was connecting the UDP and SINK agents before  
attaching them to the nodes. For e.g., my script had

	set udp_(0) [ new Agent/UDP]
	set sink_(0) [ new Agent/LossMonitor ]
        # set some parameters, including attaching the CBR
	$ns connect $udp_(0) $sink_(0) ### here goes one saturday afternoon

	$ns attach-agent $node_(1) $udp_(0)
	$ns attach-agent $node_(0) $sink_(0)

	I believe that it is this which causes the error - with my belief  
being supported by the following facts:
a) my simulation works if I move the "$ns connect $udp(0) $sink(0)"  
line to after the attach-agent's line with everything else remaining  
the same.
b) the following comment in ns-lib.tcl :   "#XXX need to check that  
agents are attached to nodes already"

	In summary, if you connect the agents before attaching them to the  
nodes, then I have verified that:
	a)  in the connect call,  the UDP agent immediately gets the ip of  
the sink  which is -1 since the sink is not (yet!) attached to any  
node. 	
			- see simplex-connect in ns-lib.tcl
	b) The UDP agent sends packets out with a destination of -1  for  
which the classifier is unable to find a slot, and hence (correctly)  
complains.
			- use gdb and tcldebug

Of course, YMMV and the standard disclaimers apply - especially  
because I am sure that there are other ways to get the same error.
~Madhu.


	
	




More information about the Ns-users mailing list