📄 multi_udpflows_802_11e.tcl
字号:
# globals and flagsset ns [new Simulator]#number of nodesset num_wired_nodes 1set num_mobile_nodes 1set num_bs_nodes 1 ;# number of base stationsset num_nodes [expr $num_wired_nodes + $num_mobile_nodes + $num_bs_nodes]set bs_id $num_wired_nodes# Parameter for wireless nodesset opt(chan) Channel/WirelessChannel ;# channel typeset opt(prop) Propagation/TwoRayGround ;# radio-propagation modelset opt(netif) Phy/WirelessPhy ;# network interface typeset opt(mac) Mac/802_11e ;# MAC typeset opt(ifq) Queue/DTail/PriQ ;# interface queue typeset opt(ifqlen) 50set opt(ll) LL ;# link layer typeset opt(ant) Antenna/OmniAntenna ;# antenna modelset opt(ifqlen) 50 ;# max packet in ifqset opt(adhocRouting) NOAH ;# routing protocolset opt(x) 670 ;# X dimension of the topographyset opt(y) 670 ;# Y dimension of the topography#smallko add the following two linesMac/802_11e set dataRate_ 1MbMac/802_11e set basicRate_ 1Mb Mac/802_11e set rst_cw_mode_ 0#set up for hierarchical routing#(needed for routing over a basestation)$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 $num_wired_nodes [expr $num_mobile_nodes + $num_bs_nodes] ;# number of nodes for each cluster AddrParams set nodes_num_ $eilastlevel#Open the nam trace fileset nf [open out.nam w]$ns namtrace-all-wireless $nf $opt(x) $opt(y)set ntr [open out.tr w]$ns trace-all $ntrset chan [new $opt(chan)]set topo [new Topography]$topo load_flatgrid $opt(x) $opt(y)# Create Godcreate-god [expr $num_mobile_nodes + $num_bs_nodes]# creating wired nodesfor {set i 0} {$i < $num_wired_nodes} {incr i} { set W($i) [$ns node 0.0.$i] puts "wired node $i created"}# creating base station$ns node-config -adhocRouting $opt(adhocRouting) \ -llType $opt(ll) \ -macType $opt(mac) \ -ifqType $opt(ifq) \ -ifqLen $opt(ifqlen) \ -antType $opt(ant) \ -propType $opt(prop) \ -phyType $opt(netif) \ -channel $chan \ -topoInstance $topo \ -wiredRouting ON \ -agentTrace OFF \ -routerTrace OFF \ -macTrace OFF \ -movementTrace OFFset BS(0) [$ns node 1.0.0]$BS(0) random-motion 0puts "Base-Station node $bs_id created"#provide some co-ord (fixed) to base station node$BS(0) set X_ 1.0$BS(0) set Y_ 2.0$BS(0) set Z_ 0.0 # creating mobile nodes$ns node-config -wiredRouting OFFfor {set i 0} {$i < $num_mobile_nodes} {incr i} { set wl_node_($i) [$ns node 1.0.[expr $i + 1]] $wl_node_($i) random-motion 0 ;# disable random motion puts "wireless node $i created ..." $wl_node_($i) base-station [AddrParams addr2id [$BS(0) node-addr]] $wl_node_($i) set X_ [expr $i * 10] $wl_node_($i) set Y_ [expr $i * 10] $wl_node_($i) set Z_ 0.0}# linking of root to base-station node$ns duplex-link $W(0) $BS(0) 10Mb 2ms DropTail# linking of wired nodes to root node#for {set i 1} {$i < $num_wired_nodes} {incr i} {# $ns duplex-link $W($i) $W(0) 10Mb 2ms DropTail#} set src_udp0 [new Agent/UDP]$src_udp0 set class_ 0$src_udp0 set prio_ 0set dst_udp0 [new Agent/Null]$ns attach-agent $wl_node_(0) $src_udp0$ns attach-agent $W(0) $dst_udp0set app0 [new Application/Traffic/CBR]$app0 attach-agent $src_udp0$ns connect $src_udp0 $dst_udp0$ns at 0.0 "$app0 start" set src_udp1 [new Agent/UDP]$src_udp1 set class_ 1$src_udp1 set prio_ 1set dst_udp1 [new Agent/Null]$ns attach-agent $wl_node_(0) $src_udp1$ns attach-agent $W(0) $dst_udp1set app1 [new Application/Traffic/CBR]$app1 attach-agent $src_udp1$ns connect $src_udp1 $dst_udp1$ns at 0.3 "$app1 start"set src_udp2 [new Agent/UDP]$src_udp2 set class_ 2$src_udp2 set prio_ 2set dst_udp2 [new Agent/Null]$ns attach-agent $wl_node_(0) $src_udp2$ns attach-agent $W(0) $dst_udp2set app2 [new Application/Traffic/CBR]$app2 attach-agent $src_udp2$ns connect $src_udp2 $dst_udp2$ns at 0.1 "$app2 start" set src_udp3 [new Agent/UDP]$src_udp3 set class_ 3$src_udp3 set prio_ 3set dst_udp3 [new Agent/Null]$ns attach-agent $wl_node_(0) $src_udp3$ns attach-agent $W(0) $dst_udp3set app3 [new Application/Traffic/CBR]$app3 attach-agent $src_udp3$ns connect $src_udp3 $dst_udp3$ns at 0.2 "$app3 start" # Define node initial position in namfor {set i 0} {$i < $num_mobile_nodes} {incr i} { $ns initial_node_pos $wl_node_($i) 20 }# Tell nodes when the simulation endsfor {set i 0} {$i < $num_mobile_nodes } {incr i} { $ns at 10.0 "$wl_node_($i) reset";}$ns at 100.0 "$BS(0) reset";$ns at 100.0 "$app0 stop"$ns at 100.0 "$app1 stop"$ns at 100.0 "$app2 stop"$ns at 100.0 "$app3 stop"$ns at 110.0 "puts \"NS EXITING...\" ; $ns halt"proc stop {} { global ns ntr nf close $ntr close $nf}# run the simulation$ns run
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -