US6249819B1 - Method for flow controlling ATM traffic - Google Patents

Method for flow controlling ATM traffic Download PDF

Info

Publication number
US6249819B1
US6249819B1 US08/985,048 US98504897A US6249819B1 US 6249819 B1 US6249819 B1 US 6249819B1 US 98504897 A US98504897 A US 98504897A US 6249819 B1 US6249819 B1 US 6249819B1
Authority
US
United States
Prior art keywords
network device
credits
permission
credit
computer
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 - Fee Related
Application number
US08/985,048
Inventor
Douglas H. Hunt
Raj Krishnan Nair
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Fujitsu Network Communications Inc
Original Assignee
Fujitsu Ltd
Fujitsu Network Communications Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Fujitsu Network Communications Inc filed Critical Fujitsu Ltd
Priority to US08/985,048 priority Critical patent/US6249819B1/en
Assigned to FUJITSU NETWORK COMMUNICATIONS, INC., FUJITSU LIMITED reassignment FUJITSU NETWORK COMMUNICATIONS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HUNT, DOUGLAS H., NAIR, RAJ KRISHNAN
Application granted granted Critical
Publication of US6249819B1 publication Critical patent/US6249819B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • H04L2012/5634In-call negotiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5647Cell loss

Definitions

  • the present invention is related to flow control in a communications network, and more particularly to credit chaining to control data flow and eliminate data loss.
  • flow control in communications networks can be permission based or non-permission based.
  • a transmitter obtains permission to transmit from a receiver prior to transmitting data.
  • the permission includes an indication that sufficient buffer space is available at the receiver for receipt of the data.
  • Permissions may be periodically sent as a matter of course or may be in direct response to a request to transmit generated by the transmitter.
  • the transmitter operates without explicit advance indication that sufficient buffer space is available at the receiver.
  • Permission based flow control provides improved accuracy and control relative to non-permission based flow control, and in particular allows for a service that avoids loss due to network congestion.
  • QFC Quantum Flow Control
  • ATM Asynchronous Transfer Mode
  • credits are chained between network devices.
  • a network device that is upstream relative to the intermediate network device and a network device that is downstream relative to the intermediate network device
  • credits are provided from the intermediate network device to the upstream network device based at least in part upon credits provided from the downstream network device to the intermediate network device.
  • credits may be chained as described above through each network device from the final destination device to the initial source device, thereby assuring sufficient buffer space to accommodate the data unit throughout the network prior to transmission from the initial source device.
  • credits may be chained through fewer than each network device from the final destination device to the initial source device.
  • Credit chaining provides more efficient sharing of buffers among flows and prevents flows from becoming deadlocked.
  • Some known flow control protocols dedicate a predetermined amount of buffer space to each individual flow. The dedicated buffer space is unavailable for use by other flows, even in the case where the flow to which the buffer space is dedicated is not utilizing the buffer space.
  • More efficient buffer sharing is provided by credit chaining. Buffer sharing is implemented by preventing each individual flow from utilizing more than a predetermined proportional amount of buffering for storage at any network element at any time. The proportional amount is dynamically adjusted to ensure that each flow receives a “fair” proportion of the buffer space. Flows are prevented from becoming deadlocked because permission to forward traffic to devices further downstream than the next hop is obtained in advance.
  • buffering requirements in network devices that implement credit chaining scale well as the number of ports and flows increases.
  • FIG. 1 is a block diagram of credit chaining in a single flow
  • FIG. 2 is a block diagram of credit allocation when multiple flows converge upon a single buffer in a network device
  • FIG. 3 is a block diagram of network-wide credit chaining
  • FIG. 4 is a flow diagram that illustrates a method of credit chaining.
  • a communications network includes a plurality of network devices such as a bridges, routers and switches.
  • a central network device 10 is coupled with an upstream network device 12 and a downstream network device 14 .
  • Each network device includes a plurality of input ports 16 , a plurality of output ports 18 and a buffer pool 20 .
  • a data unit 22 associated with a flow 24 such as a cell over a virtual connection in an Asynchronous Transfer Mode (“ATM”) network is transmitted from an output port 18 of the upstream network device 12 to an input port 16 of the central network device 10 , then to an output port 18 of the central network device 10 , and then to an input port 16 of the downstream network device 14 .
  • the data unit 22 is stored in the buffer pool 20 , which is shared among a plurality of flows when in the central network device 10 .
  • QFC Quantum Flow Control
  • a permission based flow control protocol such as Quantum Flow Control (“QFC”) is implemented to facilitate operation of the communications network.
  • QFC is a protocol for regulating data unit traffic in a communications network such as an ATM network to avoid data unit (ATM cell) loss due to network congestion.
  • ATM cell data unit
  • QFC employs explicit advance indication of buffer availability within a receiving network device to control upstream transmitter device access to available resources in the receiving device. Periodically, the receiving network device transmits a permission including “credits” that indicate whether and how much data may be transmitted to the receiving network device.
  • a receiving network device when a receiving network device provides advance indication of buffer availability to a transmitter network device, the receiving network device may need to buffer incoming data until such time as the receiving network device is provided with an indication of downstream buffer availability.
  • the receiving network device waits for an advance indication from downstream prior to sending an advance indication upstream. This allows for the forwarding of some or possibly all of the received data to be limited only by the scheduling policy, and not by availability of buffers downstream.
  • a permission 26 is transmitted from downstream network device 14 to central network device 10 indicating a number of transmission credits before the central network device 10 transmits the data unit 22 to the downstream network device 14 .
  • a permission 28 is transmitted from central network device 10 to upstream network device 12 indicating a number of transmission credits before the upstream network device 12 transmits the data unit 22 to the central network device 10 .
  • the credits in the permission 28 provided by the central network device 10 to the upstream network device 12 are based at least in part on the credits in the permission 26 provided to the central network device 10 by the downstream network device 14 .
  • advance indication of buffer availability in both the central network device 10 and the downstream network device 14 is provided before the data unit 22 is transmitted from the upstream device 12 , and the flow 24 is permitted to transmit to the central network device 10 only if credits have been reported to the central network device from the downstream device.
  • the permission to forward traffic further downstream may include provision for temporarily holding data units in buffers, i.e., permission does not necessarily indicate that bandwidth is available for uninterrupted transmission from initial source to final destination.
  • Credit chaining advantageously provides sharing of all buffers 20 among flows and prevents flows from becoming deadlocked.
  • Buffer sharing is provided because each individual flow is prevented from utilizing more than a predetermined proportional amount of buffer space for storage at any network element at any time. Deadlocks cannot occur because permission to forward traffic further downstream is obtained in advance.
  • the buffering requirements in each network device scale effectively as the number of ports and flows increases. While some latency may be incurred before data units associated with a flow can be permitted to transmit as a consequence of credit chaining, this latency should normally be on the order of the propagation delays between network devices. In a worst case scenario the latency is on the order of one-half a round trip time.
  • credit chaining may be employed within a network device 34 to assure buffer sharing and prevent deadlock when a plurality of flows converge on a shared buffer in a network device, such as in multipoint-to-point operation.
  • the illustrated network device 34 supports a plurality of input flows 30 that feed into a shared output buffer 32 and form an output flow 36 that drains the shared buffer 32 .
  • the network device 34 controls the allocation of buffer space to the upstream flows 30 via a credit based flow control protocol such as QFC. Further, the credits provided to the upstream flows 30 are set based at least in part upon the credits provided for the output flow 36 . Since there are four upstream flows 30 , each upstream flow 30 may be provided with a portion of the credits provided to the output flow 36 .
  • the credit allocation to the upstream flows 30 may be reduced if the resultant buffer usage would deadlock another flow 38 associated with the network device 34 .
  • the credits in permissions 40 provided in association with the upstream flows 30 are in proportion to the relative buffer usage and drain rate of the output flow 36 as a congestion avoidance strategy, although any desirable credit allocation technique may be employed.
  • credit chaining is implemented in each network device 42 , 44 , 46 , 48 , 50 , 52 , 54 in a communications network, where devices 42 , 44 , 46 are initial sources and device 54 is the final destination.
  • credit chaining can provide fair allocation of available buffer space without constraint of instantaneous access to buffer space.
  • a permission 68 indicating a number of credits for connection 90
  • a permission 50 indicating a number of credits for connection 52
  • a permission 54 indicating a number of credits for connection 56 are provided to intermediate device 52 from final destination device 54 .
  • Intermediate device 52 distributes the credits of permission 50 to network device 48 via permission 58 for connection 60 .
  • Device 52 also distributes the credits of permission 68 to network device 48 via permission 70 for connection 86 , and distributes the credits of permission 54 to device 50 via permission 72 for connection 88 .
  • the number of credits given in permissions 58 , 70 and 72 do not exceed the number of credits in permissions 50 , 68 and 54 , respectively.
  • network device 52 may be configured to be oversubscribed, such as by granting network device 48 and network device 50 a number of credits that may exceed the size of the logical link buffer in device 52 . In such a configuration the connection level credits may be used to avoid overflow of the logical link buffer in device 52 .
  • connection level oversubscription or any other desirable policy could be employed such that the number of credits given in permission 58 would be greater than the number of credits in permission 50 , the number of credits given in permission 70 would be greater than the number of credits in permission 68 , and the number of credits given in permission 72 would be greater than the number of credits in permission 54 .
  • a permission 74 is generated by intermediate device 50 and provided to intermediate device 46 for connection 84 .
  • the number of credits given in permission 74 at the connection level is less than or equal to the number of credits in permission 72 .
  • Intermediate device 48 distributes the credits of permission 58 to intermediate device 42 via permission 76 for connection 80 .
  • intermediate device 48 distributes the credits of permission 70 to intermediate device 44 via permission 78 for connection 82 .
  • the number of credits given in permission 76 and permission 78 at the connection level is less than or equal to the number of credits in permission 58 and permission 70 , respectively.
  • data units are transmitted along the respective connections.
  • data units are transmitted from initial source device 42 to intermediate device 48 via connection 80 , from initial source device 44 to intermediate device 48 via connection 82 , and from initial source device 46 to intermediate device 50 via connection 84 .
  • the transmission on connection 80 is quantitatively less than or equal to the credits in permission 76 .
  • the transmissions on connections 82 and 84 are less than or equal to the credits in permissions 78 and 74 .
  • Transmission on connection 86 is quantitatively less than or equal to the credits in permission 70
  • transmission on connection 60 is less than or equal to the credits in permission 58
  • transmission on connection 88 is less than or equal to the credits in permission 72
  • transmission on connection 52 is less than or equal to the credits in permission 50
  • transmission on connection 56 is less than or equal to the credits in permission 54
  • transmission on connection 90 is quantitatively less than or equal to the credits in permission 68 .
  • FIG. 4 illustrates an exemplary method for implementing credit chaining.
  • buffer allocation fairness is based on burst-level buffer availability.
  • the disclosed method does not constrain instantaneous bandwidth access.
  • access to available bandwidth is assumed to be purely a function of downstream buffer occupancy.
  • forwarding requirements are implemented as defined by the QFC protocol.
  • the disclosed method operates to ensure that a balance is maintained across buffer state updates that are sent and received so that no more than a predetermined “burst tolerance” amount of buffering can be held at a receiving device at any one time.
  • burst tolerance represented by a variable “burst_tolerance”
  • a state variable “b_up_cur” represents the most recent buffer availability indicator (e.g., permission with credits) sent upstream
  • “b_up_sum” represents the sum of buffer availability indicators sent upstream.
  • a state variable “b_dn_cur” represents the most recent buffer availability received from downstream before the update corresponding to “b_up_cur” was sent upstream.
  • a state variable “b_dn_sum” represents the sum of buffer availability received from the downstream device. Initially, b_up_cur, b_down_cur, b_up_sum, and b_dn_sum are set equal to zero as indicated in step 96 .
  • variable “b_dn_sum” is set equal to “b_dn_sum+b_dn_cur” as indicated in step 100 .
  • the variable “b_dn_cur” is then set equal to “cur_dn” as indicated in step 102 .

Abstract

Permission based flow control is implemented in a computer network having at least a downstream, intermediate and upstream network device by receiving credits at the intermediate network device from the downstream network device and granting credits from the intermediate network device to the upstream network device based at least in part upon the credits received at the intermediate network device from the downstream network device. Credit chaining as described above is employed to permit the granting of the right to transmit downstream to be predicated upon buffer availability downstream of the next downstream network device. Via the use of credit chaining, high utilization of network resources is achieved with minimal loss of data traffic.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
Priority is claimed to U.S. Provisional Application No. 60/032,620, entitled ACHIEVING NETWORK WIDE FAIRNESS IN A CREDIT BASED FLOW CONTROLLED NETWORK, filed Dec. 6, 1996, and U.S. Provisional Patent Application No. 60/049,538, entitled METHOD FOR FLOW CONTROLLING ATM TRAFFIC, filed Jun. 13, 1997.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
Not Applicable
BACKGROUND OF THE INVENTION
The present invention is related to flow control in a communications network, and more particularly to credit chaining to control data flow and eliminate data loss.
Broadly, flow control in communications networks can be permission based or non-permission based. In a permission based network, a transmitter obtains permission to transmit from a receiver prior to transmitting data. The permission includes an indication that sufficient buffer space is available at the receiver for receipt of the data. Permissions may be periodically sent as a matter of course or may be in direct response to a request to transmit generated by the transmitter. In a non-permission based network the transmitter operates without explicit advance indication that sufficient buffer space is available at the receiver. Permission based flow control provides improved accuracy and control relative to non-permission based flow control, and in particular allows for a service that avoids loss due to network congestion.
One known type of permission based flow control is Quantum Flow Control (“QFC”). QFC supports an Available Bit Rate (“ABR”) service in an Asynchronous Transfer Mode (“ATM”) network by controlling the number of ATM cells buffered at each device in a connection. In particular, QFC is applied to each flow through an input port and associated buffer in a receiving device to assure that sufficient buffer space is available.
Implementation of QFC avoids ATM cell loss due to network congestion. However, devices that are primarily output buffered present a difficulty because flows from a plurality of input ports in the device may converge upon a single output port and associated output buffer. The calculations necessary to avoid cell loss in the output buffered device consequently involve a many (transmitters):1 (receiver) relation, rather than the 1 (transmitter):1 (receiver) relation in the case of a primarily input buffered device. It is known to alleviate this problem by partitioning each output buffer to create one partition for each input port. However, the use of reserved buffer partitions can result in inefficient underusage of overall buffer space because unused but dedicated partitions are unavailable for use by other ports and flows. Further, the requisite overall buffer size grows as the number of input ports increases, and hence may not scale well in some device configurations.
BRIEF SUMMARY OF THE INVENTION
In accordance with the present invention, credits are chained between network devices. In a network with an intermediate network device, a network device that is upstream relative to the intermediate network device, and a network device that is downstream relative to the intermediate network device, credits are provided from the intermediate network device to the upstream network device based at least in part upon credits provided from the downstream network device to the intermediate network device. In order to achieve more efficient buffer utilization in some node architectures, e.g., output buffered architectures, credits may be chained as described above through each network device from the final destination device to the initial source device, thereby assuring sufficient buffer space to accommodate the data unit throughout the network prior to transmission from the initial source device. Alternatively, credits may be chained through fewer than each network device from the final destination device to the initial source device.
Credit chaining provides more efficient sharing of buffers among flows and prevents flows from becoming deadlocked. Some known flow control protocols dedicate a predetermined amount of buffer space to each individual flow. The dedicated buffer space is unavailable for use by other flows, even in the case where the flow to which the buffer space is dedicated is not utilizing the buffer space. More efficient buffer sharing is provided by credit chaining. Buffer sharing is implemented by preventing each individual flow from utilizing more than a predetermined proportional amount of buffering for storage at any network element at any time. The proportional amount is dynamically adjusted to ensure that each flow receives a “fair” proportion of the buffer space. Flows are prevented from becoming deadlocked because permission to forward traffic to devices further downstream than the next hop is obtained in advance. Advantageously, buffering requirements in network devices that implement credit chaining scale well as the number of ports and flows increases.
BRIEF DESCRIPTION OF THE DRAWING
The invention will be more fully understood in view of the following Detailed Description of the Invention, in conjunction with the Drawing, of which:
FIG. 1 is a block diagram of credit chaining in a single flow;
FIG. 2 is a block diagram of credit allocation when multiple flows converge upon a single buffer in a network device;
FIG. 3 is a block diagram of network-wide credit chaining; and
FIG. 4 is a flow diagram that illustrates a method of credit chaining.
DETAILED DESCRIPTION OF THE INVENTION
U.S. Provisional Application No. 60/032,620, entitled ACHIEVING NETWORK WIDE FAIRNESS IN A CREDIT BASED FLOW CONTROLLED NETWORK, filed Dec. 6, 1996, and U.S. Provisional Patent Application No. 60/049,538, entitled METHOD FOR FLOW CONTROLLING ATM TRAFFIC, filed Jun. 13, 1997 are both incorporated herein by reference.
Referring to FIG. 1, a communications network includes a plurality of network devices such as a bridges, routers and switches. In the illustrated embodiment a central network device 10 is coupled with an upstream network device 12 and a downstream network device 14. Each network device includes a plurality of input ports 16, a plurality of output ports 18 and a buffer pool 20. A data unit 22 associated with a flow 24 such as a cell over a virtual connection in an Asynchronous Transfer Mode (“ATM”) network is transmitted from an output port 18 of the upstream network device 12 to an input port 16 of the central network device 10, then to an output port 18 of the central network device 10, and then to an input port 16 of the downstream network device 14. The data unit 22 is stored in the buffer pool 20, which is shared among a plurality of flows when in the central network device 10.
A permission based flow control protocol such as Quantum Flow Control (“QFC”) is implemented to facilitate operation of the communications network. QFC is a protocol for regulating data unit traffic in a communications network such as an ATM network to avoid data unit (ATM cell) loss due to network congestion. In order to avoid cell loss QFC employs explicit advance indication of buffer availability within a receiving network device to control upstream transmitter device access to available resources in the receiving device. Periodically, the receiving network device transmits a permission including “credits” that indicate whether and how much data may be transmitted to the receiving network device.
In a general case, when a receiving network device provides advance indication of buffer availability to a transmitter network device, the receiving network device may need to buffer incoming data until such time as the receiving network device is provided with an indication of downstream buffer availability. When credit chaining is implemented the receiving network device waits for an advance indication from downstream prior to sending an advance indication upstream. This allows for the forwarding of some or possibly all of the received data to be limited only by the scheduling policy, and not by availability of buffers downstream.
In accordance with the QFC protocol in the illustrated embodiment a permission 26 is transmitted from downstream network device 14 to central network device 10 indicating a number of transmission credits before the central network device 10 transmits the data unit 22 to the downstream network device 14. Further, a permission 28 is transmitted from central network device 10 to upstream network device 12 indicating a number of transmission credits before the upstream network device 12 transmits the data unit 22 to the central network device 10. In accordance with credit chaining, the credits in the permission 28 provided by the central network device 10 to the upstream network device 12 are based at least in part on the credits in the permission 26 provided to the central network device 10 by the downstream network device 14. Hence, advance indication of buffer availability in both the central network device 10 and the downstream network device 14 is provided before the data unit 22 is transmitted from the upstream device 12, and the flow 24 is permitted to transmit to the central network device 10 only if credits have been reported to the central network device from the downstream device. It should be noted however that the permission to forward traffic further downstream may include provision for temporarily holding data units in buffers, i.e., permission does not necessarily indicate that bandwidth is available for uninterrupted transmission from initial source to final destination.
Credit chaining advantageously provides sharing of all buffers 20 among flows and prevents flows from becoming deadlocked. Buffer sharing is provided because each individual flow is prevented from utilizing more than a predetermined proportional amount of buffer space for storage at any network element at any time. Deadlocks cannot occur because permission to forward traffic further downstream is obtained in advance. In addition, the buffering requirements in each network device scale effectively as the number of ports and flows increases. While some latency may be incurred before data units associated with a flow can be permitted to transmit as a consequence of credit chaining, this latency should normally be on the order of the propagation delays between network devices. In a worst case scenario the latency is on the order of one-half a round trip time.
Referring to FIG. 2, credit chaining may be employed within a network device 34 to assure buffer sharing and prevent deadlock when a plurality of flows converge on a shared buffer in a network device, such as in multipoint-to-point operation. The illustrated network device 34 supports a plurality of input flows 30 that feed into a shared output buffer 32 and form an output flow 36 that drains the shared buffer 32. The network device 34 controls the allocation of buffer space to the upstream flows 30 via a credit based flow control protocol such as QFC. Further, the credits provided to the upstream flows 30 are set based at least in part upon the credits provided for the output flow 36. Since there are four upstream flows 30, each upstream flow 30 may be provided with a portion of the credits provided to the output flow 36. However, the credit allocation to the upstream flows 30 may be reduced if the resultant buffer usage would deadlock another flow 38 associated with the network device 34. In the exemplary embodiment, the credits in permissions 40 provided in association with the upstream flows 30 are in proportion to the relative buffer usage and drain rate of the output flow 36 as a congestion avoidance strategy, although any desirable credit allocation technique may be employed.
Referring to FIG. 3, in one embodiment credit chaining is implemented in each network device 42, 44, 46, 48, 50, 52, 54 in a communications network, where devices 42, 44, 46 are initial sources and device 54 is the final destination. When implemented as a network-wide policy, credit chaining can provide fair allocation of available buffer space without constraint of instantaneous access to buffer space. In the illustrated example, a permission 68 indicating a number of credits for connection 90, a permission 50 indicating a number of credits for connection 52 and a permission 54 indicating a number of credits for connection 56 are provided to intermediate device 52 from final destination device 54. Intermediate device 52 distributes the credits of permission 50 to network device 48 via permission 58 for connection 60. Device 52 also distributes the credits of permission 68 to network device 48 via permission 70 for connection 86, and distributes the credits of permission 54 to device 50 via permission 72 for connection 88. At the connection level, the number of credits given in permissions 58, 70 and 72 do not exceed the number of credits in permissions 50, 68 and 54, respectively. At the logical link level network device 52 may be configured to be oversubscribed, such as by granting network device 48 and network device 50 a number of credits that may exceed the size of the logical link buffer in device 52. In such a configuration the connection level credits may be used to avoid overflow of the logical link buffer in device 52. It should be noted however that in alternative embodiments connection level oversubscription or any other desirable policy could be employed such that the number of credits given in permission 58 would be greater than the number of credits in permission 50, the number of credits given in permission 70 would be greater than the number of credits in permission 68, and the number of credits given in permission 72 would be greater than the number of credits in permission 54. In response to the permission 72 provided to intermediate device 50 by intermediate device 52, a permission 74 is generated by intermediate device 50 and provided to intermediate device 46 for connection 84. In the illustrated embodiment the number of credits given in permission 74 at the connection level is less than or equal to the number of credits in permission 72. Intermediate device 48 distributes the credits of permission 58 to intermediate device 42 via permission 76 for connection 80. Similarly, intermediate device 48 distributes the credits of permission 70 to intermediate device 44 via permission 78 for connection 82. In the illustrated embodiment the number of credits given in permission 76 and permission 78 at the connection level is less than or equal to the number of credits in permission 58 and permission 70, respectively.
When each of the initial source devices 42, 44, 46 has received a permission, data units are transmitted along the respective connections. In particular, data units are transmitted from initial source device 42 to intermediate device 48 via connection 80, from initial source device 44 to intermediate device 48 via connection 82, and from initial source device 46 to intermediate device 50 via connection 84. In the illustrated embodiment the transmission on connection 80 is quantitatively less than or equal to the credits in permission 76. Similarly, in the illustrated embodiment the transmissions on connections 82 and 84 are less than or equal to the credits in permissions 78 and 74. Transmission on connection 86 is quantitatively less than or equal to the credits in permission 70, transmission on connection 60 is less than or equal to the credits in permission 58 and transmission on connection 88 is less than or equal to the credits in permission 72. Finally, transmission on connection 52 is less than or equal to the credits in permission 50, transmission on connection 56 is less than or equal to the credits in permission 54 and transmission on connection 90 is quantitatively less than or equal to the credits in permission 68. Hence, via the presently disclosed credit chaining technique output buffers are shared and buffer availability is assured prior to data unit transmission.
FIG. 4 illustrates an exemplary method for implementing credit chaining. In accordance with the illustrated method, buffer allocation fairness is based on burst-level buffer availability. The disclosed method does not constrain instantaneous bandwidth access. For the purposes of illustrating this method, access to available bandwidth is assumed to be purely a function of downstream buffer occupancy. Further, forwarding requirements are implemented as defined by the QFC protocol.
The disclosed method operates to ensure that a balance is maintained across buffer state updates that are sent and received so that no more than a predetermined “burst tolerance” amount of buffering can be held at a receiving device at any one time. In particular, burst tolerance (represented by a variable “burst_tolerance”) is independently managed within each network device. A state variable “b_up_cur” represents the most recent buffer availability indicator (e.g., permission with credits) sent upstream, and “b_up_sum” represents the sum of buffer availability indicators sent upstream. A state variable “b_dn_cur” represents the most recent buffer availability received from downstream before the update corresponding to “b_up_cur” was sent upstream. A state variable “b_dn_sum” represents the sum of buffer availability received from the downstream device. Initially, b_up_cur, b_down_cur, b_up_sum, and b_dn_sum are set equal to zero as indicated in step 96.
For each received update containing a buffer availability of value “cur_dn,” as determined in step 98, the variable “b_dn_sum” is set equal to “b_dn_sum+b_dn_cur” as indicated in step 100. The variable “b_dn_cur” is then set equal to “cur_dn” as indicated in step 102.
For each generated update, as determined in step 98, the buffer availability value “cur_up” in the update is chosen to satisfy the invariant indicated in step 104: Let b_up_cur=cur_up; (INVARIANT) Verify that b_up_cur+b_up_sum≦b_dn_cur+burst_tolerance+b_dn_sum; (allowing up to burst tolerance unless the permission from the next downstream device is less than the burst tolerance) and Let b_up_sum=b_up_sum+b_up_cur; (update sum of buffer availability). Because the sum of the most recent buffer availability indicator sent to the upstream network device combined with the running sum of buffer availability indicators sent to the upstream network device (total buffer availability indicators sent) is less than or equal to the lesser of the most recently received buffer availability indicator and the burst tolerance combined with the running sum of buffer availability indicators received from the downstream network device, sufficient buffer space for handling the data unit throughout the network is assured prior to data unit transmission from the upstream network device.
Having described the preferred embodiments of the invention, other embodiments which incorporate concepts of the invention will now become apparent to one of skill in the art. Therefore, the invention should not be viewed as limited to the disclosed embodiments but rather should be viewed as limited only by the spirit and scope of the appended claims.

Claims (20)

What is claimed is:
1. A method for implementing permission based flow control in a computer network having at least first, second and third network devices, where the first network device is downstream relative to the second network device and the third network device is upstream relative to the second network device, and wherein the second network device receives data units from and provides permission credits to the third network device and transmits data units to the first network device and receives permission credits from the first network device, comprising the steps of:
receiving permission credits at the second network device from the first network device; and
granting permission credits from the second network device to the third network device based at least in part upon the credits received at the second network device from the first network device, and wherein, at least at some times, the credits granted from the second network device to the third network device are greater than the credits received at the second network device from the first network device, and wherein, at least at some other times, the credits granted from the second network device to the third network device are no greater than the credits received at the second network device from the first network device.
2. The method of claim 1 wherein the first network device is a final destination, and wherein one or more network devices are coupled between the first network device and a source network device, and including, at least at some times, the further step of chaining the credits granted in the granting step through each network device from the first network device to the source network device prior to transmitting any data units from the source network device.
3. The method of claim 1 including the further step of transmitting a request to transmit from the third device to the second device.
4. The method of claim 3 including the further step of, in response to the request transmitted from the third network device to the second network device, transmitting a request to transmit from the second network device to the first network device.
5. The method of claim 4 including the further step of determining a number of credits in the first network device in response to the request to transmit received from the second network device.
6. The method of claim 5, wherein the computer network further includes a fourth network device, the fourth network device located upstream relative to the third network device, and wherein the third network device receives data units from and transmits permission credits to the fourth network device, and including the further step of granting, from the third network device to the fourth network device, less than or equal to the amount of credits received at the third network device from the second network device.
7. The method of claim 6 including the further step of granting, from the third network device to the fourth network device, an amount of credits in proportion to the drain rate of the third network device.
8. A network device for facilitating flow of data within a network including at least one network device that is upstream relative to the facilitating device and at least one network device that is downstream relative to the facilitating device, comprising:
a flow controller operative in response to a first transmit permission received from the downstream network device, and to provide a corresponding second transmit permission to the upstream network device based at least in part upon the first transmit permission, said first permission including a first number of permission credits, said second permission including a second number of permission credits, and wherein, at least at some times, said second number of permission credits is greater than said first number of permission credits, and wherein, at least at some other times, said second number of permission credits is not greater than said first number of permission credits.
9. The network device of claim 8 wherein said flow controller is further operative, in response to a first request to transmit received from the upstream network device, to generate a second request to transmit which is provided to the downstream network device.
10. The network device of claim 8 wherein said flow controller maintains indications of burst tolerance, a most recent permission credit value sent to the upstream network device, a running sum of permission credit values sent to the upstream network device, a most recent permission credit value received from the downstream network device and a running sum of permission credit values received from the downstream network device.
11. The network device of claim 10 wherein, responsive to a transmit permission received from the downstream network device, the most recent permission credit value received from the downstream network device and the running sum of permission credit values received from the downstream network device are updated.
12. The network device of claim 11 wherein, responsive to a transmit permission provided to the upstream network device, the sum of the most recent permission credit value sent to the upstream network device combined with the sum of permission credit values sent to the upstream network device is less than or equal to the lesser of the most recently received permission credit value and the burst tolerance combined with the sum of permission credit values received from the downstream network device.
13. A method for performing flow control in a credit based flow controlled computer network having at least a first virtual connection for communication first information from a first computer network device to a second computer network device and further for communicating said first information from said second computer network device to a third computer network device and having at least a second virtual connection for communicating second information from said third computer network device to said second computer network device and further for communicating said second information from said second computer network device to said first computer network device, said method comprising the steps of:
forwarding a first credit message from said third computer network device for receipt by said second computer network device via said second virtual connection, said first credit message including at least a first number of credits indicative of buffer availability within said third computer network device;
forwarding a second credit message from said second computer network device for receipt by said first computer network device via said second virtual connection, said second credit message including a second number of credits, wherein said second number of credits is based, at least in part, upon the first number of credits contained within said first credit message, and wherein, at least at some times, said second number of credits is greater than said first number of credits, and wherein, at least at some other times, said second number of credits is not greater than said first number of credits; and
in response to receipt of said second credit message at said first computer network device, transmitting from said first computer network device for receipt by said second computer network device at least some of said first information wherein the amount of said first information transmitted is based, at least in part, upon the second number of credits specified in said second credit message.
14. The method of claim 13 wherein said second number of credits is in proportion to the first number of credits contained within said first credit message.
15. The method of claim 13, wherein the computer network further includes a fourth computer network device, wherein said first virtual circuit is further for communicating said first information from said third computer network device to said fourth computer network device, wherein said second virtual circuit is further for communicating said second information from said fourth computer network device to said third computer network device, and wherein said first number of credits in said first credit message is not greater than a number of credits contained within a third credit message previously received by said third computer network device from said fourth computer network device.
16. The method of claim 13 including the further step of transmitting from said first computer network device for receipt by said second computer network device at least some of said first information wherein the amount of said first information transmitted is proportional to the first number of credits specified in said second credit message.
17. The method of claim 13 including the further step of transmitting from said second computer network device for receipt by said third computer network device at least some of said first information wherein the amount of said first information transmitted is not greater than the first number of credits specified in said first credit message.
18. The method of claim 1, wherein the first network device, second network device and third network device each include at least one input port and at least one output port, and further comprising:
receiving the permission credits received at the second network device at the at least one input port of the second network device;
transmitting the permission credits granted by the second network device at the at least one output port of the second network device; and
receiving the permission credits granted by the second network device at the at least one input port of the third network device.
19. The network device of claim 8, further comprising:
at least one input port;
at least one output port; and
wherein the first transmit permission received from the downstream network device is received at the at least one input port, and the second transmit permission is transmitted at the at least one output port.
20. A method for implementing permission based flow control in a computer network in which transmission permission credits are chained between network devices, wherein said method includes over-subscription at a logical link level, comprising:
first, second and third network devices, wherein said first network device is downstream relative to said second network device, and said third network device is upstream relative to said second network device, wherein said second network device receives data units from said third network device and transmits permission credits to said third network device, and wherein said second network device transmits data units to said first network device and receives permission credits from said first network device;
wherein said transmission permission credits transmitted from said second network device to said third network device are based at least in part upon transmission permission credits provided from said first network device to said second network device;
wherein said second network device may, at least at sometimes, be over-subscribed at said logical link level by transmitting to said third network device a number of transmission permission credits exceeding a size of a logical link buffer in said second network device; and
wherein, at least at some other times, said second network device may transmit to said third network device a number of transmission permission credits not exceeding a size of a logical link buffer in said second network device.
US08/985,048 1996-12-06 1997-12-04 Method for flow controlling ATM traffic Expired - Fee Related US6249819B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/985,048 US6249819B1 (en) 1996-12-06 1997-12-04 Method for flow controlling ATM traffic

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US3262096P 1996-12-06 1996-12-06
US4953897P 1997-06-13 1997-06-13
US08/985,048 US6249819B1 (en) 1996-12-06 1997-12-04 Method for flow controlling ATM traffic

