]> git.baikalelectronics.ru Git - kernel.git/commit
tipc: permit overlapping service ranges in name table
authorJon Maloy <jon.maloy@ericsson.com>
Thu, 29 Mar 2018 21:20:43 +0000 (23:20 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 1 Apr 2018 02:19:52 +0000 (22:19 -0400)
commitb5510b39b25d5a294ec2b9af0f31a619c9e697c6
tree272bc238297a030a51d0ac23480afbfc1462b2b5
parent13e066f44a63a0d47ec1c27a0652a880b658e2cc
tipc: permit overlapping service ranges in name table

With the new RB tree structure for service ranges it becomes possible to
solve an old problem; - we can now allow overlapping service ranges in
the table.

When inserting a new service range to the tree, we use 'lower' as primary
key, and when necessary 'upper' as secondary key.

Since there may now be multiple service ranges matching an indicated
'lower' value, we must also add the 'upper' value to the functions
used for removing publications, so that the correct, corresponding
range item can be found.

These changes guarantee that a well-formed publication/withdrawal item
from a peer node never will be rejected, and make it possible to
eliminate the problematic backlog functionality we currently have for
handling such cases.

Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/name_distr.c
net/tipc/name_distr.h
net/tipc/name_table.c
net/tipc/name_table.h
net/tipc/net.c
net/tipc/node.c
net/tipc/socket.c