IP Library Granted Patent US 7,616,563
Granted Patent B1
US 7,616,563 · App. 11/356,850 · Granted Nov 10, 2009

Method to implement an L4-L7 switch using split connections and an offloading NIC

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 7,616,563
App. No.
11/356,850
Granted
Nov 10, 2009
Kind
B1
Abstract

A method of operating intelligent network interface circuitry includes the network interface circuitry coupling a core processor to a network to facilitate communication over the network between the core processor and at least a first peer and a second peer. A first connection connects to the first peer and a second connection connects to the second peer. The network interface circuitry receives data packets from the first peer via the network on the first connection, according to a first particular protocol. The network interface circuitry processes the received data, including associating, with the second connection, data that is at least a portion of the data packets received on the first connection, such that the data received by the intelligent network interface circuitry on the first connection is switched to be outgoing from the intelligent network interface circuitry on the second connection, according to a second particular protocol.

Claims (66)

1. A method of operating intelligent network interface circuitry, wherein the network interface circuitry couples a core processor to a network to facilitate communication over the network between the core processor and at least a first peer and a second peer, wherein a first connection connects to the first peer and a second connection connects to the second peer, a plurality of connections, including the second connection, connecting to a plurality of separate peers, the method comprising:

by the network interface circuitry,

receiving data packets from the first peer via the network on the first connection, according to a first particular protocol; and

processing the received data, including associating, with the second connection, data that is at least a portion of the data packets received on the first connection, such that the data received by the intelligent network interface circuitry on the first connection is switched to be outgoing from the intelligent network interface circuitry on the second connection, according to a second particular protocol

wherein

the first particular protocol operates at no higher than layer 4, and

processing the received data includes processing the packets at higher than layer 4, wherein the associating is based on a result of processing the layers higher than layer 4 to determine which of the plurality of connections is the second connection.

2. The method of claim 1 , wherein:

the network interface circuitry includes a pipelined processor circuitry configured to process data received by the network interface circuitry from the core for transmission to a peer via one of the connections and also to process data received by the network interface circuitry via one of the connections for receipt by the core; and

associating, with the second connection, data that is at least a portion of the data packets received on the first connection includes generating data by the core processor, to be delivered on the second connection.

3. The method of claim 1 , wherein:

associating, with the second connection, data that is at least a portion of the data packets received on the first connection includes placing the data in a transmit buffer associated with the second connection.

4. The method of claim 3 , wherein:

the data is placed in the transmit buffer associated with the second connection without storing the data in a receive buffer associated with the first connection.

5. The method of claim 3 , wherein:

placing the data in a transmit buffer associated with the second connection includes appending the data to data already in the transmit buffer associated with the second connection.

6. The method of claim 1 , wherein:

the data received from the first peer via the network on the first connection is payload data included in data packets received from the first peer associated with the first connection;

the first connection and the second connection are full duplex, and

the method further comprises, by the intelligent network interface circuitry

receiving data packets from the second peer on the second connection;

associating, with the first connection, the data packets received on the second connection, such that the data incoming to the intelligent network interface circuitry on the second connection is switched to be outgoing from the intelligent network interface circuitry on the first connection.

7. The method of claim 1 , wherein:

processing at least a portion of data packets received on the first connection to determine which of the plurality of connections is the second connection includes

the network interface circuitry providing the at least a portion of the data packet, corresponding to higher than layer 4 and received on the first connection to the core processor; and

the core processor provides an indication to the network interface circuitry of the determination of which of the plurality of connections is the second connection.

8. The method of claim 7 , wherein:

the network interface circuitry providing the at least a portion of the data packet received on the first connection to the core processor includes delineating at least one protocol data unit in the data received on the first connection; and

the at least a portion of the data packet received on the first connection is at least a portion of the at least one protocol data unit delineated by the network interface circuitry.

9. The method of claim 1 , wherein:

the network interface circuitry determines which of the plurality of connections is the second connection by processing the at least a portion of the data packet, corresponding to higher than layer 4 and received on the first connection in view of control information associated with the connections.

