[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