9154427

Adaptive Receive Path Learning to Facilitate Combining Tcp Offloading and Network Adapter Teaming

PublishedOctober 6, 2015
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method, comprising: teaming together a plurality of physical network interface ports of a computing system to appear as a single virtual network interface port to a switch having a corresponding plurality of ports to which the plurality of physical ports are linked; determining a receive port upon which a packet of a TCP session was received, wherein the receive port is one of the plurality of physical network interface ports of the virtual network interface port; and assigning a transmit port to be the receive port, wherein the transmit port is used by the computing system to transmit packets of the TCP session; wherein said assigning is performed prior to a Transmission Control Protocol (TCP) offload engine (TOE) of the computing system being enabled to offload from a CPU of the computing system processing of packets of the TCP session transceived on the assigned transmit/receive port.

2

2. The method of claim 1 , further comprising: receiving a second packet of the TCP session, after the TOE is enabled; detecting the second packet was received on a second receive port of the plurality of physical ports different from the assigned transmit/receive port; and assigning the transmit port for the TCP session to be the second receive port in response to said detecting the second packet was received on the second receive port that was different from the assigned transmit/receive port.

3

3. The method of claim 2 , wherein said assigning the transmit port for the TCP session to be the second receive port is performed prior to a second TOE of the computing system being enabled to offload from the CPU processing of packets of the TCP session transceived on the second receive/transmit port, wherein the second TOE is different from the first TOE.

4

4. The method of claim 1 , wherein the plurality of physical network interface ports are teamed together to appear as the single virtual network interface port to the switch according to the Link Aggregation Control Protocol (LACP) standard.

5

5. The method of claim 1 , wherein the plurality of physical network interface ports are teamed together to appear as the single virtual network interface port to the switch according to the IEEE 802.3ad teaming protocol standard.

6

6. The method of claim 1 , wherein the plurality of physical network interface ports comprise Ethernet ports.

7

7. The method of claim 1 , wherein the enabled TOE is included on a same network interface adapter as the assigned transmit/receive port.

8

8. One or more modules, comprising: a first portion of the one or more modules, configured to team together a plurality of physical network interface ports of a computing system to appear as a single virtual network interface port to a switch having a corresponding plurality of ports to which the plurality of physical ports are linked; a second portion of the one or more modules, configured to determine a receive port upon which a packet of a TCP session was received, wherein the receive port is one of the plurality of physical network interface ports of the virtual network interface port; and a third portion of the one or more modules, configured to assign a transmit port to be the receive port, wherein the transmit port is used by the computing system to transmit packets of the TCP session; wherein the third portion assigns the transmit port to be the receive port prior to a Transmission Control Protocol (TCP) offload engine (TOE) of the computing system being enabled to offload from a CPU of the computing system processing of packets of the TCP session transceived on the assigned transmit/receive port.

9

9. The one or more modules of claim 8 , further comprising: a fourth portion of the one or more modules, configured to receive a second packet of the TCP session, after the TOE is enabled; a fifth portion of the one or more modules, configured to detect the second packet was received on a second receive port of the plurality of physical ports different from the assigned transmit/receive port; and a sixth portion of the one or more modules, configured to assign the transmit port for the TCP session to be the second receive port in response to the fourth portion detecting the second packet was received on the second receive port that was different from the assigned transmit/receive port.

10

10. The one or more modules of claim 9 , wherein the sixth portion of the one or more modules assigns the transmit port for the TCP session to be the second receive port prior to a second TOE of the computing system being enabled to offload from the CPU processing of packets of the TCP session transceived on the second receive/transmit port, wherein the second TOE is different from the first TOE.

11

11. The one or more modules of claim 8 , wherein the first portion of the one or more modules is configured to team together the plurality of physical network interface ports to appear as the single virtual network interface port to the switch according to the Link Aggregation Control Protocol (LACP) standard.

12

12. The one or more modules of claim 8 , wherein the first portion of the one or more modules is configured to team together the plurality of physical network interface ports to appear as the single virtual network interface port to the switch according to the IEEE 802.3ad teaming protocol standard.

13

13. The one or more modules of claim 8 , wherein the plurality of physical network interface ports comprise Ethernet ports.

14

14. The one or more modules of claim 8 , wherein the enabled TOE is included on a same network interface adapter as the assigned transmit/receive port.

15

15. A computer program product encoded in at least one non-transitory computer usable medium, the computer program product comprising: computer usable program code embodied in said medium, the computer usable program code comprising: first program code for teaming together a plurality of physical network interface ports of a computing system to appear as a single virtual network interface port to a switch having a corresponding plurality of ports to which the plurality of physical ports are linked; second program code for determining a receive port upon which a packet of a TCP session was received, wherein the receive port is one of the plurality of physical network interface ports of the virtual network interface port; and third program code for assigning a transmit port to be the receive port, wherein the transmit port is used by the computing system to transmit packets of the TCP session; wherein the third program code assigns the transmit port to be the receive port prior to a Transmission Control Protocol (TCP) offload engine (TOE) of the computing system being enabled to offload from a CPU of the computing system processing of packets of the TCP session transceived on the assigned transmit/receive port.

16

16. The computer program product of claim 15 , the computer usable program code further comprising: fourth program code for receiving a second packet of the TCP session, after the TOE is enabled; fifth program code for detecting the second packet was received on a second receive port of the plurality of physical ports different from the assigned transmit/receive port; and sixth program code for assigning the transmit port for the TCP session to be the second receive port in response to the fifth program code detecting the second packet was received on the second receive port that was different from the assigned transmit/receive port.

17

17. The computer program product of claim 16 , wherein the sixth program code assigns the transmit port for the TCP session to be the second receive port prior to a second TOE of the computing system being enabled to offload from the CPU processing of packets of the TCP session transceived on the second receive/transmit port, wherein the second TOE is different from the first TOE.

18

18. The computer program product of claim 15 , wherein the first program code is configured to team together the plurality of physical network interface ports to appear as the single virtual network interface port to the switch according to the Link Aggregation Control Protocol (LACP) standard.

19

19. The computer program product of claim 15 , wherein the first program code is configured to team together the plurality of physical network interface ports to appear as the single virtual network interface port to the switch according to the IEEE 802.3ad teaming protocol standard.

20

20. The computer program product of claim 19 , wherein the at least one non-transitory computer usable medium is selected from the set of a disk, tape, or other magnetic, optical, or electronic storage medium and a network or wire line communications medium.

Patent Metadata

Filing Date

Unknown

Publication Date

October 6, 2015

Inventors

Wilson Kwong Thai Yam

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “ADAPTIVE RECEIVE PATH LEARNING TO FACILITATE COMBINING TCP OFFLOADING AND NETWORK ADAPTER TEAMING” (9154427). https://patentable.app/patents/9154427

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.