Methods and apparatus related to a distributed switch fabric
AssigneeJuniper Networks, Inc.
InventorGunes Aybay
Life of this patent
Estimating the term…
Abstract
A method of sending data to a switch fabric includes assigning a destination port of an output module to a data packet based on at least one field in a first header of the data packet. A module associated with a first stage of the switch fabric is selected based on at least one field in the first header. A second header is appended to the data packet. The second header includes an identifier associated with the destination port of the output module. The data packet is sent to the module associated with the first stage. The module associated with the first stage is configured to send the data packet to a module associated with a second stage of the switch fabric based on the second header.
Claims18
A method of sending data to a switch fabric, comprising:
- assigning a destination port of an output module to a data packet based on at least one field in a first header of the data packet;
- selecting a module associated with a first stage of the switch fabric based on at least one field in the first header;
- appending a second header to the data packet, the second header including an identifier associated with the destination port of the output module;
- and
- sending the data packet to the module associated with the first stage, the module associated with the first stage configured to send the data packet to a module associated with a second stage of the switch fabric based on the second header, wherein the data packet is a first data packet, the output module is a first output module, the module associated with the first stage is a first module associated with the first stage, and the module associated with the second stage is a first module associated with the second stage, the method further comprising:
- assigning a destination port of a second output module to a second data packet based on at least one field in a first header of the second data packet;
- selecting a second module associated with the first stage of the switch fabric based on at least one of the fields in the first header of the second data packet;
- appending a second header to the second data packet, the second header of the second data packet including an identifier associated with the destination port of the second output module;
- and
- sending the second data packet to the second module associated with the first stage, the second module associated with the first stage configured to send the second data packet to a second module associated with the second stage of the switch fabric based on the second header of the second data packet.
A switch fabric system, comprising:
- a plurality of edge devices, a first edge device from the plurality of edge devices configured to receive a plurality of data packets, each data packet from the plurality of data packets including a first header, the first edge device configured to append a second header to each data packet based on at least one field in the first header, the second header including an identifier associated with a destination port of a second edge device from the plurality of edge devices;
- a plurality of modules associated with a first stage of the switch fabric system, the first edge device configured to send each data packet from the plurality of data packets to a module from the plurality of modules associated with the first stage based on the first header;
- and
- a plurality of modules associated with a second stage of the switch fabric system, the plurality of modules associated with the first stage of the switch fabric system configured to send each data packet from the plurality of data packets to a module from the plurality of modules associated with the second stage based on the second header, wherein the plurality of data packets is a first plurality of data packets and the module from the plurality of modules associated with the first stage is a first module from the plurality of modules associated with the first stage,
- the first edge device configured to receive a second plurality of data packets, each data packet from the second plurality of data packets including a first header, the first edge device configured to append a second header to each data packet from the second plurality of data packets based on at least one field in the first header of each data packet from the second plurality of data packets,
- the second header of each data packet from the second plurality of data packets including an identifier associated with a destination port of a third edge device from the plurality of edge devices,
- the first edge device configured to send each data packet from the second plurality of data packets to a second module from the plurality of modules associated with the first stage based on the first header of each data packet from the second plurality of data packets.
A non-transitory processor-readable medium storing code representing instructions configured to cause a processor to:
- assign a destination port of an output module to a data packet based on an identifier of a destination node operatively coupled to the destination port of the output module through at least a switch fabric, the identifier of the destination node being within a first header of the data packet;
- select a module associated with a first stage of the switch fabric using a result of a first hash function having as inputs a plurality of fields in the first header;
- append a second header to the data packet, the second header including an identifier associated with the destination port of the output module;
- and
- send the data packet to the module associated with the first stage, the module associated with the first stage configured to select a module associated with a second stage of the switch fabric using a result of a second hash function having as an input the identifier associated with the destination port of the output module, wherein the data packet is a first data packet, the code further comprising code representing instructions to cause a processor to:
- assign the destination port of the output module to a second data packet based on an identifier of the destination node within a first header of the second data packet;
- select the module associated with the first stage of the switch fabric using a result of the first hash function having as inputs a plurality of fields in the first header of the second data packet;
- append a second header to the second data packet, the second header of the second data packet including an identifier associated with the destination port of the output module;
- and
- send the second data packet to the module associated with the first stage, the module associated with the first stage configured to select the module associated with the second stage of the switch fabric using a result of the second hash function using as inputs the identifier associated with the destination port of the output module.
Dependencies are inferred from the claim text.