Network switch with dynamic multicast queues
First Claim
1. A method for communicating a packet through a network switch fabric with input ports and output ports, wherein the method comprises:
- receiving the packet at an input port of the network switch fabric, wherein the packet is one of a unicast packet directed to an output port and a multicast packet that is directed to multiple output ports, and wherein the network switch fabric has a virtual output queue (VOQ)-based architecture in which each input port maintains a separate unicast VOQ for each output port for unicast packets and one or more multicast VOQs for output ports for multicast packets so that multicast packets are queued separately from unicast packets; and
sending the packet from the input port to one of the output port and the output ports by inserting the packet into one of a unicast VOQ for the output port and one or more of the multicast VOQs for the output ports, wherein,while inserting the packet into a given VOQ, the packet is assigned to a current virtual lane in multiple virtual lanes for a data flow associated with the packet, andprior to assigning the packet to the current virtual lane, remapping from a previous virtual lane specified by information in the packet to the current virtual lane.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for communicating a multicast packet through a network switch fabric is described. The system receives the multicast packet at an input port of the network switch fabric, where the multicast packet is directed to multiple output ports, and where the network switch fabric has a virtual output queue (VOQ)-based architecture, in which each input port maintains a separate VOQ for unicast packets to each output port and one or more VOQs for multicast packets destined to multiple output ports. The system sends the multicast packet by inserting the multicast packet into the one or more VOQs associated with the multiple output ports, so that multicast packets are queued separately from unicast packets. Moreover, the system may optionally dynamically modify a number of the one or more VOQs for the multicast packets based on a number of multicast flows through the network switch fabric.
8 Citations
16 Claims
-
1. A method for communicating a packet through a network switch fabric with input ports and output ports, wherein the method comprises:
-
receiving the packet at an input port of the network switch fabric, wherein the packet is one of a unicast packet directed to an output port and a multicast packet that is directed to multiple output ports, and wherein the network switch fabric has a virtual output queue (VOQ)-based architecture in which each input port maintains a separate unicast VOQ for each output port for unicast packets and one or more multicast VOQs for output ports for multicast packets so that multicast packets are queued separately from unicast packets; and sending the packet from the input port to one of the output port and the output ports by inserting the packet into one of a unicast VOQ for the output port and one or more of the multicast VOQs for the output ports, wherein, while inserting the packet into a given VOQ, the packet is assigned to a current virtual lane in multiple virtual lanes for a data flow associated with the packet, and prior to assigning the packet to the current virtual lane, remapping from a previous virtual lane specified by information in the packet to the current virtual lane. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-program product for use in conjunction with a network switch fabric having input ports and output ports, the computer-program product comprising a non-transitory computer-readable storage medium and a computer-program mechanism embedded therein to facilitate communication of a packet through the network switch fabric, the computer-program mechanism including:
-
instructions for receiving the packet at an input port of the network switch fabric, wherein the packet is one of a unicast packet directed to an output port and a multicast packet that is directed to multiple output ports, and wherein the network switch fabric has a virtual output queue (VOQ)-based architecture in which each input port maintains a separate unicast VOQ for each output port for unicast packets and one or more multicast VOQs for output ports for multicast packets so that multicast packets are queued separately from unicast packets; and instructions for sending the packet from the input port to one of the output port and the output ports by inserting the packet into one of a unicast VOQ for the output port and one or more of the multicast VOQs for the output ports, wherein while inserting the packet into a given VOQ, the packet is assigned to a current virtual lane in multiple virtual lanes for a data flow associated with the packet, and wherein the virtual lanes are non-blocking and have priorities associated with different data flows. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer system that communicates a packet, comprising:
-
a network switch fabric with input ports and output ports, wherein the packet is one of a unicast packet directed to an output port and a multicast packet that is directed to multiple output ports; and wherein the network switch fabric has a virtual output queue (VOQ)-based architecture in which each input port maintains a separate unicast VOQ for each output port for unicast packets and one or more multicast VOQs for output ports for multicast packets so that multicast packets are queued separately from unicast packets; and wherein, during operation, the network switch fabric; receives the packet at an input port of the network switch fabric; and sends the packet from the input port to one of the output port and the output ports by inserting the packet into one of a unicast VOQ for the output port and one or more of the multicast VOQs for the output ports wherein, while inserting the packet into a given VOQ, the packet is assigned to a current virtual lane in multiple virtual lanes for a data flow associated with the packet, and prior to assigning the packet to the current virtual lane, remapping from a previous virtual lane specified by information in the packet to the current virtual lane. - View Dependent Claims (14, 15, 16)
-
Specification