diff options
author | Eric Dumazet <edumazet@google.com> | 2018-11-11 09:11:31 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-11 13:59:21 -0800 |
commit | 48872c11b77271ef9b070bdc50afe6655c4eb9aa (patch) | |
tree | cebc970abf4ab61ae117ef21b18a3b967eb9a481 /include | |
parent | c73e5807e4f6fc6d373a5db55b45f639f8bb6328 (diff) | |
download | linux-48872c11b77271ef9b070bdc50afe6655c4eb9aa.tar.bz2 |
net_sched: sch_fq: add dctcp-like marking
Similar to 80ba92fa1a92 ("codel: add ce_threshold attribute")
After EDT adoption, it became easier to implement DCTCP-like CE marking.
In many cases, queues are not building in the network fabric but on
the hosts themselves.
If packets leaving fq missed their Earliest Departure Time by XXX usec,
we mark them with ECN CE. This gives a feedback (after one RTT) to
the sender to slow down and find better operating mode.
Example :
tc qd replace dev eth0 root fq ce_threshold 2.5ms
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/uapi/linux/pkt_sched.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h index 89ee47c2f17d..ee017bc057a3 100644 --- a/include/uapi/linux/pkt_sched.h +++ b/include/uapi/linux/pkt_sched.h @@ -864,6 +864,8 @@ enum { TCA_FQ_LOW_RATE_THRESHOLD, /* per packet delay under this rate */ + TCA_FQ_CE_THRESHOLD, /* DCTCP-like CE-marking threshold */ + __TCA_FQ_MAX }; @@ -882,6 +884,7 @@ struct tc_fq_qd_stats { __u32 inactive_flows; __u32 throttled_flows; __u32 unthrottle_latency_ns; + __u64 ce_mark; /* packets above ce_threshold */ }; /* Heavy-Hitter Filter */ |