aboutsummaryrefslogtreecommitdiff
path: root/src/fragmentation
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-10-22 12:54:07 +0000
committerChristian Grothoff <christian@grothoff.org>2012-10-22 12:54:07 +0000
commit35cd0261f6bb35c671ce7664a9c42cade98b259f (patch)
tree360f209bf05a43be38be3d21aa5192967d495037 /src/fragmentation
parentddd69826be47a1956c6972c2cfcadfa7902b8639 (diff)
downloadgnunet-35cd0261f6bb35c671ce7664a9c42cade98b259f.tar.gz
gnunet-35cd0261f6bb35c671ce7664a9c42cade98b259f.zip
-fixing frag
Diffstat (limited to 'src/fragmentation')
-rw-r--r--src/fragmentation/fragmentation.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/fragmentation/fragmentation.c b/src/fragmentation/fragmentation.c
index 19f7ff175..3924fc41f 100644
--- a/src/fragmentation/fragmentation.c
+++ b/src/fragmentation/fragmentation.c
@@ -228,9 +228,7 @@ transmit_next (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
228 { 228 {
229 /* full round transmitted wait 2x delay for ACK before going again */ 229 /* full round transmitted wait 2x delay for ACK before going again */
230 fc->num_rounds++; 230 fc->num_rounds++;
231 delay = GNUNET_TIME_relative_multiply (delay, 2); 231 delay = GNUNET_TIME_relative_multiply (fc->ack_delay, 2);
232 fc->msg_delay = GNUNET_TIME_relative_multiply (fc->msg_delay,
233 2 + (size / (fc->mtu - sizeof (struct FragmentHeader))));
234 /* never use zero, need some time for ACK always */ 232 /* never use zero, need some time for ACK always */
235 delay = GNUNET_TIME_relative_max (MIN_ACK_DELAY, delay); 233 delay = GNUNET_TIME_relative_max (MIN_ACK_DELAY, delay);
236 fc->wack = GNUNET_YES; 234 fc->wack = GNUNET_YES;
@@ -353,7 +351,6 @@ GNUNET_FRAGMENT_process_ack (struct GNUNET_FRAGMENT_Context *fc,
353 unsigned int snd_cnt; 351 unsigned int snd_cnt;
354 unsigned int i; 352 unsigned int i;
355 353
356 fprintf (stderr, "Got ACK!\n");
357 if (sizeof (struct FragmentAcknowledgement) != ntohs (msg->size)) 354 if (sizeof (struct FragmentAcknowledgement) != ntohs (msg->size))
358 { 355 {
359 GNUNET_break_op (0); 356 GNUNET_break_op (0);
@@ -393,16 +390,15 @@ GNUNET_FRAGMENT_process_ack (struct GNUNET_FRAGMENT_Context *fc,
393 else if (snd_cnt > ack_cnt) 390 else if (snd_cnt > ack_cnt)
394 { 391 {
395 /* some loss, slow down proportionally */ 392 /* some loss, slow down proportionally */
393 fprintf (stderr, "Prop loss\n");
396 fc->msg_delay.rel_value = ((fc->msg_delay.rel_value * ack_cnt) / snd_cnt); 394 fc->msg_delay.rel_value = ((fc->msg_delay.rel_value * ack_cnt) / snd_cnt);
397 } 395 }
398 else if (0 < fc->msg_delay.rel_value) 396 else if (0 < fc->msg_delay.rel_value)
399 { 397 {
400 fc->msg_delay.rel_value--; /* try a bit faster */ 398 fc->msg_delay.rel_value--; /* try a bit faster */
401 } 399 }
402 fc->msg_delay = GNUNET_TIME_relative_max (fc->msg_delay, 400 fc->msg_delay = GNUNET_TIME_relative_min (fc->msg_delay,
403 GNUNET_TIME_UNIT_SECONDS); 401 GNUNET_TIME_UNIT_SECONDS);
404 fprintf (stderr, "New msg delay: %llu\n",
405 (unsigned long long )fc->msg_delay.rel_value);
406 } 402 }
407 GNUNET_STATISTICS_update (fc->stats, 403 GNUNET_STATISTICS_update (fc->stats,
408 _("# fragment acknowledgements received"), 1, 404 _("# fragment acknowledgements received"), 1,