📄 test-suite-links.tcl
字号:
Test/delayPacket1 instproc init {} { $self instvar net_ test_ set net_ net4 set test_ delayPacket1 Agent/TCP set minrto_ 1 $self next pktTraceFile}Test/delayPacket1 instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo $self June01defaults set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(k1) 1] $tcp1 set window_ 8 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" $self dropPkts [$ns_ link $node_(r1) $node_(k1)] 1 {20} true 0.3 $self dropPkts [$ns_ link $node_(r1) $node_(k1)] 1 {22} true 0.4 # dropPkts is in support.tcl $self tcpDump $tcp1 5.0 $ns_ at 5.0 "$self cleanupAll $testName_" $ns_ run}##################################################### Delayer module ##################################################### Link r1-k1 blocked at time 2, unblocked at time 4.Class Test/delaySpike -superclass TestSuiteTest/delaySpike instproc init {} { $self instvar net_ test_ set net_ net4 set test_ delaySpike $self next pktTraceFile}Test/delaySpike instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set d1 [new Delayer] set d2 [new Delayer] $ns_ insert-delayer $node_(k1) $node_(r1) $d2 $ns_ insert-delayer $node_(r1) $node_(k1) $d1 $ns_ at 2.0 "$d1 block" $ns_ at 2.0 "$d2 block" $ns_ at 4.0 "$d1 unblock" $ns_ at 4.0 "$d2 unblock" set fid 1 set tcp1 [$ns_ create-connection TCP/Sack1 $node_(s1) TCPSink/Sack1 $node_(k1) $fid] $tcp1 set window_ 1 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}## Link r1-k1 blocked at time 2, unblocked at time 4.## TCP connection has a window of 8.Class Test/delaySpike1 -superclass TestSuiteTest/delaySpike1 instproc init {} { $self instvar net_ test_ set net_ net4 set test_ delaySpike1 $self next pktTraceFile}Test/delaySpike1 instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set d1 [new Delayer] set d2 [new Delayer] $ns_ insert-delayer $node_(k1) $node_(r1) $d2 $ns_ insert-delayer $node_(r1) $node_(k1) $d1 $ns_ at 2.0 "$d1 block" $ns_ at 2.0 "$d2 block" $ns_ at 4.0 "$d1 unblock" $ns_ at 4.0 "$d2 unblock" set fid 1 set tcp1 [$ns_ create-connection TCP/Sack1 $node_(s1) TCPSink/Sack1 $node_(k1) $fid] $tcp1 set window_ 8 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}## link r1-k1 has delay spikes, on average for 0.1 seconds, every 0.5 secondsClass Test/delaySpikes -superclass TestSuiteTest/delaySpikes instproc init {} { $self instvar net_ test_ set net_ net4 set test_ delaySpikes $self next pktTraceFile}Test/delaySpikes instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set d1 [new Delayer] $ns_ insert-delayer $node_(r1) $node_(k1) $d1 set len [new RandomVariable/Exponential] $len set avg_ 0.1 set int [new RandomVariable/Exponential] $int set avg_ 0.5 $d1 spike $int $len set fid 1 set tcp1 [$ns_ create-connection TCP/Sack1 $node_(s1) TCPSink/Sack1 $node_(k1) $fid] $tcp1 set window_ 1 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}## link r1-k1 has delay spikes, on average for 0.1 seconds, every 0.5 seconds## TCP connection has a window of 8.Class Test/delaySpikes1 -superclass TestSuiteTest/delaySpikes1 instproc init {} { $self instvar net_ test_ set net_ net4 set test_ delaySpikes1 $self next pktTraceFile}Test/delaySpikes1 instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set d1 [new Delayer] $ns_ insert-delayer $node_(r1) $node_(k1) $d1 set len [new RandomVariable/Exponential] $len set avg_ 0.1 set int [new RandomVariable/Exponential] $int set avg_ 0.5 $d1 spike $int $len set fid 1 set tcp1 [$ns_ create-connection TCP/Sack1 $node_(s1) TCPSink/Sack1 $node_(k1) $fid] $tcp1 set window_ 8 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}## Channel channelAllocDelayation delay when the queue is empty.Class Test/channelAllocDelay -superclass TestSuiteTest/channelAllocDelay instproc init {} { $self instvar net_ test_ set net_ net4 set test_ channelAllocDelay $self next pktTraceFile}Test/channelAllocDelay instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set d1 [new Delayer] set d2 [new Delayer] $ns_ insert-delayer $node_(k1) $node_(r1) $d1 $ns_ insert-delayer $node_(r1) $node_(k1) $d2 set len_dl [new RandomVariable/Uniform] $len_dl set min_ 0.16 $len_dl set max_ 0.19 set int_dl [new RandomVariable/Uniform] $int_dl set min_ 2 $int_dl set max_ 5 set len_ul [new RandomVariable/Uniform] $len_ul set min_ 0.5 $len_ul set max_ 0.6 set int_ul [new RandomVariable/Uniform] $int_ul set min_ 0.01 $int_ul set max_ 0.4 $d1 alloc $int_ul $len_ul $d2 alloc $int_dl $len_dl set fid 1 set tcp1 [$ns_ create-connection TCP/Sack1 $node_(s1) TCPSink/Sack1 $node_(k1) $fid] $tcp1 set window_ 1 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}## Channel allocation delay when the queue is empty.## Add a second connection on the reverse path.Class Test/channelAllocDelay1 -superclass TestSuiteTest/channelAllocDelay1 instproc init {} { $self instvar net_ test_ set net_ net4 set test_ channelAllocDelay1 $self next pktTraceFile}Test/channelAllocDelay1 instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set d1 [new Delayer] set d2 [new Delayer] $ns_ insert-delayer $node_(k1) $node_(r1) $d1 $ns_ insert-delayer $node_(r1) $node_(k1) $d2 set len_dl [new RandomVariable/Uniform] $len_dl set min_ 0.16 $len_dl set max_ 0.19 set int_dl [new RandomVariable/Uniform] $int_dl set min_ 2 $int_dl set max_ 5 $d2 alloc $int_dl $len_dl set len_ul [new RandomVariable/Uniform] $len_ul set min_ 0.5 $len_ul set max_ 0.6 set int_ul [new RandomVariable/Uniform] $int_ul set min_ 0.01 $int_ul set max_ 0.4 $d1 alloc $int_ul $len_ul # int: time of keeping a channel without data. # len: delay in allocating a new channel. set fid 1 set tcp1 [$ns_ create-connection TCP/Sack1 $node_(s1) TCPSink/Sack1 $node_(k1) $fid] $tcp1 set window_ 1 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" set fid 2 set tcp2 [$ns_ create-connection TCP/Sack1 $node_(k1) TCPSink/Sack1 $node_(s1) $fid] $tcp2 set window_ 3 set ftp2 [$tcp2 attach-app FTP] $ns_ at 3.0 "$ftp2 start" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}## Does not drop extra packets immediately when queue size is lowered.#Class Test/change_queue -superclass TestSuiteTest/change_queue instproc init {} { $self instvar net_ test_ set net_ net4 set test_ change_queue $self next pktTraceFile}Test/change_queue instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set fid 1 set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(k1) $fid] $tcp1 set window_ 8 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" set link1 [$ns_ link $node_(r1) $node_(k1)] set queue1 [$link1 queue] $ns_ at 5.0 "$ns_ queue-limit $node_(r1) $node_(k1) 5" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}## Drops extra packets when queue size is lowered.# Validation test from Andrei Gurtov.#Class Test/queue_shrink -superclass TestSuiteTest/queue_shrink instproc init {} { $self instvar net_ test_ set net_ net4 set test_ queue_shrink $self next pktTraceFile}Test/queue_shrink instproc run {} { global wrap wrap1 $self instvar ns_ node_ testName_ $self setTopo set fid 1 set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(k1) $fid] $tcp1 set window_ 8 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" set link1 [$ns_ link $node_(r1) $node_(k1)] set queue1 [$link1 queue] $ns_ at 5.0 "$ns_ queue-limit $node_(r1) $node_(k1) 5; $queue1 shrink-queue" $self tcpDump $tcp1 5.0 $ns_ at 10.0 "$self cleanupAll $testName_" $ns_ run}TestSuite runTest
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -