Passive optical networks are currently used in telecommunications to provide network services to end users. Passive optical networks, as used in current practice, typically include a service provider network, content server network, optical line terminal, multiplexer/demultiplexer, optical network units or terminals, and end user equipment connected via interconnections by optical fiber. Implementation of currently used passive optical networks has been expensive and is widely used. Therefore, continued use of currently used passive optical networks in future network designs would be cost effective.
The summary that follows describes some of the example embodiments included in this disclosure. The information is proffered to provide a fundamental level of comprehension of aspects of this disclosure.
An example embodiment of the present invention includes a method and apparatus for managing traffic flow through a network node comprising: a traffic module, a dedicated forwarding database, a virtual forwarding database, and at least one interface.
In an example embodiment of the present invention, the traffic module may be configured to manage locations of at least one identifier in a complementary group based on at least one parameter associated with the at least one identifier or at least one parameter associated with the traffic flow with which the at least one identifier is associated. The dedicated forwarding database may be coupled to the traffic module and configured to receive from the traffic module a maximum number of the at least one parameter associated with the identifier or associated with the traffic flow with which the at least one identifier is associated. The virtual forwarding database may be coupled to the traffic module and configured to receive from the traffic module at least one parameter associated with the identifier or associated with the traffic flow with which the identifier is associated that is more than a maximum number supported by the dedicated forwarding database. The at least one interface may be in communication with the dedicated forwarding database and the virtual forwarding database to transmit optical signals in a downstream direction to at least one end user and to receive optical signals in an upstream direction from at least one end user.
In another example embodiment, the at least one parameter associated with the identifier includes one of the following parameters: priority of channel or aging. The at least one parameter associated with traffic flow with which the identifier is associated includes one of the following parameters: bandwidth, latency, throughput per virtual forwarding database entry, jitter, number of times either the dedicated or virtual forwarding database limit is exceeded, or average number of entries over a period of time. Managing the locations of identifiers may be based on one of the following: resource availability of the forwarding databases, resources of a manager of the forwarding databases, or information received in an upstream/downstream location.
In an example embodiment, the traffic module may be a central processing unit. The central processing unit may store and process a sorting algorithm and send entries to the dedicated or virtual forwarding databases. The dedicated and virtual forwarding databases may be in communication with one another.
Another example embodiment may further include a router to store a routing table and send entries to the traffic module or to the dedicated or virtual forwarding databases.
In another example embodiment, an end user may pay a fee to receive information from a service provider network. The requested information may include the following: information about the dedicated or virtual forwarding databases, traffic flow, at least one parameter associated with the identifiers, at least one parameter associated with the traffic flow with which the identifiers are associated, or resource availability of the dedicated or virtual forwarding databases. The end user/subscriber may submit a query to the service provider network. Then, the service provider network may collect fees from the end user and provide a response. The collection of fees could include the following forms of payment: subscription fees, single usage fees, and the like.
“Identifiers” may include at least one of the following: Media Access Control (MAC) addresses of an existing device, channel containing the traffic, the traffic itself, source or destination, multicast, unicast, Internet Protocol addresses, ports, virtual local area network, and Gigabit Passive Optical Network (GPON) evaluation mode ports identifier. The interfaces may include one of the following interfaces: serial, Ethernet, wireless, fiber optic, coaxial, or universal serial bus.
The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention.
A description of example embodiments of the invention follows.
Network services provided through the current use of passive optical networks include telephone, cable television, and the Internet. Each optical network unit or terminal contains a dedicated forwarding database that sends packets of network services through the network. The dedicated forwarding database has certain limitations. One limitation is the number of entries available. Once the dedicated forwarding database is full, the end user will not receive network services that are unable to be sent through the database. This may result in flooding or the dropping of packets, thereby reducing the number of end users to receive the network services.
Additionally, in current practice, source and destination addresses of traffic flow may be learned by ports (or interfaces) in a passive optical network and aged entries of the traffic flow may be removed from a forwarding database. Searches of a database containing information regarding the traffic of a network, may also be allowed. However, each of the aforementioned examples of passive optical networks as used in current practice suffers from limitations that affect the overall performance of the passive optical network. For example, once an aged entry is removed, it will have to be relearned by the network, which is time-consuming and inefficient.
In contrast, example embodiments of the present invention allow for an increased number of entries within the traffic flow of a network to be sorted, stored, and sent to/received from an end user. Example embodiments do so while reducing the likelihood of dropped entries (or packets) or flooding of packets to network interfaces as well as allowing the end user to receive desired services without noticing problems with his/her service(s) or affecting the number of potential end user(s).
An example embodiment of the present invention employs an ONT 130 that contains a traffic module 140a to manage locations of at least one identifier in a complementary group of dedicated (145a) or virtual (150a) forwarding databases based on at least one parameter associated with the identifier or at least one parameter associated with the traffic flow with which the identifier is associated. The traffic module 140a is in communication 143, 147 with the dedicated forwarding database 145a and the virtual forwarding database 150a. The dedicated forwarding database 145a and the virtual forwarding database 150a may be in communication 151a, 152a, 153a with one another as well. For example, the traffic module 140a may send to the dedicated forwarding database 145a a maximum number of entries associated with an identifier or associated with the traffic flow with which the identifier is associated. The traffic module 140a may send to the virtual forwarding database 150a at least one entry with an identifier or associated with the traffic flow with which the identifier is associated that is more than the maximum number of entries supported by the dedicated forwarding database 145a. The entries are stored in either the dedicated forwarding table 145b of the dedicated forwarding database 145a or the virtual forwarding table 150b of the virtual forwarding database 150a. The dedicated forwarding table 145b, virtual forwarding table 150b, and routing table may store information that identifies an entry/packet, such information may include, but is not limited to, the following: identifier (ID), age, service (Serv.), location, user activity, event(s).
The ONT 130 may also employ at least one interface (represented as ports (P), e.g., P1155, P2160, and PK 165) that is in communication with the dedicated forwarding database 145a (via optical fiber 146) or virtual forwarding database 150a (via optical fiber 154) to transmit optical signals representing an entry in a downstream direction and to receive optical signals in an upstream direction from at least one end user. Each port may be in communication with an end user via a variety of communication techniques, e.g., set-top boxes (STB) or a personal computer (PC). For example, an interface (P1155) may be in communication 156 with several STBs and end users, such as STB1157a in communication 158a with an end user 159a, STB2157b in communication 158b with an end user 159b, and STB3157c which is in communication 158c with an end user 159c. An interface (P2160) may also be in communication 161 with several PCs and end users, such as PC1162a in communication 163a with end user 164a and PC2162b in communication 163b with end user 164b.
Ultimately, a PON 100 in accordance with an example embodiment of the present invention is able to support a much larger number of end users 159a, 159b, 159c, 164a, 164b that require entries in the ONT's 130 dedicated forwarding database 145a. This is particularly useful for situations in which Internet Protocol Television (IPTV) services begin competing for entries in the dedicated forwarding database 145a. All IPTV streams that are being “watched” or requested by users are maintained. IPTV is a service that provides digital television via means typically associated with computer network technology. For example, IPTV employs real-time data transmission and data-oriented protocol for a network that communicates via packets. As such, if a packet is lost, delays may occur that may reduce connection speed, quality of image displayed, or unreliable data in the packets. A packet may be lost if packets are flooded into the PON 100. The problem of flooding is greatly reduced by employing an example embodiment of the present invention because the addition of a virtual forwarding database 150a allows for the sorting, storing, and retrieval of a larger number of packets.
An example embodiment of the present invention maintains all desired Media Access Control (MAC) addresses in memory and continues aging as needed. Example embodiments of the present invention have several purposes, such as ensuring that the most active MAC entries are always in the dedicated forwarding database 145a. Another example embodiment ensures that only the oldest entries are moved to a virtual forwarding database 150a when there is a need to learn new MAC addresses or alternatively when there is a need to add a forwarding entry associated with IPTV channels. This ensures that IPTV entries remain in a dedicated (e.g., hardware) forwarding database 145a, whereas other entries may be moved between the dedicated forwarding database 145a and the virtual (e.g., software) forwarding database 150a based on user activity (e.g., IPTV activity, existing user activity, new user discovery, etc.). An example embodiment of the present invention ensures that all IPTV MAC entries remain in the hardware forwarding database 145a until the end user (e.g., end user 159a) requests that the entry be removed via a command or through standard clean-up messages. This potentially minimizes the processing by the central processing unit (CPU) for constantly handling large bursts of data that do not exist already in the hardware forwarding database 145a.
Another example embodiment of the present invention installs a software assist utility on the traffic module 140a to allow an existing device 130 (e.g., optical network terminal (ONT), cable modem, etc.) to be able to increase the total number of entries that can be globally supported within the device 130. In this case, from a black-box approach, the external users 159a, 159b, 159c may not be aware that there is only a small dedicated forwarding database 145a with the rest of the entries maintained in a software forwarding database 150a. Entries in the dedicated forwarding database 145a and the virtual forwarding database 150a may be moved from location to location based on different events occurring, e.g., if the dedicated forwarding database 145a only supports a maximum number of entries (MAX1) for IPTV and MAC forwarding entries. Other events that may occur to require moving entries from location to location include, but are not limited to, aging or space becoming available in the dedicated forwarding database 145a. There may be applications where the device 130 (e.g., ONT, cable modem, etc.) is needed to support a larger number (MAX2) of entries (i.e., MAX2 greater than MAX1). However, a current problem for networks is that the dedicated forwarding database 145a is limited to only allow MAX1 entries. This example embodiment resolves this problem by increasing the number of entries that are maintained by the dedicated forwarding database 145a because of the additional entries that may be maintained in the virtual forwarding database 150a.
In another example embodiment of the present invention, the virtual forwarding database is implemented for buffer purposes. Service providers 105 or end users 159a, 159b, 159c may want to know if the dedicated forwarding database 145a has been surpassed. As such, the ONT 130 may declare an alarm/event/notification/warning to the service provider 105, end user 159a, 159b, 159c, or the like when the dedicated forwarding database 145a has been surpassed, or perhaps when the entire virtual forwarding database 150a size has been surpassed, or both. The collected information may be used to determine if the value for MAX2 should be increased (e.g., if the performance of the ONT 130 proves to be able to support such an increase), decreased (e.g., if the performance of the ONT 130 proves to not be able to support such an increase), or other. An example of the ONT 130 not performing very well is if an end user 159a receives bad voice performance, dropped data, bad video, reboots, etc., which may be due to the implementation of a virtual forwarding database 150a on the ONT 130. As such, if the service provider 105 is able to identify and correlate the above performance monitor parameters or alarms with other misbehavior in the ONT 130, then the service provider 105 may relax some of the parameters for the virtual forwarding database 150a (or vice-versa).
Another example embodiment of the present invention allows a third party (e.g., 159a or content provider 111) to submit a request to the service provider 103. For example, an end user (or subscriber) 159a may submit a request 169a to the service provider 103 for an adjustment to the services the end user 159a receives. The service provider 103 may receive a signal 169b from the end user 159a that includes a request 169a for guaranteed throughput. The service provider 103 may collect fees (represented in
The requests 169a, 171a may be for services or information. The end user 159a or content provider 111 may request services, such as guaranteed throughput, maintenance of services in the dedicated (145a) or virtual (150a) forwarding databases, or assurance of the rate or quality of services. A request for information may include, but is not limited to, the following: information about the (i) dedicated (145a) or virtual (150a) forwarding databases, (ii) traffic flow, (iii) at least one parameter associated with the identifiers, (iv) at least one parameter associated with the traffic flow with which the identifiers are associated, or (v) resource availability of the dedicated (145a) or virtual (150a) forwarding databases. The collection of fees may include the following forms of payment: subscription fees, single usage fees, and the like. The use of end user 159a and content provider 111 is for exemplary purposes only and not to limit the type of third party that may be allowed to submit a request in accordance with this example embodiment.
Current practice is based on the IEEE 802.1D standard. As the device 230 learns new MAC addresses, those packets 225 are forwarded by a router 235 that may contain a routing table (not shown) to a CPU 240, and the CPU 240 then adds entries in the dedicated forwarding database 245. The routing table may be used to sort and send the packets 225 to the CPU 240. The CPU 240 may itself store and employ a storing algorithm to sort and direct packets 225 to the dedicated forwarding database 245 or virtual forwarding database 250. In a bridging environment, all future packets may have been learned, so the next time the device 230 receives those “learned” packets 225, the hardware forwarding database 245 forwards those packets 225 instead of re-sending them to the CPU 240. As more and more packets 225 are learned, the dedicated forwarding database 245 fills up. The dedicated forwarding database 245 entries may include the following example entries:
Once the dedicated forwarding database 245 fills up and unknown packets 223 are received, the unknown packets 225 are also forwarded by the router 235 to the CPU 240, and instead of dropping unknown packets 225 (or immediately adding unknown packets 225 to the dedicated forwarding database 245, which is already full), an example embodiment of the present invention does the following. First, the CPU 240 receives these “new” packets, which may be added to the dedicated forwarding database 245 as shown below:
Then, if the aging expires, the OLD1 entry is removed from the virtual forwarding database 250. If packets 225 associated with this OLD1 entry are received, for example, on an ONT's Ethernet interface, then the packets 225 are sent by the router 235 to the CPU 240 instead of automatically being forwarded as if they were already in the dedicated forwarding database 245. The CPU detects that these packets are associated with this OLD1 entry located in the virtual forwarding database 250 in memory 247, so it does not flood all interfaces (i.e., flooding typically only occurs if the received packets are new/unknown MAC addresses), but, instead, the OLD1 entry is re-sent to the dedicated forwarding database 245 by replacing the now oldest entry (OLD2) detected in the dedicated forwarding database 245. The OLD2 entry (i.e., aging information, etc.) is moved to the local virtual forwarding database 250 in memory 247 for further aging/processing.
The process outlined above allows the most active MAC addresses to stay in the dedicated forwarding database 245 and allows the CPU 240 to temporarily handle some of the old traffic that is not currently in the dedicated forwarding database 245, but is still in the virtual forwarding database 250 in memory 247. The end user 253 only sees that the device 230 can support the MAX2 entries, as expected.
Another example embodiment of the present invention allows the dedicated forwarding database to be updated based on learned MAC addresses as well as IPTV ‘join’ or ‘leave’ messages. For example, when IPTV channel streams are requested from end users 259, the dedicated forwarding database 245 expects additional entries for each channel. When the dedicated forwarding database 245 fills up, the dedicated forwarding database 245 is updated with each additional channel requested. Simultaneously, the CPU 240 moves an entry from the dedicated forwarding database 245 to the virtual forwarding database 250 using the process described above. IPTV entries may not be moved to the virtual forwarding database 250. However, when IPTV streams are removed (e.g., using leave messages) from the dedicated forwarding database 245 without being replaced (i.e., the user shuts down the television or stops simultaneously streaming a large number of channels), then MAC addresses are re-directed to the virtual forwarding database 250 to minimize CPU 240 intervention. Similarly, when MAC entries expire from the dedicated forwarding database 245, then this may be a trigger (or signal) to the CPU 240 that entries from the virtual forwarding database 250 are typically (or automatically) moved from the virtual forwarding database 250 to the dedicated forwarding database 245. Another example embodiment of the present invention includes other “special” types of high priority entries that are not moved to the virtual forwarding database 250 due to possible latency issues or performance issues that might be associated with some switches/network processors that perform this operation.
Possible problems may occur when the device 230 must simultaneously process large amounts of traffic flow from end user devices (e.g., STB1257) in which the MAC address is in the virtual forwarding database 250. In these situations, an example embodiment of the present invention further accommodates when certain entries may have larger throughput requirements than others (for example, some end users may download large files or view video, whereas other active end users are viewing webpages). In these scenarios, there is a preference for the CPU 240 to process MAC entries of end users 259 viewing web pages and then add the MAC entries associated with the higher-throughput applications in the dedicated forwarding database 245 so there are no future CPU 240 implications. Thus, the characteristics of the applications associated with MAC entries ultimately determines if the entries are maintained in the dedicated forwarding database 245 or in the virtual forwarding database 250.
Another example embodiment allows for situations in which the device 230 is simultaneously processing entries (E1), where E1 is greater than MAX1. In this case, the CPU 240 must process traffic. When this occurs, it is expected that the CPU 240 is capable of handling a predetermined amount of traffic. When this occurs, the CPU 240 may further start looking at entry-user-content characteristics, such as throughput (or other important possible characteristics, such as latency, or if the MAC entry was configured by the end user 259 or the service provider to be a “special” dedicated forwarding database 245 permanent entry). At this point, the entry can be swapped with another lower impact entry (e.g., lower throughput or other lower processing intensive characteristics) located in the dedicated forwarding database 245.
Another example embodiment of the present invention includes a CPU 240 processing high bandwidth applications that are very processor intensive. When this occurs, it is useful to have a product that has architected support user services under pre-determined assumptions. It is expected that the number of MAX2 entries are pre-determined based on processor capacity, and other applications that the device performs may also be taken in consideration. For example, the CPU 240 may also be performing Session Initiation Protocol (SIP) applications that take up a certain amount of instructions per second because such applications are also highly processor intensive.
When both the dedicated forwarding database 245 and the virtual forwarding database 250 are full with MAC entries, if additional MAC entries are learned, an example embodiment of the present invention covers the case in which the CPU 240 is either capable of looking for the oldest entry in both the dedicated forwarding database 245 and the virtual forwarding database 250 (or similar), or the case in which once the forwarding databases 245, 250 are full, then any new entries cannot be added until entries have been aged/expired and removed from either forwarding database 245, 250.
In another example embodiment of the present invention, an end user 253 may configure entries in the dedicated forwarding database 245, as defined in the IEEE 802.1D standard. When this occurs, the same scenarios as above are taken into consideration. That is, a new static entry can either be permanently placed in the dedicated forwarding database 245 or placed in either the dedicated forwarding database 245 or virtual forwarding database 250. When this occurs, permanent entries may still have an internal “aging” parameter that can be used internally by the device 230 to determine if the entry can be moved from the dedicated forwarding database 245 to the virtual forwarding database 250 based on any activity detected on this permanent entry during a certain amount of time.
In another example embodiment of the present invention, a static entry may be in the dedicated forwarding database or even permanently in the virtual forwarding database 250 based on the end user's 253 known understanding of the expected content's characteristics for this entry. For example, if the entry is associated with high-throughput needs, the end user 253 may want to ensure that the entry is always in the dedicated forwarding database 245. If the entry is always used for web-page viewing, the end user 253 may also allow the entry to always be in the virtual forwarding database 250. Alternatively, there can be an option to allow an entry to be moved back and forth based on normal treatment (as defined herein) for MAC entries.
Another example embodiment of the present invention includes performance monitoring that may be collected for this type of implementation to be able to troubleshoot the device 230 with such an implementation or simply better know the overall system performance of such a device 230. For example, performance monitoring parameters can be collected for:
One with skill in the art knows that the CPU 240 is capable of supporting a certain amount of throughput processing without rebooting or impacting existing data. The features defined in an example embodiment of the present invention are not intended for all hardware, since some processors cannot support the additional processing/steps/data manipulation as described herein. However, there are cases where there are sophisticated processors/CPUs 240, but the dedicated forwarding database 245 does not provide sufficient entries for different applications that require a large number of entries.
If the FDB entry expires 407, it may be because the hardware (HW) FDB entry has aged/expired 409. If so, the entry may be located 411 in the HW FDB 421. Then, the entry may be removed 413. Next, the method may inspect 415 the virtual FDB 417 for any remaining entries by accessing 416 the virtual FDB 417. If there are any remaining entries 418 in the virtual FDB 417, the entry may be moved 419 from the virtual FDB 417 to the HW FDB 421. This may be done by accessing 420 both FDBs (virtual 417 and HW 421). After the entry is moved 419 or if there are no remaining entries 424, the method will wait to detect 401 another packet event. Alternatively, if the FDB entry expires 407, it may be because the virtual FDB entry has aged/expired 425. If so, the entry may be located 427 in the virtual FDB 417 and then removed 429. After the entry has been removed 429, the method will wait to detect 401 another packet event.
After the packet arrives 405, the device (e.g., hardware switch) may receive 431 the packet and then recognize 433 the packet type. The packet may either be a standard Ethernet frame 435 or a special packet 467 (e.g., Internet Group Management Protocol (IGMP)). For a standard Ethernet frame 435, the device may access 437 the HW FDB 421. The device may register that a packet is found 439 in the HW FDB 421. If a packet is found 440, the device will perform 441 standard forwarding/bridging functions on the packet and then detect 401 if another packet event has occurred. If a packet was not found 442 in the HW FDB 421, the packet will be forwarded 443 to a CPU. Then, the virtual FDB may be inspected 445. The virtual FDB 417 may be accessed 446. If a packet is found 448, the HW FDB 421 may be inspected 449 by accessing 450 the HW FDB 421. If the HW FDB 421 is full 452, then the HW FDB 421 may be accessed 454 to search 453 for the oldest (OLD1) entry in the HW FDB 421. Then, the virtual FDB 417 may be accessed 456 and OLD1 may be moved 457 to the virtual FDB 417. Next, the new entry may be added 459 to the HW FDB 421 and the aging timer may be started by accessing 460 the HW FDB 421. If the HW FDB 421 is not full 462, the new entry may be added 459 to the HW FDB 421 and the aging timer may be started. If a packet is not found 464 in the virtual FDB 417, the device will perform 465 a new packet discovery function (e.g., learn, flooding to all ports, etc.).
Please note that while this example method only illustrates the behavior for a special packet 467 using join 470 or leave 471 messages, other example embodiments of the present invention include for other special packets 467.
The special packet 467 may include 469 either a join 470 or leave 470 message. If the special packet 467 includes a join message 470, the HW FDB 421 may be inspected 449. If the HW FDB 421 is not full 462, a new entry may be added 459 to the HW FDB 421 and an aging timer may be initiated as well as the HW FDB 421 may be accessed 460. At this point, all packets that arrived with the entry may be identified in the FDB and forwarded by the HW, unless the entry has been aged out (e.g., expired or removed). For example, for a standard MAC frame (meaning, non-IPTV or non-special packets), the aging timer restarts (or reinitiates) each time the device detects a packet associated with the entry. An example of an aging timer is defined in the IEEE 802.1D standard.
If the special packet 467 has a leave message 471, an entry in the HW FDB 421 may be located 411 and said entry may be removed 413. Then, the virtual FDB 417 may be checked 415 for any remaining entries. The virtual FDB 417 may be accessed 416. If there are any entries remaining 418 in the virtual FDB 417, the entry may be moved 419 from the virtual FDB 417 to the HW FDB 421, which may be done by accessing 420 both the virtual FDB 417 and the HW FDB 421. After the entry has been moved 419 and if there are no remaining entries 424 in the virtual FDB 417, the method will detect 401 if a new packet event has occurred.
While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.
Even though passive optical networks have been shown and described herein, it should be understood by one with ordinary skill in the art that additional embodiments are available. For example, a network in accordance with an example embodiment of the present invention may include, but is not limited to, one of the following: passive optical, active optical, non-optical, or wireless.
It should also be understood that the flow diagrams of