# US 2019/0356602 A1 · Predictive management of a network buffer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0356602 A1
- Document ID: US20190356602A1
- Status: Published application
- Kind: A1
- Application number: 16/531,487
- Filed: 2019-08-05
- Published: 2019-11-21
- Earliest claimed: 2013-01-25
- Assignees: Cable Television Laboratories, Inc.
- Applicants: Cable Television Laboratories, Inc.
- Inventors: Gregory C. White; Joey Padden; Takashi Hayakawa
- Web page: https://patentgrep.com/patent/US20190356602A1

## CPC

- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- G02B 6/29382: {including at least adding or dropping a signal, i.e. passing the majority of signals}
- H04L 1/0018: {based on latency requirement}
- H04L 1/1835: {Buffer management}
- H04L 43/0858: {One way delays}
- H04L 47/50: Queue scheduling
- H04L 47/56: implementing delay-aware scheduling
- H04L 47/6215: {Individual queue per QOS, rate or priority}
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04N 21/64792: {Controlling the complexity of the content stream, e.g. by dropping packets (intermediate media network packet handling H04L65/765; proxy provisioning conversion or adaptation for reducing the amount or size of exchanged application data H04L67/5651; negotiation of resources in wireless networks H04W28/16)}
- H04L 43/0864: Round trip delays
- H04L 43/106: using time related information in packets, e.g. by adding timestamps
- H04N 21/647: Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless {(real-time session protocols H04L65/1101)}
- H04W 28/02: Traffic management, e.g. flow control or congestion control
- H04W 28/0236: {radio quality, e.g. interference, losses or delay}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G02B: OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Predictive management of a network buffer is contemplated. The network buffer maybe predictively managed to control packet drop based at least in part on predicted sojourn time. The predicted sojourn time may be determined to predict time needed from an arriving packet to travel through a queue of the network buffer.

## Claims

### Claim 1

A non-transitory computer-readable medium having a plurality of instructions executable with a processor to facilitate managing a network buffer, the network buffer having at least a first queue and a second queue, each of the first queue and the second queue correspondingly enqueuing packets at an input and to dequeuing packets at an output, the plurality of instructions being sufficient for:
predicting sojourn time for each packet prior to being enqueued into one of the first queue and the second queue, the sojourn time estimating time needed for the corresponding packet to travel through one of the first queue and the second queue; and
one of dropping and not dropping each based at least in part on the corresponding sojourn time.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1 wherein the plurality of instructions are sufficient for:
determining to drop and not drop each packet prior to being enqueued to the first queue based on a comparison of the corresponding sojourn time to a first sojourn threshold, including dropping packets having sojourn times greater than the first sojourn threshold and enqueuing packets having sojourn times less than or equal to the first sojourn threshold; and
determining to drop and not drop each packet prior to being enqueued to the second queue based on a comparison of the corresponding sojourn time to a second sojourn threshold, including dropping packets having sojourn times greater than the second sojourn threshold and enqueuing packets having sojourn times less than or equal to the first sojourn threshold.

### Claim 3 (depends on 2)

The non-transitory computer-readable medium of claim 2 wherein the plurality of instructions are sufficient for directing the packets having a first marking to the first queue and the packets having a second marking to the second queue, the first marking distinguishing traffic associated therewith from traffic associated with the second marking.

### Claim 4 (depends on 3)

The non-transitory computer-readable medium of claim 3 wherein the plurality of instructions are sufficient for setting the first sojourn threshold to be less than the second sojourn threshold.

### Claim 5 (depends on 4)

The non-transitory computer-readable medium of claim 4 wherein the plurality of instructions are sufficient for setting a difference between the first sojourn threshold and the second sojourn threshold in proportion to a difference between a size of the first queue and a size of the second queue.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1 wherein the plurality of instructions are sufficient for dropping the packets having the sojourn time above a sojourn threshold and not dropping the packets having the sojourn time equal to or less than the sojourn threshold.

### Claim 7 (depends on 6)

The non-transitory computer-readable medium of claim 6 wherein the plurality of instructions are sufficient for:
setting the sojourn threshold for the first queue to be less than the sojourn threshold for the second queue; and
directing the packets of a first type to the first queue and the packets of a second type to the second queue.

### Claim 8 (depends on 7)

The non-transitory computer-readable medium of claim 7 wherein the plurality of instructions are sufficient for:
determining a size difference between the first queue and the second queue; and
setting the sojourn threshold be proportional to the size difference.

### Claim 9 (depends on 1)

The non-transitory computer-readable medium of claim 1 wherein the plurality of instructions are sufficient for:
tail dropping the packets having the sojourn time above a sojourn threshold, the tail dropping resulting in the corresponding packets being dropped prior to enqueuing;
permitting enqueuing of the packets having the sojourn time equal to or less than the sojourn threshold;
measuring queue time for the packets permitted enqueuing, the queue time measuring actual time within the corresponding one of the first queue and the second queue; and
head dropping the packets having the queue time above a queue threshold, the head dropping resulting in the corresponding packets being dropped prior to transport from the network buffer.

### Claim 10 (depends on 1)

The non-transitory computer-readable medium of claim 1 wherein the plurality of instructions are sufficient for:
directing the packets of a first type to the first queue and the packets of a second type to the second queue;
tail dropping the packets directed towards the first queue having the sojourn time greater than a first sojourn threshold, the tail dropping resulting in the corresponding packets being dropped prior to entering the first queue; and
tail dropping the packets directed towards the second queue having the sojourn time greater than a second sojourn threshold, the tail dropping resulting in the corresponding packets being dropped prior to entering the first queue, the second sojourn threshold being less than the first sojourn threshold when the second queue is shallower than the first queue.

### Claim 11 (depends on 1)

The non-transitory computer-readable medium of claim 1 wherein the plurality of instructions are sufficient for:
directing the packets of a first type to the first queue and the packets of a second type to the second queue;
head dropping the packets directed towards the first queue having the sojourn time greater than a first sojourn threshold, the head dropping resulting in the corresponding packets being dropped after entering the first queue; and
head dropping the packets directed towards the second queue having the sojourn time greater than a second sojourn threshold, the head dropping resulting in the corresponding packets being dropped after entering the first queue, the second sojourn threshold being less than the first sojourn threshold with the second queue being shallower than the first queue.

### Claim 12

A network element comprising:
separate queues for queueing packets for subsequent transport over a link;
a controller having non-transitory computer-readable medium with a plurality of instructions executable with a processor to facilitate to managing packet drops, the plurality of instructions being sufficient for:
i) calculating a sojourn time for packets prior to the corresponding packets entering one of the queues, each sojourn time estimating time needed for the corresponding packets to travel through an entirety of the corresponding queue before being dequeued; and
ii) one of dropping and not dropping the packets depending on the sojourn time associated therewith, including dropping the packets having the sojourn time above a corresponding sojourn threshold and not dropping the packets having the sojourn time equal to or less than the corresponding sojourn threshold.

### Claim 13 (depends on 12)

The network element of claim 12 wherein the plurality of instructions are sufficient for tail dropping the packets having the sojourn time greater than the corresponding sojourn threshold, the tail dropping resulting in the corresponding packets being dropped prior to entering one of the queues.

### Claim 14 (depends on 12)

The network element of claim 12 wherein the plurality of instructions are sufficient for head dropping the packets having the sojourn time less than the corresponding sojourn threshold, the head dropping resulting in the corresponding packets being dropped after entering one of the queues and prior to transport over the link.

### Claim 15 (depends on 12)

The network element of claim 12 wherein the plurality of instructions are sufficient for:
determining the sojourn times as a ratio of a number of bytes in the corresponding queue relative to an egress rate of the link;
tail dropping the packets having the sojourn time above the corresponding sojourn threshold;
measuring queue time for the packets permitted entry into one of the queues, the queue time measuring actual time within the corresponding queue for the corresponding packets; and
head dropping the packets having the queue time above a queue threshold.

### Claim 16

A method for managing packet drop for a network element interfacing multiple connections with a bottleneck link, the method comprising:
directing packets having a first marking to a first queue of the network element, the first queue having a first size;
directing packets having a second marking to a second queue of the network element, the second queue having a second size greater than the first size; and
managing packet drop for the first queue differently than packet drop for the second queue to account for a difference between the first size and the second size.

### Claim 17 (depends on 16)

The method of claim 16 further comprising:
managing packet drop for the first queue according to a first threshold whereby packets directed thereto are one of dropped or not dropped depending on whether a sojourn time associated therewith exceeds the first threshold; and
managing packet drop for the second queue according to a second threshold whereby packets directed thereto are one of dropped or not dropped depending on whether a sojourn time associated therewith exceeds the second threshold.

### Claim 18 (depends on 17)

The method of claim 17 further comprising calculating the sojourn time for each of the packets as a ratio of a number of bytes in the directed towards one of the first queue and the second queue and an egress rate of the bottleneck link.

### Claim 19 (depends on 17)

The method of claim 17 further comprising calculating the sojourn time for each of the packets to reflect a predicted amount of time for the corresponding packet to travel through an entirety of the directed towards one of the first queue and the second queue.

### Claim 20 (depends on 19)

The method of claim 19 further comprising tail dropping the packets exceeding the corresponding one of the first threshold and the second threshold prior to being enqueued into one of the first queue and the second queue.
