{
t->tid = tid;
}
- t->max_send_pid = 0;
+ t->max_send_pid = INITIAL_WINDOW_SIZE - 1;
t->last_recv_pid = (uint32_t) -1;
return t;
}
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Sending ACK on tunnel %X: %u\n",
- t->tid, t->last_recv_pid + 1);
+ t->tid, t->last_recv_pid + INITIAL_WINDOW_SIZE);
msg.header.type = htons (GNUNET_MESSAGE_TYPE_MESH_LOCAL_ACK);
msg.header.size = htons (sizeof (msg));
msg.tunnel_id = htonl (t->tid);
- msg.max_pid = htonl (t->last_recv_pid + 1);
+ msg.max_pid = htonl (t->last_recv_pid + INITIAL_WINDOW_SIZE);
send_packet (h, &msg.header, t);
return;
continue;
}
t->next_send_pid = 0;
- t->max_send_pid = 0;
+ t->max_send_pid = INITIAL_WINDOW_SIZE - 1;
t->last_recv_pid = (uint32_t) -1;
tmsg.header.type = htons (GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_CREATE);
tmsg.header.size = htons (sizeof (struct GNUNET_MESH_TunnelMessage));
LOG (GNUNET_ERROR_TYPE_DEBUG, " ignored!\n");
return GNUNET_YES;
}
- if (GMC_is_pid_bigger(pid, t->last_recv_pid + 1))
+ if (GNUNET_YES ==
+ GMC_is_pid_bigger(pid, t->last_recv_pid + INITIAL_WINDOW_SIZE))
{
GNUNET_break (0);
LOG (GNUNET_ERROR_TYPE_WARNING, " unauthorized message!\n");
}
ack = ntohl (msg->max_pid);
LOG (GNUNET_ERROR_TYPE_DEBUG, " on tunnel %X, ack %u!\n", t->tid, ack);
- if (ack > t->max_send_pid || PID_OVERFLOW (t->max_send_pid, ack))
+ if (GNUNET_YES == GMC_is_pid_bigger(ack, t->max_send_pid))
t->max_send_pid = ack;
else
return;