Problème avec mon script NS-2

Fermé
Doum - 30 sept. 2010 à 14:19
Bonjour,
J'aimerai que quelqu'un m'aide à résoudre mon problème c'est très urgent.
J'ai fait le script mais quand j'execute il ne genere pas les fichiers trace et nan, aussi je n'arrive pas observer ma simulation avec l'outil Nam.

Voici mon script sur la mobilité de IPV6:


# Basic Mobile IPv6 example without using ns-topoman

# Needs proc defined in file proc-mipv6-config.tcl



#Agent/MIPv6/MN set bs_forwarding_ 0

################################################################

proc log-mn-movement_no_topo { } {

global logtimer ns

Class LogTimer -superclass Timer

LogTimer instproc timeout {} {

global mobile_

$mobile_ log-movement

$self sched 1

}

set logtimer [new LogTimer]

$logtimer sched 1

}



################################################################

# Create Topology

################################################################

set opt(chan) Channel/WirelessChannel ;# channel type

set opt(prop) Propagation/TwoRayGround ;# radio-propagation model

set opt(netif) Phy/WirelessPhy ;# network interface type

set opt(mac) Mac/802_11 ;# MAC type

set opt(ifq) Queue/DropTail/PriQueue ;# interface queue type

set opt(ll) LL ;# link layer type

set opt(ant) Antenna/OmniAntenna ;# antenna model

set opt(ifqlen) 50 ;# max packet in ifq

set opt(nn) 1 ;# number of mobilenodes

set opt(adhocRouting) DSDV ;# routing protocol



set opt(cp) "" ;# cp file not used

set opt(sc) "" ;# node movement file.



set opt(x) 1500 ;# x coordinate of topology

set opt(y) 1500 ;# y coordinate of topology

set opt(seed) 0.0 ;# random seed

set opt(stop) 130 ;# time to stop simulation



set opt(ftp1-start) 10.0



set num_wired_nodes 4

#set num_bs_nodes 4 ; this is not really used here.



proc create-my-topo {} {

global ns opt topo mobile_ cn_ mnn_nodes_



# Create and define topography

set topo [new Topography]

# set prop [new $opt(prop)]

# $prop topography $topo

$topo load_flatgrid $opt(x) $opt(y)





# god is a necessary object when wireless is used

# set to a value equal to the number of mobile nodes

create-god 5



# Call node-config

$ns node-config \

-mipv6 ON \

-mipagent BS \

-mobileIP ON \

-wiredRouting ON \

-adhocRouting DSDV \

-llType LL \

-macType Mac/802_11 \

-ifqType Queue/DropTail/PriQueue \

-ifqLen 50 \

-antType Antenna/OmniAntenna \

-propType Propagation/TwoRayGround \

-phyType Phy/WirelessPhy \

-channelType Channel/WirelessChannel \

-topoInstance $topo \

-agentTrace ON \

-routerTrace ON







# Set NS Addressing

$ns node-config -addressType hierarchical

AddrParams set domain_num_ 5

AddrParams set cluster_num_ {4 1 1 1 1}

AddrParams set nodes_num_ {1 1 1 1 2 1 1 1 }



# Create Nodes

set cn_ [create-router 0.0.0]

set router1_ [create-router 1.0.0]

set router2_ [create-router 2.0.0]

set router3_ [create-router 3.0.0]

set bs1_ [create-base-station 1.1.0 1.0.0 200 200 0]

set bs2_ [create-base-station 1.2.0 1.0.0 200 600 0]

set bs3_ [create-base-station 1.3.0 1.0.0 600 200 0]

set bs4_ [create-base-station 1.4.0 1.0.0 600 600 0]

set mobile_ [create-mobile 1.1.1 1.1.0 190 190 0 1 0.01]

$bs1_ random-motion 0

$bs2_ random-motion 0

$bs3_ random-motion 0

$bs4_ random-motion 0



# Position (fixed) for base-station nodes (HA & FA).

$bs1_ set X_ 250.000000000000

$bs1_ set Y_ 1050.000000000000

$bs1_ set Z_ 0.000000000000



$bs2_ set X_ 950.000000000000

$bs2_ set Y_ 1050.000000000000

$bs2_ set Z_ 0.000000000000



$bs3_ set X_ 950.000000000000

$bs3_ set Y_ 300.000000000000

$bs3_ set Z_ 0.000000000000



$bs4_ set X_ 250.000000000000

$bs4_ set Y_ 300.000000000000

$bs4_ set Z_ 0.000000000000



# Create Links

$ns duplex-link $cn_ $router1_ 100Mb 2ms DropTail

$ns duplex-link $router1_ $router2_ 100Mb 2ms DropTail

$ns duplex-link $router1_ $router3_ 100Mb 2ms DropTail

$ns duplex-link $router2_ $bs1_ 100Mb 2ms DropTail

$ns duplex-link $router2_ $bs2_ 100Mb 2ms DropTail

$ns duplex-link $router3_ $bs3_ 100Mb 2ms DropTail

$ns duplex-link $router3_ $bs4_ 100Mb 2ms DropTail



$ns duplex-link-op $cn_ $router1_ orient down

$ns duplex-link-op $router1_ $router2_ orient left-down

$ns duplex-link-op $router1_ $router3_ orient right-down

$ns duplex-link-op $router2_ $bs1_ orient left-down

$ns duplex-link-op $router2_ $bs2_ orient right-down

$ns duplex-link-op $router3_ $bs3_ orient down

$ns duplex-link-op $router3_ $bs4_ orient right-down



# movement of the MH

$mobile_ set Z_ 0.000000000000

$mobile_ set Y_ 1000.000000000000

$mobile_ set X_ 250.000000000000



# MH starts to move towards FA1

$ns at 10.000000000000 "$mobile_ setdest 950.000000000000

1000.000000000000 20.000000000000"

# MH move from FA1 towards FA2

$ns at 50.000000000000 "$mobile_ setdest 950.000000000000

350.000000000000 20.000000000000"

# MH move from FA2 towards FA3

$ns at 85.000000000000 "$mobile_ setdest 250.000000000000

350.000000000000 20.000000000000"





display_ns_addr_domain

}



################################################################

# End of Simulation

################################################################

proc finish { } {

global tracef ns namf opt mobile_ cn_



puts "Simulation finished"

# Dump the Binding Update List of MN and Binding Cache of HA

[[$mobile_ set ha_] set regagent_] dump

[$cn_ set regagent_] dump

[$mobile_ set regagent_] dump



$ns flush-trace

flush $tracef

close $tracef

close $namf

#puts "running nam with $opt(namfile) ... "

exec nam $opt(namfile) &

exit 0

}





################################################################

# Main

################################################################

proc main { } {

global opt ns TOPOM namf n tracef mobile_ cn_

# Source Files

# source set-def-options.tcl

# set BASEDIR to your own correct path

source /home/Administrator/ns-allinone-2.1b6/ns-2.1b6/tcl/lib/proc-mipv6-config.tcl

source /home/Administrator/ns-allinone-2.1b6/ns-2.1b6/tcl/lib/proc-tools.tcl

source /home/Administrator/ns-allinone-2.1b6/ns-2.1b6/tcl/lib/proc-topo.tcl

source /home/Administrator/ns-allinone-2.1b6/ns-2.1b6/tcl/lib/ns-topoman.tcl

source /home/Administrator/ns-allinone-2.1b6/ns-2.1b6/tcl/lib/proc-mobi-global.tcl

source /home/Administrator/ns-allinone-2.1b6/ns-2.1b6/tcl/lib/proc-mobi-config.tcl

source /home/Administrator/ns-allinone-2.1b6/ns-2.1b6/tcl/mobility/timer.tcl







set NAMF out.nam

set TRACEF out.tr

set INFOF out.info



set opt(mactrace) ON

set opt(NAM) 1

set opt(namfile) $NAMF

set opt(stop) 130

set opt(tracefile) $TRACEF



#>--------------- Extract options from command line ---------------<

#Getopt ; # Get option from the command line

#DisplayCommandLine



#>---------------------- Simulator Settings ----------------------<

set ns [new Simulator]



#>------------------------ Open trace files ----------------------<

exec rm -f $opt(tracefile)

set tracef [open $opt(tracefile) w]

#... dump the file

$ns trace-all $tracef



set namf [open $opt(namfile) w]

$ns namtrace-all $namf



#>------------- Protocol and Topology Settings -------------------<

create-my-topo

log-mn-movement_no_topo



set-cbr

# set-ping-int 0.1 $cn_ $mobile_ 10 $opt(stop)











#>----------------------- Run Simulation -------------------------<

$ns at $opt(stop) "finish"

$ns run



$ns dump-topology $namf

close $namf

#puts "running nam with $opt(namfile) ... "

#exec nam $opt(namfile) &

}



proc set-cbr { } {

global ns cn_ mobile_

set tcp1 [new Agent/TCP]

$ns attach-agent $cn_ $tcp1



set dst [new Agent/TCPSink]

$ns attach-agent $mobile_ $dst

$ns connect $tcp1 $dst



set ftp1 [new Application/FTP]

$ftp1 set packetSize_ 1040

$ftp1 set rate_ 100k

$ftp1 set interval_ 0.05

$ftp1 attach-agent $tcp1

$ns at 10.0 "$ftp1 start"

}




















A voir également: