[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 {} ]
> }
>
>