#
# tcl/ex/newmcast/cmcast-50.tcl
#
# Copyright (C) 1997 by USC/ISI
# All rights reserved.                                            
#                                                                
# Redistribution and use in source and binary forms are permitted
# provided that the above copyright notice and this paragraph are
# duplicated in all such forms and that any documentation, advertising
# materials, and other materials related to such distribution and use
# acknowledge that the software was developed by the University of
# Southern California, Information Sciences Institute.  The name of the
# University may not be used to endorse or promote products derived from
# this software without specific prior written permission.
# 
# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
# 
# Contributed by Polly Huang (USC/ISI), http://www-scf.usc.edu/~bhuang
# 
#
# Generated by sgb2nsctr, sgb2nsctr created by Polly Huang
# GRAPH (#nodes #edges id uu vv ww xx yy zz):
# 50 434 geo(0,{50,100,3,0.200,0.250,75.000}) 100 

set verbose 1
set ns [new Simulator]
Simulator set EnableMcast_ 1
Simulator set NumberInterfaces_ 1
Node expandaddr
set g [Node allocaddr]

if {$verbose} { puts "creating 50 nodes.." }
for {set i 0} {$i < 50} {incr i} {
	set n($i) [$ns node]
}

# EDGES (from-node to-node length a b):
if {$verbose} { puts -nonewline "Creating links 0..."; flush stdout }
$ns duplex-link $n(0) $n(43) 1.5Mb 200ms DropTail
$ns duplex-link $n(0) $n(42) 1.5Mb 660ms DropTail
$ns duplex-link $n(0) $n(40) 1.5Mb 200ms DropTail
$ns duplex-link $n(0) $n(30) 1.5Mb 720ms DropTail
$ns duplex-link $n(0) $n(23) 1.5Mb 330ms DropTail
$ns duplex-link $n(0) $n(3) 1.5Mb 550ms DropTail
$ns duplex-link $n(0) $n(1) 1.5Mb 700ms DropTail
$ns duplex-link $n(1) $n(40) 1.5Mb 800ms DropTail
$ns duplex-link $n(1) $n(34) 1.5Mb 800ms DropTail
$ns duplex-link $n(1) $n(33) 1.5Mb 900ms DropTail
if {$verbose} { puts -nonewline "10..."; flush stdout }
$ns duplex-link $n(1) $n(26) 1.5Mb 270ms DropTail
$ns duplex-link $n(1) $n(25) 1.5Mb 770ms DropTail
$ns duplex-link $n(1) $n(21) 1.5Mb 60ms DropTail
$ns duplex-link $n(1) $n(12) 1.5Mb 620ms DropTail
$ns duplex-link $n(2) $n(42) 1.5Mb 1100ms DropTail
$ns duplex-link $n(2) $n(27) 1.5Mb 910ms DropTail
$ns duplex-link $n(2) $n(22) 1.5Mb 590ms DropTail
$ns duplex-link $n(2) $n(15) 1.5Mb 590ms DropTail
$ns duplex-link $n(2) $n(12) 1.5Mb 470ms DropTail
$ns duplex-link $n(2) $n(9) 1.5Mb 830ms DropTail
if {$verbose} { puts -nonewline "20..."; flush stdout }
$ns duplex-link $n(2) $n(7) 1.5Mb 850ms DropTail
$ns duplex-link $n(2) $n(4) 1.5Mb 800ms DropTail
$ns duplex-link $n(3) $n(49) 1.5Mb 120ms DropTail
$ns duplex-link $n(3) $n(41) 1.5Mb 890ms DropTail
$ns duplex-link $n(3) $n(29) 1.5Mb 350ms DropTail
$ns duplex-link $n(3) $n(20) 1.5Mb 640ms DropTail
$ns duplex-link $n(3) $n(18) 1.5Mb 480ms DropTail
$ns duplex-link $n(3) $n(12) 1.5Mb 270ms DropTail
$ns duplex-link $n(3) $n(9) 1.5Mb 310ms DropTail
$ns duplex-link $n(3) $n(8) 1.5Mb 110ms DropTail
if {$verbose} { puts -nonewline "30..."; flush stdout }
$ns duplex-link $n(4) $n(48) 1.5Mb 450ms DropTail
$ns duplex-link $n(4) $n(46) 1.5Mb 640ms DropTail
$ns duplex-link $n(4) $n(41) 1.5Mb 500ms DropTail
$ns duplex-link $n(4) $n(33) 1.5Mb 660ms DropTail
$ns duplex-link $n(4) $n(23) 1.5Mb 730ms DropTail
$ns duplex-link $n(4) $n(22) 1.5Mb 290ms DropTail
$ns duplex-link $n(4) $n(12) 1.5Mb 360ms DropTail
$ns duplex-link $n(4) $n(10) 1.5Mb 690ms DropTail
$ns duplex-link $n(4) $n(7) 1.5Mb 80ms DropTail
$ns duplex-link $n(5) $n(45) 1.5Mb 630ms DropTail
if {$verbose} { puts -nonewline "40..."; flush stdout }
$ns duplex-link $n(5) $n(44) 1.5Mb 540ms DropTail
$ns duplex-link $n(5) $n(42) 1.5Mb 820ms DropTail
$ns duplex-link $n(5) $n(40) 1.5Mb 230ms DropTail
$ns duplex-link $n(5) $n(24) 1.5Mb 60ms DropTail
$ns duplex-link $n(5) $n(21) 1.5Mb 700ms DropTail
$ns duplex-link $n(5) $n(19) 1.5Mb 290ms DropTail
$ns duplex-link $n(5) $n(17) 1.5Mb 590ms DropTail
$ns duplex-link $n(5) $n(10) 1.5Mb 250ms DropTail
$ns duplex-link $n(6) $n(42) 1.5Mb 400ms DropTail
$ns duplex-link $n(6) $n(36) 1.5Mb 500ms DropTail
if {$verbose} { puts -nonewline "50..."; flush stdout }
$ns duplex-link $n(6) $n(24) 1.5Mb 400ms DropTail
$ns duplex-link $n(6) $n(15) 1.5Mb 620ms DropTail
$ns duplex-link $n(6) $n(9) 1.5Mb 410ms DropTail
$ns duplex-link $n(7) $n(46) 1.5Mb 700ms DropTail
$ns duplex-link $n(7) $n(45) 1.5Mb 110ms DropTail
$ns duplex-link $n(7) $n(38) 1.5Mb 620ms DropTail
$ns duplex-link $n(8) $n(46) 1.5Mb 450ms DropTail
$ns duplex-link $n(8) $n(41) 1.5Mb 790ms DropTail
$ns duplex-link $n(8) $n(35) 1.5Mb 690ms DropTail
$ns duplex-link $n(8) $n(24) 1.5Mb 50ms DropTail
if {$verbose} { puts -nonewline "60..."; flush stdout }
$ns duplex-link $n(8) $n(22) 1.5Mb 190ms DropTail
$ns duplex-link $n(8) $n(18) 1.5Mb 400ms DropTail
$ns duplex-link $n(8) $n(12) 1.5Mb 170ms DropTail
$ns duplex-link $n(8) $n(10) 1.5Mb 220ms DropTail
$ns duplex-link $n(9) $n(45) 1.5Mb 450ms DropTail
$ns duplex-link $n(9) $n(40) 1.5Mb 620ms DropTail
$ns duplex-link $n(9) $n(38) 1.5Mb 860ms DropTail
$ns duplex-link $n(9) $n(36) 1.5Mb 610ms DropTail
$ns duplex-link $n(9) $n(22) 1.5Mb 290ms DropTail
$ns duplex-link $n(9) $n(20) 1.5Mb 920ms DropTail
if {$verbose} { puts -nonewline "70..."; flush stdout }
$ns duplex-link $n(10) $n(46) 1.5Mb 550ms DropTail
$ns duplex-link $n(10) $n(45) 1.5Mb 800ms DropTail
$ns duplex-link $n(10) $n(43) 1.5Mb 730ms DropTail
$ns duplex-link $n(10) $n(42) 1.5Mb 1000ms DropTail
$ns duplex-link $n(10) $n(39) 1.5Mb 240ms DropTail
$ns duplex-link $n(10) $n(34) 1.5Mb 920ms DropTail
$ns duplex-link $n(10) $n(29) 1.5Mb 520ms DropTail
$ns duplex-link $n(10) $n(22) 1.5Mb 400ms DropTail
$ns duplex-link $n(10) $n(17) 1.5Mb 670ms DropTail
$ns duplex-link $n(10) $n(15) 1.5Mb 100ms DropTail
if {$verbose} { puts -nonewline "80..."; flush stdout }
$ns duplex-link $n(11) $n(39) 1.5Mb 410ms DropTail
$ns duplex-link $n(11) $n(35) 1.5Mb 850ms DropTail
$ns duplex-link $n(11) $n(20) 1.5Mb 940ms DropTail
$ns duplex-link $n(11) $n(19) 1.5Mb 410ms DropTail
$ns duplex-link $n(11) $n(14) 1.5Mb 750ms DropTail
$ns duplex-link $n(11) $n(12) 1.5Mb 370ms DropTail
$ns duplex-link $n(12) $n(41) 1.5Mb 610ms DropTail
$ns duplex-link $n(12) $n(38) 1.5Mb 530ms DropTail
$ns duplex-link $n(12) $n(28) 1.5Mb 480ms DropTail
$ns duplex-link $n(12) $n(26) 1.5Mb 580ms DropTail
if {$verbose} { puts -nonewline "90..."; flush stdout }
$ns duplex-link $n(12) $n(25) 1.5Mb 190ms DropTail
$ns duplex-link $n(13) $n(46) 1.5Mb 700ms DropTail
$ns duplex-link $n(13) $n(42) 1.5Mb 300ms DropTail
$ns duplex-link $n(13) $n(41) 1.5Mb 560ms DropTail
$ns duplex-link $n(13) $n(28) 1.5Mb 870ms DropTail
$ns duplex-link $n(13) $n(27) 1.5Mb 320ms DropTail
$ns duplex-link $n(13) $n(25) 1.5Mb 540ms DropTail
$ns duplex-link $n(13) $n(17) 1.5Mb 240ms DropTail
$ns duplex-link $n(13) $n(15) 1.5Mb 680ms DropTail
$ns duplex-link $n(14) $n(38) 1.5Mb 200ms DropTail
if {$verbose} { puts -nonewline "100..."; flush stdout }
$ns duplex-link $n(14) $n(34) 1.5Mb 180ms DropTail
$ns duplex-link $n(14) $n(30) 1.5Mb 680ms DropTail
$ns duplex-link $n(14) $n(15) 1.5Mb 1020ms DropTail
$ns duplex-link $n(15) $n(44) 1.5Mb 700ms DropTail
$ns duplex-link $n(15) $n(41) 1.5Mb 1020ms DropTail
$ns duplex-link $n(15) $n(32) 1.5Mb 700ms DropTail
$ns duplex-link $n(15) $n(23) 1.5Mb 790ms DropTail
$ns duplex-link $n(16) $n(47) 1.5Mb 90ms DropTail
$ns duplex-link $n(16) $n(35) 1.5Mb 870ms DropTail
$ns duplex-link $n(16) $n(32) 1.5Mb 790ms DropTail
if {$verbose} { puts -nonewline "110..."; flush stdout }
$ns duplex-link $n(16) $n(29) 1.5Mb 180ms DropTail
$ns duplex-link $n(16) $n(25) 1.5Mb 520ms DropTail
$ns duplex-link $n(17) $n(49) 1.5Mb 520ms DropTail
$ns duplex-link $n(17) $n(47) 1.5Mb 380ms DropTail
$ns duplex-link $n(17) $n(44) 1.5Mb 300ms DropTail
$ns duplex-link $n(17) $n(43) 1.5Mb 860ms DropTail
$ns duplex-link $n(17) $n(35) 1.5Mb 940ms DropTail
$ns duplex-link $n(17) $n(29) 1.5Mb 150ms DropTail
$ns duplex-link $n(17) $n(28) 1.5Mb 970ms DropTail
$ns duplex-link $n(17) $n(23) 1.5Mb 970ms DropTail
if {$verbose} { puts -nonewline "120..."; flush stdout }
$ns duplex-link $n(18) $n(35) 1.5Mb 520ms DropTail
$ns duplex-link $n(18) $n(34) 1.5Mb 440ms DropTail
$ns duplex-link $n(18) $n(31) 1.5Mb 570ms DropTail
$ns duplex-link $n(18) $n(23) 1.5Mb 580ms DropTail
$ns duplex-link $n(18) $n(20) 1.5Mb 770ms DropTail
$ns duplex-link $n(19) $n(49) 1.5Mb 320ms DropTail
$ns duplex-link $n(19) $n(48) 1.5Mb 190ms DropTail
$ns duplex-link $n(19) $n(34) 1.5Mb 420ms DropTail
$ns duplex-link $n(19) $n(30) 1.5Mb 610ms DropTail
$ns duplex-link $n(20) $n(49) 1.5Mb 550ms DropTail
if {$verbose} { puts -nonewline "130..."; flush stdout }
$ns duplex-link $n(20) $n(43) 1.5Mb 520ms DropTail
$ns duplex-link $n(20) $n(39) 1.5Mb 540ms DropTail
$ns duplex-link $n(20) $n(32) 1.5Mb 240ms DropTail
$ns duplex-link $n(20) $n(29) 1.5Mb 920ms DropTail
$ns duplex-link $n(20) $n(28) 1.5Mb 100ms DropTail
$ns duplex-link $n(20) $n(22) 1.5Mb 690ms DropTail
$ns duplex-link $n(21) $n(44) 1.5Mb 210ms DropTail
$ns duplex-link $n(21) $n(39) 1.5Mb 650ms DropTail
$ns duplex-link $n(21) $n(32) 1.5Mb 1010ms DropTail
$ns duplex-link $n(21) $n(26) 1.5Mb 240ms DropTail
if {$verbose} { puts -nonewline "140..."; flush stdout }
$ns duplex-link $n(22) $n(44) 1.5Mb 320ms DropTail
$ns duplex-link $n(22) $n(40) 1.5Mb 340ms DropTail
$ns duplex-link $n(22) $n(35) 1.5Mb 640ms DropTail
$ns duplex-link $n(22) $n(34) 1.5Mb 630ms DropTail
$ns duplex-link $n(22) $n(33) 1.5Mb 380ms DropTail
$ns duplex-link $n(23) $n(43) 1.5Mb 160ms DropTail
$ns duplex-link $n(23) $n(41) 1.5Mb 580ms DropTail
$ns duplex-link $n(23) $n(28) 1.5Mb 310ms DropTail
$ns duplex-link $n(24) $n(45) 1.5Mb 590ms DropTail
$ns duplex-link $n(24) $n(42) 1.5Mb 790ms DropTail
if {$verbose} { puts -nonewline "150..."; flush stdout }
$ns duplex-link $n(24) $n(40) 1.5Mb 270ms DropTail
$ns duplex-link $n(24) $n(38) 1.5Mb 660ms DropTail
$ns duplex-link $n(24) $n(35) 1.5Mb 640ms DropTail
$ns duplex-link $n(25) $n(49) 1.5Mb 290ms DropTail
$ns duplex-link $n(25) $n(46) 1.5Mb 170ms DropTail
$ns duplex-link $n(25) $n(44) 1.5Mb 510ms DropTail
$ns duplex-link $n(25) $n(41) 1.5Mb 560ms DropTail
$ns duplex-link $n(25) $n(38) 1.5Mb 430ms DropTail
$ns duplex-link $n(25) $n(36) 1.5Mb 150ms DropTail
$ns duplex-link $n(26) $n(49) 1.5Mb 720ms DropTail
if {$verbose} { puts -nonewline "160..."; flush stdout }
$ns duplex-link $n(26) $n(48) 1.5Mb 670ms DropTail
$ns duplex-link $n(26) $n(43) 1.5Mb 710ms DropTail
$ns duplex-link $n(26) $n(35) 1.5Mb 740ms DropTail
$ns duplex-link $n(26) $n(34) 1.5Mb 570ms DropTail
$ns duplex-link $n(26) $n(33) 1.5Mb 890ms DropTail
$ns duplex-link $n(26) $n(31) 1.5Mb 900ms DropTail
$ns duplex-link $n(27) $n(42) 1.5Mb 260ms DropTail
$ns duplex-link $n(27) $n(29) 1.5Mb 580ms DropTail
$ns duplex-link $n(28) $n(40) 1.5Mb 300ms DropTail
$ns duplex-link $n(28) $n(35) 1.5Mb 510ms DropTail
if {$verbose} { puts -nonewline "170..."; flush stdout }
$ns duplex-link $n(29) $n(45) 1.5Mb 350ms DropTail
$ns duplex-link $n(29) $n(39) 1.5Mb 380ms DropTail
$ns duplex-link $n(29) $n(33) 1.5Mb 570ms DropTail
$ns duplex-link $n(29) $n(30) 1.5Mb 430ms DropTail
$ns duplex-link $n(30) $n(47) 1.5Mb 650ms DropTail
$ns duplex-link $n(30) $n(46) 1.5Mb 960ms DropTail
$ns duplex-link $n(30) $n(38) 1.5Mb 790ms DropTail
$ns duplex-link $n(30) $n(37) 1.5Mb 930ms DropTail
$ns duplex-link $n(31) $n(42) 1.5Mb 1010ms DropTail
$ns duplex-link $n(31) $n(40) 1.5Mb 200ms DropTail
if {$verbose} { puts -nonewline "180..."; flush stdout }
$ns duplex-link $n(31) $n(39) 1.5Mb 370ms DropTail
$ns duplex-link $n(31) $n(34) 1.5Mb 620ms DropTail
$ns duplex-link $n(32) $n(48) 1.5Mb 390ms DropTail
$ns duplex-link $n(32) $n(46) 1.5Mb 130ms DropTail
$ns duplex-link $n(32) $n(44) 1.5Mb 800ms DropTail
$ns duplex-link $n(33) $n(46) 1.5Mb 370ms DropTail
$ns duplex-link $n(33) $n(44) 1.5Mb 690ms DropTail
$ns duplex-link $n(33) $n(43) 1.5Mb 570ms DropTail
$ns duplex-link $n(33) $n(38) 1.5Mb 750ms DropTail
$ns duplex-link $n(33) $n(34) 1.5Mb 780ms DropTail
if {$verbose} { puts -nonewline "190..."; flush stdout }
$ns duplex-link $n(34) $n(47) 1.5Mb 810ms DropTail
$ns duplex-link $n(34) $n(45) 1.5Mb 620ms DropTail
$ns duplex-link $n(34) $n(44) 1.5Mb 560ms DropTail
$ns duplex-link $n(34) $n(43) 1.5Mb 270ms DropTail
$ns duplex-link $n(34) $n(40) 1.5Mb 480ms DropTail
$ns duplex-link $n(34) $n(38) 1.5Mb 30ms DropTail
$ns duplex-link $n(35) $n(45) 1.5Mb 760ms DropTail
$ns duplex-link $n(35) $n(37) 1.5Mb 40ms DropTail
$ns duplex-link $n(36) $n(49) 1.5Mb 250ms DropTail
$ns duplex-link $n(36) $n(45) 1.5Mb 720ms DropTail
if {$verbose} { puts -nonewline "200..."; flush stdout }
$ns duplex-link $n(36) $n(44) 1.5Mb 620ms DropTail
$ns duplex-link $n(36) $n(42) 1.5Mb 900ms DropTail
$ns duplex-link $n(37) $n(48) 1.5Mb 520ms DropTail
$ns duplex-link $n(37) $n(40) 1.5Mb 400ms DropTail
$ns duplex-link $n(37) $n(39) 1.5Mb 670ms DropTail
$ns duplex-link $n(37) $n(38) 1.5Mb 170ms DropTail
$ns duplex-link $n(39) $n(45) 1.5Mb 590ms DropTail
$ns duplex-link $n(39) $n(42) 1.5Mb 790ms DropTail
$ns duplex-link $n(39) $n(41) 1.5Mb 760ms DropTail
$ns duplex-link $n(39) $n(40) 1.5Mb 280ms DropTail
if {$verbose} { puts -nonewline "210..."; flush stdout }
$ns duplex-link $n(40) $n(44) 1.5Mb 550ms DropTail
$ns duplex-link $n(41) $n(47) 1.5Mb 830ms DropTail
$ns duplex-link $n(42) $n(49) 1.5Mb 800ms DropTail
$ns duplex-link $n(43) $n(48) 1.5Mb 390ms DropTail
$ns duplex-link $n(44) $n(49) 1.5Mb 520ms DropTail
$ns duplex-link $n(44) $n(48) 1.5Mb 480ms DropTail
$ns duplex-link $n(46) $n(47) 1.5Mb 590ms DropTail
if {$verbose} { puts ""}
set mproto CtrMcast
set mrthandle [$ns mrtproto $mproto {}]
$ns at 0 "$mrthandle switch-treetype $g"

