IP Library Granted Patent US 9,363,193
Granted Patent B2
US 9,363,193 · App. 14/083,894 · Granted Jun 7, 2016

Virtualized network interface for TCP reassembly buffer allocation

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 9,363,193
App. No.
14/083,894
Granted
Jun 7, 2016
Kind
B2
Abstract

A method and a system embodying the method for dynamically allocating context for Transmission Control Protocol (TCP) reassembly, comprising providing a fixed plurality of global common TCP contexts; reserving for each of one or more virtual network interface card(s) one or more TCP context(s) out of the fixed plurality of the global common TCP contexts; and allocating to a virtual network interface card from the one or more virtual network interface card(s) a TCP context from the reserved one or more TCP contexts when a reassemble able TCP packet is received by the virtual network interface card, is disclosed.

Claims (48)

1. A method for dynamically allocating context for Transmission Control Protocol (TCP) reassembly, comprising:

providing a fixed plurality of global common TCP contexts;

reserving for each of one or more virtual network interface card(s) one or more TCP context(s) out of the fixed plurality of the global common TCP contexts, leaving a reminder of the fixed plurality of the global common TCP contexts comprising one or more contexts; and

allocating to a virtual network interface card from the one or more virtual network interface card(s) a TCP context from the reserved one or more TCP contexts when a reassemble able TCP packet is received by the virtual network interface card.

2. The method as claimed in claim 1 , wherein the reserving for each of one or more virtual network interface card one or more TCP context(s), comprises:

determining for each of the one or more virtual network interface card(s) resource needs; and

reserving for each of the one or more virtual network interface card(s) one or more TCP context(s) in accordance with the resource needs.

3. The method as claimed in claim 2 , wherein the determining for each of the one or more each virtual network interface card(s) resource needs, comprises:

determining for each of the one or more virtual network interface card(s) resource needs in accordance with a schedule.

4. The method as claimed in claim 3 , wherein the schedule is fixed.

5. The method as claimed in claim 3 , wherein the schedule is flexible.

6. The method as claimed in claim 1 , further comprising:

determining whether a TCP context allocation is disabled by a hypervisor during a virtual network interface card shut-down; and

declining the allocating when the determining is positive.

7. The method as claimed in claim 6 , further comprising:

carrying out the allocating when the determining is negative.

8. The method as claimed in claim 1 , further comprising:

releasing by the virtual network interface card the allocated reserved TCP context when a reassembly is finished.

9. The method as claimed in claim 1 , further comprising:

allocating to the virtual network interface card an additional TCP context from the reminder of the fixed plurality of global common TCP contexts when a reassemble able TCP packet is received by the virtual network interface card, provided that

all of the reserved one or more TCP contexts were allocated;

less than a maximum number of TCP contexts that the virtual network interface card is allowed to use were allocated; and

at least one TCP context in the reminder of the global common TCP contexts is available.

10. The method as claimed in claim 1 , further comprising:

declining to allocate to the virtual network interface card an additional TCP context from the reminder of the global common TCP contexts when the reassemble able TCP packet is received by the virtual network interface card provided that

more than the maximum number of TCP contexts that the virtual network interface card is allowed to use were allocated.

11. The method as claimed in claim 9 , further comprising:

releasing by the virtual network interface card the allocated TCP context to the reminder of the global common TCP contexts when a reassembly is finished.

12. An apparatus for dynamically allocating context for Transmission Control Protocol (TCP) reassembly, comprising:

a network interface earth providing a fixed plurality of global common TCP contexts; and

a hypervisor executing on a hardware platform comprising a central processor unit, configured

to reserve for each of one or more virtual network interface card(s) one or more TCP context(s) out of the fixed plurality of the global common TCP contexts, leaving a reminder of the global common TCP contexts comprising one or more contexts, and

to allocate to a virtual network interface card from the one or more virtual network interface card(s) a TCP context from the reserved one or more TCP contexts when a reassemble able TCP packet is received by the virtual network interface card.

13. The apparatus as claimed in claim 12 , wherein the hypervisor is configured

to determine for each of the one or more virtual network interface card(s) resource needs; and

to reserve for each of the one or more virtual network interface card(s) one or more TCP context(s) in accordance with the resource needs.

14. The apparatus as claimed in claim 13 , wherein the hypervisor is configured to determine for each of the one or more virtual network interface card(s) resource needs in accordance with a schedule.

15. The apparatus as claimed in claim 14 , wherein the schedule is fixed.

16. The apparatus as claimed in claim 14 , wherein the schedule is flexible.

17. The apparatus as claimed in claim 12 , wherein the hypervisor is further configured to disable a TCP context allocation during a virtual network interface card shut-down.

18. The apparatus as claimed in claim 12 , wherein the virtual network interface card is configured to release the allocated reserved TCP context when a reassembly is finished.

19. The apparatus as claimed in claim 12 , wherein the hypervisor is configured to allocate to the virtual network interface card an additional TCP context from the reminder of the global common TCP contexts when an reassemble able TCP packet is received by the virtual network interface card, provided that

all of the reserved one or more TCP contexts were allocated;

less than a maximum number of TCP contexts that the virtual network interface card is allowed to use were allocated; and

at least one TCP context in the reminder of the global common TCP contexts is available.

20. The apparatus as claimed in claim 19 , wherein the hypervisor is configured to decline to allocate to the virtual network interface card an additional TCP context from the reminder of the global common TCP contexts when the reassemble able TCP packet is received by the virtual network interface card provided that

more than the maximum number of TCP contexts that the virtual network interface card is allowed to use were allocated.

21. The apparatus as claimed in claim 19 , wherein the virtual network interface card is configured to release the TCP context to the reminder of the global common TCP contexts when a reassembly is finished.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →