aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/tcp.h4
-rw-r--r--net/ipv4/tcp_bic.c3
-rw-r--r--net/ipv4/tcp_cong.c2
-rw-r--r--net/ipv4/tcp_cubic.c3
-rw-r--r--net/ipv4/tcp_highspeed.c3
-rw-r--r--net/ipv4/tcp_htcp.c3
-rw-r--r--net/ipv4/tcp_hybla.c5
-rw-r--r--net/ipv4/tcp_illinois.c3
-rw-r--r--net/ipv4/tcp_input.c9
-rw-r--r--net/ipv4/tcp_lp.c4
-rw-r--r--net/ipv4/tcp_scalable.c3
-rw-r--r--net/ipv4/tcp_vegas.c7
-rw-r--r--net/ipv4/tcp_veno.c7
-rw-r--r--net/ipv4/tcp_yeah.c3
14 files changed, 24 insertions, 35 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 7e583261f3a0..cdd0050b97a4 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -652,7 +652,7 @@ struct tcp_congestion_ops {
652 /* lower bound for congestion window (optional) */ 652 /* lower bound for congestion window (optional) */
653 u32 (*min_cwnd)(const struct sock *sk); 653 u32 (*min_cwnd)(const struct sock *sk);
654 /* do new cwnd calculation (required) */ 654 /* do new cwnd calculation (required) */
655 void (*cong_avoid)(struct sock *sk, u32 ack, u32 in_flight, int good_ack); 655 void (*cong_avoid)(struct sock *sk, u32 ack, u32 in_flight);
656 /* call before changing ca_state (optional) */ 656 /* call before changing ca_state (optional) */
657 void (*set_state)(struct sock *sk, u8 new_state); 657 void (*set_state)(struct sock *sk, u8 new_state);
658 /* call when cwnd event occurs (optional) */ 658 /* call when cwnd event occurs (optional) */
@@ -683,7 +683,7 @@ extern void tcp_slow_start(struct tcp_sock *tp);
683 683
684extern struct tcp_congestion_ops tcp_init_congestion_ops; 684extern struct tcp_congestion_ops tcp_init_congestion_ops;
685extern u32 tcp_reno_ssthresh(struct sock *sk); 685extern u32 tcp_reno_ssthresh(struct sock *sk);
686extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 in_flight, int flag); 686extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 in_flight);
687extern u32 tcp_reno_min_cwnd(const struct sock *sk); 687extern u32 tcp_reno_min_cwnd(const struct sock *sk);
688extern struct tcp_congestion_ops tcp_reno; 688extern struct tcp_congestion_ops tcp_reno;
689 689
diff --git a/net/ipv4/tcp_bic.c b/net/ipv4/tcp_bic.c
index 5dba0fc8f579..5212ed9b0c98 100644
--- a/net/ipv4/tcp_bic.c
+++ b/net/ipv4/tcp_bic.c
@@ -136,8 +136,7 @@ static inline void bictcp_update(struct bictcp *ca, u32 cwnd)
136 ca->cnt = 1; 136 ca->cnt = 1;
137} 137}
138 138
139static void bictcp_cong_avoid(struct sock *sk, u32 ack, 139static void bictcp_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
140 u32 in_flight, int data_acked)
141{ 140{
142 struct tcp_sock *tp = tcp_sk(sk); 141 struct tcp_sock *tp = tcp_sk(sk);
143 struct bictcp *ca = inet_csk_ca(sk); 142 struct bictcp *ca = inet_csk_ca(sk);
diff --git a/net/ipv4/tcp_cong.c b/net/ipv4/tcp_cong.c
index 55fca1820c34..4451750b478c 100644
--- a/net/ipv4/tcp_cong.c
+++ b/net/ipv4/tcp_cong.c
@@ -324,7 +324,7 @@ EXPORT_SYMBOL_GPL(tcp_slow_start);
324/* This is Jacobson's slow start and congestion avoidance. 324/* This is Jacobson's slow start and congestion avoidance.
325 * SIGCOMM '88, p. 328. 325 * SIGCOMM '88, p. 328.
326 */ 326 */
327void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 in_flight, int flag) 327void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
328{ 328{
329 struct tcp_sock *tp = tcp_sk(sk); 329 struct tcp_sock *tp = tcp_sk(sk);
330 330
diff --git a/net/ipv4/tcp_cubic.c b/net/ipv4/tcp_cubic.c
index 80bd084a9f91..3aa0b23c1ea0 100644
--- a/net/ipv4/tcp_cubic.c
+++ b/net/ipv4/tcp_cubic.c
@@ -246,8 +246,7 @@ static inline void bictcp_update(struct bictcp *ca, u32 cwnd)
246 ca->cnt = 1; 246 ca->cnt = 1;
247} 247}
248 248
249static void bictcp_cong_avoid(struct sock *sk, u32 ack, 249static void bictcp_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
250 u32 in_flight, int data_acked)
251{ 250{
252 struct tcp_sock *tp = tcp_sk(sk); 251 struct tcp_sock *tp = tcp_sk(sk);
253 struct bictcp *ca = inet_csk_ca(sk); 252 struct bictcp *ca = inet_csk_ca(sk);
diff --git a/net/ipv4/tcp_highspeed.c b/net/ipv4/tcp_highspeed.c
index 14a073d8b60f..8b6caaf75bb9 100644
--- a/net/ipv4/tcp_highspeed.c
+++ b/net/ipv4/tcp_highspeed.c
@@ -109,8 +109,7 @@ static void hstcp_init(struct sock *sk)
109 tp->snd_cwnd_clamp = min_t(u32, tp->snd_cwnd_clamp, 0xffffffff/128); 109 tp->snd_cwnd_clamp = min_t(u32, tp->snd_cwnd_clamp, 0xffffffff/128);
110} 110}
111 111
112static void hstcp_cong_avoid(struct sock *sk, u32 adk, 112static void hstcp_cong_avoid(struct sock *sk, u32 adk, u32 in_flight)
113 u32 in_flight, int data_acked)
114{ 113{
115 struct tcp_sock *tp = tcp_sk(sk); 114 struct tcp_sock *tp = tcp_sk(sk);
116 struct hstcp *ca = inet_csk_ca(sk); 115 struct hstcp *ca = inet_csk_ca(sk);
diff --git a/net/ipv4/tcp_htcp.c b/net/ipv4/tcp_htcp.c
index 5215691f2760..af99776146ff 100644
--- a/net/ipv4/tcp_htcp.c
+++ b/net/ipv4/tcp_htcp.c
@@ -225,8 +225,7 @@ static u32 htcp_recalc_ssthresh(struct sock *sk)
225 return max((tp->snd_cwnd * ca->beta) >> 7, 2U); 225 return max((tp->snd_cwnd * ca->beta) >> 7, 2U);
226} 226}
227 227
228static void htcp_cong_avoid(struct sock *sk, u32 ack, 228static void htcp_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
229 u32 in_flight, int data_acked)
230{ 229{
231 struct tcp_sock *tp = tcp_sk(sk); 230 struct tcp_sock *tp = tcp_sk(sk);
232 struct htcp *ca = inet_csk_ca(sk); 231 struct htcp *ca = inet_csk_ca(sk);
diff --git a/net/ipv4/tcp_hybla.c b/net/ipv4/tcp_hybla.c
index b3e55cf56171..44618b675916 100644
--- a/net/ipv4/tcp_hybla.c
+++ b/net/ipv4/tcp_hybla.c
@@ -85,8 +85,7 @@ static inline u32 hybla_fraction(u32 odds)
85 * o Give cwnd a new value based on the model proposed 85 * o Give cwnd a new value based on the model proposed
86 * o remember increments <1 86 * o remember increments <1
87 */ 87 */
88static void hybla_cong_avoid(struct sock *sk, u32 ack, 88static void hybla_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
89 u32 in_flight, int flag)
90{ 89{
91 struct tcp_sock *tp = tcp_sk(sk); 90 struct tcp_sock *tp = tcp_sk(sk);
92 struct hybla *ca = inet_csk_ca(sk); 91 struct hybla *ca = inet_csk_ca(sk);
@@ -103,7 +102,7 @@ static void hybla_cong_avoid(struct sock *sk, u32 ack,
103 return; 102 return;
104 103
105 if (!ca->hybla_en) 104 if (!ca->hybla_en)
106 return tcp_reno_cong_avoid(sk, ack, in_flight, flag); 105 return tcp_reno_cong_avoid(sk, ack, in_flight);
107 106
108 if (ca->rho == 0) 107 if (ca->rho == 0)
109 hybla_recalc_param(sk); 108 hybla_recalc_param(sk);
diff --git a/net/ipv4/tcp_illinois.c b/net/ipv4/tcp_illinois.c
index 5aa5f5496d6d..1eba160b72dc 100644
--- a/net/ipv4/tcp_illinois.c
+++ b/net/ipv4/tcp_illinois.c
@@ -256,8 +256,7 @@ static void tcp_illinois_state(struct sock *sk, u8 new_state)
256/* 256/*
257 * Increase window in response to successful acknowledgment. 257 * Increase window in response to successful acknowledgment.
258 */ 258 */
259static void tcp_illinois_cong_avoid(struct sock *sk, u32 ack, 259static void tcp_illinois_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
260 u32 in_flight, int flag)
261{ 260{
262 struct tcp_sock *tp = tcp_sk(sk); 261 struct tcp_sock *tp = tcp_sk(sk);
263 struct illinois *ca = inet_csk_ca(sk); 262 struct illinois *ca = inet_csk_ca(sk);
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index d313dea361a6..cb441188870c 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -2710,11 +2710,10 @@ static inline void tcp_ack_update_rtt(struct sock *sk, const int flag,
2710 tcp_ack_no_tstamp(sk, seq_rtt, flag); 2710 tcp_ack_no_tstamp(sk, seq_rtt, flag);
2711} 2711}
2712 2712
2713static void tcp_cong_avoid(struct sock *sk, u32 ack, 2713static void tcp_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
2714 u32 in_flight, int good)
2715{ 2714{
2716 const struct inet_connection_sock *icsk = inet_csk(sk); 2715 const struct inet_connection_sock *icsk = inet_csk(sk);
2717 icsk->icsk_ca_ops->cong_avoid(sk, ack, in_flight, good); 2716 icsk->icsk_ca_ops->cong_avoid(sk, ack, in_flight);
2718 tcp_sk(sk)->snd_cwnd_stamp = tcp_time_stamp; 2717 tcp_sk(sk)->snd_cwnd_stamp = tcp_time_stamp;
2719} 2718}
2720 2719
@@ -3238,11 +3237,11 @@ static int tcp_ack(struct sock *sk, struct sk_buff *skb, int flag)
3238 /* Advance CWND, if state allows this. */ 3237 /* Advance CWND, if state allows this. */
3239 if ((flag & FLAG_DATA_ACKED) && !frto_cwnd && 3238 if ((flag & FLAG_DATA_ACKED) && !frto_cwnd &&
3240 tcp_may_raise_cwnd(sk, flag)) 3239 tcp_may_raise_cwnd(sk, flag))
3241 tcp_cong_avoid(sk, ack, prior_in_flight, 0); 3240 tcp_cong_avoid(sk, ack, prior_in_flight);
3242 tcp_fastretrans_alert(sk, prior_packets - tp->packets_out, flag); 3241 tcp_fastretrans_alert(sk, prior_packets - tp->packets_out, flag);
3243 } else { 3242 } else {
3244 if ((flag & FLAG_DATA_ACKED) && !frto_cwnd) 3243 if ((flag & FLAG_DATA_ACKED) && !frto_cwnd)
3245 tcp_cong_avoid(sk, ack, prior_in_flight, 1); 3244 tcp_cong_avoid(sk, ack, prior_in_flight);
3246 } 3245 }
3247 3246
3248 if ((flag & FLAG_FORWARD_PROGRESS) || !(flag&FLAG_NOT_DUP)) 3247 if ((flag & FLAG_FORWARD_PROGRESS) || !(flag&FLAG_NOT_DUP))
diff --git a/net/ipv4/tcp_lp.c b/net/ipv4/tcp_lp.c
index e7f5ef92cbd8..ce3c41ff50b2 100644
--- a/net/ipv4/tcp_lp.c
+++ b/net/ipv4/tcp_lp.c
@@ -115,12 +115,12 @@ static void tcp_lp_init(struct sock *sk)
115 * Will only call newReno CA when away from inference. 115 * Will only call newReno CA when away from inference.
116 * From TCP-LP's paper, this will be handled in additive increasement. 116 * From TCP-LP's paper, this will be handled in additive increasement.
117 */ 117 */
118static void tcp_lp_cong_avoid(struct sock *sk, u32 ack, u32 in_flight, int flag) 118static void tcp_lp_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
119{ 119{
120 struct lp *lp = inet_csk_ca(sk); 120 struct lp *lp = inet_csk_ca(sk);
121 121
122 if (!(lp->flag & LP_WITHIN_INF)) 122 if (!(lp->flag & LP_WITHIN_INF))
123 tcp_reno_cong_avoid(sk, ack, in_flight, flag); 123 tcp_reno_cong_avoid(sk, ack, in_flight);
124} 124}
125 125
126/** 126/**
diff --git a/net/ipv4/tcp_scalable.c b/net/ipv4/tcp_scalable.c
index be27a33a1c68..2747ec7bfb63 100644
--- a/net/ipv4/tcp_scalable.c
+++ b/net/ipv4/tcp_scalable.c
@@ -15,8 +15,7 @@
15#define TCP_SCALABLE_AI_CNT 50U 15#define TCP_SCALABLE_AI_CNT 50U
16#define TCP_SCALABLE_MD_SCALE 3 16#define TCP_SCALABLE_MD_SCALE 3
17 17
18static void tcp_scalable_cong_avoid(struct sock *sk, u32 ack, 18static void tcp_scalable_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
19 u32 in_flight, int flag)
20{ 19{
21 struct tcp_sock *tp = tcp_sk(sk); 20 struct tcp_sock *tp = tcp_sk(sk);
22 21
diff --git a/net/ipv4/tcp_vegas.c b/net/ipv4/tcp_vegas.c
index 007304e99842..be24d6ee34bd 100644
--- a/net/ipv4/tcp_vegas.c
+++ b/net/ipv4/tcp_vegas.c
@@ -162,14 +162,13 @@ void tcp_vegas_cwnd_event(struct sock *sk, enum tcp_ca_event event)
162} 162}
163EXPORT_SYMBOL_GPL(tcp_vegas_cwnd_event); 163EXPORT_SYMBOL_GPL(tcp_vegas_cwnd_event);
164 164
165static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, 165static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
166 u32 in_flight, int flag)
167{ 166{
168 struct tcp_sock *tp = tcp_sk(sk); 167 struct tcp_sock *tp = tcp_sk(sk);
169 struct vegas *vegas = inet_csk_ca(sk); 168 struct vegas *vegas = inet_csk_ca(sk);
170 169
171 if (!vegas->doing_vegas_now) 170 if (!vegas->doing_vegas_now)
172 return tcp_reno_cong_avoid(sk, ack, in_flight, flag); 171 return tcp_reno_cong_avoid(sk, ack, in_flight);
173 172
174 /* The key players are v_beg_snd_una and v_beg_snd_nxt. 173 /* The key players are v_beg_snd_una and v_beg_snd_nxt.
175 * 174 *
@@ -228,7 +227,7 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack,
228 /* We don't have enough RTT samples to do the Vegas 227 /* We don't have enough RTT samples to do the Vegas
229 * calculation, so we'll behave like Reno. 228 * calculation, so we'll behave like Reno.
230 */ 229 */
231 tcp_reno_cong_avoid(sk, ack, in_flight, flag); 230 tcp_reno_cong_avoid(sk, ack, in_flight);
232 } else { 231 } else {
233 u32 rtt, target_cwnd, diff; 232 u32 rtt, target_cwnd, diff;
234 233
diff --git a/net/ipv4/tcp_veno.c b/net/ipv4/tcp_veno.c
index 8fb2aee0b1a4..d16689e98516 100644
--- a/net/ipv4/tcp_veno.c
+++ b/net/ipv4/tcp_veno.c
@@ -114,14 +114,13 @@ static void tcp_veno_cwnd_event(struct sock *sk, enum tcp_ca_event event)
114 tcp_veno_init(sk); 114 tcp_veno_init(sk);
115} 115}
116 116
117static void tcp_veno_cong_avoid(struct sock *sk, u32 ack, 117static void tcp_veno_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
118 u32 in_flight, int flag)
119{ 118{
120 struct tcp_sock *tp = tcp_sk(sk); 119 struct tcp_sock *tp = tcp_sk(sk);
121 struct veno *veno = inet_csk_ca(sk); 120 struct veno *veno = inet_csk_ca(sk);
122 121
123 if (!veno->doing_veno_now) 122 if (!veno->doing_veno_now)
124 return tcp_reno_cong_avoid(sk, ack, in_flight, flag); 123 return tcp_reno_cong_avoid(sk, ack, in_flight);
125 124
126 /* limited by applications */ 125 /* limited by applications */
127 if (!tcp_is_cwnd_limited(sk, in_flight)) 126 if (!tcp_is_cwnd_limited(sk, in_flight))
@@ -132,7 +131,7 @@ static void tcp_veno_cong_avoid(struct sock *sk, u32 ack,
132 /* We don't have enough rtt samples to do the Veno 131 /* We don't have enough rtt samples to do the Veno
133 * calculation, so we'll behave like Reno. 132 * calculation, so we'll behave like Reno.
134 */ 133 */
135 tcp_reno_cong_avoid(sk, ack, in_flight, flag); 134 tcp_reno_cong_avoid(sk, ack, in_flight);
136 } else { 135 } else {
137 u32 rtt, target_cwnd; 136 u32 rtt, target_cwnd;
138 137
diff --git a/net/ipv4/tcp_yeah.c b/net/ipv4/tcp_yeah.c
index c107fba7430e..e03b10183a8b 100644
--- a/net/ipv4/tcp_yeah.c
+++ b/net/ipv4/tcp_yeah.c
@@ -69,8 +69,7 @@ static void tcp_yeah_pkts_acked(struct sock *sk, u32 pkts_acked, s32 rtt_us)
69 tcp_vegas_pkts_acked(sk, pkts_acked, rtt_us); 69 tcp_vegas_pkts_acked(sk, pkts_acked, rtt_us);
70} 70}
71 71
72static void tcp_yeah_cong_avoid(struct sock *sk, u32 ack, 72static void tcp_yeah_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
73 u32 in_flight, int flag)
74{ 73{
75 struct tcp_sock *tp = tcp_sk(sk); 74 struct tcp_sock *tp = tcp_sk(sk);
76 struct yeah *yeah = inet_csk_ca(sk); 75 struct yeah *yeah = inet_csk_ca(sk);