Hi, First time posting here. I studied famous document "Implementing new MANET protocol in ns-2" n wrote the same code in ns-2. that was compiled OK. I made necessary changes in ns-2 files as packet type declaration in common/packet.h and so on n added changes in ns-lib.tcl for routing agent.
Added code is of the above mentioned tutorial as under in tcl/lib/ns-lib.tcl Simulator instproc create-wireless-node args { switch -exact $routingAgent_ { Protoname { set ragent [$self create-protoname-agent $node] } } } and the this procedure implementation is as under in tcl/lib/ns-lib.tcl Simulator instproc create-protoname-agent { node } { # Create Protoname routing agent set ragent [new Agent/Protoname [$node node-addr]] $self at 0.0 "$ragent start" $node set ragent_ $ragent return $ragent } After making all the chnages i recompile ns-2 by typing make at ns-2 dir n it got compiled well. But when i try to use this protocol in my simulation script, it couldnt find ( i think so) the protocol mentioned in ns-lib.tcl and produce the following error. [EMAIL PROTECTED]:/home/programs# ns test-wireless.tcl num_nodes is set 2 (_o14 cmd line 1) invoked from within "_o14 cmd addr" invoked from within "catch "$self cmd $args" ret" invoked from within "if [catch "$self cmd $args" ret] { set cls [$self info class] global errorInfo set savedInfo $errorInfo error "error when calling class $cls: $args" $..." (procedure "_o14" line 2) (SplitObject unknown line 2) invoked from within "_o14 addr" ("eval" body line 1) invoked from within "eval $node addr $args" ("default" arm line 2) invoked from within "switch -exact $routingAgent_ { DSDV { set ragent [$self create-dsdv-agent $node] } DSR { $self at 0.0 "$node start-dsr" } AODV { set ragent [$self cre..." (procedure "_o3" line 11) (Simulator create-wireless-node line 11) invoked from within "_o3 create-wireless-node" ("eval" body line 1) invoked from within "eval $self create-wireless-node $args" (procedure "_o3" line 23) (Simulator node line 23) invoked from within "$ns_ node" ("for" body line 2) invoked from within "for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;# disable random motion }" (file "test-wireless.tcl" line 98) [EMAIL PROTECTED]:/home/programs# To my best efforts i can only say that ns-lib.tcl is not getting recompiled. i 'm saying it because i comment out one of the existing protocol name AODV recompile ns2 n still using that protocol in my simulation scripts well. How can i force ns2 to reconsider this file while recompiling.??? Any other suggestions also welcomed. I 'm using ns2.29 all in one package on slackware distribution. Thanx ---- Love not soldiers because they die young...