Network function processing method and apparatus based on resource pooling, and storage medium

CN122845429APending Publication Date: 2026-09-29HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510381442.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-27
Publication Date
2026-09-29

AI Technical Summary

Technical Problem

然而,在网络业务配置包括的至少一个网络功能的资源需求大于每个可编程网络处理单元的资源规格的情况下,由CPU对网络流量执行该至少一个网络功能时,会降低处理网络流量的性能和效率

Benefits of technology

[0007]在网络业务配置包括的至少一个网络功能的资源需求大于每个可编程网络处理单元的资源规格的情况下,基于多个可编程网络处理单元的资源规格将网络业务配置拆分成多个部分,多个部分包括第一部分和第二部分,多个可编程网络处理单元包括资源规格大于或等于第一部分的资源需求的第一可编程网络处理单元和资源规格大于或等于第二部分的资源需求的第二可编程网络处理单元。这样在第一可编程网络处理单元上部署第一部分,在第二可编程网络处理单元上部署第二部分。如此不需要在除可编程网络处理单元之外的其他设备(如CPU)上部署网络业务配置,第一可编程网络处理单元和第二可编程网络处理单元对网络流量执行网络业务配置中的网络功能,会带来更高的处理性能和效率,即提高了处理网络流量的性能和效率。另外,由于将网络业务配置部署在多个可编程网络处理单元上,而可编程网络处理单元的成本低,从而降低了处理网络流量的成本。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122845429A_ABST
    Figure CN122845429A_ABST
Patent Text Reader

Abstract

The application discloses a network function processing method and device based on resource pooling and a storage medium, and belongs to the field of cloud computing. The method comprises the following steps: acquiring network service configuration, wherein the network service configuration comprises at least one network function. In the case that the resource specification of each programmable network processing unit in a plurality of programmable network processing units is less than the resource requirement of the at least one network function, the at least one network function is split into a plurality of parts, the plurality of parts comprise a first part and a second part, the plurality of programmable network processing units comprise a first programmable network processing unit with a resource specification greater than or equal to the resource requirement of the first part and a second programmable network processing unit with a resource specification greater than or equal to the resource requirement of the second part. The first programmable network processing unit is configured to deploy the first part, and the second programmable network processing unit is configured to deploy the second part. The application can improve the performance and efficiency of processing network traffic and reduce processing cost.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of cloud computing, and in particular to a network function processing method, apparatus and storage medium based on resource pooling. Background Technology

[0002] A network service configuration includes at least one network function, which is used to process network traffic. A cloud service platform can deploy the network service configuration to be processed on the infrastructure. The infrastructure then executes each network function on the network traffic according to the execution order of the network service configuration to process the network traffic.

[0003] In related technologies, infrastructure includes programmable network processing units (PCUs) and central processing units (CPUs). When the infrastructure has PCUs with resource specifications greater than or equal to the resource requirements of at least one network function included in the network service configuration, the cloud service platform can deploy the at least one network function included in the network service configuration on a single PCU, and the PCU will execute the at least one network function on network traffic. When the resource requirements of at least one network function included in the network service configuration exceed the resource specifications of each PCU, the cloud service platform can deploy the at least one network function included in the network service configuration on a CPU, and the CPU will execute the at least one network function on network traffic.

[0004] Compared to a CPU, having a programmable network processing unit (CPU) perform at least one network function on network traffic can result in higher processing performance and efficiency. However, when the resource requirements of at least one network function included in a network service configuration exceed the resource specifications of each CPU, executing that function on network traffic by a CPU will reduce the performance and efficiency of processing network traffic. Furthermore, the high cost of CPUs increases the cost of processing network traffic. Summary of the Invention

[0005] This application provides a network function processing method, apparatus, and storage medium based on resource pooling to improve the performance and efficiency of processing network traffic and reduce the cost of processing network traffic. The technical solution is as follows:

[0006] In a first aspect, this application provides a network function processing method based on resource pooling. The method is applied to a cloud service platform for managing infrastructure, which includes multiple programmable network processing units (PCUs). In the method, service information is acquired, including resource requirement configuration and network service configuration. The network service configuration includes at least one network function, and the resource requirement configuration includes the resource requirements of at least one network function. Based on the resource requirement configuration and network service configuration, it is determined that the resource specifications of each of the multiple PCUs are less than the resource requirements of at least one network function. Based on the resource specifications of the multiple PCUs, the at least one network function is divided into multiple parts, including a first part and a second part. The multiple PCUs include a first PCU with resource specifications greater than or equal to the resource requirements of the first part and a second PCU with resource specifications greater than or equal to the resource requirements of the second part. The first PCU is configured to deploy the first part, and the second PCU is configured to deploy the second part.

[0007] When the resource requirements of at least one network function included in the network service configuration exceed the resource specifications of each programmable network processing unit (PLC), the network service configuration is split into multiple parts based on the resource specifications of the multiple PLCs. These multiple parts include a first part and a second part. The multiple PLCs include a first PLC with resource specifications greater than or equal to the resource requirements of the first part and a second PLC with resource specifications greater than or equal to the resource requirements of the second part. Thus, the first part is deployed on the first PLC, and the second part is deployed on the second PLC. This eliminates the need to deploy the network service configuration on other devices (such as CPUs) besides the PLCs. The first and second PLCs execute the network functions in the network service configuration on network traffic, resulting in higher processing performance and efficiency, i.e., improved performance and efficiency in processing network traffic. Furthermore, since the network service configuration is deployed on multiple PLCs, and the cost of PLCs is low, the cost of processing network traffic is reduced.

[0008] In one possible implementation, at least one network function includes a first network function comprising multiple code statements and / or configuration data. The resource requirement of the first network function is larger than the resource specification of each programmable network processing unit. The first network function is split into a first part and a second part. The first part includes a first set of statements and / or first sub-configuration data, and the second part includes a second set of statements and / or second sub-configuration data. The first and second set of statements belong to multiple code statements, and the first and second sub-configuration data belong to configuration data. Alternatively, the first part includes multiple code statements and / or first sub-configuration data, and the second part includes multiple code statements and / or second sub-configuration data. This ensures that the resource requirement of each part is less than or equal to the resource specification of some programmable network processing units, thereby allowing each part to be deployed on different programmable network processing units.

[0009] In another possible implementation, at least one network function includes a second network function whose resource requirements are less than or equal to the resource specifications of the first programmable network processing unit, and whose performance requirements are greater than the performance specifications of each programmable network processing unit. The first part includes the second network function. The plurality of programmable network processing units also include m third programmable network processing units, each with resource specifications greater than or equal to the resource requirements of the second network function. The sum of the performance specifications of the m third programmable network processing units and the performance specifications of the first programmable network processing unit is greater than or equal to the performance requirements of the second network function, where m is an integer greater than or equal to 1. The first part is deployed by configuring the m third programmable network processing units.

[0010] If the performance requirements of the second network function are greater than the performance specifications of each programmable network processing unit, the second network function is deployed on the first programmable network processing unit and m third programmable network processing units, and the performance requirements of the second network function are met by the first programmable network processing unit and m third programmable network processing units.

[0011] In another possible implementation, the multiple parts also include a third part, and the multiple programmable network processing units further include a fourth programmable network processing unit with resource requirements greater than or equal to those of the third part. The fourth programmable network processing unit is configured to deploy the third part. The resource requirements of the third part are less than or equal to those of the fourth programmable network processing unit.

[0012] In another possible implementation, at least one network function includes at least one third network function, the sum of the resource requirements of each third network function being less than or equal to the resource specification of the fourth programmable network processing unit, and the third part including at least one third network function, thereby enabling the serial execution of at least one third network function on network traffic.

[0013] In another possible implementation, the execution order of the first part precedes the execution order of the second part. First deployment information is sent to the first programmable network processing unit and second deployment information is sent to the second programmable network processing unit. The first deployment information includes the first part and the second deployment information includes the second part. The first deployment information is used to instruct the first programmable network processing unit to receive the first network traffic, process the first network traffic based on the first part to obtain the second network traffic, and send the second network traffic to the second programmable network processing unit. The second deployment information is used to instruct the second programmable network processing unit to process the second network traffic based on the second part.

[0014] In this way, by sending first deployment information to the first programmable network processing unit and second deployment information to the second programmable network processing unit, the first part is deployed on the first programmable network processing unit and the second part is deployed on the second programmable network processing unit.

[0015] In another possible implementation, the first deployment information also includes routing information, which instructs the first programmable network processing unit to send the second network traffic to the second programmable network processing unit based on the routing information. Since the first programmable network processing unit sends the second network traffic to the second programmable network processing unit based on the routing information, the second programmable network processing unit processes the second network traffic, thereby chaining the execution of network functions on the network traffic according to the order of network functions included in the network service configuration.

[0016] In another possible implementation, the infrastructure also includes a switching system through which multiple programmable network processing units communicate.

[0017] In another possible implementation, the switching system includes at least one switching device connected in a cascading manner.

[0018] In another possible implementation, multiple programmable network processing units can be programmable application-specific integrated circuits (ASICs) and / or data processing units (DPUs).

[0019] Secondly, this application provides a network function processing apparatus based on resource pooling for executing the method in the first aspect or any possible implementation of the first aspect. Specifically, the system includes units for executing the method in the first aspect or any possible implementation of the first aspect.

