# US 12,015,561 B2 · Methods and systems to dynamically prioritize applications over 802.11 wireless LAN

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

- Number: US 12,015,561 B2
- Document ID: US12015561B2
- Status: Granted
- Kind: B2
- Application number: 17/129,089
- Filed: 2020-12-21
- Published: 2022-06-23
- Granted: 2024-06-18
- Earliest claimed: 2020-12-21
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Hao Lu; Sachin Ganu; Nitin A. Changlani; Xiaoding Shang; Qiang Zhou
- Web page: https://patentgrep.com/patent/US12015561B2

## CPC

- H04L 47/6215: {Individual queue per QOS, rate or priority}
- H04B 7/0413: MIMO systems
- H04B 7/0452: Multi-user MIMO systems
- H04L 5/0007: {the frequencies being orthogonal, e.g. OFDM(A) or DMT}
- H04L 5/0044: {Allocation of payload; Allocation of data channels, e.g. PDSCH or PUSCH}
- H04L 5/0064: {Rate requirement of the data, e.g. scalable bandwidth, data priority}
- H04L 47/2433: {Allocation of priorities to traffic types}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04B: TRANSMISSION

## Abstract

Systems and techniques are described that are directed to intelligent scheduling of Wi-Fi services for applications, including enhanced dynamic prioritization. A device, such as an access point (AP), can receive data packets from multiple connected devices to dynamically identify an application flow for each data packet, and dynamically identify a user associated with the application flow for each data packet. The AP can generate prioritized candidate lists for selected data packets in queues corresponding to an access category (AC). In response to determining that the identified user associated with the application flow corresponds with a critical user, the AP can select data packets for the prioritized candidate lists based at least in part on priority policies for each of a plurality of applications and based at least in part on dynamic prioritization of applications for each of a plurality of applications; and schedule data packets from the prioritized candidate lists.

## Claims

### Claim 1

A non-transitory computer-readable storage medium having stored thereon executable computer program instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving information related to dynamic prioritization of applications, wherein the information related to dynamic prioritization defines one or more critical applications and one or more critical users;
identifying an application flow for each data packet of a plurality of data packets received at a wireless access point, and identifying a user associated with each of the identified application flows;
assigning each data packet of the plurality of data packets to a respective queue of a first plurality of queues based at least in part on the identified application flow for each data packet;
generating prioritized candidate lists in a second plurality of queues based on iterating across the first plurality of queues to select candidate data packets for the prioritized candidate list from the first plurality of queues based at least in part on priority policies for the identified application flows, each queue of the second plurality of queues being dedicated for an access category (AC) for one or more applications;
in response to determining that a respective identified user, associated with a respective identified application flow, corresponds with the one or more critical users, selecting data packets of the respective identified application flow associated with the respective identified user for the prioritized candidate lists from the second plurality of queues responsive to the respective application flow corresponding to a critical application of the one or more critical applications;
in response to determining that the identified user associated with the application flow corresponds with the one or more critical users and that the application flow does not correspond to the one or more critical applications, overriding the selection of the data packets for the prioritized candidate lists from the second plurality of queues based at least in part on priority policies for each of a plurality of applications; and
scheduling data packets from the prioritized candidate lists.

### Claim 2 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, further comprising:
in response to determining that the identified user associated with the application flow does not correspond with the one or more critical users, overriding the selection of the data packets for the prioritized candidate lists from the second plurality of queues based at least in part on priority policies.

### Claim 3 (depends on 2)

The non-transitory computer-readable storage medium of claim 2, further comprising:
in response to determining that the identified user associated with the application flow does not correspond with the one or more critical users and that the application flow does not correspond to the one or more critical applications, overriding the selection of the data packets for the prioritized candidate lists from the second plurality of queues based at least in part on priority policies for each of a plurality of applications.

### Claim 4 (depends on 2)

The non-transitory computer-readable storage medium of claim 2, wherein overriding comprises not selecting the data packets from the second plurality of queues for the prioritized candidate lists, and assigning the data packets to a low priority queue.

### Claim 5 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the information related to dynamic prioritization of applications comprises a user role associated with the identified user associated with the application flow and including a rule that defines one or more critical applications.

### Claim 6 (depends on 5)

The non-transitory computer-readable storage medium of claim 5, wherein determining whether the identified user associated with the application flow corresponds with the one or more critical users comprises:
determining whether the user role associated with the identified user associated with the application flow indicates defines the identified user as a critical user.

### Claim 7 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the information related to dynamic prioritization of applications comprises a priority attribute from an authentication, wherein the priority attribute defines one or more critical applications.

### Claim 8 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein identifying a user associated with the application flow further comprises identifying an additional factor: a location of the user, a time of day, a time duration associated with a prioritization such that selecting data packets for the prioritized candidate lists is based at least in part on a dynamic prioritization of applications corresponding to the identified additional factors.

