Patent Description:
When user equipment (UE) accesses or disconnects from a cell, the base station receives a Reliable User Datagram Protocol (RUDP) message using the kernel protocol stack and forwards the message to the processing module via a socket. However, in the case of frequent access of large volume of UE, there are too many interruptions in receiving and sending packets at the network port, which significantly increases the workload of CPU.

<CIT> relates to a method and mobile device for silently fetching data. In one arrangement, the method can include the steps of receiving a silent fetch request from an originating device over a wireless communication channel in which the silent fetch request requests information and checking the authorization of the originating device. If the originating device is an authorized device, the requested information can be fetched and transmitted to the originating device. As an example, the requested information can be fetched from a receiving device or from a network server with which the receiving device is associated. As another example, the wireless communication channel can be a traffic channel that supports at least push-to-talk communications.

<CIT> relates to a data processing system having a poll mode driver and a library supporting protocol processing. The poll mode driver and the library are non-operating system functionalities. An application is provided. An operation system is configured while executing in kernel mode and in response to the application being determined to be unresponsive, use a helper process being an operating system functionality executing at user-mode to cause a receive or transmit mode of the application to continue.

The present disclosure provides a message processing method applicable to a base station, according to claim <NUM>.

The present disclosure also provides a message processing device according to claim <NUM>.

The present disclosure also provides a computer-readable storage medium storing one or more programs according to claim <NUM>.

Additional features and advantages of the present disclosure will be set forth in the subsequent description, and in part will become apparent from the description, or may be learned by practice of the present disclosure. The purposes and other advantages of the present disclosure can be realized and obtained by structures particularly noted in the description, the claims and the accompanying drawings.

The accompanying drawings are used to provide further understanding of the technical schemes of the present disclosure and constitute a part of the description. The accompanying drawings are used to explain the technical schemes of the present disclosure together with the embodiments of the present disclosure, and do not constitute a restriction on the technical schemes of the present disclosure.

In order to make the purposes, technical schemes and advantages of the present disclosure clear, the embodiments of the present disclosure will be described hereinafter in detail with reference to the accompanying drawings. It should be noted that any combinations of embodiments and features of the embodiments of the present disclosure without conflict are possible.

The steps shown in the flowcharts of the drawings may be performed in a computer system, such as with a set of computer-executable instructions. Furthermore, although example logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in different order.

<FIG> is a flowchart of a message processing method provided in the present disclosure. The method shown in <FIG> that is applicable to a base station includes the following steps.

At step <NUM>, a RUDP message is acquired, where the RUDP message includes access request information of UE; a baseband processing unit sends the RUDP message to a control module when the UE is accessing or disconnecting from the base station; and in practical applications, since the control module is not limited to receiving messages of the RUDP message type, but the control module also receives other types of messages, which requires the control module to identify the received messages.

In an embodiment, acquiring a RUDP message includes: acquiring a message sent by a baseband processing module; and performing RUDP message identification on the acquired message by utilizing an Access Control List (ACL) module within a switch chip to obtain a RUDP message.

In this embodiment, the identification of the message is implemented by utilizing the built-in ACL function of the switch chip, and a new method for message matching identification is provided compared to the utilization of Media Access Control Address (MAC) address matching in the existing technology, which has a lower hardware cost due to the utilization of the built-in function in the switch chip.

At step <NUM>, the RUDP message is stored in a user-mode memory. In the process of analyzing the problem of overburdened CPU in the existing technology, the inventors found that the reason why adopting the kernel-mode protocol stack to receive a RUDP message significantly increases the workload of the CPU is the occurrence of memory copies of the RUDP message from the kernel mode to the user mode, especially in the case of frequent access of large volume of UE, which further increases the burden on the CPU due to too many interruptions in sending and receiving packets at the network port.

Based on the inventors' analysis, the inventors propose that, in the solution provided in the embodiments of the present disclosure, a RUDP message be stored directly into the user-mode memory, then there is no need to perform a memory copy, thus achieving the purpose of zero memory copies and achieving the effect of reducing the burden on the CPU.

At step <NUM>, the stored RUDP message is processed.

In an embodiment, resource allocation and tunnel establishment for UE access is performed based on the content of the RUDP message.

According to the method embodiment provided in the present disclosure, an RUDP message is acquired, the RUDP message is stored in a user-mode memory, and the stored RUDP message is processed. By storing the RUDP message directly into the user-mode memory, there is no need to perform a memory copy, thus achieving the purpose of zero memory copies and achieving the effect of reducing the burden on the processor.

The method provided in the present disclosure is further illustrated as follows.

In an embodiment, performing identification on the acquired message by utilizing an ACL module within a switch chip to obtain a RUDP message includes: performing hash calculation on the acquired message to obtain a hash value of the message; performing a matching operation on the hash value of the received message by utilizing hash value information pre-stored in a Ternary Content Addressable Memory (TCAM) in the ACL module; and determining that the received message is a RUDP message in response to a result of matching being that the hash value of the message is consistent with the hash value stored in the TCAM.

In this embodiment, the ACL adopts the hash value of the underlying TCAM to perform rules hitting and matching operations without the involvement of other external software, which are fast and accurate. If at least two rules are set in the TCAM table, it is possible to match one message with at least two rules in parallel, thus improving the processing efficiency.

In an embodiment, storing the RUDP message in a user-mode memory includes: sending the RUDP message to a Data Plane Development Kit (DPDK) module; and storing the RUDP message in the user-mode memory by utilizing the DPDK module.

In this embodiment, the storage of the RUDP message in the user-mode memory is achieved by utilizing the DPDK module. By utilizing the open source characteristics of the DPDK module, software configuration of the DPDK is performed, thus accomplishing the purpose of storing the RUDP message into the user-mode memory without increasing the hardware development cost.

In an embodiment, sending the RUDP message to a DPDK module includes: redirecting a destination port for the RUDP message to a pre-acquired DPDK port; and sending out the RUDP message for which the destination port has been redirected.

In this embodiment, after the ACL module determines the RUDP message, by redirecting the destination port for the message, the RUDP message may be sent to the DPDK port for processing by the DPDK module. By means of the redirection of the destination port, it is possible to achieve the purpose of routing, within the control module, the RUDP message to the DPDK module without changing the destination port for the message sent by the baseband processing module, thus accomplishing the purpose of storing the RUDP message into the user-mode memory without destroying the transmission mechanism of the original communication protocol.

In an embodiment, storing the RUDP message in the user-mode memory by utilizing the DPDK module includes: polling and matching messages received at the DPDK port to acquire a RUDP message; and saving the RUDP message in a pre-set queue in the user-mode memory space.

In this embodiment, the message format characteristics information for RUDP messages may be adopted to poll and match messages received by the DPDK port to obtain a RUDP message, and then the RUDP message may be stored by utilizing a queue of the port. Since DPDK adopts techniques of Userspace I/O (UIO) and huge page, a message may be stored directly into the user-mode memory, thus achieving the purpose of storing data directly into the user-mode memory and achieving the purpose of zero copy.

In an embodiment, saving the RUDP message in a pre-set queue in the user-mode memory space includes: storing the RUDP message into the pre-set queue according to a pre-stored storage sequence; and after saving the RUDP message in the pre-set queue in the user-mode memory space, the method further includes: controlling, in accordance with a correspondence between pre-set queues and processing modules, each processing module to respond respectively to a RUDP message in a corresponding queue.

In this embodiment, the RUDP message may be stored by utilizing at least two queues, where the specific queue in which the received RUDP message is stored may be determined according to a pre-set policy, for example, a queue may be randomly selected, or a corresponding queue may be determined according to a pre-set calculation expression based on the receiving serial number of the RUDP message.

