What´s the version of your ns-2? Regards,
Luís Barreto On Sat, Nov 15, 2008 at 3:02 PM, Massimo Reineri <[EMAIL PROTECTED]>wrote: > Hello to everybody! > I would know your opinion about my solution. > I'm working in MANET routing context and I'm simulating a simple network > made up > by 4 fixed wireless nodes (A,B,C,D) with mac layer 802_11 (dataRate_ set to > 11Mb) > and a mobile node (E) with mac layer 802_11 but dataRate_ set to 1Mb that > moves from the > left side to the right side of the network as shown in the next picture: > > | A | | B | | C | | D | > > ----->>----| E |--->>------------->>----------------- > > Now I want to check the data throughput for the communication among node A > and node E and viceversa. > The simulator seams to run correctly but I'm not sure that the current > implementation > of the mac layer mac-802_11.{h,cc} allows me to deal with this scenario, > i.e. it allows me to > use different channel capacities in the same wireless network. > > The used simulation script is the following one: > > # ====================================================================== > # Define options > # ====================================================================== > # following options are to define a network feature: default values > 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) 5 ;# number of mobilenodes > set opt(rp) OLSR ;# routing protocol > set opt(x) 500 ;# X-dimention for the topology > set opt(y) 550 ;# Y-dimention for the topology > set opt(packetSize) 400 ;# packet size for CBR traffic in Bytes > set opt(rate) 80Kb ;# CBR traffic bit rate > set opt(speed) 3.0 ;# mobile node linear speed in m/sec > set opt(startCBR) 100 ;# CBR flow start time in seconds > set opt(stopCBR) 600 ;# CBR flow end time in seconds > set opt(stopSimulation) 650 ;# Simulation end time in seconds > proc usage {} { > puts {manet_net.tcl: Usage> ns manet_net.tcl } > puts {PARAMETERS NEED NOT BE SPECIFIED... DEFAULTS WILL BE USED} > exit > } > > if {[string compare $opt(rp) "OLSR"] == 0} { > Agent/OLSR > set use_mac_ true > } > puts "This is a basic manet network" > # ===================================================================== > # Main Program > # ====================================================================== > > # Initialize a network simulator > set ns_ [new Simulator] > set tracefd [open manet_net.tr w] > $ns_ trace-all $tracefd > > # Initialize nam trace for netwrok visualization > set namtrace [open manet_net.nam w] > $ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y) > > # Set up topography object > set topo [new Topography] > $topo load_flatgrid $opt(x) $opt(y) > > # Create God > set god_ [create-god $opt(nn)] > set chan_1_ [new $opt(chan)] > > # Create the specified number of mobilenodes [$opt(nn)] and "attach" them > # to the channel. > > # Configure the node features > Mac/802_11 set dataRate_ 11Mb > Mac/802_11 set PLCPdataRate_ 11Mb > $ns_ node-config -adhocRouting $opt(rp) \ > -llType $opt(ll) \ > -macType $opt(mac) \ > -ifqType $opt(ifq) \ > -ifqLen $opt(ifqlen) \ > -antType $opt(ant) \ > -propType $opt(prop) \ > -phyType $opt(netif) \ > -channel $chan_1_ \ > -topoInstance $topo \ > -agentTrace ON \ > -routerTrace ON \ > -macTrace OFF \ > -movementTrace ON > > #in order to compute this threshold run the program in > indeep-utils/propagation/threshold > #command ./threshold -m TwoRayGround 200 > > Phy/WirelessPhy set RXThresh_ 1.42681e-08 ;# 100 m > set node_(0) [$ns_ node] > $node_(0) random-motion 0 > > Phy/WirelessPhy set RXThresh_ 1.42681e-08 ;# 100 m > set node_(1) [$ns_ node] > $node_(1) random-motion 0 > > Phy/WirelessPhy set RXThresh_ 1.42681e-08 ;# 100 m > set node_(2) [$ns_ node] > $node_(2) random-motion 0 > > Phy/WirelessPhy set RXThresh_ 1.42681e-08 ;# 100 m > set node_(3) [$ns_ node] > $node_(3) random-motion 0 > > Phy/WirelessPhy set RXThresh_ 1.42681e-08 ;# 100 m > Mac/802_11 set dataRate_ 1Mb > Mac/802_11 set PLCPdataRate_ 1Mb > $ns_ node-config -adhocRouting $opt(rp) \ > -llType $opt(ll) \ > -macType $opt(mac) \ > -ifqType $opt(ifq) \ > -ifqLen $opt(ifqlen) \ > -antType $opt(ant) \ > -propType $opt(prop) \ > -phyType $opt(netif) \ > -channel $chan_1_ \ > -topoInstance $topo \ > -agentTrace ON \ > -routerTrace ON \ > -macTrace OFF \ > -movementTrace ON > set node_(4) [$ns_ node] > $node_(4) random-motion 0 > > # Provide initial (X,Y, for now Z=0) co-ordinates for mobilenodes > # Set of linear x-axis placed nodes > $node_(0) set X_ 5.0 ; $node_(0) set Y_ 495.0 > $node_(1) set X_ 103.0 ; $node_(1) set Y_ 495.0 > $node_(2) set X_ 201.0 ; $node_(2) set Y_ 495.0 > $node_(3) set X_ 299.0 ; $node_(3) set Y_ 495.0 > $node_(4) set X_ 5.0 ; $node_(4) set Y_ 460.0 > > # Apply the initial-position to every nodes in the topology > for {set i 0} {$i < $opt(nn) } {incr i} { > $node_($i) > random-motion 0 ;# disable random motion > $ns_ initial_node_pos > $node_($i) 20 ;# set size of nodes (Only graphical info for nam) > } > > # Now produce some simple linear movements for node 11 toward the x-axis > # All the other nodes still to be fixed in place > $ns_ at 200.1 "$node_(4) setdest 389.0 460.0 $opt(speed)" > $ns_ at 400.1 "$node_(4) setdest 5.0 460.0 $opt(speed)" > > #Set UDP agent and cbr agent for traffic generation > set udp4 [new Agent/UDP] > $ns_ attach-agent $node_(4) $udp4 > $udp4 set class_ 0 > set cbr4 [new Application/Traffic/CBR] > $cbr4 attach-agent $udp4 > $cbr4 set packetSize_ $opt(packetSize) > $cbr4 set rate_ $opt(rate) > > #Set null agent for packet reception > set null4 [new Agent/Null] > $ns_ attach-agent $node_(0) $null4 > > # Make a connection between UDP and CBR agents > $ns_ connect $udp4 $null4 > $ns_ at $opt(startCBR) "$cbr4 start" > > # End the scenario > $ns_ at $opt(stopCBR) "$cbr4 stop" > $ns_ at $opt(stopSimulation).0 "puts \"NS EXITING...\" ; $ns_ halt" > $ns_ at $opt(stopSimulation).1 "stop" > proc stop {} { > global ns_ tracefd namtrace > $ns_ flush-trace > close $tracefd > close $namtrace > # execute NAM using a trace file > exec nam manet_net.nam & > } > > puts "Starting Simulation..." > $ns_ run > > In other words, I would that the fixed nodes communicate among themself > using a 11Mbps channel and that the communication among > a fixed node and a moving one takes place using a 1Mbps channel. > Any help can be very useful and so thank you in advance for your attention! > > Best regards, > Massimo >