IP Library › Granted Patent US 12,267,208
Granted Patent B2
US 12,267,208 · App. 17/657,596 · Granted Apr 1, 2025

Cloud native software-defined network architecture

Inventors: Mahesh Sivakumar (Milpitas, CA); Fnu Nadeem (Fremont, CA); Srinivas Akkipeddi (San Ramon, CA); Michael Henkel (Saratoga, CA); Prasad Miriyala (San Jose, CA); Gurminder Singh (Union City, CA); Édouard Thuleau (La Possonniere, FR); Atul S Moghe (San Jose, CA); Joseph Williams (Pleasanton, CA); Ignatious Johnson Christober (Sunnyvale, CA); Jeffrey S. Marshall (Santa Clara, CA); Nagendra Maynattamai (Fremont, CA); Dale Davis (San Jose, CA)
Assignee: Juniper Networks, Inc.
H04L41/0813G06F9/5072H04L41/0803H04L41/0866H04L41/40H04L45/42H04L63/0263H04L69/03
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,267,208
App. No.
17/657,596
Filed
Mar 31, 2022
Granted
Apr 1, 2025
Kind
B2
Art Unit
2445
USPC
709/220
Abstract

In an example, a method includes processing, by an application programming interface (API) server implemented by a configuration node of a network controller for a software-defined networking (SDN) architecture system, requests for operations on native resources of a container orchestration system; processing, by a custom API server implemented by the configuration node, requests for operations on custom resources for SDN architecture configuration, wherein each of the custom resources for SDN architecture configuration corresponds to a type of configuration object in the SDN architecture system; detecting, by a control node of the network controller, an event on an instance of a first custom resource of the custom resources; and by the control node, in response to detecting the event on the instance of the first custom resource, obtaining configuration data for the instance of the first custom resource and configuring a corresponding instance of a configuration object in the SDN architecture.

Claims (52)

1. A network controller for a software-defined networking (SDN) architecture system, the network controller comprising:

processing circuitry;

a configuration node configured for execution by the processing circuitry; and

a control node configured for execution by the processing circuitry,

wherein the configuration node includes an application programming interface (API) server to process requests for operations on native resources of a container orchestration system and includes a custom API server to process requests for operations on custom resources for SDN architecture configuration,

wherein the API server is configured to receive a first request for an operation on an instance of a first custom resource of the custom resources and, based on the first request relating to the first custom resource, delegate the first request to the custom API server,

wherein the first custom resource comprises a virtual network,

wherein the custom API server processes the first request,

wherein each of the custom resources for SDN architecture configuration corresponds to a type of configuration object in the SDN architecture system,

wherein the control node is configured to, in response to detecting an event on the instance of the first custom resource of the custom resources, obtain configuration data for the instance of the first custom resource and configure a corresponding instance of a configuration object in the SDN architecture system, and

wherein to configure the corresponding instance of the configuration object in the SDN architecture system, the control node configures an instance of a virtual network in a virtual router executed by a compute node of the SDN architecture system and provides, to the compute node, interface configuration data for a virtual network interface that enables a workload deployed to the compute node by the container orchestration system to communicate using the virtual network,

wherein the configuration node, for each type of configuration object in the SDN architecture system, includes a different custom resource controller and implements a different one of the custom resources for SDN architecture configuration,

wherein to process the first request the custom API server is configured to apply the operation to create intended state data for the instance of the first custom resource in a configuration store, and wherein the custom resource controller for the first custom resource is configured to reconcile actual state of the instance of the first custom resource to the intended state data in the configuration store.

2. The network controller of claim 1 , wherein the event on the instance of the first custom resource of the custom resources comprises the creation of the intended state data.

3. The network controller of claim 1 ,

wherein the instance of the first custom resource is stored to the configuration store, and wherein the control node is configured to detect the event on the instance of the first custom resource using a watch on the configuration store.

4. The network controller of claim 1 ,

wherein the API server is configured to receive a second request for an operation on an instance of a native resource of the container orchestration system and apply the operation to create intended state data for the instance of the native resource in the configuration store.

5. The network controller of claim 1 ,

wherein the configuration node includes a controller configured to reconcile actual state of the instance of the first custom resource to the intended state data in the configuration store to reconcile the instance of the native resource to the intended state data in the configuration store.

6. The network controller of claim 1 , wherein the configuration node comprises an SDN controller manager configured to: in response to detecting a second request to create an instance of a native resource of the container orchestration system, create the instance of the first custom resource.

7. The network controller of claim 6 , wherein the event on the instance of the first custom resource comprises the creation of the instance of the first custom resource.

8. The network controller of claim 6 , wherein the SDN controller manager comprises a custom controller that is registered with the API server to receive events for the native resource.