### Claim 9 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the priority attribute comprises a vendor-specific attributes (VSA) for a Remote Authentication Dial-In User Service (RADIUS) that specifies a scheduling priority for the one or more critical applications.

### Claim 10 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, further including instructions for:
allocating a virtual slice of Wi-Fi resources to each connected device based on policies per device, per user, or per user role.

### Claim 11 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein scheduling data packets from the prioritized candidate lists comprises applying the dynamic prioritization in the scheduling of the data packets.

### Claim 12

A wireless access point comprising:
one or more processors;
a wireless transmitter and receiver, wherein the wireless access point supports a plurality of transmission modes including MU-MIMO (Multi-user Multiple-Input Multiple-Output) and OFDMA (Orthogonal Frequency Division Multiple Access); and
a memory including information regarding characteristics of a plurality of applications;
wherein the wireless access point is to:
receive information related to dynamic prioritization of applications, wherein the information related to dynamic prioritization defines one or more critical applications and one or more critical users;
identify an application flow for each data packet of a plurality of data packets received at a wireless access point, and identifying a user associated with each of the identified application flows;
assign each data packet of the plurality of data packets to a respective queue of a first plurality of queues based at least in part on the identified application flow for each data packet;
generate prioritized candidate lists in a second plurality of queues based on iterating across the first plurality of queues to select candidate data packets for the prioritized candidate list from the first plurality of queues based at least in part on priority policies for the identified application flows, each queue of the second plurality of queues being dedicated for an access category (AC) for one or more applications;
in response to determining that a respective identified user, associated with a respective identified application flow, corresponds with the one or more critical users, select data packets of the respective identified application flow associated with the respective identified user for the prioritized candidate lists from the second plurality of queues responsive to the respective application flow corresponding to a critical application of the one or more critical;
in response to determining that the identified user associated with the application flow corresponds with the one or more critical users and that the application flow does not correspond to the one or more critical applications, override the selection of the data packets for the prioritized candidate lists from the second plurality of queues based at least in part on priority policies for each of a plurality of applications; and
schedule data packets from the prioritized candidate lists.

### Claim 13 (depends on 12)

The wireless access point of claim 12, further programmed to:
in response to determining that the identified user associated with the application flow does not correspond with the one or more critical users, overriding the selection of the data packets for the prioritized candidate lists from the second plurality of queues based at least in part on priority policies.

### Claim 14 (depends on 12)

The wireless access point of claim 12, further programmed to:
in response to determining that the identified user associated with the application flow does not correspond with the one or more critical users and that the application flow does not correspond to the one or more critical applications, overriding the selection of the data packets for the prioritized candidate lists from the second plurality of queues based at least in part on priority policies for each of a plurality of applications.

### Claim 15 (depends on 12)

The wireless access point of claim 12, wherein overriding comprises not selecting the data packets from the second plurality of queues for the prioritized candidate lists, and assigning the data packets to a low priority queue.

### Claim 16 (depends on 12)

The wireless access point of claim 12, wherein the information related to dynamic prioritization of applications comprises a user role associated with the identified user associated with the application flow and including a rule that defines one or more critical applications.

### Claim 17 (depends on 12)

The wireless access point of claim 12, wherein the information related to dynamic prioritization of applications comprises a priority attribute from an authentication, wherein the priority attribute defines one or more critical applications.

### Claim 18 (depends on 12)

The wireless access point of claim 12, wherein the selection of a transmission mode for an access category includes:
selecting MU-MIMO based at least in part on one or more applications requiring high bandwidth in operation; and
selecting OFDMA based at least in part on one or more applications requiring low latency in operation.

### Claim 19 (depends on 12)

The wireless access point of claim 12, wherein the wireless access point operates under IEEE 802.11ax protocol.

### Claim 20

A method comprising:
receiving information related to dynamic prioritization of applications, wherein the information related to dynamic prioritization defines one or more critical applications and one or more critical users;
identifying an application flow for each data packet of a plurality of data packets received at a wireless access point, and identifying a user associated with each of the identified application flows;
assigning each data packet of the plurality of data packets to a respective queue of a first plurality of queues based at least in part on the identified application flow for each data packet;
generating prioritized candidate lists in a second plurality of queues based on iterating across the first plurality of queues to select candidate data packets for the prioritized candidate list from the first plurality of queues based at least in part on priority policies for the identified application flows, each queue of the second plurality of queues being dedicated for an access category (AC) for one or more applications;
in response to determining that respective identified user, associated with a respective identified application flow, corresponds with the one or more critical users, selecting data packets of the respective identified application flow associated with the respective identified user for the prioritized candidate lists from the second plurality of queues based at least in part on the respective application flow corresponding to a critical application of the one or more critical applications;
in response to determining that the identified user associated with the application flow corresponds with the one or more critical users and that the application flow does not correspond to the one or more critical applications, overriding the selection of the data packets for the prioritized candidate lists from the second plurality of queues based at least in part on priority policies for each of a plurality of applications; and
scheduling data packets from the prioritized candidate lists.
