Flexible queues in a network switch
AssigneeMarvell World Trade Ltd.
InventorsMichael Shamis, Youval Nachum
Life of this patent
Estimating the term…
Abstract
In an apparatus for receiving and forwarding data packets on a network, a network device includes a plurality of ports for coupling to the network and for transmitting packets to devices disposed in or coupled to the network. At least one processor configured to process packets received via the network processes packets by selectively forwarding processed packets to one or more of the ports. A plurality of queues are defined in a memory, each configured to store packets to be transmitted by ports in the plurality of ports. A queue manager is configured to selectively assign a subset of the plurality of queues to a subset of the plurality of ports.
Claims25
A network device comprising:
- a plurality of ports for coupling to a network and for transmitting packets to other devices disposed in or coupled to the network;
- at least one processor configured to process packets received via the network, the processing including determining, based at least in part on destination information included in the packets, one or more ports, of the plurality of ports, via which the processed packets are to be transmitted from the network device;
- a plurality of queues defined in a memory, the plurality of queues configured to store packets to be transmitted by ports among the plurality of ports;
- and
- a queue manager configured to selectively assign a subset of the plurality of queues to a subset of the plurality of ports, including storing, in a memory, queue assignment information that indicates which queues are selectively assigned to which ports;
- and
- the network device being configured to, based on (i) the determinations of the one or more ports via which processed packets are to be transmitted from the network device and (ii) the queue assignment information, direct processed packets to one or more queues of corresponding ports to transmit the processed packets to the other devices.
A network device comprising:
- a plurality of ports configured to (i) couple the network device to a network and (ii) transmit packets to other devices disposed in or coupled to the network;
- a plurality of port profiles, each port profile corresponding to one of the plurality of ports and indicating a feature of packet traffic destined for the port or a feature of a device coupled to the port;
- at least one processor configured to process packets received from the network, the processing including determining, based at least in part on destination information included in the packets, one or more ports, of the plurality of ports, via which the processed packets are to be transmitted from the network device;
- a plurality of queues defined in a memory, the plurality of queues configured to store packets to be transmitted by ports among the plurality of ports;
- and
- a queue manager responsive to the port profiles and arranged to
- configurably assign to each of the plurality of ports one or more of the plurality of queues according to the port profile corresponding to the port, including storing, in a memory, queue assignment information that indicates which queues are configurably assigned, by the queue manager, to which ports, and
- the network device being configured to, based on (i) the determinations of the one or more ports via which processed packets are to be transmitted from the network device and (ii) the queue assignment information, direct processed packets to one or more queues of corresponding ports to transmit the processed packets to the other devices.
A network device comprising:
- a plurality of ports configured to (i) couple to a network, (ii) receive packets via the network, and (iii) transmit packets via the network;
- at least one processor configured to process packets received via the network, the processing including selectively forwarding received packets to one or more of the ports for transmission via the network;
- a plurality of queues defined in a memory, the plurality of queues configured to store packets to be transmitted via the network;
- and
- a queue manager configured to (i) intercept a congestion notification sent to an upstream device in or coupled to the network from a downstream device in or coupled to the network and, (ii) mitigate congestion according to the intercepted congestion notification by (a) allocating one or more additional queues to a port or (b) modifying a queue length of a queue.
A method of configuring a network device, the method comprising:
- configuring a plurality of ports to transmit network packets to other devices disposed in or coupled to a network to which the ports are or will be connected;
- configuring at least one processor to process packets received via the network, the processing including determining, based at least in part on destination information included in the packets, one or more ports, of the plurality of ports, via which the processes packets are to be transmitted from the network device;
- defining in a memory a plurality of queues;
- configuring the plurality of queues to store packets to be transmitted;
- selectively assigning, with a queue manager, a subset of the plurality of queues to a subset of the plurality of ports, including storing, in a memory, queue assignment information that indicates which queues are selectively assigned to which ports, so that the network device can, based on (i) the determinations of the one or more ports via which processed packets are to be transmitted from the network device and (ii) the queue assignment information, direct processed packets to one or more queues of corresponding ports to transmit the processed packets to the other devices.
A method of operating a network device, the method comprising:
- selecting, with a queue manager, from a pool of available queues a subset of queues to associate with a particular port of the network device;
- assigning, with the queue manager, the selected subset of queues to the particular port, including storing, in a memory, queue assignment information that indicates that the subset of queues are assigned to the port;
- receiving packets at ports of the network device;
- determining, in a forwarding engine, one or more ports to which each of the received packets should be forwarded;
- and
- queuing each packet in a queue according, at least in part, to the corresponding determination of the one or more ports to which the packet should be forwarded, including using (i) the determination of the one or more ports to which the packet should be forwarded and (ii) the queue assignment information to direct packets, determined by the forwarding engine to be forwarded to the port, to the subset of queues.
A method of operating a network device having a plurality of ports coupled to a network, the method comprising:
- processing packets received from the network to selectively forward the received packets to one or more of the ports for transmission;
- storing the received packets in a plurality of queues, the queues defined in a memory and configured to store packets to be transmitted via the network;
- intercepting a congestion notification sent to an upstream device disposed in or coupled to the network from a downstream device disposed in or coupled to the network;
- and
- performing in a queue manager, according to the intercepted congestion notification, a queue modification action including (a) allocating one or more additional queues to a port or (b) modifying a queue length of a queue.
Dependencies are inferred from the claim text.