alistair23-linux/net/tipc
Jon Maloy 399574d419 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>
2017-10-13 08:46:01 -07:00
..
addr.c
addr.h
bcast.c tipc: improve destination linked list 2017-10-13 08:46:00 -07:00
bcast.h tipc: make replicast a user selectable option 2017-01-20 12:10:17 -05:00
bearer.c tipc: remove unnecessary call to dev_net() 2017-09-06 21:25:52 -07:00
bearer.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
core.c
core.h tipc: add ability to order and receive topology events in driver 2017-10-13 08:46:00 -07:00
discover.c tipc: allocate user memory with GFP_KERNEL flag 2017-01-16 13:31:53 -05:00
discover.h
eth_media.c
group.c tipc: guarantee that group broadcast doesn't bypass group unicast 2017-10-13 08:46:01 -07:00
group.h tipc: guarantee that group broadcast doesn't bypass group unicast 2017-10-13 08:46:01 -07:00
ib_media.c
Kconfig
link.c tipc: guarantee delivery of UP event before first broadcast 2017-10-13 08:46:01 -07:00
link.h
Makefile tipc: introduce communication groups 2017-10-13 08:46:00 -07:00
monitor.c tipc: improve sanity check for received domain records 2016-11-25 20:06:18 -05:00
monitor.h
msg.c tipc: refactor function filter_rcv() 2017-10-13 08:46:00 -07:00
msg.h tipc: guarantee that group broadcast doesn't bypass group unicast 2017-10-13 08:46:01 -07:00
name_distr.c tipc: allocate user memory with GFP_KERNEL flag 2017-01-16 13:31:53 -05:00
name_distr.h
name_table.c tipc: introduce group anycast messaging 2017-10-13 08:46:00 -07:00
name_table.h tipc: introduce group anycast messaging 2017-10-13 08:46:00 -07:00
net.c netlink: pass extended ACK struct where available 2017-04-13 13:58:22 -04:00
net.h
netlink.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
netlink.h
netlink_compat.c net: tipc: constify genl_ops 2017-08-23 22:31:38 -07:00
node.c tipc: add new function for sending multiple small messages 2017-10-13 08:46:00 -07:00
node.h tipc: introduce communication groups 2017-10-13 08:46:00 -07:00
server.c tipc: add ability to order and receive topology events in driver 2017-10-13 08:46:00 -07:00
server.h tipc: add ability to order and receive topology events in driver 2017-10-13 08:46:00 -07:00
socket.c tipc: guarantee delivery of UP event before first broadcast 2017-10-13 08:46:01 -07:00
socket.h
subscr.c tipc: fix a race condition of releasing subscriber object 2017-08-22 14:25:02 -07:00
subscr.h tipc: adjust the policy of holding subscription kref 2017-03-28 18:03:33 -07:00
sysctl.c
udp_media.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
udp_media.h