Modifying a resource allocation or strategy in response to control information from a virtual network function
The integration of service interruption management logic and network controller in VNFs addresses communication flow disruptions by dynamically adjusting resource allocation and strategies, enhancing network resilience and performance.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2018-11-01
- Publication Date
- 2026-03-12
AI Technical Summary
Existing network function virtualization (VNF) systems face challenges in managing service interruptions and resource allocation efficiently, leading to potential communication flow disruptions and suboptimal performance.
Implementing service interruption management logic within VNFs to detect and respond to disruptions, coupled with a network controller that adjusts resource allocation and strategies based on control information to mitigate service interruptions and optimize VNF performance.
Enhances network resilience by quickly addressing service interruptions and optimizing resource allocation, ensuring continuous communication flows and improved network performance.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
background
[0001] Network function virtualization (VNF) refers to a technology for virtualizing various network functions within a network. VNFs can be used to perform network-related tasks. These VNFs can run on a single compute node or across multiple compute nodes.
[0002] Document WO 2017 / 198019 A1 describes a method by which data from a Slice Network Controller is offloaded from a first VNF module, which is determined to be overloaded based on exceeding a threshold of a data flow, to a destination VNF module.
[0003] Document US 2018 / 0176088 A1 describes the monitoring of a VNF according to a monitoring rule that is associated with a unique combination of VNF type and VNF component.
[0004] The present invention is defined by independent claims 1, 11 and 18. Embodiments are the subject of the respective dependent claims. Brief description of the drawings
[0005] Some realizations of the present revelation are described in relation to the following figures. Fig. Figure 1 is a block diagram of a network arrangement which includes virtual network functions (VNFs), according to some examples. Fig. 2A and Fig. 2B illustrates the communication of control information between a VNF and a controller via appropriate communication channels according to some examples. Fig. Figure 3 is a block diagram of a storage medium that stores machine-readable instructions, according to some examples. Fig. Figure 4 is a block diagram of a system according to some examples. Fig. 5 is a flowchart of a procedure according to some examples.
[0006] In the drawings, similar, but not necessarily identical, elements are consistently identified with identical reference numbers. The figures are not necessarily to scale, and the size of some parts may be exaggerated to make the depicted example clearer. Furthermore, the drawings show examples and / or realizations that correspond to the description; however, the description is not limited to the examples and / or realizations shown in the drawings. Detailed description
[0007] In this disclosure, the use of the terms "a", "an", or "the" is intended to include the plural forms, unless the context clearly indicates otherwise. Furthermore, when used in this disclosure, the terms "comprises", "comprising", "indicates", "shows", or "shows" specify the presence of the elements indicated, but do not exclude the presence or addition of other elements.
[0008] A virtual network function (VNF) can refer to a virtual entity that performs corresponding network-related tasks. A VNF can be implemented as machine-readable instructions that are executed on a compute node. As used here, a "compute node" can refer to a computer, a processor, multiple processors, or any other physical infrastructure capable of executing machine-readable instructions.
[0009] Deploying VNFs as part of network function virtualization can offer several advantages. For example, a VNF can be developed, configured, and deployed in a network more quickly than a hardware network component. Furthermore, VNFs are generally less expensive than comparable hardware network components for fulfilling similar network-related tasks. Additionally, a VNF is more easily adaptable to the target specifications of different users than hardware network components.
[0010] A collection of connected VNFs can be deployed on a single compute node or across multiple compute nodes. In some examples, the collection of connected VNFs comprises a chain of VNFs, where the various VNFs in the chain can successfully perform corresponding network-related tasks. In other examples, a collection of connected VNFs might include a subset of VNFs connected in a chain and another subset connected in parallel. More generally, a collection of connected VNFs refers to any group of VNFs that are functionally, logically, and / or physically connected or related to one another.
[0011] Examples of different types of VNFs include the following: a virtualized load balancer to balance network communication across multiple network paths of a network, a virtualized firewall to protect a network from unauthorized intrusion from outside the network, a virtualized intrusion detection device to detect intrusion into a network by an unauthorized entity, a virtualized switch or router to switch or route data packets based on network addresses and possibly other fields in the data packets, etc.
[0012] If a given VNF in a collection of interconnected VNFs experiences a disruption, for example, due to the VNF crashing or malfunctioning (or a compute node on which the VNF is running crashing or malfunctioning), then a service interruption can occur in the network encompassing the collection of interconnected VNFs. A service interruption can refer to any interruption of data communication within a communication flow established between host entities, where the communication flow passes through the collection of interconnected VNFs. A communication flow can refer to an identifiable flow of data between entities connected to a network. The identification of the flow can be based on a network address, a port number identifying a port, or a combination thereof.
[0013] A "host unit" can refer to an electronic device or a program (which includes machine-readable instructions) that is executable on a physical or virtual machine, wherein the host unit is capable of establishing a communication flow with another host unit. A host unit can be an endpoint of the communication flow. In some examples, the communication flow that can be established between host units can be a Transmission Control Protocol (TCP) flow, which is a communication protocol that ensures the reliable, orderly, and error-checked transmission of data between TCP layers belonging to the host units. Although TCP is referenced in some examples, it should be noted that in other examples, the communication flows between the host units can be governed by other communication protocols.
[0014] Once a collection of interconnected VNFs has been deployed in a network, any problems (e.g., due to service interruptions or other reasons) within the network can be monitored and resolved. Furthermore, once a problem is identified in the network, measures can be taken to correct it.
[0015] According to some implementations of the present disclosure, monitoring of VNFs deployed in one or more compute nodes can be accomplished through techniques or mechanisms to capture the performance and status of the respective communication flow. Information gathered from this monitoring can be used to derive various metrics. Analysis of this gathered information can enable the identification of a problem in the network.
[0016] Based on monitoring and analysis, a system can take various actions. In some examples, the system can allocate more resources (e.g., processing resources and / or storage resources) to a selected VNF (or VNFs). For instance, if the system determines that a given VNF, which currently has an initial allocation of resources, is overloaded, otherwise not performing as expected, or is experiencing errors or malfunctions, then the system can take action to allow additional (or different) resources to be allocated to that VNF. For example, the system might offer a user the option to upgrade their service so that additional (or different) resources can be allocated to the given VNF.As another example, the system can automatically allocate additional (or different) resources in response to the detection that the given VNF is overloaded or otherwise not performing as desired, or is experiencing errors or malfunctions.
[0017] Based on monitoring and analysis, the system can further determine that strategies provided to the VNFs need to be changed. Each VNF can be provided with one (or more) strategy that governs how the VNF reacts to specific events for corresponding communication flows. A strategy can be provided to the VNF per flow, meaning the strategy applies only to a single communication flow. Alternatively, there can be multiple strategies that apply to a given communication flow. As yet another example, one strategy can apply to multiple communication flows handled by the VNF.
[0018] In some examples, a strategy can govern how the VNF should respond to a service interruption (or more generally, a problem) detected in the network. For instance, the strategy might define a rule indicating which corrective actions the VNF should take in various scenarios in response to the VNF detecting or being notified of a service interruption. These corrective actions might include: adjusting the size of a TCP window for the communication flow, terminating the communication flow (and establishing a new one), imposing data rate control on the communication flow to change the data rate of communications, selecting a different route through the network, and changing a Quality of Service (QoS) strategy.
[0019] Fig. Figure 1 is a block diagram of an exemplary network arrangement comprising a first host unit 102 and a second host unit 104, which are capable of establishing a communication flow 106 between the host units 102 and 104. Although in the example of the Fig. Figure 1 shows a communication flow between a pair of host units 102 and 104. It should be noted that in other examples, the communication flow 106 may be established between more than two host units. For example, host unit 102 may include a sender that sends data to multiple receivers.
[0020] Communication flow 106 is depicted as a flow from host unit 102 to host unit 104. In other examples, communication flow 106 can run from host unit 104 to host unit 102, or it can be bidirectional. The communication flow 106 between host units 102 and 104 travels through a transport network 109.
[0021] Transport network 109 comprises a collection of interconnected VNFs between host units 102 and 104. In the example shown in Fig. As shown in Figure 1, the assembly of connected VNFs comprises 108 VNFs: 108-1, 108-2, and 108-3, which are connected in a chain. In other examples, at least some of the VNFs may be connected in parallel between the host units 102 and 104. Although in Fig. While three VNFs are shown as part of a compilation in Figure 1, it should be noted that other examples may use a different number (two or more than two) of VNFs in a compilation. Furthermore, there may be multiple compilations of connected VNFs configured for corresponding communication flows between different host units.
[0022] VNFs 108-1 to 108-3 can be of the same VNF type (e.g., a router or a switch), or at least two of VNFs 108-1 to 108-3 can be different VNF types (e.g., one VNF is a router or a switch, while another VNF is a firewall or a virtual intrusion detection device).
[0023] The compilation of interconnected VNFs 108 can be executed on a single compute node or, alternatively, on multiple compute nodes. Each VNF can be implemented as machine-readable instructions, for example, as machine-readable instructions that are executed in a corresponding virtual machine. A virtual machine refers to a virtual environment that is set up on a physical compute node. Multiple VMs can share the physical resources of a single physical machine.
[0024] In some examples, the transport network 109 may be part of a software-defined network (SDN). One type of SDN is a software-defined wide area network (SD-WAN), which connects multiple networks across a wide geographical area. An SDN is divided into a control plane and a data plane. The data plane comprises network units (e.g., physical network devices and / or VNFs) used to transport data packets along network paths. The transport of data packets may be based on the use of routing information (e.g., routing tables, path tables, etc.) that network units can access to forward data packets along selected network paths based on network addresses (e.g., Internet Protocol (IP) addresses, Medium Access Control (MAC) addresses, etc.) and possibly other fields of the data packets.The forwarding of data packets is handled by routers or switches (physical or virtual). In other examples, some network units (physical or virtual) can also perform other actions, such as firewall protection, intrusion detection, etc.
[0025] Although in Fig. 1. Whereas the Transport Network 109 is comprehensively represented as VNFs, it should be noted that in some examples the Transport Network 109 may also include physical network units.
[0026] The control plane of an SDN includes a network controller 112, which in the SDN context can be referred to as an SDN controller. The network controller 112 can be implemented using one or more compute nodes. The network controller 112 can be used to configure the network units of the transport network 109, including providing forwarding information to routers or switches and configuring other network units to perform corresponding actions.
[0027] In other examples, techniques or mechanisms according to some implementations of the present disclosure can be applied with a different network type instead of an SDN.
[0028] Fig. Figure 1 shows that VNF 108-1 includes a service interruption management logic 110-1 and VNF 108-2 includes a service interruption management logic 110-2.
[0029] Although not shown, VNF 108-3 may also include service interruption management logic.
[0030] A service interruption management logic can be implemented using machine-readable commands. Generally, the service interruption management logic is capable of detecting and responding to a service interruption, as described in some examples below.
[0031] In the example of the Fig. 1. It is assumed that a service interruption 114 occurred on VNF 108-3. The service interruption 114 could be due to VNF 108-3 crashing or experiencing a malfunction or error, the compute node on which VNF 108-3 is running crashing or experiencing a malfunction or error, a connection connecting to VNF 108-3 experiencing a malfunction or error, or some other reason. More generally, the service interruption 114 could be caused by a failure or malfunction of a physical machine, a virtual machine, or a program, or it could be caused by actions of malicious software or a human attacker.
[0032] The service interruption management logic 110-2 in VNF 108-2 is capable of detecting the service interruption 114 assigned to VNF 108-3. For example, adjacent VNFs in the set of connected VNFs 108 can exchange vital signs. A "vital sign" can refer to any signal, message, or piece of information sent to indicate that a network entity, such as a VNF, is still functioning. A vital sign can be sent periodically or irregularly in response to specific events.
[0033] A failure of a first VNF to receive a vital sign from a second VNF within a specified time may indicate that the second VNF is experiencing a service interruption. In response to the detection of the service interruption 114, the service interruption management logic 110-2 in VNF 108-2 sends control information 116 to a target unit. In some examples, the control information 116 may be in the form of a control packet (or a number of control packets).
[0034] In some examples, the control information 116 may consist of a UDP packet. Alternatively, the control information 116 may consist of a packet according to an Internet Control Message Protocol (ICMP). In other examples, other types of control information 116 may be used.
[0035] In a more specific example, the control information 116 can include a flow tuple that identifies the communication flow 106. The flow tuple can include a source network address (e.g., a source IP address) of the host unit 102, which sends the communication flow 106, a destination network address (e.g., a destination IP address) of the host unit 104, which receives the communication flow, a source port number, and a destination port number. In other examples, the control information 116 can include other information to identify a communication flow.
[0036] The control information 116 may also include information to assist the target unit in determining which proposed action(s) to take. The target unit to which the control information 116 is sent may be another VNF, e.g., VNF 108-1, or the host unit 102, or both VNF 108-1 and the host unit 102. Fig. In example 1, the control information 116 is sent upstream, where the communication flow 106 runs from host unit 102 to host unit 104. The control information 116 can also be sent downstream, either additionally or alternatively.
[0037] In some examples, the control information 116 includes a position indicator 118 and action information 120. The position indicator 118 shows a network location within the transport network 109 where the service interruption 114 occurred. For example, the position indicator 118 may be in the form of an identifier (e.g., a network address or some other type of identifier) of the VNF 108-3 in conjunction with the service interruption 114. In other examples, the position indicator 118 may include information that identifies a compute node, subnet, or other network segment where the service interruption 114 occurred.
[0038] The position indicator 118 can be used by the target unit (e.g., by the service interruption logic 110-1 in the VNF 108-1 or a service interruption logic 122 in the host unit 102) to determine where in the transport network 109 the service interruption 114 occurred. The position of the transport network 109 where the service interruption 114 occurred can be useful in determining which action to take, e.g., when choosing from the following possible actions: terminating the communication flow 106 and establishing a new communication flow, routing data around the service interruption 114 along another network path, etc.
[0039] The action information 120 in the control information 116 specifies an action (or actions) to be taken to modify a communication flow through the assembly of connected VNFs 108. For example, the action information 120 can specify any or a combination of the following actions: adjusting (reducing or increasing) a TCP window size, terminating the communication flow 106, imposing flow control on the communication flow 106, where flow control may include changing the data rate of the communication of data in the communication flow 106, selecting a different route through the network, e.g., as part of performing load balancing, and changing a quality of service (QoS) strategy.
[0040] A TCP window size refers to the amount of data (in bytes) that a receiver wants to receive at a given time. Load balancing refers to a technique for distributing traffic across different network paths within a network. A QoS strategy specifies a service level to be provided for the communication flow. A higher service level means that data communication in communication flow 106 can occur with higher data rates, greater reliability, and so on, than with a lower service level.
[0041] The action taken by a target unit in response to control information 116 to ensure recovery after the service interruption may or may not be an action specified by action information 120 in control information 116.
[0042] According to some implementations of the present disclosure, the network controller 112 (or another controller) is able to monitor control information (including control information 116) sent by a VNF (or multiple VNFs). Thus, the service interruption management logic within a VNF is able not only to send control information to another VNF or to a host entity, but the service interruption management logic is also able to send the control information to the controller that manages actions to be taken based on problems that may exist in the transport network 109.As indicated above, the actions taken by the controller may include allocating other resources to a selected VNF (selected VNFs) or changing a strategy (or strategies) applied by the selected VNF (selected VNFs) and / or a host unit (or host units).
[0043] In examples according to Fig. 1. It is assumed that the network controller 112 includes a strategy control logic 124, which is capable of changing the strategy applied by the VNF(s) and the host units to address problems in the transport network 109. The network controller 112 may also include a resource allocation logic 126, which, in response to detected problems in the transport network 109, allocates resources to a selected VNF (selected VNFs).
[0044] A “logic” represented as part of a controller (e.g., the network controller 112) can refer to a hardware processing unit that is part of the controller, or to machine-readable commands that can be executed by the controller.
[0045] Although in Fig. 1. Where the strategy control logic 124 and the resource allocation logic 126 are represented as part of the same control (e.g., the network control 112), it should be noted that in other examples the strategy control logic 124 and the resource allocation logic 126 may be part of different control systems.
[0046] Both the strategy control logic 124 and the resource allocation logic 126 perform their respective actions based on control information provided by a corresponding VNF (corresponding VNFs). The resource allocation provided to a VNF by the resource allocation logic 126 can specify a set of resources to be allocated to the VNF, where the allocated resources may include processing resources and / or storage resources.
[0047] A processing resource can refer to any resource capable of performing processing tasks for a system or device. For example, a processing resource might include a processor or a part of a processor. In other examples, a processing resource might refer to a software processing resource (e.g., an operating system, a virtual machine, a program, etc.) that can be made available to perform tasks on behalf of a requester.
[0048] A storage resource can refer to any resource capable of storing information. A storage resource can be physical storage, such as a storage device. Alternatively, a storage resource can be virtual.
[0049] If the resource allocation logic 126 determines, based on control information provided by a corresponding VNF (corresponding VNFs), that the corresponding VNF(s) is / are overloaded (the amount of resources allocated to the VNF(s) is insufficient) or over-provisioned (the amount of resources allocated to the VNF(s) exceeds the load on the VNF(s), the resource allocation logic 126 can modify the resource allocation to the VNF(s). Modifying the resource allocation to the VNF(s) can involve increasing or decreasing the amount of resources allocated. Increasing the amount of resources allocated to the VNF can improve the speed at which the VNF processes data.Reducing the amount of resources allocated to the VNFs allows a pool of resources to be distributed more effectively across the VNFs by reallocating resources from a less busy VNF to a more busy VNF.
[0050] The amount of resources allocated to a VNF can specify the amount of resources allocated per flow. Thus, the VNF can be allocated an initial amount of resources for a first communication flow, a second amount for a second communication flow, and so on. In other examples, the amount of resources allocated to a VNF might be resources used by the VNF for multiple communication flows.
[0051] The strategy assigned to a VNF or host unit by the strategy control logic 124 determines how the VNF or host unit responds to a problem in the transport network 109. Thus, in response to a detected problem in the transport network 109, the VNF or host unit can perform a corrective action based on a strategy. The strategies are provided to the respective service interruption management logic in the corresponding VNFs and host units.
[0052] As stated above, the strategy control logic 124 and the resource allocation logic 126 perform their respective tasks in response to control information (e.g., 116) from VNFs. The table below shows an example of a control package that includes an example of the control information 116 from the VNFs. Fig. 1 is. STEUERUNGSPAKET <header>Header information <header>< / header> < / header> <data>< / data> <FLOW TUPLE> SRC IP, DST IP, SRC PORT, DST PORT <FLOW TUPLE> <action>Action information <action>< / action> < / action> <amount>Bytes <amount>< / amount> < / amount> <policy>Strategy identifier <policy>< / policy> < / policy> <location>Position information <location>< / location> < / location> <END DATA>
[0053] The control package includes header information, which in some examples may include an IP header and a UDP header. In the example above, the header information is retrieved using the <header>-Tags are displayed. An IP header can contain network addresses (e.g., source and destination IP addresses and other protocol fields). A UDP header can, for example, contain a UDP port number. In other examples, other types of header information may be included in the control packet. The header information can provide information about the source and destination of the control packet.
[0054] The control package also includes a user data section, which is accessed through the <data>-day at the beginning and through the<END DATA> The -tag is displayed at the end. The payload section can include a flow tuple that identifies the corresponding communication flow to which the control packet belongs. The flow tuple is defined by the<FLOW TUPLE> -Tags are displayed. In the given example, the flow tuple includes a source IP address, a destination IP address, a source port number, and a destination port number. The values of the combination of the above fields in the flow tuple can uniquely identify a respective communication flow.
[0055] The user data section may also include action information in a section that is defined by the <action>-Tags are displayed. The action information is action information 120, which is associated with Fig. 1 described, to specify a proposed action (or actions) that should be taken to address a service interruption or other problem.
[0056] The user data section also includes data volume information generated by the <amount>-Tags are displayed. The quantity information can be in the form of a number of data bytes that have been transmitted by the respective VNF for the respective communication flow.
[0057] The user data section also includes location information obtained through the <location>-Tags are displayed. The location information can identify a location where a problem (e.g., due to service interruption 114) may have occurred. The location information can include an identifier (e.g., a network address or another type of identifier), an identifier (e.g., a network address) of a compute node, an identifier of a subnet, or an identifier of another network segment where the problem occurred.
[0058] The control package also includes a strategy identifier, which is determined by <policy>-Tags are displayed to identify a specific strategy. The strategy identifier can be in the form of a number, an alphanumeric data stream, or any other type of identifier. The identified strategy is the strategy applied by the VNF to respond to an event (e.g., a problem) for the respective communication flow. In other examples, the control package may include strategy identifiers to identify multiple strategies.
[0059] In some examples, the resource allocation logic 126 can determine, based on the action information in the control package, the presence of any problems at a specific network location where a service interruption or other issue has occurred (where the network location is specified by the location information in the control package). For example, depending on the type of control action indicated by the action information in the control package, the resource allocation logic 126 can infer the type of problem that has occurred at the network location. If the action information specifies a reduction in the data rate for a communication flow, then the resource allocation logic 126 can infer that the VNF is congested.
[0060] Resource allocation logic 126 can also, or alternatively, use the quantity information in the control packet to determine whether a problem exists at the network location indicated by the control packet. For example, if the quantity information indicates that a VNF is transmitting more data than expected for a communication flow, resource allocation logic 126 can infer that the VNF is congested. Conversely, if the quantity information indicates that a VNF is transmitting less data than expected, resource allocation logic 126 can infer that the VNF is underutilized and may be over-provisioned with resources. Based on the determined load and / or the presence of a problem in the network, resource allocation logic 126 can modify the allocation of resources to a selected VNF (or VNFs).
[0061] In some examples, resource allocation can be changed in response to requests from a user (e.g., a network administrator). For example, a visual representation generation logic 128, which in some examples may be part of the network control 112 or another control system, can provide a visual representation of load information and / or problems at various points in the transport network 109.
[0062] Based on the load information and information about problems presented in the visual representation, a user can make a control selection to modify a resource allocation to a selected VNF (Vehicle Functional Network). For example, graphical symbols may be added to the visual representation to indicate locations where problems might exist. By involving a user in the control process of resource allocation to the VNFs, collaboration between the controller and the user can be ensured, leading to more informed resource allocation decisions.
[0063] The visual representation provided by the visual representation generation logic 128 can take the form of a graphical user interface (GUI) that provides a topological view of the transport network 109 along with load and problem information assigned to different locations in the topological map. The topological map can include nodes representing a corresponding VNF (or VNFs) and other network units, as well as connections representing relationships between the VNFs and other network units.
[0064] More generally, the compiled control information (or analysis results of the compiled control information) can be presented to a user (or multiple users) to provide an overview of the performance and status of a network. This overview can include information about performance and status at various points in the network, traffic profiles, and so on. A "traffic profile" can refer to a representation of data communication characteristics over time or across different locations, where the data communication characteristics can include any one or a combination of the following: data velocity, jitter, number of lost packets, number of errors, and so forth.
[0065] Furthermore, the visual representation can include icons or text depicting strategies applied to the respective VNFs and host units. This visual display of strategies applied to the respective units can allow a user to make a control selection to change a strategy.
[0066] In other examples, instead of relying on human input to change the allocation of network resources to a selected VNF (selected VNFs), the resource allocation logic 126 can automatically perform the change. For example, the resource allocation logic 126 can be provided with a rule (or set of rules) that specifies how to change the resource allocation in response to a detected load and / or the presence of a problem at a specific network location. For example, the rule can specify that if the load on a VNF exceeds a threshold for longer than a specified time, the amount of resources allocated to the VNF should be increased.As another example, the rule can specify that if the load on the VNF falls below a threshold for a specified period of time, the amount of resources allocated to the VNF should be reduced. Further examples include the rule specifying that a change in resource allocation is based on the type of problem indicated by the relevant control information. Different types of problems can cause the resource allocation logic to modify resource allocation in different ways.
[0067] In other examples, the resource allocation logic 126 can include machine learning logic that is capable of being trained, using training data, to make resource allocations to a VNF based on the load and / or the presence of problems at corresponding different network locations.
[0068] Strategy Control Logic 124 uses the strategy identifier contained in a control package to determine the strategy currently being applied by a VNF for a given communication flow. Strategy Control Logic 124 can also analyze other information within the control package, such as action information, quantity information, and position information, to determine whether the strategy should be changed from the one identified by the control package's strategy identifier. Strategy Control Logic 124 may determine that a current strategy applied by the VNF or a host entity may be inappropriate or could lead to degraded performance. In response to such a determination, Strategy Control Logic 124 can provide a new strategy.In other examples, the strategy change can occur in response to input from a human, e.g., based on a user's review of the visual representation generated by the visual representation generation logic 128.
[0069] Each strategy can include a rule that determines, based on one or more factors, which corrective action to take for a problem. For example, one of the factors considered by the service interruption management logic of a VNF or a host entity might be the network location of the problem. The strategy might specify that if the network location of the problem is location X (or is upstream or downstream of location X), the communication flow must be aborted and a new communication flow established. Conversely, the strategy might specify that if the network location of the problem is not location X (or is not upstream or downstream of location X), the corrective action could involve selecting a different path to take in the transport network for the communication flow.
[0070] Other factors that can be considered by the service interruption management logic based on the strategy may include the amount of data packets being transmitted in the communication flow, the current load on network units along a path, the current QoS associated with the communication flow, etc.
[0071] The corrective action taken by a service interruption management logic to restore service after a problem can be based on the strategy as well as the action(s) specified by the action information in the control package. The corrective action taken may differ from the action specified by the action information in the control package. For example, the action information in the control package may specify terminating the communication flow and establishing a new one. However, the strategy may determine that the correct corrective action to take in response to the problem is to select a different network path to bypass the problem.
[0072] In other examples, a strategy can govern when a communication flow transitions from being handled by a first VNF to being handled by a second VNF (or multiple second VNFs). In further examples, a strategy can define how data traffic is to be processed by a VNF, e.g., whether data packets to or from specific network addresses or ports are to be blocked or allowed by the VNF, whether data packets from specific programs are to be blocked or allowed, and so on.
[0073] The control information 116 (in the form of one or more control packages) can be sent by a VNF via a communication channel to a target unit (e.g. another VNF or a host unit), as well as to a controller that executes the strategy control logic 124 and / or the resource allocation logic 126.
[0074] Fig. Figure 2A shows an example where the communication channel includes a specified port 202 belonging to a controller 204. Note that a similar communication channel can be used to transmit control information to a destination unit, such as a VNF or a host unit. Port 202 can be a TCP port, a User Datagram Protocol (UDP) port, or another port type. The control information 116 is sent by a service interrupt management logic 208 in a VNF 206 to the specified port 202. For example, a control packet containing the control information 116 can include a port number of the specified port 202. A processing logic 210 (e.g.,The strategy control logic 124 and / or the resource allocation logic 126) in the controller 204 recognizes, in response to a problem, information received at the specified port 202 as control information.
[0075] Fig. Figure 2B shows another example, where the communication channel includes a shared data structure 212 stored in a storage medium 214. The storage medium 214 can be implemented using a storage device (or multiple storage devices), a permanent storage device (or multiple permanent storage devices), or any combination thereof.
[0076] The shared data structure 212 includes control information entries 216. For example, the shared data structure 212 can be in the form of a table or any other data structure.
[0077] The service interruption management logic 208 in VNF 206 can provide control information (e.g., 116 in Fig. 1) Write to a control information entry 216 of the shared data structure 212. Other service interruption management logic in other respective VNFs can write control information to corresponding other control information entries 216.
[0078] A notification unit 218 comprises machine-readable instructions that can be executed in the compute node 200. The notification unit 218 can detect the addition of new control information to a control information entry 216 in the shared data structure 212. In response to such detection, the notification unit 218 can disclose the new control information to the controller 204 (or multiple controllers). In other examples, instead of using the notification unit 218, the controller 204 can include a receiver that queries the shared data structure 212 for updates to the control information entries 216 in the data structure 212.
[0079] Fig. Figure 3 is a block diagram of a non-transitory machine-readable or computer-readable storage medium 300, which stores machine-readable instructions that, when executed, cause a system to perform various tasks. The machine-readable instructions include network control information monitoring instructions 302 for monitoring a network comprising a collection of interconnected VNFs, wherein the monitoring comprises receiving control information from one of the VNFs, the control information specifying an action to be taken to address a problem detected by the VNF.
[0080] The control information can be in the form of one or more control packages, each of which includes action information specifying the action to be taken to address the problem, as well as one or a combination of the following: location information indicating the location of the problem, flow information identifying a communication flow, quantity information indicating the amount of data being transferred by the VNF for a communication flow, a strategy identifier to identify a strategy being applied by the VNF, etc.In some examples, the action information can specify one or a combination of the following actions: adjusting the size of a TCP window, aborting a communication flow, controlling the data rate of the communication flow, selecting a different route through the network, changing a QoS strategy, etc.
[0081] The machine-readable instructions also include resource allocation modification instructions 304 for modifying a resource allocation to the VNF in response to monitoring. The resource allocation modification can involve modifying the amount of processing resources and / or the amount of memory resources. The resource allocation modification can be based on the load on the VNF for a communication flow and / or on the presence of a detected problem at the VNF.
[0082] In further examples, the machine-readable commands also include commands for changing a strategy applied by the VNF to respond to a problem, based on monitoring. Changing a strategy can involve modifying the existing strategy or providing the VNF with a different strategy to replace a previously applied one. A strategy governs how the VNF modifies a communication flow in response to a problem or other event. By changing the strategy based on monitoring, a more effective strategy can be provided to a VNF (as well as a host entity) to more effectively control communication flows in response to events.
[0083] Fig. Figure 4 is a block diagram of a System 400, which may include one or more computers. The System 400 includes one (or more) hardware processor 402. A hardware processor may be a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or other hardware processing circuitry.
[0084] The System 400 also includes a storage medium 404, which stores machine-readable instructions that can be executed on the hardware processor 402 to perform various tasks. Machine-readable instructions that can be executed on a hardware processor can refer to instructions that can be executed on a single hardware processor or to instructions that can be executed on multiple hardware processors.
[0085] The machine-readable instructions include Control Information Receive Instructions 406 for receiving control information from a VNF (Virtual Network Function) as part of monitoring a network comprising a collection of interconnected VNFs. The control information specifies an action to be taken to address a problem detected by the VNF. The control information may comprise one or more control packets. The control information may also include one or a combination of the following: information identifying a communication flow, information identifying the location of a detected problem, a set of data to be transferred through the VNF for a communication flow, a strategy identifier, and so on.
[0086] The machine-readable instructions also include strategy change instructions 408 for modifying a strategy provided to the VNF in response to monitoring, where the strategy governs the communication flow control by the VNF in response to the problem or other event. An initial strategy was previously provided to the VNF, and the strategy change may involve modifying the initial strategy or providing the VNF with a different, second strategy that replaces the initial strategy.
[0087] Fig. Figure 5 is a flowchart of a procedure carried out by a system, according to some examples. The procedure includes (at 502) monitoring a network comprising a set of connected VNFs, wherein monitoring includes receiving control information from the VNFs, the control information specifying actions to be taken to address corresponding problems detected by the VNFs. In response to the monitoring, the procedure includes (at 504) modifying a resource allocation to a VNF of the set of connected VNFs and (at 506) changing a strategy employed by the VNF to respond to a problem.
[0088] The storage medium 300 ( Fig. 3) or 404 ( Fig. 4) may include one or a combination of the following: a semiconductor storage device, such as dynamic or static random-access memory (a DRAM or an SRAM), erasable and programmable read-only memory (EPROM), electrically erasable and programmable read-only memory (EEPROM), and flash memory; a magnetic disk, such as a hard disk, a floppy disk, and a removable disk; another magnetic medium, such as a tape; an optical medium, such as a compact disc (CD) or a digital video disc (DVD); or another type of storage device. It should be noted that the instructions described above may be provided on a single computer-readable or machine-readable storage medium, or alternatively, on multiple computer-readable or machine-readable storage media distributed throughout a large system, which may have multiple nodes.Such a computer-readable or machine-readable storage medium or media is considered part of an item (or manufactured item). An item can refer to any single manufactured component or any multiple manufactured components. The storage medium or media can be located either in the machine on which the machine-readable instructions are executed or at a remote location from which machine-readable instructions can be downloaded for execution over a network.
[0089] The foregoing description elaborates on numerous details to ensure an understanding of the subject matter disclosed herein. However, realizations may exist without some of these details. Other realizations may include modifications and variations of the details described above. The appended claims are intended to cover such modifications and variations.< / policy> < / location> < / amount> < / action> < / data> < / header>
Claims
[1] Non-transitory machine-readable storage medium (300; 404) which contains instructions which, when executed, cause a system (400) to execute: Monitoring (502) of a network (109) comprising a collection of connected virtual network functions, VNFs (108; 108-1; 108-2; 108-3), wherein the monitoring (502) comprises receiving control information (116) from a first VNF (108; 108-1; 108-2; 108-3) of the VNFs (108; 108-1; 108-2; 108-3) and receiving control information (116) from a second VNF (108; 108-1; 108-2; 108-3) of the VNFs (108; 108-1; 108-2; 108-3), and wherein the control information (116) specifies at least one action to be taken to address a problem that is the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3); Determine that the control information (116) from the first VNF (108; 108-1; 108-2; 108-3) indicates that the first VNF (108; 108-1; 108-2; 108-3) is overloaded and / or allocated resources are insufficient; Determine that the control information (116) from the second VNF (108; 108-1; 108-2; 108-3) indicates that the second VNF (108; 108-1; 108-2; 108-3) is over-provisioned with resources and / or allocated resources exceed a load of the second VNF (108; 108-1; 108-2; 108-3); and Modifying (504) an allocation of resources to the first VNF (108; 108-1; 108-2; 108-3) and to the second VNF (108; 108-1; 108-2; 108-3) in response to monitoring (502), where modifying (504) the allocation involves allocating resources from the second VNF (108; 108-1; 108-2; 108-3) to the first VNF (108; 108-1; 108-2; 108-3). [2] Non-transitory machine-readable storage medium (300; 404) according to claim 1, wherein, upon execution, the instructions cause the system (400) to further execute: Changing (506) a strategy applied by the first VNF (108; 108-1; 108-2; 108-3) to respond to the problem in response to monitoring (502), wherein the strategy specifies a rule as to what action the first VNF (108; 108-1; 108-2; 108-3) is to take, wherein the action includes changing a Quality of Service (QoS) strategy. [3] Non-transitory machine-readable storage medium (300; 404) according to claim 2, wherein the quality of service (QoS) strategy comprises a quality of service for a data flow. [4] Non-transitory machine-readable storage medium (300; 404) according to claim 2 or 3, wherein the control information (116) identifies a strategy applied by the first VNF (108; 108-1; 108-2; 108-3) to control a data flow, and wherein the changing (506) of the strategy applied by the first VNF (108; 108-1; 108-2; 108-3) is based on the strategy identified by the control information (116). [5] Non-transitory machine-readable storage medium (300; 404) according to any one of claims 2 to 4, wherein the control information (116) of the first VNF (108; 108-1; 108-2; 108-3) is a control package which includes a strategy identifier that identifies the strategy applied by the first VNF (108; 108-1; 108-2; 108-3). [6] Non-transitory machine-readable storage medium (300; 404) according to any one of claims 1 to 5, wherein the action specified by the control information (116) comprises one or more of the following: adjusting the size of a Transmission Control Protocol (TCP) window, stopping the data flow, imposing control on the data flow rate, selecting a different route through the network (109), and changing a Quality of Service (QoS) strategy. [7] Non-transitory machine-readable storage medium (300; 404) according to any one of claims 1 to 6, wherein the resource allocation comprises an allocation of processing resources or storage resources or a combination thereof. [8] Non-transitory machine-readable storage medium (300; 404) according to any one of claims 1 to 7, wherein the control information (116) provides information about a data set that is processed by the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3) for a data flow. [9] Non-transitory machine-readable storage medium (300; 404) according to claim 8, wherein, upon execution, the instructions cause the system (400) to further execute: Determining the load of the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3) based on information about the data set. [10] Non-transitory machine-readable storage medium (300; 404) according to any one of claims 1 to 9, wherein the instructions, upon execution, cause the system (400) to further execute: Generating a visual representation of a performance or status at several different locations in the network (109), wherein the visual representation is based on the control information (116). [11] System (400), comprising: a processor (402); and a non-transitory storage medium (300; 404) on which instructions are stored that can be executed on the processor (402), for: Monitoring a network (109) comprising a collection of connected virtual network functions, VNFs (108; 108-1; 108-2; 108-3), by receiving control information (116) from a first VNF (108; 108-1; 108-2; 108-3) of the VNFs (108; 108-1; 108-2; 108-3) and by receiving control information (116) from a second VNF (108; 108-1; 108-2; 108-3) of the VNFs (108; 108-1; 108-2; 108-3), wherein the control information (116) specifies at least one action to be taken to address a problem identified by the first VNF (108; 108-1; 108-2; 108-3) and / or is covered by the second VNF (108; 108-1; 108-2; 108-3); Determine that the control information (116) from the first VNF (108; 108-1; 108-2; 108-3) indicates that the first VNF (108; 108-1; 108-2; 108-3) is overloaded and / or allocated resources are insufficient; Determine that the control information (116) from the second VNF (108; 108-1; 108-2; 108-3) indicates that the second VNF (108; 108-1; 108-2; 108-3) is over-provisioned with resources and / or allocated resources exceed a load of the second VNF (108; 108-1; 108-2; 108-3); and Modifying a resource allocation to the first VNF (108; 108-1; 108-2; 108-3) and to the second VNF (108; 108-1; 108-2; 108-3) in response to monitoring, where modifying the allocation involves allocating resources from the second VNF (108; 108-1; 108-2; 108-3) to the first VNF (108; 108-1; 108-2; 108-3). [12] System (400) according to claim 11, wherein instructions are further stored on the non-transitory storage medium (300; 404) which are executable on the processor (402) for: Changing a strategy applied by the first VNF (108; 108-1; 108-2; 108-3) to respond to the problem in response to monitoring (504), wherein the strategy specifies a rule as to what action the first VNF is to take, the action comprising a change to a Quality of Service (QoS) strategy. [13] System (400) according to claim 12 wherein the quality of service (QoS) strategy includes a quality of service for the data flow. [14] System (400) according to any one of claims 11 to 13, wherein the action specified by the control information (116) comprises one or more of the following: adjusting the size of a Transmission Control Protocol (TCP) window for the data flow, stopping the data flow, imposing control on the data flow rate, selecting a different route through the network (109), and changing a Quality of Service (QoS) strategy. [15] System (400) according to any one of claims 11 to 14, wherein the resource allocation comprises an allocation of processing resources or storage resources or a combination thereof. [16] System (400) according to any one of claims 11 to 15, wherein the control information (116) provides information about a data set that is handled by the first VNF (108; 108-1; 108-2; 108-3) and / or by the second VNF (108; 108-1; 108-2; 108-3) for a data flow, and the instructions on the processor (402) are executable to: to determine the load on the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3) based on the information about the amount of data. [17] System (400) according to claim 16, wherein the instructions are executable to modify the allocation of resources based on the load of the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3). [18] Method performed by a system (400) comprising a hardware processor (402), comprising: Monitoring (502) of a network (109) comprising a collection of connected virtual network functions, VNFs (108; 108-1; 108-2; 108-3), wherein the monitoring comprises receiving control information (116) from a first VNF (108; 108-1; 108-2; 108-3) of the VNFs (108; 108-1; 108-2; 108-3) and receiving control information (116) from a second VNF (108; 108-1; 108-2; 108-3) of the VNFs (108; 108-1; 108-2; 108-3), and wherein the control information (116) specifies at least one action to be taken to address a problem identified by the first VNF (108; 108-1; 108-2; 108-3) and / or is covered by the second VNF (108; 108-1; 108-2; 108-3); Determine that the control information (116) from the first VNF (108; 108-1; 108-2; 108-3) indicates that the first VNF (108; 108-1; 108-2; 108-3) is overloaded and / or allocated resources are insufficient; Determine that the control information (116) from the second VNF (108; 108-1; 108-2; 108-3) indicates that the second VNF (108; 108-1; 108-2; 108-3) is over-provisioned with resources and / or allocated resources exceed a load of the second VNF (108; 108-1; 108-2; 108-3); and Modifying an allocation of resources to the first VNF (108; 108-1; 108-2; 108-3) and to the second VNF (108; 108-1; 108-2; 108-3) of the assembly of connected VNFs (108; 108-1; 108-2; 108-3) in response to monitoring (502), where modifying (504) the allocation involves allocating resources from the second VNF (108; 108-1; 108-2; 108-3) to the first VNF (108; 108-1; 108-2; 108-3). [19] Method according to claim 18, wherein the control information (116) provides information about a data set that is handled by the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3) for a data flow, wherein the method further comprises: Determining the load of the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3) based on information about the data set. [20] Method according to claim 19, wherein the allocation of resources is modified (504) based on the load of the first VNF (108; 108-1; 108-2; 108-3) and / or the second VNF (108; 108-1; 108-2; 108-3).
Citation Information
Patent Citations
Virtualized network function monitoring
US20180176088A1
Data offloading method and device in slice network
WO2017198019A1