-static bool mtu_calc_peer = false;
-static bool mtu_calc_relay = false;
-
-// Common event handler callback for all the test cases
-static bool event_mtu_handle_cb(mesh_event_payload_t payload) {
- char event_node_name[][10] = {"RELAY", "PEER", "NUT"};
- fprintf(stderr, " %s : ", event_node_name[payload.client_id]);
- char *name;
- uint32_t payload_length = payload.payload_length;
- uint32_t node_pmtu_calc_size = sizeof(pmtu_attr_t);
-
- switch(payload.mesh_event) {
- case META_CONN_CLOSED :
- name = (char *)payload.payload;
- fprintf(stderr, "NUT closed connection with %s\n", name);
- break;
-
- case META_CONN_SUCCESSFUL :
- name = (char *)payload.payload;
- fprintf(stderr, "NUT made connection with %s\n", name);
- break;
-
- case NODE_JOINED :
- name = (char *)payload.payload;
- fprintf(stderr, "Node %s joined with NUT\n", name);
- break;
-
- case NODE_LEFT :
- name = (char *)payload.payload;
- fprintf(stderr, "Node %s the left mesh\n", name);
- break;
-
- case ERR_NETWORK :
- name = (char *)payload.payload;
- fprintf(stderr, "NUT closed channel with %s\n", name);
- break;
-
- case NODE_STARTED :
- fprintf(stderr, "%s node started\n", event_node_name[payload.client_id]);
- break;
-
- case CHANNEL_OPENED :
- fprintf(stderr, "Channel opened\n");
- break;
-
- case OPTIMAL_PMTU_PEER :
- assert(payload.payload);
- fprintf(stderr, "Obtained peer MTU values from NUT\n");
- memcpy(&node_pmtu_peer, payload.payload, payload_length);
- fprintf(stderr, "NUT and peer PMTU handling in 120 seconds with ICMP unblocked\n");
- print_mtu_calc(node_pmtu_peer);
- mtu_calc_peer = true;
-
- if(mtu_calc_peer && mtu_calc_relay) {
- return true;
- }
-
- break;
-
- case OPTIMAL_PMTU_RELAY :
- assert(payload.payload);
- //assert(payload_length != node_pmtu_calc_size);
- fprintf(stderr, "Obtained relay MTU values from NUT\n");
- memcpy(&node_pmtu_relay, payload.payload, payload_length);
- fprintf(stderr, "NUT and peer PMTU handling in 120 seconds with ICMP unblocked\n");
- print_mtu_calc(node_pmtu_relay);
- mtu_calc_relay = true;
-
- if(mtu_calc_peer && mtu_calc_relay) {
- return true;
- }
-
- break;
-
- default :
- fprintf(stderr, "UNDEFINED EVENT RECEIVED (%d)\n", payload.mesh_event);
- }