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

[ns] incorrect rlm behaviour?



Hi,

I think there is an error in the rlm implementation of ns-v2.1b6. When a
receiver subscribes to the highest layer in the multicast session, the TJ
timer will not be set. Thus, if this subscription results in excessive
losses that causes the receiver to drop this layer, it will not
subsequently attempt to try subscribing to the highest layer again. I have
traced the rlm tcl scripts and the problem seems to lay in the function
trigger_TD. When TD timer is triggered and the state is /S, the TJ timer
will be relaxed and the TD timer will be set again. I thought the TJ timer
should be set once the TJ timer is relaxed. I made the following change in
this function:

MMG instproc trigger_TD {} {
	.......
        if { $state_ == "/S" } {
                $self relax_TJ
		# my change: once TJ timer is relaxed, TJ should be set
		# for trigger. TD timer need not be set anymore
#               $self set_TD_timer_conservative
                $self cancel_timer TJ
                $self set_TJ_timer
                return
        }
        ......
}

I run the modified code and the receiver will periodically attempt to
subscribe to the highest layer when it is dropped earlier. Is this the
right way to fix this problem?

Regards,
Gan Yung Sze