📄 topologies.tcl
字号:
Class Topology/cbq1-wrr -superclass Topology/cbq1Topology/cbq1-wrr instproc init ns { $self next $ns $self instvar node_ cbqlink_ $ns simplex-link $node_(r1) $node_(r2) 1.5Mb 5ms CBQ/WRR set cbqlink_ [$ns link $node_(r1) $node_(r2)]}Class Topology/net2 -superclass NodeTopology/6nodesTopology/net2 instproc init ns { $self next $ns $self instvar node_ $ns duplex-link $node_(s1) $node_(r1) 10Mb 2ms DropTail $ns duplex-link $node_(s2) $node_(r1) 10Mb 3ms DropTail $ns duplex-link $node_(r1) $node_(r2) 1.5Mb 20ms RED $ns queue-limit $node_(r1) $node_(r2) 25 $ns queue-limit $node_(r2) $node_(r1) 25 $ns duplex-link $node_(s3) $node_(r2) 10Mb 4ms DropTail $ns duplex-link $node_(s4) $node_(r2) 10Mb 5ms DropTail $ns duplex-link-op $node_(s1) $node_(r1) orient right-down $ns duplex-link-op $node_(s2) $node_(r1) orient right-up $ns duplex-link-op $node_(r1) $node_(r2) orient right $ns duplex-link-op $node_(r1) $node_(r2) queuePos 0 $ns duplex-link-op $node_(r2) $node_(r1) queuePos 0 $ns duplex-link-op $node_(s3) $node_(r2) orient left-down $ns duplex-link-op $node_(s4) $node_(r2) orient left-up $self checkConfig $class $ns}Class Topology/net2-lossy -superclass Topology/net2Topology/net2-lossy instproc init ns { $self next $ns $self instvar node_ $self instvar lossylink_ set lossylink_ [$ns link $node_(r1) $node_(r2)] set em [new ErrorModule Fid] set errmodel [new ErrorModel/Periodic] $errmodel unit pkt $lossylink_ errormodule $em $em insert $errmodel $em bind $errmodel 0 $em default pass}Class Topology/net2- -superclass Topology/net2Topology/net2- instproc init ns { $self next $ns $self instvar node_ rtm_ set rtm_(r1:r2) [$ns rtmodel Exponential {} $node_(r1) $node_(r2)] set dynamicsTrace [open dyn.tr "w"] [$ns link $node_(r1) $node_(r2)] trace-dynamics $ns $dynamicsTrace [$ns link $node_(r2) $node_(r1)] trace-dynamics $ns $dynamicsTrace $self checkConfig $class $ns}Class Topology/net2-Session -superclass Topology/net2Topology/net2-Session instproc init ns { $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms DropTail \ {queue-limit 25} $self instvar node_ rtm_ set rtm_(r1:r2) [$ns rtmodel Trace "dyn.tr" $node_(r1) $node_(r2)] $ns rtproto Session $self checkConfig $class $ns}Class Topology/net2-DV -superclass Topology/net2Topology/net2-DV instproc init ns { $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms DropTail \ {queue-limit 25} $self instvar node_ rtm_ set rtm_(r1:r2) [$ns rtmodel Trace "dyn.tr" $node_(r1) $node_(r2)] $ns rtproto DV $self checkConfig $class $ns}Class Topology/net2-DVm0 -superclass Topology/net2Topology/net2-DVm0 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms DropTail \ {queue-limit 25} {cost 2 r1 r2} $ns rtproto DV $self checkConfig $class $ns}Class Topology/net2-DVm1 -superclass Topology/net2Topology/net2-DVm1 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms DropTail \ {queue-limit 25} {cost 2 r1 r2} $self instvar node_ rtm_ set rtm_(r1:r2) [$ns rtmodel Trace "dyn.tr" $node_(r1) $node_(r2)] $ns rtproto DV $self checkConfig $class $ns}Class Topology/net2RED-Session -superclass Topology/net2Topology/net2RED-Session instproc init ns { $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms RED \ {queue-limit 25} $self instvar node_ rtm_ set rtm_(r1:r2) [$ns rtmodel Trace "dyn.tr" $node_(r1) $node_(r2)] $ns rtproto Session $self checkConfig $class $ns}Class Topology/net2RED-DV -superclass Topology/net2Topology/net2RED-DV instproc init ns { $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms RED \ {queue-limit 25} $self instvar node_ rtm_ set rtm_(r1:r2) [$ns rtmodel Trace "dyn.tr" $node_(r1) $node_(r2)] $ns rtproto DV $self checkConfig $class $ns}Class Topology/net2RED-DVm0 -superclass Topology/net2Topology/net2RED-DVm0 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms RED \ {queue-limit 25} {cost 2 r1 r2} $ns rtproto DV $self checkConfig $class $ns}Class Topology/net2RED-DVm1 -superclass Topology/net2Topology/net2RED-DVm1 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology $self add-fallback-links $ns {r1 b1 r2} 1.5Mb 10ms RED \ {queue-limit 25} {cost 2 r1 r2} $self instvar node_ rtm_ set rtm_(r1:r2) [$ns rtmodel Trace "dyn.tr" $node_(r1) $node_(r2)] $ns rtproto DV $self checkConfig $class $ns}#Class NodeTopology/8nodes -superclass SkelTopology## Create a simple eight node topology:## s1 s3# \ 4 x /# 10Mb,2ms \ 1.5Mb,20ms / 10Mb,4ms# r1 -.--.--.- r4# 10Mb,3ms / \ 10Mb,5ms# / \# s2 s4 ## This topology is of interest when the 4 node spine is dynamic,# and 3 alternate nodes provide fallback paths.#NodeTopology/8nodes instproc init ns { $self next $self instvar node_ set node_(s1) [$ns node] set node_(s2) [$ns node] set node_(s3) [$ns node] set node_(s4) [$ns node] set node_(r1) [$ns node] set node_(r2) [$ns node] set node_(r3) [$ns node] set node_(r4) [$ns node]}Class Topology/net3 -superclass NodeTopology/8nodesTopology/net3 instproc init ns { $self next $ns $self instvar node_ $ns duplex-link $node_(s1) $node_(r1) 10Mb 2ms DropTail $ns duplex-link $node_(s2) $node_(r1) 10Mb 3ms DropTail $ns duplex-link $node_(r1) $node_(r2) 1.5Mb 20ms RED $ns queue-limit $node_(r1) $node_(r2) 25 $ns queue-limit $node_(r2) $node_(r1) 25 $ns duplex-link $node_(r2) $node_(r3) 1.5Mb 20ms DropTail $ns duplex-link $node_(r3) $node_(r4) 1.5Mb 20ms DropTail $ns duplex-link $node_(s3) $node_(r4) 10Mb 4ms DropTail $ns duplex-link $node_(s4) $node_(r4) 10Mb 5ms DropTail $ns duplex-link-op $node_(s1) $node_(r1) orient right-down $ns duplex-link-op $node_(s2) $node_(r1) orient right-up $ns duplex-link-op $node_(r1) $node_(r2) orient right $ns duplex-link-op $node_(r1) $node_(r2) queuePos 0 $ns duplex-link-op $node_(r2) $node_(r1) queuePos 0 $ns duplex-link-op $node_(r2) $node_(r3) orient right $ns duplex-link-op $node_(r3) $node_(r4) orient right $ns duplex-link-op $node_(s3) $node_(r4) orient left-down $ns duplex-link-op $node_(s4) $node_(r4) orient left-up $self checkConfig $class $ns}Class Topology/net3- -superclass Topology/net3Topology/net3- instproc init ns { $self next $ns $self instvar node_ rtm_ set dynamicsTrace [open dyn.tr "w"] foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set rtm_($x1:$x2) [$ns rtmodel Exponential {5.0 1.0} $node_($x1) $node_($x2)] [$ns link $node_($x1) $node_($x2)] trace-dynamics $ns $dynamicsTrace [$ns link $node_($x2) $node_($x1)] trace-dynamics $ns $dynamicsTrace } $self checkConfig $class $ns}Class Topology/net3-Session -superclass Topology/net3Topology/net3-Session instproc init ns { $self next $ns ;# instantiate entire topology $self instvar node_ rtm_ foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms DropTail \ {queue-limit 25} set rtm_($x1:$x2) [$ns rtmodel Trace "dyn.tr" $node_($x1) $node_($x2)] } $ns rtproto Session $self checkConfig $class $ns}Class Topology/net3-DV -superclass Topology/net3Topology/net3-DV instproc init ns { $self next $ns ;# instantiate entire topology $self instvar node_ rtm_ foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms DropTail \ {queue-limit 25} set rtm_($x1:$x2) [$ns rtmodel Trace "dyn.tr" $node_($x1) $node_($x2)] } $ns rtproto DV $self checkConfig $class $ns}Class Topology/net3-DVm0 -superclass Topology/net3Topology/net3-DVm0 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms DropTail \ {queue-limit 25} [list cost 2 $x1 $x2] } $ns rtproto DV $self checkConfig $class $ns}Class Topology/net3-DVm1 -superclass Topology/net3Topology/net3-DVm1 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology $self instvar node_ rtm_ foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms DropTail \ {queue-limit 25} [list cost 2 $x1 $x2] set rtm_($x1:$x2) [$ns rtmodel Trace "dyn.tr" $node_($x1) $node_($x2)] } $ns rtproto DV $self checkConfig $class $ns}Class Topology/net3RED-Session -superclass Topology/net3Topology/net3RED-Session instproc init ns { $self next $ns ;# instantiate entire topology $self instvar node_ rtm_ foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms RED \ {queue-limit 25} set rtm_($x1:$x2) [$ns rtmodel Trace "dyn.tr" $node_($x1) $node_($x2)] } $ns rtproto Session $self checkConfig $class $ns}Class Topology/net3RED-DV -superclass Topology/net3Topology/net3RED-DV instproc init ns { $self next $ns ;# instantiate entire topology $self instvar node_ rtm_ foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms RED \ {queue-limit 25} set rtm_($x1:$x2) [$ns rtmodel Trace "dyn.tr" $node_($x1) $node_($x2)] } $ns rtproto DV $self checkConfig $class $ns}Class Topology/net3RED-DVm0 -superclass Topology/net3Topology/net3RED-DVm0 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms RED \ {queue-limit 25} [list cost 2 $x1 $x2] } $ns rtproto DV $self checkConfig $class $ns}Class Topology/net3RED-DVm1 -superclass Topology/net3Topology/net3RED-DVm1 instproc init ns { Node set multiPath_ 1 $self next $ns ;# instantiate entire topology $self instvar node_ rtm_ foreach i [list {r1 b1 r2} {r2 b2 r3} {r3 b3 r4}] { set x1 [lindex $i 0] set x2 [lindex $i 2] set b1 [lindex $i 1] $self add-fallback-links $ns [list $x1 $b1 $x2] 1.5Mb 10ms RED \ {queue-limit 25} [list cost 2 $x1 $x2] set rtm_($x1:$x2) [$ns rtmodel Trace "dyn.tr" $node_($x1) $node_($x2)] } $ns rtproto DV $self checkConfig $class $ns}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -