IP Library Granted Patent US 11,848,865
Granted Patent B2
US 11,848,865 · App. 17/486,477 · Granted Dec 19, 2023

Application programming interface (API)-based multi-tenant routing control plane

Inventors: Kyle Andrew Donald Mestery (Woodbury, MN); Christopher Blair Murray (Surrey, CA); Jon Langemak (Rockford, MN); Rahim Lalani (Vancouver, CA); Alvin Wong (Delta, CA)
Assignee: Cisco Technology, Inc.
H04L45/74H04L12/4633H04L12/4641H04L41/0816H04L41/0853H04L45/02H04L45/04H04L45/22H04L45/30H04L45/42H04L45/50H04L45/586H04L45/741H04L45/745H04L67/51
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 11,848,865
App. No.
17/486,477
Granted
Dec 19, 2023
Kind
B2
Abstract

Techniques for using global virtual network instance (VNI) labels in a multi-domain network to route network data with a multi-tenant network overlay are described herein. A routing device provisioned in a network domain of the multi-domain network may register with a service discovery system of the network domain for use of network configuration data to establish routes through the multi-domain network with network nodes. Each network domain of the multi-domain network may include an application programming interface (API) server for processing API requests to make changes to configurations of a network domain. A border gateway protocol (BGP) large community may be utilized to encode global VNI labels, network addresses, local next hop nodes, and/or additional network information and sent to routing devices provisioned in separate network domains. A service chain may be signaled by global VNI labels to route network traffic through various services prior to reaching a destination endpoint.

Claims (80)

1. A method comprising:

receiving a first application programming interface (API) request associated with an API server of a first network domain of a multi-domain network;

determining that the first API request corresponds to performance of an operation by a router associated with the first network domain, the router being configured to update network configurations for the first network domain;

identifying current network configurations for the first network domain in a datastore associated with the first network domain;

determining, based at least in part on the current network configurations and the operation, updated network configurations for the first network domain;

storing, in the datastore, the updated network configurations for the first network domain;

receiving, from an admin device associated with a tenant of one or more tenants associated with the first network domain, a second API request associated with the API server of the first network domain;

determining that the second API request includes a request for network performance data associated with at least the first network domain;

determining the network performance data associated with the tenant, the network performance data including at least a first indication of network performance associated with a change in the network configurations for the first network domain caused at least partly by the performance of the operation; and

sending, to the admin device, the network performance data.

2. The method of claim 1 , further comprising:

identifying the change in the current network configurations for the first network domain caused at least partly by the performance of the operation, wherein determining the updated network configurations is based at least in part on the change; and

sending, from the router, a border gateway protocol (BGP) advertisement to an edge device in a second network domain of the multi-domain network, the BGP advertisement indicating the updated network configurations for the first network domain.

3. The method of claim 1 , wherein the first API request is received from a network connector node associated with the first network domain, and the method further comprising:

sending, from the router and to the network connector node, the updated network configurations for the first network domain.

4. The method of claim 1 , wherein tenant is a first tenant and the operation comprises at least one of creating, reading, updating, and deleting a virtual routing and forwarding (VRF) associated with the first network domain, and the method further comprising:

sending, to a second tenant of the one or more tenants associated with the first network domain, a global identifier associated with the VRF, wherein the first API request is received from the second tenant.

5. The method of claim 1 , wherein the tenant is a first tenant and the operation comprises at least one of creating, reading, updating, and deleting a network connector node, the network connector node connecting the first network domain to at least one of:

a second network domain of the multi-domain network via a network tunnel; or

a third network domain separate from the multi-domain network; and

the method further comprising sending, to a second tenant of the one or more tenants associated with the first network domain, a global identifier associated with the network connector node, wherein the first API request is received from the second tenant.

6. The method of claim 1 , wherein the operation comprises at least one of creating, reading, updating, and deleting a network route for transmitting communications through one or more network connector nodes of the first network domain and out of the first network domain to one or more second network domains of the multi-domain network, and the method further comprising:

configuring, by the router, the one or more network connector nodes to transmit communications through the first network domain and out of the first network domain to one or more additional network domains according to the network route.

7. The method of claim 1 , wherein:

the indication is a first indication;

the second API request includes a request for network performance data associated with at least one of network connector nodes of the first network domain or network routes for transmitting communications through the network connector nodes of the first network domain; and

the network performance data including further includes at least one of:

a second indication of the network performance associated with the network connector nodes, the second indication of network performance indicating at least one of reachability of the network connector nodes, bandwidth usage of the network connector nodes, central processing unit (CPU) usage of the network connector nodes, and a number of links available to the network connector nodes; and

a third indication of the network performance associated with the network routes, the third indication of the network performance indicating at least one of the network routes associated with the first network domain and a preference associated with the network routes.

8. A system comprising:

a first network domain of a multi-domain network including at least:

a first router that updates network configurations for the first network domain;

an application programming interface (API) server; and

a datastore that stores current network configurations for the first network domain;

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 the API server, a first API request;

determining, at the API server, that the first API request corresponds to performance of an operation with respect to at least the first network domain;

determining, at the API server and based at least in part on the current network configurations and the operation, updated network configurations for the first network domain;

storing, by the API server and in the datastore, the updated network configurations for the first network domain

receiving, at the API server, a second API request

determining, at the API server, that the second API request includes a request for network performance data associated with at least the first network domain;

receiving, at the API server and from at least the first router, the network performance data; and

sending, from the API server and to an admin device associated with a tenant of one or more tenants associated with the first network domain, the network performance data, the network performance data including at least an indication of network performance associated with a change in the network configurations for the first network domain cause at least partly by the operation.

9. The system of claim 8 , wherein the first API request is received from a network connector node associated with the first network domain.

10. The system of claim 8 , wherein the tenant is a first tenant and the operation comprises at least one of creating, reading, updating, and deleting a virtual routing and forwarding (VRF) associated with the first network domain, and the operations further comprising:

sending, from the API server and to a second tenant of the one or more tenants associated with the first network domain, a global identifier associated with the VRF, wherein the first API request is received from the second tenant.

11. The system of claim 8 , wherein the tenant is a first tenant and the operation comprises at least one of creating, reading, updating, and deleting a network connector node, the network connector node connecting the first network domain to at least one of:

a second network domain of the multi-domain network via a network tunnel; or

a third network domain separate from the multi-domain network; and

the operations further comprising sending, from the API server and to a second tenant of the one or more tenants associated with the first network domain, a global identifier associated with the network connector node, wherein the first API request is received from the second tenant.

12. The system of claim 8 , wherein the operation comprises at least one of creating, reading, updating, and deleting a network route for transmitting communications through one or more network connector nodes associated with the first router and out of the first network domain to one or more second network domains of the multi-domain network.

13. The system of claim 8 , wherein:

the indication is a first indication;

the second API request includes a request for network performance data associated with at least one of network connector nodes of the first network domain or network routes for transmitting communications through the network connector nodes of the first network domain; and

the network performance data including further includes at least one of:

a second indication of the network performance associated with the network connector nodes, the second indication of the network performance indicating at least one of reachability of the network connector nodes, bandwidth usage of the network connector nodes, central processing unit (CPU) usage of the network connector nodes, and a number of links available to the network connector nodes; and

a third indication of the network performance associated with the network routes, the third indication of the network performance indicating at least one of the network routes associated with the first network domain and a preference associated with the network routes.

14. The system of claim 8 , the operations further comprising:

identifying, by the API server and at least partly using the data store, the change in the network configurations for the first network domain caused at least partly by the performance of the operation; and

wherein determining the updated network configurations is based at least in part on the change in the network configurations caused at least partly by the performance of the operation.

15. A method comprising:

receiving a first application programming interface (API) request associated with an API server of a first network domain of a multi-domain network;

determining that the API request corresponds to performance of an operation associated with the first network domain;

determining, based at least in part on current network configurations and the operation, updated network configurations for the first network domain;

storing, in a datastore associated with the first network domain, the updated network configurations for the first network domain; receiving a second API request associated with the API server of the first network domain;

determining that the second API request includes a request for network performance data associated with at least the first network domain;

receiving from at least a first router associated with the first network domain, the network performance data; and

sending, to an admin device associated with a tenant of one or more tenants associated with the first network domain, the network performance data, the network performance data including at least an indication of network performance associated with a change in the network configurations for the first network domain caused at least partly by the operation.

16. The method of claim 15 , further comprising sending, from the first router associated with the first network domain and to an edge device in a second network domain of the multi-domain network, a border gateway protocol (BGP) advertisement indicating the updated network configurations for the first network domain.

17. The method of claim 15 , wherein the tenant is a first tenant and the operation comprises at least one of creating, reading, updating, and deleting a virtual routing and forwarding (VRF) associated with the first network domain, and the method further comprising:

sending, to a second tenant of the one or more tenants associated with the first network domain, a global identifier associated with the VRF, wherein the first API request is received from the second tenant.

18. The method of claim 15 , wherein the tenant is a first tenant and the operation comprises at least one of creating, reading, updating, and deleting a network connector node, the network connector node connecting the first network domain to at least one of:

a second network domain of the multi-domain network via a network tunnel; or

a third network domain separate from the multi-domain network; and

the method further comprising sending, to a second tenant of the one or more tenants associated with the first network domain, a global identifier associated with the network connector node, wherein the first API request is received from the second tenant.

19. The method of claim 15 , wherein the operation comprises at least one of creating, reading, updating, and deleting a network route for transmitting communications through one or more network connector nodes of the first network domain and out of the first network domain to one or more second network domains of the multi-domain network, and the method further comprising:

configuring, by a first router of the first network domain, the one or more network connector nodes to transmit communications through the first network domain and out of the first network domain to one or more additional network domains according to the network route.

20. The method of claim 15 , wherein the first API request is received from a network connector node associated with the first network domain, and the method further comprising:

sending, from the first router associated with the first network domain and to the network connector node, the updated network configurations for the first network domain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2021
From: MESTERY, KYLE ANDREW DONALD; MURRAY, CHRISTOPHER BLAIR; LANGEMAK, JON; LALANI, RAHIM; WONG, ALVIN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 057613/0234 →
Continuity (6)
Provisional Application 63193833 · May 27, 2021
Provisional Application 63193757 · May 27, 2021
Provisional Application 63193771 · May 27, 2021
Provisional Application 63193801 · May 27, 2021
Provisional Application 63193813 · May 27, 2021
Related Publication 20220385558A1 · Dec 1, 2022
Cited By (2)
US 12,199,866 US 12,341,695