*/
#include "event.h"
+#include "meshlink_internal.h"
#include "sockaddr.h"
#include "sptps.h"
-#include "utcp.h"
-#include "submesh.h"
typedef struct node_status_t {
uint16_t validkey: 1; /* 1 if we currently have a valid key for him */
// Private member variables
node_status_t status;
- uint16_t minmtu; /* Probed minimum MTU */
dev_class_t devclass;
- // Used for packet I/O
- int sock; /* Socket to use for outgoing UDP packets */
uint32_t session_id; /* Unique ID for this node's currently running process */
- sptps_t sptps;
- sockaddr_t address; /* his real (internet) ip to send UDP packets to */
-
- struct utcp *utcp;
-
- // Traffic counters
- uint64_t in_packets;
- uint64_t in_bytes;
- uint64_t out_packets;
- uint64_t out_bytes;
-
- // MTU probes
- timeout_t mtutimeout; /* Probe event */
- int mtuprobes; /* Number of probes */
- uint16_t mtu; /* Maximum size of packets to send to this node */
- uint16_t maxmtu; /* Probed maximum MTU */
// Used for meta-connection I/O, timeouts
struct meshlink_handle *mesh; /* The mesh this node belongs to */
- struct submesh_t *submesh; /* Nodes Sub-Mesh Handle*/
-
- time_t last_req_key;
struct ecdsa *ecdsa; /* His public ECDSA key */
char *canonical_address; /* The canonical address of this node, if known */
sockaddr_t recent[MAX_RECENT]; /* Recently seen addresses */
- sockaddr_t catta_address; /* Latest address seen by Catta */
struct node_t *nexthop; /* nearest node from us to him */
} node_t;