Experimental Results for Class-Based Queueing

This paper describes the experience of implementing CBQ's top-level link sharing code as described previously in [FJ95]. This implementation incorporates work from previous implementations of Class-Based Queueing from LBNL [Jac95] and UCL [WGC 95]. This implementation extends the work of previous implementations by incorporating both Top-Level link-sharing and Weighted Round Robin within priority levels of the link-sharing structure. As discussed in [FJ95] and [Flo97], the use of Top-Level instead of Ancestor-Only link-sharing allows a class to receive its allocated bandwidth more accurately from a CBQ implementation. Similarly, as discussed in [FJ95] and [Flo97], weighted round robin (WRR) has two advantages over packet-by-packet round robin (PRR) scheduling within a priority level. First, WRR gives better worst-case delay behavior than PRR scheduling for higher-priority classes. Second, WRR scheduling allows excess bandwidth to be distributed among classes in a priority level according to the bandwidth allocations of those classes.