msg = buf_msg(buf);
                tipc_msg_init(msg, LINK_CONFIG, type, INT_H_SIZE, dest_domain);
                msg_set_non_seq(msg, 1);
+               msg_set_node_sig(msg, tipc_random);
                msg_set_dest_domain(msg, dest_domain);
                msg_set_bc_netid(msg, tipc_net_id);
                b_ptr->media->addr2msg(&b_ptr->addr, msg_media_addr(msg));
        u32 orig = msg_prevnode(msg);
        u32 net_id = msg_bc_netid(msg);
        u32 type = msg_type(msg);
+       u32 signature = msg_node_sig(msg);
        int link_fully_up;
 
        media_addr.broadcast = 1;
        }
 
        /* Accept discovery message & send response, if necessary */
+       n_ptr->signature = signature;
        link_fully_up = link_working_working(link);
 
        if ((type == DSC_REQ_MSG) && !link_fully_up && !b_ptr->blocked) {
 
        msg_set_bits(m, 1, 16, 0x1fff, n);
 }
 
+static inline u32 msg_node_sig(struct tipc_msg *m)
+{
+       return msg_bits(m, 1, 0, 0xffff);
+}
+
+static inline void msg_set_node_sig(struct tipc_msg *m, u32 n)
+{
+       msg_set_bits(m, 1, 0, 0xffff, n);
+}
+
 
 /*
  * Word 2
 
        }
        list_add_tail(&n_ptr->list, &temp_node->list);
        n_ptr->block_setup = WAIT_PEER_DOWN;
+       n_ptr->signature = INVALID_NODE_SIG;
 
        tipc_num_nodes++;
 
 
 #include "net.h"
 #include "bearer.h"
 
+/*
+ * Out-of-range value for node signature
+ */
+#define INVALID_NODE_SIG 0x10000
+
 /* Flags used to block (re)establishment of contact with a neighboring node */
 
 #define WAIT_PEER_DOWN 0x0001  /* wait to see that peer's links are down */
  * @block_setup: bit mask of conditions preventing link establishment to node
  * @link_cnt: number of links to node
  * @permit_changeover: non-zero if node has redundant links to this system
+ * @signature: node instance identifier
  * @bclink: broadcast-related info
  *    @supportable: non-zero if node supports TIPC b'cast link capability
  *    @supported: non-zero if node supports TIPC b'cast capability
        int working_links;
        int block_setup;
        int permit_changeover;
+       u32 signature;
        struct {
                u8 supportable;
                u8 supported;