aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/ccids/ccid3.h
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2007-12-12 11:06:14 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:57:20 -0500
commit954c2db868ce896325dced91d5fba5e2226897a4 (patch)
treed74b480530878c25eb770293d786f2e78ace90e7 /net/dccp/ccids/ccid3.h
parentde0d411cb8ea51175f52d935faead5c542b6e007 (diff)
[CCID3]: Interface CCID3 code with newer Loss Intervals Database
This hooks up the TFRC Loss Interval database with CCID 3 packet reception. In addition, it makes the CCID-specific computation of the first loss interval (which requires access to all the guts of CCID3) local to ccid3.c. The patch also fixes an omission in the DCCP code, that of a default / fallback RTT value (defined in section 3.4 of RFC 4340 as 0.2 sec); while at it, the upper bound of 4 seconds for an RTT sample has been reduced to match the initial TCP RTO value of 3 seconds from[RFC 1122, 4.2.3.1]. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ccids/ccid3.h')
-rw-r--r--net/dccp/ccids/ccid3.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/dccp/ccids/ccid3.h b/net/dccp/ccids/ccid3.h
index 6ceeb8013f58..e9f6ff4f0552 100644
--- a/net/dccp/ccids/ccid3.h
+++ b/net/dccp/ccids/ccid3.h
@@ -41,7 +41,7 @@
41#include <linux/list.h> 41#include <linux/list.h>
42#include <linux/types.h> 42#include <linux/types.h>
43#include <linux/tfrc.h> 43#include <linux/tfrc.h>
44#include "lib/packet_history.h" 44#include "lib/tfrc.h"
45#include "../ccid.h" 45#include "../ccid.h"
46 46
47/* Two seconds as per RFC 3448 4.2 */ 47/* Two seconds as per RFC 3448 4.2 */
@@ -141,8 +141,8 @@ enum ccid3_hc_rx_states {
141 * @ccid3hcrx_bytes_recv - Total sum of DCCP payload bytes 141 * @ccid3hcrx_bytes_recv - Total sum of DCCP payload bytes
142 * @ccid3hcrx_tstamp_last_feedback - Time at which last feedback was sent 142 * @ccid3hcrx_tstamp_last_feedback - Time at which last feedback was sent
143 * @ccid3hcrx_tstamp_last_ack - Time at which last feedback was sent 143 * @ccid3hcrx_tstamp_last_ack - Time at which last feedback was sent
144 * @ccid3hcrx_hist - Packet history 144 * @ccid3hcrx_hist - Packet history (loss detection + RTT sampling)
145 * @ccid3hcrx_li_hist - Loss Interval History 145 * @ccid3hcrx_li_hist - Loss Interval database
146 * @ccid3hcrx_s - Received packet size in bytes 146 * @ccid3hcrx_s - Received packet size in bytes
147 * @ccid3hcrx_pinv - Inverse of Loss Event Rate (RFC 4342, sec. 8.5) 147 * @ccid3hcrx_pinv - Inverse of Loss Event Rate (RFC 4342, sec. 8.5)
148 */ 148 */
@@ -156,9 +156,9 @@ struct ccid3_hc_rx_sock {
156 u32 ccid3hcrx_bytes_recv; 156 u32 ccid3hcrx_bytes_recv;
157 ktime_t ccid3hcrx_tstamp_last_feedback; 157 ktime_t ccid3hcrx_tstamp_last_feedback;
158 struct tfrc_rx_hist ccid3hcrx_hist; 158 struct tfrc_rx_hist ccid3hcrx_hist;
159 struct list_head ccid3hcrx_li_hist; 159 struct tfrc_loss_hist ccid3hcrx_li_hist;
160 u16 ccid3hcrx_s; 160 u16 ccid3hcrx_s;
161 u32 ccid3hcrx_pinv; 161#define ccid3hcrx_pinv ccid3hcrx_li_hist.i_mean
162}; 162};
163 163
164static inline struct ccid3_hc_rx_sock *ccid3_hc_rx_sk(const struct sock *sk) 164static inline struct ccid3_hc_rx_sock *ccid3_hc_rx_sk(const struct sock *sk)