cbq2.1 This release of CBQ (Class Based Queueing) implements many new features. It implements Top-Level link-sharing as opposed to Ancestor-Only link sharing as in the previous release. It also implements Weighted-Round Robin within scheduling priority levels. Also implemented is a rather simplistic user-level scheduling daemon that enables experimentation with creation of various link-sharing scenarios. The CBQ scheduling module and the CBQ daemon implement a user/kernel interface that allows for the creation/deletion of classes and the create/deletion of simplistic packet filters. Kernel Files: usr/src/uts/common/inet/rm_class.c: Implements the CBQ link-sharing scheduler. usr/src/uts/common/inet/cbqddi.c: Wrapper for CBQ module/driver for solaris device driver. usr/src/uts/common/inet/cbq.c: Implements CBQ user/kernel interface for CBQ module. usr/src/uts/common/inet/cbq_class.c: Implements the CBQ simplistic packet classifier. usr/src/uts/common/inet/mi.c: utility routines for solaris inet drivers. usr/src/uts/common/inet/mi.h: utility routine header files. usr/src/uts/common/inet/pktsched.c: Prototype DLPI packet scheduler registration routines. usr/src/uts/common/netinet/cbq.h: User/kernel packet scheduler interface. usr/src/uts/common/netinet/rm_class.h: Packet scheduler header file. usr/src/uts/common/netinet/rm_class_debug.h: Implement CBQ trace facility for Solaris. usr/src/uts/common/netinet/pktsched.h: DLPI packet scheduler registration. User level files: usr/src/cmd/cmd-inet/usr.sbin/cbqd/cbqd.c: Implements simple user level daemon that parses a configuration file and runs the link-sharing structures. usr/src/cmd/cmd-inet/usr.sbin/cbq/cbqd.h: header files defining functions in cbqif.c. usr/src/cmd/cmd-inet/usr.sbin/cbq/cbq_config.c: Routine to parse cbq configuration files. usr/src/cmd/cmd-inet/usr.sbin/cbq/cbqif.c: Routines to create classes and filters and pass to the kernel module. usr/src/cmd/cmd-inet/usr.sbin/cbq/cbq.conf: Example cbq configuration file. Bug Fixes: ========= - July, 1998 - several bugfixes related to link-sharing and TCP flows. Reported by Bob Lindel (llindel@isi.edu). Copyright notices updated. - Dec 4th, 1997 reported by Sally Floyd , Link-sharing was temporarily broken. Corrected setting of the cutoff variable in rmc_updata_class_util. - Oct 13th, 1997, reported by Michael Speer , calculation for offtime, maxidle incorrect. - Oct 3rd, 1997, reported by Richard Jones : rmc_delete_class removes the wrong class when there is two or more classes in the same priority level. - Sept 12th, 1997, reported by Nick.Farrow@bt-sys.bt.co.uk. netinet/rm_class.h: RM_POWER had been defined to be (2 ^ RM_FILTER_GAIN) which is (2 XOR RM_FILTER_GAIN), instead of 2 to the power of RM_FILTER_GAIN. - Sept 11th, 1997, reported by Michael Speer. Fixed overlimit class sleep problem. Classes using rmc_delay_action where sleeping to short a period of time. - Sally Floyd and Michael F. Speer