Multipoint-to-point arbitration in a network switch

Information

  • Patent Grant
  • 5982776
  • Patent Number
    5,982,776
  • Date Filed
    Tuesday, April 29, 1997
    27 years ago
  • Date Issued
    Tuesday, November 9, 1999
    24 years ago
Abstract
An apparatus and a method are disclosed for arbitrating between streams of ATM cells, or sources for a connection, on multiple input port processors vying for an opportunity to be transmitted as a fixed bandwidth, or allocated, connection on a single output port through a network switch. The network switch maintains a plurality of input port processors, at least one output port, and input and output buffers associated with the respective input and output ports. Streams of ATM cells enter the network switch as sources for a connection through the multiple input port processors and are buffered in the input buffers. The ATM cells are then routed from the input buffers to an output buffer in the output port. The network switch also provides a multipoint topology controller (MTC) and a bandwidth arbiter (BA) for performing the arbitration.
Description

FIELD OF THE INVENTION
The present invention is generally related to network switching and, more particularly, to an apparatus and a method for arbitrating between streams of data cells, or sources for a connection, on multiple input port processors vying for an opportunity to be transmitted as a fixed bandwidth, or allocated, connection on a single output port through a network switch.
BACKGROUND OF THE INVENTION
Telecommunications networks such as asynchronous transfer mode (ATM) networks are used for the transfer of audio, video, and other data. ATM networks deliver data by routing data units such as ATM cells from a source to a destination through switches. Switches typically include multiple input/output (I/O) ports through which ATM cells are received and transmitted. The appropriate output port to which a received ATM cell is to be routed to and thereafter transmitted from is determined based upon an ATM cell header.
Oftentimes, the cell headers of ATM cells received on several different input port processors specify a single particular output port. The occurrence of such an event does not usually pose a problem unless the bandwidth capability of the connection through the output port is less than the sum of the bandwidth rates of the connections on the input port processors for an extended period of time. Such a problem is resolved by either discarding ATM cells which cannot be included within the allocated output bandwidth or asserting flow control back at the connection source.
A further problem exists, however, in that the discarding of ATM cells has heretofore not been evenly distributed among the several different input port processors. That is, ATM cells have been disproportionately discarded among the connections from the several different input port processors. Such can result in a corresponding disproportionate diminishment of data quality causing, for example, undesirable interruptions in audio and video data transmissions or other more serious damage to other types of data transmissions. Accordingly, it would be desirable to devise a scheme whereby the allocated output bandwidth of a connection at an output port is evenly distributed among sources for a connection from the several different input port processors in a multipoint-to-point switching scenario.
SUMMARY OF THE INVENTION
An apparatus and a method are disclosed for arbitrating between streams of data cells, or sources for a connection, on multiple input port processors vying for an opportunity to be transmitted as a fixed bandwidth, or allocated, connection on a single output port through a network switch. The network switch comprises a plurality of input port processors, at least one output port, and input and output buffers associated with the respective input and output ports. Streams of data cells enter the switch as sources for a connection through multiple input port processors and are buffered in the input buffers. The data cells are then routed from the input buffers to the output buffer in the output port.
The network switch also comprises a multipoint topology controller (MTC) and a bandwidth arbiter (BA) for performing the arbitration. The MTC looks up a Fan-In-Number (FIN) identifier for every cell time slot in a switch allocation table (SAT) for which a scheduling list has an entry, assuming that the input buffers, which are arranged into queues, that are listed on the scheduling list have data cells to send and the scheduling list has not exceeded its bandwidth allocation. The BA compares all the valid FIN identifiers and, if there is a match, performs multipoint-to-point arbitration among the input port processors that have scheduling lists which reference that FIN. The BA reads the FIN state information and gives the bandwidth to the input port processor having the highest priority. The BA then updates the FIN state information with data that indicates which input port processor will have the highest priority on the next arbitration for this multipoint-to-point connection.
From the above descriptive summary it is apparent how the present invention apparatus and method overcome the shortcomings of the above-mentioned prior art.
Accordingly, the primary object of the present invention is to provide an apparatus and a method for arbitrating between sources for a connection on multiple input port processors vying for an opportunity to be transmitted as a fixed bandwidth, or allocated, connection on a single output port through a network switch.
The above-stated primary object, as well as other objects, features, and disadvantages, of the present invention will become readily apparent from the following detailed description which is to be read in conjunction with the appended drawings.





BRIEF DESCRIPTION OF THE DRAWINGS
In order to facilitate a fuller understanding of the present invention, reference is now made to the appended drawings. These drawings should not be construed as limiting the present invention, but are intended to be exemplary only.
FIG. 1 is a block diagram of a network switch according to the present invention.
FIG. 2 is illustrates the operation of several switch allocation tables in the network switch according to the present invention.
FIG. 3 is a block diagram illustrating a multipoint-to-point switching scenario.





