Network interface controller with receive side scaling and quality of service
First Claim
Patent Images
1. A method for delivering data input to a central processing unit (CPU) in a multi-CPU computer system, the method comprising:
- (a) receiving a data packet and a resolution control signal;
(b) parsing a portion of the data packet comprising;
(i) applying a function to the portion of the data packet to generate a first CPU queue identifier and a first valid signal; and
(ii) applying user defined rules to the portion of the data packet to generate a second CPU queue identifier and a second valid signal;
(c) generating a global CPU queue identifier based on the first and second CPU queue identifiers, first and second valid signals, and the resolution control signal; and
(d) routing the data packet to a CPU defined by the global CPU queue identifier.
5 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed to methods and systems for scaling receive protocol processing by allowing the network load from a network adapter to be balanced across multiple CPUs based on RSS and/or QoS traffic classification techniques.
-
Citations
10 Claims
-
1. A method for delivering data input to a central processing unit (CPU) in a multi-CPU computer system, the method comprising:
-
(a) receiving a data packet and a resolution control signal; (b) parsing a portion of the data packet comprising; (i) applying a function to the portion of the data packet to generate a first CPU queue identifier and a first valid signal; and (ii) applying user defined rules to the portion of the data packet to generate a second CPU queue identifier and a second valid signal; (c) generating a global CPU queue identifier based on the first and second CPU queue identifiers, first and second valid signals, and the resolution control signal; and (d) routing the data packet to a CPU defined by the global CPU queue identifier. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A network interface controller system, comprising:
-
a receive side scaling (RSS) engine wherein the RSS engine receives a plurality of data packets and produces an RSS CPU queue identifier and a first valid signal; a quality of service (QoS) engine wherein the QoS engine receives a plurality of inputs and produces a QoS CPU queue identifier and a second valid signal; and a resolution logic module coupled to both the RSS engine and the QoS engine, wherein the resolution logic module receives the RSS CPU queue identifier, the QoS CPU queue identifier, the first and second valid signals, and a resolution control signal, and produces an output CPU queue identifier that identifies a CPU to receive at least a portion of the plurality of data packets. - View Dependent Claims (7, 8, 9, 10)
-
Specification