1. A method, comprising: enqueing packet references into a hierarchical packet scheduler, wherein the hierarchical packet scheduler includes one or more levels, each level including one or more schedulers being served by one or more threads, wherein the number of threads serving a particular level is not dependent on the number of schedulers on the particular level; and dequeuing packet references from the hierarchical packet scheduler at a root level scheduler of the one or more schedulers.