# US 7,609,709 B2 · Video aware traffic management

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

- Number: US 7,609,709 B2
- Document ID: US7609709B2
- Status: Granted
- Kind: B2
- Application number: 11/337,372
- Filed: 2006-01-23
- Published: 2007-07-26
- Granted: 2009-10-27
- Earliest claimed: 2006-01-23
- Assignees: Alcatel-Lucent USA Inc.
- Inventors: Taeho Kim; Frederick Skoog
- Web page: https://patentgrep.com/patent/US7609709B2

## CPC

- H04L 47/10: Flow control; Congestion control
- H04L 47/12: Avoiding congestion; Recovering from congestion
- H04L 47/2416: Real-time traffic
- H04L 47/2433: {Allocation of priorities to traffic types}
- H04L 47/29: {using a combination of thresholds}
- H04L 47/31: by tagging of packets, e.g. using discard eligibility [DE] bits
- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A multiplexer selectively chooses packets for discarding during periods of congestion. In a first embodiment, thresholds for fill levels of a FIFO queue are set for a plurality of priority types. As thresholds are exceeded, incoming packet below a set priority level will be prevented from entering the queue and packets at the front of the queue below the set priority will be discarded. In a second embodiment, packets within a queue may be marked for deletion. A forward/discard list assigns an index to a new packet and maintains a list of the stream associated with each packet. A priority index list maintains a list of packets for each priority type by index number. A video metadata buffer stores the metadata for each enqueued packet. A physical video buffer stores the packets. When an incoming packet cannot be enqueued, packets of lower priority are detected by reference to the index list and marked for discard.

## Claims

### Claim 1

A multiplexer for broadband subscriber access, comprising:
a memory queue for storing packets of video information;
a plurality of control flags associated with respective priority, each flag indicating whether a respective predetermined threshold has been met by packets stored in the memory, each threshold being associated with a time-to-dequeue parameter indicative of an expected time period for passing a packet through the multiplexer; and
input circuitry for selectively storing an incoming packet in the memory queue responsive to the control flags and a priority associated with the incoming packet.

### Claim 2 (depends on 1)

The multiplexer of claim 1 and further comprising output circuitry for selectively discarding a packet at a head of said memory responsive to the control flags and a priority associated with the packet at the head.

### Claim 3 (depends on 2)

The multiplexer of claim 2 wherein said output circuitry further comprises circuitry for selectively discarding packets associated with a common video frame from the memory queue if a packet associated with the common video frame has already been discarded.

### Claim 4 (depends on 1)

The multiplexer of claim 1 wherein said input circuitry further comprises circuitry for not storing the incoming packet in the memory queue if a previous packet associated with a same video frame has been discarded.

### Claim 5 (depends on 1)

The multiplexer of claim 1 and further comprising a forward prediction control circuit for setting the control flags based on whether respective thresholds will be exceeded by future incoming packets.

### Claim 6 (depends on 1)

The multiplexer of claim 1 and further comprising channel clearing control circuitry for discarding packets associated with a data stream which is no longer being subscribed to.

### Claim 7 (depends on 1)

The multiplexer of claim 1 wherein said channel clearing control circuitry further discards packets associated with a new data stream, where the packets are below a predetermined priority.

### Claim 8

A multiplexer for broadband subscriber access, comprising:
a memory queue for storing video packets from multiple data streams, wherein each video packet is associated with one of a plurality of priority levels;
a forward/discard list memory for associating each video packet in the queue with an index and an indicator of the data stream associated with the video packet;
a priority index list memory for maintaining a list of packets associated with each of said plurality of priority levels; and
input circuitry for marking existing packets in the memory queue for discard based on information in the priority index list in order to accommodate incoming packets within one or more predetermined parameters, wherein said predetermined parameters include a time-to-dequeue parameter.

### Claim 9 (depends on 8)

The multiplexer of claim 8 wherein said input circuitry marks an existing packet for deletion in the forward/discard list by associating a predetermined value with the index associated with the existing packet to be discarded.

### Claim 10 (depends on 9)