9. The network controller of claim 1 , wherein the network controller is implemented by a Kubernetes cluster comprising the compute node of the SDN architecture system.

10. A method comprising:

processing, by an application programming interface (API) server implemented by a configuration node of a network controller for a software-defined networking (SDN) architecture system, requests for operations on native resources of a container orchestration system;

processing, by a custom API server implemented by the configuration node, requests for operations on custom resources for SDN architecture configuration, wherein each of the custom resources for SDN architecture configuration corresponds to a type of configuration object in the SDN architecture system;

receiving, by the API server, a first request for an operation on an instance of a first custom resource of the custom resources;

delegating, by the API server, based on the first request relating to the first custom resource, the first request to the custom API server, wherein the first custom resource comprises a virtual network;

processing, by the custom API server, the first request;

detecting, by a control node of the network controller, an event on the instance of the first custom resource of the custom resources; and

by the control node, in response to detecting the event on the instance of the first custom resource, obtaining configuration data for the instance of the first custom resource and configuring a corresponding instance of a configuration object in the SDN architecture system, wherein configuring the corresponding instance of the configuration object in the SDN architecture system comprises configuring an instance of a virtual network in a virtual router executed by a compute node of the SDN architecture system and providing, to the compute node, interface configuration data for a virtual network interface that enables a workload deployed to the compute node by the container orchestration system to communicate using the virtual network;

wherein the configuration node, for each type of configuration object in the SDN architecture system, includes a different custom resource controller and implements a different one of the custom resources for SDN architecture configuration;

wherein to process the first request the custom API server is configured to apply the operation to create intended state data for the instance of the first custom resource in a configuration store, and wherein the custom resource controller for the first custom resource is configured to reconcile actual state of the instance of the first custom resource to the intended state data in the configuration store.

11. The method of claim 10 , further comprising: by an SDN controller manager implemented by the configuration node, in response to detecting a second request to create an instance of a native resource of the container orchestration system, creating the instance of the first custom resource.

12. The method of claim 10 , wherein the event on the instance of the first custom resource comprises the creation of the instance of the first custom resource.

13. Non-transitory computer-readable media comprising instructions for causing processing circuitry to:

process, by an application programming interface (API) server implemented by a configuration node of a network controller for a software-defined networking (SDN) architecture system, requests for operations on native resources of a container orchestration system;

process, by a custom API server implemented by the configuration node, requests for operations on custom resources for SDN architecture configuration, wherein each of the custom resources for SDN architecture configuration corresponds to a type of configuration object in the SDN architecture system;

receive, by the API server, a first request for an operation on an instance of a first custom resource of the custom resources;

delegate, by the API server, based on the first request relating to the first custom resource, the first request to the custom API server;

process, by the custom API server, the first request;

detect, by a control node of the network controller, an event on the instance of the first custom resource of the custom resources; and

by the control node, in response to detecting the event on the instance of the first custom resource, obtain configuration data for the instance of the first custom resource and configure a corresponding instance of a configuration object in the SDN architecture system,

wherein to configure the corresponding instance of the configuration object in the SDN architecture system, the control node configures an instance of a virtual network in a virtual router executed by a compute node of the SDN architecture system and provides, to the compute node, interface configuration data for a virtual network interface that enables a workload deployed to the compute node by the container orchestration system to communicate using the virtual network;

wherein the configuration node, for each type of configuration object in the SDN architecture system, includes a different custom resource controller and implements a different one of the custom resources for SDN architecture configuration;

wherein to process the first request the custom API server is configured to apply the operation to create intended state data for the instance of the first custom resource in a configuration store, and wherein the custom resource controller for the first custom resource is configured to reconcile actual state of the instance of the first custom resource to the intended state data in the configuration store.

14. The non-transitory computer-readable media of claim 13 , wherein the instructions are for causing the processing circuitry to:

receive, by the API server, receive a second request for an operation on an instance of a native resource of the container orchestration system.

15. The non-transitory computer-readable media of claim 13 , wherein the instructions are for causing the processing circuitry to:

create, by an SDN controller manager of the configuration node, in response to detecting a second request to create an instance of a native resource of the container orchestration system, the instance of the first custom resource.

