US2015312159A1PendingUtilityA1

Mechanism to save system power using packet filtering by network interface

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Jul 13, 2011Filed: Dec 22, 2014Published: Oct 29, 2015
Est. expiryJul 13, 2031(~5 yrs left)· nominal 20-yr term from priority
G06F 13/385H04L 47/821H04L 49/3027H04L 47/624H04L 47/32G06F 1/329G06F 1/3209H04L 49/30Y02D10/00
52
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.