[0020] Thirdly, this application provides a computing device cluster, the computing device cluster including at least one computing device, each computing device including a processor and a memory;

[0021] The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method of the first aspect or any possible implementation thereof.

[0022] Fourthly, this application provides a computer program product containing instructions that, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the method of the first aspect or any possible implementation thereof.

[0023] Fifthly, this application provides a computer-readable storage medium including computer program instructions that, when executed by a cluster of computing devices, perform the method of the first aspect or any possible implementation thereof.

[0024] In a sixth aspect, this application provides a chip including a memory and a processor, wherein the memory is used to store computer instructions, and the processor is used to call and execute the computer instructions from the memory to perform the method in the first aspect or any possible implementation thereof. Attached Figure Description

[0025] Figure 1 This is a schematic diagram of the structure of a cloud system provided in an embodiment of this application;

[0026] Figure 2 This is a schematic diagram of another cloud system structure provided in an embodiment of this application;

[0027] Figure 3 This is a schematic diagram of another cloud system structure provided in an embodiment of this application;

[0028] Figure 4 This is a schematic diagram of another cloud system structure provided in an embodiment of this application;

[0029] Figure 5 This is a flowchart of a network function processing method based on resource pooling provided in an embodiment of this application;

[0030] Figure 6This is a schematic diagram of a network service configuration provided in an embodiment of this application;

[0031] Figure 7 This is a schematic diagram illustrating how network service configuration can be divided into multiple parts, as provided in an embodiment of this application.

[0032] Figure 8 This is a schematic diagram illustrating the deployment of network service configurations to a programmable network processing unit, as provided in an embodiment of this application.

[0033] Figure 9 This is another schematic diagram illustrating how network service configuration can be divided into multiple parts, as provided in an embodiment of this application.

[0034] Figure 10 This is a schematic diagram of a network function processing device based on resource pooling provided in an embodiment of this application;

[0035] Figure 11 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application;

[0036] Figure 12 This is a schematic diagram of a computing device cluster structure provided in an embodiment of this application;

[0037] Figure 13 This is a schematic diagram of another computing device cluster structure provided in an embodiment of this application. Detailed Implementation

[0038] The rapid development of cloud computing technology has brought unprecedented opportunities to various industries, but it has also brought numerous technical challenges. One important technical challenge is network service configuration, which includes at least one network function. In cloud computing technology, network service configuration can be implemented in software. Cloud computing technology combines at least one network function to form a chain-like network service configuration, that is, the network service configuration is obtained by linking at least one network function together. Network service configuration can also be called a network function chain.

[0039] In some embodiments, a network service configuration including at least one network function can be: the network service configuration includes implementation code for at least one network function. For each network function, the implementation code is used to implement that network function. Therefore, concatenating at least one network function to obtain a network service configuration can be: concatenating the implementation code for at least one network function to obtain a network service configuration.

[0040] In some embodiments, a user may input business information into the cloud service platform. This business information includes network service configuration and resource requirement configuration for the network service configuration. The network service configuration includes at least one network function, and the resource requirement configuration includes the resource requirements of at least one network function. Optionally, the resource requirement of at least one network function may be equal to the sum of the resource requirements of each network function, and the resource requirement configuration may also include the resource requirements of each network function in the network service configuration.

[0041] In some embodiments, the service information may also include performance requirement configurations for network service configurations, which include the performance requirements for each network function in the network service configuration.

[0042] For each network function, the implementation code includes at least one code statement that implements the network function. The resource requirements of the network function indicate how many resources the network function needs, which can be storage resources and / or computing resources, etc. In other words, the resource requirements of the network function can include its storage resource requirements and / or computing resource requirements. The performance requirements of the network function can include the amount of data that the network function needs to process per second.

[0043] In some embodiments, the implementation code of the network function may also include configuration data for the network function. This configuration data includes the configuration required to execute the network function.

[0044] For example, assuming this network function is used for packet forwarding, its configuration data could be a forwarding information table. This table stores the correspondence between the identifiers of source interfaces and the identifiers of outgoing interfaces. This correspondence indicates that when a packet is received using the source interface, the outgoing interface can be used to forward that packet.

[0045] Network functions define the processing operations for handling network traffic.

[0046] At least one network function in a network service configuration may include some or all of the following network functions: flow control, congestion control, encoding, decoding, data fragmentation and / or reassembly, error detection and recovery, packet forwarding, or frame delimitation and synchronization.

[0047] Of course, the above are just some examples of network functions. In actual implementation, other network functions can be configured according to requirements. However, each network function will not be listed here.

[0048] A network service configuration represents a network service. To implement a certain network service, a network service configuration can be configured on the cloud service platform. Then, the cloud service platform can deploy the network service configuration to the infrastructure, and the infrastructure will execute the network service configuration.

[0049] The infrastructure can receive network traffic and, based on the execution order of each network function included in the network service configuration, execute each network function on the received network traffic to process the network traffic.

[0050] See Figure 1 This application provides a cloud system 100, which includes a cloud service platform 10 and infrastructure 20. The cloud service platform 10 can manage the infrastructure 20.

[0051] For example, cloud service platform 10 obtains business information input by the user, which includes resource requirement configuration and network service configuration. The network service configuration is deployed on infrastructure 20. Infrastructure 20 can receive network traffic and, based on the execution order of each network function included in the network service configuration, sequentially executes each network function included in the network service configuration to process the network traffic.

[0052] See Figure 2 Infrastructure 20 may include a plurality of programmable network processing units 201 and a switching system, the switching system including at least one switching device 202, the plurality of programmable network processing units 201 being interconnected through the at least one switching device 202. Infrastructure 20 may also be referred to as a programmable network processing unit pool.

[0053] The operation of cloud service platform 10 in configuring and deploying network services on infrastructure 20 can be as follows:

[0054] The network service configuration is deployed on the programmable network processing unit 201, which executes each network function included in the network service configuration sequentially on the network traffic based on the execution order of each network function included in the network service configuration.

[0055] In some embodiments, the at least one switching device 202 interconnects the plurality of programmable network processing units 201 in a cascading manner, so that each programmable network processing unit 201 can communicate with other programmable network processing units 202 through the at least one switching device 202.

[0056] Optionally, the at least one switching device 202 is cascaded to form a switching system, through which multiple programmable network processing units 202 communicate with each other.

[0057] For example, see Figure 3 Infrastructure 20 includes a first programmable network processing unit 2011, a second programmable network processing unit 2012, a third programmable network processing unit 2013, a fourth programmable network processing unit 2014, a fifth programmable network processing unit 2015, a first switching device 2021, a second switching device 2022, and a third switching device 2023.

[0058] The first switching device 2021 communicates with the second switching device 2022 and the third switching device 2023. The second switching device 2022 communicates with the first programmable network processing unit 2011 and the second programmable network processing unit 2012. The third switching device 2023 communicates with the third programmable network processing unit 2013, the fourth programmable network processing unit 2014 and the fifth programmable network processing unit 2015.

[0059] In other words, the first switching device 2021, the second switching device 2022, and the third switching device 2023 are interconnected in a two-level cascade manner, connecting the first programmable network processing unit 2011, the second programmable network processing unit 2012, the third programmable network processing unit 2013, the fourth programmable network processing unit 2014, and the fifth programmable network processing unit 2015.

[0060] In some embodiments, see Figure 4 For each programmable network processing unit 201, the programmable network processing unit 201 includes at least one hard thread, and for a switching device 202 connected to the programmable network processing unit 201, the switching device 202 is connected to the at least one hard thread.

[0061] Optionally, the programmable network processing unit 201 includes at least one first interface, and at least one hard thread included in the programmable network processing unit 201 corresponds one-to-one with the at least one first interface, with each hard thread connected to the first interface corresponding to each hard thread.

[0062] The switching device 202 includes at least one second interface, and for each of the at least one hard thread, the first interface corresponding to the hard thread is connected to a second interface on the switching device 202, thereby enabling the hard thread to be connected to the switching device 202.

[0063] For example, see Figure 4The first programmable network processing unit 2011 includes four hard threads and four first interfaces. The four hard threads are designated as hard thread 1, hard thread 2, hard thread 3, and hard thread 4. The four first interfaces are designated as first interface a, first interface b, first interface c, and first interface d. Hard thread 1 is connected to first interface a, hard thread 2 is connected to first interface b, hard thread 3 is connected to first interface c, and hard thread 4 is connected to first interface d.

[0064] The second programmable network processing unit 2012 includes four hard threads and four first interfaces. The four hard threads are hard thread 5, hard thread 6, hard thread 7, and hard thread 8. The four first interfaces are first interface e, first interface f, first interface g, and first interface h. Hard thread 5 is connected to first interface e, hard thread 6 is connected to first interface f, hard thread 7 is connected to first interface g, and hard thread 8 is connected to first interface h.

[0065] For the second switching device 2022 connected to the first programmable network processing unit 2011 and the second programmable network processing unit 2012, the second switching device 2022 includes eight second interfaces, namely second interface A, second interface B, second interface C, second interface D, second interface E, second interface F, second interface G and second interface H.

[0066] The first interface a is connected to the second interface A, the first interface b is connected to the second interface B, the first interface c is connected to the second interface C, and the first interface d is connected to the second interface D, thereby enabling the hard thread 1, hard thread 2, hard thread 3 and hard thread 4 included in the first programmable network processing unit 2011 to be connected to the second switching device 2022.

