linux/net/tipc
Allan Stephens eb3865a99d tipc: Enhance re-initialization of network topology service
Streamlines the job of re-initializing TIPC's network topology service
when a node's network address is first assigned. Rather than destroying
the topology server port and breaking its connections to existing
subscribers, TIPC now simply lets the service continue running (since
the change to the port identifier of each port used by the topology
service no longer impacts the flow of messages between the service and
its subscribers).

This enhancement means that applications that utilize the topology
service prior to the assignment of TIPC's network address no longer need
to re-establish their subscriptions when the address is finally assigned.

However, it is worth noting that any subsequent events for existing
subscriptions report the new port identifier of the publishing port,
rather than the original port identifier. (For example, a name that was
previously reported as being published by <0.0.0:ref> may be subsequently
withdrawn by <Z.C.N:ref>.)

This doesn't impact any of the existing known userspace in tipc-utils,
since (a) TIPC continues to treat references to the original port ID
correctly and (b) normal use cases assign an address before active use.

However if there does happen to be some rare/custom application out
there that was relying on this, they can simply bypass the enhancement
by issuing a subscription to {0,0} and break its connection to the
topology service, if an associated withdrawal event occurs.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2012-04-26 18:15:40 -04:00
..
addr.c tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
addr.h tipc: Add routines for safe checking of node's network address 2012-04-19 15:46:39 -04:00
bcast.c tipc: Eliminate trivial buffer manipulation helper routines 2012-02-24 17:05:16 -05:00
bcast.h tipc: Major redesign of broadcast link ACK/NACK algorithms 2012-02-06 16:59:18 -05:00
bearer.c tipc: Add routines for safe checking of node's network address 2012-04-19 15:46:39 -04:00
bearer.h tipc: rename struct bearer_name to struct tipc_bearer_names 2011-12-29 21:53:30 -05:00
config.c tipc: Optimize termination of configuration service 2012-04-26 17:19:43 -04:00
config.h tipc: Optimize re-initialization of configuration service 2012-04-26 17:19:07 -04:00
core.c tipc: Optimize initialization of configuration service 2012-04-26 17:19:42 -04:00
core.h tipc: Eliminate support for tipc_mode global variable 2012-02-24 17:05:17 -05:00
discover.c tipc: Eliminate trivial buffer manipulation helper routines 2012-02-24 17:05:16 -05:00
discover.h tipc: rename struct link* to struct tipc_link* 2011-12-29 21:53:30 -05:00
eth_media.c tipc: rename struct media to struct tipc_media 2011-12-29 21:53:29 -05:00
handler.c tipc: remove zeroing assignments to static global variables 2011-01-01 13:57:57 -08:00
Kconfig tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
link.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
link.h tipc: rename struct link* to struct tipc_link* 2011-12-29 21:53:30 -05:00
log.c tipc: nuke the delimit static inline function. 2012-02-24 17:05:14 -05:00
log.h tipc: update log.h re-include protection to reflect new name 2011-01-01 14:56:18 -08:00
Makefile tipc: rename dbg.[ch] to log.[ch] 2011-01-01 13:57:51 -08:00
msg.c tipc: Eliminate trivial buffer manipulation helper routines 2012-02-24 17:05:16 -05:00
msg.h tipc: Remove duplicate check of message destination node 2012-02-24 17:05:14 -05:00
name_distr.c tipc: Update node-scope publications when network address is assigned 2012-04-19 15:46:36 -04:00
name_distr.h
name_table.c tipc: Ensure network address change doesn't impact name table updates 2012-04-19 15:46:40 -04:00
name_table.h tipc: Simplify enforcement of reserved name type prohibition 2012-02-24 17:05:14 -05:00
net.c tipc: Enhance re-initialization of network topology service 2012-04-26 18:15:40 -04:00
net.h tipc: manually inline net_start/stop, make assoc. vars static 2011-03-13 16:35:17 -04:00
netlink.c genetlink: make netns aware 2009-07-12 14:03:27 -07:00
node.c tipc: remove inline instances from C source files. 2012-04-24 00:41:03 -04:00
node.h tipc: Hide internal details of node table implementation 2012-02-24 17:05:15 -05:00
node_subscr.c tipc: Ensure network address change doesn't impact local connections 2012-04-19 15:46:45 -04:00
node_subscr.h tipc: Cosmetic changes to node subscription code 2011-03-13 16:35:16 -04:00
port.c tipc: remove inline instances from C source files. 2012-04-24 00:41:03 -04:00
port.h tipc: Ensure network address change doesn't impact local connections 2012-04-19 15:46:45 -04:00
ref.c net: two vzalloc() cleanups 2011-12-19 16:01:38 -05:00
ref.h tipc: cleanup function namespace 2010-10-16 11:13:24 -07:00
socket.c net: add a limit parameter to sk_add_backlog() 2012-04-23 22:28:28 -04:00
subscr.c tipc: Simplify enforcement of reserved name type prohibition 2012-02-24 17:05:14 -05:00
subscr.h tipc: rename struct subscription to struct tipc_subscription 2011-12-29 21:53:29 -05:00