[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ns] How to set parameters on existing link's queue?



Good afternoon-

I'm trying to get a handle/pointer/(whatever tcl calls it) to the queue between
two nodes after having created them with the commands
	set s1 [$ns node]
	set r1 [$ns node]
	$ns duplex-link $s1 $r1 10Mb 4ms DropTail
because I want to alter the default queueing parameters for just this one link.

How would I go about doing this?


I've tried the following for no good reason (grepped samples for 'queue' and
'link' and found similar code)
	$ns instvar link_
	[[$link([$s1 id]:[$r1 id]) queue] set limit_]
but ns core dumps on the 'instvar' line. GDB tracing gives the following:

Program received signal SIGSEGV, Segmentation fault.
OTclOInstVarOne (obj=0x8304338, in=0x8288a48, frameName=0x8206d0b "1",
varName=0x839b268 "link_", 
    localName=0x839b268 "link_", flags=0) at otcl.c:1429
1429	  CallFrame* saved = iPtr->varFramePtr->callerVarPtr;
(gdb) l
1424	 */
1425	int
1426	OTclOInstVarOne(OTclObject* obj, Tcl_Interp *in, char *frameName, char
*varName, char *localName, int flags)
1427	{
1428	  Interp* iPtr = (Interp*)in;
1429	  CallFrame* saved = iPtr->varFramePtr->callerVarPtr;
1430	  int level = iPtr->varFramePtr->level;
1431	  int result = TCL_ERROR;
1432	
1433	  /*
(gdb) where
#0  OTclOInstVarOne (obj=0x8304338, in=0x8288a48, frameName=0x8206d0b "1",
varName=0x839b268 "link_", 
    localName=0x839b268 "link_", flags=0) at otcl.c:1429
#1  0x80fba35 in OTclOInstVarMethod (cd=0x8304338, in=0x8288a48, argc=5,
argv=0xbfffedc8) at otcl.c:1462
#2  0x80f9dd8 in OTclDispatch (cd=0x8304338, in=0x8288a48, argc=3,
argv=0xbfffee10) at otcl.c:421
#3  0x80fe674 in TclInvokeStringCommand ()
#4  0x8116124 in TclExecuteByteCode ()
#5  0x80fee7c in Tcl_EvalObj ()
#6  0x812748c in Tcl_EvalFile ()
#7  0x8129203 in Tcl_Main ()
#8  0x804c85b in main ()
#9  0x4013a9cb in __libc_start_main (main=0x804c840 <main>, argc=15,
argv=0xbffff8f4, init=0x804b9c4 <_init>, 
    fini=0x8167afc <_fini>, rtld_fini=0x4000ae60 <_dl_fini>,
stack_end=0xbffff8ec) at ../sysdeps/generic/libc-start.c:92
(gdb) p (*(Interp*)in).varFramePtr
$4 = (CallFrame *) 0x0

So obviously I'm telling it to dereference a null, which is A Bad Thing.

Any insight or pointers to the appropriate documentation would be appreciated.

-Eric

----------------------------------------------
 Eric H. Weigle   CIC-5 Network Engineering
 [email protected]     Los Alamos National Lab
 (505) 665-4937   http://public.lanl.gov/ehw/
----------------------------------------------