aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2013-09-24 11:20:52 -0400
committerDavid S. Miller <davem@davemloft.net>2013-09-28 18:35:41 -0400
commit62748f32d501f5d3712a7c372bbb92abc7c62bc7 (patch)
tree847a6e4b66aaf012809ff8656476743e738f1a2b /net/ipv4/tcp_input.c
parent4aa0a03f519812f48ac48d046bc451e97649ec82 (diff)
net: introduce SO_MAX_PACING_RATE
As mentioned in commit afe4fd062416b ("pkt_sched: fq: Fair Queue packet scheduler"), this patch adds a new socket option. SO_MAX_PACING_RATE offers the application the ability to cap the rate computed by transport layer. Value is in bytes per second. u32 val = 1000000; setsockopt(sockfd, SOL_SOCKET, SO_MAX_PACING_RATE, &val, sizeof(val)); To be effectively paced, a flow must use FQ packet scheduler. Note that a packet scheduler takes into account the headers for its computations. The effective payload rate depends on MSS and retransmits if any. I chose to make this pacing rate a SOL_SOCKET option instead of a TCP one because this can be used by other protocols. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Steinar H. Gunderson <sesse@google.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r--net/ipv4/tcp_input.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 5d083855c111..66aa816ad30b 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -735,7 +735,7 @@ static void tcp_update_pacing_rate(struct sock *sk)
735 if (tp->srtt > 8 + 2) 735 if (tp->srtt > 8 + 2)
736 do_div(rate, tp->srtt); 736 do_div(rate, tp->srtt);
737 737
738 sk->sk_pacing_rate = min_t(u64, rate, ~0U); 738 sk->sk_pacing_rate = min_t(u64, rate, sk->sk_max_pacing_rate);
739} 739}
740 740
741/* Calculate rto without backoff. This is the second half of Van Jacobson's 741/* Calculate rto without backoff. This is the second half of Van Jacobson's