Ondrej Zajicek <[email protected]> writes: > On Tue, Jul 19, 2016 at 06:09:41PM +0200, Toke Høiland-Jørgensen wrote: >> Ondrej Zajicek <[email protected]> writes: >> >> > On Mon, May 02, 2016 at 07:07:49PM +0200, Toke Høiland-Jørgensen wrote: >> >> Intervals are carried as 16-bit centisecond values, but kept internally >> >> in 16-bit second values, which causes a potential for overflow. This >> >> adds some checks to make sure this doesn't happen. >> >> >> >> + /* make sure we don't overflow the 16-bit centisec fields */ >> >> if (!BABEL_IFACE->update_interval) >> >> - BABEL_IFACE->update_interval = >> >> BABEL_IFACE->hello_interval*BABEL_UPDATE_INTERVAL_FACTOR; >> >> - BABEL_IFACE->ihu_interval = >> >> BABEL_IFACE->hello_interval*BABEL_IHU_INTERVAL_FACTOR; >> >> + BABEL_IFACE->update_interval = >> >> MIN_(BABEL_IFACE->hello_interval*BABEL_UPDATE_INTERVAL_FACTOR, >> >> BABEL_MAX_INTERVAL); >> >> + BABEL_IFACE->ihu_interval = >> >> MIN_(BABEL_IFACE->hello_interval*BABEL_IHU_INTERVAL_FACTOR, >> >> BABEL_MAX_INTERVAL); >> > >> > This is not completely correct, because IHU interval is not independent >> > of hello_interval in this implementation - IHUs are sent for each >> > BABEL_IHU_INTERVAL_FACTOR hellos even if ihu_interval is limited by this. >> >> Yeah, you're right. Hmm, guess it doesn't really make sense to have the >> IHU interval configurable by itself, then? > > Probably not. But it makes sense to have configurable IHU factor > (different for wired and wireless networks). And if hello*factor is too > large, then just use smaller factor.
Right, makes sense. I'll write that up and submit another patch :) -Toke