if {$verbose} {puts "starting"}
set rcvr18 [new Agent/Null]
$ns attach-agent $n(18) $rcvr18
$ns at 1 "$n(18) join-group $rcvr18 $g"
set rcvr37 [new Agent/Null]
$ns attach-agent $n(37) $rcvr37
$ns at 2 "$n(37) join-group $rcvr37 $g"
set rcvr41 [new Agent/Null]
$ns attach-agent $n(41) $rcvr41
$ns at 3 "$n(41) join-group $rcvr41 $g"
set rcvr23 [new Agent/Null]
$ns attach-agent $n(23) $rcvr23
$ns at 4 "$n(23) join-group $rcvr23 $g"
set rcvr17 [new Agent/Null]
$ns attach-agent $n(17) $rcvr17
$ns at 5 "$n(17) join-group $rcvr17 $g"
set rcvr15 [new Agent/Null]
$ns attach-agent $n(15) $rcvr15
$ns at 6 "$n(15) join-group $rcvr15 $g"
set rcvr14 [new Agent/Null]
$ns attach-agent $n(14) $rcvr14
$ns at 7 "$n(14) join-group $rcvr14 $g"
set rcvr47 [new Agent/Null]
$ns attach-agent $n(47) $rcvr47
$ns at 8 "$n(47) join-group $rcvr47 $g"
set rcvr19 [new Agent/Null]
$ns attach-agent $n(19) $rcvr19
$ns at 9 "$n(19) join-group $rcvr19 $g"
set rcvr16 [new Agent/Null]
$ns attach-agent $n(16) $rcvr16
$ns at 10 "$n(16) join-group $rcvr16 $g"
set sender [new Agent/CBR]
$sender set dst_ $g
$sender set class_ 2
$ns attach-agent $n(2) $sender

$ns at 0 "$sender start"

# START ns
$ns at 10.99 "[$ns clearMemTrace]"
$ns at 11 "exit 0"
$ns run

