File: hier-rtg-10.tcl

package info (click to toggle)
ns2 2.35%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 78,120 kB
  • sloc: cpp: 172,923; tcl: 107,127; perl: 6,391; sh: 6,143; ansic: 5,846; makefile: 812; awk: 525; csh: 355
file content (77 lines) | stat: -rw-r--r-- 1,813 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# A simple example for hierarchical routing, by generating
# topology by hand (of 10 nodes)

set ns [new Simulator]
$ns set-address-format hierarchical

$ns namtrace-all [open hier-out-a.nam w]
$ns trace-all [open hier-out-a.tr w]

AddrParams set domain_num_ 2
lappend cluster_num 2 2
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 2 3 2 3
AddrParams set nodes_num_ $eilastlevel

set naddr {0.0.0 0.0.1 0.1.0 0.1.1 0.1.2 1.0.0 1.0.1 1.1.0 1.1.1 1.1.2}

for {set i 0} {$i < 10} {incr i} {
     set n($i) [$ns node [lindex $naddr $i]]
}

$ns duplex-link $n(0) $n(1) 5Mb 2ms DropTail
$ns duplex-link $n(1) $n(2) 5Mb 2ms DropTail
$ns duplex-link $n(2) $n(3) 5Mb 2ms DropTail
$ns duplex-link $n(2) $n(4) 5Mb 2ms DropTail
$ns duplex-link $n(1) $n(5) 5Mb 2ms DropTail
$ns duplex-link $n(5) $n(6) 5Mb 2ms DropTail
$ns duplex-link $n(6) $n(7) 5Mb 2ms DropTail
$ns duplex-link $n(7) $n(8) 5Mb 2ms DropTail
$ns duplex-link $n(8) $n(9) 5Mb 2ms DropTail

set udp0 [new Agent/UDP]
$ns attach-agent $n(0) $udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0

set udp1 [new Agent/UDP]
$udp1 set class_ 1
$ns attach-agent $n(2) $udp1
set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1

set null0 [new Agent/Null]
$ns attach-agent $n(8) $null0

set null1 [new Agent/Null]
$ns attach-agent $n(6) $null1

$ns connect $udp0 $null0
$ns connect $udp1 $null1

$ns at 1.0 "$cbr0 start"
$ns at 1.1 "$cbr1 start"

puts [$cbr0 set packetSize_]
puts [$cbr0 set interval_]



$ns at 1.0 {$n(2) label [$n(2) set rtsize_]}
$ns at 1.0 {$n(4) label [$n(4) set rtsize_]}
$ns at 1.0 {$n(6) label [$n(6) set rtsize_]}
$ns at 1.0 {$n(8) label [$n(8) set rtsize_]}

$ns at 3.5 "finish"

proc finish {} {
	global ns 
	$ns flush-trace
	##puts "running nam..."
	##exec nam hier-out-a.nam &
	exit 0
}

$ns run