Contained herein is material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent disclosure by any person as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights to the copyright whatsoever.
The present invention relates to networking systems; more particularly, the present invention relates to maintaining statistics within a network router.
A router is usually designed to perform one or more basic networking tasks. One basic networking task is maintaining statistics.
The problem with the statistics module is that four or more physical SRAM devices may be necessary to support the magnitude of statistics that are maintained. This is attributed to the high speed (e.g., 125 million packets per second) at which the router may operate.
However, SRAM devices are expensive and physically large relative to Dynamic Random Access Memory (DRAM) devices. DRAM devices, nevertheless, typically cannot operate at a sufficient speed to support statistics at the router.
According to one embodiment, a network is disclosed. The network includes a source device; a networking hardware machine, coupled to the source device, and a destination device coupled to the networking hardware machine. The networking hardware machine receives data packets from the source device and distributes statistics data corresponding to the data packets among multiple internal memory devices.
The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention. The drawings, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
A mechanism to distribute statistics across multiple memory devices in a networking hardware machine is described herein. According to one embodiment, data packets are received at each of four propulsion engines and transmitted to a policing module for flow analysis. Afterward, statistics acquired during the policing of the received packets are transmitted back to the propulsion engines from which each packet was received. Subsequently, each propulsion engine reads a statistics count from an associated memory device. The statistics counts are incremented by each propulsion engine and written back to the corresponding memory devices.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Networking hardware machine 240 receives a set of packets from source device 220 and forwards the packets to destination device 230. In one embodiment, networking hardware machine 240 performs one or more basic networking tasks. For example, networking hardware machine 240 includes processing, classification, forwarding engine, policing and other types of components.
According to one embodiment, networking hardware machine 240 is a router. However, in other embodiments, networking hardware machine 240 may be a switch, or other device, that determines the next destination device 230 to which a data packet should be forwarded.
CPU 330 is a general purpose programmed computer whose function is to manage the overall operation of a networking hardware machine 240 in cooperation with other components of network 200 of which the respective networking hardware machine 240 is a part, and the transmission links 210 themselves. In addition CPU 330 may also handle all other tasks such as participating in routing protocols, resource reservation, handling packets that need extra attention, and other administrative duties.
Policing module 340 ensures that admitted traffic flows through networking hardware machine 240 adhere to the original contract of service between the network and the application. In one embodiment, policing module 340 is an SRAM device. Nonetheless, one of ordinary skill in the art will appreciate that other types of memory devices may be used to implement policing module 340.
MPE 310 is a network processing engine which processes packets as needed to support IP or ATM routing and switching. According to one embodiment, as packets are received at networking hardware machine 240 they are classified, policed, edited and then queued for scheduling to the next router in network 100. According to a further embodiment, MPE 310 operates according to a 40 Gb mode.
EPEs 420 are network processing engines that process packets as needed to support IP or ATM routing and switching. As packets are received at networking hardware machine 240, the packets are classified, edited and queued for SPS 410 to schedule the packets to the next router in network 100.
DDRs 430 are memory devices that are accessed by a respective EPE 420. For instance EPE 420a accesses DDR 430a. In one embodiment, DDRs 430 are DRAM devices. In another embodiment, DDRs 430 are Fast Cycle RAM (FCRAM) devices. However, one of ordinary skill in the art will appreciate that other types of memory devices may be used to implement DDRs 430.
According to one embodiment, networking hardware machine 240 includes a mechanism that enables statistics data to distributed among DDRs 430a-430d.
At this point policing module 340 implements all of the policing processing, such as ensuring that the flow sent by the sender application conforms to the flow characteristics that the sender application submitted to network 200. At processing block 530, statistics obtained during the policing is transmitted back to an EPE 420 from policing module 340.
According to one embodiment, the statistics data is transmitted back to the EPE 420 from which the packet was received. However, in other embodiments, the statistics may be transmitted back to a particular EPE 420 based upon a predetermined distribution algorithm.
At processing block 540, the EPE 420 reads a statistics count from its corresponding DDR 430. At processing block 550, the statistics count is incremented by EPE 420. At processing block 560, the incremented statistics count is written back to DDR 430. Note that the above described process occurs for packets received at each EPE 420. Accordingly, the distribution of networking hardware machine 240 statistics data across multiple DDRs 430 is enabled.
In one embodiment, the statistics maintained at DDRs 430a-430d include the number of data Bytes received, the number of Bytes dropped, the number of data packets passed and the number of packets dropped. In a further embodiment, CPU 330 accesses all DDRs 430 via the EPEs 420 and combines the stored statistics data in order to calculate total statistics flow data for networking hardware 240. In yet another embodiment, CPU 330 accesses the statistics data stored in DDRs 430a-430d every five minutes.
The distribution of statistics among multiple DDRs enables the use of smaller, less expensive DRAM devices to store statistics. As described above, traditional high speed networking devices require several relatively large and expensive SRAM devices in order to maintain statistics. Thus, the statistics distribution mechanism reduces the manufacturing costs and size constraints of a networking hardware machine.
Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims which in themselves recite only those features regarded as the invention.
Number | Name | Date | Kind |
---|---|---|---|
4710966 | Aufiero | Dec 1987 | A |
4893302 | Hemmady et al. | Jan 1990 | A |
5257395 | Li | Oct 1993 | A |
5398315 | Johnson et al. | Mar 1995 | A |
5400288 | Hashimoto et al. | Mar 1995 | A |
5541852 | Eyuboglu et al. | Jul 1996 | A |
5598408 | Nickolls et al. | Jan 1997 | A |
5715437 | Baker et al. | Feb 1998 | A |
5742180 | Dehon et al. | Apr 1998 | A |
5796719 | Peris et al. | Aug 1998 | A |
5805816 | Picazo et al. | Sep 1998 | A |
5831971 | Bonomi et al. | Nov 1998 | A |
5898689 | Kumar et al. | Apr 1999 | A |
6018612 | Thomason et al. | Jan 2000 | A |
6047304 | Ladwig et al. | Apr 2000 | A |
6163539 | Alexander et al. | Dec 2000 | A |
6226338 | Earnest et al. | May 2001 | B1 |
6275507 | Anderson et al. | Aug 2001 | B1 |
6377071 | Wang et al. | Apr 2002 | B1 |
6377546 | Guerin et al. | Apr 2002 | B1 |
6377587 | Grivnan | Apr 2002 | B1 |
6389468 | Muller et al. | May 2002 | B1 |
6438145 | Moshovich et al. | Aug 2002 | B1 |
6487202 | Klausmeier et al. | Nov 2002 | B1 |
6721271 | Beshai et al. | Apr 2004 | B1 |
6738880 | Lai et al. | May 2004 | B2 |
6757897 | Shi et al. | Jun 2004 | B1 |
6782470 | Berg et al. | Aug 2004 | B1 |
6804815 | Kerr et al. | Oct 2004 | B1 |
6823409 | Jones et al. | Nov 2004 | B2 |
6910092 | Calvignac et al. | Jun 2005 | B2 |
6915480 | Calle et al. | Jul 2005 | B2 |
6973036 | Goetzinger et al. | Dec 2005 | B2 |
6982986 | Goetzinger et al. | Jan 2006 | B2 |
6985964 | Petersen et al. | Jan 2006 | B1 |
6987760 | Calvignac et al. | Jan 2006 | B2 |
7002965 | Cheriton | Feb 2006 | B1 |
7110400 | Hronik | Sep 2006 | B2 |
7206857 | Mammen et al. | Apr 2007 | B1 |
20010030961 | Gazsi et al. | Oct 2001 | A1 |
20010049744 | Hussey et al. | Dec 2001 | A1 |
20020044559 | Ardalan et al. | Apr 2002 | A1 |
20020048270 | Allen, Jr. et al. | Apr 2002 | A1 |
20020050959 | Buckelew et al. | May 2002 | A1 |
20020056025 | Qiu et al. | May 2002 | A1 |
20020071321 | Barrie et al. | Jun 2002 | A1 |
20020099900 | Kawarai et al. | Jul 2002 | A1 |
20020101867 | O'Callaghan et al. | Aug 2002 | A1 |
20020122424 | Kawarai et al. | Sep 2002 | A1 |
20020126672 | Chow et al. | Sep 2002 | A1 |
20020126710 | Bergenwall et al. | Sep 2002 | A1 |
20020145974 | Saidi et al. | Oct 2002 | A1 |
20020163935 | Paatela et al. | Nov 2002 | A1 |
20020169921 | Saitoh | Nov 2002 | A1 |
20030012209 | Abdelilah et al. | Jan 2003 | A1 |
20030053460 | Suda et al. | Mar 2003 | A1 |
20030063348 | Posey et al. | Apr 2003 | A1 |
20030067930 | Salapura et al. | Apr 2003 | A1 |
20030088671 | Klinker et al. | May 2003 | A1 |
20030099194 | Lee et al. | May 2003 | A1 |
20030103507 | Lynch et al. | Jun 2003 | A1 |
20030112802 | Ono et al. | Jun 2003 | A1 |
20030189932 | Ishikawa et al. | Oct 2003 | A1 |
20030193936 | Wolkrich et al. | Oct 2003 | A1 |
20030214948 | Jin et al. | Nov 2003 | A1 |
20040066804 | Holma | Apr 2004 | A1 |
20050025140 | Deforche et al. | Feb 2005 | A1 |
20050132132 | Rosenbluth et al. | Jun 2005 | A1 |
20050141503 | Welfed | Jun 2005 | A1 |
20050144553 | Bass et al. | Jun 2005 | A1 |
Number | Date | Country |
---|---|---|
WO 9913397 | Mar 1999 | WO |