IP Library › Granted Patent US 12,250,117
Granted Patent B2
US 12,250,117 · App. 18/147,599 · Granted Mar 11, 2025

Intent-driven configuration of a cloud-native router

Inventors: Michael Henkel (Saratoga, CA); Richard Roberts (Rennes, FR)
Assignee: Juniper Networks, Inc.
H04L41/0816H04L41/0866H04L41/0894
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,250,117
App. No.
18/147,599
Granted
Mar 11, 2025
Kind
B2
Abstract

In general, techniques are described for leveraging a configuration framework for an orchestration platform to configure software that implements a control plane for a containerized network router in a cloud-native SDN architecture. In an example, a method comprises receiving, by a server executing a containerized routing protocol process, configuration data generated from a Network Resource configuration object managed by a custom resource controller; configuring, by the server, the containerized routing protocol process with the configuration data; and programming, by the containerized routing protocol process, based on the configuration data generated from the Network Resource configuration object, a virtual router data plane to forward network traffic.

Claims (52)

1. A software-defined networking (SDN) architecture system, comprising:

a network controller comprising processing circuitry and a custom resource controller for a Network Resource custom resource for configuring containerized routing protocol processes,

wherein the custom resource controller for the Network Resource custom resource is configured for execution by the processing circuitry to, in response to detecting a configuration update for a Network Resource configuration object that is an instance of the Network Resource custom resource, reconcile an intended state of the Network Resource configuration object by sending configuration data generated from the Network Resource configuration object to a server that executes an instance of a containerized routing protocol process; and

the server, wherein the server is configured to configure, with the configuration data generated from the Network Resource configuration object, the instance of the containerized routing protocol process that executes on the server.

2. The SDN architecture system of claim 1 ,

wherein the configuration data generated from the Network Resource configuration object comprises abstract configuration data for a router.

3. The SDN architecture system of claim 2 , further comprising a configuration driver executed by the server, the configuration driver configured to:

translate the abstract configuration data to configuration data structured to conform to a data model for the containerized routing protocol processes; and

configure the instance of the containerized routing protocol process with the configuration data.

4. The SDN architecture system of claim 1 ,

wherein the network controller further comprises a configuration node configured for execution by the processing circuitry, and

wherein the configuration node includes a custom application programming interface (API) server to process request for operations on custom resources for SDN architecture configuration, the custom resources including a Network Resource corresponding to the Network Resource configuration object.

5. The SDN architecture system of claim 4 ,

wherein the custom API server is configured to receive a request for an operation on an instance of the Network Resource and apply the operation to create intended state data for the instance of the Network Resource in a configuration store, and

wherein the custom resource controller is configured to, in response to creation of the intended state data, reconcile actual state of the instance of the Network Resource to the intended state data in the configuration store.

6. The SDN architecture system of claim 1 , wherein the network controller is implemented by an orchestration system cluster comprising the server.

7. The SDN architecture system of claim 1 ,

wherein the network controller is configured to receive a request to create a virtual execution element on the server,

wherein, in response to the request to create the virtual execution element on the server, the network controller causes a container network interface plugin (CNI) to notify an agent for the instance of the containerized routing protocol process,

wherein the agent obtains virtual network interface configuration data for the virtual execution element from the custom resource controller and provides the virtual network interface configuration data to the CNI, and

wherein the CNI configures a virtual network interface for the virtual execution element using the virtual network interface configuration data for the virtual execution element.

8. The SDN architecture system of claim 7 , wherein the network controller comprises an SDN controller manager configured to:

in response to detecting a request to create the virtual execution element on the server, create the Network Resource configuration object.

9. The SDN architecture system of claim 7 , wherein the Network Resource configuration object is for configuring one of a virtual network interface, virtual network, or Internet Protocol address.

10. The SDN architecture system of claim 7 , wherein the agent subscribes to the custom resource controller to receive the configuration data generated from the Network Resource configuration object.

11. The SDN architecture system of claim 7 , wherein the Network Resource configuration object is an instance of a Routing Instance.

12. The SDN architecture system of claim 1 ,

wherein an agent for the instance of the containerized routing protocol process obtains a configuration object for a BGPRouter resource, and

wherein the agent configures the instance of the containerized routing protocol process with configuration data generated from the configuration object.

13. A method comprising:

receiving, by a server executing a containerized routing protocol process and a virtual router data plane, configuration data generated from a Network Resource configuration object managed by a custom resource controller;

configuring, by the server, the containerized routing protocol process with the configuration data generated from the Network Resource configuration object;

executing, by the containerized routing protocol process, a routing protocol to advertise reachability for an Internet Protocol (IP) address; and

programming, by the containerized routing protocol process, based on the configuration data generated from the Network Resource configuration object, the virtual router data plane to forward network traffic.

14. The method of claim 13 ,

wherein the configuration data generated from the Network Resource configuration object comprises abstract configuration data for a router.

15. The method of claim 14 , further comprising:

translating the abstract configuration data to configuration data structured to conform to a data model for the containerized routing protocol process; and

configuring the containerized routing protocol process with the configuration data structured to conform to the data model for the containerized routing protocol process.

16. The method of claim 13 ,