[0067] The first interface e is connected to the second interface E, the first interface f is connected to the second interface F, the first interface g is connected to the second interface G, and the first interface h is connected to the second interface H, thereby enabling the hard threads 5, 6, 7 and 8 included in the second programmable network processing unit 2012 to be connected to the second switching device 2022.

[0068] like Figure 4 As shown, the connection methods between the hard threads included in the third programmable network processing unit 2013, the fourth programmable network processing unit 2014, and the fifth programmable network processing unit 2015 and the third switching device 2023 are described above and will not be elaborated here.

[0069] In some embodiments, the plurality of programmable network processing units 201 may include application-specific integrated circuits (ASICs) and / or data processing units (DPUs), etc. At least one switching device 202 of the switching system may include switches and / or routers, etc.

[0070] In some embodiments, the resource specifications of each programmable network processing unit 201 included in the infrastructure 20 may be equal or unequal, and / or, the performance specifications of each programmable network processing unit 201 included in the infrastructure 20 may be equal or unequal.

[0071] The resources of the programmable network processing unit 201 may include storage resources and / or computing power resources, and the resource specifications of the programmable network processing unit 201 may include storage resource specifications and / or computing power resource specifications. The storage resource specifications are the size of the storage resources included in the programmable network processing unit 201, and the computing power resource specifications are the size of the computing power resources included in the programmable network processing unit 201.

[0072] The performance specifications of the programmable network processing unit 201 may include the amount of data that the programmable network processing unit 201 can process per second. For example, if the data that the programmable network processing unit 201 can process is requests, then the performance specifications of the programmable network processing unit 201 may include the number of requests that the programmable network processing unit 201 can process per second.

[0073] The network service configuration obtained by the cloud service platform 10 can exist in the following situations:

[0074] Scenario 1: The resource requirements of at least one network function included in the network service configuration may exceed the resource specifications of each programmable network processing unit 201. That is, the sum of the resource requirements of each network function included in the network service configuration may exceed the resource specifications of each programmable network processing unit 201. The sum of the resource requirements of each network function included in the network service configuration is the resource requirement of that at least one network function. And / or,

[0075] Scenario 2: The network service configuration may contain a network function whose performance requirements exceed the performance specifications of each programmable network processing unit 201.

[0076] In these cases, because the resources of a single programmable network processing unit 201 may not meet the resource requirements of at least one network function in the network service configuration and / or the performance of a single programmable network processing unit 201 may not meet the performance requirements of a certain network function in the network service configuration, the cloud service platform 10 cannot deploy at least one network function included in the network service configuration to a single programmable network processing unit 201, so that the single programmable network processing unit 201 cannot sequentially execute each network function included in the network service configuration on network traffic based on the execution order of each network function included in the network service configuration.

[0077] In some embodiments, the programmable network processing unit 201 may be a network processor with programmable characteristics for processing network traffic.

[0078] The programmable network processing unit 201 is a specific device that executes network functions included in the network service configuration. Compared to executing each network function included in the network service configuration on network traffic through other devices (such as CPU), executing each network function included in the network service configuration on network traffic through the programmable network processing unit 201 can make the performance and efficiency of processing network traffic higher.

[0079] In some embodiments, the structure of the programmable network processing unit 201 is simpler than that of other devices (such as a CPU), and the cost of the programmable network processing unit 201 is lower than that of other devices (such as a CPU), that is, the price of the programmable network processing unit 201 is lower than that of other devices (such as a CPU).

[0080] Although the structure of the programmable network processing unit 201 is simpler than that of other devices (such as a CPU), it is a processing unit used to process network traffic. Therefore, using the programmable network processing unit 201 to process network traffic can improve the efficiency and performance of network traffic processing. This is similar to a graphics processing unit (GPU) used to process images. Generally, the structure of a GPU is simpler than that of a CPU, but the efficiency and performance of GPU image processing are higher than those of CPU image processing.

[0081] If the cloud service platform 10 cannot deploy at least one network function included in the network service configuration to the programmable network processing unit 201, but instead deploys at least one network function included in the network service configuration to other devices (such as a CPU), the performance and efficiency of processing network traffic will be reduced. Furthermore, other devices such as CPUs are expensive, and using other devices such as CPUs to process network traffic also increases the cost of processing network traffic. To avoid these technical problems, the embodiments of this application can solve these technical problems through any of the following embodiments.

[0082] See Figure 5 This application provides a network function processing method 500 based on resource pooling, which can be applied to... Figure 1 , Figure 2 , Figure 3 or Figure 4 The cloud system 100 is shown. The execution entity of the method 500 can be the cloud service platform of the cloud system. The cloud system also includes basic equipment, which the cloud service platform can manage. The basic equipment includes multiple programmable network processing units. The method 500 includes the following process.

[0083] Step 501: Obtain service information, which includes resource requirement configuration and network service configuration. The network service configuration includes at least one network function, and the resource requirement configuration includes the resource requirements of at least one network function.

[0084] In some embodiments, resource requirement configuration may also include resource requirements for each network function in the network service configuration.

[0085] In some embodiments, the service information also includes performance requirements configuration for network service configuration, which includes the performance requirements of each network function in the network service configuration.

[0086] The network service configuration including at least one network function means that the network service configuration includes the implementation code of the at least one network function. For each network function included in the network service configuration, the implementation code of the network function includes at least one code statement that implements the network function.

[0087] Optionally, the implementation code for the network function may also include configuration data for the network function.

[0088] The following are some ways to obtain business information.

[0089] Method 1: The cloud service platform locally stores business information, specifically the implementation code for each network function included in the network service configuration, as well as the corresponding resource requirement configuration and / or performance requirement configuration. In step 501, the cloud service platform retrieves the locally stored network service configuration, resource requirement configuration, and / or performance requirement configuration.

[0090] Method 2: The cloud service platform can receive a business information configuration request. The business information configuration request includes network service configuration and the corresponding resource requirement configuration and / or performance requirement configuration. That is, the business information configuration request includes the implementation code of each network function in the network service configuration and the corresponding resource requirement configuration and / or performance requirement configuration.

[0091] The business information configuration request may be sent by the administrator to the cloud service platform, or it may be sent by the user to the cloud service platform.

[0092] The business information configuration request is used to configure at least one network function included in the network business configuration to the cloud service platform.

[0093] In some embodiments, a cloud service platform may include one or more network functions. For the network service configuration required by the service information configuration request, if the cloud service platform includes some of the network functions in the network service configuration, then the service information configuration request includes identification information of those network functions and each network function in the network service configuration other than those network functions. The cloud service platform receives the service information configuration request and, based on the identification information of those network functions included in the service information configuration request, obtains those network functions locally from the cloud service platform. Since the service information configuration request includes each network function in the network service configuration other than those network functions, the obtained network functions and the network functions included in the service information configuration request are combined to obtain the network service configuration.

[0094] For example, a cloud service platform includes network function 1 and network function 2. The service information configuration request received by the cloud service platform includes the identification information of network function 1, the identification information of network function 2, network function 3, and network function 4. Based on the identification information of network function 1 and network function 2, network function 1 and network function 2 are obtained locally from the cloud service platform. The obtained network function 1 and network function 2, along with network function 3 and network function 4 included in the service information configuration request, are combined to obtain the network service configuration. Figure 6As shown, the network service configuration includes network function 1, network function 2, network function 3 and network function 4. The execution order of network function 1 is before the execution order of network function 2, the execution order of network function 2 is before the execution order of network function 3, and the execution order of network function 3 is before the execution order of network function 4.

[0095] Step 502: Based on the resource requirement configuration and the network service configuration, determine whether the resource requirement of at least one network function in the network service configuration is greater than the resource specification of each programmable network processing unit. If the resource requirement of the at least one network function is greater than the resource specification of each programmable network processing unit, then proceed to step 503. If the resource requirement of the at least one network function is not greater than the resource specification of each programmable network processing unit, then proceed to step 505.

[0096] The resource requirement of at least one network function in the network service configuration is equal to the sum of the resource requirements of each network function included in the network service configuration.

[0097] The network service configuration including at least one network function means that the network service configuration includes the implementation code of the at least one network function. In step 502, the resource requirements of the at least one network function are obtained from the resource requirement configuration corresponding to the network service configuration. Alternatively,

[0098] Obtain the resource requirements of each network function from the resource requirement configuration corresponding to the network service configuration, calculate the sum of the resource requirements of each network function, and obtain the resource requirements of at least one network function in the network service configuration.

[0099] Then, the resource requirements of at least one network function in the network service configuration are compared with the resource specifications of each programmable network processing unit.

[0100] In some embodiments, for each network function included in the network service configuration, the resource requirements of some network functions may be less than or equal to the resource specifications of some programmable network processing resources among the plurality of programmable network processing units, while the resource requirements of some network functions may be greater than the resource specifications of each programmable network processing unit among the plurality of programmable network processing units. In step 502, a first network function in the network service configuration whose resource requirements are greater than the resource specifications of each programmable network processing unit may also be identified.

[0101] Optionally, during implementation: for each network function's resource requirements, the resource specifications of each programmable network processing unit are compared with the resource requirements of that network function to determine the first network function whose resource requirements are greater than the resource specifications of each programmable network processing unit.

