Patent ID: 7436765

Claim:
A method for dynamically allocating upstream bandwidth in a passive optical network that includes a central node and at least one remote node, wherein each remote node is coupled to at least one logical entity corresponding to a device or a user; wherein each remote node includes a number of queues, each of which is associated with a logical entity and stores upstream data from the logical entity; and wherein a shared out-going uplink couples the central node to an external network outside of the passive optical network; the method comprising: receiving a request from a remote node for a grant to transmit upstream data from a logical entity associated with the remote node to the central node, wherein the request reports the state of a queue associated with a logical entity; wherein the size of the data to be transmitted does not exceed a transmission threshold assigned to that logical entity; and wherein a logical entity may not request more than what is allowed by the corresponding transmission threshold; if the request satisfies a bandwidth allocation policy, issuing a grant to the remote node to transmit upstream data based on a hierarchical round-robin scheduling, wherein logical entities of a lower priority take turns in transmitting in a slot reserved for lower-priority traffic among the transmission slots for higher-priority traffic, and wherein the slot sizes of a respective priority are limited by the delay bound for that priority; in response to the grant, receiving upstream data from the remote node; storing the received upstream data in a number of FIFO queues, wherein a respective FIFO queue corresponds to a logical entity; and retrieving and transmitting the received upstream data stored in the FIFO queue based on each logical entity's priority classification and/or service level agreement, thereby ensuring that the bandwidth allocated to each logical entity is in compliance with the corresponding service level agreement.