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

📄 miptest.tcl

📁 跑leach需要的
💻 TCL
字号:
# miptest.tcl## To show mobileIP activities.# Modified from a SUN's original example script## See the comments from SUN below:## kwang: some explanations on how to use this limited implementation of#        Mobile IP :# 1. Look into "proc create-topology" below for some necessary commands#    to activate Mobile IP.# 2. Reset "Simulator instvar node_factory_" to create specialized#    nodes (Node/MIPBS and Node/MIPMH); how they'll interact with#    HierNode or ManualRtNode is unknown.# 3. Make the mobile links "dynamic"; initially mark the links that are#    not between MH and HA "down" to fool the route computer# 4. Specify the links on which BS and MH should broadcast ads and agent#    solicitations.# 5. Tell Agent/MIPMH which its HA is.# 6. For configurable parameters, see the constructors of these modules#    for the "bind" statements; beacon period can be set by the statement#    "<name of an Agent/MIPBS or Agent/MIPMH> beacon-period <beacon period>".# some changes are made by Ya 2/99set opt(tr)	outset opt(namtr)	"miptest.nam"set opt(seed)	0set opt(stop)	20set opt(qsize)	100set opt(bw)	2Mbset opt(delay)	1msset opt(ll)	LLset opt(ifq)	Queue/DropTailset opt(mac)	Mac/Csma/Caset opt(chan)	Channelset opt(tcp)	TCP/Renoset opt(sink)	TCPSinkset opt(source)	FTPproc Usage {} {	global opt argv0	puts "Usage: $argv0 \[-stop sec\] \[-seed value\] \[-node numNodes\]"	puts "\t\[-tr tracefile\] \[-g\]"	puts "\t\[-ll lltype\] \[-ifq qtype\] \[-mac mactype\]"	puts "\t\[-bw $opt(bw)] \[-delay $opt(delay)\]"	exit 1}proc Getopt {} {	global opt argc argv	if {$argc == 0} Usage	for {set i 0} {$i < $argc} {incr i} {		set key [lindex $argv $i]		if ![string match {-*} $key] continue		set key [string range $key 1 end]		set val [lindex $argv [incr i]]		set opt($key) $val		if [string match {-[A-z]*} $val] {			incr i -1			continue		}		switch $key {			ll  { set opt($key) LL/$val }			ifq { set opt($key) Queue/$val }			mac { set opt($key) Mac/$val }		}	}}proc finish {} {	exit 0}proc create-trace {} {	global ns opt	if [file exists $opt(tr)] {		catch "exec rm -f $opt(tr) $opt(tr)-bw [glob $opt(tr).*]"	}	set trfd [open $opt(tr) w]	$ns trace-all $trfd	if {$opt(namtr) != ""} {		$ns namtrace-all [open $opt(namtr) w]	}	return $trfd}proc create-topology {} {	global ns opt	global lan node source	$ns instvar link_	set node(s) [$ns node]	set node(g) [$ns node]	Simulator set node_factory_ Node/MIPBS	set node(ha) [$ns node]	$node(ha) shape "hexagon"	set node(fa) [$ns node]	$node(fa) shape "hexagon"	Simulator set node_factory_ Node/MIPMH	set node(mh) [$ns node]	$node(mh) shape "circle"	$ns duplex-link $node(s) $node(g) 2Mb 5ms DropTail 	$ns duplex-link-op $node(s) $node(g) orient right	$ns duplex-link $node(g) $node(ha) 2Mb 5ms DropTail	$ns duplex-link-op $node(g) $node(ha) orient up	$ns duplex-link $node(g) $node(fa) 2Mb 5ms DropTail	$ns duplex-link-op $node(g) $node(fa) orient right-up	$ns duplex-link $node(ha) $node(mh) 2Mb 5ms DropTail 	$ns duplex-link-op $node(ha) $node(mh) orient right	$ns duplex-link $node(fa) $node(mh) 4Mb 5ms DropTail 	$ns duplex-link-op $node(fa) $node(mh) orient left	set mhid [$node(mh) id]	set haid [$node(ha) id]	set faid [$node(fa) id]	$link_($mhid:$faid) dynamic	$link_($faid:$mhid) dynamic	$link_($mhid:$faid) down	$link_($faid:$mhid) down	$link_($mhid:$haid) dynamic	$link_($haid:$mhid) dynamic	[$node(ha) set regagent_] add-ads-bcast-link $link_($haid:$mhid)	[$node(fa) set regagent_] add-ads-bcast-link $link_($faid:$mhid)	[$node(mh) set regagent_] set home_agent_ $haid	[$node(mh) set regagent_] add-sol-bcast-link $link_($mhid:$haid)	[$node(mh) set regagent_] add-sol-bcast-link $link_($mhid:$faid)	$ns at 0.0 "$node(ha) label HomeAgent"	$ns at 0.0 "$node(fa) label ForeignAgent"	$ns at 0.0 "$node(mh) label MobileHost"	$ns at 0.0 "$node(ha) color gold"	$ns at 0.0 "$node(mh) color gold"	$ns rtmodel-at 0.1 down $node(mh) $node(fa)	set swtm [expr 3.0+($opt(stop)-3.0)/4.0]	$ns rtmodel-at $swtm down $node(mh) $node(ha)	$ns rtmodel-at $swtm up $node(mh) $node(fa)	$ns at $swtm "$node(ha) color black"	$ns at $swtm "$node(fa) color gold"	set swtm [expr 3.0+($opt(stop)-3.0)/2.0]	$ns rtmodel-at $swtm down $node(mh) $node(fa)	$ns rtmodel-at $swtm up $node(mh) $node(ha)	$ns at $swtm "$node(ha) color gold"	$ns at $swtm "$node(fa) color black"	set swtm [expr 3.0+($opt(stop)-3.0)*3.0/4.0]	$ns rtmodel-at $swtm down $node(mh) $node(ha)	$ns rtmodel-at $swtm up $node(mh) $node(fa)	$ns at $swtm "$node(ha) color black"	$ns at $swtm "$node(fa) color gold"#	$ns at $swtm "$link_($mhid:$faid) up"#	$ns at $swtm "$link_($faid:$mhid) up"#	$ns at [expr $swtm - 1.5] "$link_($mhid:$haid) down"#	$ns at [expr $swtm - 1.5] "$link_($haid:$mhid) down"#	set swtm [expr 3.0+($opt(stop)-3.0)/2.0]#	$ns at $swtm "$link_($mhid:$haid) up"#	$ns at $swtm "$link_($haid:$mhid) up"#	$ns at [expr $swtm - 1.5] "$link_($mhid:$faid) down"#	$ns at [expr $swtm - 1.5] "$link_($faid:$mhid) down"#	set swtm [expr 3.0+($opt(stop)-3.0)*3.0/4.0]#	$ns at $swtm "$link_($mhid:$faid) up"#	$ns at $swtm "$link_($faid:$mhid) up"#	$ns at [expr $swtm - 1.5] "$link_($mhid:$haid) down"#	$ns at [expr $swtm - 1.5] "$link_($haid:$mhid) down"}proc create-source {} {	global ns opt	global lan node source	set tp [$ns create-connection $opt(tcp) \		    $node(s) $opt(sink) $node(mh) 0]	set source [$tp attach-source $opt(source)]	$ns at 0.0 "$source start"}## MAIN ##Getoptif {$opt(seed) >= 0} { ns-random $opt(seed) }if [info exists opt(qsize)] { Queue set limit_ $opt(qsize) }set ns [new Simulator]set trfd [create-trace]create-topologycreate-source#$lan trace $ns $trfd$ns at $opt(stop) "finish"$ns run

⌨️ 快捷键说明

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