Hullo Shalom, You've most probably not gone through all the necessary steps of adding a new protocol.
Most importantly, you need to modify the "Makefile.in" file in the ns-2.34 (or your version of ns-2) directory and add all the necessary inclusions, then run "make" again to create the right executables for your protocol. I have also attached a pdf (it was sent by someone on this email thread a while ago) on the steps involved in implementing a new protocol. I hope that will help. Kind regards, Nicholas Mbonimpa On Tue, Nov 6, 2012 at 4:13 PM, Shalom <maximekab...@gmail.com> wrote: > > > Good afternoon Ns-users! > > I am trying to implement ETX (Expected Transmission Count) and IBETX > (Interference Bandwidth adjusted ETX) as routing metric into the AODV > routing protocol and DSDV routing protocol respectively in NS-2.34. I > created another identical AODV and DSVD ad hoc routing protocols file and > I > made some changes into AODV and DSDV file in order to incorporate ETX and > IBETX as routing metric respectively. After that i renamed all AODV and > DSDV > files (.cc & .h) to AODVETX and DSDVIBETX files (.cc & .h). I have changed > all the words where the aodv and dsdv words appear by aodvetx and > dsdvibetx > words (c++ Classes, Packets headers, variables, TCL bindings,..). After run > "Make clean and "Make" it compiles fine. But during execution of tcl file > with new protocol code I am getting following errors. I have carefully > implemented code step by step by thoroughly reading ns material on internet > and ebooks. I shall be highly thankful to you > > > > > (_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 14) > (Simulator create-wireless-node line 14) > 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 1} {$i <= $val(nn) } { incr i } { > set node_($i) [$ns node] > }" > > -- > View this message in context: > http://old.nabble.com/Getting-error-when-running-a-tcl-script-after-adding-a-new-routing-protocol-tp34647085p34647085.html > Sent from the ns-users mailing list archive at Nabble.com. > >