IP Library › Granted Patent US 10,959,131
Granted Patent B2
US 10,959,131 · App. 16/299,082 · Granted Mar 23, 2021

Dynamic prioritization of roam events based on latency

Inventors: Udaya Shankara Pudukoli Subrahmanya (Bengaluru, IN); Shiva Prasad Maheshuni (Bangalore, IN); Girish K. Kv (Bangalore, IN); Santosh Ramrao Patil (Santa Clara, CA)
Assignee: Cisco Technology, Inc.
H04W36/0011H04L45/7453H04W36/245H04W80/02H04W80/10
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,959,131
App. No.
16/299,082
Granted
Mar 23, 2021
Kind
B2
Abstract

Techniques for dynamic prioritization of network session are provided. A first packet belonging to a first session is received at a data plane of a network. Upon determining that the first packet is part of a first roam event, a first bloom filter bank is searched to determine a priority associated with the first session, where the priority is based at least in part on a historical latency experienced during the first roam event. A first queue of a plurality of queues is selected based on the determined priority, and the first packet is added to the first queue, where packets in the plurality of queues are transmitted to a control plane of the network based on a respective priority assigned to each of the plurality of queues.

Claims (95)

1. A method, comprising:

receiving, at a data plane of a network, a first packet belonging to a first session;

upon determining that the first packet is part of a first roam event, searching a first bloom filter bank to determine a priority associated with the first session, wherein the priority is based on an elapsed time from a start of the first roam event and an expected latency for the first roam event;

selecting a first queue of a plurality of queues based on the determined priority; and

adding the first packet to the first queue, wherein packets in the plurality of queues are transmitted to a control plane of the network based on a respective priority assigned to each of the plurality of queues.

2. The method of claim 1 , the method further comprising:

receiving, from the control plane of the network, an updated priority for the first session; and

updating the first bloom filter bank by associating the first session with the updated priority.

3. The method of claim 2 , wherein the updated priority for the first session is a relatively higher priority than a current priority for the first session, and wherein the control plane of the network transmitted the updated priority for the first session upon:

receiving a second packet belonging to the first session;

determining an elapsed time between a time when an initial packet belonging to the first roam event was received and a time when the second packet was received; and

determining that the elapsed time exceeds a predefined threshold.

4. The method of claim 2 , wherein the updated priority for the first session is a relatively lower priority than a current priority for the first session, and wherein the control plane of the network transmitted the updated priority for the first session upon:

receiving a second packet belonging to the first session;

determining an elapsed time between a time when an initial packet belonging to the first roam event was received and a time when the second packet was received; and

determining that the elapsed time is below a predefined threshold.

5. The method of claim 1 , the method further comprising:

receiving, from the control plane of the network, an indication that the first roam event has completed; and

updating the first bloom filter bank by removing an indication of the first session from the first bloom filter bank.

6. The method of claim 1 , the method further comprising:

receiving a second packet belonging to a second session;

upon determining that the second packet is part of a second roam event, searching the first bloom filter bank to determine a priority associated with the second session; and

upon determining that the first bloom filter bank does not include an indication of the second session, adding the first packet to a default queue of the plurality of queues.

7. The method of claim 1 , the method further comprising:

receiving a second packet belonging to a second session, wherein the second packet includes a key that can be used to identify the second session;

upon determining that a response to the second packet will not include the key:

searching a first bloom filter bank based on the key to determine a priority associated with the second session; and

updating a second bloom filter bank based on a second key associated with the second session.

8. The method of claim 1 , wherein searching the first bloom filter bank comprises:

determining a media access control (MAC) address of a client device associated with the first session; and

using the MAC address of the client device as a key to search the first bloom filter bank.

9. The method of claim 1 , wherein the first bloom filter bank comprises a plurality of bloom filters, wherein each of the plurality of bloom filters is associated with a respective priority level, and wherein searching the first bloom filter bank to determine the priority associated with the first session comprises:

searching each respective bloom filter of the plurality of bloom filters based on a key associated with the first session; and

upon finding a match for the key in at least two of the plurality of bloom filters:

determining a plurality of priorities associated with each of the at least two of the plurality of bloom filters; and

associating the first session with a highest priority of the plurality of priorities.

10. A computer product comprising logic encoded in a non-transitory medium, the logic executable by operation of one or more computer processors to perform an operation comprising:

receiving, at a data plane of a network, a first packet belonging to a first session;

upon determining that the first packet is part of a first roam event, searching a first bloom filter bank to determine a priority associated with the first session, wherein the priority is based on an elapsed time from a start of the first roam event and an expected latency for the first roam event;

selecting a first queue of a plurality of queues based on the determined priority; and

adding the first packet to the first queue, wherein packets in the plurality of queues are transmitted to a control plane of the network based on a respective priority assigned to each of the plurality of queues.

11. The computer product of claim 10 , the operation further comprising:

receiving, from the control plane of the network, an updated priority for the first session, wherein the updated priority for the first session is a relatively higher priority than a current priority for the first session, and wherein the control plane of the network transmitted the updated priority for the first session upon:

receiving a second packet belonging to the first session;

determining an elapsed time between a time when an initial packet belonging to the first roam event was received and a time when the second packet was received; and

determining that the elapsed time exceeds a predefined threshold; and

updating the first bloom filter bank by associating the first session with the updated priority.

12. The computer product of claim 10 , the operation further comprising:

receiving, from the control plane of the network, an updated priority for the first session, wherein the updated priority for the first session is a relatively lower priority than a current priority for the first session, and wherein the control plane of the network transmitted the updated priority for the first session upon:

receiving a second packet belonging to the first session;

determining an elapsed time between a time when an initial packet belonging to the first roam event was received and a time when the second packet was received; and

determining that the elapsed time is below a predefined threshold; and

updating the first bloom filter bank by associating the first session with the updated priority.

13. The computer product of claim 10 , the operation further comprising:

receiving, from the control plane of the network, an indication that the first roam event has completed; and

updating the first bloom filter bank by removing an indication of the first session from the first bloom filter bank.

14. The computer product of claim 10 , the operation further comprising:

receiving a second packet belonging to a second session, wherein the second packet includes a key that can be used to identify the second session;

upon determining that a response to the second packet will not include the key:

searching a first bloom filter bank based on the key to determine a priority associated with the second session; and

updating a second bloom filter bank based on a second key associated with the second session.

15. The computer product of claim 10 , wherein the first bloom filter bank comprises a plurality of bloom filters, wherein each of the plurality of bloom filters is associated with a respective priority level, and wherein searching the first bloom filter bank to determine the priority associated with the first session comprises:

searching each respective bloom filter of the plurality of bloom filters based on a key associated with the first session; and

upon finding a match for the key in at least two of the plurality of bloom filters:

determining a plurality of priorities associated with each of the at least two of the plurality of bloom filters; and

associating the first session with a highest priority of the plurality of priorities.

16. A network device comprising:

one or more computer processors; and

logic encoded in a non-transitory medium, the logic executable by operation of the one or more computer processors to perform an operation comprising:

receiving, at a data plane of a network, a first packet belonging to a first session;

upon determining that the first packet is part of a first roam event, searching a first bloom filter bank to determine a priority associated with the first session, wherein the priority is based on an elapsed time from a start of the first roam event and an expected latency for the first roam event;

selecting a first queue of a plurality of queues based on the determined priority; and

adding the first packet to the first queue, wherein packets in the plurality of queues are transmitted to a control plane of the network based on a respective priority assigned to each of the plurality of queues.

17. The network device of claim 16 , the operation further comprising:

receiving, from the control plane of the network, an updated priority for the first session, wherein the updated priority for the first session is a relatively higher priority than a current priority for the first session, and wherein the control plane of the network transmitted the updated priority for the first session upon:

receiving a second packet belonging to the first session;

determining an elapsed time between a time when an initial packet belonging to the first roam event was received and a time when the second packet was received; and

determining that the elapsed time exceeds a predefined threshold; and

updating the first bloom filter bank by associating the first session with the updated priority.

18. The network device of claim 16 , the operation further comprising:

receiving, from the control plane of the network, an updated priority for the first session, wherein the updated priority for the first session is a relatively lower priority than a current priority for the first session, and wherein the control plane of the network transmitted the updated priority for the first session upon:

receiving a second packet belonging to the first session;

determining an elapsed time between a time when an initial packet belonging to the first roam event was received and a time when the second packet was received; and

determining that the elapsed time is below a predefined threshold; and

updating the first bloom filter bank by associating the first session with the updated priority.

19. The network device of claim 16 , the operation further comprising:

receiving a second packet belonging to a second session, wherein the second packet includes a key that can be used to identify the second session;

upon determining that a response to the second packet will not include the key:

searching a first bloom filter bank based on the key to determine a priority associated with the second session; and

updating a second bloom filter bank based on a second key associated with the second session.

20. The network device of claim 16 , wherein the first bloom filter bank comprises a plurality of bloom filters, wherein each of the plurality of bloom filters is associated with a respective priority level, and wherein searching the first bloom filter bank to determine the priority associated with the first session comprises:

searching each respective bloom filter of the plurality of bloom filters based on a key associated with the first session; and

upon finding a match for the key in at least two of the plurality of bloom filters:

determining a plurality of priorities associated with each of the at least two of the plurality of bloom filters; and

associating the first session with a highest priority of the plurality of priorities.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2019
From: PUDUKOLI SUBRAHMANYA, UDAYA SHANKARA; MAHESHUNI, SHIVA PRASAD; KV, GIRISH K.; PATIL, SANTOSH RAMRAO
To: CISCO TECHNOLOGY, INC.
Reel/Frame 048566/0415 →
Continuity (1)
Related Publication 20200296632A1 · Sep 17, 2020