User plane packet processing system, method, computer device and storage medium

By introducing a user space management layer and a kernel space data layer in 5G networks, combined with BPF and XDP technologies, the problems of resource waste and high development costs of DPDK technology in 5G edge computing networks are solved, achieving more efficient packet processing and resource utilization.

CN116347518BActive Publication Date: 2026-01-02SHENZHEN LINKING INNOVATIVE NEBULA COMM TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310344088.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-28
Publication Date
2026-01-02
Estimated Expiration
2043-03-28

AI Technical Summary

Technical Problem

Existing DPDK technology suffers from resource waste, high development costs, and difficulty in application integration in 5G mobile communications. In particular, in MEC deployment schemes, it has high CPU utilization and is not suitable for the needs of edge computing networks.

Method used

It employs a user-space management layer and a kernel-space data layer, combined with Berkeley Packet Filtering (BPF) and high-speed packet processing technology (XDP), and communicates through shared libraries to map and process packet processing rules. This is integrated into the Linux kernel to improve flexibility and efficiency.

Benefits of technology

It provides a more flexible, programmable, and easy-to-implement packet processing method, improving the resource utilization and performance of the 5GC edge computing network and addressing the shortcomings of DPDK technology.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116347518B_ABST
    Figure CN116347518B_ABST
Patent Text Reader

Abstract

The application discloses a kind of user plane data packet processing systems, methods, equipment and storage medium, the system includes: user space management layer and kernel space data layer;XDP technology is integrated in kernel space data layer;User space management layer and kernel space data layer are communicated by the shared library of BPF;User space management layer is used to receive the establishment request message of message transfer control protocol session, obtains data packet processing rule based on establishment request message, and data packet processing rule is written in BPF mapping file;Kernel space data layer is used to obtain data packet processing rule from mapping file when receiving data packet and processes data packet based on data packet processing rule.Can provide a more suitable 5GC edge computing network for data packet processing Flexible, programmable and easy-to-implement method, can more effectively utilize resources and improve performance in 5GC network.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of network communication, and in particular to a user plane data packet processing system, method, device and storage medium. BACKGROUND

[0002] With the development of the fifth generation mobile communication technology (5G), users have higher and higher requirements for bandwidth, and higher performance data packet processing capabilities are needed.

[0003] The 5G mobile network core network (5GC) is divided into control plane function (CP, Control Plane) and user plane function (User Plane, UP) as a whole. The control plane function realizes signaling control functions such as user equipment (User Equipment, UE) access control, registration, session establishment, mobility management, etc. After the user equipment accesses the network and establishes a session with the data network (Data Net, DN), the control plane delivers the user plane tunnel and forwarding rules to the user plane in the format of PFCP (Packet Forwarding Control Protocol) message, and the user plane establishes a tunnel between the access network AN and the data network DN, and performs data forwarding, discarding, caching, qos, etc. according to the tunnel information and forwarding rules.

[0004] In the traditional user plane, the data plane development kit (Date plan edevelopment kit, DPDK) is used for data packet processing. Although the DPDK technology has excellent performance in terms of throughput and delay, for typical MEC deployment schemes, there are the following disadvantages: (1) the polling mechanism of data packet processing (DPDK polling mode driver) makes the CPU fully occupied, and even if there is no traffic, it will cause resource waste; (2) DPDK makes the application inside the host unavailable, so the integration between non-DPDK applications and DPDK applications becomes a difficult task; (3) DPDK is an independent user space library, and all DPDK packages use memory pool management in the user space, which requires control right transfer between the kernel space and the user space, increasing the development cost. SUMMARY

[0005] The present application provides a user plane data packet processing system, method, device and storage medium to solve the shortcomings of using DPDK technology to process data packets, providing a more flexible, programmable and easy-to-implement method for data packet processing that is more suitable for 5GC edge computing networks, which can more effectively utilize resources and improve performance in 5GC networks.

[0006] According to an aspect of the present application, a user plane data packet processing system is provided, comprising:

[0007] a user space management layer and a kernel space data layer; wherein the kernel space data layer is integrated with an eXpress Data Path, XDP, technology; and the user space management layer and the kernel space data layer communicate based on a Berkeley Packet Filter, BPF, shared library;

