IP Library › Granted Patent US 12,580,811
Granted Patent B2
US 12,580,811 · App. 18/588,676 · Granted Mar 17, 2026

Highly scalable container network interface operation to reduce startup overhead of functions

Inventors: Douglas Smith (Bolton, VT); Huamin Chen (Westboro, MA); Ricardo Noriega De Soto (Madrid, ES)
Assignee: Red Hat, Inc.
H04L41/0809G06F16/2379H04L41/20
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,580,811
App. No.
18/588,676
Granted
Mar 17, 2026
Kind
B2
Abstract

Systems and methods for providing a container network interface (CNI) specification that has been modified with a set of annotations, a set of operations, and a set of policies to provide network configuration reuse, network configuration replication, and database management (garbage collection) functionality are described. In response to receiving a request to initiate a function, whether the function is to be reused or replicated may be determined. In response to determining that the function is to be reused, calling a container network interface (CNI) plugin with a first operation that decouples database functions from network functions, so that the database can cache and reuse a network configuration generated for the function. In response to determining that the function is to be replicated, calling the CNI plugin with a second operation to create the network configuration and generate and store a template of the network configuration in the database.

Claims (68)

1 . A method comprising:

in response to receiving a request to initiate a function, determining whether the function is to be reused or replicated;

in response to determining that the function is to be reused, calling a container network interface (CNI) plugin comprising a set of operations for reusing and replicating network configurations with a first operation of the set of operations to:

create a network configuration for the function; and

persist the network configuration in a database for reuse; and

in response to determining that the function is to be replicated, calling the CNI plugin with a second operation of the set of operations to:

create the network configuration for the function;

generate a template of the network configuration; and

store the template in the database.

2 . The method of claim 1 , wherein the first operation decouples the persisting of the network configuration in the database from implementation of the network configuration on a compute node such that requests to reuse the function do not recreate the network configuration.

3 . The method of claim 2 , wherein the function is to be reused and the network configuration is persisted in the database in an inactive state, the method further comprising:

in response to receiving a request to reuse the function, calling the CNI plugin with a third operation of the set of operations to activate the network configuration on a compute node on which the function is to be reused.

4 . The method of claim 1 , wherein the template comprises a set of operations that are independent of a compute node on which they are to execute, and wherein the set of operations generate the network configuration in response to receiving as an input variable, the compute node on which they are to execute.

5 . The method of claim 4 , wherein the function is to be replicated and the method further comprises:

for each instance of the function:

determining a compute node on which the instance of the function is to execute; and

calling the CNI plugin with a third operation of the set of operations to generate the network configuration by inputting to the template the determined compute node on which the instance of the function is to execute.

6 . The method of claim 1 , wherein the CNI plugin further comprises a database management policy and the database comprises a plurality of network configurations, the method further comprising:

analyzing each of the plurality of network configurations in the database in accordance with the database management policy to determine one or more network configurations that are not associated with an active function; and

erasing each of the one or more network configurations that are not associated with an active function.

7 . The method of claim 6 , further comprising:

analyzing each of the plurality of network configurations in the database in accordance with the database management policy to determine one or more network configurations that have been activated more than a threshold number of times; and

erasing each of the one or more network configurations that have been activated more than the threshold number of times.

8 . A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

in response to receiving a request to initiate a function, determine whether the function is to be reused or replicated;

in response to determining that the function is to be reused, call a container network interface (CNI) plugin comprising a set of operations for reusing and replicating network configurations with a first operation of the set of operations to:

create a network configuration for the function; and

persist the network configuration in a database for reuse; and

in response to determining that the function is to be replicated, call the CNI plugin with a second operation of the set of operations to:

create the network configuration for the function;

generate a template of the network configuration; and

store the template in the database.

9 . The system of claim 8 , wherein the first operation decouples the persisting of the network configuration in the database from implementation of the network configuration on a compute node such that requests to reuse the function do not recreate the network configuration.

10 . The system of claim 9 , wherein the function is to be reused and the network configuration is persisted in the database in an inactive state, and the processing device is further to:

in response to receiving a request to reuse the function, call the CNI plugin with a third operation of the set of operations to activate the network configuration on a compute node on which the function is to be reused.

11 . The system of claim 8 , wherein the template comprises a set of operations that are independent of a compute node on which they are to execute, and wherein the set of operations generate the network configuration in response to receiving as an input variable, the compute node on which they are to execute.

12 . The system of claim 11 , wherein the function is to be replicated and the processing device is further to:

for each instance of the function:

determine a compute node on which the instance of the function is to execute; and

call the CNI plugin with a third operation of the set of operations to generate the network configuration by inputting to the template the determined compute node on which the instance of the function is to execute.

13 . The system of claim 8 , wherein the CNI plugin further comprises a database management policy and the database comprises a plurality of network configurations, and the processing device is further to:

analyze each of the plurality of network configurations in the database in accordance with the database management policy to determine one or more network configurations that are not associated with an active function; and

