IP Library Granted Patent US 8,353,003
Granted Patent B2
US 8,353,003 · App. 11/236,696 · Granted Jan 8, 2013

System and method for controlling a flow of data a network interface controller to a host processor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,353,003
App. No.
11/236,696
Granted
Jan 8, 2013
Kind
B2
Abstract

A system and method for controlling a flow of data from a network interface controller (NIC) to a host processor coupled to the NIC. Data such as IP packets are received by the NIC and may be transmitted to the host processor for further processing such as firewall processing. The NIC is in communication with the host processor using, for example, a software driver running on the host processor. The NIC may monitor the processing load on the host processor as it handles packet data received from the NIC. As the processing load increases, the NIC may begin to throttle the quantity of packets being sent to the host processor in order to avoid overloading the host processor. The throttling may be governed by a heuristic throttling function.

Claims (41)

1. A method for controlling a flow of data from a network interface controller (NIC) to a host processor, the method comprising:

receiving data on the NIC;

sending at least a portion of the data received by the NIC to the host processor coupled to the NIC;

monitoring a load on the host processor as the host processor handles the data received from the NIC; and

throttling the sending of the data from the NIC to the host processor in response to the monitoring of the load.

2. The method of claim 1 wherein the extent of throttling of the sending of the data is determined using a throttling function.

3. The method of claim 2 wherein the throttling function provides a packet output rate, for sending packets from the NIC to the host processor, based on an input queue length of the host processor.

4. The method of claim 1 wherein the NIC comprises a network processor; and the method further comprising processing at least a portion of data received by the NIC using the network processor wherein the portion of data processed by the network processor is sent from the NIC to another network device without prior processing by the host processor.

5. The method of claim 1 wherein the NIC comprises a buffer for receiving data and the throttling of the sending of the data comprises removing data from the buffer.

6. The method of claim 5 the throttling comprises selectively removing data from the buffer based on packet type.

7. The method of claim 1 wherein the throttling of the sending of the data comprises:

selecting a throttling limit; and

limiting the flow of data from the NIC to the host processor to a quantity no greater than the throttling limit.

8. The method of claim 7 wherein:

the host processor comprises one or more input packet queues for receiving data from the NIC;

and the throttling limit is selected using a throttling function that relates an expected processing capability of the host processor to one or more of the input queue lengths of the one or more input packet queues.

9. The method of claim 1 further comprising accessing a drop policy database to obtain information regarding a selection of packets to be removed from the NIC without being sent to the host processor.

10. The method of claim 9 wherein the drop policy database comprises information regarding types of undesired traffic.

11. The method of claim 9 further comprising dynamically updating the drop policy database in response to a denial of service attack.

12. The method of claim 11 wherein the updating comprises:

identifying new traffic types included as part of the denial of service attack that were not previously stored in the drop policy database; and

adding information regarding the new traffic types to the drop policy database.

13. The method of claim 12 wherein the throttling of the sending of the data is applied only with respect to data received by the NIC that does not correspond to a traffic type stored in the drop policy database.

14. A method for controlling a flow of packets from a network interface controller (NIC) to a host processor, the method comprising:

monitoring a packet processing load on the host processor coupled to the NIC as the host processor handles packets received from the NIC; and

throttling the sending of the packets from the NIC to the host processor in response to the monitoring of the load.

15. The method of claim 14 wherein the throttling of the sending of the packets comprises limiting the number of packets flowing from the NIC to the host processor over a time period.

16. The method of claim 15 wherein the throttling of the sending of the packets further comprises using a throttling function to determine the number of packets that are permitted to flow from the NIC to the host processor.

17. A method for controlling a flow of packets from a network interface controller (NIC) to a host processor, the method comprising:

monitoring by the NIC of one or more input packet queue lengths of the host processor;

using a throttling function to select a throttling limit dependent on the one or more input packet queue lengths monitored by the NIC; and

limiting the flow to the host processor of packets received by the NIC that exceed the throttling limit.

18. The method of claim 17 wherein the throttling limit is a number of packets per time period.

19. The method of claim 17 further comprising disabling the limiting of the flow to the host processor in response to the one or more input packet queue lengths falling below a predetermined limit.

20. The method of claim 17 wherein the throttling function relates an expected packet processing capability of the host processor to the one or more of the input packet queue lengths.

21. A method for controlling a flow of data from a network interface controller (NIC) to a host processor, the method comprising:

receiving data on the NIC;

sending at least a portion of the data received by the NIC to the host processor;

assigning a priority to a selected portion of the data received by the NIC based on the packet type of the data to provide prioritized data;

monitoring a load on the host processor as the host processor handles the data received from the NIC; and

throttling the sending of the prioritized data from the NIC to the host processor in response to the monitoring of the load.

Assignments (3)
MERGER Recorded Jul 1, 2016
From: EXELIS INC.
To: HARRIS CORPORATION
Reel/Frame 039362/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2012
From: ITT MANUFACTURING ENTERPRISES LLC (FORMERLY KNOWN AS ITT MANUFACTURING ENTERPRISES, INC.)
To: EXELIS INC.
Reel/Frame 027584/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2009
From: NOEHRING, LEE; SCHOLLMEYER, DAVID; MERCER, CHAD
To: ITT MANUFACTURING ENTERPRISES, INC.
Reel/Frame 022362/0620 →