• Eric Dumazet's avatar
    fq_codel: implement L4S style ce_threshold_ect1 marking · e72aeb9e
    Eric Dumazet authored
    Add TCA_FQ_CODEL_CE_THRESHOLD_ECT1 boolean option to select Low Latency,
    Low Loss, Scalable Throughput (L4S) style marking, along with ce_threshold.
    
    If enabled, only packets with ECT(1) can be transformed to CE
    if their sojourn time is above the ce_threshold.
    
    Note that this new option does not change rules for codel law.
    In particular, if TCA_FQ_CODEL_ECN is left enabled (this is
    the default when fq_codel qdisc is created), ECT(0) packets can
    still get CE if codel law (as governed by limit/target) decides so.
    
    Section 4.3.b of current draft [1] states:
    
    b.  A scheduler with per-flow queues such as FQ-CoDel or FQ-PIE can
        be used for L4S.  For instance within each queue of an FQ-CoDel
        system, as well as a CoDel AQM, there is typically also ECN
        marking at an immediate (unsmoothed) shallow threshold to support
        use in data centres (see Sec.5.2.7 of [RFC8290]).  This can be
        modified so that the shallow threshold is solely applied to
        ECT(1) packets.  Then if there is a flow of non-ECN or ECT(0)
        packets in the per-flow-queue, the Classic AQM (e.g.  CoDel) is
        applied; while if there is a flow of ECT(1) packets in the queue,
        the shallower (typically sub-millisecond) threshold is applied.
    
    Tested:
    
    tc qd replace dev eth1 root fq_codel ce_threshold_ect1 50usec
    
    netperf ... -t TCP_STREAM -- K dctcp
    
    tc -s -d qd sh dev eth1
    qdisc fq_codel 8022: root refcnt 32 limit 10240p flows 1024 quantum 9212 target 5ms ce_threshold_ect1 49us interval 100ms memory_limit 32Mb ecn drop_batch 64
     Sent 14388596616 bytes 9543449 pkt (dropped 0, overlimits 0 requeues 152013)
     backlog 0b 0p requeues 152013
      maxpacket 68130 drop_overlimit 0 new_flow_count 95678 ecn_mark 0 ce_mark 7639
      new_flows_len 0 old_flows_len 0
    
    [1] L4S current draft:
    https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-l4s-archSigned-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
    Cc: Tom Henderson <tomh@tomh.org>
    Cc: Bob Briscoe <in@bobbriscoe.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e72aeb9e
codel.h 5.74 KB