+ uint16_t mtu; /* Maximum size of packets to send to this node */
+ uint16_t minmtu; /* Probed minimum MTU */
+ uint16_t maxmtu; /* Probed maximum MTU */
+ int mtuprobes; /* Number of probes */
+ timeout_t mtutimeout; /* Probe event */
+
+ struct utcp *utcp;
+
+ uint64_t in_packets;
+ uint64_t in_bytes;
+ uint64_t out_packets;
+ uint64_t out_bytes;
+
+ char *canonical_address; /* The canonical address of this node, if known */
+ sockaddr_t recent[5]; /* Recently seen addresses */
+} node_t;
+
+extern void init_nodes(struct meshlink_handle *mesh);
+extern void exit_nodes(struct meshlink_handle *mesh);
+extern node_t *new_node(void) __attribute__((__malloc__));
+extern void free_node(node_t *n);
+extern void node_add(struct meshlink_handle *mesh, node_t *n);
+extern void node_del(struct meshlink_handle *mesh, node_t *n);
+extern node_t *lookup_node(struct meshlink_handle *mesh, const char *name);
+extern node_t *lookup_node_udp(struct meshlink_handle *mesh, const sockaddr_t *sa);
+extern void update_node_udp(struct meshlink_handle *mesh, node_t *n, const sockaddr_t *sa);