Multibank egress queuing system in a network device
First Claim
1. A method of managing queues in an egress queuing system in a network device, the method comprising:
- receiving a plurality of packets to be stored in a first egress queue, wherein the first egress queue is distributed among a plurality of memory banks;
distributing the packets among the plurality of memory banks, including selecting memory banks in which to store the packets based on pseudorandom numbers generated for the packets, wherein the pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed; and
subsequently retrieving the packets from the plurality of memory banks, including selecting memory banks from which to retrieve the packets based on pseudorandom numbers regenerated for the packets, wherein the pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed.
1 Assignment
0 Petitions
Accused Products
Abstract
In a method of managing queues in an egress queuing system in a network device, a plurality of packets to be stored in a first egress queue are received. The first egress queue is distributed among a plurality of memory banks. The packets are distributed among the plurality of memory banks. Memory banks in which to store the packets are selected based on pseudorandom numbers generated for the packets. The pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed. Subsequently, the packets are retrieved from the plurality of memory banks. Memory banks from which to retrieve the packets are selected based on pseudorandom numbers regenerated for the packets. The pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed.
46 Citations
21 Claims
-
1. A method of managing queues in an egress queuing system in a network device, the method comprising:
-
receiving a plurality of packets to be stored in a first egress queue, wherein the first egress queue is distributed among a plurality of memory banks; distributing the packets among the plurality of memory banks, including selecting memory banks in which to store the packets based on pseudorandom numbers generated for the packets, wherein the pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed; and subsequently retrieving the packets from the plurality of memory banks, including selecting memory banks from which to retrieve the packets based on pseudorandom numbers regenerated for the packets, wherein the pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An egress queuing system, comprising:
-
a plurality of memory banks for storing egress queues, wherein each egress queue is distributed among two or more memory banks of the plurality of memory banks; a write controller coupled to the plurality of memory banks, the write controller configured to receive a plurality of packets to be stored in a first egress queue, and distribute the packets among the plurality of memory banks configured to store the first queue, wherein the write controller is configured to select memory banks in which to store the packets based on pseudorandom numbers generated for the packets, wherein the pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed; and a read controller coupled to the plurality of memory banks, the read controller configured to retrieve the packets from the plurality of memory banks configured to store the first queue, wherein the read controller is configured to select memory banks from which to retrieve the packets based on pseudorandom numbers regenerated for the packets, wherein the pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A network device, comprising:
-
one or more packet processing cores configured to receive packets from a network and to transmit packets on a network; and an egress queuing system coupled to the one or more packet processing cores, the egress queuing system configured to receive, from one or more packet processing cores, a plurality of packets to be stored in a first egress queue, wherein the first queue is distributed among a plurality of memory banks, distribute the packets among the plurality of memory banks, wherein the egress queuing system is configured to select memory banks in which to store the packets based on pseudorandom numbers generated for the packets, wherein the pseudorandom numbers are generated using a first pseudorandom number generator initialized with a first seed; and subsequently retrieve the packets from the plurality of memory banks, wherein the egress queuing system is configured to select memory banks from which to retrieve the packets based on pseudorandom numbers regenerated for the packets, wherein the pseudorandom numbers are regenerated using a second pseudorandom number generator initialized with the first seed. - View Dependent Claims (18, 19, 20, 21)
-
Specification