# US 8,787,375 B2 · Multicast to unicast conversion technique

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

- Number: US 8,787,375 B2
- Document ID: US8787375B2
- Status: Granted
- Kind: B2
- Application number: 13/646,547
- Filed: 2012-10-05
- Published: 2013-12-19
- Granted: 2014-07-22
- Earliest claimed: 2012-06-14
- Assignees: Aerohive Networks, Inc.
- Applicants: Aerohive Networks, Inc.
- Inventors: Liwu Liu; Jianlin Zeng
- Web page: https://patentgrep.com/patent/US8787375B2

## CPC

- H04L 47/621: {Individual queue per connection or flow, e.g. per VC}
- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 12/1881: {with schedule organisation, e.g. priority, sequence management}
- H04L 12/1886: {with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains}
- H04L 47/15: {in relation to multipoint traffic (arrangements for broadcast or multicast in data networks H04L12/18)}
- H04L 47/215: using token-bucket
- H04L 47/30: in combination with information about buffer occupancy at either end or at transit nodes
- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- H04L 47/527: {Quantum based scheduling, e.g. credit or deficit based scheduling or token bank}
- H04L 47/6215: {Individual queue per QOS, rate or priority}
- H04L 47/629: Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
- H04L 47/6295: using multiple queues, one for each individual QoS, connection, flow or priority
- H04L 49/201: Multicast operation; Broadcast operation
- H04L 65/611: for multicast or broadcast (systems for broadcast or conference H04L12/18; arrangements for broadcast or distribution combined with broadcast H04H20/00; arrangements for broadcast applications with a direct linkage to broadcast information or to broadcast space-time H04H60/00; selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS], H04W4/06)
- H04L 65/80: Responding to QoS
- H04W 4/06: Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
- H04W 28/0268: {using specific QoS parameters for wireless networks, e.g. QoS class identifier [QCI] or guaranteed bit rate [GBR] (negotiating SLA or negotiating QoS H04W28/24)}
- H04W 28/14: using intermediate storage
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A technique allows stations to utilize an equal share of resources (e.g., airtime or throughput). This prevents slow stations from consuming too many resources (e.g., using up too much air time). Fairness is ensured by selective dropping after a multicast packet is converted to unicast. This prevents slow stations from using more than their share of buffer resources. Multicast conversion aware back-pressure into the network layer can be used to prevent unnecessary dropping of packets after multicast to unicast (1:n) conversion by considering duplicated transmit buffers. This technique helps achieve airtime/resource fairness among stations.

## Claims

### Claim 1

A system comprising:
a multicast queue configured to enqueue multicast packets received from an upstream source to downstream destinations;
a plurality of traffic identifier (TID) queues configured to at least enqueue multicast-to-unicast converted packets for the downstream destinations associated with the TID queues;
a backpressure-aware scheduling engine coupled to the multicast queue and the plurality of TID queues;
wherein, in operation, the backpressure-aware scheduling engine:
dequeues a multicast packet from the multicast queue;
identifies a subplurality of the TID queues associated with the multicast packet;
identifies a first proper subset of the subplurality of the TID queues that are full;
converts the multicast packet into a multicast-to-unicast converted unicast packet for each TID queue in a second proper subset of the subplurality of the TID queues, wherein the first proper subset and the second proper subset are disjoint;
enqueues the multicast-to-unicast converted unicast packet in the second proper subset of the subplurality of the TID queues, wherein multicast packets are selectively dropped with respect to the first proper subset of the subplurality of the TID queues.

### Claim 2 (depends on 1)

The system of claim 1, wherein, in operation, the backpressure-aware scheduling engine stops scheduling packets into TID queues to avoid multicast packets being dropped by considering duplicated transmit buffers.

### Claim 3 (depends on 1)

The system of claim 1, wherein, in operation, the backpressure-aware scheduling engine determines a QoS profile to be associated with the multicast packet.

### Claim 4 (depends on 1)

The system of claim 1, further comprising a queuing engine, coupled to the multicast queue, wherein, in operation, the queuing engine enqueues multicast packets in the multicast queue.

### Claim 5 (depends on 4)

The system of claim 4, further comprising a bridging and queuing engine that includes the queuing engine, wherein the bridging and queuing engine includes bridging functionality.

### Claim 6 (depends on 4)

The system of claim 4, further comprising a classification and queuing engine that includes the queuing engine, wherein the classification and queuing engine includes classification functionality.

### Claim 7 (depends on 1)

The system of claim 1, wherein the multicast queue includes a backpressure-controlled multicast queue.

