US7031331B2 - Method and system for managing packets in a shared memory buffer that serves multiple output links - Google Patents
Method and system for managing packets in a shared memory buffer that serves multiple output links Download PDFInfo
- Publication number
- US7031331B2 US7031331B2 US09/930,597 US93059701A US7031331B2 US 7031331 B2 US7031331 B2 US 7031331B2 US 93059701 A US93059701 A US 93059701A US 7031331 B2 US7031331 B2 US 7031331B2
- Authority
- US
- United States
- Prior art keywords
- packet
- packets
- linked list
- intended
- output link
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9021—Plurality of buffers per packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6205—Arrangements for avoiding head of line blocking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Definitions
- the invention relates to the dispatching of packets from a buffer that serves multiple output links, and more particularly to dispatching packets out of order with respect to the order that the packets were written into the buffer.
- Packet-switched networks are known to have bursty traffic patterns.
- Network nodes i.e., switches and routers
- memory buffers to store packets when traffic bursts cause packets to be received at a faster rate than they can be processed.
- Many traffic control techniques such as rate shaping, rate limiting, and weighted random early drop (WRED), are used in conjunction with memory buffers to deal with bursty traffic.
- WRED weighted random early drop
- memory buffers are often used to temporarily store packets when packets are passing through the network node faster than the packets can be transmitted out onto their intended output links.
- packets are typically dispatched from the buffer in a simple first-in first-out (FIFO) manner.
- FIG. 1 depicts a switch module 102 that includes three output links 104 (output links A, B, and C) and a shared memory buffer 106 that is shared among the three output links.
- the switch module also includes a rate controller 108 that controls the rate at which packets 110 are written into the memory buffer. Even though the memory buffer is shared among multiple output links, packets are stored within the buffer and dispatched from the buffer on a FIFO basis. Referring to FIG.
- the packet that is at the head of the shared FIFO buffer (packet B 1 ) must be dispatched to its intended output link (output link B) before the next packet in the shared FIFO buffer can be dispatched to its intended output link. While this technique works well if the output links are always available to transmit packets, the technique creates a head-of-line blocking problem in the shared FIFO buffer when the intended output link of the head packet is unavailable for transmission.
- FIG. 2 depicts the head-of-line blocking problem that occurs when the head packet in a shared FIFO buffer is intended for an output link that is unavailable for transmission.
- output link B is unavailable for transmission and because the head packet is intended for the unavailable output link, the packets in the buffer that are intended for output links A (packets A 1 , A 2 , A 3 , and A 4 ) and C (packets C 1 , C 2 , and C 3 ) are blocked by the head packet. That is, the packets that are intended for output links A and C are blocked from being transmitted by the head packet, which is intended for the unavailable output link B, even though output links A and C are available for transmission.
- a method and system for managing packets in a shared memory buffer involves linking buffered packets into a linked list in the order that the packets are written into the shared memory buffer, examining the packets in the order of the linked list to determine which packets are intended for available output links, and then dispatching the oldest packet that is intended for an available output link even if the packet is preceded on the linked list by packets that are older but are intended for unavailable output links.
- the technique overcomes the head-of-line blocking problem by using a linked list to identify the oldest packet that is intended for an available output link and dispatching the packet out-of-order even if the packet is not the absolute oldest packet in the shared memory buffer. Although some packets may be dispatched out-of-order with respect to all of the packets in the shared memory buffer, the use of a linked list ensures that the order of packets that are intended for the same output link is maintained.
- the packets are stored with NEXT pointers that establish the linked list and output link identifiers that identify the intended output links of the packets.
- the process of examining packets is performed in cycles and each cycle begins at the head of the linked list of packets.
- the availability of the output links is identified at the beginning of each cycle and is not updated until the beginning of the next cycle.
- the head of the linked list is identified by a linked list HEAD pointer.
- the packet at the head of the linked list is dispatched, the packet is removed from the linked list by adjusting the linked list HEAD pointer to identify the next packet on the linked list.
- the packet is removed from the linked list by setting the NEXT pointer of the previous packet to the same value as the dispatched packet's NEXT pointer.
- FIG. 1 depicts a switch module that includes three output links and a shared memory buffer in which packets are dispatched on a FIFO basis in accordance with the prior art.
- FIG. 2 depicts the head-of-line blocking problem that occurs when the head packet in a shared FIFO buffer is intended for an unavailable transmission link.
- FIG. 3 depicts a system for dispatching packets from a shared memory buffer that overcomes the head-of-line blocking problem in accordance with an embodiment of the invention.
- FIG. 4 is a logical depiction of the start of a dispatch cycle, dispatch cycle 1 , that dispatches packets in accordance with the invention.
- FIG. 5 depicts a packet structure that is used to store packets in accordance with an embodiment of the invention.
- FIG. 6 is a logical depiction of dispatch cycle 1 after packets have been dispatched to available output links in accordance with an embodiment of the invention.
- FIG. 7 is a logical depiction of the start of another dispatch cycle, dispatch cycle 2 , that dispatches packets in accordance with the invention.
- FIG. 8 is a logical depiction of dispatch cycle 2 after packets have been dispatched to available output links in accordance with an embodiment of the invention.
- FIG. 9 is a logical depiction of the start of another dispatch cycle, dispatch cycle 3 , that dispatches packets in accordance with the invention.
- FIG. 10 is a logical depiction of dispatch cycle 3 after packets have been dispatched to available output links in accordance with an embodiment of the invention.
- FIG. 11 is a logical depiction of the shared memory buffer of FIG. 10 after new packets have been written into the shared memory buffer.
- FIG. 12 depicts a flow diagram of a process for managing packets in a shared memory buffer in accordance with an embodiment of the invention.
- a technique for dispatching packets from a shared memory buffer involves linking buffered packets into a linked list in the order that the packets are written into the shared memory buffer, going through the packets in the order of the linked list, and dispatching the first packet that is intended for an available output link even if the first packet that is intended for an available output link is not the oldest packet on the linked list.
- FIG. 3 depicts a system 300 for dispatching packets from a shared memory buffer that serves multiple output links.
- the system includes a rate controller 308 , a shared memory buffer 306 , a buffer controller 316 , and three output links 304 .
- the system is integrated into a switch module 302 that is a component of a network node, such as a switch or a router.
- the switch module is, for example, a switch card that is inserted into a chassis-based network node.
- the switch module performs other functions such as packet processing and forwarding look-ups.
- the individual elements of the system are described first followed by a description of the system's operation and a process flow diagram.
- the rate controller 308 controls the writing of packets into the shared memory buffer.
- the rate controller may utilize known traffic control techniques, such as rate shaping, rate limiting, and WRED, to control the rate at which packets are written into the shared memory buffer 306 .
- the rate controller is not critical to the invention but is depicted to show that other techniques of traffic management may be used in conjunction with the technique for dispatching packets from the shared memory buffer that is described herein.
- the rate controller is shown as an element of the switch module 302 , the rate controller may alternatively be located off of the switch module.
- the shared memory buffer 306 stores packets 310 that are to be dispatched to one or more of the output links 304 .
- the shared memory buffer stores incoming packets as they are received and the stored packets are dispatched from the shared memory buffer as described below.
- the shared memory buffer includes random access memory (RAM) that is connected by buses to the output links.
- the output links 304 transmit packets to their next destination.
- the output links include electrical, optical, and/or radio frequency transmitters.
- the output link is defined herein as available for transmission.
- the output link is defined herein as unavailable for transmission.
- An output link may be unavailable for transmission for reasons besides that the output link is in the process of transmitting.
- the output link may be unavailable for transmission because an output link queue is full, because the machine that is attached to the other end of the link has indicated that it cannot take any more traffic, because the link is damaged, because of a hardware problem (i.e., a transmitter or receiver problem), or because the quality of the transmission has fallen below an established acceptable level.
- the output link may be considered unavailable if the bit error rate (BER) of the transmission falls below an established BER threshold.
- BER bit error rate
- each output link 304 is communicated to the buffer controller 316 through connections 320 .
- the status of each output link is indicated as either available or unavailable for transmission.
- the buffer controller 316 manages the dispatching of packets from the shared memory buffer 306 .
- the buffer controller performs the functions that are described below with reference to FIGS. 4–12 .
- the buffer controller performs the described functions through hardware, however the buffer controller may be implemented in software or a combination of hardware and software. Throughout the description, similar reference numbers may be used to identify similar elements.
- FIG. 4 is a logical depiction of the functions that are carried out by the buffer controller.
- the technique for dispatching packets is described in FIGS. 4–10 as a series of three dispatch cycles.
- packets 310 are written into the shared memory buffer and are linked together into a linked list in the order that the packets are written into the buffer.
- Each packet is identified, for description purposes, by the intended output link of the packet and a sequence number that is specific to each output link. For example, the packets that are intended for output link A are identified sequentially as packets A 1 , A 2 , A 3 , A 4 , and A 5 and any subsequent packets intended for output link A continue the number sequence.
- the linked list includes eleven buffered packets, with packets A 1 , A 2 , A 3 , A 4 , and A 5 intended for output link A, packets B 1 , B 2 , and B 3 intended for output link B, and packets C 1 , C 2 , and C 3 intended for output link C.
- the packets are stored in the shared memory buffer and linked together in the order that the packets were written into the shared memory buffer.
- the oldest packets are logically depicted at the bottom of the shared memory buffer (with the oldest packet being at the bottom) and the newest packets are logically depicted at the top of the shared memory buffer (with the newest packet being at the top).
- the packets are depicted in sequence for description purposes, it should be understood that the packets can be linked into a linked list regardless of where the packets are physically stored within the shared buffer memory.
- the shared memory buffer can store more packets than the eleven that are depicted for example purposes.
- the linked list shown in FIG. 4 is formed by setting a NEXT pointer for each packet to identify the next packet that was written into the shared memory buffer.
- FIG. 5 depicts an example of a packet structure 524 that is used to store packets in the shared buffer memory.
- the packet structure includes the packet 526 , an output link identifier (ID) 528 , and a NEXT pointer 530 .
- the NEXT pointer identifies the memory location of the next packet in the linked list.
- the NEXT pointer of packet A identifies packet B and the NEXT pointer of packet B identifies the next packet on the linked list.
- the output link ID identifies the intended output link of the respective packet.
- the arrows 334 between the packets indicate how the packets in the shared memory buffer are linked into a linked list.
- packet B 1 is linked to packet A 1
- packet A 1 is linked to packet A 2
- the NEXT pointer of the last packet on the list indicates, for example by a null value, that it is the last packet on the linked list.
- the linked list is established and maintained by the buffer controller.
- the buffer controller 316 establishes and maintains a linked list HEAD pointer 336 that identifies the head packet on the linked list.
- the head packet on the linked list is the oldest packet on the linked list.
- the logical line 338 in FIG. 4 indicates which packet is identified by the linked list HEAD pointer as the head packet on the linked list.
- Each new dispatch cycle for dispatching packets begins at the head packet that is identified by the linked list HEAD pointer.
- the linked list HEAD pointer is adjusted to identify the next packet on the linked list.
- the technique for dispatching packets involves going through the packets in the order of the linked list and dispatching the first packet that is intended for an available output link even if the first packet that is intended for an available output link is not the oldest packet on the linked list.
- the status of each output link is communicated to the buffer controller (as indicated by line 340 ).
- output link A is available
- output link B is unavailable
- output link 3 is available.
- the status of the output links is not changed during a dispatch cycle even if an output link becomes available during the cycle.
- the first packet to be examined in each dispatch cycle is the head packet.
- the head packet in dispatch cycle 1 (packet B 1 as identified by the linked list HEAD pointer) is intended for output link B, which is currently unavailable.
- head-of-line blocking prevents any other packets from being dispatched from the shared memory buffer until output link B becomes available and packet B 1 is dispatched.
- the buffer controller continues to examine packets to identify and dispatch a packet that is intended for an available output link.
- the next packet on the linked list that is examined by the buffer controller 316 is located using the NEXT pointer of the head packet.
- the next packet is examined (i.e., by examining the output link ID of the packet) to determine whether or not the packet is intended for an available output link.
- the next packet, packet A 1 is intended for output link A, which is currently available. Because packet A 1 is intended for an available output link, packet A 1 is dispatched to its intended output link.
- a cycle of dispatching packets is completed upon the dispatch of a single packet to its intended output link.
- the process can be continued to see if any other buffered packets can be dispatched to any other available output links.
- the buffer controller 316 continues to examine packets in the order of the linked list, starting at the next packet on the linked list. In the example of FIG. 4 , packets A 2 and A 3 cannot be dispatched because packet A 1 has been dispatched to output link A and packet B 2 cannot be dispatched because output link B is unavailable.
- packet C 1 is the next packet that is intended for an available output link and therefore packet C 1 is also dispatched during dispatch cycle 1 .
- the linked list must be adjusted to remove the packet from the linked list. Specifically, the dispatched packet is removed from the linked list by setting the NEXT pointer of the previous packet on the linked list to the same value as the dispatched packet's NEXT pointer. For example, to remove packet A 1 from the linked list, the NEXT pointer of packet B 1 (the previous packet on the linked list) is set to identify packet A 2 (the same packet that is identified by packet A 1 's NEXT pointer). Likewise, to remove packet C 1 from the linked list, the NEXT pointer of packet B 2 is set to identify packet C 2 .
- FIG. 6 logically depicts the status of the linked list and the linked list HEAD pointer 336 after packets A 1 and C 1 have been dispatched to their respective output links.
- packet A 1 is removed from the linked list by adjusting the NEXT pointer of packet B 1
- packet C 1 is removed from the linked list by adjusting the NEXT pointer of packet B 2 .
- the linked list HEAD pointer continues to identify packet B 1 .
- FIG. 7 depicts the beginning of a new dispatch cycle, dispatch cycle 2 .
- the status of each output link is again determined by the buffer controller 316 .
- output link A is unavailable
- output link B is available
- output link 3 is available.
- the first packet to be examined in dispatch cycle 2 is again the head packet.
- the head packet in dispatch cycle 2 (packet B 1 as identified by the linked list HEAD pointer 336 ) is intended for output link B, which is now available. Because output link B is now available, packet B 1 is dispatched to the available output link.
- the linked list HEAD pointer is adjusted to remove the packet from the linked list.
- the linked list HEAD pointer is adjusted to identify the next packet in the linked list (i.e., the packet that was identified by the NEXT pointer of the dispatched packet).
- the linked list HEAD pointer is adjusted to identify packet A 2 , thereby removing packet B 1 from the linked list.
- the cycle of dispatching packets can be continued to see if any other buffered packets can be dispatched to any other available output links.
- the packets are examined in the order of the linked list. In the example of FIG. 7 , packets A 2 and A 3 cannot be dispatched because output link A is unavailable and packet B 2 cannot be dispatched because packet B 1 has been dispatched to output link B. Packet C 2 is the next packet on the linked list and because output link C is available, packet C 2 is also dispatched during dispatch cycle 2 .
- the linked list is adjusted, as described above, to delete dispatched packet C 2 from the linked list.
- FIG. 8 logically depicts the status of the linked list and the linked list HEAD pointer 336 after packets B 1 and C 2 have been dispatched to their respective output links.
- packet B 1 is removed from the linked list by adjusting the linked list HEAD pointer to identify packet A 2
- packet C 2 is removed from the linked list by adjusting the NEXT pointer of packet B 2 to identify packet A 4 .
- packets intended for the same output link are always dispatched in the proper FIFO order. That is, the packets in any sequence of packets that are intended for the same output link will always be dispatched in the same order (on a FIFO basis) that the packets were written into the shared memory buffer because each dispatch cycle starts at the head of the linked list.
- FIG. 9 depicts the beginning of another dispatch cycle, dispatch cycle 3 .
- the status of each output link is again determined by the buffer controller.
- output link A is unavailable
- output link B is available
- output link C is available.
- the first packet to be examined in dispatch cycle 3 is the head packet.
- the head packet in dispatch cycle 2 (packet A 2 as identified by the linked list HEAD pointer 336 ) is intended for output link A, which is currently unavailable, and therefore the head packet cannot be dispatched in this cycle.
- the buffer controller continues to examine packets to identify a packet that is intended for an available output link.
- the next packet in the linked list is identified by the buffer controller using the NEXT pointer of the head packet.
- the next packet is examined (i.e., by examining the output link ID of the packet) to determine whether or not the packet is intended for an available output link.
- the next packet, packet A 3 is intended for output link A, which is currently unavailable and therefore the next packet in the linked list is examined.
- the next packet, packet B 2 is intended for an available output link. Because packet B 2 is intended for an available output link, it is dispatched to its intended output link.
- the process is continued sequentially by examining subsequent packets on the linked list to see if any other buffered packets can be dispatched to any other available output links.
- packet C 3 is the next packet that is intended for an available output link, so packet C 3 is also dispatched in dispatch cycle 3 .
- the linked list is adjusted, as described above, to delete the dispatched packets from the linked list.
- FIG. 10 logically depicts the status of the linked list and the linked list HEAD pointer 336 after packets B 2 and C 3 have been dispatched to their respective output links.
- packet B 2 is removed from the linked list by adjusting the NEXT pointer of packet A 3
- packet C 3 is removed from the linked list by adjusting the NEXT pointer of packet B 3 to a null value.
- the linked list HEAD pointer continues to identify packet A 2 . The process of dispatching packets continues as long as there are buffered packets.
- FIG. 11 is a logical depiction of the shared memory buffer shown in FIG. 10 after six new packets have been written into the shared memory buffer. As depicted in FIG. 11 , the five packets remaining from FIG.
- Packets A 2 , A 3 , A 4 , A 5 , and B 3 maintain their same order on the linked list and the newly stored packets are linked to the list in the order that they are written into the shared memory buffer. Packets can be written into the shared memory buffer while dispatch cycles are in progress.
- FIGS. 4–11 depict packets that are linked together
- the packets may be represented by packet-specific queue elements that include pointers which identify an actual memory location of the packet.
- the packets can be linked and dispatched by the buffer controller via the packet-specific queue elements that represent the packets.
- the packets described herein can be variable-length packets such as Ethernet packets or fixed-length packets such as asynchronous transfer mode (ATM) packets.
- ATM asynchronous transfer mode
- FIG. 12 depicts a flow diagram of a process for managing packets in a shared memory buffer that serves multiple outputs.
- packets are written into a shared memory buffer that serves multiple outputs.
- the packets are linked into a linked list in the order that the packets are written into the shared memory buffer.
- a linked list HEAD pointer that identifies the oldest packet in the shared memory buffer is established.
- the availability of the output links is established.
- the head of the linked list is located using the linked list HEAD pointer.
- the packet is examined to determine the intended output link of the packet.
- decision point 1214 it is determined if the intended output link is available.
- the NEXT pointer of the packet is used to identify the next packet on the linked list and at step 1212 , the next packet is examined. If the intended output link is available, then at decision point 1218 , it is determined if the packet is at the head of the linked list. If the packet is at the head of the linked list, then at step 1220 , the linked list HEAD pointer is set to identify the next packet on the linked list. If the packet is not at the head of the linked list, then at step 1222 , the packet is deleted from the linked list by setting the NEXT pointer of the previous packet to the value of the packet that is to be deleted.
- the packet is dispatched to the available output link.
- decision point 1226 if there are more packets stored in the shared memory buffer, then the process is repeated. If there are no more packets stored in the shared memory buffer, then the process is repeated when a new packet, or packets, is written into the shared memory buffer. Note that new packets can be written into the shared memory buffer while a dispatch cycle is in progress.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (41)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/930,597 US7031331B2 (en) | 2001-08-15 | 2001-08-15 | Method and system for managing packets in a shared memory buffer that serves multiple output links |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/930,597 US7031331B2 (en) | 2001-08-15 | 2001-08-15 | Method and system for managing packets in a shared memory buffer that serves multiple output links |
Publications (2)
Publication Number | Publication Date |
---|---|
US20030035372A1 US20030035372A1 (en) | 2003-02-20 |
US7031331B2 true US7031331B2 (en) | 2006-04-18 |
Family
ID=25459502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/930,597 Expired - Lifetime US7031331B2 (en) | 2001-08-15 | 2001-08-15 | Method and system for managing packets in a shared memory buffer that serves multiple output links |
Country Status (1)
Country | Link |
---|---|
US (1) | US7031331B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030227933A1 (en) * | 2002-06-11 | 2003-12-11 | Sun Microsystems, Inc. | Prefetching techniques for network interfaces |
US20030235189A1 (en) * | 2002-06-04 | 2003-12-25 | Mathews Gregory S. | Pointer allocation by prime numbers |
US20060018312A1 (en) * | 2004-07-22 | 2006-01-26 | Fujitsu Limited | Crossbar |
US20060248242A1 (en) * | 2005-05-02 | 2006-11-02 | Broadcom Corporation | Total dynamic sharing of a transaction queue |
US20070274303A1 (en) * | 2005-01-05 | 2007-11-29 | Huawei Technologies Co., Ltd. | Buffer management method based on a bitmap table |
US20080192765A1 (en) * | 2007-02-12 | 2008-08-14 | Jong-Sang Oh | Apparatus and method for packet buffer management in IP network system |
US20100299460A1 (en) * | 2009-05-20 | 2010-11-25 | Hangzhou H3C Technologies Co., Ltd. | Buffer manager and buffer management method based on address pointer linked list |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7027443B2 (en) * | 2001-08-23 | 2006-04-11 | Pmc-Sierra Ltd. | Reassembly engines for multilink applications |
US7512780B1 (en) * | 2001-08-31 | 2009-03-31 | Verizon Corporate Services Group, Inc. | Packet-parallel high performance cryptography systems and methods |
US9146944B2 (en) | 2012-03-16 | 2015-09-29 | Oracle International Corporation | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls |
US9665392B2 (en) | 2012-03-16 | 2017-05-30 | Oracle International Corporation | System and method for supporting intra-node communication based on a shared memory queue |
US9760584B2 (en) | 2012-03-16 | 2017-09-12 | Oracle International Corporation | Systems and methods for supporting inline delegation of middle-tier transaction logs to database |
US9866427B2 (en) | 2015-02-16 | 2018-01-09 | Juniper Networks, Inc. | Multi-stage switch fabric fault detection and handling |
US10951527B2 (en) * | 2018-12-28 | 2021-03-16 | Juniper Networks, Inc. | Switch fabric packet flow reordering |
US11621923B2 (en) * | 2020-04-10 | 2023-04-04 | Marvell Asia Pte Ltd | Queueing system with head-of-line block avoidance |
US11455575B1 (en) | 2020-04-30 | 2022-09-27 | Marvell Asia Pte Ltd | System and methods for mesh architecture for high bandwidth multicast and broadcast network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535197A (en) | 1991-09-26 | 1996-07-09 | Ipc Information Systems, Inc. | Shared buffer switching module |
US5838915A (en) | 1995-06-21 | 1998-11-17 | Cisco Technology, Inc. | System for buffering data in the network having a linked list for each of said plurality of queues |
US6026093A (en) | 1997-10-02 | 2000-02-15 | Sun Microsystems, Inc. | Mechanism for dispatching data units via a telecommunications network |
US20020124149A1 (en) * | 2001-03-02 | 2002-09-05 | Broadcom Corporation | Efficient optimization algorithm in memory utilization for network applications |
US6567417B2 (en) * | 2000-06-19 | 2003-05-20 | Broadcom Corporation | Frame forwarding in a switch fabric |
-
2001
- 2001-08-15 US US09/930,597 patent/US7031331B2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535197A (en) | 1991-09-26 | 1996-07-09 | Ipc Information Systems, Inc. | Shared buffer switching module |
US5838915A (en) | 1995-06-21 | 1998-11-17 | Cisco Technology, Inc. | System for buffering data in the network having a linked list for each of said plurality of queues |
US6026093A (en) | 1997-10-02 | 2000-02-15 | Sun Microsystems, Inc. | Mechanism for dispatching data units via a telecommunications network |
US6567417B2 (en) * | 2000-06-19 | 2003-05-20 | Broadcom Corporation | Frame forwarding in a switch fabric |
US20020124149A1 (en) * | 2001-03-02 | 2002-09-05 | Broadcom Corporation | Efficient optimization algorithm in memory utilization for network applications |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030235189A1 (en) * | 2002-06-04 | 2003-12-25 | Mathews Gregory S. | Pointer allocation by prime numbers |
US7733888B2 (en) * | 2002-06-04 | 2010-06-08 | Alcatel-Lucent Usa Inc. | Pointer allocation by prime numbers |
US20030227933A1 (en) * | 2002-06-11 | 2003-12-11 | Sun Microsystems, Inc. | Prefetching techniques for network interfaces |
US7327674B2 (en) * | 2002-06-11 | 2008-02-05 | Sun Microsystems, Inc. | Prefetching techniques for network interfaces |
US20060018312A1 (en) * | 2004-07-22 | 2006-01-26 | Fujitsu Limited | Crossbar |
US7733892B2 (en) * | 2005-01-05 | 2010-06-08 | Huawei Technologies Co., Ltd. | Buffer management method based on a bitmap table |
US20070274303A1 (en) * | 2005-01-05 | 2007-11-29 | Huawei Technologies Co., Ltd. | Buffer management method based on a bitmap table |
US7802028B2 (en) * | 2005-05-02 | 2010-09-21 | Broadcom Corporation | Total dynamic sharing of a transaction queue |
US20060248242A1 (en) * | 2005-05-02 | 2006-11-02 | Broadcom Corporation | Total dynamic sharing of a transaction queue |
US20080192765A1 (en) * | 2007-02-12 | 2008-08-14 | Jong-Sang Oh | Apparatus and method for packet buffer management in IP network system |
US8121035B2 (en) * | 2007-02-12 | 2012-02-21 | Samsung Electronics Co., Ltd. | Apparatus and method for packet buffer management in IP network system |
US20100299460A1 (en) * | 2009-05-20 | 2010-11-25 | Hangzhou H3C Technologies Co., Ltd. | Buffer manager and buffer management method based on address pointer linked list |
US8499105B2 (en) * | 2009-05-20 | 2013-07-30 | Hangzhou H3C Technologies Co., Ltd. | Buffer manager and buffer management method based on address pointer linked list |
Also Published As
Publication number | Publication date |
---|---|
US20030035372A1 (en) | 2003-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7031331B2 (en) | Method and system for managing packets in a shared memory buffer that serves multiple output links | |
US7630309B1 (en) | Systems and methods for limiting the rates of data to/from a buffer | |
US7346001B1 (en) | Systems and methods for limiting low priority traffic from blocking high priority traffic | |
US5822540A (en) | Method and apparatus for discarding frames in a communications device | |
US6934296B2 (en) | Packet transfer device and packet transfer method adaptive to a large number of input ports | |
CN100405344C (en) | Apparatus and method for distributing buffer status information in a switch fabric | |
US5278828A (en) | Method and system for managing queued cells | |
US6252877B1 (en) | ATM switching system and cell control method | |
US6765905B2 (en) | Method for reducing packet data delay variation in an internet protocol network | |
US20050175013A1 (en) | Method for transmitting high-priority packets in an IP transmission network | |
US7164687B2 (en) | Queue control method and relay apparatus using the method | |
EP1417795B1 (en) | Switching node with classification-dependent mac buffer control | |
JPH09149051A (en) | Packet transfer device | |
US20060050639A1 (en) | Credit-based method and apparatus for controlling data communications | |
US6915480B2 (en) | Processor with packet data flushing feature | |
US6418118B1 (en) | Network device including selective discard of packets | |
US20030002534A1 (en) | Random early discard for cell-switched data switch | |
US7079545B1 (en) | System and method for simultaneous deficit round robin prioritization | |
US8131854B2 (en) | Interfacing with streams of differing speeds | |
US7971008B2 (en) | Flexible queue and stream mapping systems and methods | |
US6381247B1 (en) | Service independent switch interface | |
JP3587080B2 (en) | Packet buffer management device and packet buffer management method | |
US20010047425A1 (en) | Scheduling circut | |
US7304946B2 (en) | Packet multiplexing control method and a concentrator using the same | |
JP2002354025A (en) | Packet transfer control device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: RIVERSTONE NETWORKS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SCHAUB, MARC;REEL/FRAME:012138/0744 Effective date: 20010815 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: CREDIT SUISSE AG, NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:ALCATEL-LUCENT USA INC.;REEL/FRAME:030510/0627 Effective date: 20130130 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: ALCATEL-LUCENT USA INC., NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG;REEL/FRAME:033950/0261 Effective date: 20140819 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553) Year of fee payment: 12 |