tipc: create broadcast transmission link at namespace init
The broadcast transmission link is currently instantiated when the network subsystem is started, i.e., on order from user space via netlink. This forces the broadcast transmission code to do unnecessary tests for the existence of the transmission link, as well in single mode node as in network mode. In this commit, we do instead create the link during initialization of the name space, and remove it when it is stopped. The fact that the transmission link now has a guaranteed longer life cycle than any of its potential clients paves the way for further code simplifcations and optimizations. 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>
This commit is contained in:

committed by
David S. Miller

parent
0043550b0a
commit
5fd9fd6351
@@ -112,14 +112,11 @@ int tipc_net_start(struct net *net, u32 addr)
|
||||
{
|
||||
struct tipc_net *tn = net_generic(net, tipc_net_id);
|
||||
char addr_string[16];
|
||||
int res;
|
||||
|
||||
tn->own_addr = addr;
|
||||
tipc_named_reinit(net);
|
||||
tipc_sk_reinit(net);
|
||||
res = tipc_bcast_init(net);
|
||||
if (res)
|
||||
return res;
|
||||
tipc_bcast_reinit(net);
|
||||
|
||||
tipc_nametbl_publish(net, TIPC_CFG_SRV, tn->own_addr, tn->own_addr,
|
||||
TIPC_ZONE_SCOPE, 0, tn->own_addr);
|
||||
@@ -142,7 +139,6 @@ void tipc_net_stop(struct net *net)
|
||||
tn->own_addr);
|
||||
rtnl_lock();
|
||||
tipc_bearer_stop(net);
|
||||
tipc_bcast_stop(net);
|
||||
tipc_node_stop(net);
|
||||
rtnl_unlock();
|
||||
|
||||
|
Reference in New Issue
Block a user