⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-be.tcl

📁 Ns2下Wimax的代码
💻 TCL
字号:
# Test for 802.16 scheduler.# @author rouil# @date 03/25/2007# Test file for wimax# Scenario: Communication between MN and Sink Node with MN attached to BS.#           Using grep ^r out.res | grep MAC | grep -c cbr you can see the number of#           mac packets received at the BS.#           Using grep ^s out.res | grep MAC | grep -c cbr you can see the number of #           mac packets sent (200 packets). #           ## Topology scenario:###	        |-----|          #	        | MN0 |                 ; 1.0.1 #	        |-----|        ###		  (^)#		   |#	    |--------------|#           | Base Station | 		; 1.0.0#           |--------------|#	    	   |#	    	   |#	     |-----------|#            | Sink node | 		; 0.0.0#            |-----------|##check input parametersif {$argc != 1} {	puts ""	puts "Wrong Number of Arguments! No arguments in this topology"        puts "Syntax: ns test-be.tcl nbMNs"	puts ""	exit (1)}# set global variablesset nb_mn [lindex $argv 0]				;# max number of mobile nodeset packet_size	1500			;# packet size in bytes at CBR applications set output_dir .set gap_size 1 ;#compute gap size between packetsputs "gap size=$gap_size"set traffic_start 20set traffic_stop  120set simulation_stop 140set diuc 7 ;#modulation for MNs#define debug valuesMac/802_16 set debug_ 0Mac/802_16 set rtg_ 20Mac/802_16 set ttg_ 20Mac/802_16 set frame_duration_ 0.005Mac/802_16 set client_timeout_ 50 ;#to avoid BS disconnecting the SSPhy/WirelessPhy/OFDM set g_ 0.25#define coverage area for base station: 20m coverage Phy/WirelessPhy set Pt_ 0.025#Phy/WirelessPhy set freq_ 2412e+6#Phy/WirelessPhy set RXThresh_ 2.90781e-09Phy/WirelessPhy set RXThresh_ 2.025e-12 ;#500m radiusPhy/WirelessPhy set CSThresh_ [expr 0.9*[Phy/WirelessPhy set RXThresh_]]# Parameter for wireless nodesset opt(chan)           Channel/WirelessChannel    ;# channel typeset opt(prop)           Propagation/TwoRayGround   ;# radio-propagation modelset opt(netif)          Phy/WirelessPhy/OFDM       ;# network interface typeset opt(mac)            Mac/802_16/BS              ;# MAC typeset opt(ifq)            Queue/DropTail/PriQueue    ;# interface queue typeset opt(ll)             LL                         ;# link layer typeset opt(ant)            Antenna/OmniAntenna        ;# antenna modelset opt(ifqlen)         50              	   ;# max packet in ifqset opt(adhocRouting)   DSDV                       ;# routing protocolset opt(x)		1100			   ;# X dimension of the topographyset opt(y)		1100			   ;# Y dimension of the topographyMac/802_11 set basicRate_ 11MbMac/802_11 set dataRate_ 11MbMac/802_11 set bandwidth_ 11Mb#defines function for flushing and closing filesproc finish {} {        global ns tf output_dir nb_mn        $ns flush-trace        close $tf	exit 0}#create the simulatorset ns [new Simulator]$ns use-newtrace#create the topographyset topo [new Topography]$topo load_flatgrid $opt(x) $opt(y)#puts "Topology created"#open file for traceset tf [open $output_dir/out.res w]$ns trace-all $tf#puts "Output file configured"# set up for hierarchical routing (needed for routing over a basestation)#puts "start hierarchical addressing"$ns node-config -addressType hierarchicalAddrParams set domain_num_ 2          			;# domain numberlappend cluster_num 1 1            			;# cluster number for each domain AddrParams set cluster_num_ $cluster_numlappend eilastlevel 1 [expr ($nb_mn+1)] 		;# number of nodes for each cluster (1 for sink and one for mobile nodes + base stationAddrParams set nodes_num_ $eilastlevelputs "Configuration of hierarchical addressing done"# Create Godcreate-god [expr ($nb_mn + 2)]				;# nb_mn + 2 (base station and sink node)#puts "God node created"#creates the sink node in first addressing space.set sinkNode [$ns node 0.0.0]#provide some co-ord (fixed) to base station node$sinkNode set X_ 50.0$sinkNode set Y_ 50.0$sinkNode set Z_ 0.0#puts "sink node created"#creates the Access Point (Base station)$ns node-config -adhocRouting $opt(adhocRouting) \                 -llType $opt(ll) \                 -macType Mac/802_16/BS \                 -ifqType $opt(ifq) \                 -ifqLen $opt(ifqlen) \                 -antType $opt(ant) \                 -propType $opt(prop)    \                 -phyType $opt(netif) \                 -channel [new $opt(chan)] \                 -topoInstance $topo \                 -wiredRouting ON \                 -agentTrace ON \                 -routerTrace ON \                 -macTrace ON  \                 -movementTrace OFF#puts "Configuration of base station"set bstation [$ns node 1.0.0]  $bstation random-motion 0#puts "Base-Station node created"#provide some co-ord (fixed) to base station node$bstation set X_ 550.0$bstation set Y_ 550.0$bstation set Z_ 0.0[$bstation set mac_(0)] set-channel 0# creation of the mobile nodes$ns node-config -macType Mac/802_16/SS \                -wiredRouting OFF \                -macTrace ON  				;# Mobile nodes cannot do routing.for {set i 0} {$i < $nb_mn} {incr i} {	set wl_node_($i) [$ns node 1.0.[expr $i + 1]] 	;# create the node with given @.		$wl_node_($i) random-motion 0			;# disable random motion	$wl_node_($i) base-station [AddrParams addr2id [$bstation node-addr]] ;#attach mn to basestation	#compute position of the node        $wl_node_($i) set X_ [expr 340.0]        #$ns at 4.0 "$wl_node_($i) set X_ 80"        #$ns at 6.0 "$wl_node_($i) set X_ 50"	$wl_node_($i) set Y_ 550.0	$wl_node_($i) set Z_ 0.0        $ns at 0 "$wl_node_($i) setdest 1060.0 550.0 1.0"        puts "wireless node $i created ..."			;# debug info        [$wl_node_($i) set mac_(0)] set-channel 0        [$wl_node_($i) set mac_(0)] set-diuc $diuc        #create source traffic	#Create a UDP agent and attach it to node n0	set udp_($i) [new Agent/UDP]	$udp_($i) set packetSize_ 1500	$ns attach-agent $wl_node_($i) $udp_($i)	# Create a CBR traffic source and attach it to udp0	set cbr_($i) [new Application/Traffic/CBR]	$cbr_($i) set packetSize_ $packet_size	$cbr_($i) set interval_ $gap_size	$cbr_($i) attach-agent $udp_($i)	#create an sink into the sink node	# Create the Null agent to sink traffic	set null_($i) [new Agent/Null] 	$ns attach-agent $sinkNode $null_($i)		# Attach the 2 agents	$ns connect $udp_($i) $null_($i)}# create the link between sink node and base station$ns duplex-link $sinkNode $bstation 100Mb 1ms DropTail# Traffic scenario: if all the nodes start talking at the same# time, we may see packet loss due to bandwidth request collisionset diff 0.02for {set i 0} {$i < $nb_mn} {incr i} {    $ns at [expr $traffic_start+$i*$diff] "$cbr_($i) start"    $ns at [expr $traffic_stop+$i*$diff] "$cbr_($i) stop"}#$ns at 4 "$nd_(1) dump-table"#$ns at 5 "$nd_(1) send-rs"#$ns at 6 "$nd_(1) dump-table"#$ns at 8 "$nd_(1) dump-table"$ns at $simulation_stop "finish"#$ns at $simulation_stop "$ns halt"# Run the simulationputs "Running simulation for $nb_mn mobile nodes..."$ns runputs "Simulation done."

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -