Flow control method and apparatus for ethernet packet switched hub
AssigneeAdvanced Micro Devices, Inc.
InventorIan Crayford
Life of this patent
Estimating the term…
Abstract
A flow control enabled Ethernet switch that applies backpressure to input ports that attempt to transmit a data packet to a busy destination port. The backpressure is a phantom packet that activates the IEEE 802.3 collision detection system to abort transmission of the data packet. A subsequent series of phantom packets (that are invalid) provide carrier activity that inhibits retransmission of the packet. When the destination port is available, the phantom packets are stopped, permitting standard retransmission of the data packet. The switch includes prioritization mechanisms (e.g., a throttle count) to use when awarding priority to a port having backpressure applied.
Claims14
A method of switching an input data packet received at a first port of a half-duplex Ethernet switch to a second port of the half-duplex Ethernet switch having a communication channel established between the second port and a third port of the half-duplex Ethernet switch, comprising the steps of:
- determining whether to block the input data packet;
- thereafter
- providing a carrier sense signal derived from the communication channel to the first port;
- thereafter
- applying backpressure from the first port, by generating a backpressure packet from the first port to an end-station coupled to the first port that transmits the input data packet, when blocking is desired, wherein the switch includes a generator for generating said backpressure packet;
- receiving the input data packet at the first port when the second port is available, wherein said receiving step determines the second port is available when said communication channel is closed;
- thereafter
- routing the input data packet from the first port to the second port;
- counting a number of bit times that lapse on the first port when said determining step has determined that blocking is desired;
- and
- starting said generating step after said number of bit times exceed a predetermined threshold.
A method of switching an input data packet received at a first port of a half-duplex Ethernet switch to a second port of the half-duplex Ethernet switch having a communication channel established between the second port and a third port of the half-duplex Ethernet switch, comprising the steps of:
- determining whether to block the input data packet;
- thereafter
- applying backpressure from the first port when blocking is desired;
- receiving the input data packet at the first port when the second port is available;
- thereafter
- routing the input data packet from the first port to the second port;
- incrementing a count associated with the first port each time said backpressure applying step is implemented;
- and thereafter
- using said count to determine a priority in awarding access of the first port to the second port.
A method of switching an input data packet received at a first port of a half-duplex Ethernet switch to a second port of the half-duplex Ethernet switch having a communication channel established between the second port and a third port of the half-duplex Ethernet switch, comprising the steps of:
- determining whether to block the input data packet;
- thereafter
- applying backpressure from the first port when blocking is desired;
- receiving the input data packet at the first port when the second port is available;
- and thereafter
- routing the input data packet from the first port to the second port
- wherein said backpressure is applied by use of a transmitted backpressure packet that terminates transmission from an end-station coupled to a first collision domain coupled to the first port until a resume transmission packet is transmitted from the first port by the switch.
A method of switching an input data packet received at a first port of a half-duplex Ethernet switch to a second port of the half-duplex Ethernet switch having a communication channel established between the second port and a third port of the half-duplex Ethernet switch, comprising the steps of:
- determining whether to block the input data packet, wherein the decision to block is based upon a destination address port for the input data packet satisfying at least one of the following blocking conditions:
- the third port physically receiving, the third port physically transmitting, the first port having insufficient input buffer space available, the third port having no output buffer space available, or another input port of the switch having been determined to have a higher priority for access to the third port;
- thereafter
- applying backpressure from the first port when blocking is desired;
- receiving the input data packet at the first port when the second port is available;
- and thereafter
- routing the input data packet from the first port to the second port.
A method of switching an input data packet received at a first port of a half-duplex Ethernet switch to a second port of the half-duplex Ethernet switch having a communication channel established between the second port and a third port of the half-duplex Ethernet switch, comprising the steps of:
- determining whether to block the input data packet;
- thereafter
- providing a carrier sense signal derived from the communication channel to the first port;
- applying backpressure from the first port, by generating a backpressure packet from the first port to an end-station coupled to the first port that transmits the input data packet, when blocking is desired, wherein said backpressure packet is transmitted in response to a expiration of a programmable collision timer which ensures that less than 512 bit times occurs before a collision is detected at the backed off station coupled to the first port;
- receiving the input data packet at the first port when the second port is available, wherein said receiving step determines the second port is available when said communication channel is closed;
- and thereafter
- routing the input data packet from the first port to the second port.
Dependencies are inferred from the claim text.