notifying, by a container network interface plugin (CNI) executing on the server, an agent for the containerized routing protocol process of a Pod deployment, the agent executing on the server;

obtaining, by the agent, virtual network interface configuration data for the Pod from the custom resource controller and providing the virtual network interface configuration data for the Pod to the CNI; and

configuring, by the CNI, a virtual network interface for the Pod using the virtual network interface configuration data for the Pod.

17. The method of claim 13 , further comprising:

subscribing, by an agent for the containerized routing protocol process, to the custom resource controller to receive the configuration data generated from the Network Resource configuration object.

18. The method of claim 13 , further comprising:

obtaining, by an agent for the containerized routing protocol process, a configuration object for a BGPRouter resource, wherein the agent is executing on the server; and

configuring, by the agent, the containerized routing protocol process with configuration data generated from the configuration object.

19. A method comprising:

reconciling, by a custom resource controller for a Network Resource custom resource, in response to detecting a configuration update for a Network Resource configuration object that is an instance of the Network Resource custom resource, an intended state of the Network Resource configuration object by sending configuration data generated from the Network Resource configuration object to a server that executes an instance of a containerized routing protocol process; and

configuring, with the server, with the configuration data generated from the Network Resource configuration object, the instance of the containerized routing protocol process that executes on the server.

20. The method of claim 19 , wherein the configuration data generated from the Network Resource configuration object comprises abstract configuration data for a router.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2023
From: ROBERTS, RICHARD
To: JUNIPER NETWORKS, INC.
Reel/Frame 062344/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2022
From: HENKEL, MICHAEL
To: JUNIPER NETWORKS, INC.
Reel/Frame 062228/0391 →
Continuity (2)
Provisional Application 63373523 · Aug 25, 2022
Related Publication 20240073087A1 · Feb 29, 2024
References Cited (30)
US 9571394B1 · Sivaramakrishnan et al. · 2017 [cited by applicant]
US 11575572B2 · Nagaprakash et al. · 2023 [cited by applicant]
US 20200076685A1 · Vaidya · 2020 [cited by examiner]
US 20200213227A1 · Pianigiani · 2020 [cited by examiner]
US 20200314015A1 · Mariappan · 2020 [cited by examiner]
US 20200344147A1 · Pianigiani · 2020 [cited by examiner]
US 20210218652A1 · Raut · 2021 [cited by examiner]
US 20210314239A1 · Shen · 2021 [cited by examiner]
US 20210314388A1 · Zhou · 2021 [cited by examiner]
US 20220035651A1 · Maurya et al. · 2022 [cited by applicant]
US 20220038311A1 · Shen · 2022 [cited by examiner]
US 20220158926A1 · Wennerstrom et al. · 2022 [cited by applicant]
US 20220229678A1 · Beard · 2022 [cited by examiner]
US 20220278927A1 · Mariappan et al. · 2022 [cited by applicant]
US 20220279420A1 · Akkipeddi et al. · 2022 [cited by applicant]
US 20230123775A1 · Sivakumar et al. · 2023 [cited by applicant]
EP 2859694A1 · 2015 [cited by applicant]
EP 3675423A1 · 2020 [cited by applicant]
EP 3731466A1 · 2020 [cited by applicant]
WO 20130184846A1 · 2013 [cited by applicant]
Kubernetes Custom Resource Definition CRD, github, Feb. 11, 2020 (Year: 2020). [cited by examiner]
Kn et al., “Day One: Contrail DPDK vROUTER”, Juniper Networks, Jan. 21, 2021, 196 pp., URL: https://www.juniper.net/documentation/en_US/day-one-books/contrail-DPDK.pdf. [cited by applicant]
Kubernetes, “Assign CPU Resources to Containers and Pods”, Mar. 30, 2023, 6 pp., URL: https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/. [cited by applicant]
Kubernetes, “Control CPU Management Policies on the Node”, May 22, 2023, 5 pp., URL: https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/. [cited by applicant]
Rosen et al., “BGP/MPLS IP Virtual Private Networks (VPNs)”, Network Working Group, Feb. 1, 2006, 47 pp., URL: https://www.rfc-editor.org/rfc/pdfrfc/rfc4364.txt.pdf. [cited by applicant]
U.S. Appl. No. 18/334,979, filed Jun. 14, 2023, naming inventors Sharma et al. [cited by applicant]
Extended Search Report from counterpart European Application No. 23167783.2 dated Dec. 12, 2023, 10 pp. [cited by applicant]
Juniper, “VPC to CN2 Communication in AWS EKS”, Juniper Networks, Inc., Jul. 19, 2023, 8 pp., Retrieved from the Internet on Mar. 13, 2024 from URL: https://www.juniper.net/documentation/US/en/software/cn-cloud-native23… [cited by applicant]
Kishore et al., “Day One: Deploy Cloud-Native Contrail Networking as a CNI for Kubernetes”, Juniper Networks, Inc., Apr. 1, 2023, 83 pp. [cited by applicant]
Response to Extended Search Report dated Dec. 12, 2023, from counterpart European Application No. 23167783.2 filed Aug. 28, 2024, 34 pp. [cited by applicant]