]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/blob - doc/canprio/qdiscs_review.txt
Added some more information to qdisc review.
[lisovros/iproute2_canprio.git] / doc / canprio / qdiscs_review.txt
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2   Required functionality vs. Available solutions
3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4
5 Classification
6 ==============
7 * u32
8   -- pros: Seems to be quite versatile.
9   -- cons: Difficult to write rules (i.e. exact byte values).
10            Possibly problems with different endianess?
11
12 * Canprio (!)
13   -- pros: CAN specific filter.
14
15
16 Priority queues
17 ===============
18 * Prio (!)
19   -- pros: Classfull.
20
21 * pfifo_fast
22   -- cons: Classless (contains so called Bands).
23            Packets are classified accordint their TOS bits or assigned (from 
24              socket() syscall?) priority.
25
26 Throttling
27 ==========
28 * TBF (!)
29   -- pros: Classfull.
30            Peakrate management.
31
32 * HTB (!)
33   -- more info: http://luxik.cdi.cz/~devik/qos/htb/
34   -- pros: Creates hierarchy of restriction rules.
35            Diferentiates between "guaranteed flow rate" and "maximum flow" 
36              (i.e. "ceiling" -- "This limits how much bandwidth class can 
37              borrow").
38
39 * SFB
40   -- more info: http://www.pps.jussieu.fr/~jch/software/sfb/README
41   -- cons: Doesn't treat every flow the same.
42
43   -- Abstract of paper describing general SFB algorithm:
44        This paper describes and evaluates Stochastic Fair Blue (SFB), a
45        novel technique for enforcing fairneas among a large number of
46        flows. SFB scalably detects and rate-timits non-responsive flows
47        through the use of a marking probability derived from the BLUE
48        queue management algorithm and a Bloom filter. Using analysis
49        and simulation, SFB is shown to effectively handle non-responsive
50        flows using an extremely small amount of state information.
51
52   -- README says:
53        Since sfb penalises inelastic flows rather severely, you may want to
54        put another qdisc above sfb to bypass sfb for such flows.  And of
55        course if you're rate-limiting (e.g. using cbq, tbf or htb) you'll
56        want to do that above sfb.
57
58 Round-robin dequeuing
59 =====================
60 * Multiq
61   -- cons: Apparently works only for Intel NICs with hardware support of
62              multiple queues.
63
64 * mq
65   -- cons: Only for NICs with more than 1 TX queues.
66
67 * drr
68   -- cons: Seems to be classful although all classes have to be of type "drr".
69            Manpage says:
70               Like SFQ, DRR is only useful when it owns the queue --  it  is  a  pure
71               scheduler  and  does  not delay packets.  Attaching non-work-conserving
72               qdiscs like tbf to it does not make sense -- other qdiscs in the active
73               list  will  also  become inactive until the dequeue operation succeeds.
74               Embed DRR within another qdisc like HTB or HFSC to ensure it  owns  the
75               queue.
76
77 * CBQ
78   -- cons: Too complex (everybody discourages from using it).
79            Uses Weighted Round Robin for dequeuing -- this behaves in the same 
80               way as "prio" qdisc (i.e. not useful for us).
81
82