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

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Tue Aug 12 19:14:34 BST 2008


Author: soohyunc
Date: Tue Aug 12 19:14:34 2008
New Revision: 4266

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

Log:
(on-going) TfwcSndr 



Modified: vic/branches/cc/cc/tfwc_sndr.cpp
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.cpp	(original)
+++ vic/branches/cc/cc/tfwc_sndr.cpp	Tue Aug 12 19:14:34 2008
@@ -48,9 +48,13 @@
 
 TfwcSndr::TfwcSndr() :
 	seqno_(0),
-	aoa_(0)
+	aoa_(0),
+	ts_(0),
+	ts_echo_(0),
+	npkt_(0)
 {
-	u_int32_t marginvec_ = 0xe0000000;
+	// for simulating TCP's 3 dupack rule
+	u_int32_t mvec_ = 0x07;
 }
 
 void TfwcSndr::tfwc_sndr_send(pktbuf* pb) {
@@ -62,16 +66,25 @@
 	// sequence number must be greater than zero
 	assert (seqno_ > 0);
 	debug_msg("sent seqno:		%d\n", seqno_);
+
+	npkt_++;	// number of packet sent
 }
 
 void TfwcSndr::tfwc_sndr_recv(u_int32_t ackv, u_int32_t ts_echo)
 {
-	// the most recent 3 packets will be marked as 1 using marginvec_
-	ackv_ = ackv | marginvec_;
+	// retrieve ackvec and ts echo
+	ackv_ = ackv;
 	ts_echo_ = ts_echo;
+
+	// mask most 3 recent packets
+	if (npkt_ > DUPACKS)
+		ackv_ = ackv | mvec_;
+
+	tao_ = tfwc_sndr_now() - ts_echo_;
+
 	debug_msg(" ts echo:	%d\n", ts_echo_);
 }
 
 void TfwcSndr::ackofack() {
-	aoa_ = marginvec_ | 0x01000000;
+	aoa_ = mvec_ | 0x01000000;
 }

Modified: vic/branches/cc/cc/tfwc_sndr.h
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.h	(original)
+++ vic/branches/cc/cc/tfwc_sndr.h	Tue Aug 12 19:14:34 2008
@@ -60,14 +60,15 @@
 	u_int16_t seqno_;	// packet sequence number
 
 protected:
-
-	u_int32_t marginvec_;	// margin vec
-	u_int32_t ackv_;	// AckVec (in TfwcSndr)
+	u_int32_t mvec_;	// margin vec (simulatinmg TCP 3 dupacks)
+	u_int32_t ackv_;	// received AckVec (from TfwcRcvr)
+	u_int32_t pvec_;	// sent packet list
 	u_int16_t aoa_;		// ack of ack
 	u_int32_t ts_;		// time stamp
 	u_int32_t ts_echo_;	// echo time stamp from the receiver
-	TfwcSndr* tfwcsndr_;
+	u_int32_t tao_;		// sampled RTT
 private:
+	int npkt_;		// number of packet sent
 };
 
 #endif



More information about the Sumover-dev mailing list