• Eric Dumazet's avatar
    net_sched: sch_fq: do not assume EDT packets are ordered · eeb84aa0
    Eric Dumazet authored
    TCP stack makes sure packets for a given flow are monotically
    increasing, but we want to allow UDP packets to use EDT as
    well, so that QUIC servers can use in-kernel pacing.
    
    This patch adds a per-flow rb-tree on which packets might
    be stored. We still try to use the linear list for the
    typical cases where packets are queued with monotically
    increasing skb->tstamp, since queue/dequeue packets on
    a standard list is O(1).
    
    Note that the ability to store packets in arbitrary EDT
    order will allow us to implement later a per TCP socket
    mechanism adding delays (with jitter eventually) and reorders,
    to implement convenient network emulators.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    eeb84aa0
sch_fq.c 23.8 KB