net_sched: sch_fq: add dctcp-like marking

Similar to 80ba92fa1a ("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>
This commit is contained in:
Eric Dumazet
2018-11-11 09:11:31 -08:00
committed by David S. Miller
parent c73e5807e4
commit 48872c11b7
2 changed files with 24 additions and 0 deletions

View File

@@ -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 */