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

📄 test-suite-satellite.tcl

📁 跑leach需要的
💻 TCL
📖 第 1 页 / 共 2 页
字号:
			 -phyType $opt(phy) \			 -channelType $opt(chan) \			 -downlinkBW $opt(bw_down) \			 -wiredRouting $opt(wiredRouting)	set n0 [$ns_ node]; set n1 [$ns_ node]; set n2 [$ns_ node];	set n3 [$ns_ node]; set n4 [$ns_ node]; set n5 [$ns_ node];	set n6 [$ns_ node]; set n7 [$ns_ node]; set n8 [$ns_ node];	set n9 [$ns_ node]; set n10 [$ns_ node]	set plane 1	$n0 set-position $opt(alt) $opt(inc) 0 0 $plane 	$n1 set-position $opt(alt) $opt(inc) 0 32.73 $plane 	$n2 set-position $opt(alt) $opt(inc) 0 65.45 $plane 	$n3 set-position $opt(alt) $opt(inc) 0 98.18 $plane 	$n4 set-position $opt(alt) $opt(inc) 0 130.91 $plane 	$n5 set-position $opt(alt) $opt(inc) 0 163.64 $plane 	$n6 set-position $opt(alt) $opt(inc) 0 196.36 $plane 	$n7 set-position $opt(alt) $opt(inc) 0 229.09 $plane 	$n8 set-position $opt(alt) $opt(inc) 0 261.82 $plane 	$n9 set-position $opt(alt) $opt(inc) 0 294.55 $plane 	$n10 set-position $opt(alt) $opt(inc) 0 327.27 $plane 	# By setting the next_ variable on polar sats; handoffs can be optimized	# This step must follow all polar node creation	$n0 set_next $n10; $n1 set_next $n0; $n2 set_next $n1; $n3 set_next $n2	$n4 set_next $n3; $n5 set_next $n4; $n6 set_next $n5; $n7 set_next $n6	$n8 set_next $n7; $n9 set_next $n8; $n10 set_next $n9	# GEO satellite:  above North America	$ns_ node-config -satNodeType geo	set n11 [$ns_ node]	$n11 set-position -100	# Terminals	$ns_ node-config -satNodeType terminal	set n100 [$ns_ node]; set n101 [$ns_ node]	$n100 set-position 37.9 -122.3; # Berkeley	$n101 set-position 42.3 -71.1; # Boston	set n200 [$ns_ node]; set n201 [$ns_ node]	$n200 set-position 0 10	$n201 set-position 0 -10	# Add any necessary ISLs or GSLs	# GSLs to the geo satellite:	$n100 add-gsl geo $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) \	  $opt(phy) [$n11 set downlink_] [$n11 set uplink_]	$n101 add-gsl geo $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) \	  $opt(phy) [$n11 set downlink_] [$n11 set uplink_]	# Attach n200 and n201 	$n200 add-gsl polar $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) $opt(phy) [$n5 set downlink_] [$n5 set uplink_]	$n201 add-gsl polar $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) $opt(phy) [$n5 set downlink_] [$n5 set uplink_]	#ISL	$ns_ add-isl intraplane $n0 $n1 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n1 $n2 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n2 $n3 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n3 $n4 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n4 $n5 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n5 $n6 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n6 $n7 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n7 $n8 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n8 $n9 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n9 $n10 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n10 $n0 $opt(bw_isl) $opt(ifq) $opt(qlim)	# Set up wired nodes	# Connect $n300<->$n301<->$n302<->$n100<->$n11<->$n101<->$n303	#                    ^               ^	#                    |_______________|	#	# Packets from n303 to n300 should bypass n302 (node #18 in the trace)	# (i.e., they should take the following path:  19,13,11,12,17,16)	#	$ns_ unset satNodeType_	set n300 [$ns_ node]; # node 16 in trace	set n301 [$ns_ node]; # node 17 in trace	set n302 [$ns_ node]; # node 18 in trace	set n303 [$ns_ node]; # node 19 in trace	$ns_ duplex-link $n300 $n301 5Mb 2ms DropTail; # 16 <-> 17	$ns_ duplex-link $n301 $n302 5Mb 2ms DropTail; # 17 <-> 18	$ns_ duplex-link $n302 $n100 5Mb 2ms DropTail; # 18 <-> 11	$ns_ duplex-link $n303 $n101 5Mb 2ms DropTail; # 19 <-> 13	$ns_ duplex-link $n301 $n100 5Mb 2ms DropTail; # 17 <-> 11	# Trace all queues	$ns_ trace-all-satlinks $f	# Attach agents	set udp0 [new Agent/UDP]	$ns_ attach-agent $n100 $udp0	set cbr0 [new Application/Traffic/CBR]	$cbr0 attach-agent $udp0	$cbr0 set interval_ 60.01	set udp1 [new Agent/UDP]	$ns_ attach-agent $n200 $udp1	$udp1 set class_ 1	set cbr1 [new Application/Traffic/CBR]	$cbr1 attach-agent $udp1	$cbr1 set interval_ 90.5	set null0 [new Agent/Null]	$ns_ attach-agent $n101 $null0	set null1 [new Agent/Null]	$ns_ attach-agent $n201 $null1	$ns_ connect $udp0 $null0	$ns_ connect $udp1 $null1	# Set up connection between wired nodes	set udp2 [new Agent/UDP]	$ns_ attach-agent $n303 $udp2	set cbr2 [new Application/Traffic/CBR]	$cbr2 attach-agent $udp2	$cbr2 set interval_ 300	set null2 [new Agent/Null]	$ns_ attach-agent $n300 $null2	$ns_ connect $udp2 $null2	$ns_ at 10.0 "$cbr2 start" 	set satrouteobject_ [new SatRouteObject]	$satrouteobject_ compute_routes	$ns_ at 1.0 "$cbr0 start"	$ns_ at 305.0 "$cbr1 start"	$ns_ at 9000.0 "$self finish"	$ns_ run}# Testing unslotted aloha# bent-pipe gka geo satellite and a plane of polar satellites# NOTE:  This test is similar (fewer sources) to sat-aloha.tcl in ~ns/tcl/exClass Test/aloha -superclass TestSuiteTest/aloha instproc init {} {	$self instvar test_	set test_ 	aloha		$self next}Test/aloha instproc run {} {    $self instvar ns_  		global opt f 	Mac/Sat set trace_drops_ false	Mac/Sat set trace_collisions_ false	set opt(bw_up)          2Mb	set opt(bw_down)        2Mb	set opt(mac)            Mac/Sat/UnslottedAloha 	set opt(wiredRouting)   OFF	$ns_ node-config -satNodeType geo-repeater \			-llType $opt(ll) \			-ifqType $opt(ifq) \			-ifqLen $opt(qlim) \			-macType $opt(mac) \			-phyType $opt(phy) \			-channelType $opt(chan) \			-downlinkBW $opt(bw_down) \			-wiredRouting $opt(wiredRouting)	# GEO satellite at prime meridian	set n1 [$ns_ node]	$n1 set-position 0	# Place 30 nodes at 30 different locations	$ns_ node-config -satNodeType terminal	set num_nodes           30	for {set a 1} {$a <= $num_nodes} {incr a} {		set n($a) [$ns_ node]        	$n($a) set-position [expr -15 + $a ] [expr 15 - $a ]        	$n($a) add-gsl geo $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) \		    $opt(bw_up) $opt(phy) [$n1 set downlink_] [$n1 set uplink_]	}	for {set a 1} {$a <= $num_nodes} {incr a} {        	set b [expr int($a + (0.5 * $num_nodes))]        	if {$b > 30} {                	incr b -30         	}        	set udp($a) [new Agent/UDP]        	$ns_ attach-agent $n($a) $udp($a)        	set exp($a) [new Application/Traffic/Exponential]        	$exp($a) attach-agent $udp($a)        	$exp($a) set rate_ 3Kb        	set null($a) [new Agent/Null]        	$ns_ attach-agent $n($b) $null($a)        	$ns_ connect $udp($a) $null($a)        	$ns_ at 1.0 "$exp($a) start"	}	$ns_ trace-all-satlinks $f	# We use centralized routing	set satrouteobject_ [new SatRouteObject]	$satrouteobject_ compute_routes	$ns_ at 50.0 "$self finish"	$ns_ run}Class Test/aloha.collisions -superclass TestSuiteTest/aloha.collisions instproc init {} {	$self instvar test_	set test_ 	aloha		$self next}Test/aloha.collisions instproc run {} {    $self instvar ns_  		global opt f 	Mac/Sat set trace_drops_ true	Mac/Sat set trace_collisions_ true	set opt(bw_up)          2Mb	set opt(bw_down)        2Mb	set opt(mac)            Mac/Sat/UnslottedAloha 	set opt(wiredRouting)   OFF	$ns_ node-config -satNodeType geo-repeater \			-llType $opt(ll) \			-ifqType $opt(ifq) \			-ifqLen $opt(qlim) \			-macType $opt(mac) \			-phyType $opt(phy) \			-channelType $opt(chan) \			-downlinkBW $opt(bw_down) \			-wiredRouting $opt(wiredRouting)	# GEO satellite at prime meridian	set n1 [$ns_ node]	$n1 set-position 0	# Place 30 nodes at 30 different locations	$ns_ node-config -satNodeType terminal	set num_nodes           30	for {set a 1} {$a <= $num_nodes} {incr a} {		set n($a) [$ns_ node]        	$n($a) set-position [expr -15 + $a ] [expr 15 - $a ]        	$n($a) add-gsl geo $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) \		    $opt(bw_up) $opt(phy) [$n1 set downlink_] [$n1 set uplink_]	}	for {set a 1} {$a <= $num_nodes} {incr a} {        	set b [expr int($a + (0.5 * $num_nodes))]        	if {$b > 30} {                	incr b -30         	}        	set udp($a) [new Agent/UDP]        	$ns_ attach-agent $n($a) $udp($a)        	set exp($a) [new Application/Traffic/Exponential]        	$exp($a) attach-agent $udp($a)        	$exp($a) set rate_ 3Kb        	set null($a) [new Agent/Null]        	$ns_ attach-agent $n($b) $null($a)        	$ns_ connect $udp($a) $null($a)        	$ns_ at 1.0 "$exp($a) start"	}	$ns_ trace-all-satlinks $f	# We use centralized routing	set satrouteobject_ [new SatRouteObject]	$satrouteobject_ compute_routes	$ns_ at 50.0 "$self finish"	$ns_ run}# Backward compatibility syntax (legacy code) for "mixed"Class Test/mixed.legacy -superclass TestSuiteTest/mixed.legacy instproc init {} {	$self instvar test_	set test_       mixed.legacy 	$self next}Test/mixed.legacy instproc run {} {	$self instvar ns_  	global opt f		# Change some of the options	set opt(bw_down)        1.5Mb	set opt(bw_up)          1.5Mb	set opt(bw_isl)         25Mb	set opt(mac)            Mac/Sat 	set opt(alt)            780	set opt(inc)            90	set linkargs "$opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_down) $opt(phy)"	set alt $opt(alt)	set inc $opt(inc)	set chan $opt(chan)	set plane 1	set n0 [$ns_ satnode-polar $alt $inc 0 0 $plane $linkargs $chan]	set n1 [$ns_ satnode-polar $alt $inc 0 32.73 $plane $linkargs $chan]	set n2 [$ns_ satnode-polar $alt $inc 0 65.45 $plane $linkargs $chan]	set n3 [$ns_ satnode-polar $alt $inc 0 98.18 $plane $linkargs $chan]	set n4 [$ns_ satnode-polar $alt $inc 0 130.91 $plane $linkargs $chan]	set n5 [$ns_ satnode-polar $alt $inc 0 163.64 $plane $linkargs $chan]	set n6 [$ns_ satnode-polar $alt $inc 0 196.36 $plane $linkargs $chan]	set n7 [$ns_ satnode-polar $alt $inc 0 229.09 $plane $linkargs $chan]	set n8 [$ns_ satnode-polar $alt $inc 0 261.82 $plane $linkargs $chan]	set n9 [$ns_ satnode-polar $alt $inc 0 294.55 $plane $linkargs $chan]	set n10 [$ns_ satnode-polar $alt $inc 0 327.27 $plane $linkargs $chan]	# By setting the next_ variable on polar sats; handoffs can be optimized	# This step must follow all polar node creation	$n0 set_next $n10; $n1 set_next $n0; $n2 set_next $n1; $n3 set_next $n2	$n4 set_next $n3; $n5 set_next $n4; $n6 set_next $n5; $n7 set_next $n6	$n8 set_next $n7; $n9 set_next $n8; $n10 set_next $n9	# GEO satellite:  above North America	set n11 [$ns_ satnode-geo -100 $linkargs $opt(chan)]	# Terminals	set n100 [$ns_ satnode-terminal 37.9 -122.3]; # Berkeley	set n101 [$ns_ satnode-terminal 42.3 -71.1]; # Boston	set n200 [$ns_ satnode-terminal 0 10]	set n201 [$ns_ satnode-terminal 0 -10]	# Add any necessary ISLs or GSLs	# GSLs to the geo satellite:	$n100 add-gsl geo $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) \	  $opt(phy) [$n11 set downlink_] [$n11 set uplink_]	$n101 add-gsl geo $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) \	  $opt(phy) [$n11 set downlink_] [$n11 set uplink_]	# Attach n200 and n201 	$n200 add-gsl polar $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) $opt(phy) [$n5 set downlink_] [$n5 set uplink_]	$n201 add-gsl polar $opt(ll) $opt(ifq) $opt(qlim) $opt(mac) $opt(bw_up) $opt(phy) [$n5 set downlink_] [$n5 set uplink_]	#ISL	$ns_ add-isl intraplane $n0 $n1 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n1 $n2 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n2 $n3 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n3 $n4 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n4 $n5 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n5 $n6 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n6 $n7 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n7 $n8 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n8 $n9 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n9 $n10 $opt(bw_isl) $opt(ifq) $opt(qlim)	$ns_ add-isl intraplane $n10 $n0 $opt(bw_isl) $opt(ifq) $opt(qlim)	# Trace all queues	$ns_ trace-all-satlinks $f	# Attach agents	set udp0 [new Agent/UDP]	$ns_ attach-agent $n100 $udp0	set cbr0 [new Application/Traffic/CBR]	$cbr0 attach-agent $udp0	$cbr0 set interval_ 60.01	set udp1 [new Agent/UDP]	$ns_ attach-agent $n200 $udp1	$udp1 set class_ 1	set cbr1 [new Application/Traffic/CBR]	$cbr1 attach-agent $udp1	$cbr1 set interval_ 90.5	set null0 [new Agent/Null]	$ns_ attach-agent $n101 $null0	set null1 [new Agent/Null]	$ns_ attach-agent $n201 $null1	$ns_ connect $udp0 $null0	$ns_ connect $udp1 $null1	set satrouteobject_ [new SatRouteObject]	$satrouteobject_ compute_routes	$ns_ at 1.0 "$cbr0 start"	$ns_ at 305.0 "$cbr1 start"	$ns_ at 9000.0 "$self finish"	$ns_ run}TestSuite runTest

⌨️ 快捷键说明

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