Flow of packets in a classful queue classful qdisc +-------- |- qdisc1 | write()-> |- qdisc2 | |- qdisc3 +-------- classful qdisc +-------- |- qdisc1 | write()-> |- qdisc2 | |- qdisc3 +-------- filter() determines where to enqueue() classful qdisc +-------- |- qdisc1 | write()-> |- qdisc2 | |* qdisc3 +-------- filter() determines where to enqueue() classful qdisc +----------+ |- qdisc1 | | | write()-> |- qdisc2 | ->dequeue() | | |* qdisc3 | +----------+ filter() determines where to enqueue() classful qdisc +----------+ |- qdisc1 | | | write()-> |- qdisc2 | ->dequeue() | | |* qdisc3 | +----------+ filter() tries dequeue().. determines where to enqueue() classful qdisc +----------+ |- qdisc1 ?| | | write()-> |- qdisc2 | ->dequeue() | | |* qdisc3 | +----------+ filter() tries dequeue().. determines where to enqueue() classful qdisc +----------+ |- qdisc1 ?| | | write()-> |- qdisc2 ?| ->dequeue() | | |* qdisc3 | +----------+ filter() tries dequeue().. determines where to enqueue() classful qdisc +----------+ |- qdisc1 ?| | | write()-> |- qdisc2 ?| ->dequeue() | | |* qdisc3 !| +----------+ filter() tries dequeue().. determines until success! where to enqueue() This is the 'PRIO' qdisc.