linux/net/sched
Eric Dumazet eeb84aa0d0 net_sched: sch_fq: do not assume EDT packets are ordered
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: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-05-07 12:09:25 -07:00
..
act_api.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_bpf.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_connmark.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_csum.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_gact.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_ife.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_ipt.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_meta_mark.c net: remove duplicate includes 2017-12-13 13:18:46 -05:00
act_meta_skbprio.c net sched actions: change IFE modules alias names 2017-10-12 22:13:20 -07:00
act_meta_skbtcindex.c net: remove duplicate includes 2017-12-13 13:18:46 -05:00
act_mirred.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_nat.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_pedit.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_police.c net/sched: allow stats updates from offloaded police actions 2019-05-05 21:49:24 -07:00
act_sample.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_simple.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_skbedit.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_skbmod.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_tunnel_key.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_vlan.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_api.c net/sched: add police action to the hardware intermediate representation 2019-05-05 21:49:24 -07:00
cls_basic.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_bpf.c net/sched: add block pointer to tc_cls_common_offload structure 2019-05-05 21:49:24 -07:00
cls_cgroup.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_flow.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_flower.c net/sched: add block pointer to tc_cls_common_offload structure 2019-05-05 21:49:24 -07:00
cls_fw.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_matchall.c net/sched: add block pointer to tc_cls_common_offload structure 2019-05-05 21:49:24 -07:00
cls_route.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_rsvp6.c
cls_rsvp.c
cls_rsvp.h netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_tcindex.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_u32.c net/sched: add block pointer to tc_cls_common_offload structure 2019-05-05 21:49:24 -07:00
em_canid.c net: sched: remove tcf_proto from ematch calls 2014-10-06 18:02:32 -04:00
em_cmp.c
em_ipset.c netfilter: x_tables: move hook state into xt_action_param structure 2016-11-03 10:56:21 +01:00
em_ipt.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
em_meta.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
em_nbyte.c net: sched: em_nbyte: don't add the data offset twice 2018-01-24 14:52:40 -05:00
em_text.c net: Remove state argument from skb_find_text() 2015-02-22 15:59:54 -05:00
em_u32.c
ematch.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
Kconfig net: sched: Kconfig: update reference link for PIE 2019-03-26 11:17:09 -07:00
Makefile tc: Add support for configuring the taprio scheduler 2018-10-04 13:52:23 -07:00
sch_api.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_atm.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_blackhole.c net_sched: blackhole: tell upper qdisc about dropped packets 2018-06-17 08:42:33 +09:00
sch_cake.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_cbq.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_cbs.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_choke.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_codel.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_drr.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_dsmark.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_etf.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_fifo.c net: sched: rename qdisc_destroy() to qdisc_put() 2018-09-25 20:17:35 -07:00
sch_fq_codel.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_fq.c net_sched: sch_fq: do not assume EDT packets are ordered 2019-05-07 12:09:25 -07:00
sch_generic.c net: add a generic tracepoint for TX queue timeout 2019-05-04 00:41:41 -04:00
sch_gred.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_hfsc.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_hhf.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_htb.c sch_htb: redefine htb qdisc overlimits 2019-05-05 21:55:20 -07:00
sch_ingress.c netlink: make nla_nest_start() add NLA_F_NESTED flag 2019-04-27 17:03:44 -04:00
sch_mq.c net: sched: introduce and use qstats read helpers 2019-04-01 14:50:13 -07:00
sch_mqprio.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_multiq.c net: sched: introduce and use qdisc tree flush/purge helpers 2019-04-01 14:50:13 -07:00
sch_netem.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_pie.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_plug.c net: sched: sch: add extack for change qdisc ops 2017-12-21 12:32:50 -05:00
sch_prio.c net: sched: introduce and use qdisc tree flush/purge helpers 2019-04-01 14:50:13 -07:00
sch_qfq.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_red.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_sfb.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_sfq.c net: sch: api: add extack support in tcf_block_get 2017-12-21 12:32:51 -05:00
sch_skbprio.c net/sched: add skbprio scheduler 2018-07-24 14:44:00 -07:00
sch_taprio.c taprio: Add support for cycle-time-extension 2019-05-01 11:58:51 -04:00
sch_tbf.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_teql.c net: sched: sch: add extack for init callback 2017-12-21 12:32:50 -05:00