Since each queue has a corresponding processing module, each processing module processes a RUDP message in a corresponding queue, where the RUDP messages in the queues may be processed in a first-in-first-out manner. By processing RUDP messages in parallel by utilizing multiple processing modules, the processing efficiency of the messages can be effectively improved.

In an embodiment, processing the stored RUDP message includes: acquiring, after obtaining response information corresponding to the RUDP message, a user-mode memory required by the response information from the DPDK module; obtaining a response message corresponding to the RUDP message by utilizing the acquired user-mode memory and the response information; and sending the response message by utilizing the switch chip.

In this embodiment, after obtaining the response information corresponding to the RUDP message, the user-mode memory is requested via the DPDK module and filled in with the message, which is then sent out directly, so there is no interruption and memory copy, thus significantly simplifying the processing flow and improving the response efficiency.

In an embodiment, before storing the RUDP message in the user-mode memory, the method further includes: acquiring information on the number of times the UE has accessed and/or disconnected from a cell within a pre-set length of time; and storing a RUDP message corresponding to the UE in the user-mode memory in response to the information on the number of times the UE has accessed and/or disconnected from the cell meeting a pre-set determination condition of frequent access.

In this embodiment, by determining whether the UE has accessed the base station frequently, it is possible to effectively switch between the original message processing method and the message processing method of the present disclosure, thereby increasing the flexibility of the method application.

The method provided in the embodiments of the present disclosure is further illustrated as follows: in the case of frequent access to the base station by large volume of UE, a RUDP message may be identified through ACL, and the message may be sent, received and processed by utilizing DPDK, so as to avoid interruptions and achieve zero-copy to improve the transmission performance, thus enhancing user experience and winning customer reputation.

<FIG> is an interactive schematic diagram of the message processing method provided in an embodiment of the present disclosure. As shown in <FIG>, after the user equipment has accessed the base station, a RUDP message may be output by the baseband processing unit after being processed by the radio frequency processing unit. The control module of the present disclosure processes the RUDP message by utilizing the built-in switch chip and the CPU and sends it to the core network after processing.

<FIG> is an interactive schematic diagram between modules shown in <FIG>. The processing approach of the module shown in <FIG> includes the following steps: in the direction of data transmission for receiving the RUDP message, the baseband processing module triggers the sending of the RUDP to the ACL module after UE access; the ACL module performs matching by adopting a pre-stored RUDP message and sends the message to other network driver modules in response to the message matching being failed, and sends the message to the DPDK module in response to the message matching being successful; and after receiving the message, the DPDK module places the message in a memory visible in the user mode and processes the message in the user-mode memory by utilizing the message processing module.

In the direction of data transmission for sending the RUDP message, the message processing module requests memory from the user-mode memory, completes the filling of the message, and utilizes the DPDK module to send to the switch chip the RUDP message, which is then sent by the switch chip to the baseband processing module.

In the interaction diagram shown in <FIG>, in the direction of receiving, after the RUDP message is identified in the switch chip, the RUDP message is stored directly via the DPDK port into the user-mode memory and then sent to the message processing module; and in the direction of sending, the Operation Support Systems (OSS) requests network port memory, fills in the message, and then sends it out directly. In the above-mentioned transmission process, there is no interruption or memory copy operations, which significantly simplifies the processing flow, improves the response efficiency, and qualitatively improves many indexes of the base station.

<FIG> is a flowchart of a processing method for a RUDP message provided by an embodiment of the present disclosure. The method shown in <FIG> includes the following steps.

At step <NUM>, a radio frequency unit detects whether a user terminal has accessed the cell.

At step <NUM>, after detecting that the user terminal has accessed the cell, the radio frequency unit informs the baseband processing module to send a RUDP message to the control module.

At step <NUM>, after the RUDP message is transmitted to the control module via the physical link, a switch chip in the control module performs ACL rule matching on the received RUDP message.