Publications (1)

Publication Number Publication Date
US6249819B1 true US6249819B1 (en) 2001-06-19

Family

ID=26708674

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/985,048 Expired - Fee Related US6249819B1 (en) 1996-12-06 1997-12-04 Method for flow controlling ATM traffic

Country Status (4)

Country Link
US (1) US6249819B1 (en)
EP (1) EP0894380A4 (en)
JP (1) JP2001500338A (en)
WO (1) WO1998025378A1 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347337B1 (en) * 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
US20030043812A1 (en) * 2001-07-06 2003-03-06 Abbas Rashid Cross-bar switch incorporating a sink port with retry capability
WO2003019393A1 (en) * 2001-08-24 2003-03-06 Intel Corporation A general intput/output architecture, protocol and related methods to implement flow control
US6532501B1 (en) * 1999-09-30 2003-03-11 Silicon Graphics, Inc. System and method for distributing output queue space
US20030131179A1 (en) * 2001-08-24 2003-07-10 Jasmin Ajanovic General input/output architecture, protocol and related methods to provide isochronous channels
US6594701B1 (en) * 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6657955B1 (en) * 1999-05-27 2003-12-02 Alcatel Canada Inc. Buffering system employing per traffic flow accounting congestion control
US6760787B2 (en) 1998-08-04 2004-07-06 Miscrosoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6992984B1 (en) * 2000-03-07 2006-01-31 Lucent Technologies Inc. Credit-based adaptive flow control for multi-stage multi-dimensional switching architecture
US20070150329A1 (en) * 2005-12-22 2007-06-28 Canon Kabushiki Kaisha Just-in-time workflow
GB2465595A (en) * 2008-11-21 2010-05-26 Nokia Corp Flow control for a gateway
US20110055436A1 (en) * 2009-08-31 2011-03-03 Micron Technology, Inc. Device to device flow control
US20120117147A1 (en) * 2000-02-07 2012-05-10 Parallel Networks Llc Method and apparatus for dynamic data flow control using prioritization of data requests
US9836424B2 (en) 2001-08-24 2017-12-05 Intel Corporation General input/output architecture, protocol and related methods to implement flow control

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2881682B1 (en) 2005-02-08 2007-04-27 Salomon Sa WHEEL RIM AND METHOD OF MANUFACTURE
FR2926941B1 (en) * 2008-01-30 2010-04-02 St Microelectronics Sa DATA TRANSFER METHOD AND CORRESPONDING DEVICE

Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849968A (en) 1985-09-06 1989-07-18 Washington University Buffer management system
US4897833A (en) 1987-10-16 1990-01-30 Digital Equipment Corporation Hierarchical arbitration system
US5029164A (en) * 1990-04-13 1991-07-02 Digital Equipment Corporation Congestion avoidance in high-speed network carrying bursty traffic
US5128932A (en) 1990-08-27 1992-07-07 Bell Communications Research, Inc. Traffic flow control and call set-up in multi-hop broadband networks
US5166930A (en) 1990-12-17 1992-11-24 At&T Bell Laboratories Data channel scheduling discipline arrangement and method
US5179556A (en) 1991-08-02 1993-01-12 Washington University Bandwidth management and congestion control scheme for multicast ATM networks
US5258979A (en) 1990-03-20 1993-11-02 Fujitsu Limited ATM communication system with optimal traffic control by changing the allocated bandwidth
US5280470A (en) 1990-11-21 1994-01-18 At&T Bell Laboratories Bandwidth and congestion management in accessing broadband ISDN networks
US5289462A (en) 1992-08-19 1994-02-22 International Business Machines Corp. Traffic management in packet communications networks
US5289463A (en) 1991-05-30 1994-02-22 Alcatel Cit Method of managing flows in a wideband integrated services digital telecommunications network
US5291481A (en) 1991-10-04 1994-03-01 At&T Bell Laboratories Congestion control for high speed packet networks
US5313454A (en) 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
US5319638A (en) 1991-09-12 1994-06-07 Bell Communications Research, Inc. Link-by-link congestion control for packet transmission systems
US5341373A (en) 1991-02-05 1994-08-23 Fujitsu Limited Congestion relieving system in a communication system
US5367520A (en) 1992-11-25 1994-11-22 Bell Communcations Research, Inc. Method and system for routing cells in an ATM switch
US5371893A (en) 1991-12-27 1994-12-06 International Business Machines Corporation Look-ahead priority arbitration system and method
US5377327A (en) 1988-04-22 1994-12-27 Digital Equipment Corporation Congestion avoidance scheme for computer networks
US5392280A (en) 1994-04-07 1995-02-21 Mitsubishi Electric Research Laboratories, Inc. Data transmission system and scheduling protocol for connection-oriented packet or cell switching networks
US5432784A (en) 1993-07-26 1995-07-11 Digital Equipment Corporation Flow control method and apparatus for systems with long distance links
US5432824A (en) * 1994-07-06 1995-07-11 Mitsubishi Electric Research Laboratories, Inc. Credit/rate-based system for controlling traffic in a digital communication network
US5463775A (en) 1991-06-10 1995-10-31 International Business Machines Corporation System and method for performing monitoring of resources in a data processing system in real time
US5491694A (en) 1994-01-28 1996-02-13 Cabletron Systems, Inc. System and method for allocating a shared resource among competing devices
US5515359A (en) 1994-08-26 1996-05-07 Mitsubishi Electric Research Laboratories, Inc. Credit enhanced proportional rate control system
US5517495A (en) 1994-12-06 1996-05-14 At&T Corp. Fair prioritized scheduling in an input-buffered switch
US5528591A (en) * 1995-01-31 1996-06-18 Mitsubishi Electric Research Laboratories, Inc. End-to-end credit-based flow control system in a digital communication network
US5533009A (en) 1995-02-03 1996-07-02 Bell Communications Research, Inc. Bandwidth management and access control for an ATM network
US5610745A (en) * 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
US5617409A (en) * 1994-01-28 1997-04-01 Digital Equipment Corporation Flow control with smooth limit setting for multiple virtual circuits
US5748613A (en) * 1996-03-29 1998-05-05 Hewlett-Packard Company Communication pacing method
US5781533A (en) * 1995-07-19 1998-07-14 Fujitsu Network Communications, Inc. Link buffer sharing method and apparatus
US5852602A (en) * 1996-01-29 1998-12-22 Nec Corporation Credit control method and system for ATM communication apparatus
US5953318A (en) * 1996-12-04 1999-09-14 Alcatel Usa Sourcing, L.P. Distributed telecommunications switching system and method

