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

[ns] is it possible to run multiple dynamic routing protocols on a node(fwd)



i did not get a reply to this, so i am posting it again.
please do reply, because it seems that this is a bug, and find it
strange that no one is interested in either refuting or correcting it.
ns developers ??

-- 
-------------------------------------------------------------
amardeep singh
iit  guwahati
[email protected]

---------- Forwarded message ----------
Date: Mon, 18 Jun 2001 16:23:52 +0300 (EET DST)
From: Amardeep Singh <[email protected]>
To: [email protected]
Subject: is it possible to run multiple dynamic routing protocols on a node

hi,

1.
is it possible to run multiple dynamic routing protocols on a node

the example program ~ns/tcl/ex/simple-rtg.tcl runs fine
but when i add a line
$ns rtProto LS
after the line
$ns rtProto DV
and try to run it,
it gives the following error message:

210
0.001
can't read "rtobj(_o11)": no such variable
    while executing
"$rtobj($node) compute-routes"
    (procedure "rtObject" line 8)
    (rtObject init-all line 8)
    invoked from within
"rtObject init-all _o11 _o18 _o25"
    ("eval" body line 1)
    invoked from within
"eval rtObject init-all $nodeslist"
    (procedure "Agent/rtProto/LS" line 8)
    (Agent/rtProto/LS init-all line 8)
    invoked from within
"Agent/rtProto/LS init-all {_o11 _o18 _o25}"
    ("eval" body line 1)
    invoked from within
"eval Agent/rtProto/$proto init-all $rtprotos_($proto)"
    (procedure "_o103" line 5)
    (RouteLogic configure line 5)
    invoked from within
"[$self get-routelogic] configure"
    (procedure "_o4" line 4)
    (Simulator run line 4)
    invoked from within
"$ns run
"


is this a bug, or this facility is not provided yet as from ns
documentation, it seems that we are allowed to run multiple routing
agents on a single node

i came across this while reading source code of ns, and found the way
rtObject proc init-all args
is declared ie.
rtObject proc init-all args {
    foreach node $args {
	if { [$node rtObject?] == "" } {
	    set rtobj($node) [new rtObject $node]
	}
    }
    foreach node $args {	;# XXX
        $rtobj($node) compute-routes
    }
}

so if a node already has a rtObject initialized, it would not be added
to rtobj in the first loop, but in second loop, rtobj($node) would be
calles with all nodes

2.
ns documentation seems to suggests that
$ns rtProto DV $n0 $n1 $n2
should work
but it doesn't work
although $ns rtProto DV "$n0 $n1 $n2" works
am i doing something wrong

amardeep