• Eric Dumazet's avatar
    net: introduce SO_MAX_PACING_RATE · 62748f32
    Eric Dumazet authored
    As mentioned in commit afe4fd06 ("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: default avatarEric Dumazet <edumazet@google.com>
    Cc: Steinar H. Gunderson <sesse@google.com>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    62748f32
socket.h 1.85 KB