Fibre channel switch
First Claim
1. A method for sending a variable length data packet through a downstream switch having a plurality of destination ports comprising:
- a) tracking a congestion status of the destination ports in an XOFF mask;
b) using changes in the XOFF mask values to trigger a flow control primitive to an upstream switch to control flow over a virtual channel to the downstream switch;
c) routing the data packet to a particular destination port by selecting an applicable routing rule from a plurality of routing rules based on a destination field within the data packet;
d) if the particular destination port has a congested status in the XOFF mask, storing the data packet in a deferred queue for later processing after a change in the XOFF mask;
e) transmitting the data packet over a cell-based switch fabric to the particular destination port; and
f) transmitting over the same cell-based switch fabric a communication destined for a microprocessor that services the particular destination port.
7 Assignments
0 Petitions
Accused Products
Abstract
A Fibre Channel switch is presented that tracks the congestion status of destination ports in an XOFF mask at each input. A mapping is maintained between virtual channels on an ISL and the destination ports to allow changes in the XOFF mask to trigger a primitive to an upstream port that provides virtual channel flow control. The XOFF mask is also used to avoid sending frames to a congested port. Instead, these frames are stored on a single deferred queue and later processed in a manner designed to maintain frame ordering. A routing system is provided that applies multiple routing rules in parallel to perform line speed routing. The preferred switch fabric is cell based, with techniques used to manage path maintenance for variable length frames and to adapt to varying transmission rates in the system. Finally, the switch allows data and microprocessor communication to share the same crossbar network.
205 Citations
14 Claims
-
1. A method for sending a variable length data packet through a downstream switch having a plurality of destination ports comprising:
-
a) tracking a congestion status of the destination ports in an XOFF mask;
b) using changes in the XOFF mask values to trigger a flow control primitive to an upstream switch to control flow over a virtual channel to the downstream switch;
c) routing the data packet to a particular destination port by selecting an applicable routing rule from a plurality of routing rules based on a destination field within the data packet;
d) if the particular destination port has a congested status in the XOFF mask, storing the data packet in a deferred queue for later processing after a change in the XOFF mask;
e) transmitting the data packet over a cell-based switch fabric to the particular destination port; and
f) transmitting over the same cell-based switch fabric a communication destined for a microprocessor that services the particular destination port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data switch for switching a variable-length data packet comprising:
-
a) a plurality of ports, b) a cell-based crossbar switching fabric in communication with the ports;
c) an XOFF mask containing the status of each port on the data switch;
d) a routing module having routing rules that determine routing information based on a header in the data packet;
e) a queuing module that receives the routing information and stores data packets destined for a congested port in a deferred queue;
f) a segmentation module that segments the data packet into at least a first and second fixed-size data cells, the first data cell containing a full data payload and the second data cell containing a partially filled data payload;
g) a microprocessor;
h) a memory subsystem for queuing data for submission to the crossbar switching fabric into a plurality of output queues having different classes of service for data directed to one of the ports and data directed to one of the microprocessors; and
i) a virtual input queue mapping between a first virtual channel on an interswitch link and a subset of the plurality of output queues.
-
-
10. A data switch comprising:
-
a) a plurality of ports receiving and transmitting variable-length data packets;
b) a buffer in communication with at least one of the ports;
c) a plurality of microprocessors that control the ports;
d) a cell-based switch crossbar in communication with at least two of the ports;
e) a routing means for determining a destination port for the data packets;
f) a congestion indicator means indicating the congestion status of the plurality of ports;
g) a deferred queuing means for avoiding head of line blocking in the buffer by storing a subset of the received data packets in a deferred queue;
h) a cell segmentation means for segmenting one of the variable length data packets into a plurality of fixed-sized data cells;
i) data transmission means for transmitting data cells over the crossbar, the data transmission means transmitting data to at least one of the ports and at least one of the microprocessors over the same crossbar; and
j) interswitch link flow control means for providing flow control on a single virtual channel within an interswitch link communicating with the data switch. - View Dependent Claims (11, 12, 13, 14)
-
Specification