Patent Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849968A (en) 1985-09-06 1989-07-18 Washington University Buffer management system
US4897833A (en) 1987-10-16 1990-01-30 Digital Equipment Corporation Hierarchical arbitration system
US5377327A (en) 1988-04-22 1994-12-27 Digital Equipment Corporation Congestion avoidance scheme for computer networks
US5258979A (en) 1990-03-20 1993-11-02 Fujitsu Limited ATM communication system with optimal traffic control by changing the allocated bandwidth
US5029164A (en) * 1990-04-13 1991-07-02 Digital Equipment Corporation Congestion avoidance in high-speed network carrying bursty traffic
US5128932A (en) 1990-08-27 1992-07-07 Bell Communications Research, Inc. Traffic flow control and call set-up in multi-hop broadband networks
US5280470A (en) 1990-11-21 1994-01-18 At&T Bell Laboratories Bandwidth and congestion management in accessing broadband ISDN networks
US5166930A (en) 1990-12-17 1992-11-24 At&T Bell Laboratories Data channel scheduling discipline arrangement and method
US5341373A (en) 1991-02-05 1994-08-23 Fujitsu Limited Congestion relieving system in a communication system
US5289463A (en) 1991-05-30 1994-02-22 Alcatel Cit Method of managing flows in a wideband integrated services digital telecommunications network
US5463775A (en) 1991-06-10 1995-10-31 International Business Machines Corporation System and method for performing monitoring of resources in a data processing system in real time
US5179556A (en) 1991-08-02 1993-01-12 Washington University Bandwidth management and congestion control scheme for multicast ATM networks
US5319638A (en) 1991-09-12 1994-06-07 Bell Communications Research, Inc. Link-by-link congestion control for packet transmission systems
US5291481A (en) 1991-10-04 1994-03-01 At&T Bell Laboratories Congestion control for high speed packet networks
US5371893A (en) 1991-12-27 1994-12-06 International Business Machines Corporation Look-ahead priority arbitration system and method
US5313454A (en) 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
US5289462A (en) 1992-08-19 1994-02-22 International Business Machines Corp. Traffic management in packet communications networks
US5367520A (en) 1992-11-25 1994-11-22 Bell Communcations Research, Inc. Method and system for routing cells in an ATM switch
US5432784A (en) 1993-07-26 1995-07-11 Digital Equipment Corporation Flow control method and apparatus for systems with long distance links
US5617409A (en) * 1994-01-28 1997-04-01 Digital Equipment Corporation Flow control with smooth limit setting for multiple virtual circuits
US5491694A (en) 1994-01-28 1996-02-13 Cabletron Systems, Inc. System and method for allocating a shared resource among competing devices
US5392280A (en) 1994-04-07 1995-02-21 Mitsubishi Electric Research Laboratories, Inc. Data transmission system and scheduling protocol for connection-oriented packet or cell switching networks
US5432824A (en) * 1994-07-06 1995-07-11 Mitsubishi Electric Research Laboratories, Inc. Credit/rate-based system for controlling traffic in a digital communication network
US5515359A (en) 1994-08-26 1996-05-07 Mitsubishi Electric Research Laboratories, Inc. Credit enhanced proportional rate control system
US5517495A (en) 1994-12-06 1996-05-14 At&T Corp. Fair prioritized scheduling in an input-buffered switch
US5528591A (en) * 1995-01-31 1996-06-18 Mitsubishi Electric Research Laboratories, Inc. End-to-end credit-based flow control system in a digital communication network
US5533009A (en) 1995-02-03 1996-07-02 Bell Communications Research, Inc. Bandwidth management and access control for an ATM network
US5781533A (en) * 1995-07-19 1998-07-14 Fujitsu Network Communications, Inc. Link buffer sharing method and apparatus
US5610745A (en) * 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
US5852602A (en) * 1996-01-29 1998-12-22 Nec Corporation Credit control method and system for ATM communication apparatus
US5748613A (en) * 1996-03-29 1998-05-05 Hewlett-Packard Company Communication pacing method
US5953318A (en) * 1996-12-04 1999-09-14 Alcatel Usa Sourcing, L.P. Distributed telecommunications switching system and method

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Design and Performance of Multinet Switch: A Multistage ATM Switch Architecture with Partially Shared Buffers Hyong S. Kim, Member, IEEE.
Dynamic Queue Length Thresholds in a Shared Memory ATM Switch Abhijit K. Choudhury and Ellen L. Hahne, AT&T Bell Laboratories, Murray Hill, NJ 07974-0636.
Methodologies for Bandwidth Allocation, Transmission Scheduling, and Congestion Avoidance in Broadband ATM Networks, K. Sriram Room 3H-607, AT&T bell Laboratories, Holmdel, NJ 07733.
Overflow Analysis for Finite Waiting Room Systems, Roch Guerin, Member, IEEE, and Luke Y. C. Lien.
Traffic Characteristics Evaluation of a Shared Buffer ATM Switch Noboru Enco, Toshiya Ohuchi Takahiko Kozaki, Hiroshi Kuwahara and Makoto Mori Central Research Laboratory, Hitachi, Ltd., Totsuka Works, Hitachi, Ltd.
VLSI Implementations of ATM Buffer Management, Charles Zukowski 7 Tong-Bi Pei Departement of Electrical Engineering Center for Telecommunications Research, Columbia University.

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760787B2 (en) 1998-08-04 2004-07-06 Miscrosoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6594701B1 (en) * 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6347337B1 (en) * 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
US6460080B1 (en) 1999-01-08 2002-10-01 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
US6657955B1 (en) * 1999-05-27 2003-12-02 Alcatel Canada Inc. Buffering system employing per traffic flow accounting congestion control
US6532501B1 (en) * 1999-09-30 2003-03-11 Silicon Graphics, Inc. System and method for distributing output queue space
US9124594B2 (en) 2000-02-07 2015-09-01 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
US8296451B2 (en) * 2000-02-07 2012-10-23 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
US20120117147A1 (en) * 2000-02-07 2012-05-10 Parallel Networks Llc Method and apparatus for dynamic data flow control using prioritization of data requests
US6992984B1 (en) * 2000-03-07 2006-01-31 Lucent Technologies Inc. Credit-based adaptive flow control for multi-stage multi-dimensional switching architecture
US20030043829A1 (en) * 2001-07-06 2003-03-06 Abbas Rashid Cross-bar switch employing a multiple entry point FIFO
US20030043812A1 (en) * 2001-07-06 2003-03-06 Abbas Rashid Cross-bar switch incorporating a sink port with retry capability
US7184446B2 (en) 2001-07-06 2007-02-27 Juniper Networks, Inc. Cross-bar switch employing a multiple entry point FIFO
US20070091880A1 (en) * 2001-07-06 2007-04-26 Juniper Networks, Inc. Cross-bar switch incorporating a sink port with retry capability
US7733905B2 (en) 2001-07-06 2010-06-08 Juniper Networks, Inc. Cross-bar switch having bandwidth allocation
US7170902B2 (en) * 2001-07-06 2007-01-30 Juniper Networks, Inc. Cross-bar switch incorporating a sink port with retry capability
US20070127469A1 (en) * 2001-07-06 2007-06-07 Juniper Networks, Inc. Cross-bar switch having bandwidth allocation
US7813364B2 (en) 2001-07-06 2010-10-12 Juniper Networks, Inc. Cross-bar switch incorporating a sink port with retry capability
US7536473B2 (en) 2001-08-24 2009-05-19 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US9736071B2 (en) 2001-08-24 2017-08-15 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US7177971B2 (en) 2001-08-24 2007-02-13 Intel Corporation General input/output architecture, protocol and related methods to provide isochronous channels
US7231486B2 (en) 2001-08-24 2007-06-12 Intel Corporation General input/output architecture, protocol and related methods to support legacy interrupts
US9860173B2 (en) 2001-08-24 2018-01-02 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US7353313B2 (en) 2001-08-24 2008-04-01 Intel Corporation General input/output architecture, protocol and related methods to manage data integrity
US7152128B2 (en) 2001-08-24 2006-12-19 Intel Corporation General input/output architecture, protocol and related methods to manage data integrity
US20090193164A1 (en) * 2001-08-24 2009-07-30 Jasmin Ajanovic General Input/Output Architecture, Protocol and Related Methods to Implement Flow Control
US9836424B2 (en) 2001-08-24 2017-12-05 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US20030158992A1 (en) * 2001-08-24 2003-08-21 Jasmin Ajanovic General input/output architecture, protocol and related methods to implement flow control
US20030145134A1 (en) * 2001-08-24 2003-07-31 Wehage Eric R. General input/output architecture, protocol and related methods to manage data integrity
US9049125B2 (en) 2001-08-24 2015-06-02 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US9602408B2 (en) 2001-08-24 2017-03-21 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US9565106B2 (en) 2001-08-24 2017-02-07 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US20030131179A1 (en) * 2001-08-24 2003-07-10 Jasmin Ajanovic General input/output architecture, protocol and related methods to provide isochronous channels
US20070038793A1 (en) * 2001-08-24 2007-02-15 Wehage Eric R General input/output architecture, protocol and related methods to manage data integrity
WO2003019393A1 (en) * 2001-08-24 2003-03-06 Intel Corporation A general intput/output architecture, protocol and related methods to implement flow control
US20030115380A1 (en) * 2001-08-24 2003-06-19 Jasmin Ajanovic General input/output architecture, protocol and related methods to support legacy interrupts
US9088495B2 (en) 2001-08-24 2015-07-21 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US8566473B2 (en) 2001-08-24 2013-10-22 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US9071528B2 (en) 2001-08-24 2015-06-30 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US8819306B2 (en) 2001-08-24 2014-08-26 Intel Corporation General input/output architecture with PCI express protocol with credit-based flow control
US8185423B2 (en) * 2005-12-22 2012-05-22 Canon Kabushiki Kaisha Just-in time workflow
US20070150329A1 (en) * 2005-12-22 2007-06-28 Canon Kabushiki Kaisha Just-in-time workflow
US8644148B2 (en) * 2008-11-21 2014-02-04 Nokia Corporation Method and apparatus for using layer 4 information in a layer 2 switch in order to support end-to-end (layer 4) flow control in a communications network
US20110216653A1 (en) * 2008-11-21 2011-09-08 Nokia Corporation Method and apparatus for using layer 4 information in a layer 2 switch in order to support end-to-end (layer 4) flow control in a communicatio network
GB2465595B (en) * 2008-11-21 2010-12-08 Nokia Corp A method and an apparatus for a gateway
GB2465595A (en) * 2008-11-21 2010-05-26 Nokia Corp Flow control for a gateway
US8402178B2 (en) 2009-08-31 2013-03-19 Micron Technology, Inc. Device to device flow control within a chain of devices
US8209447B2 (en) * 2009-08-31 2012-06-26 Micron Technology, Inc. Device to device flow control within a chain of devices
US20110055436A1 (en) * 2009-08-31 2011-03-03 Micron Technology, Inc. Device to device flow control

