# US 11,444,871 B1 · End-to-end path selection using dynamic software-defined cloud interconnect (SDCI) tunnels

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

- Number: US 11,444,871 B1
- Document ID: US11444871B1
- Status: Granted
- Kind: B1
- Application number: 17/385,520
- Filed: 2021-07-26
- Granted: 2022-09-13
- Earliest claimed: 2021-07-26
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Nagendra Kumar Nainar; Robert Edgar Barton; Carlos M. Pignataro; Jerome Henry; Olivier Pelerin; Shankar Vemulapalli
- Web page: https://patentgrep.com/patent/US11444871B1

## CPC

- H04L 45/70: {Routing based on monitoring results}
- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 41/5051: Service on demand, e.g. definition and deployment of services in real time
- H04L 47/2425: for supporting services specification, e.g. SLA
- H04L 61/4511: using domain name system [DNS]
- H04L 63/0272: {Virtual private networks}
- H04L 63/029: {Firewall traversal, e.g. tunnelling or, creating pinholes}
- H04L 63/107: {wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals}
- H04L 63/205: {involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved (negotiation of communication capabilities H04L69/24)}
- H04L 12/4604: {LAN interconnection over a backbone network, e.g. Internet, Frame Relay}
- H04L 41/342: between virtual entities, e.g. orchestrators, SDN or NFV entities
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- H04L 43/08: Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L 2012/4629: {using multilayer switching, e.g. layer 3 switching}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques for utilizing a cloud service to compute an end-to-end SLA-aware path using dynamic software-defined cloud interconnect (SDCI) tunnels between a user device and an access point-of-presence (POP) node and inter-POP tunnels of the SDCI. The cloud service may include a performance aware path instantiation (PAPI) component including a POP database for storing performance metrics associated with the POPs of the SDCI, an enterprise policy database for storing user specific policies, and/or a path computation component. The path computation component may compute the path, based on the user specific policies, performance metrics associated with the POP nodes, and/or real-time contextual data associated with the user device and/or destination device. The path may include a first tunnel between the user device and the most optimal access POP node of the SDCI and a second tunnel between the access POP node, through the internal POP nodes, and to the destination device.

## Claims

### Claim 1

A method comprising:
receiving, at a cloud service, a request for an end-to-end path between client device and a destination device, wherein the end-to-end path is at least partially established using a software-defined cloud interconnect (SDCI);
identifying, for a user account associated with the client device, a performance requirement associated with the user account for communicating traffic over the end-to-end path;
identifying performance data indicating performance metrics of one or more paths between one or more points of presence (POP) of the SDCI;
calculating, at the cloud service, the path between the client device and destination device based at least in part on the performance metrics associated with the one or more paths satisfying the performance requirement associated with the user account; and
causing data to be communicated from the client device to the destination device using the path.

### Claim 2 (depends on 1)

The method of claim 1, further comprising providing, by the cloud service, an indication of the path to at least one device associated with the path.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
sending, from the cloud service and to a Software-Defined-Networking (SDN) controller associated with the cloud service, an indication of the path between the client device and the destination device; and
programming, by the SDN controller and based at least in part on the indication, the path between the client device and the destination device, wherein programming the path includes providing an indication of the path to at least one of the one or more POP of the SDCI.

### Claim 4 (depends on 1)

The method of claim 1, wherein a first path of the one or more paths between the one or more POP of the SDCI utilizes a first type of network and a second path of the one or more paths between the one or more POP of the SDCI utilizes a second type of network, the second type of network being different from the first type of network.

### Claim 5 (depends on 1)

The method of claim 1, further comprising sending an indication of the path from the cloud service and to the client device, and wherein causing the data to be communicated from the client device to the destination device is based at least in part on sending the indication of the path to the client device.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
sending, from the cloud service and to a domain name service (DNS) associated with the cloud service, an indication of the user account associated with the client device;
receiving, at the cloud service and from the DNS, an indication of a policy associated with the user account, wherein the policy indicates a service level agreement (SLA) associated with the user account; and
wherein identifying the performance requirement associated with the user account is based at least in part on the SLA associated with the user account.

### Claim 7 (depends on 1)

The method of claim 1, wherein the request includes an indication of a current location associated with the client device, and the method further comprising:
identifying, by the cloud service and based at least in part on the current location associated with the client device, a first POP of the one or more POP of the SDCI; and
calculating the path between the client device and the destination device based at least in part on identifying the first POP of the one or more POP of the SDCI.

### Claim 8

A system comprising:
one or more processors; and
one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving, at a cloud service, a request for an end-to-end path between client device and a destination device, wherein the end-to-end path is at least partially established using a software-defined cloud interconnect (SDCI);
identifying, for a user account associated with the client device, a performance requirement associated with the user account for communicating traffic over the end-to-end path;
identifying performance data indicating performance metrics of one or more paths between one or more points of presence (POP) of the SDCI;
calculating, at the cloud service, the path between the client device and destination device based at least in part on the performance metrics associated with the one or more paths satisfying the performance requirement associated with the user account; and
providing, by the cloud service, an indication of the path to at least one device associated with the path.

### Claim 9 (depends on 8)

The system of claim 8, the operations further comprising causing data to be communicated from the client device to the destination device using the path.

### Claim 10 (depends on 8)

