A computing device, server, and method of packet forwarding
By introducing mount points and eBPF technology into the general forwarding plane platform, personalized extensions to the packet forwarding process are achieved without interrupting the original forwarding process. This solves the problem that the existing platform is difficult to adapt to the needs of multiple scenarios and improves development efficiency and adaptability.
Patent Information
- Application Number
- CN202310356636.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-31
- Publication Date
- 2026-02-24
- Estimated Expiration
- 2043-03-31
AI Technical Summary
Existing general-purpose forwarding platforms are insufficient to meet the packet forwarding needs of various scenarios. Furthermore, customizing or improving the forwarding process requires modifications to the entire code, which increases the workload of developers and is detrimental to software maintenance and upgrades.
A mount point is introduced on the general forwarding plane platform to mount a custom second software module. This module executes the steps in the packet forwarding process in a different way than the first software module. eBPF technology is used to achieve plug-in extension and updates, avoiding interruption of the original forwarding process.
It enables customized packet forwarding process extensions without affecting the original forwarding process, improving code development efficiency, reducing maintenance and upgrade costs, enhancing adaptability and robustness, and supporting lightweight deployment.
Smart Images

Figure CN116471339B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of software development technology, and in particular to a general forwarding plane platform, server, and message forwarding method. Background Technology
[0002] Currently, the data plane forwarding process of general forwarding platforms can be abstracted into a forwarding pipeline. This process includes: after receiving packets from the network interface card (NIC), a key is constructed according to the packet content and preset rules. The key is then used to try to match the rules that match the key in the session table. The operation defined by the matching rule is then executed. After the operation is completed, the packet is sent back to the NIC according to certain rules and packets are sent out, such as sending packets to the destination IP based on the destination IP of the packet.
[0003] The aforementioned message forwarding process in the prior art can be implemented by relevant software modules of a general forwarding plane platform. An example architecture diagram can be found here. Figure 1 As shown, for example, the step of constructing a Key is performed by the Keybuilder software module, the matching operation is implemented by the Match software module, and the action execution operation is implemented by the Action software module. These modules are often integrated into the same set of code and are tightly coupled with each other. Summary of the Invention
[0004] The inventors of this invention have discovered that the prior art has at least the following problems: on the one hand, the general forwarding plane platform is difficult to meet the packet forwarding needs of various different scenarios; on the other hand, if any part of the forwarding process needs to be modified or improved in a personalized way, the general forwarding plane platform as a whole needs to be modified at the code level, which increases the workload of developers and is also not conducive to software maintenance and upgrades.
[0005] In view of the above problems, the present invention is proposed to provide a general forwarding plane platform, server and message forwarding method that overcomes or at least partially solves the above problems.
[0006] In a first aspect, embodiments of the present invention provide a general forwarding plane platform, comprising: at least one first software module for executing each step of the packet forwarding process, and further comprising: at least one mount point;
[0007] The mounting point is equipped with a pre-defined second software module; the second software module is used to start running and execute at least one step in the message forwarding process in a different implementation manner than the first software module, while the first software module is running without interruption.
[0008] In one embodiment, the number of the first software modules is multiple; the multiple first software modules are respectively configured to execute various steps of the general forwarding process;
[0009] The number of mounting points is no greater than the number of the first software modules.
[0010] In one embodiment, the plurality of first software modules include: a key creation module, a matching module, and an operation execution module;
[0011] The at least one mount point is respectively set at the location of any one or more nodes in the key creation module, the matching module, and the operation execution module.
[0012] In one embodiment, if the mount point is located at the location of the key creation module, the second software module mounted on the mount point is used to construct the key value of the received message in an implementation different from that of the key creation module.
[0013] If the mount point module is set at the location of the matching module, the second software module mounted on the mount point is used to perform the operation according to the key value of the message in an implementation different from that of the matching module.
[0014] If the mount point is set at the location of the operation execution module, the second software module mounted on the mount point is used to execute the operation in the key-value matching in a different way than the implementation in the operation execution module.
[0015] In one embodiment, the second software module is mounted to the mount point in the following manner:
[0016] Compile the custom code that implements the functionality of the second software module into the corresponding program file;
[0017] Place the program file in the plugin path corresponding to the mount point;
[0018] The preset switch module in the forwarding process of the general forwarding plane platform is activated to automatically search for and load the program files under the plugin path.
[0019] In one embodiment, the method further includes:
[0020] Turn off the preset switch module in the forwarding process of the general forwarding plane platform and delete the second software module;
[0021] Compile the updated code that implements the function of the second software module into a corresponding program file and place it in the plugin path corresponding to the mount point;
[0022] Activate the switch module to automatically search for and load the program files under the updated plugin path.
[0023] In one embodiment, the second software module is an eBPF program module.
[0024] Secondly, embodiments of the present invention provide a cloud server, wherein at least one general forwarding plane platform as described above is running on the cloud server.
[0025] In one embodiment, the general forwarding plane platform runs in the user space and / or kernel space of the cloud server's internet element.
[0026] Thirdly, embodiments of the present invention provide a message forwarding method, including:
[0027] Detect whether the mounting point of the aforementioned general forwarding plane platform has a second software module mounted;
[0028] If present, the first software module and / or the second software module are run according to preset rules, and each step in the message forwarding process is executed through the first software module and / or the second software module.
[0029] Fourthly, embodiments of the present invention provide a cloud server, including: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the message forwarding method as described above.
[0030] Fifthly, embodiments of the present invention provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the aforementioned message forwarding method.
[0031] The beneficial effects of the above-described technical solutions provided in the embodiments of the present invention include at least the following:
[0032] The general forwarding plane platform, server, and packet forwarding method provided in this invention attach a second software module with a different forwarding process implementation from the first software module to a mounting point on the general forwarding plane platform. This allows the second software module to hot-patch the existing forwarding process without affecting the original general forwarding plane's forwarding process. This enables the extension of the general forwarding plane's customized and personalized forwarding process without interrupting the operation of the original first software module. To a certain extent, this decouples the original tightly coupled forwarding process, improves code development efficiency, reduces code maintenance and upgrade costs, enhances the software's adaptability to different usage scenarios, improves software robustness, and enables secondary development. It also allows for lightweight deployment of the general forwarding platform.
[0033] Other features and advantages of the invention will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the invention. The objects and other advantages of the invention may be realized and obtained by means of the structures particularly pointed out in the written description, claims, and drawings.
[0034] The technical solution of the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. Attached Figure Description
[0035] The accompanying drawings are provided to further illustrate the invention and form part of the specification. They are used in conjunction with embodiments of the invention to explain the invention and do not constitute a limitation thereof. In the drawings:
[0036] Figure 1 This is a structural block diagram of the general forwarding plane platform in an embodiment of the present invention;
[0037] Figure 2 This is one of the structural block diagrams of the general forwarding plane platform provided in the embodiments of the present invention;
[0038] Figure 3 This is a second structural block diagram of the general forwarding plane platform provided in the embodiments of the present invention;
[0039] Figure 4 This is a flowchart illustrating the implementation of the message forwarding method in an embodiment of the present invention. Detailed Implementation
[0040] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
[0041] The inventors of this invention discovered that in existing general forwarding plane platforms, the various software modules are tightly coupled, and each software module is integrated into the same set of code. Due to this tight coupling, on the one hand, if it is necessary to adapt to multiple scenarios simultaneously, the software code logic will inevitably be bloated, encompassing all possible situations, which does not meet the requirements of lightweight deployment. On the other hand, if the forwarding method and implementation logic are modified, the entire code needs to be modified, improved, and upgraded, which increases the workload of software developers and is not conducive to software maintenance and upgrades.
[0042] To address the aforementioned issues, embodiments of the present invention provide a general forwarding plane platform, server, and packet forwarding method.
[0043] The following section provides a detailed explanation of the general forwarding plane platform, server, and message forwarding method described above, with reference to the accompanying drawings.
[0044] The general forwarding plane platform provided in this embodiment of the invention refers to... Figure 2 As shown, it includes: at least one first software module for performing each step of the message forwarding process, and at least one mount point;
[0045] The aforementioned mounting point is equipped with a pre-defined second software module; wherein the second software module is used to start running and execute at least one step in the message forwarding process in an implementation manner different from that of the first software module, while the first software module is running without interruption.
[0046] The aforementioned general forwarding plane platform includes, but is not limited to, various platforms capable of implementing message forwarding functions, such as platforms running in various physical communication devices to implement message forwarding functions, or various software platforms running in virtual machine kernel mode and / or user mode to implement forwarding functions, etc., and the embodiments of the present invention do not limit this.
[0047] The general forwarding plane platform not only includes at least one first software module that is already in use in the prior art for performing each step of the packet forwarding process, but also includes at least one mount point for mounting a second software module.
[0048] In this embodiment of the invention, for ease of distinction, the software module that is already integrated into the general forwarding plane platform in the prior art for implementing each step of the packet forwarding process is referred to as the first software module, and the software module that is mounted at the mounting point and is customized in this embodiment of the invention is referred to as the second software module.
[0049] In one embodiment, there are multiple first software modules; each of the multiple first software modules is configured to execute various steps of a general forwarding process; for example, if the general forwarding process includes three steps, then the three steps of the existing forwarding process can be implemented by three software modules respectively. Accordingly, the number of mount points is no greater than the number of first software modules. In other words, in this embodiment of the invention, according to the needs of the actual use scenario, a number of mount points no greater than the number of first software modules can be selected to mount second software modules, so as to realize a personalized implementation of each step of the packet forwarding process.
[0050] In practice, the hook can be pre-embedded in a preset location on the general forwarding plane platform, thereby enabling personalized design and functional expansion of the original forwarding process implementation method according to actual needs.
[0051] Based on this, you can choose to extend all mount points accordingly, that is, mount the corresponding second software module on all mount points, or choose to mount the second software module on only some mount points.
[0052] In this embodiment of the invention, the number of second software modules mounted at each mounting point is not limited.
[0053] The implementation of the second software module mounted at each mount point can be freely predefined and differs from the implementation of the corresponding first software module, thereby expanding the implementation of the steps in the message forwarding process.
[0054] To illustrate this, we will use examples of existing packet forwarding architectures, referring to... Figure 3 As shown, the first software modules used to implement each step of the existing forwarding process include:
[0055] The module includes a key builder, a match module, and an action module.
[0056] At least one mount point is set at the location of any one or more nodes in the key creation module, matching module, and operation execution module.
[0057] Correspondingly, if the mount point is set at the location of the key creation module, the second software module mounted on the mount point is used to construct the key value of the received message in an implementation different from that of the key creation module.
[0058] If the mount point module is set at the location of the matching module, the second software module mounted on the mount point is used to match the corresponding Action operation based on the key value of the message in a different implementation than the matching module.
[0059] If the mount point is set at the location of the operation execution module, the second software module mounted on the mount point is used to execute the operation matched by the key value in a different way than the implementation in the operation execution module.
[0060] Taking the existing packet forwarding process of the key creation module, matching module, and operation execution module as an example, after receiving the packet of forwarded traffic from the network card, the key creation module constructs the packet's key according to the corresponding key construction rules. Then, the matching module uses this key to try to match the operation rules in the preset session table. The operation execution module then executes the corresponding Action operation according to the matching rules. If a second software module is mounted at the location of these nodes (key creation module, matching module, and operation execution module), it will be used to construct another key using a different construction method than the existing key creation module, and to perform matching using a different matching table than the existing matching module. Based on the matching results, it will execute other types of operations that are different from the Actions defined in the operation execution module.
[0061] For example, if the existing forwarding process does not define a function to prevent loopback for a certain type of IP packet using TTL, then the forwarding logic to prevent loopback for this type of IP packet can be extended by setting one or more mount points in the key creation module, matching module, and operation execution module. For example, a second software module can be customized from one or more aspects such as new key construction rules, new matching tables (e.g., hash matching tables), and / or new forwarding operations (e.g., judging whether to continue forwarding the packet's lifecycle TTL, and decrementing the TTL value by 1). This second software module can then be mounted on the mount point where the key creation module, matching module, and operation execution module are located. This allows the forwarding program to read the second software module mounted on the mount point and flexibly implement the above-mentioned customized forwarding process without modifying the original forwarding process.
[0062] In one embodiment, since the second software module can be mounted at one or more mount points in the key creation module, matching module, and operation execution module (not necessarily all of them) according to actual needs, the second software module mounted at these mount points can implement customized forwarding steps. These steps can be all steps in the entire forwarding process, or only some steps, with the remaining steps using the existing implementation logic of the first software module. Alternatively, if the ultimately executed Actions do not conflict, the existing forwarding steps defined in the key creation module, matching module, and operation execution module, as well as the forwarding steps defined by the second software module mounted at each mount point, can be executed simultaneously, ultimately achieving diversified processing and forwarding of packets. The specific implementation method can be selected according to actual needs.
[0063] In one embodiment, the second software module may be mounted to the mount point in the following manner:
[0064] Compile the custom code that implements the functionality of the second software module into the corresponding program file;
[0065] Place the program file in the plugin path corresponding to the mount point;
[0066] Restart the forwarding process of the general forwarding plane platform, and automatically search for and load the program files under the plugin path.
[0067] The second software module can exist in the general forwarding plane platform as a plugin, and the loading and running of each program file can be achieved by restarting the forwarding process of the general forwarding plane platform.
[0068] In one embodiment, the second software module described above may be implemented using eBPF technology, for example, it may be an eBPF program module.
[0069] eBPF stands for Extended Berkeley Packet Filter. It is a register-based virtual machine that uses a custom 64-bit RISC instruction set. It can run "BPF programs" compiled locally on just-in-time within the Linux kernel and has access to a subset of kernel functions and memory.
[0070] eBPF's functionality can be provided, for example, by the Data Plane Development Kit (DPDK). DPDK is primarily based on Linux systems and is a collection of function libraries and drivers for fast packet processing. It can greatly improve data processing performance and throughput, and increase the efficiency of data plane applications. It is a high-performance open-source software.
[0071] The following example illustrates the general forwarding plane platform provided in this embodiment of the invention. Figure 3 As shown, the general forwarding plane platform is called a "forwarding pipeline". In specific implementations, it can exist in the form of a forwarding program, which will be referred to as a forwarding program in this example.
[0072] Reference Figure 3 As shown, eBPF hooks are set at the locations of the key creation module, the matching module, and the operation execution module. Each eBPF hook has a corresponding plugin program attached to it (referred to as a plugin program here to distinguish it from the existing modules of the forwarding program).
[0073] eBPF hooks allow modification of the program at the location of the hook point without altering the existing forwarding procedure's defined flow, enabling diverse functionalities. eBPF hooks can be pre-configured on different nodes within the forwarding procedure, with the appropriate program mounted as needed.
[0074] The plugin program can be obtained in the following way: generate the corresponding eBPF binary file through the eBPF program, put the binary file in the specified location (under a specific path), restart the forwarding program, and then the entire forwarding program will load the corresponding plugin program after detecting it in the corresponding location.
[0075] The pipeline works as follows:
[0076] After a packet is received from the network card, it first follows the original default forwarding process. A string is generated for the forwarded packet according to a certain rule (e.g., a hash value is obtained by hashing the 5-tuple information), which serves as the key. Then, the key is matched according to the original hash matching table. Next, a plugin program is created based on the key attached to the eBPF Hook point. Based on preset rules (which can be determined according to the actual application scenario, such as when the existing forwarding steps cannot meet the key parsing requirements), it is determined whether a custom function needs to be used to construct the key. During the matching step, the matching plugin program for the eBPF Hook point also uses corresponding rules to match the session table. Finally, during the operation execution step, the packet will first determine whether to execute the operation defined by the plugin program based on the matching result.
[0077] Suppose that an NFV network element needs the NFV general forwarding plane platform to provide TTL loop prevention for packets of a certain IP address. Since the existing packet forwarding process of the NFV general forwarding plane platform does not provide the corresponding function, a corresponding plug-in program can be written for the network element. For example, a user key can be provided to create the plug-in program and execute the plug-in program. This can be achieved by inserting the corresponding hash table entry (for matching steps) into the general forwarding plane platform through OpenFlow or manually.
[0078] Here is an example of creating a plugin program using a key:
[0079] The implementation logic of this key creation plugin is as follows: determine whether the type of the received Ethernet packet is an IP packet (the type of an IP packet is 0x0800). If it is, determine the position of the IP packet header by incrementing the Ethernet packet header position by 1, and then perform the corresponding left hash and right hash calculations to obtain the left hash (left_hash) value, which is 16 bytes in total, and the right hash (right_hash) value, which is also 16 bytes in total. The left hash value is used to match the corresponding hash table entry in the session table, and the right hash value is used to verify the generated hash.
[0080] Here is an example of how to operate and execute a plugin program:
[0081] The implementation logic of this key creation plugin is as follows: Define the Ethernet header to point to the first address of the data packet, determine whether the data packet type is an IP packet by judging the Ethernet header, if so, obtain the position of the IP header by incrementing the Ethernet header position by 1, and determine whether the time-to-live (TTL) value in the IP header is less than or equal to 0. If so, notify that the data packet should be dropped; if the TTL value is greater than 0, notify that the data packet can be forwarded, and decrement the TTL value by 1.
[0082] Compile the above eBPF file, and move the generated files builder.** and action.** to the path corresponding to the forwarding check plugin, for example, the following path:
[0083] key_builder.** / abc / plugin / defgh /
[0084] action.** / abc / plugin / lmno /
[0085] The above path is bound to the corresponding eBPF Hook.
[0086] By activating the preset switch module in the forwarding process of the general forwarding plane platform, the forwarding program will automatically search for and load all plugins under the above path.
[0087] The switch module can be pre-configured in the forwarding process. When the eBPF file is compiled and inserted into the corresponding path, the switch module can be activated to automatically search for and load the plugin programs in those paths without affecting the operation of the original forwarding process.
[0088] When it is necessary to update the plugin program, such as through online upgrades or when the entire plugin program is changed to a new one, the following methods can also be used:
[0089] 1. Disable the preset switch module in the forwarding process of the general forwarding plane platform and delete the existing second software module;
[0090] 2. Compile the updated code that implements the function of the second software module into the corresponding program file and place it in the plugin path corresponding to the mount point;
[0091] 3. Restart the switch module to automatically search for and load the program files under the updated plugin path.
[0092] If you only need to remove the new plugin program, you can also remove the existing second software module by turning off the switch module without affecting the original forwarding process.
[0093] The upgrade and update process of the second software module can be carried out while the first software module of the original forwarding process is running normally, thereby realizing the online upgrade and update of the second software module, further increasing the flexibility of the general forwarding plane platform's forwarding process expansion, while ensuring that the performance of the original forwarding is not affected.
[0094] In one embodiment, the corresponding hash table entry is inserted into the session table via command-line tools or other means to facilitate the matching process.
[0095] After the above steps, the forwarding program performs TTL anti-loopback operation on a qualified IP packet. When a qualified IP packet enters the forwarding process, it will be matched with the hash table and the Action will be executed. The TTL value in the packet will be decremented by 1. If the TTL is 0, the packet will be dropped directly, thereby avoiding the continuous looping forwarding of data packets (loopback).
[0096] Based on the same inventive concept, embodiments of the present invention also provide a computing device on which at least one general forwarding plane platform as described above is running.
[0097] The aforementioned computing devices include, but are not limited to, cloud servers, physical servers, virtual machines, or containers, and other physical or virtual devices with forwarding capabilities.
[0098] In one embodiment, the aforementioned general forwarding plane platform may, for example, run in the user mode and / or kernel mode of the aforementioned computing device's Internet access element.
[0099] Based on the same inventive concept, this invention also provides a message forwarding method. Since the principle of the problem solved by this method is similar to that of the aforementioned general forwarding plane platform, the specific implementation process of this method can be referred to the implementation of the aforementioned method, and the repeated parts will not be described again.
[0100] The message forwarding method provided in this embodiment of the invention refers to... Figure 4 As shown, it includes the following steps:
[0101] S41. Check whether the mount point of the general forwarding plane platform has a second software module mounted; if it exists, execute S42.
[0102] S42. According to the preset rules, run the first software module and / or the second software module, and execute each step in the message forwarding process through the first software module and / or the second software module.
[0103] The structure and functions of the general forwarding plane platform can be found in the description of the foregoing embodiments.
[0104] The general forwarding plane platform, server, and packet forwarding method provided in this invention, by mounting a second software module with a different forwarding process implementation from the first software module at the mounting point on the general forwarding plane platform, expands the general forwarding plane with a customized and personalized forwarding process without changing the original general forwarding plane forwarding process. To a certain extent, this decouples the original tightly coupled forwarding process, improves code development efficiency, reduces code maintenance and upgrade costs, enhances the software's adaptability to different usage scenarios, improves the software's robustness, and enables secondary development. It also enables the lightweight deployment of the general forwarding platform.
[0105] According to an embodiment of the present invention, a server is also provided, including: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the message forwarding method as described above.
[0106] This invention also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the message forwarding method described above.
[0107] The user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of the relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and corresponding operation entry points are provided for users to choose to authorize or refuse.
[0108] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0109] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0110] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0111] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0112] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A computing device, wherein a general forwarding plane platform runs on the computing device; The general forwarding plane platform includes: At least one first software module for executing each step of the message forwarding process, characterized in that it further includes: at least one mount point; The mounting point is equipped with a pre-defined second software module; the second software module is used to start running and execute at least one step in the packet forwarding process in an implementation different from that of the first software module, while the first software module is running continuously; the second software module is an eBPF program module. The mounting point is pre-embedded at a preset location on the general forwarding plane platform. The second software module automatically searches for and loads the program file corresponding to the second software module through a preset switch module without affecting the operation of the original forwarding process. The at least one first software module includes: a key creation module, a matching module, and an operation execution module; the at least one mount point is respectively set at the location of any one or more nodes in the key creation module, the matching module, and the operation execution module.
2. The computing device as described in claim 1, characterized in that, The number of the first software modules is multiple; each of the multiple first software modules is configured to execute various steps of the general forwarding process; The number of mounting points is no greater than the number of the first software modules.
3. The computing device as described in claim 1, characterized in that, If the mount point is located at the same location as the key creation module, the second software module mounted on the mount point is used to construct the key value of the received message in an implementation different from that of the key creation module. If the mount point module is set at the location of the matching module, the second software module mounted on the mount point is used to perform the operation according to the key value of the message in an implementation different from that of the matching module. If the mount point is set at the location of the operation execution module, the second software module mounted on the mount point is used to execute the operation in the key-value matching in a different way than the implementation in the operation execution module.
4. The computing device according to any one of claims 1-3, characterized in that, The second software module is mounted on the mount point in the following manner: Compile the custom code that implements the functionality of the second software module into the corresponding program file; Place the program file in the plugin path corresponding to the mount point; The preset switch module in the forwarding process of the general forwarding plane platform is activated to automatically search for and load the program files under the plugin path.
5. The computing device as described in claim 4, characterized in that, Also includes: Turn off the preset switch module in the forwarding process of the general forwarding plane platform and delete the second software module; Compile the updated code that implements the function of the second software module into a corresponding program file and place it in the plugin path corresponding to the mount point; Activate the switch module to automatically search for and load the program files under the updated plugin path.
6. The computing device as claimed in claim 1, characterized in that, The general forwarding plane platform runs in the user mode and / or kernel mode of the network element on the cloud server.
7. A method for message forwarding, characterized in that, include: Detect whether a second software module is mounted on the mounting point of the general forwarding plane platform of the computing device as described in any one of claims 1-6; If present, the first software module and / or the second software module are run according to preset rules, and each step in the message forwarding process is executed through the first software module and / or the second software module.
8. A server, characterized in that, include: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the program, implements the message forwarding method of claim 7.
9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the message forwarding method of claim 7.
Citation Information
Patent Citations
Network request forwarding method and device, computer equipment and storage medium
CN114979277A