Self-configuring computer network router
First Claim
Patent Images
1. A self-configuring router, comprising:
- a plurality of P processors, each processor of the plurality of P processor having a normalized processor identifier;
a memory coupled to the plurality of P processors;
a plurality of queues represented by data stored in the memory, each queue of the plurality of queues having a normalized queue identifier;
a plurality of N network interfaces, wherein each network interface of the plurality of N network interfaces;
(a) has a normalized network interface identifier, (b) is associated with at least one queue of the plurality of queues and (c) is configured to automatically enqueue messages received thereby onto the at least one queue associated therewith; and
a resource allocator configured to automatically;
(a) calculate, for each network interface/queue combination of the plurality of N network interfaces and the plurality of queues, a processor identifier of a respective processor of the plurality of P processors based on;
(1) the normalized queue identifier of the queue of the network interface/queue combination, (2) the normalized network interface identifier of the network interface associated with the queue, (3) the number N of network interfaces in the plurality of N network interfaces, (4) the number P of processors in the plurality of P processors and (5) a result of a modulo calculation involving the number P; and
(b) assign the processor having the calculated processor identifier to the network interface/queue combination to dequeue and process messages on the queue of the interface/queue combination.
2 Assignments
0 Petitions
Accused Products
Abstract
A self-configuring router includes a resource allocator that automatically assigns processors to queues, such that queue workload is distributed as evenly as possible among the processors, and the processors are as fully utilized as possible. Consequently, packets do not remain on queues longer than necessary, thereby decreasing latency of packets traversing the router, and available and expensive resources, namely the processors, are kept busy. The router automatically allocates its own resources (processors) to its own queues.
-
Citations
8 Claims
-
1. A self-configuring router, comprising:
-
a plurality of P processors, each processor of the plurality of P processor having a normalized processor identifier; a memory coupled to the plurality of P processors; a plurality of queues represented by data stored in the memory, each queue of the plurality of queues having a normalized queue identifier; a plurality of N network interfaces, wherein each network interface of the plurality of N network interfaces;
(a) has a normalized network interface identifier, (b) is associated with at least one queue of the plurality of queues and (c) is configured to automatically enqueue messages received thereby onto the at least one queue associated therewith; anda resource allocator configured to automatically; (a) calculate, for each network interface/queue combination of the plurality of N network interfaces and the plurality of queues, a processor identifier of a respective processor of the plurality of P processors based on; (1) the normalized queue identifier of the queue of the network interface/queue combination, (2) the normalized network interface identifier of the network interface associated with the queue, (3) the number N of network interfaces in the plurality of N network interfaces, (4) the number P of processors in the plurality of P processors and (5) a result of a modulo calculation involving the number P; and (b) assign the processor having the calculated processor identifier to the network interface/queue combination to dequeue and process messages on the queue of the interface/queue combination. - View Dependent Claims (2, 3, 4)
-
-
5. A method for automatically managing hardware resources within a router, the method comprising automatically:
-
storing data in a memory of the router, the data representing a plurality of queues; assigning to each queue of the plurality of queues a respective normalized queue identifier; ascertaining a number P of processors available in the router; ascertaining a number N of network interfaces available in the router; assigning to each network interface of the N network interfaces a respective normalized network interface identifier; associating each network interface of the N network interfaces with at least one queue of the plurality of queues; configuring each network interface of the N network interfaces to enqueue messages received thereby onto the queue(s) associated therewith; for each network interface/queue combination of the N network interfaces and the plurality of queues; calculating a processor identifier of a respective processor of the P processors, based on; (a) the normalized queue identifier of the queue of the network interface/queue combination, (b) the normalized network interface identifier of the network interface associated with the queue, (c) the number N of network interfaces and (d) the number P of processors available in the router; and a result of a modulo calculation involving the number P; and assigning the processor of the P processors having the calculated processor identifier to dequeue and process messages on the queue of the network interface/queue combination. - View Dependent Claims (6, 7)
-
-
8. A non-transitory computer-readable medium encoded with instructions that, when executed by a processor, establish processes for performing a computer-implemented method of managing hardware resources in a router, the processes comprising:
-
a process storing data in a memory of the router, the data representing a plurality of queues; a process assigning to each queue of the plurality of queues a respective normalized queue identifier; a process ascertaining a number P of processors available in the router; a process ascertaining a number N of network interfaces available in the router; a process assigning to each network interface of the N network interfaces a respective normalized network interface identifier; a process associating each network interface of the N network interfaces with at least one queue of the plurality of queues; a process configuring each network interface of the N network interfaces to enqueue messages received thereby onto the queue(s) associated therewith; a process, for each network interface/queue combination of the N network interfaces and the plurality of queues; calculating a processor identifier of a respective processor of the P processors, based on; (a) the normalized queue identifier of the queue of the network interface/queue combination, (b) the normalized network interface identifier of the network interface associated with the queue, (c) the number N of network interfaces and (d) the number P of processors available in the router; and a result of a modulo calculation involving the number P; and assigning the processor of the P processors having the calculated processor identifier to dequeue and process messages on the queue of the network interface/queue combination.
-
Specification