The present invention relates generally to Passive Optical Networks (PONs), and more particularly to Dynamic Bandwidth Allocation (DBA) methods used in such networks.
The Ethernet PON (EPON) uses 1 gigabit per second (Gpbs) Ethernet transport, and the Gigabit PON (GPON) uses up to 2.5 Gbps of Ethernet transport. Both are suitable for very high-speed data applications, as well as for converged system support (telephone, video, etc.). The unprecedented amount of bandwidth in both is directed toward, and arriving from a single entity, the Optical Network Unit (ONU).
An Optical Line Terminal (OLT) manages remotely the transmission of each ONU. The OLT and the ONUs exchange messages. In each cycle of such an exchange, the OLT grants a grant to each ONU, which is answered by a report message from the ONU. The concept of “cycle” as used herein is explained in detail in PCT application PCT IL03/00702 by Onn Haran et al., filed 26 Aug. 2003, and titled “Methods for dynamic bandwidth allocation and queue management in Ethernet Passive Optical Networks”, which is incorporated herein by reference. The ONU has a queue manager that prepares queue status information, which is transmitted using Multipoint Control Protocol (MPCP) messages to the OLT to enable smart management. In other words, the ONU “informs its internal queues status” to the OLT. The OLT management is executed using a DBA algorithm. An efficient DBA algorithm is essential to guarantee Quality of Service (QoS), required to fulfill a Service Level Agreement (SLA). A SLA typically includes, among other things, a guaranteed BW, which is the BW that is allocated to an ONU whenever the ONU asks for it, regardless of the network load. Operator revenues are expected to increase from selling sophisticated SLAs to customers. High bandwidth utilization allows adding more customers to the network. Thus, an efficient DBA algorithm is an enabler to operator revenues.
Fragmentation loss is the amount of wasted grant time that is not utilized for packet transmission. The subject is also explained in detail in PCT application PCT IL03/00702. The reason for fragmentation is a lack of synchronization between the ONU queue status and the OLT knowledge of queue status. When this happens, the fragmentation can result in empty grant transmission, when the pending packets are larger than the given grant. This effect increases the transmission delay.
The basic existing schemes for reporting and granting cause fragmentation loss by damaging the synchronization between the OLT and an ONU.
Other solutions require processing the reports one by one (“greedy algorithms”), as depicted in
There is therefore a widely recognized need for, and it would be highly advantageous to have, a DBA method that aids synchronization between the OLT and each ONU to reduce fragmentation loss and increase overall operation efficiency.
This present invention discloses a new DBA algorithm (method) that aids synchronization between the OLT and ONUs and reduces fragmentation loss in a PON. The method is based on “partial” cycles (or “cycle parts”), most preferably half cycles, with one group of ONUs granted in each partial cycle. An embodiment of such “half cycle division” is presented in detail below. However, while the “half cycle” embodiment is preferred, we emphasize the more general idea that a cycle, which is either predetermined or varying, may be divided into more than two parts, with the algorithm capable of being advantageously applied in such cases too.
The DBA algorithm processes several reports at a time, gaining knowledge of the network's load, as opposed to DBA algorithms that process a single report at a time (e.g. greedy algorithms). The use of half (or more generally 1/N where N≧2) cycles reduce fragmentation by employing a queue freeze mechanism in each ONU. Under this mechanism, each ONU first transmits the data it has already reported and only then transmits the rest of the data, regardless of the time the data entered the ONU queues, rather than starting with the high priority traffic and then moving to the low priority traffic. To allow several allocation sizes without introducing fragmentation loss, an additional mechanism of “threshold reporting” is used. Under this mechanism, the ONU reports its queue capacity in whole frames up to a certain threshold. Upon receiving a grant, the ONU starts by transmitting the data that was reported as “below threshold” data, then transmits the rest of the data that was reported and eventually transmits data that was not reported. Although this mechanism could be used with several thresholds, in the preferred embodiment one threshold suffices.
In addition and advantageously, there is no need for special gates for reports, saving utilization loss due to optical overheads. The elimination of a specific gate for a report is enabled by having a certainty that a grant was processed before a report was issued. In each case, there is no more than a single pending grant, which is based on the latest report.
In some embodiments, the solution presented herein can be also seen as an improvement on a greedy algorithm or an “immediate response algorithm”, where each report is followed immediately by a grant. However and in contrast, the major difference vs. those two algorithm types lies in the added fairness resulting from processing reports of a plurality of ONUs concurrently, rather than processing a report of a single ONU at a time.
According to the present invention there is provided a method for dynamic bandwidth allocation in a PON that includes an OLT functionally coupled to a plurality of ONUs comprising the steps of: in a configuration stage, dividing a predetermined grant cycle into N parts; by the OLT, dividing the plurality of ONUs into N ONU groups; and in each cycle part, concurrently allocating grants to ONUs of one group while having the ONUs of at least one other group send reports and data to the OLT.
In some embodiments of the method, the step of dividing a predetermined grant cycle into N parts includes dividing the predetermined grant cycle into two cycle parts and the step of dividing the plurality of ONUs into N ONU groups includes dividing the plurality of ONUs into two ONU groups.
In some embodiments of the method, the dividing the predetermined grant cycle into two cycle parts includes dividing the predefined cycle into two half cycles.
In some embodiments of the method, the dividing the plurality of ONUs into two ONU groups includes dividing the plurality of ONUs into two fixed ONU groups.
In some embodiments of the method, each ONU has a SLA that includes two services, a guaranteed bandwidth and a best effort bandwidth, and the dividing the plurality of ONUs into two fixed ONU groups includes dividing in a way such that the DBA algorithm can at least allocate the guaranteed BW to all the ONUs of each ONU group.
In some embodiments of the method, the dividing in a way such that the DBA algorithm can at least allocate the guaranteed BW to all the ONUs of each ONU group includes sorting all the ONUs by an ascending order of their guaranteed BW and alternately dividing the sorted ONUs between the two ONU groups.
In some embodiments of the method, the alternately dividing the sorted ONUs between the two ONU groups includes checking if the addition of a remaining ONU to a respective ONU group causes a sum of the guaranteed BW of the ONUs in the respective ONU group to exceed a half line rate.
In some embodiments of the method, if the sum of the guaranteed BW of the ONUs in the respective ONU group exceeds the half line rate, the alternately dividing the sorted ONUs between the two ONU groups includes adding the remaining ONU to both ONU groups.
According to the present invention there is provided a method for dynamic bandwidth allocation in a PON that includes an OLT functionally coupled to a plurality of ONUs, the method comprising the steps of: in a configuration stage, dividing a predetermined grant cycle into two half cycles; by the OLT, dividing the plurality of ONUs into two ONU groups, each ONU having a SLA; and in each half cycle, allocating bandwidth (BW) fairly to all the ONUs of each ONU group.
In some embodiments of the method, the step of dividing the plurality of ONUs into two ONU groups includes dividing the ONUs into two fixed ONU groups, wherein the SLA includes a guaranteed BW for each ONU, and wherein the step of allocating BW fairly between the ONUs of each ONU group includes at least allocating the guaranteed BW to all the ONUs of each ONU group.
In some embodiments of the method, the step of dividing the plurality of ONUs into two ONU groups includes sorting all the ONUs into a sorted ONU list by ascending order of their guaranteed BW, and alternately adding ONUs from the sorted list to the two ONU groups.
In some embodiments of the method, the alternately adding ONUs from the sorted list to the two ONU groups includes checking the effect of the addition of a new ONU from the list on a sum of the guaranteed BW of each ONU in a ONU group and comparing the sum with a half line rate value, whereby the decision to add the new ONU to one or both ONU groups depends on the results of the comparison.
In some embodiments of the method, the allocating the guaranteed BW to all the ONUs of each ONU group includes granting each ONU below threshold reports as long as the guaranteed BW in the SLA is not exceeded.
In some embodiments of the method, the step of allocating BW fairly between the ONUs of each ONU group further includes allocating a remaining BW to at least some of the ONUs of the plurality as a best effort service (BES).
In some embodiments of the method, the allocating a remaining BW to all ONUs of the plurality as a BES includes sorting all ONUs to a list according to a fairness criterion and allocating the remaining BW following an order of ONUs on the list.
In some embodiments of the method, the method further comprises the step of checking if any of the ONUs in either ONU group has changed its status, and if yes, re-dividing the plurality of ONUs into two new ONU groups and repeating the step of, in each half cycle, allocating BW fairly to all the ONUs of each ONU group.
According to the present invention there is provided a method for dynamic bandwidth allocation in PON that includes an OLT functionally coupled to a plurality of ONUs comprising the steps of: accumulating R ONU reports, where R≧2; checking if the accumulated reports are in condition for processing; and if yes, processing reports according to a given criterion.
In some embodiments of the method, the step of checking includes checking if all the ONUs of a selected ONU group have their reports on the list and, if yes, performing the step of processing by concurrently allocating grants to the ONUs of the selected ONU group while having the ONUs of at least one other ONU group send reports and data to the OLT.
The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein:
a shows the major steps of the “1/N part cycle” DBA method of the present invention.
b shows schematically a reporting and granting scheme according to the “1/N cycle” DBA method of the present invention, where N=2;
c shows the reporting and granting scheme of
d shows schematically a reporting and granting scheme according to the “1/N cycle” DBA method of the present invention, where N>2;
e shows the reporting and granting scheme of
f presents an alternative embodiment of the DBA algorithm of the present invention.
The DBA method of the present invention comprises in the most general sense three steps. In a configuration stage (not shown) a predefined grant cycle is divided by the OLT into N part cycles. Preferably N=2. In alternative embodiments, N is greater than 2. When N=2, the parts are preferably equal, i.e. “half cycles”. The following description relates to this “half cycle” embodiment.
In
In a preferred embodiment, the ONUs are divided in step 300 into two fixed groups. Other embodiments (see e.g.
For the example shown in
In the preferred embodiment, the SLA of each ONU comprises two services: a “guaranteed” BW, which is given to the ONU upon request, regardless of the network's load, and a “best effort” BW, which limits the BW that can be given to the ONU when the network is not loaded. Both services are enforced over time, rather than over a specific cycle.
Throughout the description of the preferred embodiment, we use a convention that transforms BW and rates into actual transmission grant sizes. As an example, assuming a fixed DBA algorithm cycle of n Time Quanta (TQ) and a half cycle of n/2 TQ, a rate of X Mbps (out of a total line rate of 1 Gbps in EPON technology) is equivalent to transmission of X/1000*n TQ in each cycle. According to the same convention, whenever the DBA algorithm starts processing the reports, it has n/2 TQ to allocate, which is equivalent to 0.5 Gbps. For example, if the cycle size is 1000 TQ, an ONU whose SLA allows it to transmit 100 Mbps should be allocated an average of 100 Mbps/1000 Mbps*1000 TQ=100 TQ per cycle (or every second half cycle), in order to transmit at the desired rate. Whenever the DBA algorithm starts running, it allocates the next 500TQ.
d, e show schematically an embodiment of the DBA algorithm of the present invention with a predefined grant cycle divided into more than two parts (1/N cycles where N>2). The ONUs are divided here into k groups, where k>2. In each 1/N cycle part, ONUs of one group transmit their data and reports while the DBA algorithm processes allocations for the other groups.
f presents an alternative embodiment of the DBA algorithm of the present invention. This embodiment represents an improvement on a greedy algorithm or an immediate response algorithm. In this case, there is no implicit division of ONUs into groups, but rather a phase of accumulating the reports, represented by steps 340-344. In step 340, the algorithm waits for a next report. When the report arrives, it is added to a list in step 342, and a condition necessary for processing is checked in step 344. In the preferred embodiment, the condition checked is based on the division of ONUs into groups, as described in step 300. The condition is fulfilled (yes) once all the ONUs of one group have sent their reports, i.e. all their reports have been accumulated in the list. However, alternative embodiments of this step can be implemented without a strict definition of groups. For example, the condition in step 344 can be the arrival of R reports at the OLT (i.e. the processing start once R reports have accumulated). Note that the special case of R=1 reduces the alternative embodiment to a greedy algorithm, in which each report is triggered individually. Once the condition is fulfilled (yes), the DBA processes all the reports that were accumulated in the list in step 346. The processing preferably follows the procedure in step 302, wherein the “group” of ONUs in step 302 is the list of ONUs whose reports were accumulated in step 342.
Division of ONUs into Groups (Step 300)
As mentioned, in the preferred embodiment, the cycle is divided into half cycles. Ideally, the DBA algorithm will be able to allocate the BW fairly to all the ONUs of the same group within the same half cycle without violating their SLA. However, in case of uneven load (in which, for example, ONUs of one group have more data to transmit that the ONUs of the other group), this may not be possible. Therefore, the ONUs are preferably divided into groups in a way such that the DBA algorithm can at least allocate the guaranteed BW to all the ONUs of each group. Note however that this requirement is not essential, and other divisions, in which this requirement is not fulfilled, are also possible.
As an example of the entire process in
Allocation of Grants for a Half Cycle (Step 302)
To reduce fragmentation loss, the ONUs preferably report using threshold reporting and queue freezing mechanisms, where the report is of the queue capacity in whole packets up to a certain threshold. Such threshold reporting and queue freezing mechanisms are well known in the art. In the preferred embodiment, there are two numbers in the report—the “below threshold” report mentioned above and the total queue capacity. However, it would be apparent to one skilled in the art that there can be many alternative methods for such reporting schemes. When the ONU transmits data, it starts with the data that was reported in the “below threshold” report then transmits the data that was reported in the total queue capacity report, and eventually transmits data that entered the queue after the last report was issued.
This allocation mechanism is described in detail in
Following step 500, the BW that was not allocated yet is allocated as a Best Effort Service (BES). All ONUs from both groups are considered for the BES. The exact way of allocating the BW is chosen according to a desired definition of fairness. However, to reduce fragmentation loss, the BES is preferably given to as few ONUs as possible. In step 502 the ONUs of both groups are sorted again to one list according to the fairness preference of the DBA. Preferably, the criteria for sorting the ONUs is the ratio of the number of transmitted bytes over a recent history divided by the guaranteed BW, as it appears in the SLA. The list is sorted such that the first ONU in the list is the one for which this ratio is lowest. Other criteria for this sorting procedure can be based on the past transmission rates of the ONU, its SLA or any other criteria.
In step 504, a check is run to see if there are still ONUs that did not receive BES. If there are such ONUs (yes) a second check is run in step 506 to see if there is still unallocated BW in the half cycle. If there is (yes), the next ONU from the list receives its BES in step 508, based on its report of total queue capacity, and the process loops back to step 504. If the answer is (no) in either one of checks 504 or 506, the process ends. To enforce a BES as decided in the SLA, the request of each ONU is preferably clipped by a leaky bucket mechanism and by the amount of the remaining TQ to be allocated in the half cycle. Preferably, there is one leaky bucket for each ONU for the sake of BES. Each ONU's respective leaky bucket value decrease rate is the rate of the BES, as decided in the SLA, and each ONU's respective leaky bucket value increase rate is the total grant given to the specific ONU. Alternative embodiments may include other SLA enforcement mechanisms, or not include any such mechanism, if there is no Best Effort indication in the SLA definition.
All patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention.
While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IL2006/000088 | 1/22/2006 | WO | 00 | 4/20/2009 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2006/106499 | 10/12/2006 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5499244 | Mosch et al. | Mar 1996 | A |
20040008703 | Kim et al. | Jan 2004 | A1 |
20040057462 | Lim et al. | Mar 2004 | A1 |
20040264963 | Kani et al. | Dec 2004 | A1 |
20060133809 | Chow et al. | Jun 2006 | A1 |
20080181248 | Haran et al. | Jul 2008 | A1 |
20090213874 | Levit | Aug 2009 | A1 |
Number | Date | Country |
---|---|---|
WO2006006499 | Oct 2006 | WO |
Number | Date | Country | |
---|---|---|---|
20090213874 A1 | Aug 2009 | US |
Number | Date | Country | |
---|---|---|---|
60667768 | Apr 2005 | US |