Proposed improvement
When a packet becomes the head of the queue at a leaf
- its virtual arrival time and finish time are computed (based upon its parent’s virtual time)
- if its parent is idle, then the parent is restarted
When a packet becomes the head of the queue at a leaf
- its virtual arrival time and finish time are computed (based upon its parent’s virtual time)
- the parent is restarted
When a node (other than the root) is restarted
- its highest-priority child is selected
- the packet from this child “becomes” the node’s packet
- its virtual arrival time and finish time are computed (based upon its parent’s virtual time)
- if its parent is idle, then the parent is restarted
When the root is restarted
- its highest-priority child is selected
- the packet from this child is transmitted
- all nodes on the path from the transmitted packet’s node to the root are designated idle
- if the transmitted packet’s node is non-empty
* then the next packet is moved to the head of its queue
* else its parent node is restarted
When a node (other than the root) is restarted
- its highest-priority child is selected
- the packet from this child “becomes” the node’s packet
- its virtual arrival time and finish time are computed (based upon its parent’s virtual time)
- the parent is restarted