Mechanism to save system power using packet filtering by network interface
Abstract
A network interface that connects a computing device to a network may be configured to process incoming packets and determine an action to take with respect to each packet, thus decreasing processing demands on a processor of the computing device. The action may be indicating the packet to an operating system of the computing device immediately, storing the packet in a queue of one or more queues or discarding the packet. When the processor is interrupted, multiple packets aggregated on the network interface may be indicated to the operating system all at once to increase the device's power efficiency. Hardware of the network interface may be programmed to process the packets using filter criteria specified by the operating system based on information gathered by the operating system, such as firewall rules.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method ( 500 ) of operating a network interface ( 204 , 220 ) adapted for connecting a computing device ( 201 ) to a network ( 102 ), the method comprising:
receiving ( 502 ) a packet over the network; and determining ( 504 , 506 , 509 , 510 , 511 , 512 ) an action to perform on the packet, wherein the action comprises at least one of indicating ( 508 ) the packet to an operating system of the computing device immediately, delaying ( 518 ) indication of the packet to the operating system, and discarding ( 516 ) the packet.
2 . The method of claim 1 , wherein, when the determined action comprises delaying indication of the packet to the operating system, the method further comprises:
storing ( 520 ) the packet in a queue ( 314 ), wherein the queue is associated with a time limit indicating a maximum time a packet may be stored in the queue; and when a processor interrupt is generated, indicating ( 522 , 524 ) to the operating system all packets stored in the queue.
3 . The method of claim 2 , wherein:
the network interface has a plurality of queues storing a plurality of packets; and when the processor interrupt is generated, the method further comprises indicating ( 612 , 616 ) to the operating system all packets of the plurality of packets.
4 . The method of claim 2 , wherein the processor interrupt is generated when a condition is met, the condition comprises at least one selected from the group consisting of arrival of a packet classified for immediate indication to the operating system, expiration of the time limit, transfer of a packet to the queue so that a maximum size of the queue is reached, and a determination that a processor is operating in a power state in which it can process the received packet.
5 . The method of claim 1 , wherein determining the action comprises applying ( 504 ) criteria of a plurality of filters specified by the operating system ( 208 ) to the packet to identify a matching filter.
6 . The method of claim 5 , further comprising, when no matching filter is identified, performing an immediate action on the packet, the immediate action comprising an action selected from the group consisting of indicating the packet to the operating system ( 508 ) and discarding the packet ( 516 ).
7 . The method of claim 5 , wherein a criterion of the plurality of filters is a type of the network.
8 . The method of claim 5 , further comprising:
obtaining at least one criterion for a first filter of the plurality of filters from at least one firewall rule.
9 . The method of claim 8 , wherein, when the received packet meets the at least one criterion of the first filter, the action comprises discarding the packet.
10 . A network interface device ( 204 , 220 ) adapted for connecting a computing device ( 201 ) to a network ( 102 ), the network interface device comprising:
circuitry ( 206 ) separate from a processor of the computing device that is programmed with computer-executable instructions that, when executed, selectively process a packet received from the network by: applying ( 504 ) criteria of each of at least one filter ( 306 , 308 , 310 ) to the packet; determining ( 506 , 509 , 510 , 511 , 512 ) an action to perform on the packet, based on whether the packet meets criteria of any of the at least one filter; when the determined action comprises discarding the packet, discarding ( 516 ) the packet; when the determined action comprises indicating the packet to an operating system of the computing device immediately, indicating ( 508 ) the packet to the operating system immediately; and when the determined action comprises delaying indication of the packet to the operating system, storing ( 518 , 520 ) the packet.
11 . The network interface device of claim 10 , wherein the network interface comprises a network interface card ( 204 ).
12 . The network interface of claim 10 , wherein the network interface is a component of a network gateway device ( 220 ) separate from the computing device.
13 . The network interface device of claim 10 , wherein:
the network interface device further comprises at least one queue ( 314 ); and storing the packet comprises storing the packet in a queue of the at least one queue on the network interface.
14 . The network interface device of claim 13 , wherein:
the queue is associated with a time limit indicating a maximum storage time for a packet in the queue; and the circuitry is configured to indicate all packets stored in the queue to the operating system when a processor interrupt is generated.
15 . The network interface device of claim 14 , wherein the circuitry is configured to generate the processor interrupt when at least one second packet classified as of immediate interest to the operating system is received and indicated to the operating system.
16 . At least one computer-readable storage medium encoded with computer-executable instructions that, when executed with at least one processor, perform a method of operating a network interface adapted for connecting a computing device to a network, the method comprising:
receiving sets of filter criteria from an operating system of the computing device; programming circuitry of the network interface to process received packets using the sets of filter criteria; and receiving a packet over the network; and applying the sets of filter criteria to the packet to determine an action to perform on the packet, the determined action comprising an action selected from the group consisting of indicating the packet to the operating system immediately, delaying indication of the packet to the operating system, and discarding the packet.
17 . The at least one computer-readable storage medium of claim 16 , wherein the computer-readable storage medium comprises a semiconductor chip on the network interface.
18 . The at least one computer-readable storage medium of claim 17 , wherein the network interface comprises a component of a network gateway having a network interface adapted to receive the sets of filter criteria over a network.
19 . The at least one computer-readable storage medium of claim 16 , wherein, when the determined action comprises delaying indication of the packet to the operating system, the method further comprises:
storing the packet in a queue; and when an interrupt is generated, indicating to the operating system all packets stored in the queue.
20 . The at least one computer-readable storage medium of claim 19 , wherein:
the queue is associated with a time limit indicating a maximum time a packet may be stored in the queue; and the interrupt is generated when a packet has been stored in the queue for a time limit.Join the waitlist — get patent alerts
Track US2015312159A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.