[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Multicast and RLM problem



Which multicast routing are you using? This should not happen with
centralized multicast. 

- Haobo

On Sat, 14 Aug 1999, Hugh Smith wrote:

> 
> I am testing out RLM with multiple sources and am having trouble with
> packets being routed to receivers who have not joined the multicast
> group.  This "routing" happens about 100 seconds into my simulation and
> repeats about every 100 seconds.  I'm guessing it has to do with ns's
> handling of multicast routing but I cannot find anything in the
> documentation.  
> 
> While I am running ns version 2.1b5, I have gone back and run this
> simulation on older versions of ns with similar results.
> 
> I have attached a simple scenario to use in test-rlm.tcl.  If you use
> nam to look at the results you will see the problem about 104-110
> seconds into the simulation.  This problem repeats approximately every
> 100 seconds (so 104, 204...).
> 
> Any help would be appreciated.  Thanks, Hugh
> 
> 
> Class Scenario2 -superclass Topology
> 
> Scenario2 instproc init args {
> 
>     eval $self next $args
>     $self instvar ns node
>     
>     $self build_link 0 2 200ms  2000e3
>     $self build_link 1 2 200ms  2000e3
>     $self build_link 23 2 200ms 2000e3
>     
>     $self build_link 2 3 200ms 2000e3
>     $self build_link 3 4 200ms 800e3
> 
>     
>     $self build_link 4 5 200ms 2000e3
>     $self build_link 5 6 200ms 2000e3
>     $self build_link 5 7 200ms 2000e3
>     $self build_link 5 11 200ms 2000e3
>     $self build_link 5 13 200ms 2000e3
>     $self build_link 5 14 200ms 2000e3
>     $self build_link 5 15 200ms 2000e3
>     $self build_link 5 16 200ms 100e3
>     $self build_link 5 17 200ms 100e3
>     
>     
>     $self build_link 4 8 200ms 2000e3
>     $self build_link 8 9 200ms 2000e3
>     $self build_link 8 10 200ms 2000e3
>     $self build_link 8 12 200ms 2000e3
>     $self build_link 8 18 200ms 2000e3
>     $self build_link 8 19 200ms 2000e3
>     $self build_link 8 20 200ms 2000e3
>     $self build_link 8 21 200ms 100e3
>     $self build_link 8 22 200ms 100e3
>         
> 
>     $self build_link 4 24 200ms 2000e3
>     $self build_link 24 25 200ms 2000e3
>     $self build_link 24 26 200ms 2000e3
>     $self build_link 24 27 200ms 2000e3
>     $self build_link 24 28 200ms 2000e3
>     $self build_link 24 29 200ms 2000e3
>     $self build_link 24 30 200ms 2000e3
>     $self build_link 24 31 200ms 100e3
>     $self build_link 24 32 200ms 100e3
> 
>     set time0 10
>     set addr0 [$self place_source 0 1]
>   
>     set time1 50
>     set addr1 [$self place_source 1 1]
>    
>     #note: Third source is not started up until very late.  It makes
>     #it easy to see the "routing" problem.
>     set time2 590
>     set addr2 [$self place_source 23 1] 
>  
>     $self place_receiver 6 $addr0 [expr 5 + $time0]
>     $self place_receiver 7 $addr0 [expr 5 + $time0]
>     $self place_receiver 11 $addr0 [expr 5 + $time0]
>     $self place_receiver 13 $addr0 [expr 5 + $time0]
>     $self place_receiver 14 $addr0 [expr 5 + $time0]
>     $self place_receiver 15 $addr0 [expr 5 + $time0]
>     $self place_receiver 16 $addr0 [expr 5 + $time0]
>     $self place_receiver 17 $addr0 [expr 5 + $time0]
>     
>     
>     $self place_receiver 9 $addr1 [expr 5 + $time1]
>     $self place_receiver 10 $addr1 [expr 5 + $time1]
>     $self place_receiver 12 $addr1 [expr 5 + $time1]
>     $self place_receiver 18 $addr1 [expr 5 + $time1]
>     $self place_receiver 19 $addr1 [expr 5 + $time1]
>     $self place_receiver 20 $addr1 [expr 5 + $time1]
>     $self place_receiver 21 $addr1 [expr 5 + $time1]
>     $self place_receiver 22 $addr1 [expr 5 + $time1]
> 
>     $self place_receiver 25 $addr2 [expr 5 + $time2]
>     $self place_receiver 26 $addr2 [expr 5 + $time2]
>     $self place_receiver 27 $addr2 [expr 5 + $time2]
>     $self place_receiver 28 $addr2 [expr 5 + $time2]
>     $self place_receiver 29 $addr2 [expr 5 + $time2]
>     $self place_receiver 30 $addr2 [expr 5 + $time2]
>     $self place_receiver 31 $addr2 [expr 5 + $time2]
>     $self place_receiver 32 $addr2 [expr 5 + $time2]
>     
>     
>     #mcast set up
>     DM set PruneTimeout 100
>     set mproto DM
>     set mrthandle [$ns mrtproto $mproto {} ]
> }
> 
>