### Claim 8 (depends on 1)

The system of claim 1, further comprising an access category (AC) scheduling engine, wherein, in operation, the AC scheduling engine determines a QoS profile to be associated with the multicast packet.

### Claim 9 (depends on 1)

The system of claim 1, further comprising an access category (AC) scheduling engine configured to implement an airtime fairness scheduling algorithm, wherein, in operation, the AC scheduling engine targets stations to utilize an equal maximum share of airtime, wherein the equal maximum share of airtime is a first airtime share that is fully consumed by a first subset of the stations each with associated traffic sufficient to fully consume airtime greater than or equal to the maximum share of airtime, and wherein a second subset of the stations each have associated traffic insufficient to fully consume airtime equal to the maximum share of airtime and each consume second airtime shares less than the equal maximum share of airtime for the first subset of the stations.

### Claim 10 (depends on 1)

The system of claim 1, further comprising an access category (AC) scheduling engine configured to implement a throughput fairness scheduling algorithm, wherein, in operation, the AC scheduling engine targets stations to utilize an equal maximum share of throughput, wherein the equal maximum share of throughput is a first throughput share that is fully consumed by a first subset of the stations each with associated traffic sufficient to fully consume throughput greater than or equal to the maximum share of throughput, and wherein a second subset of the stations each have associated traffic insufficient to fully consume throughput equal to the maximum share of throughput and each consume second throughput shares less than the equal maximum share of throughput for the first subset of the stations.

### Claim 11 (depends on 1)

The system of claim 1, further comprising a fairness-enforced TID to access category (AC) scheduling engine, wherein, in operation, the fairness-enforced TID to AC scheduling engine determines a token cost for a packet in one or more of the plurality of TID queues, wherein the token cost represents an estimate or ratio of network resources consumed when sending the packet.

### Claim 12 (depends on 1)

The system of claim 1, further comprising an access category (AC) scheduling and frame aggregation engine, wherein, in operation, the AC scheduling and frame aggregation engine performs fairness-enforced TID to AC scheduling and aggregates frames.

### Claim 13

A method comprising:
dequeuing a multicast packet from a multicast queue;
identifying a subplurality of traffic identifier (TID) queues associated with the multicast packet;
identifying a first proper subset of the subplurality of the TID queues that are full;
converting the multicast packet into a multicast-to-unicast converted unicast packet for each TID queue in a second proper subset of the subplurality of the TID queues, wherein the first proper subset and the second proper subset are disjoint;
enqueuing the multicast-to-unicast converted unicast packet in the second proper subset of the subplurality of the TID queues, wherein multicast packets are selectively dropped with respect to the first proper subset of the subplurality of the TID queues.

### Claim 14 (depends on 13)

The method of claim 13, further comprising considering duplicated transmit buffers to determine whether to stop scheduling packets into TID queues to avoid multicast packets being dropped.

### Claim 15 (depends on 13)

The method of claim 13, further comprising determining a QoS profile to be associated with the multicast packet.

### Claim 16 (depends on 13)

The method of claim 13, further comprising performing transparent bridging or learning bridge operations.

### Claim 17 (depends on 13)

The method of claim 13, further comprising identifying a traffic class associated with the multicast packet, wherein the traffic class is used to indicate a kind of traffic in a traffic stream.

### Claim 18 (depends on 13)

The method of claim 13, further comprising:
implementing an airtime fairness scheduling algorithm;
implementing a throughput fairness scheduling algorithm;
selecting between airtime or throughput fairness;
carrying out airtime or throughput fairness procedures in accordance with the selection.

### Claim 19 (depends on 13)

The method of claim 13, further comprising determining a token cost for a packet in one or more of the plurality of TID queues, wherein the token cost represents an estimate or ratio of network resources consumed when sending the packet.

### Claim 20 (depends on 13)

The method of claim 13, further comprising performing fairness-enforced TID to access category (AC) scheduling and frame aggregation.

### Claim 21

A system comprising:
a means for dequeuing a multicast packet from a multicast queue;
a means for identifying a subplurality of traffic identifier (TID) queues associated with the multicast packet;
a means for identifying a first proper subset of the subplurality of the TID queues that are full;
a means for converting the multicast packet into a multicast-to-unicast converted unicast packet for each TID queue in a second proper subset of the subplurality of the TID queues, wherein the first proper subset and the second proper subset are disjoint;
a means for enqueuing the multicast-to-unicast converted unicast packet in the second proper subset of the subplurality of the TID queues, wherein multicast packets are selectively dropped with respect to the first proper subset of the subplurality of the TID queues.
