[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