📄 scen_heterogen.tcl
字号:
## A wireless lan scenario with audio, video traffic over udp and background# backlogged traffic(TCP, udp)### defaults#set ppktsize 1280 ;# pktsize of phone streams#set pinterval 5msset ppktsize 160 ;# pktsize of phone streamsset pinterval 20msset vpktsize 1280 ;# pktsize of video streamsset vinterval 10msset pktsize 200 ;# pktsize for background trafficset udp_interval 12.5ms#set num_nodes [lindex $argv 0] ;# number of mobilenodes in the scenario ****lamiasource sources.tclglobal num_nodesset num_bss_nodes 0 ;# adhoc modePLevels set max_plevels_ 3PLevels set plevels_ 3PHY_MIB set CWMin_0 5PHY_MIB set CWOffset_0 0PHY_MIB set CWMax_0 200 ;#LamiaPHY_MIB set CWMin_1 15PHY_MIB set CWOffset_1 0PHY_MIB set CWMax_1 600 ;#LamiaPHY_MIB set CWMin_2 31PHY_MIB set CWOffset_2 0PHY_MIB set CWMax_2 1023 ;#Lamia# MAC_MIB set new_method 1 ;# ni: difs_i is used as DIFS= SIFS + i* Slot_timeset difs_0 1set difs_1 2set difs_2 3proc create_scenario { } { global ns_ node_ num_nodes endtime global pnum ppktsize pinterval global vnum vpktsize vinterval udp_interval global pktsize if {$num_nodes > 3} { set sink_node [expr $num_nodes - 1] } set pri 0# real ending time set endtime 50 set t 0 set fl_id 0 set rng [new RNG] $rng uniform 0 1########################################################## # Setup Phone flows for {set i 0} {$i <[expr $num_nodes ] } {incr i} { #in oder to get right ARP and correct results, we need to start the simulation after 3 seconds #set start_time 3; #This line is used if we change the station number dynamically set start_time [expr 3 + $t]; set node_src $i if {$i < [expr $num_nodes - 1]} { set node_sink [expr $i +1] } else { set node_sink 0 } if { $i == 0} { set finishtime [expr $endtime - 0 ] } else { set finishtime [expr $endtime - 0 ] } build-cbr $node_($node_src) $node_($node_sink) $ppktsize $pinterval 0 $fl_id $start_time $finishtime $pri puts "P$i with pktsize $ppktsize flows $fl_id from Node$node_src to Node$node_sink every $pinterval" puts "node $i flow $fl_id's starting time is: $start_time" incr fl_id # interval is used for every this period we increase one station set incr_interval 2 set t [expr $t + $incr_interval] #puts "interval is: $incr_interval" } set t 0 incr pri######################################################################################## # Setup Video flows for {set i 0} {$i < [expr $num_nodes]} {incr i} { set start_time [expr 3 + $t]; set node_src $i if {$i < [expr $num_nodes - 1]} { set node_sink [expr $i +1] } else { set node_sink 0 } if { $i == 0} { set finishtime [expr $endtime - 0 ] } else { set finishtime [expr $endtime - 0 ] } build-cbr $node_($node_src) $node_($node_sink) $vpktsize $vinterval 0 $fl_id $start_time $finishtime $pri puts "V$i with pktsize $vpktsize flows $fl_id from Node$i to Node $node_sink every $vinterval" puts $start_time incr fl_id set incr_interval 2 set t [expr $t + $incr_interval] } set t 0 incr pri }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -