IP Library Granted Patent US 10,516,621
Granted Patent B2
US 10,516,621 · App. 15/719,232 · Granted Dec 24, 2019

Systems and methods to minimize packet discard in case of spiky receive traffic

Inventors: Ramanjaneyulu Talla (Bangalore, IN); Anshul Kumar (Bangalore, IN); Narendra Kataria (Santa Clara, CA)
Assignee: CITRIX SYSTEMS, INC.
H04L47/32H04L47/30H04L47/365
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 10,516,621
App. No.
15/719,232
Granted
Dec 24, 2019
Kind
B2
Abstract

Described embodiments provide for minimizing packet discarding in case of spiky traffic reception by using adaptive buffers. Transmission buffers may be adjusted based on traffic behavior, with the buffer size dynamically expanding or shrinking as needed, providing a cushion to hold extra packets when a buffer drain rate is slower than the buffer arrival rate.

Claims (34)

1. A system for adaptive buffer size management, comprising:

a network interface comprising a packet buffer having at least a first predetermined size; and

a buffer manager configured to:

determine that a flow control of a connection is disabled,

determine that a packet of the connection is present in the packet buffer at a position corresponding to the first predetermined size from a tail of the buffer, and

responsive to the determination that the packet of the connection is present in the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer and the determination that flow control of the connection is disabled, increase the size of the packet buffer by a predetermined value.

2. The system of claim 1 , wherein the buffer manager is further configured to:

subsequently determine that a packet is absent from the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer; and

responsive to the determination, reduce the size of the packet buffer to the first predetermined size.

3. The system of claim 2 , wherein the buffer manager is further configured to reduce the size of the packet buffer by a multiple of the predetermined value to equal the first predetermined size.

4. The system of claim 1 , wherein the buffer manager is further configured to:

subsequently determine that a packet is absent from the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer; and

responsive to the determination, reduce the size of the packet buffer by the predetermined value.

5. The system of claim 1 , wherein the packet buffer comprises a ring buffer.

6. The system of claim 5 , wherein the buffer manager is further configured to increase the size of the packet buffer by increasing the ring size.

7. The system of claim 1 , wherein the buffer manager is further configured to increase the size of the packet buffer by the first predetermined size.

8. The system of claim 1 , wherein the buffer manager is further configured to wait a predetermined period before subsequently determining whether a packet is present in or absent from the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer.

9. The system of claim 1 , wherein the network interface lacks hardware flow control.

10. A method for adaptive buffer size management, comprising:

determining, by a buffer manager of a device, that a flow control of a connection is disabled;

determining, by the buffer manager, that a packet of the connection is present in a packet buffer of a network interface having a first predetermined size at a position corresponding to the first predetermined size from a tail of the buffer, and

responsive to the determination that the packet of the connection is present in the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer and the determination that flow control of the connection is disabled, increasing the size of the packet buffer, by the buffer manager, by a predetermined value.

11. The method of claim 10 , further comprising:

subsequently determining, by the buffer manager, that a packet is absent from the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer; and

responsive to the determination, reducing the size of the packet buffer, by the buffer manager, to the first predetermined size.

12. The method of claim 11 , wherein reducing the size of the packet buffer further comprises reducing the size of the packet buffer, by the buffer manager, by a multiple of the predetermined value to equal the first predetermined size.

13. The method of claim 10 , further comprising:

subsequently determining, by the buffer manager, that a packet is absent from the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer; and

responsive to the determination, reducing the size of the packet buffer, by the buffer manager, by the predetermined value.

14. The method of claim 10 , wherein the packet buffer comprises a ring buffer.

15. The method of claim 14 , wherein increasing the size of the packet buffer further comprises increasing the ring size.

16. The method of claim 10 , wherein increasing the size of the packet buffer further comprises increasing the size of the packet buffer, by the buffer manager, by the first predetermined size.

17. The method of claim 10 , further comprising waiting a predetermined period, by the buffer manager, before subsequently determining whether a packet is present in or absent from the packet buffer at the position corresponding to the first predetermined size from the tail of the buffer.

18. The method of claim 10 , wherein the network interface lacks hardware flow control.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2017
From: TALLA, RAMANJANEYULU; KUMAR, ANSHUL; KATARIA, NARENDRA
To: CITRIX SYSTEMS, INC.
Reel/Frame 044063/0920 →
Continuity (1)
Related Publication 20190097938A1 · Mar 28, 2019