: New RX History Step 5 - CCID3 packet reception
PATCH 12/43 : New RX History Step 5 - CCID3 packet reception
[CCID 3]: New RX History Step 5 - CCID3 packet reception
This patch continues with the integration of the new RX history structure. It takes care of
1. Receiver RTT sampling until first loss occurs (this replaces the existing mechanism which was unreliable due to requiring timestamp/elapsed time option from the sender; now uses the algorithm from RFC 4343, 8.1);
2. Recomputing p after the first loss occurred (RFC 3448, 6.1);
3. Marking history entries as `loss is indicated';
4. Sending first feedback (RFC 3448, 6.3; note the state transition is now
in ccid3_hc_rx_send_feedback());
5. Loss detection wrt NDUPACK (RFC 4342, 6.1);
6. Tracking of the highest-received-seqno so far (used for loss detection).
Due to the amount of required changes, (5) was split into a subsequent patch. As a byproduct, the socket struct again gets a little smaller.
Documentation on http://www.erg.abdn.ac.uk/users/gerrit/dccp/docs/ccid3_packet_reception/
--- net/dccp/ccids/ccid3.c | 131 +++++++++++++++++++------------------------------ net/dccp/ccids/ccid3.h | 4 - 2 files changed, 53 insertions(+), 82 deletions(-)
net/dccp/ccids/ccid3.h +1 -3
@@ -133,10 +133,9 @@ enum ccid3_hc_rx_states {* @ccid3hcrx_s - Received packet size in bytes * @ccid3hcrx_bytes_recv - Total sum of DCCP payload bytes * @ccid3hcrx_x_recv - Receiver estimate of send rate (RFC 3448, sec. 4.3) -* @ccid3hcrx_rtt - Receiver estimate of rtt (non-standard) +* @ccid3hcrx_rtt - Receiver estimate of RTT (RFC 4342, 8.1) * @ccid3hcrx_pinv - Reciprocal of Loss Event Rate p (RFC 4342, sec. 8.5) * @ccid3hcrx_tstamp_last_feedback - Time at which last feedback was sent -* @ccid3hcrx_tstamp_last_ack - Time at which last feedback was sent * @ccid3hcrx_hist - Packet history exported by TFRC module * @ccid3hcrx_li_hist - Loss Interval History * @ccid3hcrx_elapsed_time - Time since packet reception
@@ -150,7 +149,6 @@ struct ccid3_hc_rx_sock {u32 ccid3hcrx_rtt;u32 ccid3hcrx_pinv;struct timeval ccid3hcrx_tstamp_last_feedback; -struct timeval ccid3hcrx_tstamp_last_ack;struct tfrc_rx_hist ccid3hcrx_hist;struct list_head ccid3hcrx_li_hist;u32 ccid3hcrx_elapsed_time;
net/dccp/ccids/ccid3.c +52 -79
171 lines not on this page · raw message