]> git.baikalelectronics.ru Git - kernel.git/commit
tipc: guarantee delivery of UP event before first broadcast
authorJon Maloy <jon.maloy@ericsson.com>
Fri, 13 Oct 2017 09:04:32 +0000 (11:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Oct 2017 15:46:01 +0000 (08:46 -0700)
commit8b0f24e01f4080ff432db5f7e4ea9e76a3e71bd3
tree43385ba22e204883b790a6a8344fcba4b203b2b1
parent8a6c37210afe34033c28a97e1ee71f94d25e0dbd
tipc: guarantee delivery of UP event before first broadcast

The following scenario is possible:
- A user joins a group, and immediately sends out a broadcast message
  to its members.
- The broadcast message, following a different data path than the
  initial JOIN message sent out during the joining procedure, arrives
  to a receiver before the latter..
- The receiver drops the message, since it is not ready to accept any
  messages until the JOIN has arrived.

We avoid this by treating group protocol JOIN messages like unicast
messages.
- We let them pass through the recipient's multicast input queue, just
  like ordinary unicasts.
- We force the first following broadacst to be sent as replicated
  unicast and being acknowledged by the recipient before accepting
  any more broadcast transmissions.

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