linux/arch
Eric Dumazet 62748f32d5 net: introduce SO_MAX_PACING_RATE
As mentioned in commit afe4fd0624 ("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>
2013-09-28 15:35:41 -07:00
..
alpha net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
arc Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
arm ARM: dts: am33xx: adopt to cpsw-phy-sel driver to configure phy mode 2013-09-24 10:33:07 -04:00
arm64 arm64: Widen hwcap to be 64 bit 2013-09-20 09:56:07 +01:00
avr32 net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
blackfin Merge branch 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-09-13 07:31:38 -07:00
c6x Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
cris net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
frv net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
h8300 net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
hexagon Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
ia64 net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
m32r net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
m68k Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
metag Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
microblaze Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
mips net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
mn10300 net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
openrisc Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
parisc net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
powerpc net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
s390 net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
score Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
sh Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
sparc net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
tile tile: remove stray blank space 2013-09-16 15:47:32 -04:00
um Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
unicore32 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
x86 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-18 11:26:17 -05:00
xtensa net: introduce SO_MAX_PACING_RATE 2013-09-28 15:35:41 -07:00
.gitignore
Kconfig