IP Library Granted Patent US 8,621,627
Granted Patent B1
US 8,621,627 · App. 12/704,884 · Granted Dec 31, 2013

Intrusion detection and prevention processing within network interface circuitry

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,621,627
App. No.
12/704,884
Granted
Dec 31, 2013
Kind
B1
Abstract

A network interface controller (NIC) is configured to couple a host to a network. The NIC coupled to the host via a host bus, and the host is configured to operate a plurality of virtual machines. The NIC is configured to receive at least one data frame, the at least one data frame including at least a source network address and indication of at least one destination network address; determine if the received data frame is a frame on which additional processing should occur; based on a result of the determining step, cause the frame to be provided to the host, via the host bus, for the host to perform the additional processing; and receive, via the host bus, the frame on which additional processing has been performed and steer the frame to a destination based on the at least one destination address.

Claims (62)

1. A network interface controller (NIC) configured to couple a host to a network, the NIC coupled to the host via a host bus, and the host configured to operate a plurality of virtual machines, the NIC configured to:

receive at least one data frame, the at least one data frame including at least a source network address and indication of at least one destination network address,

determine if the received data frame is a frame on which additional processing should occur;

based on a result of the determining step, cause the frame to be provided to the host, via the host bus, for the host to perform the additional processing; and

receive, via the host bus, the frame on which additional processing has been performed and steer the frame to a destination based on the at least one destination address.

2. The NIC of claim 1 , wherein the NIC is further configured to:

for each received data frame that is a data frame received from one of the virtual machines operated by the host and which is indicated as belonging to a connection for which the NIC is configured to offload protocol processing, performing protocol processing with respect to the data frame according to a state of the connection maintained in the NIC.

3. The NIC of claim 1 , wherein the NIC is further configured to:

for each data frame on which additional processing has been performed and that is a data frame destined for one of the virtual machines operated by the host and which is indicated as belonging to a connection for which the NIC is configured to offload protocol processing, performing protocol processing with respect to the data frame and the connection according to a state of the connection maintained in the NIC.

4. The NIC of claim 1 , wherein:

the NIC being configured to receive at least one data frame includes the NIC being configured to receive at least one data frame from either a peer via the network or from the virtual machines operated on the host.

5. The NIC of claim 1 , wherein the NIC is configured to carry out filter processing such that a frame that would otherwise be caused to be provided to the host, via the host bus, for the host to perform the additional processing, is instead dropped.

6. The NIC of claim 5 , wherein the NIC is configured to carry out filter processing at least in part based on rules that are configurable by the additional processing being performed on the host.

7. A network interface controller (NIC) configured to couple a host to a network, the NIC coupled to the host via a host bus, and the host configured to operate a plurality of virtual machines, the NIC including a data frame processing pipeline configured to:

receive at least one data frame, the at least one data frame including at least a source network address and indication of at least one destination network address,

based on an indication in the data frame, determine if the received data frame is a frame on which additional processing should occur;

based on a result of the determining step, cause the frame to be provided to the host, via the host bus, for the host to perform the additional processing; and

receive, via the host bus, the frame on which additional processing has been performed and provide the frame to a destination based on the indication of the at least one destination address.

8. The NIC of claim 7 , wherein the data frame processing pipeline of the NIC is further configured to:

for each received data frame that is a data frame received from one of the virtual machines operated by the host and which is indicated as belonging to a connection for which the NIC is configured to offload protocol processing, performing protocol processing with respect to the data frame according to a state of the connection maintained in the NIC.

9. The NIC of claim 7 , wherein the data frame processing pipeline of the NIC is further configured to:

for each data frame on which additional processing has been performed and that is a data frame destined for one of the virtual machines operated by the host and which is indicated as belonging to a connection for which the NIC is configured to offload protocol processing, performing protocol processing with respect to the data frame and the connection according to a state of the connection maintained in the NIC.

10. The NIC of claim 9 , wherein:

the NIC is further configured to add, after the performing of the protocol processing, the indication in the data frame, on which the determining is based, to at least some of the data frames that originate from a virtual machine that is not indicated as a trusted virtual machine.

11. The NIC of claim 7 , wherein:

the source network address is an original source network address; and

the frame on which additional processing has been performed, received via the host bus, indicates the original source network address as a source network address.

12. The NIC of claim 7 , wherein:

the indication in the data frame on which the determining is based is an indication of an origin of the data frame.

13. The NIC of claim 7 , wherein:

the NIC is further configured to add the indication in the data frame, on which the determining is based, to at least some of the data frames that originate from a virtual machine that is not indicated as a trusted virtual machine.

14. The NIC of claim 13 wherein:

for each received data frame that is a data frame received from one of the virtual machines operated by the host and which is indicated as belonging to a connection for which the NIC is configured to offload protocol processing, performing protocol processing with respect to the data frame according to a state of the connection maintained in the NIC.

15. The NIC of claim 14 , wherein:

the NIC is configured to add the indication in the data frame after the offload protocol processing is performed with respect to the data frame.

16. The NIC of claim 13 , wherein:

firmware in the NIC is configured to mark the data frame as a data frame for which the indication is to be added; and

the NIC is further configured to, during protocol offload processing of the data frame, detect that the data frame has been marked and to add the indication to the protocol processed data frame.

17. The NIC of claim 13 , wherein:

the indication which the NIC is configured to add in the data frame is a control tag.

18. The NIC of claim 17 , wherein the control tag is an oVLAN tag.

19. The NIC of claim 13 , wherein:

the indication which the NIC is configured to add in the data frame is an Ethernet header that indicates a destination on the host to perform the intrusion detection processing.

20. The NIC of claim 7 , wherein:

the NIC being configured provide the frame to a destination based on the indication of the at least one destination address includes the NIC being configured to determine whether to provide the frame to multiple destinations based on the indication of the at least one destination address.

21. The NIC of claim 20 , wherein:

the NIC is further configured to, based on a result of the determination of whether to provide the frame to multiple destinations, replicate the frame and utilize the processing pipeline to provide the replicated frames to the multiple destinations.

22. The NIC of claim 7 , wherein the NIC is configured to carry out filter processing such that a frame that would otherwise be caused to be provided to the host, via the host bus, for the host to perform the additional processing, is instead dropped.

23. The NIC of claim 22 , wherein the NIC is configured to carry out filter processing at least in part based on rules that are configurable by the additional processing being performed on the host.

24. A network interface controller (NIC) configured to couple a host to a network, the NIC coupled to the host via a host bus, and the host configured to operate a plurality of virtual machines, the NIC configured to:

receive at least one data frame, the at least one data frame including at least a source network address and indication of at least one destination network address,

determine if the received data frame is a frame on which additional processing should occur;

based on a result of the determining step, cause the frame to be provided for additional processing prior to providing the frame to a destination; and

receive the frame on which additional processing has been performed and steer the frame to the destination based on the at least one destination address.

25. The NIC of claim 24 , wherein the NIC is further configured to:

for each received data frame that is a data frame received from one of the virtual machines operated by the host and which is indicated as belonging to a connection for which the NIC is configured to offload protocol processing, performing protocol processing with respect to the data frame according to a state of the connection maintained in the NIC.

26. The NIC of claim 24 , wherein the NIC is further configured to:

for each data frame on which additional processing has been performed and that is a data frame destined for one of the virtual machines operated by the host and which is indicated as belonging to a connection for which the NIC is configured to offload protocol processing, performing protocol processing with respect to the data frame and the connection according to a state of the connection maintained in the NIC.

27. The NIC of claim 24 , wherein:

the NIC being configured to receive at least one data frame includes the NIC being configured to receive at least one data frame from either a peer via the network or from the virtual machines operated on the host.

28. The NIC of claim 24 , wherein the NIC is configured to carry out filter processing such that a frame that would otherwise be caused to be provided to the host, via the host bus, for the host to perform the additional processing, is instead dropped.

29. The NIC of claim 24 , wherein the NIC is configured to carry out filter processing at least in part based on rules that are configurable by the additional processing being performed on the host.

Assignments (12)
CHANGE OF NAME Recorded May 5, 2026
From: CHELSIO COMMUNICATIONS, INC.
To: SPEEDNIC LLC
Reel/Frame 075561/0001 →
RELEASE OF SECURITY INTEREST Recorded Dec 26, 2025
From: CSNK WORKING CAPITAL FINANCE CORP.
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 074070/0784 →
RELEASE OF SECURITY INTEREST Recorded Dec 18, 2025
From: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 073264/0525 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE FIRST PAGE OF THE INTELLECTUAL PROPERTY SECURITY AGREEMENT HAS AN INCORRECT DATE THAT NEEDS TO BE CORRECTED PREVIOUSLY RECORDED ON REEL 050050 FRAME 0396. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Aug 15, 2019
From: CHELSIO COMMUNICATIONS, INC.
To: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
Reel/Frame 050112/0234 →
SECURITY INTEREST Recorded Aug 14, 2019
From: CHELSIO COMMUNICATIONS, INC.
To: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
Reel/Frame 050050/0396 →
RELEASE OF SECURITY INTEREST Recorded Apr 25, 2017
From: NOVIRIAN CAPITAL
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 042142/0232 →
SECURITY INTEREST Recorded Jul 29, 2016
From: CHELSIO COMMUNICATIONS, INC.
To: NOVIRIAN CAPITAL
Reel/Frame 039296/0550 →
RELEASE OF SECURITY INTEREST Recorded Jul 15, 2016
From: EAST WEST BANK
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 039360/0596 →
SECURITY INTEREST Recorded Oct 21, 2014
From: CHELSIO COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 033990/0451 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2014
From: EAST WEST BANK
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 033989/0930 →
SECURITY INTEREST Recorded Mar 19, 2014
From: CHELSIO COMMUNICATIONS, INC.
To: EAST WEST BANK
Reel/Frame 032479/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2010
From: EIRIKSSON, ASGEIR THOR; NOUREDDINE, WAEL; SULLEREY, ANAMAYA
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 023965/0447 →