The system of claim 8, wherein the performance data is first performance data and the performance metrics are first performance metrics, and the operations further comprising:
receiving, at the cloud service and from a Software-Defined-Networking (SDN) controller associated with the cloud service at a first time, the first performance data indicating the first performance metrics of the one or more paths between the one or more POP of the SDCI;
storing, in a database associated with the cloud service, the first performance metrics in association with the first time;
receiving, at the cloud service and from the SDN controller at a second time, second performance data indicating second performance metrics of the one or more paths between the one or more POP of the SDCI, wherein the second time is subsequent to the first time; and
storing, in the database associated with the cloud service, the second performance metrics in association with the second time.

### Claim 11 (depends on 10)

The system of claim 10, wherein the path is a first path, and the operations further comprising:
determining, by the cloud service and based at least in part on the performance requirement, that at least a first performance metric of the second performance metrics is more favorable than the first performance metric of the first performance metrics;
calculating, at the cloud service and based at least in part on determining that at least the first performance metric of the second performance metrics is more favorable than the first performance metric of the first performance metrics, a second path between the client device and the destination device; and
causing the data to be communicated from the client device to the destination device using the second path.

### Claim 12 (depends on 8)

The system of claim 8, wherein the performance requirement includes at least one of:
a bandwidth requirement;
a latency requirement;
a jitter requirement; or
a security requirement.

### Claim 13 (depends on 8)

The system of claim 8, wherein the request includes an indication of a current location associated with the client device, and the operations further comprising:
identifying, at the cloud service, an edge POP associated with the SDCI based at least in part on the current location associated with the client device and the performance requirement associated with the user account;
providing an indication of the edge POP to a Software-Defined-Networking (SDN) controller associated with the cloud service to establish a first secure tunnel between the client device and the edge POP;
identifying, at the cloud service, one or more internal POP of the SDCI from among the one or more POP of the SDCI based at least in part on the performance requirement and the edge POP, the one or more internal POP of the SDCI including a first internal POP that can be connected to the edge POP;
providing an indication of the one or more internal POP of the SDCI to the SDN controller to establish a second secure tunnel using the one or more paths between the one or more internal POP of the SDCI;
providing an indication of the first internal POP of the one or more internal POP of the SDCI to the SDN controller to connect the first secure tunnel to the second secure tunnel; and
causing data to be communicated from the client device to the destination device using the path based at least in part on connecting the first secure tunnel to the second secure tunnel.

### Claim 14 (depends on 13)

The system of claim 13, the operations further comprising:
determining, at the cloud service, a first candidate path comprising one or more first paths between one or more first POP of the one or more POP of the SDCI, the one or more first paths being associated with first performance metrics of the performance metrics;
determining, at the cloud service, a second candidate path comprising one or more second paths between one or more second POP of the one or more POP of the SDCI, the one or more second paths being associated with second performance metrics of the performance metrics;
determining, at the cloud service and based at least in part on the performance requirement, that the first performance metrics are more favorable than second performance metrics; and
wherein calculating the path between the client device and the destination device comprises calculating the path including the one or more first paths between the one or more first POP of the SDCI is based at least in part on determining that the first performance metrics are more favorable than the second performance metrics.

### Claim 15

A method comprising:
receiving, at a cloud service, a request for an end-to-end path between client device and a destination device, the request indicating a performance requirement associated with a user account for communicating traffic over the end-to-end path, and wherein the end-to-end path is at least partially established using a software-defined cloud interconnect (SDCI);
identifying performance data indicating performance metrics of one or more paths between one or more points of presence (POP) of the SDCI;
calculating, at the cloud service, the path between the client device and destination device based at least in part on the performance metrics associated with the one or more paths satisfying the performance requirement associated with the user account; and
causing data from the client device to be communicated to the destination device using the path.

### Claim 16 (depends on 15)

The method of claim 15, wherein the request is received from a domain name service (DNS) associated with the cloud service, and the performance requirement indicates a service level agreement (SLA) associated with the user account.

### Claim 17 (depends on 15)

The method of claim 15, wherein a first path of the one or more paths between the one or more POP of the SDCI utilizes a first type of network and a second path of the one or more paths between the one or more POP of the SDCI utilizes a second type of network, the second type of network being different from the first type of network.

### Claim 18 (depends on 15)

The method of claim 15, wherein the performance requirement includes at least one of:
a bandwidth requirement;
a latency requirement;
a jitter requirement; or
a security requirement.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
sending, from the cloud service and to a Software-Defined-Networking (SDN) controller associated with the cloud service, an indication of the path between the client device and the destination device; and
programming, by the SDN controller and based at least in part on the indication, the path between the client device and the destination device, wherein programming the path includes providing an indication of the path to at least one of the one or more POP of the SDCI.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
determining, at the cloud service, a first candidate path comprising one or more first paths between one or more first POP of the one or more POP of the SDCI, the one or more first paths being associated with first performance metrics of the performance metrics;
determining, at the cloud service, a second candidate path comprising one or more second paths between one or more second POP of the one or more POP of the SDCI, the one or more second paths being associated with second performance metrics of the performance metrics;
determining, at the cloud service and based at least in part on the performance requirement, that the first performance metrics are more favorable than second performance metrics; and
wherein calculating the path between the client device and the destination device comprises calculating the path including the one or more first paths between the one or more first POP of the SDCI based at least in part on determining that the first performance metrics are more favorable than the second performance metrics.
