Cross-bar switch
AssigneeJuniper Networks, Inc.
InventorsAbbas Rashid, Nazar Zaidi, Mark Bryers, Fred Gruner
Life of this patent
Estimating the term…
Abstract
A cross-bar switch includes a set of input ports for receiving data packets and a set of sink ports for transmitting the received packets to identified targets. A set of data rings couples the input ports to the sink ports. Each sink port utilizes the set of data rings to simultaneously accept multiple data packets targeted to the same destination—creating a non-blocking cross-bar switch. Sink ports are also each capable of supporting multiple targets—providing the cross-bar switch with implicit multicast capability.
Claims40
cross-bar switch comprising:
- a set of input ports to receive data packets for a plurality of priority levels;
- a set of sink ports coupled to said set of input ports to receive and forward said data packets;
- and
- a set of data rings internal to the cross-bar switch coupling said set of input ports and said set of sink ports,
- wherein at least one of the sink ports includes a bandwidth allocation circuit that calculates a weighted average bandwidth for each of the priority levels and rejects packet data having a first priority level in said plurality of priority levels when the weighted average bandwidth for at least two of the priority levels exceeds a predetermined value.
A cross-bar switch comprising:
- a set of input ports to receive data packets from a communications link for a plurality of priority levels;
- a set of sink ports coupled to said set of input ports to receive said data packets from said set of input ports;
- and
- a set of data rings coupling each sink port in said set of sink ports to each input port in said set of input ports,
- wherein at least one of the sink ports includes a bandwidth allocation circuit that calculates a weighted average bandwidth for each of the priority levels and rejects packet data having a first priority level in said plurality of priority levels when an amount of packet data exceeds a threshold and the weighted average bandwidth for at least two of the priority levels exceeds a predetermined value.
A cross-bar switch comprising:
- a set of input ports to receive data packets from a communications link for a plurality of priority levels;
- a set of sink ports coupled to said set of input ports to receive said data packets from said set of input ports;
- and
- a set of data rings coupling each sink port in said set of sink ports to each input port in said set of input ports, wherein each sink port in said set of sink ports snoops data packets on each data ring in said set of data rings,
- wherein at least one of the sink ports includes a bandwidth allocation circuit that calculates a weighted average bandwidth for each of the priority levels and rejects packet data having a first priority level in said plurality of priority levels when an amount of packet data exceeds a threshold and the weighted average bandwidth for at least two of the priority levels exceeds a predetermined value.
A method for transferring data packets to targets, said method comprising the steps of:
- (a) receiving a set of data packets for a plurality of priority levels;
- (b) transferring said set of data packets to a set of data rings, wherein a set of sink ports is coupled to said set of data rings;
- (c) a sink port in said set of sink ports, calculating a weighted average bandwidth for each of the priority levels and rejecting packet data having a first priority level in said plurality of priority levels when an amount of packet data exceeds a threshold and the weighted average bandwidth for at least two of the priority levels exceeds a predetermined value;
- and
- (d) said sink port, collecting data for data packets accepted by said sink port.
A cross-bar switch for transferring data packets to targets, said apparatus comprising:
- receiving means for receiving a set of data packets;
- a set of sink ports coupled to said receiving means to receive said set of data packets from said receiving means, each sink port in said set of sink ports including:
- (i) determining means for determining a weighted average bandwidth for each of a plurality of priority levels and rejecting packet data when the weighted average bandwidth for at least two of the priority levels exceeds a predetermined value;
- and
- (ii) storage means for storing data for packets accepted by said sink port;
- and
- data ring means internal to the cross-bar switch for coupling said receiving means to said set of sink ports.
A cross-bar switch comprising:
- a set of input ports to receive data packets from a communications link;
- a set of sink ports coupled to said set of input ports to receive said data packets from said set of input ports, wherein each sink port in said set of sink ports includes:
- (i) a ring interface coupled to a set of data rings to receive data from said data packets,
- (ii) a bandwidth allocation circuit that calculates a weighted average bandwidth for each of a plurality of priority levels and rejects packet data having a first priority level in said plurality of priority levels when an amount of packet data exceeds a threshold and the weighted average bandwidth for at least two of the priority levels exceeds a predetermined value,
- (iii) a storage buffer coupled to said ring interface to receive and store said data, and
- (iv) an output port coupled to said storage buffer to receive said data from said storage buffer and transmit said data on a communications link;
- and
- the set of data rings coupling each sink port in said set of sink ports to each input port in said set of input ports,
- wherein each sink port in said set of sink ports snoops data packets on each data ring in said set of data rings.
A method for transferring data packets to targets, said method comprising the steps of:
- (a) receiving a set of data packets;
- (b) transferring said set of data packets to a set of data rings, wherein a set of sink ports is coupled to said set of data rings;
- (c) a sink port in said set of sink ports, determining whether to accept data packets in said set of data packets, based on a set of criteria, wherein said step (c) includes the steps of:
- (1) said sink port determining whether a data packet includes a destination address in a predetermined set of destination addresses, and
- (2) said sink port calculating a weighted average bandwidth for each of a plurality of priority levels and rejecting packet data having a first priority level in said plurality of priority levels when an amount of packet data exceeds a threshold and the weighted average bandwidth for at least two of the priority levels exceeds a predetermined value;
- (d) said sink port, collecting data for data packets accepted by said sink port;
- (e) said sink port, issuing a rejection signal if said sink port determines not to accept said data packet in said step (c)(2);
- and
- (f) said sink port transmitting said data packets collected in said step (d),
- wherein said step (c) and said step (d) are performed by each sink port in said set of sink ports.
Dependencies are inferred from the claim text.