[0102] In some embodiments, for each network function included in the network service configuration, the performance requirements of some network functions may be less than or equal to the performance specifications of certain programmable network processing resources among the plurality of programmable network processing units, while the performance requirements of some network functions may be greater than the performance specifications of each programmable network processing unit among the plurality of programmable network processing units. In step 502, a second network function in the network service configuration whose performance requirements are greater than the performance specifications of each programmable network processing unit may also be identified.

[0103] Optionally, during implementation: the performance requirements of each network function are obtained from the resource requirement configuration corresponding to the network service configuration. For each network function, the performance specifications of each programmable network processing unit are compared with the performance requirements of that network function to determine a second network function whose performance requirements are greater than the performance specifications of each programmable network processing unit.

[0104] For example, such as Figure 6 The network service configuration shown includes network function 1, network function 2, network function 3, and network function 4. Figure 6 The resource requirement configuration corresponding to the network service configuration shown is used to obtain the resource requirements for network function 1, network function 2, network function 3, and network function 4. And, from... Figure 6 The performance requirements configuration corresponding to the network service configuration shown includes the performance requirements for network function 1, network function 2, network function 3, and network function 4.

[0105] The resource specifications of each programmable network processing unit are compared with the resource requirements of network function 1, network function 2, network function 3, and network function 4, respectively, to determine that network function 2 has a greater resource requirement than the resource specifications of each programmable network processing unit. Similarly, the performance specifications of each programmable network processing unit are compared with the performance requirements of network function 1, network function 2, network function 3, and network function 4, respectively, to determine that network function 1 has a greater performance requirement than the performance specifications of each programmable network processing unit.

[0106] If the resource requirements of at least one network function in the network service configuration are less than or equal to the resource specifications of some programmable network processing units, there may be a second network function in the network service configuration with performance requirements greater than the performance specifications of each programmable network processing unit.

[0107] Step 503: Based on the resource specifications of the multiple programmable network processing units, at least one network function in the network service configuration is divided into multiple parts. For each part, the multiple programmable network processing units include programmable network processing units with resource specifications greater than or equal to the resource requirements of that part.

[0108] The plurality of parts include a first part and a second part, wherein the execution order of the first part precedes the execution order of the second part, and the plurality of programmable network processing units include a first programmable network processing unit with resource specifications greater than or equal to the resource requirements of the first part and a second programmable network processing unit with resource specifications greater than or equal to the resource requirements of the second part.

[0109] Optionally, it is assumed that the first part includes a second network function, such that the performance requirements of the first part are greater than the performance specifications of each programmable network processing unit. It is also assumed that the performance requirements of the second part are less than or equal to the performance specifications of the second programmable network processing unit. The plurality of programmable network processing units further includes m third programmable network processing units, where m is an integer greater than or equal to 1, and the sum of the performance specifications of the first programmable network processing unit and the m third programmable network processing units is greater than or equal to the performance requirements of the first part.

[0110] Optionally, the plurality of parts may also include one or more other parts. For example, the plurality of parts may also include a third part, wherein the execution order of the second part precedes the execution order of the third part, and the plurality of programmable network processing units may include a fourth programmable network processing unit whose resource specifications are greater than or equal to the resource requirements of the third part. The performance requirements of the third part are less than or equal to the performance specifications of the fourth programmable network processing unit.

[0111] In some embodiments, at least one network function of the network service configuration includes a first network function whose resource requirements are greater than the resource specifications of each programmable network processing unit. When splitting the network service configuration, the first network function is split into at least two parts, that is, the plurality of parts include the at least two parts.

[0112] The implementation code for the first network function includes multiple code statements that implement the first network function and / or configuration data for the first network function. The first network function can be split in the following two ways.

[0113] The first approach is to split the multiple code statements into at least two statement sets, each statement set including at least one code statement, and / or to split the configuration data of the first network function into at least two sub-data, resulting in at least two parts, each part including a statement set and / or a sub-data.

[0114] For each section, multiple programmable network processing units include programmable network processing units with resource specifications greater than or equal to the resource requirements of that section. The computing resources required to execute the set of statements included in that section are less than or equal to the computing resources of that programmable network processing unit, and the storage resources required to store the sub-data included in that section are less than or equal to the storage resources of that programmable network processing unit.

[0115] For example, the at least two parts include the first part and the second part described above. Multiple code statements of the first network function are split into a first statement set and a second statement set, where the first statement set includes at least one code statement and the second statement set includes at least one code statement. And / or, the configuration data of the first network function is split into first sub-data and second sub-data, thus obtaining the first part and the second part, where the first part includes the first statement set and / or the first sub-data, and the second part includes the second statement set and / or the second sub-data.

[0116] The second approach involves splitting the configuration data of the first network function into at least two sub-data items, resulting in at least two parts, each of which includes one sub-data item and multiple code statements for the first network function.

[0117] In some embodiments, for each of the at least two parts, although the part includes multiple code statements of the first network function, because the part includes a sub-data instead of the full configuration data of the first network function, when the part is executed, one or more code statements of the first network function are executed instead of the full code statements of the first network function. The configuration data required to execute the one or more code statements is the sub-data included in the part. The plurality of programmable network processing units include programmable network processing units whose resource specifications are greater than or equal to the resource requirements of the part. Therefore, the computing power required to execute the part is less than or equal to the computing power resource specifications of the programmable network processing unit, and the storage resource required to store the sub-data included in the part is less than or equal to the storage resource specifications of the programmable network processing unit.

[0118] For example, the at least two parts include the first part and the second part described above. The configuration data of the first network function is split into first sub-data and second sub-data, thus obtaining the first part and the second part. The first part includes multiple code statements of the first network function and the first sub-data, and the second part includes multiple code statements of the first network function and the second sub-data.

[0119] In some embodiments, at least one network function of a network service configuration includes at least one third network function executed sequentially, wherein the sum of the resource requirements of each third network function is less than or equal to the resource specifications of some of the programmable network processing units among a plurality of programmable network processing units. When splitting the network service configuration, the at least one third network function can be split into a part. For example, the at least one third network function can be split into a third part, and the third part includes the at least one third network function, that is, the third part includes the implementation code of at least one third network function.

[0120] For each of the multiple split parts, if it is the first part, a first operation can be added at the end of the part. This first operation is used to send the result processed by this part to the next part. If the part is a part other than the first and last parts, a second operation can be added at the beginning of the part and a first operation can be added at the end of the part. The second operation is used to receive the result sent by the previous part. If the part is the last part, a second operation can be added at the beginning of the last part.

[0121] Next, as follows Figure 6 Taking the network service configuration shown as an example, based on the resource specifications of each programmable network processing unit, the following will be configured: Figure 6 The network service configuration shown is divided into four parts: Part 1, Part 2, Part 3, and Part 4.

[0122] like Figure 7 As shown, the resource requirements of network function 1 are less than or equal to the resource specifications of some of the programmable network processing units (PLCs) among the multiple programmable network processing units (PLCs), while the resource requirements of network function 2 are greater than the resource specifications of each of the multiple PLCs. Therefore, network function 1 is split into part 1, i.e., part 1 includes network function 1. Furthermore, network function 2 is split into part 2 and part 3, where the resource requirements of part 2 are less than or equal to the resource specifications of some of the multiple PLCs, and the resource requirements of part 3 are less than or equal to the resource specifications of some of the multiple PLCs.

[0123] The sum of the resource requirements of network function 3 and network function 4 is less than or equal to the resource specifications of some of the programmable network processing units among the multiple programmable network processing units. Therefore, network function 3 and network function 4 are split into part 4, which includes network function 3 and network function 4.

[0124] Step 504: Configure the first programmable network processing unit to deploy the first part and configure the second programmable network processing unit to deploy the second part. The multiple programmable network processing units include the first programmable network processing unit and the second programmable network processing unit. End.

[0125] The resource specifications of the first programmable network processing unit are greater than or equal to the resource requirements of the first part, and the resource specifications of the second programmable network processing unit are greater than or equal to the resource requirements of the second part.

[0126] In step 504, first deployment information is sent to the first programmable network processing unit and second deployment information is sent to the second programmable network processing unit. The first deployment information includes a first part and the second deployment information includes a second part.

[0127] The cloud service platform sends first deployment information to the first programmable network processing unit and second deployment information to the second programmable network processing unit to deploy the first part on the first programmable network processing unit and the second part on the second programmable network processing unit.

[0128] Optionally, the first programmable network processing unit includes at least one hard thread, and the first portion can be deployed onto some or all of the hard threads included in the first programmable network processing unit. The second programmable network processing unit includes at least one hard thread, and the second portion can be deployed onto some or all of the hard threads included in the second programmable network processing unit.

[0129] The first deployment information is used to instruct the first programmable network processing unit to receive the first network traffic, process the first network traffic based on the first part to obtain the second network traffic, and send the second network traffic to the second programmable network processing unit. The second deployment information is used to instruct the second programmable network processing unit to process the second network traffic based on the second part.

[0130] In some embodiments, the first deployment information further includes first routing information, which is used to instruct the first programmable network processing unit to send second network traffic to the second programmable network processing unit based on the first routing information.

[0131] Optionally, the first routing information may include a destination address and first next-hop information. The destination address may be the destination address of the first network traffic, and the first next-hop information may include the address of the second programmable network processing unit.