erase each of the one or more network configurations that are not associated with an active function.

14 . The system of claim 13 , wherein the processing device is further to:

analyze each of the plurality of network configurations in the database in accordance with the database management policy to determine one or more network configurations that have been activated more than a threshold number of times; and

erase each of the one or more network configurations that have been activated more than the threshold number of times.

15 . A non-transitory computer-readable medium having instructions stored thereon which, when executed by a processing device, cause the processing device to:

provide a container network interface (CNI) specification comprising a set of operations for use by a CNI plugin to reuse and replicate network configurations; and

in response to receiving a request to initiate a function, call the CNI plugin with an operation of the set of operations, the operation selected based on whether the function is to be reused or replicated, and wherein the set of operations comprises:

a first operation to decouple persisting of network configurations in a database from implementation of network configurations on a compute node; and

a second operation to generate templates based on network configurations.

16 . The non-transitory computer-readable medium of claim 15 , wherein the function is to be reused, and the processing device calls the CNI plugin with the first operation to:

generate a network configuration for the function; and

persist the network configuration in the database, wherein requests to reuse the function do not recreate the network configuration.

17 . The non-transitory computer-readable medium of claim 16 wherein the network configuration is persisted in the database in an inactive state, and the processing device is further to:

in response to receiving a request to reuse the function, call the CNI plugin with a third operation of the set of operations to activate the network configuration on a compute node on which the function is to be reused.

18 . The non-transitory computer-readable medium of claim 15 , wherein the function is to be replicated, and the processing device calls the CNI plugin with the second operation to:

generate a network configuration for the function; and

generate a template based on the network configuration, wherein the template comprises a set of operations that are independent of a compute node on which they are to execute, the set of operations to generate the network configuration in response to receiving as an input variable, the compute node on which they are to execute.

19 . The non-transitory computer-readable medium of claim 18 , wherein the processing device is further to:

for each instance of the function to be replicated:

determine a compute node on which the instance of the function is to execute; and

call the CNI plugin with a third operation of the set of operations to generate the network configuration by inputting to the template the determined compute node on which the instance of the function is to execute.

20 . The non-transitory computer-readable medium of claim 15 , wherein the CNI specification further comprises a database management policy and the database comprises a plurality of network configurations, the processing device further to:

analyze each of the plurality of network configurations in the database in accordance with the database management policy to determine one or more network configurations that are not associated with an active function; and

erase each of the one or more network configurations that are not associated with an active function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2024
From: CHEN, HUAMIN; DE SOTO, RICARDO NORIEGA; SMITH, DOUGLAS
To: RED HAT, INC.
Reel/Frame 067152/0501 →
Continuity (2)
Continuation 17468569 · Sep 7, 2021
Related Publication 20240195685A1 · Jun 13, 2024
References Cited (18)
US 10324701B1 · Stickle et al. · 2019 [cited by applicant]
US 10944691B1 · Raut et al. · 2021 [cited by applicant]
US 20070043803A1 · Whitehouse et al. · 2007 [cited by applicant]
US 20080028001A1 · Erl · 2008 [cited by applicant]
US 20110084840A1 · Mercier et al. · 2011 [cited by applicant]
US 20180375728A1 · Gangil et al. · 2018 [cited by applicant]
US 20200081745A1 · Cybulski et al. · 2020 [cited by applicant]
US 20200120120A1 · Cybulski · 2020 [cited by applicant]
US 20200322231A1 · Llorca et al. · 2020 [cited by applicant]
US 20210141655A1 · Gamage et al. · 2021 [cited by applicant]
US 20210263779A1 · Haghighat · 2021 [cited by examiner]
US 20220038554A1 · Merwaday · 2022 [cited by examiner]
Qi et al., “Assessing Container Network IInterface Plugins: Functionallity Performance, and Scalability”, IEEE Transactions on Network and Service Management, vol. 18, Issue 1, Mar. 2021. [cited by examiner]
Abasi et al., “A Performance Comparisoin of Container Networking Allternatives”, IEEE Network, vol. 33, Issue:4, Jul./Aug. 2019, pp. 178-185, IEEE Publishing. [cited by examiner]
Zeng et al, “Measurment and Evaluation for Docker Container Networking”, Iinternational Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery, Oct. 12, 2017. [cited by examiner]
Suo et al., “An Analysis and Empirical Study of Container Networks”, IEEE Infocom 2018, Apr. 16, 2018, IEEE Publishing. [cited by examiner]
Microsoft. “Azure Virtual Network Container Network Interface Plug-in” (2018), 1002 pages. [cited by applicant]
Shelby Thomas, Lixiang Ao, Geoffrey M. Voelker, and George Porter. “Particle: Ephemeral Endpoints for Serverless Networking”, In ACM Symposium on Cloud Computing (SoCC '20), Oct. 19-21, 2020, Virtual Event, USA. ACM, Ne… [cited by applicant]