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

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Thu Aug 14 14:44:28 BST 2008


Author: soohyunc
Date: Thu Aug 14 14:44:27 2008
New Revision: 4271

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

Log:
o  sampled RTT issue resolved


Modified: vic/branches/cc/cc/tfwc_sndr.cpp
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.cpp	(original)
+++ vic/branches/cc/cc/tfwc_sndr.cpp	Thu Aug 14 14:44:27 2008
@@ -119,29 +119,27 @@
 	else if (type == XR_BT_3) {
 		ntep_++;		// number of ts echo packet received
 		ts_echo_ = ts_echo;
-
-		tao_ = now_ - ts_echo_;
 		debug_msg(" ts echo:	%d\n", ts_echo_);
+
+		tao_ = (double)(tfwc_sndr_now() - ts_echo_)/1000000;
 		
 		// update RTT
 		update_rtt(tao_);
 	}
 }
 
-void TfwcSndr::update_rtt(u_int32_t tao) {
+void TfwcSndr::update_rtt(double rtt_sample) {
 
-	// double dtao = double(tao); // convert to a real number
-	double dtao;
-	
+	// calculate smoothed RTT
 	if (srtt_ < 0) {
 		// the first RTT observation
-		srtt_ = dtao;
-		rttvar_ = dtao/2.0;
-		sqrtrtt_ = sqrt(dtao);
+		srtt_ = rtt_sample;
+		rttvar_ = rtt_sample/2.0;
+		sqrtrtt_ = sqrt(rtt_sample);
 	} else {
-		srtt_ = df_ * srtt_ + (1 - df_) * dtao;
-		rttvar_ = rttvar_ + beta_ * (fabs(srtt_ - dtao) - rttvar_);
-		sqrtrtt_ = df_ * sqrtrtt_ + (1 - df_) * sqrt(dtao);
+		srtt_ = df_ * srtt_ + (1 - df_) * rtt_sample;
+		rttvar_ = rttvar_ + beta_ * (fabs(srtt_ - rtt_sample) - rttvar_);
+		sqrtrtt_ = df_ * sqrtrtt_ + (1 - df_) * sqrt(rtt_sample);
 	}
 
 	// update the current RTO

Modified: vic/branches/cc/cc/tfwc_sndr.h
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.h	(original)
+++ vic/branches/cc/cc/tfwc_sndr.h	Thu Aug 14 14:44:27 2008
@@ -116,10 +116,11 @@
 	u_int32_t ts_;		// time stamp
 	u_int32_t ts_echo_;	// echo time stamp from the receiver
 	u_int32_t *tsvec_;	// timestamp vector
-	u_int32_t tao_;		// sampled RTT
+	double tao_;		// sampled RTT
 private:
 	// update RTT
-	void update_rtt(u_int32_t tao);	// update RTT
+	void update_rtt(double tao);	// update RTT
+
 	u_int16_t last_ack_;	// last packet seqno from ackvec
 	int ndtp_;		// number of data packet sent
 	int nakp_;		// number of ackvec packet received



More information about the Sumover-dev mailing list