Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 201841000647 filed in India entitled “PREDICTIVE ANALYSIS IN A SOFTWARE DEFINED NETWORK”, on Jan. 5, 2018, by NICIRA, INC., which is herein incorporated in its entirety by reference for all purposes.
A software defined network (SDN) may be configured by implementing rules and configurations defining the topology of the SDN overlay network. This may also include configuring network security policies for networking and non-networking assets such as workloads, virtual machines, resource pools, and the like.
A network configuration may be modified from-time-to-time, and the modifications may impact the security and usability of the network. For example, reconfiguring firewall rules or modifying associations between the rules and the tags of virtual machines may prevent some users from accessing some network resources.
Predicting the impact that a topology reconfiguration may have on the network is usually difficult. For example, predicting whether adding a new security group to a firewall rule would not impact the connectivity between some virtual machines in the network may be quite difficult, especially if the network implements hundreds or thousands of virtual machines.
Techniques are described herein for performing a predictive analysis of proposed modifications to an SDN. In an embodiment, a method comprises receiving a plurality of entity logical associations that are captured in a set of rules implemented in the SDN. The entity logical associations represent logical relationships between entities, tags, firewall rules, encryption rules, and the like. For example, a logical association may represent a logical relationship between a virtual machine tag and a firewall rule, or a logical relationship between a security group tag and a distributed network encryption rule.
A set of rules and the corresponding entity logical associations may be used to generate a data model to represent the network topology. The model may be used to simulate the effects that proposed modifications to the topology may have on the logical associations and the rules. For example, upon receiving a proposed modification, the model may be executed to simulate a hypothetical implementation of the proposed modification within the model. This may include transforming the model from one state, in which the proposed modification has not yet been implemented, to another state, in which the proposed modification has been hypothetically implemented.
In an embodiment, upon receiving a proposed modification, a data model of the network is executed to simulate a hypothetical implementation of the proposed modification, and to predict whether the proposed modification could have any impact on the network connectivity and/or security. The prediction is generated without implementing the proposed modification in the network and without modifying the set of rules or the associations implemented in the network. The prediction may be generated by performing a predictive analysis of the data model as the model is subjected to the proposed modification. The prediction may provide information identifying entity associations that may be impacted if the proposed modification is implemented in the network. Such associations are referred to herein as impacted entity associations.
A prediction may be communicated to system administrators, network managers, and/or users. For example, the prediction may be displayed on display devices, or included in electronic mails (emails) transmitted to the administrators. Upon receiving a prediction, an administrator may decide whether the proposed modification is to be implemented or not. The administrator may communicate the decision to an SDN manager via a graphical user interface (GUI) by selecting a menu item, or a button, that is displayed in the GUI and corresponds to the decision. The decision may indicate that the proposed modification is to be accepted, or that the proposed modification is to be rejected. The decision is referred to herein as input.
Upon receiving a decision from an administrator, the SDN manager parses the decision to determine whether the proposed modification is to be accepted or rejected. If it is determined that the proposed modification is to be accepted, then an updated set of rules for the SDN is generated. The updated set of rules may be generated by updating the set of rules based on the proposed modification. This may include redefining some of the entity logical associations that were captured in the set of rules, and encoding the redefined associations in an updated set of rules.
However, if it is determined that the proposed modification is to be rejected, then the set of rules is not updated at this time. Instead, a message may be displayed on a display device to indicate that the proposed modification has been rejected. The message may be displayed in a GUI, and/or transmitted via emails to system administrators, managers, and/or users.
In an embodiment, an approach allows visualizing logical associations defined between the network and non-network entities and captured in a set of rules in the SDN. The logical associations may for example, capture the relationships between virtual machine tags and distributed network encryption (DNE) rules, or relationships between security group tags and firewall rules.
The process of generating a visualization of the logical associations may start with generating a digital representation of the logical associations. The digital representation may correspond to a data model that was described above. The digital representation of the logical entities may identify the relationships between networking and non-networking assets.
From a digital representation of the logical associations, a graphical representation of the logical association may be generated. The graphical representation may include graphical objects that correspond to the entities included in the logical associations. The graphical representation may also include links that correspond to the logical associations between the entities. For example, an association between a virtual machine tag and a firewall rule may be graphically represented using a tag object corresponding to the virtual machine tag, a firewall object corresponding to the firewall rule, and a link between the tag object and the firewall object that corresponds to the logical association between the virtual machine tag and the firewall rule. The graphical representation of the logical associations that is defined prior to proposing a modification to the SDN is referred to herein as an initial graphical representation.
In addition to generating an initial graphical representation, an overlay graphical representation may be generated. The overlay graphical representation depicts the logical associations that could be defined if a proposed modification was hypothetically implemented in the SDN. The process of generating an overlay graphical representation may start from generating an overlay digital representation.
An overlay digital representation is generated to capture logical associations between the network and non-network entities as if a proposed modification was hypothetically implemented in the network. The overlay digital representation may be captured in a data model that has been subjected to a simulation process using the proposed modification. The simulation may include executing the model by applying the proposed modification to the model.
From an overlay digital representation, an overlay graphical representation of the logical associations may be generated. The overlay graphical representation may include graphical objects that correspond to the entities included in the simulated logical associations. The overlay graphical representation may also include links that correspond to the simulated logical associations. For example, a simulated association between a virtual machine tag and a firewall rule may be graphically represented using a tag object corresponding to the virtual machine, a firewall object corresponding to the firewall rule, and a link that corresponds to a simulated association between the tag object and the firewall object.
An initial graphical representation and an overlay graphical representation may be displayed on a display device in many different ways. For example, the initial graphical representation and the overlay graphical representation may be displayed next to each other on a display screen of the display device. According to another example, the overlay graphical representation may be displayed as an overlay over the initial graphical representation. In this example, the entities that might be impacted if the proposed modification was hypothetically implemented may be color-coded differently in the overlay graphical representation than the entities in the initial graphical representation.
In the drawings:
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the presently described method. It will be apparent, however, that the present approach may be practiced without these specific details. In other instances, well-known structures and devices are shown in a block diagram form to avoid unnecessarily obscuring the present approach.
Centralized management plane 10 may include an SDN manager 20 and a datacenter manager 22. SDN manager 20 may be configured to distribute various rules and policies to management plane agents, and receive update information from the agents. Specifically, SDN 20 may be configured to perform a predictive analysis of effects that modifications proposed to the network topology may have on the network connectivity and security.
Datacenter manager 22 may be configured to collect information about events, actions and tasks occurring or executed in a datacenter, and communicate the collected information to SDN manager 20.
Host 110 may include a hypervisor 160, hardware components 180, and other components not depicted in
Host 1110 may include a hypervisor 1160, hardware components 1180, and other components not depicted in
Hardware components 180/1180 may include hardware processors, memory units, data storage units, and physical network interfaces, some of which are not depicted in
Hypervisors 160, 1160 use uplinks 170, 1170, respectively, to provide connectivity to and from PNICs 182, 1182, respectively. Hypervisor 160/1160 may be implemented as a software layer that supports execution of multiple virtualized computing instances of virtual machines.
Virtual switch 140/1140 may be configured to monitor and manage data traffic that is communicated to and from hypervisor 160/1160, respectively. Virtual switch 140/1140 may be implemented as a kernel component of hypervisor 160/1160, respectively, or as an entity that is separate from hypervisor 160/1160, but that communicates with hypervisor 160/1160.
Implementations of virtual switch 140/1140 may vary and may depend on a type of product in which the switch is deployed as a virtualization medium. For example, virtual switch 140/1140 may be implemented as part of hypervisor 160/1160, as it is depicted in
Virtual machines, including VMs 120/1120, may be realized as complete computational environments. The virtual machines contain virtual equivalents of hardware and software components of the physical computing systems. Virtual machines may be instantiated as virtualized computing instances. The instances may be equipped with their own resources, may be assigned their own workloads, and may be configured to perform their own tasks assigned to the workloads. Virtual resources allocated to the virtual machines may include virtual CPUs, virtual memory, virtual disks, virtual network interface controllers and the like. The virtual machines may be configured to execute guest operating systems and guest applications.
A virtualized computing instance may be realized as a hardware virtualization and/or a software virtualization. As a hardware virtualization, the instance may represent for example, an addressable virtual machine. As a software virtualization, the instance may be used to provide for example, an isolated user space instance. Virtualized computing instances may include containers running on a top of host operating systems, virtual private servers, client computers, and hybrid combinations of thereof.
Physical networks 190 may include local area networks and/or wide area networks, and may utilize various hardware and software configurations. For example, physical networks 190 may include one or more routers 192, 194, 196, 198, one or more switches 195, and one or more switch ports 191, 1191. Physical networks 190 may also include other components that are not depicted in
Cloud environment 206 comprises an SDN that implements various components of the virtual network. The virtual network may include hosts, virtual machines, virtual switches, virtual ports, and the like. The virtual machines may execute various applications. Merely to describe a clear example, cloud environment 206 depicted in
Cloud 206 may store information about the entities and rules implemented in an SDN in a configuration data structure maintained in for example, a centralized management plane. The data structures may be searchable and modifiable. For example, the data structures may be searched for the information about the entity logical associations 250. The associations may represent logical relationships between for example, virtual machine tags and firewall rules.
Server 255 may be implemented as part of an SDN manager of a centralized management plane. Server 255 may be configured to search entity logical associations 250 stored in a storage device, perform a fast retrieval of entity logical associations 250 from the storage, modify some of the entity associations, and/or store the modified entity associations in the storage device.
Server 255 may also retrieve entity logical associations 250 from the storage device, use the retrieved information to generate digital representation 260 of entity logical associations 250, and store digital representation 260 in the storage device. Server 255 may use information about digital representation 260 to generate graphical representation 270 of the SDN configuration, and display graphical representation 270 on display device 275.
Graphical representation 270 may include graphical objects. The graphical objects may correspond to the logical entities identified in digital representation 260. The logical entities may correspond to firewall rules, such as rules 272, 274; security group tags, such as tags 284, 286; virtual machines tags, such as tags 290, 1290; application tags, such as tags 202, 204, logical switch tags, such as a tag 282; logical router tags, such as a tag 292, and the like.
Graphical representation 270 may also include links. The links may correspond to the entity logical associations defined by the rules implemented in the network. In the example depicted in
Server 255 may use information about entity logical associations 250 to generate a data model of the associations implemented in the SDN. Server 255 may perform a simulation using the data model and a proposed modification to determine whether the proposed modification, if implemented in the SDN, could impact the network security and/or connectivity. The simulation of the data model using the proposed modification may result in deriving a prediction indicating whether the proposed modification could impact the network security and/or connectivity. The prediction may indicate for example, that if a particular virtual machine is added to a particular security group and associated with a particular firewall rule, then a user may not be able to launch a particular application from the particular virtual machine. An example of predictions is described in
A prediction may be displayed, or otherwise communicated to users, to provide the users with an indication of what could happen if the proposed modification was implemented. After displaying the prediction on display device 275, server 255 may await receiving input from a user indicating whether to accept, or reject, the proposed modification. Upon receiving the input, server 255 may parse the input to determine whether the proposed modification is to be accepted or rejected.
If it is determined that the proposed modification is to be accepted, then server 255 implements the proposed modification in the SDN. This may involve modifying the set of rules defining the entity logical associations and modifying the corresponding entity logical associations. The modified entity associations may be used to replace entity logical associations 250 stored in the storage device.
However, if it is determined that the proposed modification is not to be accepted, then server 255 does not implement the proposed modification in the SDN. Instead, server 255 may display on display device 275, or otherwise communicate to users, a message that the proposed modification has been rejected, and that the SDN is not going to be reconfigured at this time.
Server 255 may use information about digital representation 260 to generate graphical representation 270 of the SDN configuration, and display graphical representation 270 on display device 275.
Graphical representation 270 may include graphical objects. The graphical representation of the objects may vary from one implementation to another. Example objects are depicted in
The graphical objects may correspond to the logical entities identified in digital representation 260. The logical entities may correspond to firewall rules, such as rules 272, 274; security group tags, such as tags 284, 286; virtual machines tags, such as tags 290, 1290; application tags, such as tags 202, 204, logical switch tags, such as a tag 282; logical router tags, such as a tag 292, and the like.
Graphical representation 270 may also include links. The links may correspond to the entity logical associations defined by the rules implemented in the network. In the example depicted in
Server 255 may use the information about entity logical associations 250 to generate a data model of the associations implemented in the SDN. Server 255 may perform a simulation using the data model and a proposed modification 320 to determine whether proposed modification 320, if implemented in the SDN, could impact the network security and/or connectivity.
The simulation of the data model using proposed modification 320 may result in deriving a prediction 330 indicating whether the proposed modification could impact the network security and/or connectivity. The prediction may indicate for example, that if a particular virtual machine is added to a particular security group and associated with a particular firewall rule, then a user may not be able to launch a particular application from the particular virtual machine. An example of predictions is described in
A prediction may be displayed, or otherwise communicated to users, to provide the users with an indication of what could happen if proposed modification 320 was implemented. After displaying the prediction on display device 275, server 255 may await receiving input from a user. The input may indicate whether to accept or reject proposed modification 320. Upon receiving the input, server 255 may parse the input to determine whether proposed modification 320 is to be accepted or rejected.
If it is determined that proposed modification 320 is to be accepted, then server 255 implements proposed modification 320 in the SDN. This may involve modifying the set of rules defining the entity logical associations and modifying the corresponding entity logical associations. The modified entity associations may be used to replace entity logical associations 250 stored in the storage device.
However, if it is determined that proposed modification 320 is to be rejected, then server 255 does not implement proposed modification 320 in the SDN. Instead, server 255 may display on display device 275, or otherwise communicate to a user, a message that proposed modification 320 has been rejected, and that the SDN is not going to be reconfigured at this time.
In the example depicted in
Server 255 may use the information about digital representation 260 to generate graphical representation 270. Graphical representation 270 may be displayed on display device 275. Graphical representation 270 is described in
In the example depicted in
Upon receiving proposed modification 320, server 255 simulates the proposed modification on the data model of the associations and rules implemented in the SDN. Simulating the proposed modification on the data model includes simulating, in the data model, the changes included in proposed modification 320 to determine whether proposed modification 320 could have any impact on the associations and rules in the network. Upon completing the simulation, server 255 may generate an overlay graphical representation 270A of the SDN configuration, and display overlay graphical representation 270A on a display device 275A, as depicted in
Overlay graphical representation 270A may include various object and links. The objects may correspond to the logical entities that would be defined if proposed modification 320 was hypothetically implemented in the network. The logical entities may correspond to firewall rules, such as rules 272A, 274A; security group tags, such as tags 284A, 286A; virtual machines tags, such as tags 290A, 1290A; application tags, such as tags 202A, 204A, logical switch tags, such as a tag 282A; logical router tags, such as a tag 292A, and the like.
Overlay graphical representation 270A may also include links. The links may correspond to the entity logical associations that would be defined if proposed modification 320 was hypothetically implemented in the network. In the example depicted in
Upon completing the simulation, server 255 generates prediction 330. Prediction 330 may include information indicating whether implementing proposed modification 320 in the SDN could potentially have an impact on the network security and connectivity. Prediction 330 may be displayed on display device 275A or emailed to a system administrator. Based on the prediction, the administrator may determine whether to pursue the proposed modification. In reaching the decision, the system administrator may also compare overlay graphical representation 270A to graphical representation 270 to determine the impact that implementing proposed modification 320 may have on the SDN.
For example, if a system administrator is planning on implementing a particular firewall rule, then by simulating the impact that the implementing of the particular firewall rule may have on the network, server 255 may generate overlay graphical representation 270A of the scope of the firewall rule. The system may overlay the overlay graphical representation over graphical representation 270, and present a resulting image to the system administrator. The system administrator may analyze the resulting image and determine whether implementing the particular firewall rule may potentially disconnect a particular subnet from a particular gateway, and if it does, then whether any user groups might lose access to the Internet, the applications, and/or other virtual machines.
Predictions may include explanations of consequences that the topology reconfiguration may have on users. For example, if the topology reconfiguration includes adding a particular virtual machine to a particular security group, a particular firewall rule and a particular DNE rule, then a prediction may provide an explanation that the virtual machine may lose connectivity to a particular subnet. Furthermore, the prediction may provide an explanation that if the particular virtual machine loses the connectivity to the particular subnet, then a particular user, or users, who are using the particular virtual machine, may be directly impacted by the reconfiguration. Based on the received prediction, the system administrator may determine whether the reconfiguration is desirable as-is, or whether the reconfiguration needs to be revised before it can be implemented in the network.
In an embodiment, example prediction 402 includes an accept button 450 and/or a reject button 455. Accept button 450 and reject button 455 may be implemented as objects displayed on a display screen of a computer device and may be configured to receive input from a user. The user's input may indicate that the user either wishes to accept or reject the proposed reconfiguration. For example, using a pointing device, such as a mouse, a cursor or the user's finger, the user may either select accept button 450 to indicate that the proposed reconfiguration is to be accepted, or select rejection button 455 to indicate that the proposed reconfiguration is to be rejected. If accept button 450 is selected, then the proposed reconfiguration is implemented by sending the reconfiguration parameter values to the SDN control plane. However, if the reject button 455 is selected, then the proposed reconfiguration is rejected and the reconfiguration parameter values are not communicated to the control plane.
In step 504, based on the received entity associations, a digital representation of the network is generated. The digital representation may include objects that correspond to the elements defined in the entity associations, and one or more connectors that connect the objects to form a topology of the network. The objects that correspond to the entities defined in the entity associations may be color-coded, or pattern-coded, and the relationships between the objects may be determined based on the color-coding, or the pattern-coding.
In step 506, a graphical representation of the digital representation of the network is generated. The graphical representation may graphically represent the objects and connectors that are defined in the digital representation of the network. The graphical representation may be generated using the functionalities of Java™, OpenGL™, and the like. Examples of the graphical representations of the network configurations are described in
Also in this step, the graphical representation of the digital representation of the network may be displayed on a display device. The display device may be communicatively coupled to an operator console, an administrator workstation, a laptop, a smart device, and/or any other computer device.
In step 508, a proposed modification is received for reconfiguring the network. The proposed modification may encode the changes to the values of the configuration parameters included in a configuration data structure maintained for the network. The proposed modification may pertain to for example, reassigning one or more virtual machine tags from one security group to another security group, or reassigning one or more virtual machine tags from one logical switch to another logical switch.
In step 510, the proposed modification is used to simulate the reconfiguration. However, the simulation of the reconfiguration is not performed on the actual configuration parameters of the configuration file of the network. Instead, the simulation may be performed on a data model, or a network configuration model, generated for the network. The simulation is intended to emulate the operation of the reconfiguration, but without actually reconfiguring the network. The process of reconfiguring the network is intended to determine whether the hypothetical reconfiguration of the network based on the proposed modification could have caused any problems or issues in terms of providing services to the users. For example, the simulation may be performed to determine whether the reconfiguration could cause the users to lose access to certain resources or lose the ability to launch certain applications, and so forth.
In step 512, an overlay graphical representation of the simulated reconfiguration of the network is generated and displayed on a display device. An example of the overlay graphical representation is described in
Also in this step, the overlay graphical representation is displayed on a display device. The overlay graphical representation may be displayed next to the graphical representation described in step 506. Alternatively, the overlay graphical representation may be displayed as an overlay on the top of the graphical representation.
Typically, both the graphical representation of the configuration and the overlay graphical representation are displayed on the same display device. If the display device has limited display capabilities, then the overlay graphical representation may be superimposed on the previously generated graphical representation, and the differences may be highlighted or depicted using pulsing lines to draw a viewer's attention to the changes.
In step 514, impact on the network security and/or usability is determined. That may be performed by identifying differences between the graphical representation depicting the state of the network before the hypothetical reconfiguration and the overlay graphical representation depicting the state of the network after the hypothetical reconfiguration. The differences may be classified or organized into groups, and based on the count of differences in groups having the highest priority, the impact of the hypothetical reconfiguration on the network security and/or usability may be determined.
In an embodiment, the impact description may be displayed on the display device. The impact description may be displayed as a prediction. An example of the prediction is described in
The prediction may also indicate whether the impact would be negative or positive. If the impact is negative, then the prediction may indicate the applications that certain users may be unable to use if the hypothetical reconfiguration is implemented. If the impact is positive, then the prediction may include an indication that certain users may gain access to certain applications or resources if the reconfiguration is implemented. If the impact is positive, then the prediction may also include an indication that communications exchanged between certain users may become protected.
In addition to displaying the prediction on a display device, an accept button and a reject button may also be displayed. Examples of the accept button and the reject button are an accept button 450 and reject button 455, respectively, described in
In step 516, a test is performed to determine whether the reconfiguration was approved. The test may include determining whether the user selected an accept button or a reject button. Receiving the selection of the accept button indicates that the user approved the reconfiguration. Receiving the selection of the reject button indicates that the user rejected the hypothetical reconfiguration.
If it is determined, in step 517, that the user approved the reconfiguration, then step 518 is performed. Otherwise, step 519 is performed.
In step 518, the reconfiguration is implemented by sending the reconfiguration parameter values to the SDN control plane. This in turn may cause the control plane to set the system configuration parameters to the reconfiguration parameter values, and updating the configuration variables. In addition, a message may be displayed for the user to indicate that the hypothetical reconfiguration is being implemented.
However, if it is determined that the hypothetical reconfiguration is to be rejected, then the parameter values for the proposed reconfiguration are not communicated to the control plane. In addition, a message may be displayed for the user to indicate that the hypothetical reconfiguration has been rejected.
In an embodiment, an approach presented herein allows system administrators to perform a “what-if-analysis” to determine the impact that modifying a network configuration may have on the network connectivity and security. The approach allows simulating a reconfiguration of the network topology without actually implementing the reconfiguration in the network. Upon receiving a proposed modification, a simulation of the network reconfiguration is initiated and a prediction is generated to indicate whether the proposed modification would impact any entities, or any associations, if the proposed modification was actually implemented.
A simulation process includes a simulation of the effects of the topology reconfiguration without actually applying the reconfiguration parameter values to the existing topology. The simulation includes retrieving existing entity associations established in the network, generating a digital model based on the entity associations, and applying the proposed modification to the digital model to simulate the effect of the proposed modification. The results of the simulation may provide system administrators with predictions of the effects that the proposed modification may cause.
In an embodiment, a system presented herein allows overlaying a depiction of graphical representation of a hypothetically reconfigured SDN on a top on a depiction of the current topology of the SDN. For example, upon selecting a simulation mode and receiving a proposed modification, a system administrator may request generating an overlay depiction of a firewall configuration as if the proposed modification was implemented, and request that the generated overlay depiction be overlaid over a graphical representation of the current topology of the network. Once the overlay depiction is overlaid over the graphical representation of the topology, the system administrator may assess the impact that modified firewall configuration may have on the network as a whole, and on the individual machines and processes in particular.
The present approach may be implemented using a computing system comprising one or more processors and memory. The one or more processors and memory may be provided by one or more hardware machines. A hardware machine includes a communications bus or other communication mechanisms for addressing main memory and for transferring data between and among the various components of hardware machine. The hardware machine also includes one or more processors coupled with the bus for processing information. The processor may be a microprocessor, a system on a chip (SoC), or other type of hardware processor.
Main memory may be a random-access memory (RAM) or other dynamic storage device. It may be coupled to a communications bus, and used for storing information and software instructions to be executed by a processor. Main memory may also be used for storing temporary variables or other intermediate information during execution of software instructions to be executed by one or more processors.
Although some of various drawings may illustrate a number of logical stages in a particular order, stages that are not order dependent may be reordered and other stages may be combined or broken out. While some reordering or other groupings may be specifically mentioned, others will be obvious to those of ordinary skill in the art, so the ordering and groupings presented herein are not an exhaustive list of alternatives. Moreover, it should be recognized that the stages could be implemented in hardware, firmware, software or any combination thereof.
The foregoing description, for purpose of explanation, has been described regarding specific embodiments. However, the illustrative embodiments above are not intended to be exhaustive or to limit the scope of the claims to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen to best explain the principles underlying the claims and their practical applications, to thereby enable others skilled in the art to best use the embodiments with various modifications as are suited to the contemplated uses.
In the foregoing specification, embodiments of the approach have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the approach, and what is intended by the applicants to be the scope of the approach, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.
Any definitions set forth herein for terms contained in the claims may govern the meaning of such terms as used in the claims. No limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of the claim in any way. The specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
As used herein the terms “include” and “comprise” (and variations of those terms, such as “including,” “includes,” “comprising,” “comprises,” “comprised” and the like) are intended to be inclusive and are not intended to exclude further features, integers or steps.
References in this document to “an embodiment,” indicate that the embodiment described or illustrated may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described or illustrated in connection with an embodiment, it is believed to be within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly indicated.
Various features of the disclosure have been described using process steps. The functionality/processing of a given process step could potentially be performed in different ways and by different systems or system modules. Furthermore, a given process step could be divided into multiple steps and/or multiple steps could be combined into a single step. Furthermore, the order of the steps can be changed without departing from the scope of the present disclosure.
It will be understood that the embodiments disclosed and defined in this specification extend to alternative combinations of the individual features and components mentioned or evident from the text or drawings. These different combinations constitute various alternative aspects of the embodiments.
Number | Date | Country | Kind |
---|---|---|---|
201841000647 | Jan 2018 | IN | national |
Number | Name | Date | Kind |
---|---|---|---|
6393386 | Zager | May 2002 | B1 |
20080101352 | Barham | May 2008 | A1 |
20130290512 | Ngoo | Oct 2013 | A1 |
20170134224 | Korkalo | May 2017 | A1 |
20190036782 | Smith | Jan 2019 | A1 |
Entry |
---|
Brian Proffitt, “Software-Defined Networking (SDN): What It Is, How It Works, Why It Matters,” Apr. 23, 2013. (Year: 2013). |
Townsend Security, “VMware Encryption 9 Critical Components of a Defensible Encryption Strategy”, dated Mar. 28, 2015, 24 pages. |
Number | Date | Country | |
---|---|---|---|
20190215246 A1 | Jul 2019 | US |