IP Library Granted Patent US 11,620,151
Granted Patent B2
US 11,620,151 · App. 17/028,603 · Granted Apr 4, 2023

Flow rule installation latency testing in software defined networks

Inventors: Sai Sindhur Malleni (Marlborough, MA); Venkata Anil Kommaddi (Bangalore, IN)
Assignee: RED HAT, INC.
G06F9/45558G06F11/3612H04L45/586H04L61/5007H04L67/01G06F2009/4557G06F2009/45591G06F2009/45595
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,620,151
App. No.
17/028,603
Granted
Apr 4, 2023
Kind
B2
Abstract

Systems and methods for flow rule installation latency testing in software defined networks. In some examples, a hypervisor may deploy a virtual network switch configured to route data to virtualized computing environments executing on the hypervisor. A client process may be deployed in a first container executing on the hypervisor. A server process may be deployed on the hypervisor. The client process may receive a first request to deploy a virtual machine on the hypervisor. The client process may generate first instructions configured to cause the server process to generate a first namespace. The server process may generate the first namespace and may communicatively couple the first namespace to the virtual network switch.

Claims (82)

1. A method, comprising:

deploying, by a hypervisor, a virtual network switch configured to route data to and from virtualized computing environments executing on the hypervisor;

deploying a client process in a first container executing on the hypervisor;

deploying a server process on the hypervisor;

receiving, by the client process, a first request to deploy a first virtual machine on the hypervisor;

generating, by the client process in response to the first request, first instructions configured to cause the server process to generate a first namespace;

generating, by the server process, the first namespace;

communicatively coupling the first namespace to the virtual network switch by the server process;

sending, by a testing system, a request to the first namespace via the virtual network switch;

receiving, by the testing system, a response to the request from the first namespace; and

determining an amount of time elapsed between the sending of the request and the receiving of the response.

2. The method of claim 1 , further comprising:

sending, by the client process, port request data comprising instructions to generate a first port in the first namespace;

receiving, by the server process, the port request data; and

generating, by the server process, the first port in the first namespace.

3. The method of claim 2 , further comprising:

parsing, by the server process, the port request data to determine an internet protocol (IP) address and IP routing information specified by the port request data; and

connecting the IP address to the first port in the first namespace.

4. The method of claim 1 , further comprising:

receiving, by the client process, a plurality of second requests, wherein each of the plurality of second requests is a request to deploy a respective virtual machine;

deploying, by the server process in response to the plurality of second requests, a plurality of namespaces; and

communicatively coupling each of the plurality of namespaces to the virtual network switch.

5. The method of claim 4 , further comprising:

determining an amount of time between generation of the plurality of namespaces and establishing network connectivity with the plurality of namespaces via the virtual network switch.

6. The method of claim 1 , further comprising:

receiving, by the client process, a second request to deprovision the first virtual machine;

generating, by the client process in response to the second request, second instructions configured to cause the server process to delete the first namespace; and

deleting, by the server process, the first namespace in response to the second instructions.

7. The method of claim 1 , further comprising:

receiving, by the server process, second instructions specifying the first namespace, a media access control (MAC) address, an internet protocol (IP) address, and IP routing information;

generating a first port in the first namespace with the MAC address; and

connecting the first port to the IP address.

8. The method of claim 1 , wherein the client process emulates a driver that intercepts virtual machine instantiation requests and generates instructions configured to cause the server process to deploy namespaces on the hypervisor.

9. A system, comprising:

at least one processor; and

at least one non-transitory computer-readable memory configured in communication with the at least one processor, wherein the at least one processor is effective to execute a hypervisor;

the hypervisor configured to:

deploy a virtual network switch configured to route data to and from virtualized computing environments executing on the hypervisor;

deploy a client process in a first container executing on the hypervisor; and

deploy a server process on the hypervisor;

the client process configured to:

receive a first request to deploy a first virtual machine on the hypervisor;

generate, in response to the first request, first instructions configured to cause the server process to generate a first namespace; and

receive a plurality of second requests, wherein each of the plurality of second requests is a request to deploy a respective virtual machine; and

the server process configured to:

generate the first namespace in response to the first instructions;

communicatively couple the first namespace to the virtual network switch;

in response to the plurality of second requests, deploy a plurality of namespaces;

and

communicatively couple each of the plurality of namespaces to the virtual network switch.

10. The system of claim 9 , wherein:

the client process is further configured to send port request data to the server process, the port request data comprising instructions to generate a first port in the first namespace; and

the server process is further configured to generate the first port in the first namespace.

11. The system of claim 10 , wherein the server process is further configured to:

parse the port request data to determine an internet protocol (IP) address and IP routing information specified by the port request data; and

connect the IP address to the first port in the first namespace.

12. The system of claim 9 , further comprising a testing system, wherein the testing system is configured to:

send a request to the first namespace via the virtual network switch;

receive a response to the request from the first namespace; and

determine an amount of time elapsed between sending the request and receiving the response.

13. The system of claim 9 , wherein the at least one processor is further configured to determine an amount of time between instantiation of the plurality of namespaces and establishing network connectivity with the plurality of namespaces via the virtual network switch.

14. The system of claim 9 , wherein the at least one processor is configured to execute a first compute service within the first container, wherein the first request to deploy the first virtual machine on the hypervisor is received from the first compute service.

15. The system of claim 9 , wherein the server process is further configured to:

receive, by the server process, second instructions specifying the first namespace, a media access control (MAC) address, an internet protocol (IP) address, and IP routing information;

generate a first port in the first namespace with the MAC address; and

connect the first port to the IP address.

16. The system of claim 9 , wherein the client process emulates a driver that intercepts virtual machine instantiation requests and generates instructions configured to cause the server process to deploy namespaces on the hypervisor.

17. A non-transitory machine readable medium storing a program, which when executed by at least one processor causes the at least one processor to:

deploy, by a hypervisor, a virtual network switch configured to route data to and from virtualized computing environments executing on the hypervisor;

execute first code configured to instantiate a client process in a first container;

execute second code configured to instantiate a server process on the hypervisor;

receive, by the client process, a first request to deploy a first virtual machine on the hypervisor;

generate, by the client process in response to the first request, first instructions configured to cause the server process to generate a first namespace;

generate, by the server process, the first namespace;

communicatively couple the first namespace to the virtual network switch by the server process;

receive, by the client process, a second request to deprovision the first virtual machine;

generate, by the client process in response to the second request, second instructions configured to cause the server process to delete the first namespace; and

delete, by the server process, the first namespace in response to the second instructions.

18. The non-transitory machine readable medium of claim 17 , which, when executed by the at least one processor, further causes the at least one processor to:

send, by the client process, port request data comprising instructions to generate a first port in the first namespace;

receive, by the server process, the port request data; and

generate, by the server process the first port in the first namespace.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2020
From: MALLENI, SAI SINDHUR; KOMMADDI, VENKATA ANIL
To: RED HAT, INC.
Reel/Frame 053849/0062 →
Continuity (1)
Related Publication 20220091868A1 · Mar 24, 2022