DETAILED DESCRIPTION OF THE PRESENT INVENTION
Referring to FIG. 1, there is shown a network switch 1 comprising a Data Crossbar 10, a Bandwidth Arbiter (BA) 12, a plurality of input port processors 14, a plurality of output ports 16, and a plurality of Multipoint Topology Controllers (MTC) 18. The Data Crossbar 10, which may be an N.times.N crosspoint switch, is used for data cell transport and, in this particular embodiment, yields N.times.670 Mbps throughput. The BA 12 controls switch interconnections, dynamically schedules momentarily unused bandwidth, and resolves multipoint-to-point bandwidth contention. Each input port processor 14 schedules the transmission of data cells to the Data Crossbar 10 from multiple connections. Each output port 16 receives data cells from the Data Crossbar 10 and organizes those data cells onto output links.
In order to traverse the switch 1, a data cell 22 first enters the switch 1 on a link 24 to an input port processor 14 and is buffered in a queue 26 of input buffers. The data cell 22 is then transmitted from the queue 26 of input buffers through the Data Crossbar 10 to a queue 28 of output buffers in an output port 16. From the queue 28 of output buffers, the data cell 22 is transmitted onto a link 30 outside of the switch 1, for example, to another switch. To facilitate traversal of the switch 1, each input port processor 14 includes a cell buffer RAM 32 and each output port 16 includes a cell buffer RAM 34. The cell buffer RAM's 32 and 34 are organized into the respective input and output queues 26 and 28. All data cells 22 in a connection pass must through a unique input queue 26 and a unique output queue 28 for the life of the connection. The queues 26 and 28 thus preserve cell ordering. This strategy also allows quality of service ("QoS") guarantees on a per connection basis.
Three communication paths are used to facilitate traversal of the switch 1 via probe and feedback messages: a Probe Crossbar 42, an XOFF Crossbar 44, and an XON Crossbar 46. The Probe Crossbar 42, which in this particular embodiment is an N.times.N crosspoint switch, is used to transmit a multiqueue number from an MTC 18 to an output port 16. Each input port processor 14 includes a plurality of scheduling lists 47, each of which is a circular list containing input queue numbers for a particular connection. Each multiqueue number is derived from information provided to the MTC 18 from a scheduling list 47 in an input port processor 14. A multiqueue number identifies one or more output queues 28 to which a data cell may be transmitted when making a connection. An output port 16 uses the multiqueue number to direct a request message probe to the appropriate output queue or queues 28 and thereby determine if there are enough output buffers available in the output queue or queues 28 for the data cell.
The XOFF Crossbar 44, which in this particular embodiment is an N.times.N crosspoint switch, is used to communicate "DO NOT SEND" type feedback messages from an output port 16 to an input port processor 14. An XOFF feedback message is a two bit message, wherein the first bit of the message is an ACCEPT/REJECT bit and the second bit of the message is an XOFF/NO-OP bit. When the first bit of the XOFF feedback message, namely the ACCEPT/REJECT bit, is set to "0", the output port 16 has "accepted" a request message probe from an input port processor 14 to transfer a data cell to a particular output queue 28. Thus, a data cell may then be transferred from an input queue 26 through the Data Crossbar 10 to that output queue 28.
Conversely, when the first bit of the XOFF feedback message is set to "1", the output port 16 has "rejected" a request message probe from an input port processor 14 to transfer a data cell to a particular output queue 28. In this case, a data cell may not be transferred from an input queue 26 through the Data Crossbar 10 to that output queue 28, usually because insufficient buffer space is available to receive a data cell. However, further request message probes may still be able to be sent from the input port processor 14 depending upon the state of the XOFF/NO-OP bit in the XOFF message as described below.
When the second bit of the XOFF feedback message, namely the XOFF/NO-OP bit, is set to "1", the scheduling list 47 in the input port processor 14 that provided information to the MTC 18 in order to derive the multiqueue number for the request message probe is placed in an XOFF state. This means that the scheduling list 47 may no longer be used to initiate the sending of request message probes. The scheduling list 47 remains in an XOFF state until receiving an XON message from the output port 16, as described below. An input port processor 14 responds to an asserted XOFF feedback message by modifying XOFF state bits in a descriptor of the scheduling list 47. The XOFF state bits prevent the input port processor 14 from attempting to send a request message probe from the input port processor 14 to the output port 16 until notified by the output port 16 that output buffers are available for a corresponding connection.
When the second bit of the XOFF feedback message, namely the XOFF/NO-OP bit, is set to "0", a no operation message is indicated, meaning that no adverse action has been taken with respect to the scheduling list 47 in the input port processor 14 that provided information to the MTC 18 in order to derive the multiqueue number for the request message probe. In other words, the scheduling list 47 may still be used to provide request message probes.
The XON Crossbar 46, which in this particular embodiment is an N.times.N crosspoint switch, is used to communicate "ENABLE SEND" type messages from an output port 16 to an input port processor 16. More particularly, the XON Crossbar 46 communicates an XON feedback message from an output port 16 to an input port processor 14. When an XOFF feedback message has been asserted by an output port 16 in response to a request probe message from an input port processor 14, the output port 16 sets a state bit in a queue descriptor of a corresponding output queue 28. When the number of data cells in that output queue 28 drops below an XON threshold, an XON message is sent from that output port 16 to the input port processor 14. The XON message enables the scheduling list 47 in the input port processor 14 to be used in the sending of request probe messages, and hence data cells.
The Probe & XOFF communication paths operate in a pipelined fashion. First, an input port processor 14 selects a scheduling list 47, and information associated with that scheduling list 47 is used to determine the output port 16, or the output queue 28, to which a data cell will be transmitted. More particularly, a multiqueue number, which is derived from information provided to an MTC 18 from a scheduling list 47 in an input port processor 14, is transmitted from the MTC 18 to one or more output ports 16 using the Probe Crossbar 42. Each output port 16 then tests for buffer availability and asserts a "DO NOT SEND" type feedback message through the XOFF Crossbar 44 if output buffering is not available for that connection. If output buffering is available for that connection, the input port processor 14 transmits a data cell to one or more output queues 28 through the Data Crossbar 10.
Referring now to FIGS. 1 and 2, each input port processor 14 within the switch 1 includes a Switch Allocation Table (SAT) 20 for mapping bandwidth allocation. SAT's 20 are the basic mechanism behind the scheduling of data cells. Each SAT 20 includes a plurality of sequentially ordered cell time slots 50 and a pointer 52 which is always directed to one of the cell time slots 50. All of the pointers 52 in the switch 1 are synchronized such that at any given point in time each of the pointers 52 is directed to the same cell time slot 50 in the respective SAT 20 with which the pointer 52 is associated, e.g., the first cell time slot. In operation, the pointers 52 are advanced in lock-step, with each cell time slot 50 being active for 32 clock cycles at 50 MHz. When a pointer 52 is directed toward a cell time slot 50, an input port processor 14 uses the corresponding entry 51 in the cell time slot 50 to obtain a data cell for launching into the Data Crossbar 10.
A counter in each input port processor 14 is incremented once for each cell time, and each pointer 52 returns to the first cell time slot 50 after reaching the last cell time slot 50. Hence, given an SAT 20 with a depth of 8 k, which defines a frame, each pointer 52 scans its respective SAT 20 approximately every 6 msec, thereby providing a maximum delay for a transmission opportunity of approximately 6 msec. The delay can be decreased by duplicating a given entry 51 at a plurality of cell time slots 50 within a SAT 20. The maximum delay that an incoming data cell will experience corresponds to the number of cell time slots 50 between the pointer 52 and the cell time slot 50 containing the entry 51 which specifies the location of the data cell. When multiple entries 51 are made in order to decrease the maximum possible number of separating cell time slots 50, the duplicate entries 51 are preferably spaced equidistantly within the SAT 20. Maximum delay for a transmission opportunity therefore corresponds to the frequency and spacing of duplicate entries 51 within the SAT 20.
The amount of bandwidth allocated to a particular connection corresponds to the frequency at which a given entry 51 appears in a SAT 20. Each cell time slot 50 provides 64 kbps of bandwidth. Since a pointer 52 cycles through a SAT 20 at a constant rate, the total bandwidth allocated to a particular connection is equal to the product of 64 kbps times the number of occurrences of that entry 51. For example, connection identifier "g (4,6)," which occurs in five cell time slots 50, is allocated 320 kbps of bandwidth.
Significantly, unused cell time slots 60 correspond to unused bandwidth, which becomes available during the operation of the switch 1. Such unused bandwidth may occur because that bandwidth, i.e., that cell time slot 50 in the SAT 20, has not been allocated to any connection. Such bandwidth is referred to as "unallocated bandwidth." Unused bandwidth may also occur when a SAT entry 51 is allocated to a connection, but the connection does not have a data cell enqueued for transmission across the Data Crossbar 10. Such bandwidth is referred to as "allocated-unused" bandwidth. Both types of unused bandwidth are collectively referred to as "dynamic" bandwidth, and some connections, such as connections assigned an Available Bit Rate ("ABR") QoS level utilize such dynamic bandwidth. The BA 12 operates to increase efficiency within the switch 1 by granting dynamic bandwidth to such connections.
If valid, the contents of each SAT entry 51 point to a scheduling list 47. The contents of each (non-empty) entry in a scheduling list 47 consists of an input queue number. Each input queue number points to a input queue descriptor which contains state information that is specific to a particular connection. Each input queue descriptor, in turn, points to the head and the tail of a corresponding input queue 26, which contains data cells for transmission through the switch Data Crossbar 10.
If a SAT entry 51 does not contain a pointer to a scheduling list, i.e. the SAT entry 51 is set to zero, then the corresponding cell time slot 50 in the SAT 20 has not been allocated and that cell time slot 50 is available for dynamic bandwidth. Also, if a SAT entry 51 does contain a pointer to a scheduling list 47 but no queue number is listed in scheduling list 47, then there are no data cells presently available for transmission and the corresponding cell time slot 50 is also available for dynamic bandwidth.
FIG. 3 illustrates a multipoint-to-point switching scenario, i.e., transmission from multiple input queues 26 to a single output queue 28. As previously described, each output queue 28 has a threshold, and an XON message is sent from an output port 16 to an input port processor 14 when an output queue 28 drains below that threshold. In multipoint-to-point operation, the XON threshold of an output queue 28 is dynamically set to reserve enough output buffering for multiple input queues 26 to transmit to the output queue 28. For example, if four input queues 26 are transmitting data cells, the threshold is set to four so that the output queue 28 will have sufficient output buffering to receive all four of the data cells contemporaneously in serial fashion.
Referring now to FIGS. 1 and 3, in the case of multipoint-to-point connections, the XON Crossbar 46 is used to broadcast to every input port processor 14 in the switch 1, regardless of whether or not any particular input port processor 14 is transmitting to the output queue 28 asserting the broadcast. For the broadcast, the MTC 18 transmits a reverse broadcast channel number on behalf of the output port 16. The receiving MTC 18 then performs a reverse broadcast channel to scheduling list number look-up to determine which scheduling list 47 to enable. Any input port processor 14 without an input queue 26 transmitting to that particular output queue 28 is unaffected by the broadcast XON message since the reverse broadcast channel number look-up entry will be marked invalid.
A Fan-In-Number, or FIN, is a mechanism to associate scheduling lists 47 from different input port processors 14 in a multipoint-to-point connection, and have them compete against each other for bandwidth using an arbitration mechanism. This arbitration mechanism allows switch control software to load SAT entries 51 on multiple input port processors 14 with scheduling lists 47 that are transmitting to the same output port processor 16. Without this arbitration mechanism, such would be flagged as a programming error, i.e. it is not legal for multiple input port processors 14 to send data cells to a single output port processor 16. A FIN is required for every multipoint-to-point connection. The BA 12 uses the FIN to look-up state information for each multipoint-to-point connection. Basically, the FIN state information indicates which input port processor 14 was awarded bandwidth for the last arbitration for a particular multipoint-to-point connection. Based on this state information, the BA 12 either grants bandwidth to an input port processor 14, and hence a scheduling list 47, requesting bandwidth or denies the bandwidth because the bandwidth limit for a connection has been exceeded. The FIN state information also includes which scheduling list 47 received the bandwidth from the last arbitration. The BA 12 then picks the scheduling list 47 with the next highest priority as the winner of the multipoint-to-point arbitration. This is effectively round-robin sharing of the multipoint-to-point bandwidth.
If all of the input queues 26 for a connection competing in a multipoint-to-point arbitration are on a single input port processor 14, FIN's do not have to be used. In such a case, the input port processor 14 will perform the multipoint-to-point arbitration by sharing the bandwidth among the input queues 26 listed in a scheduling list 47. This case occurs when there are sources to a connection on multiple input links 24 feeding into an input port processor 14.
To ensure that all scheduling lists 47 competing in a multipoint-to-point arbitration all get a turn, the BA 12 grants the bandwidth to the scheduling lists 47 in a round-robin fashion. To perform this, the BA 12 keeps track of the last input port processor 14 associated with the scheduling list 47 that received bandwidth for each FIN identifier. The next time scheduling lists 47 compete for bandwidth having that FIN identifier, the BA 12 gives the bandwidth to the input port processor 14 having the next highest priority.
A FIN identifier is associated with each scheduling list 47 and is stored in the MTC 18. If a scheduling list 47 is not part of a multipoint-to-point connection, its FIN is set to invalid. To perform the arbitration the following sequence is followed:
1. The MTC 18 looks up a FIN identifier for every cell time slot 50 in a SAT 20 for which a scheduling list 47 has an entry, assuming that the input queues 26 listed on that scheduling list 47 have data cells to send and the scheduling list 47 has not exceeded its bandwidth allocation.
2. The BA 12 compares all of the valid FIN identifiers and, if there is a match, performs multipoint-to-point arbitration among the input port processors 14 that have scheduling lists 47 which reference that FIN.
3. The BA 12 reads the FIN state information, and gives the bandwidth to the scheduling list 47 having the next highest priority.
4. The BA 12 updates the FIN state information with data that indicates which input port processor 14 will have the highest priority on the next arbitration for this multipoint-to-point connection.
Of course, the above-described arbitration may be simultaneously conducted for numerous multipoint-to-point allocated connections competing for different output ports in the network switch 1.
Multipoint-to-point arbitration and flow control are coupled in the network switch 1 to provide fairness guarantees on the allocated portion of a multipoint-to-point connection. Typically, when a group of scheduling lists 47 are disabled due to flow control and then enabled at the same time a starvation condition may occur if one or a set of scheduling lists 47 consistently get chosen so that data cells from input queues 26 pointed to by those scheduling lists 47 get to be transmitted before data cells from input queues 26 pointed to by any other particular scheduling list 47 in the group get to be transmitted. To implement fairness, each input port processor 14 communicates XOFF state information to the BA 12 in conjunction with the FIN state information. The BA 12 uses this XOFF state information during multipoint-to-point arbitration to prevent starvation for the allocated portion of the connection by implementing round-robin allotment.
Table 1 shows how the XOFF history information is utilized by the BA 12.
TABLE 1______________________________________SAT XOFF Historybit bit Comment______________________________________0 0 No special action0 1 The scheduling list will be granted the bandwidth. If several scheduling lists with the same FIN have their history bit set, one arbitrary one is picked. Eventually all scheduling lists which have a set history bit will be granted the bandwidth. If a scheduling list had its history bit set, the FIN state information will not be updated.1 x If one of the scheduling lists are XOFFed, none of the scheduling lists with the same FIN are granted the bandwidth.______________________________________
The SAT XOFF bit indicates the XOFF state of a scheduling list 47, wherein 0=NO-OP and 1=XOFF. The history bit indicates the ACCEPT/REJECT status of the scheduling list 47, i.e., whether the previous request message probe resulted in an ACCEPT or REJECT feedback message, wherein 0=ACCEPT, 1=REJECT. If the scheduling list 47 is in the XOFF state, no priority is given. Further, if the scheduling list 47 is in the XON state and the previous request message probe resulted in an ACCEPT feedback message, no priority is given. However, if the scheduling list 47 is in the XON state and the previous request message probe resulted in a REJECT feedback message, priority is given to the scheduling list 47. If multiple scheduling lists 47 have priority, the bandwidth is randomly allocated to the scheduling list having the highest priority. It will thus be appreciated that previously rejected scheduling lists 47 are given priority over other scheduling lists 47 based on the history bit, and fairness is thereby guaranteed.
It will be understood that various changes and modifications to the above described method and apparatus may be made without departing from the inventive concepts disclosed herein. Accordingly, the present invention is not to be viewed as limited to the embodiments described herein.
Claims
  • 1. A method for arbitrating between connections on multiple input ports vying for an opportunity to be transmitted as an allocated connection to a single output port through a network switch, said method comprising the steps of:
  • looking up an identifier for a slot in a plurality of switch allocation tables, wherein each slot has at least one of a plurality of scheduling lists as an entry, wherein each scheduling list is associated with a connection on an input port, and wherein each connection is seeking an opportunity to be transmitted as an allocated connection to an output port;
  • comparing every identifier; and
  • if there is a match between identifiers, performing an arbitration among the scheduling lists corresponding to the matching identifiers, wherein the scheduling list having a highest priority is awarded the opportunity to be transmitted as an allocated connection to the output port, and wherein the highest priority is based upon which scheduling list was the least most recent scheduling list to be awarded the opportunity to be transmitted as an allocated connection to the output port.
  • 2. The method as defined in claim 1, further comprising updating a priority list to reflect which scheduling list was awarded the opportunity to be transmitted as an allocated connection to the output port.
  • 3. An apparatus for arbitrating between connections on multiple input ports vying for an opportunity to be transmitted as an allocated connection to a single output port through a network switch, said apparatus comprising:
  • a controller for looking up an identifier for a slot in a plurality of switch allocation tables, wherein each slot has at least one of a plurality of scheduling lists as an entry, wherein each scheduling list is associated with a connection on an input port, and wherein each connection is seeking an opportunity to be transmitted as an allocated connection to an output port;
  • an arbiter for comparing every identifier and, if there is a match between identifiers, performing an arbitration among the scheduling lists corresponding to the matching identifiers, wherein the scheduling list having a highest priority is awarded the opportunity to be transmitted as an allocated connection to the output port, and wherein the highest priority is based upon which scheduling list was a least most recent scheduling list to be awarded the opportunity to be transmitted as an allocated connection to the output port.
  • 4. The apparatus as defined in claim 3, wherein the arbiter keeps track of which scheduling list was awarded the opportunity to be transmitted as an allocated connection to the output port.
  • 5. The apparatus as defined in claim 4, wherein the arbiter updates a priority list to reflect which scheduling list was awarded the opportunity to be transmitted as an allocated connection to the output port.
  • 6. The apparatus as defined in claim 3, wherein each switch allocation table includes a plurality of slots.
  • 7. The apparatus as defined in claim 6, wherein the plurality of slots are sequentially ordered.
  • 8. The apparatus as defined in claim 3, wherein each scheduling list is a circular list containing input queue numbers for a connection on an input port.
  • 9. The apparatus as defined in claim 8, wherein each input queue number points to an input queue descriptor which contains state information that is specific to a connection on an input port.
  • 10. The apparatus as defined in claim 9, wherein each input queue descriptor points to the head and the tail of an input queue containing data cells for transmission through the network switch.
  • 11. The apparatus as defined in claim 3, wherein an identifier is associated with each scheduling list.
  • 12. The apparatus as defined in claim 11, wherein each identifier is stored by the controller.
  • 13. A method for arbitrating between connections on multiple input ports vying for an opportunity to be transmitted as an allocated connection to a single output port through a network switch, said method comprising the steps of:
  • looking up an identifier for a slot in one of a plurality of switch allocation tables, wherein each slot has at least one of a plurality of scheduling lists as an entry, wherein each scheduling list is associated with a connection on an input port, and wherein each connection is seeking an opportunity to be transmitted as an allocated connection to an output port;
  • comparing the identifier to other identifiers for slots in other ones of the plurality of switch allocation tables; and
  • if there is a match between identifiers, performing an arbitration among the scheduling lists corresponding to the matching identifiers, wherein the scheduling list having a highest priority is awarded the opportunity to be transmitted as an allocated connection to the output port, and wherein the highest priority is based upon which scheduling list was the least most recent scheduling list to be awarded a opportunity to be transmitted as an allocated connection to the output port.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 08/683,132 filed Jul. 18, 1996 now abandoned. A claim of priority is made to provisional application Ser. No. 60/001,498, entitled COMMUNICATION METHOD AND APPARATUS, filed Jul. 19, 1995.