During RUDP message identification, bit fields such as message type and port number are adopted in the existing technology to perform identification and screening one by one. However, when the amount of messages is large, adopting the method in the existing technology will significantly increase the load of CPU. In order to overcome the above problem, the embodiments of the present disclosure propose to use the ACL function at the switch chip level to identify and mark messages for forwarding at high speed by utilizing a TCAM table, which significantly improves the identification efficiency without increasing additional consumptions of CPU.

In response to the matching being successful, step <NUM> is executed; otherwise, the message is forwarded normally.

At step <NUM>, the switch chip in the control module redirects a destination port for the RUDP message to a DPDK network port.

After the ACL identifies the RUDP message and forwards it to the DPDK network port, the DPDK puts, through polling, the message in a Memory Pool (mempool) which is visible in the user mode, and may directly deliver the message to the processing module for processing.

At step <NUM>, the CPU in the control module sends out the RUDP message for which the destination port has been redirected.

At step <NUM>, a packet sending and receiving thread of the DPDK module performs polling and receiving operations and performs message matching; and in response to the received message being a RUDP message, step <NUM> is executed; otherwise, a discard operation is performed for all messages.

At step <NUM>, the RUDP message is stored in the user-mode memory space (mempool) in the form of a queue, where there is a binding relationship between DPDK packet sending and receiving threads and the processing modules in the CPU, each processing module being allocated with a corresponding packet sending and receiving queue.

At step <NUM>, a polling thread polls the RUDP message and delivers the RUDP message to the processing module for processing.

At step <NUM>, the processing module performs resource allocation and tunnel establishment for UE access according to the content of the message.

As can be seen from steps <NUM> to <NUM>, after a message is received at the DPDK network port, the message is polled and received in the user mode and then delivered to the processing module, during which no interruptions need to be generated, no message identification needs to be performed in the user mode, and no copy of the message from the kernel mode to the user mode needs to occur, thus significantly saving system resources and performance.

The method provided in the embodiments of the present disclosure does not need to modify the hardware design, but can optimize the message processing by utilizing the open source DPDK and the ACL function that comes with the switch chip, thus improving the processing efficiency. In addition, compared with the original forwarding processing method, storing RUDP messages with the help of DPDK by utilizing a huge page table achieves the zero-copy purpose and binds the queues to the processing modules, thus improving the processing efficiency of the messages. Further, by the polling thread, the problems of task scheduling and frequent interruptions are avoided, thus significantly saving CPU resources and improving processing performance, making it possible to better ensure the use and experience of user terminal equipment.

<FIG> is a structural diagram of a message processing device provided in the present disclosure. The device shown in <FIG> includes a processor <NUM> and a memory <NUM>, where the memory <NUM> stores a computer program, and the processor <NUM> invokes the computer program in the memory <NUM> to implement the following operations, which include: acquiring a RUDP message, where the RUDP message includes access request information of UE; storing the RUDP message in a user-mode memory; and processing the stored RUDP message.

In an embodiment, the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of acquiring the RUDP message, which includes: acquiring a message sent by a baseband processing module; and performing RUDP message identification on the acquired message by utilizing an ACL module within a switch chip in the control module to obtain a RUDP message.

In an embodiment, the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of performing identification on the acquired message by utilizing the ACL module within the switch chip in the control module to obtain the RUDP message, which includes: performing hash calculation on the acquired message to obtain a hash value of the message; performing a matching operation on the hash value of the received message by utilizing hash value information pre-stored in a Ternary Content Addressable Memory <NUM> (TCAM) in the ACL module; and determining that the received message is a RUDP message in response to a result of matching being that the hash value of the message is consistent with the hash value stored in the TCAM.

In an embodiment, the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of storing the RUDP message in the user-mode memory, which includes: sending the RUDP message to a DPDK module; and storing the RUDP message in the user-mode memory by utilizing the DPDK module.

In an embodiment, the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of sending the RUDP message to the DPDK module, which includes: redirecting a destination port for the RUDP message to a pre-acquired DPDK port; and sending out the RUDP message for which the destination port has been redirected.

In an embodiment, the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of storing the RUDP message in the user-mode memory by utilizing the DPDK module, which includes: polling and matching messages received at the DPDK port to acquire a RUDP message; and saving the RUDP message in a pre-set queue in the user-mode memory space.

In an embodiment, the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of saving the RUDP message in the pre-set queue in the user-mode memory space, which includes: storing the RUDP message into the pre-set queue according to a pre-stored storage sequence. In an embodiment, after the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of saving the RUDP message in the pre-set queue in the user-mode memory space, the processor <NUM> invokes the computer program in the memory <NUM> to further implement the following operation, which includes: controlling, in accordance with a correspondence between pre-set queues and processing modules, each processing module to respond to a RUDP message in a corresponding queue.

In an embodiment, the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of processing the stored RUDP message, which includes: acquiring, after obtaining response information corresponding to the RUDP message, a user-mode memory required by the response information from the DPDK module; obtaining a response message corresponding to the RUDP message by utilizing the acquired user-mode memory and the response information; and sending the response message by utilizing the switch chip.

In an embodiment, before the processor <NUM> invokes the computer program in the memory <NUM> to implement the operation of storing the RUDP message in the pre-set queue in the user-mode memory space, the processor <NUM> invokes the computer program in the memory <NUM> to implement the following operations, which include: acquiring information on the number of times the UE has accessed and/or disconnected from a cell within a pre-set length of time; and storing a RUDP message corresponding to the UE in the user-mode memory in response to the information on the number of times the UE has accessed and/or disconnected from the cell meeting a pre-set determination condition of frequent access.

According to the device embodiment provided in the present disclosure, an RUDP message is acquired, the RUDP message is stored in a user-mode memory, and the stored RUDP message is processed. By storing the RUDP message directly into the user-mode memory, there is no need to perform a memory copy, thus achieving the purpose of zero memory copies and achieving the effect of reducing the burden on the processor.

The present disclosure further provides a computer-readable storage medium storing one or more programs which are executable by one or more processors to implement any method described above.

According to the computer-readable storage medium embodiment provided in the present disclosure, an RUDP message is acquired, the RUDP message is stored in a user-mode memory, and the stored RUDP message is processed. By storing the RUDP message directly into the user-mode memory, there is no need to perform a memory copy, thus achieving the purpose of zero memory copies and achieving the effect of reducing the burden on the processor.

Claim 1:
A message processing method applicable to a base station, comprising:
acquiring a Reliable User Datagram Protocol, RUDP, message, wherein the RUDP message comprises access request information of user equipment, UE (<NUM>);
storing the RUDP message in a user-mode memory (<NUM>); and
processing the stored RUDP message (<NUM>);
characterized in that,
storing the RUDP message in a user-mode memory comprises:
sending the RUDP message to a Data Plane Development Kit, DPDK, module; and
storing the RUDP message in the user-mode memory by utilizing the DPDK module;
wherein sending the RUDP message to a DPDK module comprises:
redirecting a destination port for the RUDP message to a pre-acquired DPDK port of the DPDK module used to place the RUDP message in a memory space visible in user mode; and
sending out the RUDP message for which the destination port has been redirected;
wherein storing the RUDP message in the user-mode memory by utilizing the DPDK module comprises:
polling and matching messages received at the DPDK port to acquire a RUDP message; and
saving the RUDP message in a pre-set queue in the user-mode memory space;
wherein:
saving the RUDP message in a pre-set queue in the user-mode memory space comprises:
storing the RUDP message into the pre-set queue according to a pre-stored storage sequence;
and
after saving the RUDP message in the pre-set queue in the user-mode memory space, the method further comprises:
controlling, in accordance with a correspondence between pre-set queues and processing modules, each processing module to respond respectively to a RUDP message in a corresponding queue.