From: Jon Maloy <jon.ma...@ericsson.com>
Date: Thu, 2 Nov 2017 15:44:15 +0100

> The neighbor monitor employs a threshold, default set to 32 peer nodes,
> where it activates the "Overlapping Neighbor Monitoring" algorithm.
> Below that threshold, monitoring is full-mesh, and no "domain records"
> are passed between the nodes.
> 
> Because of this, a node never received a peer's ack that it has received
> the most recent update of the own domain. Hence, the field 'acked_gen'
> in struct tipc_monitor_state remains permamently at zero, whereas the
> own domain generation is incremented for each added or removed peer.
> 
> This has the effect that the function tipc_mon_get_state() always sets
> the field 'probing' in struct tipc_monitor_state true, again leading the
> tipc_link_timeout() of the link in question to always send out a probe,
> even when link->silent_intv_count is zero.
> 
> This is functionally harmless, but leads to some unncessary probing,
> which can easily be eliminated by setting the 'probing' field of the
> said struct correctly in such cases.
> 
> At the same time, we explictly invalidate the sent domain records when
> the algorithm is not activated. This will eliminate any risk that an
> invalid domain record might be inadverently accepted by the peer.
> 
> Signed-off-by: Jon Maloy <jon.ma...@ericsson.com>

Applied.

Reply via email to