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
..
2011-03-31 11:26:23 -03:00
2011-12-27 13:17:34 -05:00
2011-09-27 18:08:04 +02:00
2010-12-16 18:10:56 +00:00
2011-12-07 22:02:48 +00:00
2012-03-28 18:30:02 +01:00
2012-03-05 15:20:51 -05:00
2012-01-14 13:05:21 -08:00
2011-09-24 01:44:41 +02:00
2011-12-08 10:42:15 +00:00
2011-12-07 22:03:45 +00:00
2011-07-25 17:26:55 +01:00
2011-03-31 11:26:23 -03:00
2011-12-07 22:03:45 +00:00
2012-04-27 00:12:48 +01:00
2011-05-19 09:55:43 +01:00
2011-07-25 17:26:55 +01:00
2011-07-25 17:26:55 +01:00
2011-07-25 17:26:55 +01:00
2011-12-07 22:04:55 +00:00
2011-09-17 02:40:36 +02:00
2011-07-25 17:26:53 +01:00
2011-07-25 17:26:53 +01:00
2011-12-07 22:04:56 +00:00
2011-12-07 22:03:29 +00:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2012-03-28 18:30:02 +01:00
2011-04-06 06:19:38 -07:00
2011-04-06 06:19:38 -07:00
2019-08-05 14:20:47 +02:00
2012-03-28 18:30:02 +01:00
2011-03-23 19:46:22 -07:00
2011-12-07 22:03:18 +00:00
2011-12-07 22:03:45 +00:00
2011-12-07 22:04:03 +00:00
2011-05-10 18:15:24 +01:00
2011-10-20 15:00:18 +01:00
2011-05-10 18:15:24 +01:00
2012-03-28 18:30:02 +01:00
2011-10-28 14:58:53 +02:00
2011-01-18 19:30:22 +01:00
2012-01-11 15:42:31 +01:00
2010-10-29 19:08:31 +01:00
2012-03-28 16:36:32 +02:00
2012-03-28 18:30:02 +01:00
2010-12-16 18:10:54 +00:00
2011-03-17 13:08:27 -03:00
2012-03-28 18:30:02 +01:00
2011-07-25 17:26:53 +01:00
2011-07-21 14:10:00 +02:00
2011-03-11 12:23:31 +01:00
2011-12-07 22:03:44 +00:00
2011-07-20 23:12:10 +01:00
2011-12-07 22:03:17 +00:00
2012-03-20 21:48:30 +08:00
2011-12-07 22:03:45 +00:00
2011-07-26 16:49:47 -07:00
2011-01-18 19:30:23 +01:00
2011-10-20 15:00:19 +01:00
2011-02-17 14:16:30 -08:00
2012-01-03 22:55:18 -05:00
2012-02-24 09:47:23 -07:00
2011-03-31 11:26:23 -03:00
2019-08-05 14:20:47 +02:00
2011-12-12 13:52:27 +00:00
2011-12-07 22:04:03 +00:00
2011-07-26 16:49:47 -07:00
2011-01-13 08:03:07 -08:00
2011-01-18 19:30:21 +01:00
2011-10-20 15:00:18 +01:00
2011-12-07 22:03:18 +00:00
2012-03-23 16:58:42 -07:00
2012-04-27 17:16:29 +01:00
2012-01-11 15:42:31 +01:00
2011-03-31 11:26:23 -03:00
2012-02-20 18:33:18 +01:00
2012-02-23 20:19:04 -07:00
2011-03-14 21:07:26 +01:00
2012-01-11 15:41:47 +01:00
2010-10-29 19:08:53 +01:00
2019-08-05 14:20:47 +02:00
2012-02-14 12:01:29 -08:00
2012-03-28 18:30:02 +01:00
2011-10-20 15:00:18 +01:00
2012-01-17 16:41:31 -08:00
2011-04-06 06:19:38 -07:00
2011-10-24 23:34:27 +01:00
2012-03-28 18:30:02 +01:00
2011-04-06 06:19:38 -07:00
2011-04-06 06:19:38 -07:00
2011-03-31 11:26:23 -03:00
2011-07-20 23:12:11 +01:00
2011-07-26 16:49:47 -07:00
2011-07-20 23:12:10 +01:00
2020-12-12 21:36:54 +01:00
2011-03-25 18:45:13 +01:00
2011-09-21 17:54:02 +02:00
2011-06-15 14:35:33 +02:00
2011-05-24 23:35:55 +02:00
2012-03-28 18:30:02 +01:00
2011-11-21 12:32:25 -08:00
2011-02-21 13:33:50 -08:00
2011-12-07 22:01:45 +00:00
2011-12-07 22:03:18 +00:00
2012-01-14 18:03:30 -08:00
2010-10-29 19:08:53 +01:00
2011-07-26 06:47:36 +01:00
2011-11-09 00:07:56 +00:00
2011-03-31 11:26:23 -03:00