IP Library › Granted Patent US 12,381,805
Granted Patent B2
US 12,381,805 · App. 17/989,414 · Granted Aug 5, 2025

Method to select best path for SaaS using application and network telemetry

Inventors: Syed Arslan Ahmed (Karnataka, IN); Rahul Ramachandran (Dublin, CA); Jegan Kumar Somi Ramasamy Subramanian (Mountain View, CA); Nagarajan Venkatesan (Mill Valley, CA)
Assignee: Cisco Technology, Inc.
H04L43/12H04L45/124
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 12,381,805
App. No.
17/989,414
Granted
Aug 5, 2025
Kind
B2
Abstract

Techniques are provided herein for determining a routing path for application traffic based on historic application telemetry and current network telemetry. The techniques comprising determining current metrics for a set of potential paths between an edge device and an application endpoint associated with an application, generating, from the current metrics, a link score for individual paths in the set of potential paths, receiving application status data generated from historic telemetry data associated with the application and the set of potential paths, generating, from the application status data, an application score for individual paths in the set of potential paths, and determining, as a function of the link score and the application score for individual paths in the set of potential paths, a selected path to be used in communications between the edge device and the application endpoint.

Claims (48)

1. A method comprising:

determining, at an edge device using one or more network probes, current metrics for a set of potential paths between the edge device and an application endpoint associated with an application;

generating, at the edge device from the current metrics, a link score for individual paths in the set of potential paths;

receiving, at the edge device, application status data generated from historic telemetry data associated with the application and the set of potential paths, the application status data generated by a remote device configured to monitor application usage at the application endpoint;

generating, at the edge device from the application status data, an application score for individual paths in the set of potential paths;

determining, at the edge device, a confidence value associated with the application status data as a function of a stability of the application and an age of the received application status data, wherein the stability of the application comprises a value that is inverse to a rate of change in the status of the application and wherein the function outputs a higher confidence value with a lower age of the received application status data; and

determining, at the edge device, a selected path to be used in communications between the edge device and the application endpoint based on:

generating a ranking value for individual paths in the set of potential paths based on a combination of the link score generated at the edge device for the respective individual path and the application score for the respective individual path generated from the application status data received from the remote system, wherein the combination is generated using a function in which the application score is given a weight based on the confidence value; and

identifying the selected path based on having the highest-ranking value.

2. The method of claim 1 , further comprising:

receiving, at the edge device from a user device, a request to access the application; and

routing the request over the selected path.

3. The method of claim 1 , wherein the set of potential paths comprise at least one of a set of tunnels or direct internet breakout links across networks that make up a software-defined wide area network (SD-WAN) fabric.

4. The method of claim 1 , wherein the application is hosted on a Software as a Service (SaaS) provider platform.

5. The method of claim 1 , wherein determining current metrics for a set of potential paths comprises:

sending the one or more network probes through the set of potential paths; and

collecting the current metrics from the one or more network probes.

6. The method of claim 1 , wherein the current metrics comprise at least one of a loss, latency, or jitter for individual paths in the set of potential paths.

7. An edge device acting as a router for a client device, the edge device comprising:

one or more processors; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the edge device to perform operations comprising:

determining, by the edge device using one or more network probes, current metrics for a set of potential paths associated with an application endpoint associated with an application;

generating, based on the current metrics, a link score for individual paths in the set of potential paths associated with the application endpoint associated with the application;

receiving application status data generated from historic telemetry data associated with the application and the set of potential paths at an application endpoint;

generating an application score for individual paths in the set of potential paths based on the application status data;

determining a confidence value associated with the application score as a function of a stability of the application and an age of the historic telemetry data, wherein the stability of the application comprises a value that is inverse to a rate of change in the status of the application and wherein the function outputs a higher confidence value with a lower age of the received application status data; and

determining, based on a combination of the link score and the application score for individual paths in the set of potential paths, a selected path to be used in communications between the edge device and the application endpoint, wherein the combination is generated having a weight of the application score based on the confidence value.

8. The edge device of claim 7 , wherein the edge device acts as a gateway between a local area network and a software-defined wide area network (SD-WAN) fabric.

9. The edge device of claim 7 , wherein the historic telemetry data is provided by a software as a service (SaaS) platform hosting the application.

10. The edge device of claim 7 , wherein the link score comprises a numeric representation of a current network status.

11. The edge device of claim 7 , wherein the application score comprises a numeric representation of a historic status of a path with respect to routing of application data associated with the application.

12. The edge device of claim 7 , wherein determining the selected path comprises:

calculating a ranking for individual paths in the set of potential paths as a function of the link score and the application score; and

selecting the selected path as the individual path of the set of potential paths having the highest ranking.

13. The edge device of claim 12 , wherein the confidence value comprises a ratio and the ranking for individual paths in the set of potential paths is further calculated as a function of the application score as weighted based on the confidence value.

14. The edge device of claim 13 , wherein the confidence value represents a degree of likelihood that the application score is likely to persist.

15. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

generating, based on current metrics obtained using network probes, a link score for individual paths in a set of potential paths associated with an application endpoint associated with an application;

receiving application status data generated from historic telemetry data associated with the application and the set of potential paths at an application endpoint;

generating an application score for individual paths in the set of potential paths based on the application status data;

determining a confidence value associated with the application score as a function of a stability of the application and an age of the historic telemetry data, wherein the stability of the application comprises a value that is inverse to a rate of change in the status of the application and wherein the function outputs a higher confidence value with a lower age of the received application status data; and

determining, based on a combination of the link score and the application score for individual paths in the set of potential paths, a selected path to be used in communications between the edge device and the application endpoint, wherein the combination is generated using a function that assigns a weight to the application score based on the confidence value.

16. The one or more non-transitory computer-readable media of claim 15 , the operations further comprising:

calculating a ranking for individual paths in the set of potential paths as a function of the link score and the application score; and

selecting the selected path as the individual path of the set of potential paths having the highest ranking.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the confidence value comprises a ratio and the ranking for individual paths in the set of potential paths is further calculated as a function of the application score as weighted based on the confidence value.

18. The one or more non-transitory computer-readable media of claim 17 , wherein the application score comprises a numeric representation of a historic status of a path with respect to routing of application data associated with the application.

19. The one or more non-transitory computer-readable media of claim 17 , wherein the application score is generated based on information received from an analytics service configured to monitor usage of the application on an application platform.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2022
From: AHMED, SYED ARSLAN; RAMACHANDRAN, RAHUL; SOMI RAMASAMY SUBRAMANIAN, JEGAN KUMAR; VENKATESAN, NAGARAJAN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 061815/0781 →
Priority Claims (1)
IN 202241046427 · Aug 16, 2022 · national
Continuity (1)
Related Publication 20240064085A1 · Feb 22, 2024
References Cited (18)
US 7245915B2 · Matta · 2007 [cited by examiner]
US 8537840B1 · Raszuk · 2013 [cited by examiner]
US 9736056B2 · Vasseur · 2017 [cited by examiner]
US 10097449B2 · Patel · 2018 [cited by examiner]
US 10116524B2 · Jensen · 2018 [cited by examiner]
US 10320655B1 · Asveren · 2019 [cited by examiner]
US 10972387B2 · Iyer · 2021 [cited by examiner]
US 10992654B2 · Raza · 2021 [cited by examiner]
US 11153196B2 · Sanchez Charles · 2021 [cited by examiner]
US 11546239B2 · Bajaj · 2023 [cited by examiner]
US 20180375744A1 · Mayya · 2018 [cited by examiner]
US 20200382429A1 · Bajaj · 2020 [cited by examiner]
US 20210367832A1 · Ramachandran et al. · 2021 [cited by applicant]
US 20220052927A1 · Yelahanka Raghuprasad et al. · 2022 [cited by applicant]
US 20220116315A1 · Zhang · 2022 [cited by examiner]
US 20220191143A1 · Vasseur et al. · 2022 [cited by applicant]
US 20220217049A1 · Vohra et al. · 2022 [cited by applicant]
US 20230028872A1 · Ramaswamy · 2023 [cited by examiner]