tipc: clean up neigbor discovery message reception
authorJon Paul Maloy <jon.maloy@ericsson.com>
Wed, 14 May 2014 09:39:14 +0000 (05:39 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 14 May 2014 19:19:48 +0000 (15:19 -0400)
commitc82910e2a8d6fc9dd321a1f30dd4e89fb779cfe1
tree5f6d454d653fe9c7189481f28972595498e5c888
parent38504c28a201a80d12a6a0f821fecb331cb1f223
tipc: clean up neigbor discovery message reception

The function tipc_disc_rcv(), which is handling received neighbor
discovery messages, is perceived as messy, and it is hard to verify
its correctness by code inspection. The fact that the task it is set
to resolve is fairly complex does not make the situation better.

In this commit we try to take a more systematic approach to the
problem. We define a decision machine which takes three state flags
 as input, and produces three action flags as output. We then walk
through all permutations of the state flags, and for each of them we
describe verbally what is going on, plus that we set zero or more of
the action flags. The action flags indicate what should be done once
the decision machine has finished its job, while the last part of the
function deals with performing those actions.

Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/discover.c