+//TODO: Reduce the size of this?
+typedef struct message {
+ uint32_t magic;
+ uint32_t ident_id;
+ double value;
+ double weight;
+ uint32_t seqno;
+ uint32_t min_seqno;
+ uint16_t type;
+
+ /** tell ping target the address of node which requested ping */
+ in_addr_t ping_source;
+ in_port_t ping_port;
+ /** friend needs to be told the address of node suspected to be down */
+ in_addr_t check_target;
+ in_port_t check_port;
+ /** friend responds with ALIVE / AWOL */
+ uint32_t checkack_value;
+ /*Whether the message has an update piggy backed onto it*/
+ uint32_t update_present; // TRUE or FALSE
+ /*Node is reachable or not*/
+ uint32_t reachability;
+ /*Incarnation number of the node whose update
+ * is being sent piggy backed on the message*/
+ uint32_t incarnation;
+ /*Address of the node whose update is being sent*/
+ remote_node_t node;
+
+ uint32_t view;
+} message_t;
+