Patent ID: 11895177
Assignee: WISCONSIN ALUMNI RESEARCH FOUNDATION
Field: Digital communication (Electrical engineering)
Classification: CPC H | IPC H

Claim 0:
1. A method of extracting state variables from a middlebox program of a type used in a cloud computing architecture implementing virtual machines, the cloud computing architecture further being controlled by a cloud application that dynamically allocates virtual machines to different enterprises and monitors costs of the virtual machines against an account for each enterprise, the virtual machines including application virtual machines executing application programs to implement an application for the enterprise and middlebox virtual machines executing middlebox programs enforcing rules related to a transport of data between application virtual machines,
the method comprising the steps of executing a program on an electronic computer to:
(a) receive a middlebox program separate from the program executed on the electronic computer;
(b) analyze the middlebox program by reviewing instructions of the middlebox program to identify, in the middlebox program, a set of top-level variables including state variables by selecting, through this analysis, variables of the middlebox program that are persistent in the middlebox program after a packet processing loop, the packet processing loop executing for each packet received by the middlebox program, where the top-level variables are modified by a first given loop of the packet processing loop receiving a first packet and persistent during a second subsequent given loop of the packet processing loop receiving a second packet; and
(c) use the analysis of (b) to generate a program portion interacting with the middlebox program as received to provide the identified top-level variables in response to a request to the middlebox program for state data affecting the transport of future data during use of the given middlebox program in a cloud computing architecture;
wherein the packet processing loop is identified using a standard library name of a library providing a packet processing loop.