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

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Wed Mar 31 23:24:51 BST 2010


Author: soohyunc
Date: Wed Mar 31 23:24:51 2010
New Revision: 4754

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

Log:
trim code looking/reading simpler



Modified: vic/branches/cc/cc/tfwc_sndr.cpp
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.cpp	(original)
+++ vic/branches/cc/cc/tfwc_sndr.cpp	Wed Mar 31 23:24:51 2010
@@ -215,7 +215,7 @@
 	clear_ackv(num_vec_);
 	// clone AckVec from Vic
 	clone_ackv(chunk, num_vec_);
-	//print_vec(ackv_, num_vec_);
+	//print_vec("ackvec", ackv_, num_vec_);
 
 	//---------------------------------------------------------*
 	// detect packet reordering and reordered ack delivery
@@ -226,7 +226,7 @@
 		//
 		if(jacked_ < aoa_) {
 		  debug_msg("warning: this ack(%d) is older than AoA(%d)!\n", jacked_,aoa_);
-		  // trigger packets out to keep Jacob's packet conservation rule
+		  // trigger a packet out to keep Jacob's packet conservation rule
 		  packet_clocking(pb, recv_by_ch);
 		  return;
 		}
@@ -236,9 +236,10 @@
 		else if(out_of_ack(jacked_, seqvec_, num_seqvec_)) {
 		  debug_msg("warning: this ack(%d) itself is out-of-order!\n",jacked_);
 		  // if the disorder is beyond 3 dupack rule,
-		  // trigger packets out to keep Jacob's packet conservation rule
+		  // revert to the earlier history
 		  if(shift >= DUPACKS)
 		  revert = revert_interval(jacked_);
+		  // then, update cwnd
 		  cwnd_in_packets(revert);
 		  print_cwnd();
 		  return;
@@ -278,7 +279,7 @@
 	}
 
 	// generate seqno vector
-	//print_vec(ackv_, num_vec_);
+	//print_vec("ackvec", ackv_, num_vec_);
 	gen_seqvec(ackv_, num_vec_);
 
 	// generate margin vector
@@ -297,9 +298,10 @@
 	// finally, we only need to clock packets out.
 	// (i.e., do NOT update cwnd and RTT)
 	if(reorder_) {
-		// triggering only if the disorder is beyond 3 dupack rule,
+		// revert to the earlier history if the disorder is beyond 3 dupack rule
 		if (shift >= DUPACKS)
 		revert = revert_interval(jacked_);
+		// then, update cwnd
 		cwnd_in_packets(revert);
 		print_cwnd();
 		reset_var();
@@ -381,7 +383,7 @@
 	clear_pvec(num_vec_);
 	// store ackv
 	copy_ackv(num_vec_);
-	//print_vec(pvec_, num_vec_);
+	//print_vec("stored ackvec", pvec_, num_vec_);
 
 	// finally, free ackvec
 	free(ackv_);
@@ -422,7 +424,7 @@
 	// therefore, the number of seqvec elements is:
 	num_seqvec_ = num_elm_ - num_missing_;
 	// printing retrieved sequence numbers from received AckVec
-	print_seqvec(num_seqvec_);
+	print_vec("sequence numbers", seqvec_, num_seqvec_);
 }
 
 /*
@@ -576,7 +578,7 @@
  * core part for congestion window control
  * (cwnd is in bytes)
  */
-void cwnd_in_packets() {
+void cwnd_in_bytes() {
 }
 
 /*
@@ -678,17 +680,9 @@
 
 	// compare reference with seqvec
 	for (int i = 0; i < num_refvec_; i++) {
-		// is there a loss found?
-		for (int j = 0; j < num_seqvec_; j++) {
-			if (refvec_[i] == seqvec_[j]) {
-				is_loss = false;
-				break;
-			} else 
-				is_loss = true;
-		}
-
-		// is this a new loss event?
-		if (is_loss) {
+		// is there a loss found?? and, is this a new loss event??
+		if (!find_seqno(seqvec_, num_seqvec_, refvec_[i])) {
+			is_loss = true;
 			if (tsvec_[refvec_[i]%TSZ] - ts_ > srtt_)
 			is_new_event = true;
 			else
@@ -825,6 +819,13 @@
 	}
 	return false;
 }
+bool TfwcSndr::find_seqno(u_int32_t *v, int n, u_int32_t target) {
+	for (int i = 0; i < n; i++) {
+		if(v[i] == target)
+		return true;
+	}
+	return false;
+}
 
 /*
  * print history item

Modified: vic/branches/cc/cc/tfwc_sndr.h
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.h	(original)
+++ vic/branches/cc/cc/tfwc_sndr.h	Wed Mar 31 23:24:51 2010
@@ -156,25 +156,6 @@
 	return ((mvec_[DUPACKS - 1] - 1) <= 0) ?
 		0 : (u_int16_t) (mvec_[DUPACKS - 1] - 1);
 	}
-	// print mvec
-	inline void print_mvec() {
-	fprintf(stderr, "\tmargin numbers: ( %d %d %d )\n", 
-	mvec_[0], mvec_[1], mvec_[2]);
-	}
-	// printf seqvec
-	inline void print_seqvec(int numelm) {
-	fprintf(stderr, "\tsequence numbers: (");
-		for (int i = 0; i < numelm; i++)
-		fprintf(stderr, " %d", seqvec_[i]);
-	fprintf(stderr, " )\n");
-	}
-	// print vec
-	inline void print_vec(u_int16_t *vec, int c) {
-	fprintf(stderr, "\t(");
-		for (int i = 0; i < c; i++)
-		fprintf(stderr, " %d", vec[i]);
-	fprintf(stderr, " )\n");
-	}
 
 	// retransmission timer
 	TfwcRtxTimer rtx_timer_;
@@ -317,6 +298,7 @@
 
 	// find seqno
 	bool find_seqno(u_int16_t *v, int n, int target);
+	bool find_seqno(u_int32_t *v, int n, u_int32_t target);
 
 	// print cwnd for debugging
 	inline void print_cwnd() {
@@ -353,6 +335,25 @@
 	now_, seqno_%TSZ, tsvec_[seqno_%TSZ]);
 	}
 
+	// print mvec
+	inline void print_mvec() {
+	fprintf(stderr, "\tmargin numbers: ( %d %d %d )\n", 
+	mvec_[0], mvec_[1], mvec_[2]);
+	}
+	// print vec
+	inline void print_vec(const char* str, u_int32_t *vec, int c) {
+	fprintf(stderr, "\t%s: (", str);
+		for (int i = 0; i < c; i++)
+		fprintf(stderr, " %d", vec[i]);
+	fprintf(stderr, " )\n");
+	}
+	inline void print_vec(const char* str, u_int16_t *vec, int c) {
+	fprintf(stderr, "\t%s: (", str);
+		for (int i = 0; i < c; i++)
+		fprintf(stderr, " %d", vec[i]);
+	fprintf(stderr, " )\n");
+	}
+
 	int ndtp_;		// number of data packet sent
 	int nakp_;		// number of ackvec packet received
 	int ntep_;		// number of ts echo packet received



More information about the Sumover-dev mailing list