State extractor for middlebox management system
AssigneeWisconsin Alumni Research Foundation
InventorsSrinivasa Aditya Akella, Junaid Khalid, Aaron Robert Gember-Jacobson
Life of this patent
Estimating the term…
Abstract
A method of automatically identifying state information in different middlebox programs first identifies relevant program portions by expanding outward from a packet processing loop to statements dependent either by control or data dependency on that packet processing loop. Persistent variables in the statements are then collected and optionally winnowed by whether they are “used” or modified by those statements. The identified state variables may be segregated according to flow-spaces and/or output function so that a request for state data may be tailored precisely to the necessary state data greatly reducing network burden in state data transfer.
Claims12
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.
Dependencies are inferred from the claim text.