]> git.baikalelectronics.ru Git - kernel.git/commit
tipc: enable creating a "preliminary" node
authorTuong Lien <tuong.t.lien@dektech.com.au>
Fri, 8 Nov 2019 05:05:09 +0000 (12:05 +0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Nov 2019 22:01:59 +0000 (14:01 -0800)
commite0cdae6a7b318ab484f90dcb0808b3c87acede24
treec19f3b0bd1614976b7334ac624f9d074cc8b254c
parent1b8d893a4d040e2e3429846934d4e2b700f4aa28
tipc: enable creating a "preliminary" node

When user sets RX key for a peer not existing on the own node, a new
node entry is needed to which the RX key will be attached. However,
since the peer node address (& capabilities) is unknown at that moment,
only the node-ID is provided, this commit allows the creation of a node
with only the data that we call as “preliminary”.

A preliminary node is not the object of the “tipc_node_find()” but the
“tipc_node_find_by_id()”. Once the first message i.e. LINK_CONFIG comes
from that peer, and is successfully decrypted by the own node, the
actual peer node data will be properly updated and the node will
function as usual.

In addition, the node timer always starts when a node object is created
so if a preliminary node is not used, it will be cleaned up.

The later encryption functions will also use the node timer and be able
to create a preliminary node automatically when needed.

Acked-by: Ying Xue <ying.xue@windreiver.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/node.c
net/tipc/node.h