US Referenced Citations (245)
Number Name Date Kind
3804991 Hammond et al. Apr 1974
3974343 Cheney et al. Aug 1976
4069399 Barrett et al. Jan 1978
4603382 Cole et al. Jul 1986
4715030 Koch et al. Dec 1987
4727537 Nichols Feb 1988
4737953 Koch et al. Apr 1988
4797881 Ben-Artzi Jan 1989
4821034 Anderson et al. Apr 1989
4837761 Isono et al. Jun 1989
4849968 Turner Jul 1989
4870641 Pattavina Sep 1989
4872159 Hemmady et al. Oct 1989
4872160 Hemmady et al. Oct 1989
4878216 Yunoki Oct 1989
4893302 Hemmady et al. Jan 1990
4893307 McKay et al. Jan 1990
4894824 Hemmady et al. Jan 1990
4897841 Gang, Jr. Jan 1990
4899333 Roediger Feb 1990
4920531 Isono et al. Apr 1990
4922503 Leone May 1990
4933939 Sheehy Jun 1990
4947390 Sheehy Aug 1990
4953157 Franklin et al. Aug 1990
4956839 Torii et al. Sep 1990
4958341 Hemmady et al. Sep 1990
4979100 Makris et al. Dec 1990
4993018 Hajikano et al. Feb 1991
5021949 Morten et al. Jun 1991
5029164 Goldstein et al. Jul 1991
5060228 Tsutsui et al. Oct 1991
5067123 Hyodo et al. Nov 1991
5070498 Kakuma et al. Dec 1991
5083269 Syobatake et al. Jan 1992
5084867 Tachibana et al. Jan 1992
5084871 Carn et al. Jan 1992
5090011 Fukuta et al. Feb 1992
5090024 Vander Mey et al. Feb 1992
5093912 Dong et al. Mar 1992
5115429 Hluchyj et al. May 1992
5119369 Tanabe et al. Jun 1992
5119372 Verbeek Jun 1992
5128932 Li Jul 1992
5130975 Akata Jul 1992
5130982 Ash et al. Jul 1992
5132966 Hayano et al. Jul 1992
5146474 Nagler et al. Sep 1992
5146560 Goldberg et al. Sep 1992
5150358 Punj et al. Sep 1992
5151897 Suzuki Sep 1992
5157657 Potter et al. Oct 1992
5163045 Caram et al. Nov 1992
5163046 Hahne et al. Nov 1992
5179556 Turner Jan 1993
5179558 Thacker et al. Jan 1993
5185743 Murayama et al. Feb 1993
5191582 Upp Mar 1993
5191652 Dias et al. Mar 1993
5193151 Jain Mar 1993
5197067 Fujimoto et al. Mar 1993
5198808 Kudo Mar 1993
5199027 Barri Mar 1993
5239539 Uchida et al. Aug 1993
5253247 Hirose et al. Oct 1993
5253248 Dravida et al. Oct 1993
5255264 Cotton et al. Oct 1993
5255266 Watanabe et al. Oct 1993
5257311 Naito et al. Oct 1993
5258979 Oomuro et al. Nov 1993
5265088 Takigawa et al. Nov 1993
5267232 Katsube et al. Nov 1993
5268897 Komine et al. Dec 1993
5271010 Miyake et al. Dec 1993
5272697 Fraser et al. Dec 1993
5274641 Shobatake et al. Dec 1993
5274768 Traw et al. Dec 1993
5280469 Taniguchi et al. Jan 1994
5280470 Buhrke et al. Jan 1994
5282201 Frank et al. Jan 1994
5283788 Morita et al. Feb 1994
5285446 Yonehara Feb 1994
5287349 Hyodo et al. Feb 1994
5287535 Sakagawa et al. Feb 1994
5289462 Ahmadi et al. Feb 1994
5289463 Mobasser Feb 1994
5289470 Chang et al. Feb 1994
5291481 Doshi et al. Mar 1994
5291482 McHarg et al. Mar 1994
5295134 Yoshimura et al. Mar 1994
5301055 Bagchi et al. Apr 1994
5301184 Uriu et al. Apr 1994
5301190 Tsukuda et al. Apr 1994
5301193 Toyofuku et al. Apr 1994
5303232 Proctor et al. Apr 1994
5305311 Lyles Apr 1994
5309431 Tominage et al. May 1994
5309438 Nakajima May 1994
5311586 Bogart et al. May 1994
5313454 Bustini et al. May 1994
5313458 Suzuki May 1994
5315586 Charvillat May 1994
5319638 Lin Jun 1994
5321695 Faulk, Jr. Jun 1994
5323389 Bitz et al. Jun 1994
5333131 Tanabe et al. Jul 1994
5333134 Ishibashi et al. Jul 1994
5335222 Kamoi et al. Aug 1994
5335325 Frank et al. Aug 1994
5339310 Taniguchi Aug 1994
5339317 Tanaka et al. Aug 1994
5339318 Tanaka et al. Aug 1994
5341366 Soumiya et al. Aug 1994
5341373 Ishibashi et al. Aug 1994
5341376 Yamashita Aug 1994
5345229 Olnowich et al. Sep 1994
5350906 Brody et al. Sep 1994
5355372 Sengupta et al. Oct 1994
5357506 Sugawara Oct 1994
5357507 Hughes et al. Oct 1994
5357508 Le Boudec et al. Oct 1994
5357510 Norizuki et al. Oct 1994
5359600 Ueda et al. Oct 1994
5361251 Aihara et al. Nov 1994
5361372 Rege et al. Nov 1994
5363433 Isono Nov 1994
5365514 Hershey Nov 1994
5371893 Price et al. Dec 1994
5373504 Tanaka et al. Dec 1994
5375117 Morita et al. Dec 1994
5377262 Bales et al. Dec 1994
5377327 Jain et al. Dec 1994
5379297 Glover et al. Jan 1995
5379418 Shimazaki et al. Jan 1995
5390170 Sawant et al. Feb 1995
5390174 Jugel Feb 1995
5390175 Hiller et al. Feb 1995
5392280 Zheng Feb 1995
5392402 Robrock, II Feb 1995
5394396 Yoshimura et al. Feb 1995
5394397 Yanagi et al. Feb 1995
5398235 Tsuzuki et al. Mar 1995
5400337 Hunter Mar 1995
5402415 Turner Mar 1995
5412648 Fan May 1995
5414703 Sakaue et al. May 1995
5420858 Marshall et al. May 1995
5420988 Elliott May 1995
5422879 Parsons et al. Jun 1995
5425021 Derby et al. Jun 1995
5425026 Mori Jun 1995
5432713 Takeo et al. Jul 1995
5432784 Ozveren Jul 1995
5432785 Ahmed et al. Jul 1995
5432908 Heddes et al. Jul 1995
5436886 McGill Jul 1995
5436893 Barnett Jul 1995
5440547 Easki et al. Aug 1995
5444702 Burnett et al. Aug 1995
5446733 Tsuruoka Aug 1995
5446737 Cidon et al. Aug 1995
5446738 Kim et al. Aug 1995
5448559 Hayter et al. Sep 1995
5450406 Esaki Sep 1995
5452296 Shimizu Sep 1995
5455820 Yamada Oct 1995
5455825 Lauer et al. Oct 1995
5457687 Newman Oct 1995
5459743 Fukuda et al. Oct 1995
5461611 Drake, Jr. et al. Oct 1995
5463620 Sriram Oct 1995
5465331 Yang et al. Nov 1995
5475679 Munter Dec 1995
5479401 Bitz et al. Dec 1995
5479402 Hata et al. Dec 1995
5483526 Ben-Nun et al. Jan 1996
5485453 Wahlman et al. Jan 1996
5485455 Dobbins et al. Jan 1996
5487063 Kakuma et al. Jan 1996
5488606 Kakuma et al. Jan 1996
5491691 Shtayer et al. Feb 1996
5491694 Oliver et al. Feb 1996
5493566 Ljungberg et al. Feb 1996
5497369 Wainwright Mar 1996
5499238 Shon Mar 1996
5504741 Yamanaka et al. Apr 1996
5504742 Kakuma et al. Apr 1996
5506834 Sekihata et al. Apr 1996
5506839 Hatta Apr 1996
5506956 Cohen Apr 1996
5509001 Tachibana et al. Apr 1996
5509007 Takashima et al. Apr 1996
5513134 Cooperman et al. Apr 1996
5513178 Tanaka Apr 1996
5513180 Miyake et al. Apr 1996
5515359 Zheng May 1996
5517495 Lund et al. May 1996
5519690 Suzuka et al. May 1996
5521905 Oda et al. May 1996
5521915 Dieudonne et al. May 1996
5521916 Choudhury et al. May 1996
5521917 Watanabe et al. May 1996
5521923 Willmann et al. May 1996
5523999 Takano et al. Jun 1996
5524113 Gaddis Jun 1996
5526344 Diaz et al. Jun 1996
5528588 Bennett et al. Jun 1996
5528590 Iidaka et al. Jun 1996
5528591 Lauer Jun 1996
5530695 Dighe et al. Jun 1996
5533009 Chen Jul 1996
5533020 Byrn et al. Jul 1996
5535196 Aihara et al. Jul 1996
5535197 Cotton Jul 1996
5537396 Abe et al. Jul 1996
5541912 Choudhury et al. Jul 1996
5544168 Jeffrey et al. Aug 1996
5544169 Norizuki et al. Aug 1996
5544170 Kasahara Aug 1996
5546389 Wippenbeck et al. Aug 1996
5546391 Hochschild et al. Aug 1996
5546392 Boal et al. Aug 1996
5550821 Akiyoshi Aug 1996
5550823 Irie et al. Aug 1996
5553057 Nakayama Sep 1996
5553068 Aso et al. Sep 1996
5555243 Kakuma et al. Sep 1996
5555265 Kakuma et al. Sep 1996
5557607 Holden Sep 1996
5568479 Watanabe et al. Oct 1996
5570348 Holden Oct 1996
5570361 Norizuki et al. Oct 1996
5570362 Nishimura Oct 1996
5572522 Calamvokis et al. Nov 1996
5577032 Sone et al. Nov 1996
5577035 Hayter et al. Nov 1996
5583857 Soumiya et al. Dec 1996
5583858 Hanaoka Dec 1996
5583861 Holden Dec 1996
5590132 Ishibashi et al. Dec 1996
5602829 Nie et al. Feb 1997
5610913 Tomonaga et al. Mar 1997
5623405 Isono Apr 1997
5625846 Kobayakawa et al. Apr 1997
5633861 Hanson et al. May 1997
Foreign Referenced Citations (1)
Number Date Country
484943 Mar 1992 JPX
Non-Patent Literature Citations (17)
Entry
"Head of Line Arbitration in ATM Switches with Input-Output Buffering and Backpressure Control".BY Hosien F. Badran and H. T. Mouftah, GLOBECOM '91, PP. 0347-0351.
An Ascom Timplex White Paper, Meeting Critical Requirements with Scalable Enterprise Networking Solutions Based on a Unified ATM Foundation, pp. 1-12, Apr. 1994.
Douglas H. Hunt, ATM Traffic Management--Another Perspective, Business Communications Review, Jul. 1994.
Richard Bubenik et al., Leaf Initiated Join Extensions, Technical Committee, Signalling Subworking Group, ATM Forum/94-0325R1, Jul. 1, 1994.
Douglas H. Hunt et al., Flow Controlled Virtual Connections Proposal for ATM Traffic Management (Revision R2), Traffic Management Subworking Group, ATM.sub.-- Forum/94-0632R2, Aug. 1994.
Flavio Bonomi et al., The Rate-Based Flow Control Framework for the Available Bit Rate ATM Service, IEEE Network, Mar./Apr. 1995, pp. 25-39.
R. Jain, Myths About Congestion Management in High Speed Networks, Internetworking Research and Experience, vol. 3, 101-113 (1992).
Douglas H. Hunt et al., Credit-Based FCVC Proposal for ATM Traffic Management (Revision R1), ATM Forum Technical Committee Traffic Management Subworking Group, ATM.sub.-- Forum/94-0168R1, Apr. 28, 1994.
Douglas H. Hunt et al., Action Item Status for Credit-Based FCVC Proposal, ATM Forum Technical Committee Traffic Management Subworking Group, ATM.sub.-- Forum/94-0439, Apr. 28, 1994.
Timothy P. Donahue et al., Arguments in Favor of Continuing Phase 1 as the Initial ATM Forum P-NNI Routing Protocol Implementation, ATM Forum Technical Committee, ATM Forum/94-0460, Apr. 28, 1994.
Richard Bubenick et al., Leaf Initiated Join Extensions, Technical Committee, Signalling Subworking Group, ATM Forum/94-0325, Apr. 28, 1994.
Rob Coltun et al., PRP: A P-NNI Routing Protocol Proposal, ATM Forum Technical Committee, ATM.sub.-- Forum/94-0492, Apr. 28, 1994.
Richard Bubenik et al., Leaf Initated Join Extensions, ATM Forum Technical Committee, Signalling Subworking Group, ATM Forum 94-0325, Apr. 28, 1994.
Richard Bubenik et al., Requirements for Phase 2 Signaling Protocol, ATM Forum Technical Committee, Signaling Subworking Group, ATM Forum 94-1078, Jan. 1, 1994.
SITA, ATM RFP: C-Overall Technical Requirements, Sep. 1994.
H.T. Kung and K. Chang, Receiver-Oriented Adaptive Buffer Allocation in Credit-Based Flow Control for ATM Networks, Proceedings of INFOCOM '95, Apr. 2-6, 1995, pp. 1-14.
H.T. Kung, et al., Credit-Based Flow Control for ATM Networks: Credit Update Protocol, Adaptive Credit Allocation, and Statistical Multiplexing, Proceedings fo ACM SIGCOMM '94 Symposium on Communications Architectures, Protocols and Applications, Aug. 31-Sep. 2, 1994, pp. 1-14.
Continuations (1)
Number Date Country
Parent 683132 Jul 1996