[0008] The user space management layer is configured to receive a message of a request for establishing a session of a packet forwarding control protocol, obtain a packet processing rule based on the message, and write the packet processing rule into a BPF map file through a BPF shared library.

[0009] The kernel space data layer is configured to obtain the packet processing rule from the map file and process a packet based on the packet processing rule when the packet is received.

[0010] According to another aspect of the present disclosure, there is provided a method for processing a packet in a user plane, comprising:

[0011] receiving, by a user space management layer in the user plane, a message of a request for establishing a session of a packet forwarding control protocol, obtaining a packet processing rule based on the message, and writing the packet processing rule into a BPF map file through a BPF shared library.

[0012] obtaining, by a kernel space data layer in the user plane, a packet processing rule from the map file when a packet is received; and processing the packet based on the packet processing rule; wherein the kernel space data layer is integrated with an eXpress Data Path, XDP, technology.

[0013] According to another aspect of the present disclosure, there is provided a computer device, comprising:

[0014] at least one processor; and

[0015] a memory communicatively connected to the at least one processor; wherein

[0016] the memory stores a computer program executable by the at least one processor, and the computer program is executed by the at least one processor to enable the at least one processor to perform the method for processing a packet in a user plane according to any one of the embodiments of the present disclosure.

[0017] According to another aspect of the present disclosure, there is provided a computer readable storage medium storing computer instructions for enabling a processor to perform the method for processing a packet in a user plane according to any one of the embodiments of the present disclosure.

[0018] The technical scheme of the embodiment of the present application provides a user plane data packet processing system, which comprises a user space management layer and a kernel space data layer; wherein the XDP technology for processing data packets at high speed is integrated in the kernel space data layer; the user space management layer and the kernel space data layer communicate through a shared library based on the Berkeley packet filter (BPF); the XDP technology built in the kernel space data layer is used for processing data packets, and compared with the DPDK technology, the XDP technology has the advantages of being more comprehensive, more flexible, more fine-grained, easy to implement and maintain, thereby being able to solve the shortcomings of using the DPDK technology to process data packets, providing a more flexible, programmable and easy-to-implement method for data packet processing, which is more suitable for the 5GC edge computing network, and being able to more effectively utilize resources and improve performance in the 5GC network.

[0019] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present application, nor is it used to limit the scope of the present application. Other features of the present application will become apparent from the following description. BRIEF DESCRIPTION OF DRAWINGS

[0020] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed in the embodiment description will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can also be obtained by those skilled in the art without creative labor.

[0021] Figure 1 is a structural schematic diagram of a user plane data packet processing system provided by the first embodiment of the present application;

[0022] Figure 2 is another structural schematic diagram of a user plane data packet processing system provided by the first embodiment of the present application;

[0023] Figure 3 is a flowchart of a user plane data packet processing method provided by the second embodiment of the present application;

[0024] Figure 4 is a flowchart of a user plane data packet processing method provided by the third embodiment of the present application;

[0025] Figure 5 is a schematic diagram of a data packet processing method in the kernel space data layer provided by the third embodiment of the present application;

[0026] Figure 6 is a structural schematic diagram of a computer device for implementing the user plane data packet processing method of the present application. DETAILED DESCRIPTION

[0027] In order to make the person skilled in the art better understand the present application, the technical solutions in the embodiments of the present application will be described clearly and completely in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, not all. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor should belong to the scope of protection of the present application.

[0028] It should be noted that the terms "include" and "have" and any variations thereof in the specification and claims of the present application and the above-mentioned drawings are intended to cover the inclusions without exclusivity, for example, a process, method, system, product or equipment containing a series of steps or units does not have to be limited to those steps or units clearly listed, but can include other steps or units not clearly listed or inherent to these processes, methods, products or equipment.

[0029] Embodiment one

[0030] Figure 1 A structural schematic diagram of a user plane data packet processing system is provided for the first embodiment of the present application. The present embodiment can be applied to the case of processing data packets in the user plane of the 5G core network. As shown in the figure, Figure 1 The user plane data packet processing system includes a user space management layer 10 and a kernel space data layer 20. The XDP technology for high-speed processing of data packets is integrated in the kernel space data layer. The user space management layer 10 and the kernel space data layer 20 communicate through a shared library based on the Berkeley Packet Filter (BPF).

[0031] The user space management layer 10 is configured to receive a message for establishing a message forwarding control protocol session, obtain a data packet processing rule based on the message for establishing, and write the data packet processing rule into a mapping file based on the Berkeley Packet Filter (BPF).

[0032] The kernel space data layer 20 is configured to obtain the data packet processing rule from the mapping file when a data packet is received, and process the data packet based on the data packet processing rule.

[0033] The user space management layer 10 is in the user space layer and is used to manage the life cycle of the PFCP session and the BPF program; and the kernel space data layer 20 is in the kernel space layer and is used to process the data packet. The Xpress Data Path (XDP) technology is integrated in the kernel space data layer, and the XDP technology is a technology built in the Linux kernel for fast data packet processing. The user space management layer 10 and the kernel space data layer 20 communicate through the Berkeley Packet Filter (BPF) based shared library 30, which is maintained by the Linux kernel space data layer. The BPF map file is a data structure provided by the Berkeley Packet Filter BPF for storing a map of data packet processing rules, that is, a BPF MAP; and the BPF map file stores the data packet processing rules in the form of key-value pairs.

[0034] The establishment request message of the Packet Forwarding Control Protocol Session (PFCP Session) is a request message for creating a PFCP session. When the user equipment needs to transmit data to the network equipment, the establishment request message is sent to the network equipment to create the PFCP session. The data packet processing rule is a rule for processing a data packet, which can include a Packet Detection Rule (PDR), a Forwarding Action Rule (FAR), and the like.

[0035] Specifically, the user space management layer 10 of the data packet processing system obtains the establishment request message of the Packet Forwarding Control Protocol Session through the application program interface (API) of the client, analyzes the establishment request message to obtain the data packet processing rule, and writes the data packet processing rule into the Berkeley Packet Filter (BPF) based map file (BPF MAP) through the Berkeley Packet Filter (BPF) based shared library (libbpf Library).

[0036] The kernel space data layer 20 of the data packet processing system obtains the data packet processing rule written by the user space management layer 10 from the BPF MAP when receiving the data packet, thereby realizing the communication between the kernel space data layer and the user space management layer; and processes the data packet based on the XDP technology integrated in the kernel space data layer and using the obtained data packet processing rule. The processing of the data packet can include parsing, shunting, and forwarding.

[0037] In the present application, the Xpress Data Path (XDP) technology has the following advantages compared with the Date Plane Development Kit (DPDK) technology: (1) One of the main advantages of XDP compared with DPDK is that XDP is integrated in the Linux kernel, while DPDK is a separate user space library. This means that XDP can take advantage of the existing infrastructure and functions of the Linux kernel, such as memory management and device drivers, which can make it easier to implement and maintain. (2) Another advantage of XDP compared with DPDK is that XDP provides a more flexible and programmable interface for packet processing. XDP allows the implementation of advanced functions such as network slicing and programmable traffic management, which are essential for 5GC networks. On the other hand, DPDK focuses on providing fast packet processing and is less flexible in implementing these advanced functions. (3) In addition, XDP allows fine-grained control of packet processing, which can more effectively utilize resources and improve performance in 5GC networks. In summary, XDP provides a more comprehensive, flexible and fine-grained approach to packet processing, which is more suitable for 5GC edge computing networks than DPDK.

[0038] The technical scheme of the embodiment of the present application provides a user plane data packet processing system, which includes a user space management layer and a kernel space data layer; wherein the XDP technology is integrated in the kernel space data layer; the user space management layer and the kernel space data layer communicate through a shared library based on the Berkeley Packet Filter (BPF); the XDP technology built-in kernel space data layer is used for data packet processing, which can provide a more flexible, programmable and easy-to-implement method for data packet processing, which is more suitable for 5GC edge computing networks, and can more effectively utilize resources and improve performance in 5GC networks.

[0039] Optionally, the user space management layer includes:

[0040] a message forwarding control protocol session manager and a BPF program manager;

[0041] The message forwarding control protocol session manager is configured to receive a message forwarding control protocol session establishment request message and call the BPF program manager;

[0042] The BPF program manager is configured to access the shared library, create a session context based on the establishment request message, and update the BPF mapping file corresponding to the session context based on the data packet processing rules contained in the session context.

[0043] Specifically, Figure 2 is another structure diagram of a user plane data packet processing system according to the embodiment one of the present application, asFigure 2 As shown, the user space management layer 10 includes a packet forwarding control protocol session manager 11 (PFCP Session Manager, also referred to as a PFCP session manager) and a BPF program manager 12 (BPF Program Manager). In the PFCP session manager, a packet forwarding control protocol session establishment request message is received through an application programming interface (API), and a shared library is accessed by calling the BPF program manager to create a session context based on the establishment request message. Each PFCP session corresponds to a BPF program-based MAP in the kernel space for storing packet processing rules. The packet processing rules are parsed from the session context by calling the BPF program through the BPF program manager, and the session context corresponding BPF mapping file is updated based on the packet processing rules by accessing the shared library libbpf Library.

[0044] Optionally, the kernel space data layer 20 includes a parser 21, a shunt 22, and a forwarder 23.

[0045] The parser 21 is configured to parse the data packet, obtain a session context according to a specific field in the data packet, and send the session context and the data packet to the shunt.

[0046] The shunt 22 is configured to determine a data packet type of the data packet, access a BPF mapping file corresponding to the session context according to the data packet type to obtain a packet detection rule, and send the data packet and the packet detection rule to the forwarder.

[0047] The forwarder 23 is configured to search for a forwarding behavior rule mapped by the packet detection rule in a flow table of the mapping file, and forward the data packet based on the forwarding behavior rule.

[0048] The data packet type can include an uplink data packet and a downlink data packet.

[0049] Specifically, as shown in FIG. 2, the user space management layer 10 includes the PFCP session manager 11 and the BPF program manager 12. Figure 2As shown, the kernel space data layer 20 includes a parser 21, a shunt 22 and a forwarder 23. The parser 21 is used to parse the received data packet to obtain a specific field in the data packet, obtain the session context corresponding to the data packet according to the specific field, and send the session context and the data packet to the shunt 22. After receiving the session context and the data packet, the shunt 22 determines the data packet type according to the specific field in the data packet, accesses the BPF mapping file corresponding to the session context according to the data packet type. Since the data packet processing rule is written into the BPF mapping file in the user space management layer 10, the packet detection rule can be obtained from the BPF mapping file, and the received data packet and the obtained packet detection rule are sent to the forwarder 23. The forwarder 23 searches for the forwarding behavior rule mapped by the packet detection rule in the flow table of the mapping file according to the mapping relationship between the packet detection rule and the forwarding behavior rule, and forwards the data packet based on the forwarding behavior rule, thereby completing the parsing, shunting and forwarding processing of the data packet.

[0050] Embodiment Two

[0051] Figure 3 A flowchart of a data packet processing method of a user plane is provided for Embodiment Two of the present application. The present embodiment can be applied to the case of processing data packets in the user plane of a 5G core network. The method can be executed by the data packet processing system of the user plane shown in Embodiment One. The data packet processing system of the user plane can be realized in the form of hardware and / or software. The data packet processing system of the user plane can be configured in a computer device. As shown, the method comprises: Figure 3

[0052] S310, receiving, by a user space management layer of the user plane, a message of establishing a protocol session of message forwarding control, obtaining a data packet processing rule based on the message of establishing the protocol session, and writing the data packet processing rule into a Berkeley Packet Filter (BPF) mapping file through a BPF-based shared library.

[0053] Specifically, the user space management layer of the data packet processing system obtains the message of establishing the protocol session of message forwarding control through an application program interface (API) of a client, parses the message of establishing the protocol session to obtain the data packet processing rule, and writes the data packet processing rule into the BPF mapping file through the BPF-based shared library libbpf Library.

[0054] S320, when a data packet is received by a kernel space data layer of the user plane, obtaining a data packet processing rule from the mapping file, and processing the data packet based on the data packet processing rule. The kernel space data layer integrates the high-speed data packet processing (XDP) technology.

[0055] ​Specifically, the kernel space data layer of the data packet processing system obtains the data packet processing rule written by the user space management layer from the BPF MAP when receiving the data packet, so as to realize the communication between the kernel space data layer and the user space management layer; and the kernel space data layer integrated with the XDP technology adopts the obtained data packet processing rule to process the data packet. The processing of the data packet can include: analysis, shunting and forwarding.

[0056] The technical scheme of the embodiment of the application receives a message forwarding control protocol session establishment request message through the user space management layer of the user plane, obtains a data packet processing rule based on the establishment request message, and writes the data packet processing rule into a BPF mapping file through a shared library based on the Berkeley Packet Filter (BPF); the data packet processing rule is obtained from the mapping file when a data packet is received through the kernel space data layer of the user plane; the data packet is processed based on the data packet processing rule; wherein the kernel space data layer is integrated with the high-speed processing data packet (XDP) technology; the XDP technology of the built-in kernel space data layer is used for data packet processing, which can provide a more flexible, programmable and easy-to-implement method for data packet processing, and can more effectively utilize resources and improve performance in the 5GC network.

[0057] Embodiment Three

[0058] Figure 4 A flowchart of a data packet processing method of the user plane provided by the third embodiment of the application, which further refines the second embodiment. As shown in the figure, the method comprises: Figure 4

[0059] S310, receiving a message forwarding control protocol session establishment request message through the user space management layer of the user plane.

[0060] S320, creating a session context based on the establishment request message, and generating a hash mapping flow table according to the packet processing rule information in the session context.

[0061] The hash mapping flow table refers to a data structure that directly accesses according to a key value; the record is accessed by mapping the key value to a position in the table to speed up the search.

[0062] Specifically, a PFCP session context is created according to the establishment request message of the message forwarding control protocol session (Packet Forwarding Control Protocol Session, PFCP Session). The packet processing rule information is contained in the session context, and a hash mapping flow table is generated according to the packet processing rule information in the session context.

[0063] ​The first hash mapping flow table is generated according to a packet detection rule in the session context, and the second hash mapping flow table is generated according to a forwarding behavior rule in the session context.

[0064] Optionally, creating the session context based on the establishment request message comprises:

[0065] The BPF program manager is invoked by the packet forwarding control protocol session manager;

[0066] The session context corresponding to the establishment request message is created by the BPF program manager accessing the shared library.

[0067] Specifically, in the user space management layer, after receiving the establishment request message, the BPF program manager is invoked by the packet forwarding control protocol session manager (PFCP manager) in the user space management layer; and the BPF program manager accesses the shared library libbpf to complete the creation of the session context.

[0068] S330, write the hash mapping flow table into the BPF mapping file corresponding to the session context in the kernel space data layer through the Berkeley Packet Filter BPF-based shared library; and the packet processing rule information comprises a packet detection rule and a forwarding behavior rule.

[0069] Specifically, the generated hash mapping flow table is written into the kernel space data layer through the shared library libbpf and stored in the BPF mapping file corresponding to the session context in the kernel space data layer, so that the kernel space data layer can use it when processing data packets.

[0070] S340, when receiving a data packet through the kernel space data layer of the user plane, the data packet is parsed through a parser, the session context is obtained according to a specific field in the data packet, and the session context and the data packet are sent to a flow distributor.

[0071] Specifically, when receiving a data packet, the kernel space data layer of the user plane parses the data packet through a parser of the kernel space data layer to obtain a specific field in the data packet, such as a UE IP or a TEID as a key value, and the value item corresponding to the key value found in the mapping file MAP is the session context. The session context found in the mapping file MAP and the received data packet are sent to the flow distributor for further flow processing.

[0072] S350, determine the data packet type of the data packet through the flow distributor, access the BPF mapping file corresponding to the session context according to the data packet type to obtain a packet detection rule, and send the data packet and the packet detection rule to a forwarder.

[0073] Specifically, the shunt receives the session context and the data packet, determines the data packet type according to a specific field in the data packet, and determines the data packet type as an uplink data packet if the specific field is a traffic endpoint identifier TEID, or determines the data packet type as a downlink data packet if the specific field is a user equipment identifier UEIP. The BPF mapping file corresponding to the session context is accessed according to the data packet type as the uplink data packet or the downlink data packet, and the packet detection rule is obtained from the mapping file. The data packet and the packet detection rule are sent to the forwarder for forwarding processing of the data packet.

[0074] Optionally, obtaining the packet detection rule from the BPF mapping file corresponding to the session context according to the data packet type comprises:

[0075] If the data packet type is the uplink data packet, the uplink packet detection rule is obtained from the first hash mapping flow table in the BPF mapping file corresponding to the session context based on the traffic endpoint identifier in the data packet;

[0076] If the data packet type is the downlink data packet, the downlink packet detection rule is obtained from the second hash mapping flow table in the BPF mapping file corresponding to the session context based on the user equipment identifier in the data packet.

[0077] Specifically, for the uplink data packet, the uplink packet detection rule of the uplink data packet in the first hash mapping flow table is obtained by accessing the first hash mapping flow table in the BPF mapping file corresponding to the session context based on the traffic endpoint identifier in the uplink data packet; and for the downlink data packet, the downlink packet detection rule of the downlink data packet in the second hash mapping flow table is obtained by accessing the second hash mapping flow table in the BPF mapping file corresponding to the session context based on the user equipment identifier in the downlink data packet.

[0078] S360, the forwarder finds the forwarding behavior rule mapped by the packet detection rule in the flow table of the mapping file, and forwards the data packet based on the forwarding behavior rule.

[0079] Specifically, the forwarder finds the forwarding behavior rule mapped by the packet detection rule in the flow table of the mapping file according to the mapping relationship between the packet detection rule and the forwarding behavior rule, and forwards the data packet based on the forwarding behavior rule.

[0080] The technical scheme of the embodiment of the application receives a message of establishing a request of a message forwarding control protocol session through a user space management layer of a user plane, obtains a data packet processing rule based on the message of establishing a request, and writes the data packet processing rule into a BPF mapping file through a shared library based on a Berkeley packet filter (BPF); the data packet processing rule is obtained from the mapping file when a data packet is received through a kernel space data layer of the user plane; the data packet is processed based on the data packet processing rule; wherein, the XDP technology of high-speed processing data packets is integrated in the kernel space data layer; the XDP technology of the built-in kernel space data layer is used for processing data packets, which can provide a more flexible, programmable and easy-to-implement method for data packet processing, and can more effectively utilize resources and improve performance in the 5GC network.

[0081] Figure 5 is a schematic diagram of a data packet processing method in a kernel space data layer provided by the third embodiment of the application. Figure 5 As shown in the figure, in the kernel space data layer, the parser parses the data packet obtained through the network card, obtains the session context according to the specific field in the data packet, and sends the session context and the data packet to the flow distributor; the flow distributor determines that the data packet type of the data packet is an uplink data packet (such as a GTPu data packet) or a downlink data packet (such as a UDP data packet), performs fast packet processing according to the data packet type, accesses the BPF mapping file corresponding to the session context to obtain a packet detection rule (PDR), sends the data packet and the PDR to the forwarder, and the forwarder searches the mapping file for a forwarding action rule (FAR) mapped by the PDR, the FAR contains the action to be applied (such as forwarding), the creation of the external header and the target interface; the data packet is forwarded based on the forwarding action rule (PDR). If the network card of the input data packet is different from the network card of the output data packet after forwarding, redirection is constituted.

[0082] The gateway prototype based on eBPF provided by the application uses the XDP technology to perform fast packet processing, and can be deployed in the components at the edge. The specific advantages are as follows: (1) decoupled from a specific framework; (2) consistent with the specifications and standards of 3GPP; (2) based on libbpf instead of BCC, BCC does not belong to the Linux source tree and depends on the clang runtime compiler. Libbpf is based on Linux, and can be easily integrated with different software-based 5G sub-surface solutions.

[0083] Embodiment four

[0084] Figure 6A structural diagram of a computer device 10 that can be used to implement embodiments of the present application is shown. The computer device is intended to represent various forms of digital computers, such as laptops, desktops, tablets, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not intended to limit the implementations of the present application described and / or claimed in this document.

[0085] As shown, Figure 6 The computer device 10 includes at least one processor 11, and a memory, such as a read-only memory (ROM) 12, a random access memory (RAM) 13, etc., connected to the at least one processor 11 in communication, where the memory stores computer programs executable by the at least one processor. The processor 11 can perform various appropriate actions and processes according to the computer programs stored in the read-only memory (ROM) 12 or loaded into the random access memory (RAM) 13 from the storage unit 18. In the RAM 13, various programs and data required for the operation of the computer device 10 can also be stored. The processor 11, the ROM 12, and the RAM 13 are connected to each other through a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.

[0086] Various components in the computer device 10 are connected to the I / O interface 15, including an input unit 16, such as a keyboard, a mouse, etc., an output unit 17, such as various types of displays, speakers, etc., a storage unit 18, such as a magnetic disk, an optical disk, etc., and a communication unit 19, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 19 allows the computer device 10 to exchange information / data with other devices through a computer network, such as the Internet, and / or various telecommunication networks.

[0087] The processor 11 can be various general and / or special-purpose processing components with processing and computing capabilities. Some examples of the processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The processor 11 performs various methods and processes described above, such as the user plane packet processing method.

[0088] In some embodiments, the method of packet processing for the user plane can be implemented as a computer program tangibly embodied in a computer readable storage medium, e.g., storage unit 18. In some embodiments, parts or all of the computer program can be loaded and / or installed onto the computer device 10 via the ROM 12 and / or the communication unit 19. When the computer program is loaded into the RAM 13 and executed by the processor 11, one or more steps of the method of packet processing for the user plane described above can be performed. Alternatively, in other embodiments, the processor 11 can be configured to perform the method of packet processing for the user plane by way of other means (e.g., by way of firmware).

[0089] Various implementations of the systems and techniques described above can be realized in digital electronic circuitry, integrated circuitry, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on a chip (SOC), a programmable logic device (PLD), a computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0090] Computer programs used to implement the methods of the present application can be written in any combination of one or more programming languages. These computer programs can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the computer program, when executed by the processor of the machine, implements the functions / acts specified in the flowcharts and / or block diagrams. The computer program can be executed entirely on a machine, partially on a machine, partially on a machine as a stand-alone software package, partially on a machine and partially on a remote machine or entirely on a remote machine or server.

[0091] In the context of the present application, a computer-readable storage medium can be a tangible medium that can contain or store a computer program for use by or in connection with an instruction execution system, apparatus, or device. A computer-readable storage medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium can be a machine-readable signal medium. More specific examples of a machine-readable storage medium will include one or more lines of a program of instructions in a transitory signal, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0092] To provide for interaction with a user, the systems and techniques described here can be implemented on a computer device having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer device. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0093] The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), a blockchain network, and the Internet.

[0094] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a host product in the cloud computing service system, to solve the defects of large management difficulty and weak business scalability in traditional physical host and VPS service.

[0095] It should be understood that the various forms of flow shown above can be used to reorder, add or delete steps. For example, each step described in the present application can be executed in parallel, sequentially or in a different order, as long as the desired results of the technical solutions of the present application can be achieved, which is not limited herein.

[0096] The above detailed description does not constitute a limitation on the protection scope of the present application. Those skilled in the art should understand that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modifications, equivalent replacements and improvements made within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. A data packet processing system for a user plane, characterized by Comprise: A user space management layer and a kernel space data layer; wherein the kernel space data layer is integrated with an eXpress Data Path (XDP) technology; the user space management layer and the kernel space data layer communicate based on a Berkeley Packet Filter (BPF) shared library; the user space management layer is in a user space layer and is configured to manage a Packet Forwarding Control Protocol (PFCP) session and a BPF program life cycle; and the kernel space data layer is in a kernel space layer and is configured to process a data packet; The user space management layer is configured to receive a PFCP session establishment request message, obtain a data packet processing rule based on the establishment request message, and write the data packet processing rule into a BPF mapping file through the BPF shared library; The kernel space data layer is configured to obtain the data packet processing rule from the mapping file and process the data packet based on the data packet processing rule when receiving the data packet; The user space management layer comprises: A PFCP session manager and a BPF program manager; The PFCP session manager is configured to receive a PFCP session establishment request message and call the BPF program manager; The BPF program manager is configured to access the shared library, create a session context based on the establishment request message, and update a BPF mapping file corresponding to the session context based on a data packet processing rule contained in the session context.

2. The system of claim 1, wherein, The kernel space data layer comprises: A parser, a shuffler, and a forwarder; The parser is configured to parse the data packet, obtain a session context according to a specific field in the data packet, and send the session context and the data packet to the shuffler; The shuffler is configured to determine a data packet type of the data packet, access a BPF mapping file corresponding to the session context to obtain a packet detection rule according to the data packet type, and send the data packet and the packet detection rule to the forwarder; 3. A method of processing data packets in a user plane, characterized by, The forwarder is configured to find a forwarding behavior rule mapped by the packet detection rule in a flow table of the mapping file, and forward the data packet based on the forwarding behavior rule. The data packet processing system applied to the user plane of any one of claims 1-2, comprising: A user space management layer of the user plane is configured to receive a PFCP session establishment request message, obtain a data packet processing rule based on the establishment request message, and write the data packet processing rule into a BPF mapping file through a BPF shared library; 4. The method of claim 3, wherein, A kernel space data layer of the user plane is configured to obtain a data packet processing rule from the mapping file when receiving a data packet, and process the data packet based on the data packet processing rule; wherein the kernel space data layer is integrated with an eXpress Data Path (XDP) technology. The kernel space data layer of the user plane is configured to obtain a data packet processing rule from the mapping file, comprising: parsing the data packet through a parser in a kernel space data layer, obtaining a session context according to a specific field in the data packet, and sending the session context and the data packet to a splitter; determining a data packet type of the data packet through the splitter, accessing a BPF map file corresponding to the session context according to the data packet type to obtain a packet detection rule, and sending the data packet and the packet detection rule to a forwarder; finding a forwarding behavior rule mapped by the packet detection rule in a flow table of the map file through the forwarder, and forwarding the data packet based on the forwarding behavior rule.

5. The method of claim 4, wherein, Accessing the BPF map file corresponding to the session context according to the data packet type to obtain the packet detection rule includes: if the data packet type is an uplink data packet, accessing a first hash mapping flow table in the BPF map file corresponding to the session context based on a traffic terminal identifier in the data packet to obtain an uplink data packet detection rule; if the data packet type is a downlink data packet, accessing a second hash mapping flow table in the BPF map file corresponding to the session context based on a user equipment identifier in the data packet to obtain a downlink data packet detection rule.

6. The method of claim 3, wherein, Based on the establishment request message, obtaining a data packet processing rule, and writing the data packet processing rule into a BPF map file through a Berkeley Packet Filter (BPF) shared library, includes: creating a session context based on the establishment request message, and generating a hash mapping flow table according to packet processing rule information in the session context; writing the hash mapping flow table into the BPF map file corresponding to the session context in the kernel space data layer through the Berkeley Packet Filter (BPF) shared library; the packet processing rule information includes a packet detection rule and a forwarding behavior rule.

7. The method of claim 6, wherein, The method further includes: calling a BPF program manager through a message forwarding control protocol session manager; accessing a shared library through the BPF program manager to create a session context corresponding to the establishment request message.

8. A computer device, comprising: The computer device includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores a computer program executable by the at least one processor, and the computer program is executed by the at least one processor to enable the at least one processor to execute the user plane data packet processing method of any one of claims 3-7.

9. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer instructions for causing a processor to execute the user plane data packet processing method of any one of claims 3-7 when executed by the processor.

Citation Information

Patent Citations

  • Data packet processing method and device, computer equipment and storage medium

    CN114244850A

  • Dual user space-kernel space datapath for packet processing operations

    CN115733782A