16. The non-transitory computer-readable media of claim 15 , wherein the SDN controller manager comprises a custom controller that is registered with the API server to receive events for the native resource.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2022
From: SIVAKUMAR, MAHESH; NADEEM, FNU; AKKIPEDDI, SRINIVAS; HENKEL, MICHAEL; MIRIYALA, PRASAD; SINGH, GURMINDER; THULEAU, ÉDOUARD; MOGHE, ATUL S; WILLIAMS, JOSEPH; CHRISTOBER, IGNATIOUS JOHNSON; MARSHALL, JEFFREY S.; MAYNATTAMAI, NAGENDRA; DAVIS, DALE
To: JUNIPER NETWORKS, INC.
Reel/Frame 060115/0084 →
Priority Claims (1)
IN 202141044924 · Oct 4, 2021 · national
Continuity (1)
Related Publication 20230123775A1 · Apr 20, 2023
References Cited (35)
US 9571394B1 · Sivaramakrishnan et al. · 2017 [cited by applicant]
US 9942148B1 · Sivaramakrishnan et al. · 2018 [cited by applicant]
US 10728121B1 · Chitalia et al. · 2020 [cited by applicant]
US 10944691B1 · Raut et al. · 2021 [cited by applicant]
US 10999251B2 · Miriyala et al. · 2021 [cited by applicant]
US 11108629B1 · Cahyadi · 2021 [cited by examiner]
US 11394750B1 · Isberner et al. · 2022 [cited by applicant]
US 20180288002A1 · Petrick et al. · 2018 [cited by applicant]
US 20190158541A1 · Miriyala et al. · 2019 [cited by applicant]
US 20190273683A1 · Jiang et al. · 2019 [cited by applicant]
US 20190342304A1 · Weintraub et al. · 2019 [cited by applicant]
US 20200137113A1 · Thomas · 2020 [cited by applicant]
US 20200213227A1 · Pianigiani · 2020 [cited by examiner]
US 20210218652A1 · Raut · 2021 [cited by examiner]
US 20220019455A1 · Cao et al. · 2022 [cited by applicant]
US 20220229678A1 · Beard · 2022 [cited by examiner]
US 20220237048A1 · Wiggers · 2022 [cited by examiner]
US 20220321495A1 · Liu et al. · 2022 [cited by applicant]
CN 103997513A · 2014 [cited by applicant]
EP 3629533A1 · 2020 [cited by applicant]
WO 2013184846A1 · 2013 [cited by applicant]
Jang, “Kubernetes Custom Resource Definition (CRD)” (Year: 2020). [cited by examiner]
W. Marques, F. Rubin, P. de Souza, R. de Oliveira and T. Ferreto, “SABER: an Infrastructure-Agnostic Benchmark Tool for Elasticity Evaluation on Cloud Foundry Based Platforms,” 2020 International Conference on Informati… [cited by examiner]
Oresta, F., Cerroni, W., Foschini, L., Davoli, G., Contoli, C., Corradi, A., & Callegati, F. (2018). Improving OpenStack networking: Advantages and performance of native SDN integration doi:http://dx.doi.org/10.1109/ICC… [cited by examiner]
C. Manso, R. Vilalta, R. Muñoz, R. Casellas and R. Martínez, “Scalable for Cloud-native Transport SDN Controller Using GNPy and Machine Learning techniques for QoT estimation,” 2021 Optical Fiber Communications Conferen… [cited by examiner]
Kn et al., “Day One: Contrail DPDK vRouter,” Juniper Networks, Retrieved from: https://www.juniper.net/documentation/en_US/day-one-books/contrail-DPDK.pdf, Jan. 21, 2021, 194 pp. [cited by applicant]
Song et al., “Day One: Building Containers With Kubernetes and Contrail,” Juniper Networks, Version History: v1, Nov. 2019, 283 pp. [cited by applicant]
U.S. Appl. No. 17/649,632, filed Feb. 1, 2022, naming inventors Akkipeddi et al. [cited by applicant]
Doerrfeld, “Ways to Extend the Core Kubernetes API”, Container Journal, Oct. 2018, 5 pp., Retrieved from the Internet on Dec. 7, 2022 from URL: https://containerjournal.com/topics/container-management/ways-to-extend-the… [cited by applicant]
Extended Search Report from counterpart European Application No. 22188195.6 dated Dec. 16, 2022, 12 pp. [cited by applicant]
U.S. Appl. No. 17/657,603, filed Mar. 31, 2022, naming inventors Miriyala al. [cited by applicant]
Response to Extended Search Report dated Dec. 16, 2022, from counterpart European Application No. 22188195.6 filed Oct. 4, 2023, 11 pp. [cited by applicant]
First Office Action and Search Report, and translation thereof, from counterpart Chinese Application No. 202210939589.6 dated May 12, 2024, 12 pp. [cited by applicant]
Yadav, Parth, and Vipin Kumar Rathi. “KupenStack: Kubernetes based Cloud Native OpenStack.” arXiv preprint arXiv:2106.02956. (Year: 2021). [cited by applicant]
Yilmaz, Onur. “Chapter 4—Extending the Kurbernetes API”. Excerpt from Extending Kubernetes. apress. (Year: 2021). [cited by applicant]