[Sumover-dev] [svn commit] r4732 - in vic/branches/cc: rtp

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Sat Mar 27 22:15:33 GMT 2010


Author: soohyunc
Date: Sat Mar 27 22:15:32 2010
New Revision: 4732

Modified:
   vic/branches/cc/cc/tfwc_sndr.cpp
   vic/branches/cc/cc/tfwc_sndr.h
   vic/branches/cc/rtp/session.cpp
   vic/branches/cc/rtp/transmitter.cpp

Log:
--  more precise location for time stamping (TfwcSndr's data packet timestamping)



Modified: vic/branches/cc/cc/tfwc_sndr.cpp
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.cpp	(original)
+++ vic/branches/cc/cc/tfwc_sndr.cpp	Sat Mar 27 22:15:32 2010
@@ -136,19 +136,19 @@
 	reorder_ = false;
 }
 
-void TfwcSndr::tfwc_sndr_send(int seqno, double now) {
+void TfwcSndr::tfwc_sndr_send(pktbuf* pb, double now) {
+	// the very first data packet
 	if(seqno_ == 0)
 	ts_off_ = tx_ts_offset();
 
 	// parse seqno and mark timestamp for this data packet
-	seqno_	= seqno;
+	rtphdr* rh = (rtphdr *) pb->data;
+	seqno_	= ntohs(rh->rh_seqno);
 	now_	= now;
 
 	// timestamp vector for loss history update
 	tsvec_[seqno_%TSZ] = now_;
-
-	//fprintf(stderr, "\t>> now_: %f tsvec_[%d]: %f\n", 
-	//	now_, seqno_%TSZ, tsvec_[seqno_%TSZ]);
+	print_packet_tsvec();
 
 	// sequence number must be greater than zero
 	assert (seqno_ > 0);

Modified: vic/branches/cc/cc/tfwc_sndr.h
==============================================================================
--- vic/branches/cc/cc/tfwc_sndr.h	(original)
+++ vic/branches/cc/cc/tfwc_sndr.h	Sat Mar 27 22:15:32 2010
@@ -85,7 +85,7 @@
 	virtual int tx_buf_size() = 0;
 
 	// parse seqno and timestamp
-	void tfwc_sndr_send(int, double);
+	void tfwc_sndr_send(pktbuf*, double);
 
 	// main reception path (XR packet)
 	void tfwc_sndr_recv(u_int16_t type, u_int16_t begin, u_int16_t end,
@@ -335,6 +335,12 @@
 	fprintf(stderr, "\tnow: %f\tALI: %f\n\n", so_recv_, avg_interval_);
 	}
 
+	// print packet's timestamp record
+	inline void print_packet_tsvec() {
+	fprintf(stderr, "\t>> now: %f tsvec_[%d]: %f\n",
+	now_, seqno_%TSZ, tsvec_[seqno_%TSZ]);
+	}
+
 	int ndtp_;		// number of data packet sent
 	int nakp_;		// number of ackvec packet received
 	int ntep_;		// number of ts echo packet received

Modified: vic/branches/cc/rtp/session.cpp
==============================================================================
--- vic/branches/cc/rtp/session.cpp	(original)
+++ vic/branches/cc/rtp/session.cpp	Sat Mar 27 22:15:32 2010
@@ -459,7 +459,11 @@
 	// receive XR before sending
 	if(!recv_by_ch)
 	recv_xreport(ch_, pb);
+
+	// print RTP seqno
 	print_rtp_seqno(pb);
+	// record seqno and timestamp at TfwcSndr side
+	tfwc_sndr_send(pb, tx_get_now());
 
 	// Using loop_layer for now to restrict transmission as well
 	if (pb->layer < loop_layer_) {
@@ -488,6 +492,8 @@
 
 	// print RTP seqno
 	print_rtp_seqno(pb);
+	// record seqno and timestamp at TfwcSndr side
+	tfwc_sndr_send(pb, tx_get_now());
 
 	if (pb->layer < loop_layer_) {
 		Network* n = dh_[pb->layer].net();

Modified: vic/branches/cc/rtp/transmitter.cpp
==============================================================================
--- vic/branches/cc/rtp/transmitter.cpp	(original)
+++ vic/branches/cc/rtp/transmitter.cpp	Sat Mar 27 22:15:32 2010
@@ -326,8 +326,6 @@
 	//debug_msg("jack: %d\n", jack);
 	
 	if (ntohs(rh->rh_seqno) <= magic + jack) {
-		// record seqno and timestamp at TfwcSndr side
-		tfwc_sndr_send(ntohs(rh->rh_seqno), tx_get_now());
 		// move head pointer
 		head_ = pb->next;
 		// call Transmitter::output_data_only w/ XR reception
@@ -370,8 +368,6 @@
 
 	// while packet seqno is within "cwnd + jack", send that packet
 	while (ntohs(rh->rh_seqno) <= magic + jack) {
-		// record seqno and timestamp at TfwcSndr side
-		tfwc_sndr_send(ntohs(rh->rh_seqno), tx_get_now());
 		// move head pointer
 		head_ = pb->next;
 		// call Transmitter::output(pb)
@@ -407,8 +403,6 @@
 
 	// parse pb data
 	rtphdr* rh = (rtphdr *) pb->data;
-	// record seqno and timestamp at TfwcSndr side
-	tfwc_sndr_send(ntohs(rh->rh_seqno), tx_get_now());
 	// move head pointer
 	head_ = pb->next;
 	// call Transmitter::output_data_only w/o XR reception



More information about the Sumover-dev mailing list