[0132] In some embodiments, at least one network function in the network service configuration includes a second network function whose performance requirements exceed the performance specifications of each programmable network processing unit. For the portion including the second network function, this portion is deployed on multiple programmable network processing units. That is, the same deployment information, including this portion, needs to be sent to multiple programmable network processing units, so that each programmable network processing unit includes this portion, and each programmable network processing unit can process different data of the same network traffic based on this portion.

[0133] For example, assuming the first part includes a second network function, the cloud service platform, in addition to deploying the first part on the first programmable network processing unit, also needs to deploy the first part to m third programmable network processing units. That is, besides sending the first deployment information to the first programmable network processing unit, the cloud service platform also needs to send the first deployment information to the m third programmable network processing units, where the sum of the performance specifications of each third programmable network processing unit and the performance specifications of the first programmable network processing unit is greater than or equal to the performance requirements of the second network function. This achieves the deployment of the first part on the first programmable network processing unit and on each of the third programmable network processing units.

[0134] The first deployment information is used to instruct the first programmable network processing unit to receive first data, process the first data based on the first part (second network function) to obtain second data, and send the second data to the second programmable network processing unit. It is also used to instruct the i-th third programmable network processing unit to receive third data, process the third data based on the first part (second network function) to obtain fourth data, and send the fourth data to the second programmable network processing unit. i is a positive integer less than or equal to m. The first network traffic includes the first data and the third data, and the second network traffic includes the second data and the fourth data.

[0135] The first deployment information is used to instruct the first programmable network processing unit to send second data to the second programmable network processing unit based on the first routing information, and to instruct the i-th third programmable network processing unit to send fourth data to the second programmable network processing unit based on the first routing information.

[0136] In some embodiments, the plurality of parts may further include one or more other parts. For example, the plurality of parts may also include a third part, which is deployed on the fourth programmable network processing unit. That is, the cloud service platform also sends third deployment information to the fourth programmable network processing unit, the third deployment information including the third part, and the second deployment information is also used to instruct the second programmable network processing unit to send the third network traffic obtained from processing the second network traffic to the fourth programmable network processing unit, and the third deployment information is used to instruct the fourth programmable network processing unit to process the third network traffic based on the third part.

[0137] In some embodiments, the second deployment information further includes second routing information, which is used to instruct the second programmable network processing unit to send third network traffic to the fourth programmable network processing unit based on the second routing information.

[0138] Optionally, the second routing information may include a destination address and a second next-hop information. The destination address may be the destination address of the third network traffic, and the second next-hop information may include the address of the fourth programmable network processing unit, the destination address of the first network traffic, and the destination address of the third network traffic.

[0139] The first programmable network processing unit, the second programmable network processing unit, the third programmable network processing unit, and the fourth programmable network processing unit mentioned above are selected by the cloud service platform from the infrastructure.

[0140] For the first part of these multiple parts, which is the part executed first in the order, the cloud service platform can configure third routing information on the switching system. This third routing information includes the destination address and third next-hop information. The third next-hop information includes the address of the programmable network processing unit deployed in the first part. For network traffic whose destination address is the same as the destination address included in the third routing information, the third routing information is used to instruct the switching system, upon receiving the network traffic, to send it to the programmable network processing unit deployed in the first part.

[0141] Optionally, the cloud service platform can configure third-party routing information on the top-level switching device of the switching system and provide users with the address of the top-level switching device. This allows users to send network traffic to the switching system based on the address of the top-level switching device. For example... Figure 3 and Figure 4 As shown, the top-level switching device of the switching system can be the first switching device 2021.

[0142] For example, the first part mentioned above is the first part of the execution sequence. The cloud service platform can configure third routing information on the top-level switching device of the switching system. The third routing information includes the destination address and the third next-hop information. The third next-hop information includes the address of the first programmable network processing unit, and the destination address included in the third routing information is the same as the destination address of the first network traffic. In this way, the top-level switching device receives the first network traffic and sends the first network traffic to the first programmable network processing unit based on the third routing information.

[0143] In some embodiments, the first part is deployed on m third programmable network processing units. The cloud service platform can also configure m fourth routing information on the top-level switching device of the switching equipment, with each of the m fourth routing information corresponding one-to-one with one of the m third programmable network processing units. The i-th fourth routing information includes a destination address and fourth next-hop information, where i is a positive integer less than or equal to m. The fourth next-hop information includes the address of the i-th third programmable network processing unit, and the destination address included in the i-th fourth routing information is the same as the destination address of the first network traffic. Thus, when the top-level switching device of the switching system receives the first network traffic, it sends the first data of the first network traffic to the first programmable network processing unit based on the third routing information, and sends the third data of the first network traffic to the i-th third programmable network processing unit based on the i-th fourth routing information.

[0144] In some embodiments, after receiving the first deployment information, the first programmable network processing unit can establish a first tunnel with the second programmable network processing unit in the switching system based on the first routing information. After receiving the second deployment information, the second programmable network processing unit can establish a second tunnel with the fourth programmable network processing unit in the switching system based on the second routing information. Thus, the first programmable network processing unit sends second network traffic to the second programmable network processing unit through the first tunnel, and the second programmable network processing unit sends third network traffic to the fourth programmable network processing unit through the second tunnel.

[0145] Optionally, the first network traffic includes at least one first message. A first programmable network processing unit receives the first message and executes a first part on the first message to process the first message and obtain a second message. Based on the first routing information, a third message can be obtained by adding a message header to the second message through a first operation. The destination address included in the message header of the third message is the address of the second programmable network processing unit. The third message is sent to the second programmable network processing unit through the first tunnel, and the second network traffic includes the third message.

[0146] The second programmable network processing unit receives the third message, obtains the second message from the third message through a second operation, and executes a second part on the second message to process the second message and obtain the fourth message. Based on the second routing information, a header can be added to the fourth message through a first operation to obtain the fifth message. The header of the fifth message includes the destination address of the fourth programmable network processing unit. The fifth message is sent to the fourth programmable network processing unit through the second tunnel, and the third network traffic includes the fifth message.

[0147] The fourth programmable network processing unit receives the fifth message, obtains the fourth message from the fifth message through the second operation, and executes the third part on the fourth message to process the fourth message.

[0148] Optionally, the first programmable network processing unit can also sign the second message to obtain first signature information, and the third message also includes the first signature information. The second programmable network processing unit can also verify the second message based on the first signature information, and execute the second part of the second message after the verification is successful.

[0149] Furthermore, the second programmable network processing unit can also sign the fourth message to obtain second signature information, and the fifth message also includes the second signature information. The fourth programmable network processing unit can also verify the fourth message based on the second signature information, and execute the third part of the fourth message after the verification is successful.

[0150] In some embodiments, when the first portion is deployed on a first programmable network processing unit and m third programmable network processing units, after receiving the first deployment information, the first programmable network processing unit can establish a first tunnel with the second programmable network processing unit in the switching system based on the first routing information. After receiving the first deployment information, the i-th third programmable network processing unit can establish a third tunnel with the second programmable network processing unit in the switching system based on the first routing information. Thus, the first programmable network processing unit sends second data to the second programmable network processing unit through the first tunnel, and the i-th third programmable network processing unit sends fourth data to the second programmable network processing unit through the third tunnel.

[0151] Optionally, the first data may include a first packet 1 of the first network traffic. A first programmable network processing unit receives the first packet 1 and executes a first part on the first packet 1 to process the first packet 1 and obtain a second packet 1. Based on the first routing information, a header can be added to the second packet 1 through a first operation to obtain a third packet 1. The header of the third packet 1 includes a destination address that is the address of the second programmable network processing unit. The third packet 1 is sent to the second programmable network processing unit through the first tunnel, and the second data of the second network traffic includes the third packet 1.

[0152] The third data may include the first packet 2 of the first network traffic. The i-th third programmable network processing unit receives the first packet 2, executes the first part of the first packet 2 to process the first packet 2 and obtain the second packet 2. Based on the first routing information, a packet header can be added to the second packet 2 through the first operation to obtain the third packet 2. The destination address included in the packet header of the third packet 2 is the address of the second programmable network processing unit. The third packet 2 is sent to the second programmable network processing unit through the third tunnel. The fourth data of the second network traffic includes the third packet 2.

[0153] Next, as follows Figure 7Taking the network service configuration shown as an example, these multiple parts include Part 1, Part 2, Part 3, and Part 4. The performance requirements of Part 1 are greater than the performance specifications of each programmable network processing unit (PLC), but less than or equal to the sum of the performance specifications of PLC A1 and PLC A2. The resource specifications of PLC A1 are greater than or equal to the resource requirements of Part 1, and the resource specifications of PLC A2 are greater than or equal to the resource requirements of Part 1. Therefore, the cloud service platform selects two PLCs from the infrastructure: PLC A1 and PLC A2.

[0154] Part 2's performance and resource requirements are less than or equal to the performance and resource specifications of Programmable Network Processing Unit B among the multiple Programmable Network Processing Units. Therefore, the cloud service platform selects Programmable Network Processing Unit B from the infrastructure. Part 3's performance and resource requirements are less than or equal to the performance and resource specifications of Programmable Network Processing Unit C among the multiple Programmable Network Processing Units. Therefore, the cloud service platform selects Programmable Network Processing Unit C from the infrastructure. Part 4's performance and resource requirements are less than or equal to the performance and resource specifications of Programmable Network Processing Unit D among the multiple Programmable Network Processing Units. Therefore, the cloud service platform selects Programmable Network Processing Unit D from the infrastructure.

