Load balancer for rapid network function scaling
The load balancer addresses the challenge of maintaining consistent traffic flow and avoiding packet reordering during network function scaling by waiting for silence periods and migrating state information, facilitating efficient network resource scaling.
Patent Information
- Application Number
- PCT/IB2024/051978
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-29
- Publication Date
- 2025-09-04
AI Technical Summary
Existing load balancers face challenges in maintaining consistent traffic flow and avoiding packet reordering during network function scaling events, particularly when state information is not migrated efficiently and packets are redirected to different network functions, leading to degraded user experience.
A load balancer that waits for a silence period in traffic flow before redirecting packets to a new network function instance, ensuring state information is migrated during this period, thereby maintaining consistency and avoiding packet reordering.
Enables fast scaling of network resources while ensuring consistent handling of traffic flows and preventing packet reordering, thereby enhancing user experience.
Smart Images

Figure IB2024051978_04092025_PF_FP_ABST
Abstract
Description
[0001] LOAD BALANCER FOR RAPID NETWORK FUNCTION SCALING TECHNICAL FIELD
[0002] The present disclosure relates generally to load balancing in communication networks and, more particularly, to redirection of network traffic following a change in network resources.
[0003] BACKGROUND
[0004] Load balancing distributes network traffic dynamically across network resources that support an application. In general, a physical network deployment typically comprises a plurality of NFs (NFs) that provide the same service. A load balancer maps individual network flows to individual instances of these NFs so that the load is balanced across the deployed NF instances. Typical load balancers act on some keys calculated based on packet characteristics (e.g., 5-tuple) to route traffic consistently among the different NF instances. Consistent routing of traffic is needed in order to minimize cache invalidations and packet reordering within one specific flow. Both problems can occur with random (non-consistent) packet forwarding.
[0005] Another method, used by Kubernetes (k8s) as one example, is flow tracking. Flow tracking is typically used together with a random load balancer that assigns an appropriate worker instance (in k8s it is called POD) to a traffic flow when the first packer arrives and stores the flow parameters in its flow tracking table. In this way, it is possible to combine the advantages of randomness and consistency with the price of increased memory footprint.
[0006] From time to time, there is a need to either scale up or scale down the NF instances providing a particular service. When the configuration of the available NFs instances changes by either adding or removing NF instances, it is typical to apply the new configuration to new traffic flows only in order to provide consistency in the flow handling. In some cases, the traffic load on NFs to be removed for service or maintenance will continue for some long-lasting sessions, which can degrade the user experience, e.g., where it is desired to replace an existing NF with a later version of the same NF. As a result, the scaling event may take a long time to complete.
[0007] For faster scaling of NFs, traffic can be redirected from one NF to another when network resources are scaled up or scaled down. But redirection of traffic flows can cause problems with consistency in the way packets in a traffic flow are handled and reordering of packets. It is typical for NFs to maintain states for the traffic flows it is handling. When a traffic flow is redirected to a different NF, the target NF will not have the state information for the traffic flow, which can negatively impact the traffic flow. Some proprietary load balancers migrate state information when a traffic flow is redirected, but it is desirable for load balancers from different vendors to be interoperable and interchangeable. Even where state information is migrated, packet reordering may occur where packets from the new, less loaded NFs overtake packets processed by a more heavily-loaded NFs, which can impact the overall quality of experience for some users.
[0008] SUMMARY
[0009] The present disclosure provides techniques for redirecting a traffic flow following a scaling event, i.e., reconfiguration of NF instances providing a service, to support fast scaling of network resources. In exemplary embodiments, migration of state information is triggered by reconfiguration of the group of NFs providing a particular service. The load balancer continues to direct traffic flows to the same NF instances while state information is migrated to the target NF instances. For each traffic flow, the load balancer waits for a pause in the traffic flow, referred to herein as a silence period. Upon detecting a new packet burst following a silence period, the load balancer redirects packets in the traffic flow to the target NF. The NF instance can be removed after all traffic flows supported by the NF have been redirected.
[0010] A first aspect of the disclosure comprises methods implemented by a load balancer of redirecting network traffic to support fast scaling of network resources processing the network traffic. In one embodiment, the method comprises receiving a reconfiguration message indicating a change in the configuration of a resource group including one or more NF instances. The method further comprises, responsive to the reconfiguration message, migrating first state information for a traffic flow served by a first NF instance to a second NF instance in the reconfigured resource group. The method further comprises directing packets for the traffic flow to the first NF instance until a new packet burst is detected. The method further comprises, after detecting the new packet burst, directing packets in the new burst to the second NF instance.
[0011] A second aspect of the disclosure comprises a load balancer configured to support fast scaling of network resources. In one embodiment, the load balancer is configured to receive a reconfiguration message indicating a change in the configuration of a resource group including one or more NF instances. The load balancer is further configured to, responsive to the reconfiguration message, migrate first state information for a traffic flow served by a first NF instance to a second NF instance in the reconfigured resource group. The load balancer is further configured to direct packets for the traffic flow to the first NF instance until a new packet burst is detected. The load balancer is further configured to, after detecting the new packet burst, direct packets in the new burst to the second NF instance.
[0012] A third aspect of the disclosure comprises a load balancer configured to support fast scaling of network resources processing the network traffic. In one embodiment, the load balancer comprises input / output (I / O) circuitry for receiving and sending packets over the communication network and processing circuitry for processing the packets. The processing circuitry is configured to, responsive to the reconfiguration message, migrate first state information for a traffic flow served by a first NF instance to a second NF instance in the reconfigured resource group. The processing circuitry is further configured to direct packets for the traffic flow to the first NF instance until a new packet burst is detected. The processing circuitry is further configured to, after detecting the new packet burst, direct packets in the new burst to the second NF instance.
[0013] A fourth aspect of the disclosure comprises a computer program for a load balancer in a communication network. The computer program comprises executable instructions that, when executed by processing circuitry in the load balancer, causes it to perform the method according to the first aspect.
[0014] A fifth aspect of the disclosure comprises a carrier containing a computer program according to the fourth aspect. The carrier is one of an electronic signal, optical signal, radio signal, or a non-transitory computer readable storage medium.
[0015] A sixth aspect of the disclosure comprises methods implemented by a source NF instance of transferring dynamic state information for a traffic flow to a target NF instance following reconfiguration of a resource group including a plurality of NF instances. In one embodiment, the method comprises receiving a packet associated with a traffic flow. The packet includes an indication to transfer dynamic state information to the target NF instance. The method further comprises, responsive to the indication, appending dynamic state information to the packet and forwarding the packet with the appended dynamic state information to the target NF instance.
[0016] A seventh aspect of the disclosure comprises a source network node configured to transfer dynamic state information for a traffic flow to a target network node following reconfiguration of a resource group including a plurality of network nodes. In one embodiment, the source network node is configured to receive a packet associated with a traffic flow. The packet includes an indication to transfer dynamic state information to a target network node. The source network node is further configured to, responsive to the indication, append dynamic state information to the packet and to forward the packet with the appended dynamic state information to the target network node.
[0017] An eighth aspect of the disclosure comprises a source network node in a communication network configured to transfer dynamic state information for a traffic flow to a target network node following reconfiguration of a resource group including a plurality of network nodes. In one embodiment, the source network node comprises network interface circuitry for communicating with a load balancer and other network nodes in a communication network and processing circuitry operatively connected to the network interface circuitry. The processing circuitry is configured to receive a packet associated with a traffic flow. The packet includes an indication to transfer dynamic state information to a target network node. The processing circuitry is further configured to, responsive to the indication, append dynamic state information to the packet and to forward the packet with the appended dynamic state information to the target network node.
[0018] A ninth aspect of the disclosure comprises a computer program for a source network node in a communication network. The computer program comprises executable instructions that, when executed by processing circuitry in a source network node, causes it to perform the method according to the sixth aspect.
[0019] A tenth aspect of the disclosure comprises a carrier containing a computer program according to the ninth aspect. The carrier is one of an electronic signal, optical signal, radio signal, or a non-transitory computer readable storage medium.
[0020] An eleventh aspect of the disclosure comprises methods implemented by a target NF instance of receiving dynamic state information for a traffic flow from a source NF instance following reconfiguration of a resource group including a plurality of NF instances. In one embodiment, the method comprises receiving a first packet associated with the traffic flow from the source network node, wherein the packet includes dynamic state information for the traffic flow. The method further comprises loading the dynamic state information into a memory of the target network node. The method further comprises sending a notification to another network node including an indication that the transfer of dynamic state information is complete.
[0021] A twelfth aspect of the disclosure comprises a target network node configured to receive dynamic state information for a traffic flow from a source network node following reconfiguration of a resource group including a plurality of network nodes. In one embodiment, the target network node is configured to receive a packet associated with the traffic flow from a source network node. The packet includes dynamic state information for the traffic flow. The target network node is further configured to load the dynamic state information into a memory of the target network node. The target network node is further configured to send a notification to another network node including an indication that the transfer of dynamic state information is complete.
[0022] An thirteenth aspect of the disclosure comprises a target network node configured to receive dynamic state information for a traffic flow from a source network node instance following reconfiguration of a resource group including a plurality of network nodes. In one embodiment, the network node comprises network interface circuitry for communicating with a load balancer and other network nodes in a communication network and processing circuitry operatively connected to the network interface circuitry. The processing circuitry is configured to receive a packet associated with the traffic flow from the source network node, wherein the packet includes dynamic state information for the traffic flow. The processing circuitry is further configured to load the dynamic state information into a memory of the target network node. The target network node is further configured to send a notification to another network node including an indication that the transfer of dynamic state information is complete.
[0023] A fourteenth aspect of the disclosure comprises a computer program for a target network node in a communication network. The computer program comprises executable instructions that, when executed by processing circuitry in a target network node, causes it to perform the method according to the eleventh aspect.
[0024] A fifteenth aspect of the disclosure comprises a carrier containing a computer program according to the fourteenth aspect. The carrier is one of an electronic signal, optical signal, radio signal, or a non-transitory computer readable storage medium.
[0025] BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1 is a block diagram illustrating a load balancer in a communication network comprising a plurality of NF instances providing the same network service or application service.
[0027] Figures 2A and 2B are flow charts illustrating packet forwarding and redirection as implemented in a load balancer according to a first embodiment.
[0028] Figures 3A and 3B are flow charts illustrating packet forwarding and redirection as implemented in a load balancer according to a second embodiment. Figure 4 is a flow chart illustrating a method implemented by a source NF instance of transferring dynamic state information to target NF instance following a scaling event.
[0029] Figure 5 is a flow chart illustrating a method implemented by a target NF instance of receiving dynamic state information from a source NF instance following a scaling event.
[0030] Figure 6 is a flow chart illustrating a method implemented by a load balancer of forwarding and redirecting packets following a scaling event.
[0031] Figure 7 is a flow chart illustrating a method implemented by a source NF instance of transferring dynamic state to target NF instance following a scaling event.
[0032] Figure 8 is a flow chart illustrating a method implemented by implemented by a target NF instance of receiving dynamic state information from a source NF instance following a scaling event.
[0033] Figure 9 is a functional block diagram of a load balancer in a communication network.
[0034] Figure 10 is a functional block diagram of a source network node in a communication network configured to support fast scaling.
[0035] Figure 1 1 is a functional block diagram of a target network node in a communication network configured to support fast scaling.
[0036] DETAILED DESCRIPTION
[0037] The present disclosure provides techniques for redirecting a traffic flow following a scaling event, i.e., reconfiguration of a group of NF instances providing a service, to support fast scaling of network resources. In exemplary embodiments, migration of state information from a source NF instance to a target NF instance is triggered by reconfiguration of the resource group providing a particular service. The load balancer continues to direct traffic flows to the same NF instances while state information is migrated to the target NF instances. For each traffic flow, the load balancer waits for a pause in the traffic flow, referred to herein as a silence period, before redirecting packets. Upon detecting a new packet burst following a silence period, the load balancer redirects packets in the traffic flow to the target NF. The NF instance can be removed after all traffic flows supported by the NF instance have been redirected.
[0038] Figure 1 illustrates a typical deployment of a load balancer 22 in a communication network 10 where the same service is provided by a plurality of virtual NFs (VNFs) or containerized NFs (CNFs) in a cloud-based network infrastructure. One advantage of NF virtualization (NFV) is the ability to rapidly scale network resources responsive to variations in traffic. The load balancer 22 as herein described is designed to enable rapid scaling of network resources while maintaining consistency in flow handling and avoiding packet re-ordering.
[0039] The communication network 10 comprises a core network 12 including plurality of NF instances 14, a network management system (NMS) 16 to manage network resources, and a load balancer 22 to distribute incoming packets among the available NF instances 14. The NF instances 14 may, for example, comprise virtual application servers ASs in a communication network, VNFs or CNFs serving, for example, as virtual user plane functions (UPFs) in a core network of a wireless communication network, or virtual radio access network (RAN) nodes in a wireless communication network. The NMS 16 comprises one or more network nodes in a management domain of the communication network 10 whose job is to manage the network resources. The NMS 16 monitors performance of the NF instances 14 and manages network resources to ensure that service level agreements (SLAs) are being met. The load balancer 22 receives the incoming network traffic and maps the network flows to individual NF instances 14 managed by the NMS 16 so that the load is balanced across the deployed NF instances 14.
[0040] In a typical deployment, multiple NF instances 14 providing the same service are deployed. The group of NF instances 14 providing the same service is referred to herein as a resource group or NF instance set. The membership of this resource group can change over time as the total amount of the network traffic varies. During periods of high traffic flows, the resource group can be scaled up by adding additional NF instances 14 to the resource group. As the amount of the network traffic drops, NF instances 14 can be removed to free up network resources and conserve power. The resource group also changes when NF instances 14 are removed for service for maintenance or upgrading. Typically, changes in the resource group are not too frequent (usually on a time scale of minutes or hours)
[0041] The NF instances 14 may have static states, dynamic states, or both. Static states remain constant for long periods of time while dynamic states may change on a per-packet basis. The dynamic state of an NF instance 14 may be stored in register-like constructs in NF data plane (DP) implementations. A resource monitor 18 in the NMS 16 monitors performance of the NF instances 14 in a resource group and provides monitoring data and notifications to a resource manager 20. Based on this information provided by the resource monitor 18, the resource manager 20 may decide to add new NF instances 14 to a resource group, remove a NF instance 14 from a resource group, or replace an NF instance 14 in the resource group. The details of the NMS 16 are not material to the present disclosure. Any existing auto-scaling approach can be used in addition to manual scaling. When scaling is needed, the NMS 16 sends the new configuration to the load balancer 22 and launches new NF instances 14 or stops unused NF instances 14 using existing application programming interfaces (APIs), such as virtualized infrastructure management (VIM) on top of a Kubernetes (K8s) cluster running CNFs.
[0042] The load balancer 22 receives incoming packets and, based on information in the packet header, directs the incoming packets to one of the NF instances 14 in the resource group. To minimize cache invalidations and packet reordering, packets associated with a single traffic flow are directed to the same NF instance 14. A traffic flow may comprise any aggregation of packets in one or more data streams grouped together for similar treatment. When packets associated with a new traffic flow are detected, the load balancer 22 selects a NF instance 14 to serve the traffic flow and stores the flow parameters in a flow tracking table. In this way it is possible to combine the advantages of randomness and consistency at the price of increased memory footprint.
[0043] Each incoming packet is tagged with a key associated with a specific traffic flow. As one example, the packets having the same key may belong to the same packet data unit (PDU) session, the same Quality of Service (QoS) flow, or the same user equipment (UE). The key serves as a flow identifier. The flow tracking table stores associations between specific keys and specific NF instances 14, which can be identified by a network address (e.g. Internet Protocol (IP) address), label, or other NF identifier (NF ID). As an example, the flow tracking table may store the key associated with a traffic flow and the IP address of a NF instance 14 to which the traffic flow is assigned. This table is updated when a traffic flow is reassigned to a new NF instance 14. When a new packet arrives, the load balancer 22 maps the key of the incoming packet to a corresponding NF instance 14 that is serving the associated traffic flow and forwards the packet to the selected NF instance 14. A traffic flow will typically have active phases and passive phases. In an active phase, the packet stream is continuous (meaning without large interruptions), while in a passive phase, the traffic intensity is low (meaning with large interruptions) or zero. In some embodiments, the packets arriving during an active phase are handled by the same NF instance 14.
[0044] When the membership of the resource group changes, there may be a need to redirect packets from one NF instance 14 to another, i.e., when the traffic flow is reassigned to a different NF instance. In one embodiment of the present disclosure, packets in a traffic flow are not redirected during an active phase of the traffic flow. Rather, the load balancer 22 waits for a passive phase and redirects the packets in the traffic flow when a new packet burst is detected following a silence period. As used herein, a packet burst is considered to be all of the packets belonging to the same traffic flow received in one active phase, i.e., between consecutive silence periods.
[0045] Figures 2A and 2B are flow charts illustrating one method 100 of forwarding and redirecting a traffic flow where the NF state for the NF instance 14 is static. The method begins when a packet arrives at the load balancer 22 (block 105). The load balancer 22 checks whether the resource group has changed since the last packet (block 1 10). If not, the load balancer 22 forwards the packet to the NF instance 14 stored in the variable LastNF (block 130). If the resource group has changed, the load balancer 22 updates the variables LastNF and CurrentNF (blocks 1 15, 120). Even though the composition of the resource group changes, the NF instance 14 serving the traffic flow may remain the same. In this case, LastNF and CurrentNF will be the same. Thus, by comparing LastNF to CurrentNF (block 125), the load balancer 22 can determine whether the traffic flow needs to be directed. If LastNF and CurrentNF are the same, meaning that the NF instance 14 for the traffic flow remains the same following the reconfiguration, the load balancer 22 forwards the packet to the NF Instance 14 stored in LastNF (block 130). On the other hand, if LastNF and CurrentNF are not the same, meaning that the NF instance 14 serving the traffic flow has changed as a result of the reconfiguration, the load balancer 22 initiates the redirection procedure shown in Figure 2B.
[0046] When the redirection procedure is triggered, the load balancer 22 initiates migration of NF static states from the source NF instance 14 to the target NF instance 14 if migration has not previously been triggered (block 135). While waiting for the static migration to finish (block 140), the load balancer 22 continues forwarding packets to the NF instance 14 stored in LastNF (block 145). Even after the migration of static states is complete, the load balancer 22 continues forwarding packets to the NF instance stored in LastNF until a new packet burst is detected to maintain consistency in the treatment of packets in the packet burst and to avoid packet re-ordering. When the static state migration is complete and a new packet burst is detected (block 150), the load balancer 22 removes or stops inactive NFs (block 155), if any, and starts forwarding packets to the NF instance stored in CurrentNF (block 160).
[0047] Figures 3A and 3B are flow charts illustrating another method 200 of forwarding and redirecting a traffic flow where the NF state of an NF instance 14 includes a dynamic state. The method begins when a packet arrives at the load balancer 22 (block 205). The load balancer 22 checks whether the resource group has changed since the last packet (block 210). If not, the load balancer 22 forwards the packet to the NF instance 14 stored in the variable LastNF (block 230). If the resource group has changed, the load balancer 22 updates the variables LastNF and CurrentNF (blocks 215, 220). Even though the composition of the resource group changes, the NF instance 14 serving the traffic flow may remain the same. In this case, LastNF and CurrentNF will be the same. Thus, by comparing LastNF to CurrentNF (block 225), the load balancer 22 can determine whether the traffic flow needs to be redirected. If LastNF and CurrentNF are the same, meaning that the NF instance 14 for the traffic flow remains the same following the reconfiguration, the load balancer 22 forwards the packet to the NF instance 14 stored in LastNF (block 230). On the other hand, if LastNF and CurrentNF are not the same, meaning that the NF instance 14 serving the traffic flow has changed as a result of the reconfiguration, the load balancer 22 initiates the redirection procedure shown in Figure 3B.
[0048] When the redirection procedure is triggered, the load balancer 22 initiates migration of NF static states from the source NF to the target NF, if migration has not previously been triggered (block 235). While waiting for the static migration to finish (block 240), the load balancer 22 continues forwarding packets to the NF instance 14 stored in LastNF (block 245). Even after the migration of static states is complete, the load balancer 22 continues forwarding packets to the NF instance 14 stored in LastNF until a new packet burst is detected to maintain consistency in the treatment of packets in the packet burst and to avoid packet re-ordering.
[0049] Once a new packet burst is detected (block 250), the load balancer 22 initiates a dynamic state migration (block 255). While waiting for completion of the dynamic state migration (block 260), the load balancer 22 tags packets for dynamic state transfer and forwards the tagged packets to the NF instance 14 stored in LastNF (blocks 265, 270). When the migration of dynamic states is complete, the load balancer 22 sets LastNF equal to CurrentNF (block 275), removes or stops inactive NF instances 14 (block 280), if any, and starts forwarding packets to the NF instance 14 stored in CurrentNF (block 285).
[0050] The process of dynamic state transfer may require some role for both the source NF instance 14 and target NF instance 14. Figure 4 illustrates a method 300 implemented by a source NF instance 14. The method 300 is triggered when a new packet arrives at the source NF instance (block 310). The source NF instance 14 checks whether the packet is tagged for state transfer (block 320). If not, the source NF instance 14 processes the packet (block 330). If the packet is tagged for state transfer, the source NF instance 14 checks whether the packet is the first packet in a new burst (block 340). Recall that the dynamic state transfer is not triggered until a new burst is detected, which means that any packets tagged for state transfer will be part of a new packet burst. The source NF instance 14 appends the current dynamic state to the first packet of the new burst and forwards the packet to the target NF instance 14 (blocks 350, 360). All other packets in the new burst are forwarded to the target NF instance 14, without appending the dynamic state (block 360). For these packets, the target NF instance 14 will update the dynamic state as part of its normal operation.
[0051] Figure 5 is a flow chart showing a method 400 implemented by a target NF instance 14. The method 400 is triggered when a new packet arrives at the target NF instance (block 410). The target NF instance 14 checks whether the packet has dynamic state information (block 420). If not, the target NF instance 14 processes the packet (block 450). If the packet contains dynamic state information, the target NF instance 14 loads the dynamic state information and sends a notification to the load balancer (block 430, 440). The load balancer 22 will then redirect packets associated with the traffic flow to the target NF instance 14. After loading the dynamic state, the target NF instance 14 processes the packet (block 450).
[0052] Figure 6 illustrates a method 500 implemented by load balancer 22 according to an embodiment. The load balancer 22 receives a reconfiguration message indicating a change in the configuration of a resource group including one or more NF instances 14 (block 510). Responsive to the reconfiguration message, the load balancer 22 migrates first state information for a traffic flow served by a first NF instance 14 to a second NF instance 14 in the reconfigured resource group (block 520). The load balancer 22 continues to direct packets for the traffic flow to the first NF instance 14 until a new packet burst is detected (block 530). After detecting the new packet burst, the load balancer 22 direct packets in the new burst to the second NF instance 14 (block 540).
[0053] In some embodiments of method 500, the first state information comprises a static state for the traffic flow.
[0054] Some embodiments of method 500 further comprise, prior to directing packets in the new burst to the second NF instance 14, directing one or more packets at a start of the new packet burst to the first NF instance 14 and tagging the one or more packets at the start of the new packet burst for dynamic state transfer.
[0055] In some embodiments of method 500, detecting the new packet burst comprises detecting the new packet burst based on an inter-packet arrival time. In other embodiments, detecting the new packet burst comprises detecting the new packet burst based on an indication in a packet belonging to the new packet burst.
[0056] Figure 7 illustrates a method 600 implemented by a source NF instance 14 according to an embodiment. The source NF instance 14 receives a packet associated with a traffic flow (block 610). The packet includes an indication to transfer dynamic state information to a target NF instance 14 (block 620). Responsive to the indication, the source NF instance 14 appends dynamic state information to the first packet (block 620) and forwards the packet with the appended dynamic state information to the target NF instance 14 (block 630).
[0057] In some embodiments of method 600, after receiving the packet with the indication to transfer dynamic state information to the target NF instance, forwarding subsequently received packets to the target NF instance 14.
[0058] Some embodiments of method 600 further comprise receiving an indication from a load balancer to stop packet processing and stopping packet processing responsive to the indication.
[0059] Figure 8 illustrates a method 700 implemented by a target NF instance 14 according to an embodiment. The target NF instance 14 receives a packet associated with the traffic flow from a source NF instance 14 (block 710). The packet includes dynamic state information for the traffic flow. The target NF instance 14 loads the dynamic state information into a memory of the target NF instance 14 (block 720). The target NF instance 14 further sends a notification to another network node (e.g., load balancer 22) including an indication that the transfer of dynamic state information is complete (block 730). The target NF optionally processes the packet after loading the dynamic state information (block 240)
[0060] Some embodiments of method 700 further comprise receiving additional packets associated with the traffic flow after sending the notification and processing the additional packets based on the dynamic state information received from the source NF instance.
[0061] Some embodiments of method 700 further comprise updating the dynamic state information after processing one or more of the additional packets.
[0062] Figure 9 illustrates an exemplary load balancer 800 in a wireless communication network configured to support fast scaling of network resources. The load balancer 800 generally comprises input / output (I / O) circuitry 810 for receiving and sending packets, processing circuitry 820, and memory 830.
[0063] The I / O circuitry 810 is part of the data plane implementation of the load balancer 800. The I / O circuitry 810 includes an input 812 for receiving incoming packets and an output 814 for sending packets to the NF instances 14 in a communication network.
[0064] The processing circuitry 820 controls the overall operation of the load balancer 800 and implements the control plane functions. The processing circuitry 820 may comprise one or more microprocessors, hardware, firmware, or a combination thereof. The processing circuitry 820 in one embodiment is configured to perform the methods herein described. According to an embodiment, the processing circuitry 820 comprises a receiving module 822 configured to receive a reconfiguration message indicating a change in the configuration of a resource group including one or more NF instances 14, a migration module 824 configured to, responsive to the reconfiguration message, migrate first state information for a traffic flow served by a first NF instance 14 to a second NF instance 14 in the reconfigured resource group, a first forwarding module 826 configured to direct packets for the traffic flow to the first NF instance 14 until a new packet burst is detected, and a second forwarding module 828 configured to direct packets in the new burst to the second NF instance 14 after detecting the new packet burst.
[0065] Memory 830 comprises both volatile and non-volatile memory for storing computer program code and data needed by the processing circuitry820 for operation. Memory 830 may comprise any tangible, non-transitory computer-readable storage medium for storing data including electronic, magnetic, optical, electromagnetic, or semiconductor data storage. Memory 830 stores a computer program 840 comprising executable instructions that configure the processing circuitry 230 to implement the perform the methods herein described. A computer program 840 in this regard may comprise one or more code modules corresponding to the means or units described above. In general, computer program instructions and configuration information are stored in a non-volatile memory, such as a ROM, erasable programmable read only memory (EPROM) or flash memory. Temporary data generated during operation may be stored in a volatile memory, such as a random access memory (RAM). In some embodiments, computer program 840 for configuring the processing circuitry 820 as herein described may be stored in a removable memory, such as a portable compact disc, portable digital video disc, or other removable media. The computer program 840 may also be embodied in a carrier such as an electronic signal, optical signal, radio signal, or computer readable storage medium.
[0066] Figure 10 illustrates an exemplary network node 900 in a wireless communication network, which may be implemented in a commercial-off-the-shelf (COS) computer or specially programmed computer. The network node 900 generally comprises interface circuitry 910, processing circuitry 920, and memory 930.
[0067] The interface circuitry 910 comprises circuitry for coupling the network node 900 to a communication network to enable communication with the load balancer and other network nodes. The interface circuitry 910 comprises part of the data plane implementation and receives packets from the load balancer.
[0068] The processing circuitry 920 controls the overall operation of the source network node 900 and is configured by software to implement the functionality of a NF or service. Processing circuitry 920 may comprise one or more microprocessors, hardware, firmware, or a combination thereof. The processing circuitry 920 includes a receiving module 922 configured to receive packets associated with a traffic flow, an appending module 924 configured to append dynamic state information to the packet, and a forwarding module 926 configured to forward the packet with the appended dynamic state information to a target network node 1000 (Figure 1 1 ).
[0069] Memory 930 comprises both volatile and non-volatile memory for storing computer program code and data needed by the processing circuitry 920 for operation. Memory 930 may comprise any tangible, non-transitory computer-readable storage medium for storing data including electronic, magnetic, optical, electromagnetic, or semiconductor data storage. Memory 930 stores a computer program 940 comprising executable instructions that configure the processing circuitry 230 to implement the perform the methods herein described. A computer program 940 in this regard may comprise one or more code modules corresponding to the means or units described above. In general, computer program instructions and configuration information are stored in a non-volatile memory, such as a ROM, erasable programmable read only memory (EPROM) or flash memory. Temporary data generated during operation may be stored in a volatile memory, such as a random access memory (RAM). In some embodiments, computer program 940 for configuring the processing circuitry 920 as herein described may be stored in a removable memory, such as a portable compact disc, portable digital video disc, or other removable media. The computer program 940 may also be embodied in a carrier such as an electronic signal, optical signal, radio signal, or computer readable storage medium.
[0070] Figure 1 1 illustrates an exemplary target network node 1000 in a wireless communication network, which may be implemented in a commercial-off-the-shelf (COS) computer or specially programmed computer. The network node 1000 generally comprises interface circuitry 1010, processing circuitry 1020, and memory 1030.
[0071] The interface circuitry 1010 comprises circuitry for coupling the network node 1000 to a communication network to enable communication with the load balancer and other network nodes. The interface circuitry 1010 comprises part of the data plane implementation and receives packets from the load balancer.
[0072] The processing circuitry 1020 controls the overall operation of the source network node 1000 and is configured by software to implement the functionality of a NF or service. The processing circuitry 1020 may comprise one or more microprocessors, hardware, firmware, or a combination thereof. In an embodiment, the processing circuitry 1020 includes a receiving module 1022 configured to receive a packet associated with the traffic flow from the source network node 900, wherein the packet includes dynamic state information for the traffic flow, a loading module 1024 configured to load the dynamic state information into a memory of the target network node 1000, and a notification module 1026 configured to send a notification to another network node (e.g., load balancer 22) including an indication that the target network node is active (block 730).
[0073] Memory 1030 comprises both volatile and non-volatile memory for storing computer program code and data needed by the processing circuitry 1020 for operation. Memory 1030 may comprise any tangible, non-transitory computer-readable storage medium for storing data including electronic, magnetic, optical, electromagnetic, or semiconductor data storage. Memory 1030 stores a computer program 1040 comprising executable instructions that configure the processing circuitry 230 to implement the perform the methods herein described. A computer program 1040 in this regard may comprise one or more code modules corresponding to the means or units described above. In general, computer program instructions and configuration information are stored in a non-volatile memory, such as a ROM, erasable programmable read only memory (EPROM) or flash memory. Temporary data generated during operation may be stored in a volatile memory, such as a random access memory (RAM). In some embodiments, computer program 1040 for configuring the processing circuitry 1020 as herein described may be stored in a removable memory, such as a portable compact disc, portable digital video disc, or other removable media. The computer program 1040 may also be embodied in a carrier such as an electronic signal, optical signal, radio signal, or computer readable storage medium.
[0074] Those skilled in the art will also appreciate that embodiments herein further include corresponding computer programs. A computer program comprises instructions which, when executed on at least one processor of an apparatus, cause the apparatus to carry out any of the respective processing described above. A computer program in this regard may comprise one or more code modules corresponding to the means or units described above.
[0075] Embodiments further include a carrier containing such a computer program. This carrier may comprise one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
[0076] In this regard, embodiments herein also include a computer program product stored on a non-transitory computer readable (storage or recording) medium and comprising instructions that, when executed by a processor of an apparatus, cause the apparatus to perform as described above.
[0077] Embodiments further include a computer program product comprising program code portions for performing the steps of any of the embodiments herein when the computer program product is executed by a computing device. This computer program product may be stored on a computer readable recording medium.
[0078] Additional embodiments will now be described. At least some of these embodiments may be described as applicable in certain contexts and / or wireless network types for illustrative purposes, but the embodiments are similarly applicable in other contexts and / or wireless network types not explicitly described.
Claims
CLAIMSWhat is claimed is:1 . A method (500) implemented by a load balancer (22, 800) of redirecting network traffic to support fast scaling of network resources processing the network traffic, the method comprising: receiving (510) a reconfiguration message indicating a change in the configuration of a resource group including one or more NF instances (14); responsive to the reconfiguration message, migrating (520) first state information for a traffic flow served by a first NF instance (14) in the resource group before reconfiguration to a second NF instance (14) in the reconfigured resource group; directing packets (530) for the traffic flow to the first NF instance (14) until a new packet burst is detected; and after detecting the new packet burst, directing packets (540) in the new burst to the second NF instance (14).
2. The method (500) of claim 1 , wherein the first state information comprises a static state for the traffic flow.
3. The method (500) of claim 1 or 2, further comprising: prior to directing packets in the new burst to the second NF instance (14), directing one or more packets at a start of the new packet burst to the first NF instance (14); and tagging the one or more packets at the start of the new packet burst for dynamic state transfer.
4. The method (500) of any one of claims 1 - 3, wherein detecting the new packet burst comprises: detecting the new packet burst based on an inter-packet arrival time.
5. The method (500) of any one of claims 1 - 3, wherein detecting the new packet burst comprises:detecting the new packet burst based on an indication in a packet belonging to the new packet burst.
6. A method (600) implemented by a source NF instance (14) of transferring dynamic state information for a traffic flow to a target NF instance (14) in a reconfigured resource group following reconfiguration of the resource group, the method comprising: receiving (610) a packet associated with a traffic flow, wherein the packet includes an indication to transfer dynamic state information to the target NF instance (14); appending (620), responsive to the indication, dynamic state information to the packet; and forwarding (630) the packet with the appended dynamic state information to the target NF instance (14).
7. The method (600) of claim 6, further comprising: after receiving the packet with the indication to transfer dynamic state information to the target NF instance (14), forwarding subsequently received packets to the target NF instance (14).
8. The method (500) of claim 6 or 7, further comprising: receiving an indication from a load balancer (22) to stop packet processing; and stopping packet processing responsive to the indication.
9. A method (700) implemented by a target NF instance (14) in a reconfigured resource group of receiving dynamic state information for a traffic flow from a source NF instance (14) following reconfiguration of the resource group, the method comprising: receiving a packet associated with the traffic flow from the source NF instance (14), wherein the packet includes dynamic state information for the traffic flow; loading the dynamic state information into memory of the target NF instance (14); and after loading the dynamic state information into memory, sending an indication to another network node including an indication that the transfer of dynamic state information is complete.
10. The method (710) of claim 9, further comprising: receiving additional packets associated with the traffic flow after sending the notification; and processing the additional packets based on the dynamic state information received from the source network function instance (14).11 . The method (720) of claim 10, further comprising: updating the dynamic state information after processing one or more of the additional packets.
12. A load balancer (22, 800) in a communication network for distributing packets among a plurality of network function instances, the load balancer being configured to: receive a reconfiguration message indicating a change in the configuration of a resource group including one or more NF instances; responsive to the reconfiguration message, migrate first state information for a traffic flow served by a first NF instance in the resource group before reconfiguration to a second NF instance in the reconfigured resource group; direct packets for the traffic flow to the first NF instance until a new packet burst is detected; and after detecting the new packet burst, direct packets in the new burst to the second NF instance13. The load balancer (22, 800) of claim 12, further configured to perform the method of any one of claims 2 - 5.
14. A load balancer (22, 800) in a communication network for distributing packets among a plurality of network function instances (14), the load balancer (22, 800) comprising: input / output circuitry (810) for receiving and sending packets; and processing circuitry (820) configured to: receive a reconfiguration message indicating a change in the configuration of a resource group including one or more NF instances;responsive to the reconfiguration message, migrate first state information for a traffic flow served by a first NF instance in the resource group before reconfiguration to a second NF instance in the reconfigured resource group; direct packets for the traffic flow to the first NF instance until a new packet burst is detected; and after detecting the new packet burst, direct packets in the new burst to the second NF instance15. The load balancer (22, 800) of claim 14 wherein the processing circuitry (820) is further configured to perform the method of any one of claims 2 - 5.
16. A computer program comprising executable instructions that, when executed by processing circuitry (820) in a load balancer (22, 800) in a wireless communication network, causes it to perform the method of any one of embodiments 1 - 5.
17. A carrier containing a computer program (840) of claim 16, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium (830).
18. A non-transitory computer-readable storage medium (830) containing a computer program comprising executable instructions that, when executed by processing circuitry (820) in load balancer (22, 800) in a wireless communication network causes it to perform the methods of any one of embodiment 31 - 36.
19. A source network node in a communication network, the source network node being configured to: receive a packet associated with a traffic flow, wherein the packet includes an indication to transfer dynamic state information to the target NF instance; append, responsive to the indication, dynamic state information to the first packet; and forward the packet with the appended dynamic state information to the target NF instance.
20. The source network node of claim 19, further configured to perform the method of any one of claims 7 - 8.21 . A source network node (900) in a communication network, the source network node (900) comprising: network interface circuitry (910) for communicating with a load balancer and other network nodes in a communication network and processing circuitry operatively connected to the network interface circuitry; and processing circuitry (920) configured to: receive a packet associated with a traffic flow, wherein the packet includes an indication to transfer dynamic state information to the target NF instance; append, responsive to the indication, dynamic state information to the first packet; and forward the packet with the appended dynamic state information to the target NF instance22. The source network node (900) of claim 21 wherein the processing circuitry (920) is further configured to perform the method of any one of claims 7 - 8.
23. A computer program comprising executable instructions that, when executed by processing circuitry (920) in a source network node (900) in a wireless communication network, causes it to perform the method of any one of embodiments 6 - 8.
24. A carrier containing a computer program (940) of claim 23, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium (930).
25. A non-transitory computer-readable storage medium (930) containing a computer program comprising executable instructions that, when executed by processing circuitry (920) in source network node (900) in a wireless communication network causes it to perform the methods of any one of embodiment 6 - 8.
26. A target network node in a communication network, the target network node being configured to: receive a packet associated with the traffic flow from the source NF instance, wherein the packet includes dynamic state information for the traffic flow; load the dynamic state information into memory of the target NF instance; andafter loading the dynamic state information into memory, send an indication to another network node including an indication that the transfer of dynamic state information is complete.
27. The target network node of claim 26, further configured to perform the method of any one of claims 10 - 12.
28. A target network node (1000) in a communication network, the target network node (1000) comprising: network interface circuitry (1010) for communicating with a load balancer and other network nodes in a communication network and processing circuitry operatively connected to the network interface circuitry; and processing circuitry (1020) configured to: receive a packet associated with the traffic flow from the source NF instance, wherein the packet includes dynamic state information for the traffic flow; load the dynamic state information into memory of the target NF instance; and after loading the dynamic state information into memory, send an indication to another network node including an indication that the transfer of dynamic state information is complete.
29. The target network node (1000) of claim 28 wherein the processing circuitry (1020) is further configured to perform the method of any one of claims 10 - 12.
30. A computer program comprising executable instructions that, when executed by processing circuitry (1020) in a target network node (1000) in a wireless communication network, causes it to perform the method of any one of embodiments 9 - 12.31 . A carrier containing a computer program (1040) of claim 30, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium (1030).
32. A non-transitory computer-readable storage medium (1030) containing a computer program comprising executable instructions that, when executed by processing circuitry (1020) in target network node (1000) in a wireless communication network causes it to perform the methods of any one of embodiment 9 - 12.
Citation Information
Patent Citations
Method and system for burst based packet processing
US20160301632A1