[Babel-users] more eyeballs on some scaling bugs?
Christof Schulze
christof.schulze at gmx.net
Thu Dec 13 22:12:30 GMT 2018
On Thu, Dec 13, 2018 at 07:57:04PM +0100, Christof Schulze wrote:
>On Tue, Dec 11, 2018 at 10:19:59AM -0800, Dave Taht wrote:
>>tecoboot is doing some great simulation work, and more eyeballs on the
>>problem's he's exposing would be good. There's plots and packet
>>captures of his 30+ node simulation over here:
> >https://github.com/jech/babeld/issues/8
>I am just returning from a workshop-week and soon will stare at this.
I find it difficult to read the babeld code because process logic is not
in one spot and handling of data types is not encapsulated and
abstracted away. Effectively there is no process layer.
How do you folks feel about this? Is it just me?
Let me illustrate what I mean: In message.c there is
send_marginal_ihu(). This function is called on 2/3 of hellos, the rest
will trigger send_ihu directly.
A Marginal IHU is a regular IHU that is sent under specific conditions:
Marginal IHU are sent on neighbors that are connected on a given
interface whenever the txcost is >= 384 (what is the meaning of that
value? Why not 400? Or 372?) or when the first byte of reach is not all
ones. At this point I have no clear idea what that means. I guess that
reach is a bitmap of some kind, storing on which of the last 16 hellos
the neighbour was reachable. The semantics of checking the first byte of
that variable are somewhat hidden and the bit masks are applied in the
process logic.
This still seems sketchy in my mind because reach is defined as short (2
Byte on x86) and the Bitmask is using 4 Bytes. The place where this is
dealt with is not easy to find. I am not sure I am fully grasping the
concepts here. In any case I cannot adjust that part of the code without
quite a bit of further reading or help from someone else. That makes it
difficult to find bugs in the code.
If a marginal ihu really is just a ihu that is sent on specific
conditions, we could name this function send_ihu_on_$CONDITION() and
avoid many questions with this small change.
The only thing left to do is: understand the condition.
Cheers,
Christof
--
() ascii ribbon campaign - against html e-mail
/\ against proprietary attachments
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/babel-users/attachments/20181213/a0115e14/attachment.sig>
More information about the Babel-users
mailing list