set ns [new Simulator]

$ns multicast

$ns color 1 Yellow

$ns color 2 Red

$ns color 3 Blue

set nf [open out.nam w]

$ns namtrace-all $nf

proc finish { } {

global ns nf

$ns flush-trace

close $nf

exec nam out.nam &

exit 0

}

set asterisco [Node allocaddr]

set stellina [Node allocaddr]

set punto [Node allocaddr]

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]

$ns duplex-link $n0 $n1 1.5Mb 10ms DropTail

$ns duplex-link $n0 $n5 1.5Mb 10ms DropTail

$ns duplex-link $n0 $n6 1.5Mb 10ms DropTail

$ns duplex-link $n1 $n3 1.5Mb 10ms DropTail

$ns duplex-link $n1 $n2 1.5Mb 10ms DropTail

$ns duplex-link $n2 $n3 1.5Mb 10ms DropTail

$ns duplex-link $n3 $n4 1.5Mb 10ms DropTail

$ns duplex-link $n4 $n5 1.5Mb 10ms DropTail

$ns duplex-link $n4 $n8 1.5Mb 10ms DropTail

$ns duplex-link $n5 $n7 1.5Mb 10ms DropTail

$ns duplex-link $n6 $n7 1.5Mb 10ms DropTail

$ns duplex-link $n7 $n8 1.5Mb 10ms DropTail

$ns duplex-link $n7 $n9 1.5Mb 10ms DropTail

$ns duplex-link $n7 $n10 1.5Mb 10ms DropTail

$ns duplex-link $n8 $n9 1.5Mb 10ms DropTail

$ns duplex-link $n9 $n10 1.5Mb 10ms DropTail

 

 

set mproto detailedDM

set mrthandle [$ns mrtproto $mproto { } ]

set udp01 [new Agent/UDP]

$ns attach-agent $n0 $udp01

set src01 [new Application/Traffic/CBR]

$src01 attach-agent $udp01

$udp01 set dst_ $asterisco

$udp01 set fid_ 1

set udp02 [new Agent/UDP]

$ns attach-agent $n0 $udp02

set src02 [new Application/Traffic/CBR]

$src02 attach-agent $udp02

$udp02 set dst_ $stellina

$udp02 set fid_ 2

set udp03 [new Agent/UDP]

$ns attach-agent $n0 $udp03

set src03 [new Application/Traffic/CBR]

$src03 attach-agent $udp03

$udp03 set dst_ $punto

$udp03 set fid_ 3

set rec2 [new Agent/LossMonitor]

$ns attach-agent $n2 $rec2

set rec3 [new Agent/LossMonitor]

$ns attach-agent $n3 $rec3

set rec4 [new Agent/LossMonitor]

$ns attach-agent $n4 $rec4

set rec5 [new Agent/LossMonitor]

$ns attach-agent $n5 $rec5

set rec7 [new Agent/LossMonitor]

$ns attach-agent $n7 $rec7

set rec8 [new Agent/LossMonitor]

$ns attach-agent $n8 $rec8

set rec9 [new Agent/LossMonitor]

$ns attach-agent $n9 $rec9

set rec10 [new Agent/LossMonitor]

$ns attach-agent $n10 $rec10

set mcastmonitor1 [$ns McastMonitor]

$mcastmonitor1 set period_ 0.02

$mcastmonitor1 trace-tree $src01 $asterisco

set mcastmonitor2 [$ns McastMonitor]

$mcastmonitor2 set period_ 0.02

$mcastmonitor2 trace-tree $src02 $stellina

set mcastmonitor3 [$ns McastMonitor]

$mcastmonitor3 set period_ 0.02

$mcastmonitor3 trace-tree $src03 $punto

$ns at 0.3 "$src02 start"

$ns at 0.6 "$n2 join-group $rec2 $stellina"

$ns at 0.6 "$n2 color red"

$ns at 0.6 "$n8 join-group $rec8 $stellina"

$ns at 0.6 "$n8 color red"

$ns at 0.6 "$n9 join-group $rec9 $stellina"

$ns at 0.6 "$n9 color red"

$ns at 0.6 "$n10 join-group $rec10 $stellina"

$ns at 0.6 "$n10 color red"

$ns at 1.3 "$src01 start"

$ns at 1.6 "$n3 join-group $rec3 $asterisco"

$ns at 1.6 "$n3 color yellow"

$ns at 1.6 "$n4 join-group $rec4 $asterisco"

$ns at 1.6 "$n4 color yellow"

$ns at 2.3 "$src03 start"

$ns at 2.6 "$n4 join-group $rec4 $punto"

$ns at 2.6 "$n4 add-mark color blue"

$ns at 2.6 "$n5 join-group $rec5 $punto"

$ns at 2.6 "$n5 color blue"

$ns at 2.6 "$n7 join-group $rec7 $punto"

$ns at 2.6 "$n7 color blue"

$ns at 3.3 "finish"

$ns run