Installation of the Mobility Extensions




Step-by-step installation instructions for the ns extension

filediff outputcomments
Makefile.in:
146a147
> 	noah/noah.o sdist.o \
289a291
> 	tcl/mobility/noah.tcl \
add the new modules to OBJ_CC and NS_TCL_LIB respectively
wireless-phy.h:
74a75
>  	inline double getRXThresh() {return RXThresh_;}
needed by sdist.cc
cmu-trace.cc:
39a40,41
> /* modified Thomas Schwabe (ICSI) Sep. 2000 */
> 
235c237,239
< 	    sprintf(wrk_ + offset, "------- [%d:%d %d:%d %d %d] ",
---
> 		// TS
> 		/*
> 		sprintf(wrk_ + offset, "------- [%d:%d %d:%d %d %d] ",
238a243,249
> 		*/
> 
> 		sprintf(wrk_ + offset, "------- %d [%s.%d %s.%d %d %d] ",
> 			ih->flowid(),                   // flow id
> 			Address::instance().print_nodeaddr(src), ih->sport(),
> 			Address::instance().print_nodeaddr(dst), ih->dport(),
> 			ih->ttl_, (ch->next_hop_ < 0) ? 0 : ch->next_hop_);
742a754,758
> 		// TS
> 		case PT_EXP:
> 			format_rtp(p, offset);
> 			break;
optional: only needed for the plotting scripts
mip.h:replace with mip.hredesigned
mip-reg.cc:replace with mip-reg.ccredesigned
sdist:add sdist.h and sdist.ccnew module
noah:add noah.h and noah.cc in new subdirectory noah/new module
NOTE: for newer versions of ns-2 (2.26), use the following code in noah.cc instead of the old NOAH_Agent::trace.
void
NOAH_Agent::trace (char *fmt,...)
{
  va_list ap;

  if (!tracetarget)
    return;

  va_start (ap, fmt);
  vsprintf (tracetarget->pt_->buffer (), fmt, ap);
  tracetarget->pt_->dump ();
  va_end (ap);
}
tcl/mobility/noah.tcl:add noah.tcl to tcl/mobility/new file
tcl/lib/ns-lib.tcl.h:
178a179
> source ../mobility/noah.tcl
251c252
< #                  -adhocRouting   DSDV/DSR/TORA
---
> #                  -adhocRouting   DSDV/DSR/TORA/NOAH
433c434,435
<               if {[info exists wiredRouting_] && $wiredRouting_ == "ON"} {
---
>               # JCW
>               #if {[info exists wiredRouting_] && $wiredRouting_ == "ON"} {
435c437
<               }
---
>               #}
481a484,487
>           # TS_JCW
>           NOAH {
>                   set ragent [$self create-noah-agent $node]
>           }
621a628,653
> }
> 
> # TS_JCW
> Simulator instproc create-noah-agent { node } {
>     # Create a noah routing agent for this node
>     set ragent [new Agent/NOAH]
> 
>     ## setup address (supports hier-addr) for noah agent
>     ## and mobilenode
>     set addr [$node node-addr]
> 
>     $ragent addr $addr
>     $ragent node $node
> 
>     if [Simulator set mobile_ip_] {
>         $ragent port-dmux [$node set dmux_]
>     }
>     $node addr $addr
>     $node set ragent_ $ragent
> 
>     #delay till after add interface 
> #   $node attach $ragent 255
> 
>     #$self at 0.0 "$ragent start-noah"    ;# start updates
> 
>     return $ragent
include procedure to create a NOAH agent
tcl/lib/ns-default.tcl:
775c775
< Agent/MIPMH set reg_rtx_ 0.5
---
> Agent/MIPMH set reg_rtx_ 3.0
optional: increase retransmission timeout value for mobile host registration messages



Jörg Widmer widmer@informatik.uni-mannheim.de
Last modified: Tue Aug 5 12:08:21 CEST 2003