[0155] The cloud service platform sends first deployment information to programmable network processing units A1 and A2, the first deployment information including part 1. It sends second deployment information to programmable network processing unit B, the second deployment information including part 2. It sends third deployment information to programmable network processing unit C, the third deployment information including part 3. It sends fourth deployment information to programmable network processing unit D, the fourth deployment information including part 4. See also... Figure 8 Part 1 is deployed on both programmable network processing units A1 and A2, part 2 is deployed on programmable network processing unit B, part 3 is deployed on programmable network processing unit C, and part 4 is deployed on programmable network processing unit D.

[0156] In this way, programmable network processing unit A1 receives the first data of the first network traffic, processes the first data based on part 1 to obtain the second data, and sends the second data to programmable network processing unit B. Programmable network processing unit A2 receives the third data of the first network traffic, processes the third data based on part 1 to obtain the fourth data, and sends the fourth data to programmable network processing unit B.

[0157] Programmable network processing unit B receives second data and fourth data to obtain second network traffic. Based on part 2, it processes the second network traffic to obtain third network traffic and sends the third network traffic to programmable network processing unit C. Programmable network processing unit C receives the third network traffic, processes it based on part 3 to obtain fourth network traffic, and sends the fourth network traffic to programmable network processing unit D. Programmable network processing unit D receives the fourth network traffic and processes it based on part 4.

[0158] Step 505: Deploy the network service configuration to the fifth programmable network processing unit. The fifth programmable network processing unit is a programmable network processing unit among multiple programmable network processing units whose resource specifications are greater than or equal to the resource requirements of at least one network function in the network service configuration. End.

[0159] In some embodiments, the performance specifications of the fifth programmable network processing unit may be greater than or equal to the performance requirements of each network function in the network service configuration.

[0160] Thus, the fifth programmable network processing unit receives the first network traffic and executes each network function on the first network traffic based on the execution order of each network function included in the network service configuration.

[0161] In some embodiments, if the resource requirement of at least one network function in the network service configuration is less than or equal to the resource specification of the fifth programmable network processing unit, and there is a second network function in the network service configuration with a performance requirement greater than the performance specification of the fifth programmable network processing unit, the cloud service platform will also deploy the network service configuration to n sixth programmable network processing units, where n is an integer greater than or equal to 1. The sum of the performance specifications of the fifth programmable network processing unit and the performance specifications of the n sixth programmable network processing units is greater than or equal to the performance requirement of each network function in the network service configuration, and the resource specification of each sixth programmable network processing unit is greater than or equal to the resource requirement of at least one network function in the network service configuration.

[0162] The fifth programmable network processing unit receives the first data of the first network traffic and executes each network function on the first data based on the execution order of each network function included in the network service configuration. The j-th sixth programmable network processing unit receives the third data of the first network traffic and executes each network function on the third data based on the execution order of each network function included in the network service configuration, where j is a positive integer less than or equal to n.

[0163] In this embodiment, when the resource requirement of at least one network function in the network service configuration exceeds the resource specifications of each programmable network processing unit (PLC), the network service configuration is split into multiple parts. The resource requirement of each part is less than or equal to the resource specifications of some PLCs. This allows multiple parts to be deployed on multiple PLCs, which then execute the multiple network functions included in the network service configuration. This avoids deploying the network service configuration on other devices such as CPUs, improving the performance and efficiency of network traffic processing. Furthermore, since deploying the network service configuration on multiple PLCs is cheaper than using CPUs or other devices, using multiple PLCs to execute each network function included in the network service configuration on network traffic reduces the cost of processing network traffic.

[0164] This application proposes a pooling and virtualization method that supports programmable ASICs. By cascading multiple programmable ASICs with a switch to form a programmable ASIC resource pool, the core and hard threads of the programmable ASICs are abstracted and decomposed to support different types of deployment models, including one-to-many, many-to-one, and many-to-many virtualization models.

[0165] Compared to the one-to-many deployment model on a single programmable ASIC, embodiments of this application enable the programmable ASIC to support both many-to-one and many-to-many deployment models.

[0166] One or more programmable ASICs are cascaded through switches to form a programmable ASIC resource pool. This pool is centrally managed by a cloud service platform, and the resources within are presented to the user as virtual programmable ASICs. The cloud service platform provides users with a comprehensive solution for compilation, building, testing, deployment, orchestration, and modification. Simultaneously, the cloud service platform also provides users with a general domain-specific language (DSL) (i.e., platform DSL). Upon receiving the user's business DSL, required table resource configuration (i.e., Tab Spec), and performance configuration (i.e., Perf Spec), the cloud service platform compiles both the business DSL and platform DSL based on the resource and performance configurations. Then, the business code (the implementation code for network functions) is deployed on a programmable ASIC with matching specifications. This may involve one or more hard threads of a single programmable ASIC, or one or more programmable ASICs.

[0167] Detailed implementation process

[0168] 1. The cloud service platform receives user service DSL (Network Function Chain), Tab Spec (including resource requirements), and Perf Spec (including performance requirements).

[0169] The cloud service platform compiles the business DSL and platform DSL as a whole based on the Tab Spec and Perf Spec.

[0170] 2. If the cloud service platform splits the network function chain into multiple stages, the cloud service platform will also automatically add an encap operation (the first operation mentioned above) at the end of each stage during compilation to transmit the original message, intermediate results and metadata of the next stage. At the same time, it will add a decap operation (the second operation mentioned above) at the beginning of each stage to receive the original message, intermediate results and metadata of the previous stage, so as to support communication between programmable ASICs after the channel is opened during deployment.

[0171] 3. The cloud service platform deploys the compiled code for each stage onto one or more programmable ASICs. In addition, during deployment, the cloud service platform will also establish communication channels between network function stages using the Tunnel protocol, and configure multiple ports on the Switch to form a bond to provide services externally.

[0172] This application utilizes pooling and virtualization technologies of programmable ASICs to extend the application of programmable ASICs in multi-virtual-multiple or multi-virtual-one scenarios. A possible implementation is a cloud service model based on programmable ASICs, providing users with a comprehensive programmable ASIC solution covering compilation, building, testing, deployment, orchestration, and modification services. Users only need to provide business code, performance, and resource specifications.

[0173] The user's DSL service includes Figure 9 The diagram shows a network function chain of four network functions. During the compilation process, the cloud service platform discovered that a single programmable ASIC could not meet the resource requirements of this service's DSL. Therefore, the network function chain was broken down into three stages, each of which can be deployed on a single programmable ASIC. To support tunnel transmission, cap, decap, and other operations were added to the end and beginning of each stage during compilation.

[0174] The cloud service platform deploys three phases on programmable ASICs 0, 1, and 2, respectively. Phases 1 and 2 each utilize an entire programmable ASIC, while phase 3 uses only one hard thread on a single programmable ASIC. The hard threads on the programmable ASICs are isolated via port isolation. A channel is established between programmable ASICs 0 and 1, using a single-layer switch connection. Between programmable ASICs 1 and 2, a channel is built using two layers of switches. After service deployment, the service is exposed through a port on the highest-layer switch, with traffic flowing sequentially through programmable ASICs 0, 1, and 2 to complete all service processing.

[0175] The user's DSL includes a single network function, but it involves a very large table, exceeding the resource specifications of a single programmable ASIC. At compile time, the cloud service horizontally splits this large table into three parts based on the hash value of the ID, deploying each part on a separate programmable ASIC. A similar tunnel setup will also be performed during deployment.

[0176] When the specifications of a single programmable ASIC cannot meet the performance requirements of a user's single business, the cloud service deploys the code of the business on multiple programmable ASICs and provides services to the outside world through the highest-level switch port. Traffic is forwarded to multiple programmable ASICs for processing through multi-level switches.

[0177] In real-world applications, when the specifications of a single programmable ASIC cannot meet the resource or performance requirements of a business, one or more of the above scenarios will usually occur simultaneously. In such cases, cloud services will combine various methods to complete the compilation and deployment of the business, such as network function chain decomposition during compilation, large table decomposition of a single network function, and channel construction during deployment.

[0178] See Figure 10 This application provides a network function processing device 1000 based on resource pooling, the device 1000 being deployed in... Figure 1 , Figure 2 , Figure 3 or Figure 4 The cloud service platform in the cloud system shown, or the device 1000 deployed in Figure 5 The cloud service platform of the method 500 shown. The device 1000 is used to manage infrastructure, which includes multiple programmable network processing units, and the device 1000 includes:

[0179] The processing unit 1001 is used to acquire service information, which includes resource requirement configuration and network service configuration. The network service configuration includes at least one network function, and the resource requirement configuration includes the resource requirements of at least one network function.

[0180] The processing unit 1001 is also configured to determine, based on resource requirements and network service configuration, that the resource specifications of each of the multiple programmable network processing units are less than the resource requirements of at least one network function.

[0181] The processing unit 1001 is further configured to divide at least one network function into multiple parts based on the resource specifications of multiple programmable network processing units. The multiple parts include a first part and a second part. The multiple programmable network processing units include a first programmable network processing unit with resource specifications greater than or equal to the resource requirements of the first part and a second programmable network processing unit with resource specifications greater than or equal to the resource requirements of the second part.

