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

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Wed Aug 6 17:21:54 BST 2008


Author: soohyunc
Date: Wed Aug  6 17:21:53 2008
New Revision: 4245

Modified:
   vic/branches/cc/cc/tfwc_rcvr.cpp
   vic/branches/cc/cc/tfwc_rcvr.h
   vic/branches/cc/rtp/session.cpp
   vic/branches/cc/rtp/session.h

Log:
o  now, ackvec build funcion is moved to TfwcRcvr correctly


Modified: vic/branches/cc/cc/tfwc_rcvr.cpp
==============================================================================
--- vic/branches/cc/cc/tfwc_rcvr.cpp	(original)
+++ vic/branches/cc/cc/tfwc_rcvr.cpp	Wed Aug  6 17:21:53 2008
@@ -48,9 +48,29 @@
 	seqno_(0) 
 {}
 
-void TfwcRcvr::set_received_seqno(u_int16_t seqno) 
+void TfwcRcvr::set_received_seqno(u_int16_t seqno, u_int16_t lastseq) 
 {
 	seqno_ = seqno;
+	lastseq_ = lastseq;
     debug_msg("received seqno:  %d\n", seqno_);
+
+	ackvec_manager(seqno_, lastseq_);
 }
 
+void TfwcRcvr::ackvec_manager(u_int16_t seqno, u_int16_t lastseq)
+{
+	// set next ackvec bit vector
+	for (int i = lastseq+1; i <= seqno; i++) {
+		SET_BIT_VEC (tfwcAV, 1);
+	}
+
+	// printing tfwcAV
+	bool isThere;
+	debug_msg("XXX received ackvec:");
+	for (int i = lastseq+1; i <= seqno; i++) {
+		isThere = SEE_BIT_VEC (tfwcAV, i, seqno);
+		printf(" %d... %s ", seqno, isThere ? "Ok" : "Nok");
+	}
+	printf("\n");
+	//lastseq_ = seqno;
+}

Modified: vic/branches/cc/cc/tfwc_rcvr.h
==============================================================================
--- vic/branches/cc/cc/tfwc_rcvr.h	(original)
+++ vic/branches/cc/cc/tfwc_rcvr.h	Wed Aug  6 17:21:53 2008
@@ -47,11 +47,15 @@
 class TfwcRcvr {
 public:
 	TfwcRcvr();
-	void set_received_seqno(u_int16_t seqno);
+	void set_received_seqno(u_int16_t seqno, u_int16_t lastseq);
 
 protected:
-	u_int16_t seqno_;
+	inline u_int32_t get_ackvec() { return tfwcAV; }
+	u_int32_t tfwcAV;	// AckVec (bit vector)
+	u_int16_t seqno_;	// received RTP packet seqno
+	u_int16_t lastseq_;	// last RTP packet seqno
 private:
+	void ackvec_manager(u_int16_t seqno, u_int16_t latseq);
 };
 
 #endif

Modified: vic/branches/cc/rtp/session.cpp
==============================================================================
--- vic/branches/cc/rtp/session.cpp	(original)
+++ vic/branches/cc/rtp/session.cpp	Wed Aug  6 17:21:53 2008
@@ -645,8 +645,8 @@
 		flags |= RTCP_PT_XR;		// setting flags to XR
 		xr = (rtcp_xr*)(rh + 1);	// extended report
 		xr->xr_begin_seq = lastseq_;// this will be used for ackofack
-		xr->xr_end_seq = seqno_ + 1;
-		xr->xr_ackvec = ackvec_;	// ackvec
+		xr->xr_end_seq = seqno_ + 1;// as defined in RFC3611 section 4.1
+		xr->xr_ackvec = get_ackvec();	// ackvec
 	}
 
 	int nrr = 0;
@@ -797,7 +797,6 @@
 
 	rtphdr* rh = (rtphdr*)pb->data;
 	seqno_ = ntohs(rh->rh_seqno);	// get received packet seqno
-	set_received_seqno(seqno_);	// set received seqno in TfwcRcvr
 
     // Ignore loopback packets
 	if (!loopback_) {
@@ -810,22 +809,10 @@
 		}
 	} // now, loopback packets ignored (if disabled)
 
-/*
-	// set bit vector
-	for (int i = lastseq_+1; i <= seqno_; i++) {
-			SET_BIT_VEC (ackvec_, 1);
-	}
+	// set received seqno - passing seqno to TfwcRcvr
+	set_received_seqno(seqno_, lastseq_);
+	lastseq_ = seqno_;	// set last seqno
 
-	// printing bit vector
-	bool isThere;
-	debug_msg("XXX received ackvec:");
-	for (int i = lastseq_+1; i <= seqno_; i++) {
-		isThere = SEE_BIT_VEC (ackvec_, i, seqno_);
-		printf(" %d... %s ", seqno_, isThere ? "Ok" : "NOk");
-	}
-	printf("\n");
-	lastseq_ = seqno_;
-*/
 	int version = pb->data[0] >> 6;
 	//int version = *(u_char*)rh >> 6;
 	if (version != 2) {

Modified: vic/branches/cc/rtp/session.h
==============================================================================
--- vic/branches/cc/rtp/session.h	(original)
+++ vic/branches/cc/rtp/session.h	Wed Aug  6 17:21:53 2008
@@ -194,6 +194,7 @@
 	u_char* pktbuf_;
 
 	SourceManager *sm_;
+	TfwcRcvr *tfwc_rcvr_;
 
 	// RTP packet sequence number (for the use of AckVec)
 	u_int16_t seqno_;		// RTP packet sequence number



More information about the Sumover-dev mailing list