|
@@ -39,6 +39,8 @@
|
|
|
#include "node.h"
|
|
|
#include "name_distr.h"
|
|
|
|
|
|
+#define NODE_HTABLE_SIZE 512
|
|
|
+
|
|
|
static void node_lost_contact(struct tipc_node *n_ptr);
|
|
|
static void node_established_contact(struct tipc_node *n_ptr);
|
|
|
|
|
@@ -50,6 +52,17 @@ static u32 tipc_num_nodes;
|
|
|
|
|
|
static atomic_t tipc_num_links = ATOMIC_INIT(0);
|
|
|
|
|
|
+/*
|
|
|
+ * A trivial power-of-two bitmask technique is used for speed, since this
|
|
|
+ * operation is done for every incoming TIPC packet. The number of hash table
|
|
|
+ * entries has been chosen so that no hash chain exceeds 8 nodes and will
|
|
|
+ * usually be much smaller (typically only a single node).
|
|
|
+ */
|
|
|
+static inline unsigned int tipc_hashfn(u32 addr)
|
|
|
+{
|
|
|
+ return addr & (NODE_HTABLE_SIZE - 1);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* tipc_node_find - locate specified node object, if it exists
|
|
|
*/
|