[0182] The sending unit 1002 is configured to configure the first programmable network processing unit to deploy the first part and the second programmable network processing unit to deploy the second part.

[0183] Optionally, for a detailed explanation of how processing unit 1001 acquires business information, please refer to [link to relevant documentation]. Figure 5 The details of step 501 in method 500 shown will not be explained in detail here.

[0184] Optionally, the processing unit 1001 determines, based on resource requirements and network service configuration, that the resource specifications of each programmable network processing unit among the multiple programmable network processing units are less than the resource requirements of at least one network function. For a detailed implementation process, see [link to relevant documentation]. Figure 5 The details of step 502 in method 500 shown will not be explained in detail here.

[0185] Optionally, for a detailed implementation process of processing unit 1001 decomposing at least one network function into multiple parts based on the resource specifications of multiple programmable network processing units, see [link to relevant documentation]. Figure 5 The details of step 503 in method 500 shown will not be explained in detail here.

[0186] Optionally, for details on configuring the first programmable network processing unit to deploy the first part and configuring the second programmable network processing unit to deploy the second part, see [link to documentation]. Figure 5 The details of step 504 in method 500 shown will not be explained in detail here.

[0187] Optionally, the execution order of the first part precedes the execution order of the second part. The sending unit 1002 is used for:

[0188] Sending first deployment information to a first programmable network processing unit and sending second deployment information to a second programmable network processing unit, wherein the first deployment information includes the first part and the second deployment information includes the second part, the first deployment information is used to instruct the first programmable network processing unit to receive first network traffic, process the first network traffic based on the first part to obtain second network traffic, and send the second network traffic to the second programmable network processing unit, and the second deployment information is used to instruct the second programmable network processing unit to process the second network traffic based on the second part.

[0189] Optionally, for details of how the sending unit 1002 sends the first deployment information to the first programmable network processing unit and the second deployment information to the second programmable network processing unit, please refer to [link to relevant documentation]. Figure 5 The details of step 504 in method 500 shown will not be explained in detail here.

[0190] Optionally, the first deployment information also includes routing information, which is used to instruct the first programmable network processing unit to send the second network traffic to the second programmable network processing unit based on the routing information.

[0191] Optionally, at least one network function includes a first network function, which includes multiple code statements and / or configuration data, and the resource requirements of the first network function are greater than the resource specifications of each programmable network processing unit.

[0192] Processing unit 1001 is configured to split the first network function into a first part and a second part, wherein the first part includes a first statement set and / or a first sub-configuration data, and the second part includes a second statement set and / or a second sub-configuration data, wherein the first statement set and the second statement set belong to the plurality of code statements, and the first sub-configuration data and the second sub-configuration data belong to configuration data; or,

[0193] The first part includes multiple code statements and / or the first sub-configuration data, and the second part includes multiple code statements and / or the second sub-configuration data.

[0194] Optionally, at least one network function includes a second network function, the resource requirement of the second network function being less than or equal to the resource specification of the first programmable network processing unit, and the performance requirement of the second network function being greater than the performance specification of each programmable network processing unit, the first part including the second network function; the plurality of programmable network processing units further include m third programmable network processing units with resource specifications greater than or equal to the resource requirement of the second network function, the sum of the performance specification of each third programmable network processing unit and the performance specification of the first programmable network processing unit being greater than or equal to the performance requirement of the second network function, where m is an integer greater than or equal to 1.

[0195] The transmitting unit 1002 is also used to configure m third programmable network processing units to deploy the first part.

[0196] Optionally, the sending unit 1002 is configured with m third programmable network processing units. For a detailed implementation process of the first part, please refer to [link / reference needed]. Figure 5 The details of step 504 in method 500 shown will not be explained in detail here.

[0197] Optionally, the multiple parts also include a third part, and the multiple programmable network processing units also include a fourth programmable network processing unit with resource specifications greater than or equal to the resource requirements of the third part;

[0198] The transmitting unit 1002 is also used to configure the fourth programmable network processing unit to deploy the third part.

[0199] Optionally, at least one network function includes at least one third network function, the sum of the resource requirements of each third network function being less than or equal to the resource specifications of the fourth programmable network processing unit, and the third part including at least one third network function.

[0200] Optionally, the infrastructure also includes a switching system through which multiple programmable network processing units communicate.

[0201] Optionally, the switching system includes at least one switching device connected in a cascading manner.

[0202] Optionally, the multiple programmable network processing units include programmable application-specific integrated circuits (ASICs) and / or data processing units (DPUs).

[0203] Both the processing unit 1001 and the sending unit 1002 can be implemented in software or in hardware. For example, the implementation of the sending unit 1002 will be described below using the processing unit 1001 as an example. Similarly, the implementation of the sending unit 1002 can refer to the implementation of the processing unit 1001.

[0204] As an example of a software functional unit, processing unit 1001 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the aforementioned computing instance may be one or more. For example, processing unit 1001 may include code running on multiple hosts / virtual machines / containers. The multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0205] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.

[0206] As an example of a hardware functional unit, the processing unit 1001 may include at least one computing device, such as a server. Alternatively, the processing unit 1001 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0207] The processing unit 1001 includes multiple computing devices that can be distributed in the same region or in different regions. Similarly, the processing unit 1001 includes multiple computing devices that can be distributed in the same Availability Zone (AZ) or in different AZs. Likewise, the processing unit 1001 includes multiple computing devices that can be distributed in the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0208] It should be noted that, in other embodiments, the processing unit 1001 can be used to execute any step in the resource pooling-based network function processing method, and the sending unit 1002 can be used to execute any step in the resource pooling-based network function processing method. The steps implemented by the processing unit 1001 and the sending unit 1002 can be specified as needed. By implementing different steps in the resource pooling-based network function processing method through the processing unit 1001 and the sending unit 1002 respectively, all functions of the device 1000 can be realized.

[0209] In this embodiment, when the resource requirements of at least one network function included in the network service configuration exceed the resource specifications of each programmable network processing unit (PLC), the processing unit divides the network service configuration into multiple parts based on the resource specifications of the multiple PLCs. These multiple parts include a first part and a second part. The resource requirements of the first part are less than or equal to the resource specifications of the first PLC among the multiple PLCs, and the resource requirements of the second part are less than or equal to the resource specifications of the second PLC among the multiple PLCs. Thus, the sending unit can send first deployment information to the first PLC and second deployment information to the second PLC, thereby deploying the first part on the first PLC and the second part on the second PLC. This eliminates the need to deploy the network service configuration on devices other than the PLCs. The first and second PLCs execute the network functions in the network service configuration on network traffic, resulting in higher processing performance and efficiency, i.e., improved performance and efficiency in processing network traffic. Furthermore, since the network service configuration is deployed on multiple PLCs, and PLCs are inexpensive, the cost of processing network traffic is reduced.

[0210] See Figure 11 This application provides a computing device 1100. For example, the computing device 1100 may be... Figure 1 , Figure 2 , Figure 3 or Figure 4 The devices shown in the cloud system. For example... Figure 11 As shown, the computing device 1100 includes a bus 1102, a processor 1104, a memory 1106, and a communication interface 1108. The processor 1104, the memory 1106, and the communication interface 1108 communicate with each other via the bus 1102. The computing device 1100 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 1100.

[0211] Bus 1102 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 11 The bus 1102 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 1102 may include a path for transmitting information between various components of the computing device 1100 (e.g., processor 1104, memory 1106, communication interface 1108).

[0212] The processor 1104 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0213] The memory 1106 may include volatile memory, such as random access memory (RAM). The memory 1106 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0214] See Figure 11 The memory 1106 stores executable program code, and the processor 1104 executes the executable program code to implement the following respectively. Figure 10The processing unit 1001 and the sending unit 1002 in the illustrated device 1000 perform their functions to implement the method provided in any of the above embodiments. That is, the memory 1106 stores instructions for executing the method provided in any of the above embodiments. Alternatively,

[0215] The communication interface 1108 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 1100 and other devices or communication networks.

[0216] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0217] like Figure 12 As shown, the computing device cluster includes at least one computing device 1100. The memory 1106 of one or more computing devices 1100 in the computing device cluster may store the same instructions for executing the resource pooling-based network function processing method provided in any of the above embodiments.

[0218] In some possible implementations, the memory 1106 of one or more computing devices 1100 in the computing device cluster may also store partial instructions for executing the above-described resource pooling-based network function processing method. In other words, a combination of one or more computing devices 1100 can jointly execute instructions for performing the methods provided in any of the above embodiments.

[0219] The memory 1106 in different computing devices 1100 within a computing device cluster can store different instructions, each used to execute, such as... Figure 10 The illustrated device 1000 has some of the functions. That is, the instructions stored in the memory 1106 in the different computing devices 1100 can implement the functions of one or more units in the processing unit 1001 and the sending unit 1002.

[0220] In some possible implementations, one or more computing devices in the computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 13 One possible implementation is shown. For example... Figure 13 As shown, the two computing devices 1100A and 1100B are connected via a network. Specifically, they are connected to the network through the communication interfaces in each computing device.

[0221] In this type of possible implementation, the memory 1106 in the computing device 1100A stores the execution of, for example Figure 10 Instructions for the function of the processing unit 1001 in the illustrated embodiment. Meanwhile, the memory 1106 in the computing device 1100B stores instructions for executing such... Figure 10 Instructions for the function of the sending unit 1002 in the illustrated embodiment.

[0222] Figure 13 The connection method between the computing device clusters shown can be based on the need of the network function processing method based on resource pooling provided in this application (e.g., storing a large amount of data and / or sending and receiving data), so the function implemented by the sending unit 1002 is considered to be executed by the computing device 1100B.

[0223] It should be understood that Figure 13 The functions of computing device 1100A shown can also be performed by multiple computing devices 1100. Similarly, the functions of computing device 1100B can also be performed by multiple computing devices 1100.

[0224] This application also provides another computing device cluster. The connection relationships between the computing devices in this computing device cluster can be similarly referred to... Figure 13 The connection method of the computing device cluster. The difference is that the memory 1106 of one or more computing devices 1100 in the computing device cluster can store the same instructions for executing the network function processing method based on resource pooling provided in any of the above embodiments.

[0225] In some possible implementations, the memory 1106 of one or more computing devices 1100 in the computing device cluster may also store partial instructions for executing the methods provided in any of the above embodiments. In other words, a combination of one or more computing devices 1100 can jointly execute instructions for executing the methods provided in any of the above embodiments.

[0226] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform the methods provided in any of the above embodiments.

[0227] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct a computing device to perform the method provided in any of the above embodiments.

[0228] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

[0229] The above description is merely an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.

Claims

1. A network function processing method based on resource pooling, characterized in that, The method is applied to a cloud service platform, which manages infrastructure, including multiple programmable network processing units. The method includes: Obtain business information, which includes resource requirement configuration and network service configuration, wherein the network service configuration includes at least one network function, and the resource requirement configuration includes the resource requirements of the at least one network function; Based on the resource requirement configuration and the network service configuration, it is determined that the resource specification of each programmable network processing unit among the plurality of programmable network processing units is less than the resource requirement of the at least one network function; Based on the resource specifications of the plurality of programmable network processing units, the at least one network function is divided into multiple parts, the multiple parts include a first part and a second part, and the plurality of programmable network processing units include a first programmable network processing unit with resource specifications greater than or equal to the resource requirements of the first part and a second programmable network processing unit with resource specifications greater than or equal to the resource requirements of the second part. Configure the first programmable network processing unit to deploy the first part and configure the second programmable network processing unit to deploy the second part.

2. The method as described in claim 1, characterized in that, The at least one network function includes a first network function, which includes multiple code statements and / or configuration data. The resource requirements of the first network function are greater than the resource specifications of each programmable network processing unit. The step of dividing the at least one network function into multiple parts based on the resource specifications of the multiple programmable network processing units includes: The first network function is split into a first part and a second part, wherein the first part includes a first statement set and / or a first sub-configuration data, and the second part includes a second statement set and / or a second sub-configuration data, wherein the first statement set and the second statement set belong to the plurality of code statements, and the first sub-configuration data and the second sub-configuration data belong to the configuration data; or... The first part includes the plurality of code statements and / or the first sub-configuration data, and the second part includes the plurality of code statements and / or the second sub-configuration data.

3. The method as described in claim 1, characterized in that, The at least one network function includes a second network function, the resource requirement of the second network function is less than or equal to the resource specification of the first programmable network processing unit, and the performance requirement of the second network function is greater than the performance specification of each programmable network processing unit. The first part includes the second network function, and the plurality of programmable network processing units further include m third programmable network processing units with resource specifications greater than or equal to the resource requirement of the second network function. The sum of the performance specifications of the m third programmable network processing units and the performance specifications of the first programmable network processing unit is greater than or equal to the performance requirement of the second network function, where m is an integer greater than or equal to 1. The method further includes: Configure the m third programmable network processing units to deploy the first part.

4. The method according to any one of claims 1-3, characterized in that, The plurality of parts further includes a third part, and the plurality of programmable network processing units further includes a fourth programmable network processing unit with resource specifications greater than or equal to the resource requirements of the third part, and the method further includes: Configure the fourth programmable network processing unit to deploy the third part.

5. The method as described in claim 4, characterized in that, The at least one network function includes at least one third network function, the sum of the resource requirements of each third network function being less than or equal to the resource specifications of the fourth programmable network processing unit, and the third part including the at least one third network function.

6. The method according to any one of claims 1-5, characterized in that, The execution order of the first part precedes the execution order of the second part. Configuring the first programmable network processing unit to deploy the first part and configuring the second programmable network processing unit to deploy the second part includes: Sending first deployment information to the first programmable network processing unit and sending second deployment information to the second programmable network processing unit, wherein the first deployment information includes the first part and the second deployment information includes the second part, the first deployment information is used to instruct the first programmable network processing unit to receive first network traffic, process the first network traffic based on the first part to obtain second network traffic, and send the second network traffic to the second programmable network processing unit, wherein the second deployment information is used to instruct the second programmable network processing unit to process the second network traffic based on the second part.

7. The method as described in claim 6, characterized in that, The first deployment information also includes routing information, which is used to instruct the first programmable network processing unit to send the second network traffic to the second programmable network processing unit based on the routing information.

8. The method according to any one of claims 1-7, characterized in that, The infrastructure also includes a switching system through which the plurality of programmable network processing units communicate.

9. The method as described in claim 8, characterized in that, The switching system includes at least one switching device connected in a cascading manner.

10. The method according to any one of claims 1-9, characterized in that, The plurality of programmable network processing units include programmable application-specific integrated circuits (ASICs) and / or data processing units (DPUs).

11. A network function processing device based on resource pooling, characterized in that, The apparatus is used to manage infrastructure, which includes multiple programmable network processing units, and the apparatus further includes: A processing unit is configured to acquire service information, the service information including resource requirement configuration and network service configuration, wherein the network service configuration includes at least one network function, and the resource requirement configuration includes the resource requirements of the at least one network function; The processing unit is further configured to determine, based on the resource requirement configuration and the network service configuration, that the resource specification of each of the plurality of programmable network processing units is less than the resource requirement of the at least one network function; The processing unit is further configured to divide the at least one network function into multiple parts based on the resource specifications of the plurality of programmable network processing units. The multiple parts include a first part and a second part. The plurality of programmable network processing units include a first programmable network processing unit with resource specifications greater than or equal to the resource requirements of the first part and a second programmable network processing unit with resource specifications greater than or equal to the resource requirements of the second part. A sending unit is configured to configure the first programmable network processing unit to deploy the first part and to configure the second programmable network processing unit to deploy the second part.

12. The apparatus as claimed in claim 11, characterized in that, The at least one network function includes a first network function, the first network function including multiple code statements and / or configuration data, the resource requirements of the first network function being greater than the resource specifications of each programmable network processing unit, the processing unit being used for: The first network function is split into a first part and a second part, wherein the first part includes a first statement set and / or a first sub-configuration data, and the second part includes a second statement set and / or a second sub-configuration data, wherein the first statement set and the second statement set belong to the plurality of code statements, and the first sub-configuration data and the second sub-configuration data belong to the configuration data; or... The first part includes the plurality of code statements and / or the first sub-configuration data, and the second part includes the plurality of code statements and / or the second sub-configuration data.

13. The apparatus as claimed in claim 11, characterized in that, The at least one network function includes a second network function, the resource requirement of the second network function is less than or equal to the resource specification of the first programmable network processing unit, and the performance requirement of the second network function is greater than the performance specification of each programmable network processing unit. The first part includes the second network function, and the plurality of programmable network processing units further include m third programmable network processing units with resource specifications greater than or equal to the resource requirement of the second network function. The sum of the performance specifications of the m third programmable network processing units and the performance specifications of the first programmable network processing unit is greater than or equal to the performance requirement of the second network function, where m is an integer greater than or equal to 1. The sending unit is also configured to deploy the first part in the m third programmable network processing units.

14. The apparatus according to any one of claims 11-13, characterized in that, The plurality of parts also includes the third part, and the plurality of programmable network processing units also include a fourth programmable network processing unit with resource specifications greater than or equal to the resource requirements of the third part; The sending unit is also configured to deploy the third part by the fourth programmable network processing unit.

15. The apparatus as claimed in claim 14, characterized in that, The at least one network function includes at least one third network function, the sum of the resource requirements of each third network function being less than or equal to the resource specifications of the fourth programmable network processing unit, and the third part including the at least one third network function.

16. The apparatus according to any one of claims 11-15, characterized in that, The execution order of the first part precedes the execution order of the second part. The sending unit is configured to: Sending first deployment information to the first programmable network processing unit and sending second deployment information to the second programmable network processing unit, wherein the first deployment information includes the first part and the second deployment information includes the second part, the first deployment information is used to instruct the first programmable network processing unit to receive first network traffic, process the first network traffic based on the first part to obtain second network traffic, and send the second network traffic to the second programmable network processing unit, wherein the second deployment information is used to instruct the second programmable network processing unit to process the second network traffic based on the second part.

17. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1-10.

18. A computer-readable storage medium, characterized in that, Includes computer program instructions, which, when executed by a cluster of computing devices, perform the method as described in any one of claims 1-10.

19. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, the computing device cluster performs the method as described in any one of claims 1-10.