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

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Wed Mar 24 03:42:38 GMT 2010


Author: soohyunc
Date: Wed Mar 24 03:42:38 2010
New Revision: 4721

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

Log:
further improvement on packet re-ordering detection routine...



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 24 03:42:38 2010
@@ -131,7 +131,6 @@
 	pvec_ = (u_int16_t *)malloc(sizeof(u_int16_t) * num_vec_);
 	clear_pvec(num_vec_);
 	__jacked_ = 0;
-	__begins_ = 0;
 }
 
 void TfwcSndr::tfwc_sndr_send(int seqno, double now, double offset) {
@@ -207,12 +206,12 @@
 	if (jacked_ < __jacked_) {
 		// this ack is deprecated message (e.g., too old).
 		if(jacked_ < aoa_) {
-		  debug_msg("warning: this ack is older than AoA!\n");
+		  debug_msg("warning: this ack(%d) is older than AoA(%d)!\n",jacked_,aoa_);
 		  return;
 		}
 		// this ack is delivered out-of-order
 		else if(out_of_ack(jacked_, seqvec_, num_seqvec_)) {
-		  debug_msg("warning: this ack itself is out-of-order!\n");
+		  debug_msg("warning: this ack(%d) itself is out-of-order!\n",jacked_);
 		  outofack = true;
 		  // cwnd process
 		  if(is_tfwc_on_) control();
@@ -224,8 +223,9 @@
 		// packet is out-of-order
 		else {
 		  debug_msg("warning: packet reordering occurred!\n");
-		  // restore the previous state variables
-		  replace(__begins_, __jacked_);
+		  // replace just ack'ed seqno
+		  replace(__jacked_);
+		  // re-calculate numelm and numvec
 		  num_elm_ = get_numelm(begins_, jacked_);
 		  num_vec_ = get_numvec(num_elm_);
 		  reorder = true;
@@ -283,7 +283,6 @@
 	fprintf(stderr, "\tnow: %f\tcwnd: %d\n", so_recv_, cwnd_);
 
 	// set ackofack (real number)
-	if(!reorder)
 	aoa_ = ackofack(); 
 
 	// sampled RTT
@@ -337,8 +336,8 @@
 void TfwcSndr::reset_var() {
 	num_missing_ = 0;
 
-	// store jack'ed and begins
-	store(begins_, jacked_);
+	// store jack'ed
+	store(jacked_);
 	// declare pvec to store ackv
 	pvec_ = (u_int16_t *)malloc(sizeof(u_int16_t) * num_vec_);
 	clear_pvec(num_vec_);

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 24 03:42:38 2010
@@ -290,14 +290,14 @@
 		return (end - begin + 1);
 	}
 
-	// replace jack'ed and begins from the previous ackvec
-	inline void replace (u_int16_t lowest, u_int16_t highest) {
-		begins_ = lowest; jacked_ = highest;
+	// replace jack'ed 
+	inline void replace (u_int16_t highest) {
+		jacked_ = highest;
 	}
 
-	// store jack'ed and begins
-	inline void store (u_int16_t lowest, u_int16_t highest) {
-		__begins_ = lowest; __jacked_ = highest;
+	// store jack'ed 
+	inline void store (u_int16_t highest) {
+		__jacked_ = highest;
 	}
 
 	int ndtp_;		// number of data packet sent
@@ -369,7 +369,6 @@
 
 	// highest/lowest packet sequence numbers (prev ackvec)
 	u_int16_t __jacked_;	// previous highest packet sequence number
-	u_int16_t __begins_;	// previous lowest packet sequence number
 };
 
 #endif



More information about the Sumover-dev mailing list