[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