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.