[Sumover-dev] [svn commit] r4326 - vic/branches/cc/cc/test
sumover-dev at cs.ucl.ac.uk
sumover-dev at cs.ucl.ac.uk
Mon Nov 17 22:48:12 GMT 2008
Author: soohyunc
Date: Mon Nov 17 22:48:11 2008
New Revision: 4326
Modified:
vic/branches/cc/cc/test/bitvec.cpp
vic/branches/cc/cc/test/bitvec.h
Log:
(work-in-progress) added/modified ackvec build test code
Modified: vic/branches/cc/cc/test/bitvec.cpp
==============================================================================
--- vic/branches/cc/cc/test/bitvec.cpp (original)
+++ vic/branches/cc/cc/test/bitvec.cpp Mon Nov 17 22:48:11 2008
@@ -11,10 +11,10 @@
#include "bitvec.h"
#include "cc_output.h"
-#define EMUL_LOSS
+//#define EMUL_LOSS
// variables
-static int ackofack = 0; // ack of ack
+static int aoa = 0; // ack of ack
static int mvec[DUPACKS]; // margin vec
static int currseq = 0; // current seqno
static int prevseq = 0; // previous seqno
@@ -22,8 +22,13 @@
int bitvec () {
- const int NUMPKTS = 6; // # of generated packet seqno
+ const int NUMPKTS = 10; // # of generated packet seqno
int i, j; // used for indexing
+ int cnt, offset;
+
+ // initializing mvec[]
+ for (i = 0; i < DUPACKS; i++)
+ mvec[i] = 0;
// declare packet buffer
Buffer sendbuf, recvbuf;
@@ -52,7 +57,7 @@
// set next bit to 1
SET_BIT_VEC (ackVec, 1);
} else {
- int cnt = currseq - prevseq - 1;
+ cnt = currseq - prevseq - 1;
printf("number of lost packets: %d\n", cnt);
// set next bit to 0 equal to the # of lost packets
@@ -67,7 +72,23 @@
}
#endif
printf("ackVec: %d\n", ackVec);
- }
+
+ // margin vec
+ marginvec(ackVec);
+ printf("\tmvec[0][1][2] = (%d %d %d)\n", \
+ mvec[0], mvec[1], mvec[2]);
+
+ // ackofack
+ aoa = ackofack();
+ printf("\tackofack: %d\n", aoa);
+
+ // trim ackVec
+ offset = mvec[2] - aoa;
+ //offset = currseq - aoa + 1 - DUPACKS - cnt;
+ printf("\toffset (mvec[2] - aoa): %d - %d = %d\n", mvec[2], aoa, offset);
+ if (aoa)
+ trimvec(ackVec, offset);
+ } // end for(;;)
// display packet seqno
printf("\nreceived packets...");
@@ -97,8 +118,11 @@
return (l + 1);
}
+// margin vec
void marginvec (int vec) {
- int hseq = get_head_pos(vec) + ackofack;
+ int hseq = get_head_pos(vec) + aoa;
+ //printf("\thead of vec: %d\n", get_head_pos(vec));
+ printf("\thighest seqno: %d\n", hseq);
for (int i = 0; i < DUPACKS; i++)
mvec[i] = ((hseq - i) < 0) ? 0 : (hseq - i);
@@ -115,3 +139,18 @@
printf("\ngenerated packets...");
buf.display();
}
+
+// trim ackVec
+void trimvec (int vec, int offset) {
+ ackVec = vec >> offset;
+}
+
+// ackofack
+int ackofack () {
+ int retval = mvec[DUPACKS - 1] - 1;
+
+ if (retval < 0)
+ retval = 0;
+
+ return retval;
+}
Modified: vic/branches/cc/cc/test/bitvec.h
==============================================================================
--- vic/branches/cc/cc/test/bitvec.h (original)
+++ vic/branches/cc/cc/test/bitvec.h Mon Nov 17 22:48:11 2008
@@ -35,5 +35,7 @@
int get_tail_pos (int vec);
void marginvec (int vec);
void send_buf (Buffer, int);
+void trimvec (int vec, int);
+int ackofack ();
#endif /* vic_cc_test_bitvec_h */
More information about the Sumover-dev
mailing list