[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