[libss7-commits] mattf: trunk r68 - /trunk/mtp2.c
libss7-commits at lists.digium.com
libss7-commits at lists.digium.com
Wed Nov 8 11:17:07 MST 2006
Author: mattf
Date: Wed Nov 8 12:17:06 2006
New Revision: 68
URL: http://svn.digium.com/view/libss7?rev=68&view=rev
Log:
Now we do retransmission requests on MSUs that we don't receive correctly!
Modified:
trunk/mtp2.c
Modified: trunk/mtp2.c
URL: http://svn.digium.com/view/libss7/trunk/mtp2.c?rev=68&r1=67&r2=68&view=diff
==============================================================================
--- trunk/mtp2.c (original)
+++ trunk/mtp2.c Wed Nov 8 12:17:06 2006
@@ -666,6 +666,13 @@
mtp_error(link->master, "Received MSU in invalid state %d\n", link->state);
return -1;
}
+
+ /* If we're still waiting for our retranmission acknownledgement, we'll just ignore subsequent MSUs until it starts */
+ if (h->fib != link->curbib) {
+ mtp_message(link->master, "MSU received, though still waiting for retransmission start. Dropping.\n");
+ return 0;
+ }
+
if (h->fsn == link->lastfsnacked) {
/* Discard */
mtp_message(link->master, "Received double MSU, dropping\n");
@@ -673,7 +680,8 @@
}
if (h->fsn != ((link->lastfsnacked+1) % 128)) {
- mtp_message(link->master, "Received out of sequence MSU w/ fsn of %d, lastfsnacked = %d\n", h->fsn, link->lastfsnacked + 1);
+ mtp_message(link->master, "Received out of sequence MSU w/ fsn of %d, lastfsnacked = %d, requesting retransmission\n", h->fsn, link->lastfsnacked);
+ link->curbib = !link->curbib;
return 0;
}
More information about the libss7-commits
mailing list