Dual-loop bus-based network switch using distance-value or bit-mask
First Claim
1. A bus-based network switch comprising:
- a plurality of switch nodes, each switch node for receiving a data payload from an input port or for transmitting a data payload to an external network device through an output port;
a first bus for sending switch packets with the data payload in a first direction among the plurality of switch nodes, the first bus being divided into links, each link for transferring a switch packet between two of the switch nodes;
a second bus for sending switch packets with the data payload in a second direction among the plurality of switch nodes, the second bus being divided into links, each link for transferring the switch packet between two of the switch nodes;
wherein the plurality of switch nodes are arranged in a continuous loop wherein a destination switch node in the plurality of switch nodes can be reached from any other switch node in the plurality of switch nodes both by following the continuous loop in the first direction and by following the continuous loop in the second direction; and
a packet limiter that limits a number of switch nodes that the switch packet travels through from a source switch node that receives the data payload to the destination switch node that transmits the data payload from the switch packet to the output port;
wherein the packet limiter limits the number of switch nodes to less than a total number of the switch nodes in the plurality of switch nodes, whereby the switch packet travels through a limited number of the switch nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
A network switch routes switch packets among nodes with input and output ports. The nodes are connected together in a loop by two buses. One bus sends packets in a clockwise direction around the loop of nodes, while the other bus sends packets in a counter-clockwise direction around the loop. Each bus is divided into links between adjacent nodes, which examine and forward the packets to the next node in the loop. A packet is duplicated and injected onto both buses from a source node, reaching half of the nodes in one direction, and the other nodes in the opposite direction. A distance value in the packet header is set to half of the number of nodes so that the packet is removed after traveling half-way around the loop. A bit-mask in the header indicates nodes to receive the packet, or source-monitoring can remove packets half-way around the loop.
84 Citations
20 Claims
-
1. A bus-based network switch comprising:
-
a plurality of switch nodes, each switch node for receiving a data payload from an input port or for transmitting a data payload to an external network device through an output port;
a first bus for sending switch packets with the data payload in a first direction among the plurality of switch nodes, the first bus being divided into links, each link for transferring a switch packet between two of the switch nodes;
a second bus for sending switch packets with the data payload in a second direction among the plurality of switch nodes, the second bus being divided into links, each link for transferring the switch packet between two of the switch nodes;
wherein the plurality of switch nodes are arranged in a continuous loop wherein a destination switch node in the plurality of switch nodes can be reached from any other switch node in the plurality of switch nodes both by following the continuous loop in the first direction and by following the continuous loop in the second direction; and
a packet limiter that limits a number of switch nodes that the switch packet travels through from a source switch node that receives the data payload to the destination switch node that transmits the data payload from the switch packet to the output port;
wherein the packet limiter limits the number of switch nodes to less than a total number of the switch nodes in the plurality of switch nodes, whereby the switch packet travels through a limited number of the switch nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 20)
-
-
13. A method for switching data using a bus-based network switch with switch nodes comprising:
-
receiving at an input port coupled to a source switch node a data payload for switching to an output port coupled to a destination switch node;
generating a header for a switch packet that contains the data payload received by the input port, the header identifying the destination switch node;
injecting the switch packet at the source switch node and sending the switch packet to a next switch node along a first bus in a first direction toward the destination switch node or sending the switch packet to a next switch node along a second bus in a second direction toward the destination switch node, the destination switch node being reachable by both the first and the second bus;
at each next switch node along the first bus when the switch packet is sent over the first bus;
receiving the switch packet from a first-bus input to the next switch node;
examining the header of the switch packet to determine if the data payload is intended for an output port coupled to the next switch node;
copying the data payload but not the header to the output port coupled to the next switch node when the header indicates that the data payload is for the output port;
reading a field in the header to determine if the switch packet should be removed;
sending the switch packet out a first-bus output to another next switch node over the first bus when the switch packet is not to be removed, but not sending the switch packet out the first-bus output when the next switch node determines that the switch packet is to be removed;
at each next switch node along the second bus when the switch packet is sent over the second bus;
receiving the switch packet from a second-bus input to the next switch node;
examining the header of the switch packet to determine if the data payload is intended for an output port coupled to the next switch node;
copying the data payload but not the header to the output port coupled to the next switch node when the header indicates that the data payload is for the output port;
reading a field in the header to determine if the switch packet should be removed; and
sending the switch packet out a second-bus output to another next switch node over the second bus when the switch packet is not to be removed, but not sending the switch packet out the second-bus output when the next switch node determines that the switch packet is to be removed, whereby switch packets are routed over the first or second bus.
-
-
19. A network switch comprising:
-
a plurality of switch node means, coupled to input-port means for receiving data sent to the network switch and output-port means for transmitting data from the network switch, each switch node means having a first-bus input, a first-bus output, a second-bus input, and a second-bus output;
first bus means for sending packets partially along a loop of the plurality of switch node means in a forward direction, having a plurality of first link means for sending the packets between two switch node means, each first link means being coupled to the first-bus output of a switch node means and to a first-bus input of an adjacent switch node means;
second bus means for sending packets partially along the loop of the plurality of switch node means in a reverse direction, having a plurality of second link means for sending the packets between two switch node means, each second link means being coupled to the second-bus output of a switch node means and to a second-bus input of an adjacent switch node means; and
removal means, in each switch node means, for determining if the switch node means is halfway around the loop from a source switch node means that received the data from the input-port means, the removal means preventing the packet from being sent by the first or second link means to another switch node means when the packet is removed, whereby packets are removed halfway around the loop.
-
Specification