IP Library Granted Patent US 8,346,919
Granted Patent B1
US 8,346,919 · App. 12/749,769 · Granted Jan 1, 2013

Failover and migration for full-offload network interface devices

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,346,919
App. No.
12/749,769
Granted
Jan 1, 2013
Kind
B1
Abstract

A method and apparatus are provided for communication of a host having a first network interface device and a second network interface device coupled thereto. The first network interface device is configured to operate a transport layer network connection between the host and a peer. The host is configured to, while the first network device is operating the transport layer network connection with the peer, independently determine connection information that describes the transport layer network connection being operated by the first network interface device. The second network interface device is caused to operate the transport layer network connection with the peer based at least in part on the connection information maintained by the host.

Claims (47)

1. A method for communication of a host having a first network interface device and a second network interface device coupled thereto, the method comprising:

by the first network interface device, operating a data transfer phase of a transport layer network connection between the host and a peer, including maintaining connection information to operate the data transfer phase of the transport layer connection between the host and the peer;

by the host, while the first network device is operating the data transfer phase of the transport layer network connection with the peer, including maintaining the connection information to operate the data transfer phase of the transport layer connection between the host and the peer, determining the connection information that describes the transport layer network connection being operated by the first network interface device independently of the first network interface device maintaining the connection information; and

causing the second network interface device to operate the transport layer network connection with the peer based at least in part on the connection information maintained by the host, wherein the causing step does not include providing the connection information maintained by the first network interface device from the first network interface device.

2. The method of claim 1 , wherein:

determining the connection information by the host independently of the first network device maintaining the connection information includes receiving information from the first network interface device while the first network device is operating the data transfer phase of the transport layer network connection and determining the connection information based at least in part on the received information.

3. The method of claim 1 , wherein:

causing the second network interface device to operate the transport layer network connection based at least in part on the connection information maintained by the host further includes causing at least one of transmit buffer data and receive buffer data to be provided from the first network interface device to the second network interface device.

4. The method of claim 3 , further comprising:

adjusting at least a portion of the connection information maintained by the host, based on which the second network interface device is caused to operate the data transfer phase of the transport layer connection, to account for the at least one of transmit buffer data and receive buffer data provided from the first network interface device to the second network interface device.

5. The method of claim 4 , wherein:

the adjusting step is performed by the second network interface device.

6. The method of claim 5 , wherein:

at least one of transmit buffer data and receive buffer data is provided from the first network interface device to the second network interface device based on configuration of the second network interface device by the host.

7. The method of claim 5 , wherein:

the host configures the first network interface device such that transmit buffer data is provided by egress pipeline processing of the first network interface device without providing the packets to the transport layer network connection with the peer.

8. The method of claim 7 , wherein:

the host configuring the first network interface device such that transmit buffer data is provided by egress pipeline processing of the first network interface device without providing the packets to the transport layer network connection with the peer comprises:

the host causing a peer endpoint of the connection to be moved to a local host endpoint.

9. The method of claim 8 , wherein:

the host causing a peer endpoint of the connection to be moved to a local host endpoint comprises:

rewriting, in a control block in the first network interface device for the connection, a port indication for the host endpoint of the connection that corresponds to a port in the local host.

10. The method of claim 1 , further comprising:

causing the connection information being maintained by the host independently of the first network device maintaining the connection information, that describes the transport layer network connection being operated by the first network interface device, to be provided to the second network interface device.

11. The method of claim 10 , wherein:

causing the connection information being maintained by the host to be provided to the second network interface device is at least in part while the first network interface is operating the connection.

12. The method of claim 1 , wherein:

the connection information being maintained by the host independently of the first network device maintaining the connection information includes at least one connection state variable that is an assumed value of the connection state variable associated with a current state of the connection, wherein the assumed value is not guaranteed to equal an actual value of the connection state variable, as maintained by the first network interface device.

13. The method of claim 12 , wherein:

the host maintains the at least one connection state variable independently of the first network device maintaining the at least one connection state variable using at least information provided from the first network interface device; and

the information provided from the first network interface device used by the host to maintain the at least one connection state variable independently of the first network device maintaining the at least one connection state variable is not synchronized to the state of the connection maintained by the first interface device.

14. The method of claim 1 , wherein causing the second network interface device to operate the transport layer network connection with the peer based at least in part on the connection information maintained by the host includes:

initializing the second network interface device to handle the connection;

causing at least one of receive data and transmit data of the connection to be provided back to the host from the first network interface device;

by the host, providing the at least one of receive data and transmit data of the connection, received from the first network interface device, to the second network interface device; and

configuring the second network interface device to operate the connection including using the data of the connection provided by the host to the second network interface device.

15. The method of claim 14 , wherein:

as the at least one of receive data and transmit data of the connection to be provided back to the host from the first network interface device, the host updates the information for the connection independently of the first network device maintaining the connection information; and

configuring the second network interface device to operate the connection includes providing the updated information for the connection from the host to the second network interface device.

16. A computer program product comprising at least one non-transitory tangible computer readable medium having computer program instructions tangibly embodied therein, the computer program instructions configured to cause a host computing device, having a first network interface device and a second network interface device coupled thereto, to:

cause the first network interface device to operate a transport layer network connection between the host and a peer, including maintaining connection information to operate the data transfer phase of the transport layer connection between the host and the peer;

while the first network device is operating the data transfer phase of the transport layer network connection with the peer, including maintaining the connection information to operate the data transfer phase of the transport layer connection between the host and the peer, determine the connection information that describes the transport layer network connection being operated by the first network interface device independently of the first network device maintaining the connection information; and

cause the second network interface device to operate the transport layer network connection with the peer based at least in part on the connection information maintained by the host, wherein the causing the second network interface device to operate the transport layer connection does not include providing the connection information maintained by the first network interface device from the first network interface device.

17. A host computing device, having a first network interface device and a second network interface device coupled thereto, the host computing device configured to:

cause the first network interface device to operate a transport layer network connection between the host and a peer, including maintaining connection information to operate the data transfer phase of the transport layer connection between the host and the peer;

while the first network device is operating the data transfer phase of the transport layer network connection with the peer, including maintaining the connection information to operate the data transfer phase of the transport layer connection between the host and the peer, determine the connection information that describes the transport layer network connection being operated by the first network interface device independently of the first network device maintaining the connection information; and

cause the second network interface device to operate the transport layer network connection with the peer based at least in part on the connection information maintained by the host, wherein the causing the second network interface device to operate the transport layer connection does not include providing the connection information maintained by the first network interface device from the first network interface device.

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 AGREEMENT Recorded May 9, 2013
From: CHELSIO COMMUNICATIONS, INC.
To: EAST WEST BANK
Reel/Frame 030389/0982 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2010
From: EIRIKSSON, ASGEIR THOR; NOUREDDINE, WAEL; KRISHNA, BALEKUDRU A.
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 024159/0241 →