diff options
| author | Eric Dumazet <edumazet@google.com> | 2013-09-24 11:20:52 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-09-28 18:35:41 -0400 |
| commit | 62748f32d501f5d3712a7c372bbb92abc7c62bc7 (patch) | |
| tree | 847a6e4b66aaf012809ff8656476743e738f1a2b /arch/sparc/include | |
| parent | 4aa0a03f519812f48ac48d046bc451e97649ec82 (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 'arch/sparc/include')
| -rw-r--r-- | arch/sparc/include/uapi/asm/socket.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sparc/include/uapi/asm/socket.h b/arch/sparc/include/uapi/asm/socket.h index 4e1d66c3ce71..0f21e9a5ca18 100644 --- a/arch/sparc/include/uapi/asm/socket.h +++ b/arch/sparc/include/uapi/asm/socket.h | |||
| @@ -72,6 +72,8 @@ | |||
| 72 | 72 | ||
| 73 | #define SO_BUSY_POLL 0x0030 | 73 | #define SO_BUSY_POLL 0x0030 |
| 74 | 74 | ||
| 75 | #define SO_MAX_PACING_RATE 0x0031 | ||
| 76 | |||
| 75 | /* Security levels - as per NRL IPv6 - don't actually do anything */ | 77 | /* Security levels - as per NRL IPv6 - don't actually do anything */ |
| 76 | #define SO_SECURITY_AUTHENTICATION 0x5001 | 78 | #define SO_SECURITY_AUTHENTICATION 0x5001 |
| 77 | #define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002 | 79 | #define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002 |
