mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 15:11:16 +00:00
tcp: consolidate congestion control undo functions
Most TCP congestion controls are using identical logic to undo cwnd except BBR. This patch consolidates these similar functions to the one used currently by Reno and others. Suggested-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4faf783998
commit
f1722a1be1
9 changed files with 9 additions and 103 deletions
|
@ -15,10 +15,6 @@
|
|||
#define TCP_SCALABLE_AI_CNT 50U
|
||||
#define TCP_SCALABLE_MD_SCALE 3
|
||||
|
||||
struct scalable {
|
||||
u32 loss_cwnd;
|
||||
};
|
||||
|
||||
static void tcp_scalable_cong_avoid(struct sock *sk, u32 ack, u32 acked)
|
||||
{
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
|
@ -36,23 +32,13 @@ static void tcp_scalable_cong_avoid(struct sock *sk, u32 ack, u32 acked)
|
|||
static u32 tcp_scalable_ssthresh(struct sock *sk)
|
||||
{
|
||||
const struct tcp_sock *tp = tcp_sk(sk);
|
||||
struct scalable *ca = inet_csk_ca(sk);
|
||||
|
||||
ca->loss_cwnd = tp->snd_cwnd;
|
||||
|
||||
return max(tp->snd_cwnd - (tp->snd_cwnd>>TCP_SCALABLE_MD_SCALE), 2U);
|
||||
}
|
||||
|
||||
static u32 tcp_scalable_cwnd_undo(struct sock *sk)
|
||||
{
|
||||
const struct scalable *ca = inet_csk_ca(sk);
|
||||
|
||||
return max(tcp_sk(sk)->snd_cwnd, ca->loss_cwnd);
|
||||
}
|
||||
|
||||
static struct tcp_congestion_ops tcp_scalable __read_mostly = {
|
||||
.ssthresh = tcp_scalable_ssthresh,
|
||||
.undo_cwnd = tcp_scalable_cwnd_undo,
|
||||
.undo_cwnd = tcp_reno_undo_cwnd,
|
||||
.cong_avoid = tcp_scalable_cong_avoid,
|
||||
|
||||
.owner = THIS_MODULE,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue