[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Error in BST.tcl
Abdelhamid,
This is a bug with the BST code. I'll look into it.
Nader
Abdelhamid> Hi,
Abdelhamid> I am trying to use using ~ns/tcl/mcast/BST.tcl. I figured
Abdelhamid> out that if a node belonging to the tree and was passed by
Abdelhamid> a prune message, the can't join the tree anymore. The test
Abdelhamid> used in "BST join-group" don't allow the propagation of
Abdelhamid> the message.
Abdelhamid>
Abdelhamid> Here is a sample script where we can see the problem :
Abdelhamid> ## After the prune passed node 1 and 4, they can't join
Abdelhamid> anymore
Abdelhamid>
Abdelhamid>
Abdelhamid> ## Simple Bi-directional Shared Tree multicast test
Abdelhamid> # on a binary tree
Abdelhamid>
Abdelhamid> set ns [new Simulator -multicast on]
Abdelhamid>
Abdelhamid> set f [open out-mc8.tr w]
Abdelhamid> $ns trace-all $f
Abdelhamid> set nf [open out-mc8.nam w]
Abdelhamid> $ns namtrace-all $nf
Abdelhamid>
Abdelhamid> set degree 2 ;#binary
Abdelhamid> set depth 4 ;
Abdelhamid> set n(0) [$ns node]
Abdelhamid> set nidx 1
Abdelhamid> for {set l 1} {$l<$depth} {incr l} {
Abdelhamid> set nodes_at_level [expr pow($degree, $l)]
Abdelhamid> for {set k 1} {$k <= $nodes_at_level} {incr k} {
Abdelhamid> #create new node
Abdelhamid> eval set n($nidx) [$ns node]
Abdelhamid> #link it to the parent
Abdelhamid> set p [expr ($nidx - 1)/$degree]
Abdelhamid> $ns duplex-link $n($p) $n($nidx) 1.5Mb [expr $depth*10/pow(2,$l)]ms
Abdelhamid> DropTail
Abdelhamid> #orient the link
Abdelhamid> # parent p has children [$p*$degree+1..($p+1)*$degree]
Abdelhamid> # so middle point is $p*$degree+($degree+1)/2
Abdelhamid> set mp [expr $p*$degree + ($degree+1)/2.0]
Abdelhamid> if {$nidx < $mp} {
Abdelhamid> set orientation "left-down"
Abdelhamid> } elseif {$nidx > $mp } {
Abdelhamid> set orientation "right-down"
Abdelhamid> } else {
Abdelhamid> set orientation "down"
Abdelhamid> }
Abdelhamid> $ns duplex-link-op $n($p) $n($nidx) orient $orientation
Abdelhamid> # $ns duplex-link-op $n($p) $n($nidx) queuePos [expr 1/pow($degree, $l)]
Abdelhamid>
Abdelhamid> #attach senders
Abdelhamid> set cbr($nidx) [new Agent/CBR]
Abdelhamid> $cbr($nidx) set dst_ 0x8003
Abdelhamid> $cbr($nidx) set class_ [expr 100 + $nidx]
Abdelhamid> $cbr($nidx) set interval_ 20ms
Abdelhamid> $ns attach-agent $n($nidx) $cbr($nidx)
Abdelhamid>
Abdelhamid> #attach receivers
Abdelhamid> set rcvr($nidx) [new Agent/Null]
Abdelhamid> $ns attach-agent $n($nidx) $rcvr($nidx)
Abdelhamid>
Abdelhamid> incr nidx
Abdelhamid> }
Abdelhamid> }
Abdelhamid>
Abdelhamid> ### Start multicast configuration:
Abdelhamid> source BST.tcl
Abdelhamid>
Abdelhamid> BST set RP_([expr 0x8003]) $n(0)
Abdelhamid>
Abdelhamid>
Abdelhamid> set mproto BST
Abdelhamid> set mrthandle [$ns mrtproto $mproto {}]
Abdelhamid> ### End of multicast configuration
Abdelhamid>
Abdelhamid> $ns color 103 Navy ;#cbrs
Abdelhamid> $ns color 105 BlueViolet
Abdelhamid>
Abdelhamid> $ns color 30 purple ;#grafts
Abdelhamid> $ns color 31 green ;#prunes
Abdelhamid>
Abdelhamid> $n(0) color blue ;#RP
Abdelhamid>
Abdelhamid> $n(0) color Navy
Abdelhamid> $n(3) color BlueViolet
Abdelhamid>
Abdelhamid> #$ns at 0 "$cbr(3) start"
Abdelhamid> $ns at 0.05 "$cbr(5) start"
Abdelhamid> $ns at 0.3 "$n(4) join-group $rcvr(4) 0x8003"
Abdelhamid> $ns at 0.3 "$n(6) join-group $rcvr(6) 0x8003"
Abdelhamid> $ns at 0.4 "$n(4) leave-group $rcvr(4) 0x8003"
Abdelhamid> $ns at 0.5 "$n(6) leave-group $rcvr(6) 0x8003"
Abdelhamid>
Abdelhamid> # These joins won't take effect ???
Abdelhamid> $ns at 0.6 "$n(4) join-group $rcvr(4) 0x8003"
Abdelhamid> $ns at 0.6 "$n(1) join-group $rcvr(1) 0x8003"
Abdelhamid>
Abdelhamid> $ns at 1.0 "finish"
Abdelhamid>
Abdelhamid> proc finish {} {
Abdelhamid> global ns
Abdelhamid> $ns flush-trace
Abdelhamid>
Abdelhamid> puts "running nam..."
Abdelhamid> exec nam out-mc8 &
Abdelhamid> exit 0
Abdelhamid> }
Abdelhamid>
Abdelhamid> $ns run
Abdelhamid>
Abdelhamid>
Abdelhamid> Anyone knows how to deal with this?
Abdelhamid>
Abdelhamid> Thanks,
Abdelhamid> Abdelhamid JOUMDANE
Abdelhamid>
Abdelhamid> ______________________________________________________
Abdelhamid> Get Your Private, Free Email at http://www.hotmail.com
Abdelhamid>