IP Library Granted Patent US 8,886,821
Granted Patent B1
US 8,886,821 · App. 13/690,976 · Granted Nov 11, 2014

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,886,821
App. No.
13/690,976
Granted
Nov 11, 2014
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 (51)

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 TCP/IP connection between the host and a peer, including maintaining sequence number information usable to operate the data transfer phase of the TCP/IP connection between the host and the peer;

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

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

2. The method of claim 1 , wherein:

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

3. The method of claim 2 , wherein:

receiving information from the first network interface device while the first network device is operating the data transfer phase of the TCP/IP connection includes receiving, from the first network device, payload information of the TCP/IP connection, and

and determining the sequence number information based at least in part on the received information includes determining the sequence number information based at least in part on information received during the payload receiving step.

4. The method of claim 3 , wherein:

the information received during the payload receiving step includes payload length information.

5. The method of claim 2 , wherein:

the sequence number information includes information indicative of a next sequence number expected to be received from the peer.

6. The method of claim 2 , wherein:

the receiving information includes information indicative of a send sequence number information for the TCP/IP connection that has been acknowledged by the peer and has crossed a configurable threshold; and

the sequence number information independently determined by the host includes information indicative of approximate minimum acknowledged send sequence number for the TCP/IP connection.

7. The method of claim 1 , wherein:

causing the second network interface device to operate TCP/IP connection with the peer based at least in part on the sequence number information maintained by the host includes:

attempting to determine, from the first network interface device and for the TCP/IP connection, an indication of transmit data that has been received by the first network interface device from the host but has not yet been transmitted to the peer;

updating send sequence number information independently maintained by the host based on the determined indication of transmit data;

providing to the second network interface device the transmit data, that has been received by the first network interface device from the host but has not yet been transmitted to the peer; and

causing the second network interface device to operate the TCP/IP connection with the peer at least in part in accordance with the updated send sequence number information.

8. The method of claim 1 , wherein:

the sequence number information independently maintained by the host includes send sequence number information for the TCP/IP connection; and

causing the second network interface device to operate the TCP/IP connection with the peer based at least in part on the sequence number information maintained by the host includes:

attempting to determine, from the first network interface device and for the TCP/IP connection, an indication of transmit data that has been received by the first network interface device from the host but has not yet been transmitted to the peer;

if a determination is made of the indication of transmit data that has been received by the first network interface device from the host but has not yet been transmitted to the peer:

providing, to the second network interface device, the transmit data that has been received by the first network interface device from the host but has not yet been transmitted to the peer; and

updating the send sequence number information in accordance with the determined indication of transmit data that has been received by the first network interface device from the host but has not yet been transmitted to the peer, such that the updated sequence number information is the send sequence maintained by the host;

causing the second network interface device to operate the TCP/IP connection with the peer at least in part in accordance with the updated send sequence number information.

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

initializing the second network interface device to handle the TCP/IP connection to at least include a control block to hold a connection state of the TCP/IP connection; and

configuring the second network interface device to operate the connection including using the TCP/IP connection information maintained independently by the host.

10. The method of claim 9 , wherein

configuring the second network interface device to operate the connection including using the TCP/IP connection information maintained independently by the host includes configuring the second network interface device to operate the connection including using the TCP/IP connection information maintained independently by the host while the first network interface device is operating the connection.

11. The method of claim 10 , wherein:

causing the second network interface device to operate the TCP/IP connection with the peer based at least in part on the sequence number information maintained by the host includes:

causing of the TCP/IP connection by the first network interface device with the peer to go into a quiescent state;

causing the second network interface device to operate the TCP/IP connection with the peer after a state of the first network interface device, for the TCP/IP connection, is in a cleaned-up state.

12. The method of claim 11 , wherein:

causing the TCP/IP connection by the first network interface device with the peer to go into a quiescent state includes:

looping back, to the host, transmit information of the TCP/IP connection received from the host for transmission to the peer by the first network interface device; and

configuring the first network interface device to drop receive information of the TCP/IP connection received from the peer.

13. 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 a data transfer phase of a TCP/IP connection between the host and a peer, including maintaining sequence number information usable to operate the data transfer phase of the TCP/IP connection between the host and the peer;

while the first network device is operating the data transfer phase of the TCP/IP connection with the peer, maintain the sequence number information usable to operate the data transfer phase of the TCP/IP connection between the host and the peer, determining the sequence number information that describes the TCP/IP connection being operated by the first network interface device independently of the first network interface device maintaining the sequence number information; and

cause the second network interface device to operate the TCP/IP connection with the peer based at least in part on the sequence number information maintained by the host, wherein the causing step does not include providing the sequence number information maintained by the first network interface device from the first network interface device.

14. A computer program product comprising at least one non-transitory computer readable medium having computer program instructions tangibly embodied thereon, 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 a data transfer phase of a TCP/IP connection between the host and a peer, including maintaining sequence number information usable to operate the data transfer phase of the TCP/IP connection between the host and the peer;

while the first network device is operating the data transfer phase of the TCP/IP connection with the peer, maintain the sequence number information usable to operate the data transfer phase of the TCP/IP connection between the host and the peer, determining the sequence number information that describes the TCP/IP connection being operated by the first network interface device independently of the first network interface device maintaining the sequence number information; and

cause the second network interface device to operate the TCP/IP connection with the peer based at least in part on the sequence number information maintained by the host, wherein the causing step does not include providing the sequence number information maintained by the first network interface device from the first network interface device.

Assignments (8)
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 Nov 30, 2012
From: EIRIKSSON, ASGEIR THOR; NOUREDDINE, WAEL; KRISHNA, BALEKUDRU A.
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 029387/0384 →