diff options
author | Eric Dumazet <edumazet@google.com> | 2020-05-01 07:07:41 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-05-04 11:56:17 -0700 |
commit | 39d010504e6b4485d7ceee167743620dd33f4417 (patch) | |
tree | 96c551bbdb2fba46d2a0bd951edd8a0a079ea1ed /net/core/devlink.c | |
parent | bf6dba76d278d296b385b436d3ac7de56c190d44 (diff) | |
download | linux-39d010504e6b4485d7ceee167743620dd33f4417.tar.bz2 |
net_sched: sch_fq: add horizon attribute
QUIC servers would like to use SO_TXTIME, without having CAP_NET_ADMIN,
to efficiently pace UDP packets.
As far as sch_fq is concerned, we need to add safety checks, so
that a buggy application does not fill the qdisc with packets
having delivery time far in the future.
This patch adds a configurable horizon (default: 10 seconds),
and a configurable policy when a packet is beyond the horizon
at enqueue() time:
- either drop the packet (default policy)
- or cap its delivery time to the horizon.
$ tc -s -d qd sh dev eth0
qdisc fq 8022: root refcnt 257 limit 10000p flow_limit 100p buckets 1024
orphan_mask 1023 quantum 10Kb initial_quantum 51160b low_rate_threshold 550Kbit
refill_delay 40.0ms timer_slack 10.000us horizon 10.000s
Sent 1234215879 bytes 837099 pkt (dropped 21, overlimits 0 requeues 6)
backlog 0b 0p requeues 6
flows 1191 (inactive 1177 throttled 0)
gc 0 highprio 0 throttled 692 latency 11.480us
pkts_too_long 0 alloc_errors 0 horizon_drops 21 horizon_caps 0
v2: fixed an overflow on 32bit kernels in fq_init(), reported
by kbuild test robot <lkp@intel.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/devlink.c')
0 files changed, 0 insertions, 0 deletions