Files
Eric Dumazet e4a5e41c0c 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>
Change-Id: Iea51b6104a5420d5c9ed1ea7382cbd53bdb8f4be
2020-12-12 21:36:54 +01:00
..
2012-03-28 18:30:02 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2012-03-28 18:30:02 +01:00
2012-03-28 18:30:02 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2012-03-28 18:30:02 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-12-16 07:20:12 -08:00
2009-04-10 01:48:06 +01:00
2012-03-28 18:30:02 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2011-07-26 16:49:47 -07:00
2012-03-20 21:48:30 +08:00
2009-04-10 01:48:06 +01:00
2011-12-04 16:00:12 +02:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2010-10-07 14:08:55 +01:00
2010-08-14 22:26:51 +02:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2010-06-09 11:12:36 +02:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-09-22 07:17:42 -07:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2011-12-12 13:56:04 +00:00
2011-03-31 11:26:23 -03:00
2009-04-10 01:48:06 +01:00
2010-10-26 16:52:08 -07:00
2009-04-10 01:48:06 +01:00
2012-02-14 12:01:28 -08:00
2011-07-26 16:49:43 -07:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2020-12-12 21:36:54 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2011-03-31 11:26:23 -03:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2012-03-28 18:30:02 +01:00
2009-06-11 09:01:26 -07:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2012-01-03 22:55:17 -05:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2011-05-28 10:48:39 -07:00
2009-04-10 01:48:06 +01:00
2009-04-10 01:48:06 +01:00
2011-03-31 11:26:23 -03:00
2009-04-10 01:48:06 +01:00