10. The method of claim 1 , wherein:

the portion of the data packets processed for associating the received data with the second connection includes a portion of the data packets associated with layer 5 to 7 packet headers.

11. The method of claim 10 , wherein:

the portion of the data packets associated with layer 5 to 7 packet headers includes iSCSI packet headers.

12. The method of claim 11 , wherein:

the plurality of separate peers to which the plurality of connections connect are storage controllers.

13. The method of claim 1 , wherein:

the processing of at least a portion of data packets received on the first connection to determine which of the plurality of connections is the second connection is on a per Protocol Data Unit basis in at least one of layers 5-7.

14. The method of claim 13 , wherein:

the portion of the data packets associated with layer 5 to 7 packet headers includes iSCSI packet headers.

15. The method of claim 1 , further comprising:

performing supplemental processing on the data provided on the second connection, not associated with switching the data.

16. The method of claim 15 , wherein the supplemental processing includes verifying the integrity of the received data.

17. The method of claim 16 , including:

inserting, into the received data, a result of computing the integrity of the received data.

18. The method of claim 15 , wherein the supplemental processing includes at least one of encryption/decryption and compression/decompression.

19. The method of claim 1 , wherein:

the first protocol and the second protocol are variants of the same protocol with environment specific optimizations.

20. The method of claim 1 , wherein:

the first protocol and the second protocol are variants of the same protocol configured differently.

21. A method of operating intelligent network interface circuitry, wherein the network interface circuitry couples a core processor to a network to facilitate communication over the network between the core processor and at least a first peer and a second peer, wherein a first connection connects to the first peer and a second connection connects to the second peer, the method comprising:

by the network interface circuitry,

receiving data packets from the first peer via the network on the first connection, according to a first particular protocol; and

processing the received data, including associating, with the second connection, data that is at least a portion of the data packets received on the first connection, such that the data received by the intelligent network interface circuitry on the first connection is switched to be outgoing from the intelligent network interface circuitry on the second connection, according to a second particular protocol, wherein:

the network interface circuitry includes a pipelined processor circuitry configured to process data received by the network interface circuitry from the core for transmission to a peer via one of the connections and also to process data received by the network interface circuitry via one of the connections for receipt by the core; and

associating, with the second connection, data that is at least a portion of the data packets received on the first connection includes generating data by the core processor, to be delivered on the second connection; and

wherein the pipelined processor circuitry includes

ingress form packet circuitry configured to form ingress packets, from data received from the network, to provide to the core;

egress form packet circuitry configured to form egress packets, from data received from the core, to provide to the network;

intercept and redirect circuitry to selectively intercept packets from the ingress form packet circuitry, formed by the ingress form packet circuitry based on data received on the first connection, and to provide a message to the pipelined processor circuitry simulating a message from the core instructing the pipelined processor circuitry to provide the data of the ingress packets, from the ingress form packet circuitry based on data received on the first connection, to be redirected to the egress form packet circuitry to form egress packets to be delivered on the network on the second connection.

22. The method of claim 21 , wherein:

an identification of the second connection is stored in the network interface circuitry in a control block associated with the first connection.

23. The method of claim 21 , wherein:

the first particular protocol operates at no higher than layer 4, and

processing the received data includes processing the packets at higher than layer 4, wherein the associating is based on a result of processing the layers higher than layer 4.

Assignments (14)
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 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2014
From: EAST WEST BANK
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 033989/0930 →
SECURITY INTEREST Recorded Oct 21, 2014
From: CHELSIO COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 033990/0451 →
SECURITY AGREEMENT Recorded May 9, 2013
From: CHELSIO COMMUNICATIONS, INC.
To: EAST WEST BANK
Reel/Frame 030389/0982 →
RELEASE OF SECURITY INTEREST Recorded May 9, 2013
From: SILICON VALLEY BANK
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 030384/0925 →
SECURITY AGREEMENT Recorded Sep 10, 2010
From: CHELSIO COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 024964/0746 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2006
From: EIRIKSSON, ASGEIR THOR; NOUREDDINE, WAEL
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 017597/0931 →