Multi-stage scheduler
AssigneeMarvell Asia Pte Ltd
InventorsWilliam Brad Matthews, Ashwin Alapati
Life of this patent
Estimating the term…
Abstract
Packet metadata for incoming packets are buffered in queue selection buffers associated with a port of a network node. Packet data for outgoing packets are buffered in a port selection buffer associated with the port. At a selection clock cycle, while a port scheduler of the network node selects a subset of the packet data for a subset of the outgoing packets from the port selection buffer, a queue scheduler of the port concurrently selects a subset of the packet metadata for a subset of the incoming packets from the queue selection buffers and adds new packet data for new outgoing packets to the port selection buffer of the port. The new packet data are derived based at least in part on the subset of the packet metadata for the subset of the incoming packets.
Claims27
A method comprising:
- buffering a plurality of sets of packet metadata for a plurality of incoming packets in a plurality of queue selection buffers associated with a port of a network node;
- buffering one or more sets of packet metadata for one or more outgoing packets in a port selection buffer associated with the port;
- wherein the port belongs to a plurality of ports of the network node;
- buffering one or more additional sets of packet metadata for outgoing packets in a second port selection buffer associated with a second port in the plurality of the ports of network node;
- at a selection clock cycle, while selecting, by a port scheduler of the network node, a subset of the one or more sets of packet metadata for a subset of the one or more outgoing packets from the port selection buffer and a second subset of the one or more additional sets of packet metadata for a second subset of the outgoing packets from the second port selection buffer, concurrently performing by a queue scheduler of the port for a plurality of packet queues set up for the port:
- selecting one or more second sets of packet metadata for one or more incoming packets in the plurality of incoming packets from among the plurality of sets of packet metadata stored in the plurality of queue selection buffers;
- adding the one or more second sets of packet metadata for one or more second outgoing packets to the port selection buffer of the port.
A system comprising:
- one or more computing devices;
- one or more non-transitory computer readable media storing instructions that, when executed by the one or more computing devices, cause performance of:
- buffering a plurality of sets of packet metadata for a plurality of incoming packets in a plurality of queue selection buffers associated with a port of a network node;
- buffering one or more sets of packet metadata for one or more outgoing packets in a port selection buffer associated with the port;
- wherein the port belongs to a plurality of ports of the network node;
- buffering one or more additional sets of packet metadata for outgoing packets in a second port selection buffer associated with a second port in the plurality of the ports of network node;
- at a selection clock cycle, while selecting, by a port scheduler of the network node, a subset of the one or more sets of packet metadata for a subset of the one or more outgoing packets from the port selection buffer and a second subset of the one or more additional sets of packet metadata for a second subset of the outgoing packets from the second port selection buffer, concurrently performing by a queue scheduler of the port for a plurality of packet queues set up for the port:
- selecting one or more second sets of packet metadata for one or more incoming packets in the plurality of incoming packets from among the plurality of sets of packet metadata stored in the plurality of queue selection buffers;
- adding the one or more second sets of packet metadata for one or more second outgoing packets to the port selection buffer of the port.
One or more non-transitory computer readable media storing instructions that, when executed by one or more computing devices, cause performance of:
- buffering a plurality of sets of packet metadata for a plurality of incoming packets in a plurality of queue selection buffers associated with a port of a network node;
- buffering one or more sets of packet metadata for one or more outgoing packets in a port selection buffer associated with the port;
- wherein the port belongs to a plurality of ports of the network node;
- buffering one or more additional sets of packet metadata for outgoing packets in a second port selection buffer associated with a second port in the plurality of the ports of network node;
- at a selection clock cycle, while selecting, by a port scheduler of the network node, a subset of the one or more sets of packet metadata for a subset of the one or more outgoing packets from the port selection buffer and a second subset of the one or more additional sets of packet metadata for a second subset of the outgoing packets from the second port selection buffer, concurrently performing by a queue scheduler of the port for a plurality of packet queues set up for the port:
- selecting one or more second sets of packet metadata for one or more incoming packets in the plurality of incoming packets from among the plurality of sets of packet metadata stored in the plurality of queue selection buffers;
- adding the one or more second sets of packet metadata for one or more second outgoing packets to the port selection buffer of the port.
A method comprising:
- buffering a plurality of sets of packet metadata for a plurality of incoming packets in a plurality of queue selection buffers associated with a port of a network node;
- buffering one or more sets of packet metadata for one or more outgoing packets in a port selection buffer associated with the port;
- at a selection clock cycle, while selecting, by a port scheduler of the network node, a subset of the one or more sets of packet metadata for a subset of the one or more outgoing packets from the port selection buffer, concurrently performing by a queue scheduler of the port for a plurality of packet queues set up for the port:
- selecting one or more second sets of packet metadata for one or more incoming packets in the plurality of incoming packets from among the plurality of sets of packet metadata stored in the plurality of queue selection buffers;
- adding the one or more second sets of packet metadata for one or more second outgoing packets to the port selection buffer of the port;
- wherein the port belongs to a plurality of ports of the network node;
- buffering a second plurality of sets of packet metadata for a second plurality of incoming packets in a second plurality of queue selection buffers associated with a second port in the plurality of the ports of the network node;
- buffering one or more third sets of packet metadata for one or third second outgoing packets in a second port selection buffer associated with the second port;
- at said selection clock cycle, while selecting, by the port scheduler of the network node, a second subset of the one or more third sets of packet metadata for a second subset of the one or more second outgoing packets from the second port selection buffer, concurrently performing by a second queue scheduler of the second port for a second plurality of packet queues:
- selecting one or more fourth sets of packet metadata for one or more second incoming packets in the second plurality of incoming packets from among the second plurality of sets of packet metadata stored in the second plurality of queue selection buffers;
- adding the one or more fourth sets of packet metadata for one or more fourth outgoing packets to the second port selection buffer of the second port.
A system comprising:
- one or more computing devices;
- one or more non-transitory computer readable media storing instructions that, when executed by the one or more computing devices, cause performance of:
- buffering a plurality of sets of packet metadata for a plurality of incoming packets in a plurality of queue selection buffers associated with a port of a network node;
- buffering one or more sets of packet metadata for one or more outgoing packets in a port selection buffer associated with the port;
- at a selection clock cycle, while selecting, by a port scheduler of the network node, a subset of the one or more sets of packet metadata for a subset of the one or more outgoing packets from the port selection buffer, concurrently performing by a queue scheduler of the port for a plurality of packet queues set up for the port:
- selecting one or more second sets of packet metadata for one or more incoming packets in the plurality of incoming packets from among the plurality of sets of packet metadata stored in the plurality of queue selection buffers;
- adding the one or more second sets of packet metadata for one or more second outgoing packets to the port selection buffer of the port;
- wherein the port belongs to a plurality of ports of the network node;
- buffering a second plurality of sets of packet metadata for a second plurality of incoming packets in a second plurality of queue selection buffers associated with a second port in the plurality of the ports of the network node;
- buffering one or more third sets of packet metadata for one or third second outgoing packets in a second port selection buffer associated with the second port;
- at said selection clock cycle, while selecting, by the port scheduler of the network node, a second subset of the one or more third sets of packet metadata for a second subset of the one or more second outgoing packets from the second port selection buffer, concurrently performing by a second queue scheduler of the second port for a second plurality of packet queues:
- selecting one or more fourth sets of packet metadata for one or more second incoming packets in the second plurality of incoming packets from among the second plurality of sets of packet metadata stored in the second plurality of queue selection buffers;
- adding the one or more fourth sets of packet metadata for one or more fourth outgoing packets to the second port selection buffer of the second port.
One or more non-transitory computer readable media storing instructions that, when executed by one or more computing devices, cause performance of:
- buffering a plurality of sets of packet metadata for a plurality of incoming packets in a plurality of queue selection buffers associated with a port of a network node;
- buffering one or more sets of packet metadata for one or more outgoing packets in a port selection buffer associated with the port;
- at a selection clock cycle, while selecting, by a port scheduler of the network node, a subset of the one or more sets of packet metadata for a subset of the one or more outgoing packets from the port selection buffer, concurrently performing by a queue scheduler of the port for a plurality of packet queues set up for the port:
- selecting one or more second sets of packet metadata for one or more incoming packets in the plurality of incoming packets from among the plurality of sets of packet metadata stored in the plurality of queue selection buffers;
- adding the one or more second sets of packet metadata for one or more second outgoing packets to the port selection buffer of the port;
- wherein the port belongs to a plurality of ports of the network node;
- buffering a second plurality of sets of packet metadata for a second plurality of incoming packets in a second plurality of queue selection buffers associated with a second port in the plurality of the ports of the network node;
- buffering one or more third sets of packet metadata for one or third second outgoing packets in a second port selection buffer associated with the second port;
- at said selection clock cycle, while selecting, by the port scheduler of the network node, a second subset of the one or more third sets of packet metadata for a second subset of the one or more second outgoing packets from the second port selection buffer, concurrently performing by a second queue scheduler of the second port for a second plurality of packet queues:
- selecting one or more fourth sets of packet metadata for one or more second incoming packets in the second plurality of incoming packets from among the second plurality of sets of packet metadata stored in the second plurality of queue selection buffers;
- adding the one or more fourth sets of packet metadata for one or more fourth outgoing packets to the second port selection buffer of the second port.
Dependencies are inferred from the claim text.