The multiplexer of claim 9 and further comprising output circuitry for selectively transmitting packets from the memory queue responsive to information in forward/discard list.

### Claim 11 (depends on 9)

The multiplexer of claim 9 and further comprising a metadata memory for storing metadata associated with each packet.

### Claim 12 (depends on 11)

The multiplexer of claim 11 and further comprising output circuitry for selectively transmitting packets from the memory queue and metadata from the metadata memory responsive to information in forward/discard list.

### Claim 13 (depends on 8)

The multiplexer of claim 8 wherein said input circuitry, upon receiving an incoming packet having a known priority level, determines whether enqueuing the incoming packet would violate one or more of said predetermined parameters and, if so, marks one or more existing packets of lower priority than the known priority level for deletion.

### Claim 14 (depends on 8)

The multiplexer of claim 8 wherein packet of lower priority are determined through examining a priority index list associated with said lower priority.

### Claim 15

A method for multiplexing data onto a broadband connection, comprising the step of:
storing packets of video information in a memory queue;
maintaining a state for a plurality of control flags associated with respective priority, the state of each flag indicating whether a respective predetermined threshold has been met by packets stored in the memory, each threshold being associated with a time-to-dequeue parameter indicative of an expected time period for passing a packet through to the broadband connection; and
selectively storing an incoming packet in the memory queue responsive to the control flags and a priority associated with the incoming packet.

### Claim 16 (depends on 15)

The method of claim 15 and further comprising the step of selectively discarding a packet at a head of said memory queue responsive to the control flags and a priority associated with the packet.

### Claim 17 (depends on 16)

The method of claim 16 wherein said selectively discarding step further comprises selectively discarding packets associated with a common video frame from the head of the memory queue if a packet associated with the common video frame has already been discarded.

### Claim 18 (depends on 15)

The method of claim 15 wherein said selectively storing step further comprises the step of not storing the incoming packet if a previous packet associated with a same video frame has been discarded.

### Claim 19 (depends on 15)

The method of claim 15 and further comprising the step of setting the control flags based on whether respective thresholds will be exceeded by future incoming packets.

### Claim 20 (depends on 15)

The method of claim 15 and further comprising the step of discarding packets associated with a data stream which is no longer being subscribed to.

### Claim 21 (depends on 15)

The method of claim 15 and further comprising the step of discarding packets associated with a new data stream, where the packets are below a predetermined priority until a high priority packet associated with the new data stream is received.

### Claim 22

A method for multiplexing data onto a broadband connection, comprising:
storing video packets from multiple data streams in a memory queue, wherein each video packet is associated with one of a plurality of priority levels;
associating each video packet in the queue with an index and an indicator of the data stream associated with the video packet a forward/discard list;
maintaining a list of packets associated with each of said plurality of priority levels in a priority index list; and
selectively marking existing packets in the memory queue for discard based on information in the priority index list in order to accommodate incoming packets within one or more predetermined parameters, wherein said predetermined parameters include a time-to-dequeue parameter.

### Claim 23 (depends on 22)

The method of claim 22 wherein said selectively marking step comprises the step of selectively marking an existing packet for deletion in the forward/discard list by associating a predetermined value with the index associated with the existing packet to be discarded.

### Claim 24 (depends on 23)

The method of claim 23 and further comprising the step of selectively transmitting packets from the memory queue responsive to information in forward/discard list.

### Claim 25 (depends on 22)

The method of claim 22 and further comprising the step of storing metadata associated with each packet in a metadata memory.

### Claim 26 (depends on 25)

The method of claim 25 and further comprising the step of selectively transmitting packets from the memory queue and metadata from the metadata memory responsive to information in forward/discard list.

### Claim 27 (depends on 22)

The method of claim 22 wherein said selectively marking step comprises the step of, upon receiving an incoming packet having a known priority level, determining whether enqueuing the incoming packet would violate one or more of said predetermined parameters and, if so, marking one or more existing packets of lower priority than the known priority level for deletion.

### Claim 28 (depends on 22)

The method of claim 22 wherein said determining step comprise the step of determining the existence of packets of lower priority through examining the priority index list associated with said lower priority.
