IP Library Granted Patent US 8,686,838
Granted Patent B1
US 8,686,838 · App. 13/081,392 · Granted Apr 1, 2014

Virtualizing the operation of intelligent 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,686,838
App. No.
13/081,392
Granted
Apr 1, 2014
Kind
B1
Abstract

The present invention is in the field of virtualization of Network Interface Cards and Controllers (NIC) that connect to for example a host computer that can have multiple functions and OS's (referred to as guest functions and guest-OS's) running on it simultaneously and, in particular, relates to the virtualization of the operation of a single NIC such that it can be used simultaneously by multiple guests in such a manner that memory references due to the network traffic originating from and destined to a particular guest is kept separate from other network traffic, and that allows the Media Access Controller (MAC) within the NIC to operate such that it only accepts network packets that are destined to one of the guest-functions or guest-OS's, and the MAC is not required to operate in promiscuous mode where it accepts all incoming packets in order to implement the virtualization features.

Claims (43)

1. A method of operating network interface circuitry, wherein the network interface circuitry is configured to couple a host computer, executing at least one operating system, to a network to facilitate communication over the network between the host computer and at least one peer, the method comprising:

by the network interface circuitry,

receiving data from a plurality of guest functions operating on the host in conjunction with the at least one operating system;

processing the received data and classifying the received data at least based on from which guest function at least a particular portion of the received data was received;

protocol processing with the at least one peer, including controlling the protocol processing for the received data based at least in part on a desired transmission rate characteristic for the classification of the received data, to control the protocol processing to encapsulate the data received from the host from the particular guest function into packets such that the packets are provided from the network interface device to the network with the desired transmission rate characteristic for the classification of the received data; and

transmitting the packets including the received data out to the network at a nominal rate associated with the classification with which the received data has been classified.

2. The method of claim 1 , wherein:

the protocol processing includes at least layer 3 protocol processing.

3. The method of claim 1 , wherein:

the protocol processing includes TCP processing.

4. The method of claim 1 , wherein:

the desired transmission rate characteristic indicate at least one of a group consisting of at least one desired shaping characteristic and at least one desired pacing characteristic.

5. The method of claim 1 , wherein:

controlling the protocol processing with the at least one peer such that the protocol processing for the received data is based at least in part on a desired transmission rate characteristic for the classification of the received data includes controlling the protocol processing at least in part on an estimate of an amount of data to be transmitted for the particular guest function and the desired transmission rate for the classification of the particular guest function, to regulate a rate at which the protocol processing mechanism operates for the particular guest function to encapsulate the received data, received from that particular guest function, into packets to be transmitted to the network.

6. The method of claim 1 , wherein:

the protocol processing step includes processing information received from the network and, based in part thereon, controlling the protocol processing.

7. The method of claim 1 , wherein:

the protocol processing step includes processing information received from the network, and,

the method further comprises determining whether transmission of the received data to the at least one peer should not be deferred, based on a result of processing the information received from the network.

8. The method of claim 7 , wherein:

the protocol processing step includes TCP, and

determining whether transmission of the received data to the at least one peer should not be deferred includes processing the information received from the network to determine if at least part of the received data, to be transmitted to the peer, has previously been transmitted.

9. Network interface circuitry configured to couple a host computer, executing at least one operating system, to a network to facilitate communication over the network between the host computer and at least one peer, the network interface circuitry configured to:

receiving data from a plurality of guest functions operating on the host in conjunction with the at least one operating system;

process the received data and classify the received data at least based on from which guest function at least a particular portion of the received data was received;

protocol process with the at least one peer, including controlling the protocol processing for the received data based at least in part on a desired transmission rate characteristic for the classification of the received data, to control the protocol processing to encapsulate the data received from the host from the particular guest function into packets such that the packets are provided from the network interface device to the network with the desired transmission rate characteristic for the classification of the received data; and

transmit the packets including the received data out to the network at a nominal rate associated with the classification with which the received data has been classified.

10. The network interface circuitry of claim 9 , wherein:

the protocol processing includes at least layer 3 protocol processing.

11. The network interface circuitry of claim 9 , wherein:

the protocol processing includes TCP processing.

12. The network interface circuitry of claim 9 , wherein:

the desired transmission rate characteristic indicate at least one of a group consisting of at least one desired shaping characteristic and at least one desired pacing characteristic.

13. The network interface circuitry of claim 9 , wherein:

controlling the protocol processing with the at least one peer such that the protocol processing for the received data is based at least in part on a desired transmission rate characteristic for the classification of the received data includes controlling the protocol processing at least in part on an estimate of an amount of data to be transmitted for the particular guest function and the desired transmission rate for the classification of the particular guest function, to regulate a rate at which the protocol processing mechanism operates for the particular guest function to encapsulate the received data, received from that particular guest function, into packets to be transmitted to the network.

14. The network interface circuitry of claim 9 , wherein:

controlling the protocol processing includes processing information received from the network and, based in part thereon, controlling the protocol processing.

15. The network interface circuitry of claim 9 , wherein:

controlling the protocol processing includes processing information received from the network, and,

the network interface circuitry is further configured to determine whether transmission of the received data to the at least one peer should not be deferred, based on a result of processing the information received from the network.

16. The network interface circuitry of claim 15 , wherein:

the protocol processing includes TCP, and

being configured to determine whether transmission of the received data to the at least one peer should not be deferred includes being configured to process the information received from the network to determine if at least part of the received data, to be transmitted to the peer, has previously been transmitted.

Assignments (9)
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 →
SECURITY INTEREST Recorded Oct 21, 2014
From: CHELSIO COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 033990/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2014
From: EIRIKSSON, ASGEIR THOR; MICHAILIDIS, DIMITRIOS; NOUREDDINE, WAEL
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 033811/0595 →