[Sumover-dev] [svn commit] r4530 - vic/branches/cc/cc

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Fri Oct 23 18:47:54 BST 2009


Author: soohyunc
Date: Fri Oct 23 18:47:54 2009
New Revision: 4530

Modified:
   vic/branches/cc/cc/tfwc_sndr.cpp
   vic/branches/cc/cc/tfwc_sndr.h

Log:
slight modification for gen_seqvec() at TFWC sender - in terms of functionality,
there was no change with this commit.


Modified: vic/branches/cc/cc/tfwc_sndr.cpp
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.cpp	(original)
+++ vic/branches/cc/cc/tfwc_sndr.cpp	Fri Oct 23 18:47:54 2009
@@ -169,26 +169,24 @@
 
 		// declared AckVec
 		ackv_ = (u_int16_t *) malloc (sizeof(u_int16_t) * num_vec_);
+		// clear the existing AckVec
 		clear_ackv(num_vec_);
-
 		// clone AckVec from Vic 
-		for (int i = 0; i < num_vec_; i++) 
-			ackv_[i] = ntohs(chunk[i]);
+		clone_ackv(chunk, num_vec_);
 
 		printf("    [%s +%d] begins:%d, ends:%d, jacked:%d\n", 
 				__FILE__, __LINE__, begins_, ends_, jacked_);
 
 		// generate seqno vector
-		clear_sqv(num_seqvec_);
-		gen_seqvec(ackv_);
+		gen_seqvec(ackv_, num_vec_);
 
 		// generate margin vector
 		marginvec(jacked_);
 		print_mvec();
 
 		// detect loss
-		// 	@begin: aoa_+1
-		// 	@end: mvec_[DUPACKS] - 1
+		// 	@begin: aoa_+1 (lowest seqno)
+		// 	@end: mvec_[DUPACKS-1] - 1
 		is_loss_ = detect_loss(mvec_[DUPACKS-1]-1, aoa_+1);
 
 		// TFWC is not turned on (i.e., no packet loss yet)
@@ -238,16 +236,19 @@
  * (interpret the received AckVec to real sequence numbers)
  * @ackvec: received AckVec
  */
-void TfwcSndr::gen_seqvec (u_int16_t *ackvec) {
+void TfwcSndr::gen_seqvec (u_int16_t *v, int n) {
+	// clear seqvec before starts
+	clear_sqv(num_seqvec_);
+
 	int i, j, k = 0;
 	int x = num_elm_%BITLEN;
 
 	// start of seqvec (lowest seqno)
 	int start = begins_;
 
-	for (i = 0; i < num_vec_-1; i++) {
+	for (i = 0; i < n-1; i++) {
 		for (j = BITLEN; j > 0; j--) {
-			if( CHECK_BIT_AT(ackvec[i], j) )
+			if( CHECK_BIT_AT(v[i], j) )
 				seqvec_[k++%SSZ] = start;
 			else num_loss_++;
 			start++;
@@ -256,7 +257,7 @@
 
 	int a = (x == 0) ? BITLEN : x;
 	for (i = a; i > 0; i--) {
-		if( CHECK_BIT_AT(ackvec[num_vec_-1], i) )
+		if( CHECK_BIT_AT(v[n-1], i) )
 			seqvec_[k++%SSZ] = start;
 		else num_loss_++;
 		start++;
@@ -278,9 +279,7 @@
 	int count = 0; // packet loss counter
 
 	// number of tempvec element when no loss
-	//int num = ((end - begin  + 1) < 0) ? 0 : (end - begin + 1);
 	int num = end - begin + 1;
-	printf("\tnum_tempvec: %d\n", num);
 	u_int32_t tempvec[num];
 
 	// generate tempvec elements

Modified: vic/branches/cc/cc/tfwc_sndr.h
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.h	(original)
+++ vic/branches/cc/cc/tfwc_sndr.h	Fri Oct 23 18:47:54 2009
@@ -99,7 +99,7 @@
 
 protected:
 	// generate sequence numbers
-	void gen_seqvec(u_int16_t *ackvec);
+	void gen_seqvec(u_int16_t *v, int n);
 
 	// init loss related variables
 	inline void init_loss_var() {
@@ -186,6 +186,12 @@
 	// dupack action
 	void dupack_action();
 
+	// AckVec clone from Vic 
+	inline void clone_ackv(u_int16_t *c, int n) {
+		for (int i = 0; i < n; i++)
+			ackv_[i] = ntohs(c[i]);
+	}
+
 	// clear timestamp vector
 	inline void clear_tsv (int n) {
 		for (int i = 0; i < n; i++)



More information about the Sumover-dev mailing list