Also Published As

Publication number Publication date
EP0894380A4 (en) 2001-05-16
EP0894380A1 (en) 1999-02-03
JP2001500338A (en) 2001-01-09
WO1998025378A1 (en) 1998-06-11

Similar Documents

Publication Publication Date Title
EP0693840B1 (en) Traffic control system having distributed rate calculation and link-based flow control
US5787086A (en) Method and apparatus for emulating a circuit connection in a cell based communications network
US5457687A (en) Method and apparatus for backward explicit congestion notification (BECN) in an ATM network
US5541912A (en) Dynamic queue length thresholds in a shared memory ATM switch
US6456590B1 (en) Static and dynamic flow control using virtual input queueing for shared memory ethernet switches
US5193090A (en) Access protection and priority control in distributed queueing
US6249819B1 (en) Method for flow controlling ATM traffic
JP2693266B2 (en) Data cell congestion control method in communication network
EP0753979A1 (en) Routing method and system for a high speed packet switching network
EP0717532A1 (en) Dynamic fair queuing to support best effort traffic in an ATM network
US5617409A (en) Flow control with smooth limit setting for multiple virtual circuits
US6934253B2 (en) ATM switch with rate-limiting congestion control
EP0894384B1 (en) A method and a network element for transferring data packets in a teletransmission network
US5477530A (en) Method and apparatus for managing communications between multi-node quota-based communication systems
US5966381A (en) Method and apparatus for explicit rate flow control in ATM networks
US5852601A (en) Method and apparatus for reactive congestion control in an asynchronous transfer mode (ATM) network
EP0838970B1 (en) Method for shared memory management in network nodes
WO1997004546A1 (en) Method and apparatus for reducing information loss in a communications network
EP0481447A2 (en) Method of controlling communication network incorporating virtual channels exchange nodes and virtual paths exchange nodes
US7330475B2 (en) Method for sharing the bandwidth available for unicast and multicast flows in an asynchronous switching node
KR100319457B1 (en) Traffic control method for ATM switches
AU622698B2 (en) Access protection and priority control in distributed queueing
US7142558B1 (en) Dynamic queuing control for variable throughput communication channels
WO1997004555A1 (en) Method and apparatus for queuing data in a communications device
WO1997004571A1 (en) Method and apparatus for emulating a circuit connection in a cell based communications network

Legal Events

Date Code Title Description
AS Assignment

Owner name: FUJITSU LIMITED, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUNT, DOUGLAS H.;NAIR, RAJ KRISHNAN;REEL/FRAME:008974/0225

Effective date: 19980108

Owner name: FUJITSU NETWORK COMMUNICATIONS, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUNT, DOUGLAS H.;NAIR, RAJ KRISHNAN;REEL/FRAME:008974/0225

Effective date: 19980108

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20130619