[net2-wg] problem with the timer that controls routing beacon
rate in CtpRoutingEngineP.nc
Omprakash Gnawali
gnawali at usc.edu
Wed Mar 19 00:01:02 PDT 2008
On Tue, Mar 18, 2008 at 8:44 PM, Philip Levis <pal at cs.stanford.edu> wrote:
>
>
> On Mar 18, 2008, at 7:50 PM, Omprakash Gnawali wrote:
>
> > On Tue, Mar 18, 2008 at 4:25 PM, Philip Levis <pal at cs.stanford.edu>
> > wrote:
> >>
> >> On Tue, 2008-03-18 at 14:29 -0800, Omprakash Gnawali wrote:
> >>>>> 2. Triggered route updates using the same timer as Trickle
> >>>>> timer. We
> >>>>> thought we would be able to fix this by calling resetInterval()
> >>>>> instead of starting the timer when we need to generate on-demand
> >>>>> beacons. This will ensure that there is only one way to change the
> >>>>> Timer. Unfortunately, this will not work - we want to control
> >>>>> how long
> >>>>> to wait until we send a beacon in case of on-demand beacons
> >>>>> depending
> >>>>> on the situation (trigger update vs trigger immediate update), not
> >>>>> possible using a single resetInterval() call.
> >>>>
> >>>> Why are there two different cases? What is the difference?
> >>>> IIRC, we were
> >>>> originally trying to distinguish beacons that should send soon and
> >>>> beacons that should send NOW. But in the case of trickle, we
> >>>> can just
> >>>> reduce this to beacons that should send NOW and take advantage
> >>>> of the
> >>>> exponential decay. So we send a few extra packets. Let's
> >>>> simplify it.
> >>>
> >>> Are you saying that reset should always trigger an immediate beacon?
> >>> Right now we set the timer to fire at min interval upon reset.
> >>
> >> You should never send an *immediate beacon.* IIRC, even the
> >> "immediate"
> >> beacon is a 32ms timer. So the trickle interval tau_l should be very
> >> small...
> >
> >
> > If tau_l is 32ms, then we will have the next beacon at 64ms, 128ms,
> > 256ms, 512ms, 1s - it seems like a lot of unnecessary beacons. To
> > prevent this, my approach would be to reset interval to taul_l = 1s
> > and specify the first fire time to be 32ms, and when the timer fires
> > at 32ms, we look at the value of interval and decide to fire at 1s,
> > and we double it, then fire at 2s, etc.
> >
>
> Don't forget, the beacon is due to there being a routing
> inconsistency. One of the points in trickle is that the scaling
> inherently leads to a little bit of redundancy. I'm leery of changing
> the algorithm based on a perceived cost, rather than a measured one.
> Let's see what happens to the beacon counts?
There are three firing patterns - Trickle, trigger (64ms) and
triggerImmediate (4ms). I don't understand how we can accommodate
these three patterns by just resetting unless we are willing to set
tau_l to 4ms. But setting tau_l to 4ms would be an overkill if it is
parent change that triggers a beacon. Or we change triggerImmediate to
trigger so that we can have a more reasonable tau_l of 64ms.
- om_p
More information about the net2-wg
mailing list