High-performance virtualized network data plane acceleration method based on DPDK and SR-IOV

By identifying and adjusting the interrupt information of the SR-IOV virtual function VF channel, and dynamically adjusting thread binding and forwarding paths, the problems of interrupt storms and resource scheduling chaos in traditional virtualized networks are solved, and network performance and stability in high-concurrency scenarios are improved.

CN121924073APending Publication Date: 2026-04-24BEIJING ANTAI DIANTONG SCI & TECH
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BEIJING ANTAI DIANTONG SCI & TECH
Filing Date
2025-12-17
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

In traditional virtualized network environments, the interrupt handling mechanism is relatively static and cannot respond to changes in interrupt frequency in real time, leading to interrupt storms, thread saturation, and chaotic resource scheduling, which affects network throughput performance and stability, especially under high-concurrency scenarios.

Method used

By recording the interrupt information of the SR-IOV virtual function VF channel, the high-frequency interrupt status can be identified, and the thread binding and forwarding path can be dynamically adjusted to realize the reconstruction of interrupt monitoring and flexible scheduling of resources, thereby optimizing the data forwarding structure.

Benefits of technology

It improves the throughput and processing stability of virtualized networks in high-concurrency scenarios, enhances the flexibility of resource scheduling, and optimizes data plane performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121924073A_ABST
    Figure CN121924073A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of virtualized network acceleration, in particular to a high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV, which comprises the following steps: recording VF channel interruption time, queue number and buffer area state, calculating interruption interval to identify high-frequency interruption, acquiring polling frequency and thread number to judge whether overload occurs or not, and executing the step of executing the step of executing the step of executing the step of executing the step of executing the step of executing the step of executing the step of executing the step of executing the step of executing the step of executing the step. According to the method, the interrupt triggering information is recorded and the interrupt frequency is analyzed, so that the high-frequency interrupt state is dynamically identified, the interrupt monitoring relation is reconstructed and the forwarding path is updated to map, and the interrupt monitoring relation and the forwarding path are updated to configure a redirection thread identifier. The dynamic adjustment of a data forwarding structure is completed, the efficient cooperation of interrupt response and data processing is ensured, the throughput and processing stability of a network in a high-concurrency scene are improved, the resource scheduling flexibility is enhanced, and the data plane performance in a virtualization environment is optimized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of virtualized network acceleration technology, and in particular to a high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV. Background Technology

[0002] The field of virtualized network acceleration technology involves various methods to improve network data transmission efficiency in virtualized environments. Core aspects include data plane acceleration, input / output virtualization, and network interface pass-through. The overall technology typically optimizes network performance by using efficient packet forwarding mechanisms, bypassing the kernel protocol stack, and leveraging hardware assistance within virtual machines or containers. Traditional virtualized network data plane acceleration methods refer to achieving efficient packet processing in a virtualized environment through a user-space forwarding framework. The technical issue addressed is the degradation of network throughput performance caused by high interrupt handling overhead and low kernel protocol stack forwarding efficiency in virtualized network environments. Traditional patent topics typically employ user-space forwarding methods to achieve zero-copy packet processing using data plane development kits and to achieve direct allocation and access of physical network resources between the host machine and virtual machines through a single root input / output virtualization mechanism to improve data plane processing efficiency.

[0003] Traditional virtualized network environments generally rely on user-space forwarding frameworks for efficient packet processing. However, due to the relatively static interrupt handling mechanism, it fails to respond in real-time to changes in interrupt frequency, easily leading to interrupt storms in scenarios with multiple virtual functions processing concurrently. This can cause thread saturation, resulting in resource scheduling chaos and decreased throughput. Furthermore, existing methods lack dynamic adjustment mechanisms for queue scheduling and thread allocation, typically relying on fixed thread bindings for send and receive processing. When a thread experiences overload or latency, the workload cannot be flexibly shifted, causing some send and receive queues to remain congested for extended periods. In addition, the high coupling between forwarding paths and interrupt channels means that uneven distribution of thread resources significantly restricts forwarding efficiency. Taking thread binding, which user-space packet processing depends on, as an example, when physical core thread resources are limited and the load is concentrated, the original path cannot be released in time, creating a bottleneck and affecting the overall system's stability and performance in high-concurrency environments. These shortcomings directly limit the scalability and efficiency of the virtualized network's data plane, hindering the construction of a high-throughput, low-latency network forwarding system. Summary of the Invention

[0004] To address the technical problems existing in the prior art, this invention provides a high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV, comprising the following steps: To achieve the above objectives, the present invention adopts the following technical solution: a high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV, comprising the following steps: S1: Record the trigger interrupt time, queue number and buffer status of the SR-IOV virtual function VF channel, calculate the interrupt interval and compare it with the interrupt interval threshold, identify the high-frequency interrupt status, mark the corresponding queue and interrupt information, and generate a high-frequency interrupt trigger table. S2: Based on the high-frequency interrupt trigger table, obtain the polling frequency and thread number of the DPDK receiving queue, determine whether there is a polling waiting time exceeding the limit in the queue bound to the thread, record the queue, virtual function and thread information that meet the conditions, and generate a queue overload scheduling mapping table. S3: Based on the queue overload scheduling mapping table, query the idle threads in the DPDK logic core, allocate target threads for the queues that need to be adjusted, record the correspondence between virtual functions, original threads and target threads, and generate a thread scheduling migration table; S4: Read the thread scheduling migration table, modify the DPDK receive channel listening configuration, unbind the original thread, establish the listening relationship between the virtual function and the target thread, and generate the interrupt kernel listening reconstruction table; S5: Based on the interrupt core listening reconstruction table, update the SR-IOV forwarding path configuration, replace the thread identifier with the target thread, synchronously update the DPDK user-space forwarding structure, and generate the forwarding path core redirection table.

[0005] As a further embodiment of the present invention, the high-frequency interrupt triggering table includes a virtual function high-frequency interrupt flag field, high-frequency interrupt transmit / receive queue index information, interrupt triggering cycle and buffer status statistics; the queue overload scheduling mapping table includes a queue overload status indication field, virtual function and receive queue polling association information, polling thread resource occupation and waiting delay constraint items; the thread scheduling migration table includes a virtual function participating in the migration index item, interrupt handling original execution thread identifier, interrupt handling target execution thread identifier; the interrupt core monitoring reconstruction table includes an interrupt handling core monitoring relationship record unit, virtual function and processing core reconstruction binding information, and a monitoring configuration adjustment status flag field; the forwarding path core redirection table includes virtual function data forwarding path description information, forwarding path interrupt handling core indicator item, and user-mode forwarding structure synchronization redirection record field.

[0006] As a further aspect of the present invention, the specific steps of S1 are as follows: S101: Obtain the time record, transmit / receive queue number and buffer status information of the interrupt triggered on the VF channel of the SR-IOV virtual function, bind the interrupt time with the transmit / receive queue number, extract the time interval of each pair of adjacent interrupts according to the time order, and generate an interrupt trigger interval value sequence. S102: Based on the interrupt trigger interval value sequence, call the transmit / receive queue number corresponding to each time interval, and make a judgment in combination with the set interrupt interval threshold. Filter out the numbers whose trigger intervals are less than the threshold and their corresponding interrupt times, count the trigger frequency of the same number, and generate a short interval interrupt occurrence frequency value. S103: Based on the frequency value of the short-interval interruption, determine the transmit / receive queue number whose frequency exceeds the set range, integrate the corresponding interrupt time and buffer status, establish the correspondence between the number and the interrupt information, and generate a high-frequency interrupt trigger table.

[0007] As a further aspect of the present invention, the specific steps of S2 are as follows: S201: Call the queue number in the high-frequency interrupt trigger table, obtain the corresponding polling frequency and thread number from the DPDK receive queue polling structure, extract the polling frequency value according to the polling record of the queue number in the receive queue structure, establish the corresponding mapping between the number, polling frequency and thread number, and generate the receive and send queue polling frequency value. S202: Based on the polling frequency value of the transmit and receive queues, call the corresponding thread number, detect all transmit and receive queue numbers bound to the thread, judge according to the polling frequency of each queue and the set polling waiting time threshold, filter the queue numbers whose waiting time corresponding to the polling frequency exceeds the threshold, and generate an overloaded queue number set. S203: Based on the overload queue number set, extract the corresponding virtual function number and thread number, combine and bind the three numbers, integrate them into the corresponding data structure, establish a joint mapping between the number field and the thread scheduling relationship, and generate a queue overload scheduling mapping table.

[0008] As a further aspect of the present invention, the specific steps of S3 are as follows: S301: Based on the thread number information in the queue overload scheduling mapping table, query the DPDK logical core configuration structure one by one, extract the thread numbers that are not currently marked as occupied, filter out the records of used thread numbers in the mapping table, list the remaining thread numbers as optional scheduling thread numbers, and generate a set of idle thread numbers. S302: Based on the set of idle thread numbers, call each queue number recorded in the queue overload scheduling mapping table, and sequentially assign the schedulable thread numbers to the queue numbers to be migrated, establish the correspondence between the queue numbers and the assigned thread numbers, and at the same time extract the corresponding virtual function numbers and the original thread numbers to generate migration number binding relationship values; S303: Based on the migration number binding relationship value, combine each group of queue number, virtual function number, original thread number and target thread number into a unified structure, merge and organize them into a data record format with consistent field sequence, establish a record set of all migration mapping relationships, and generate a thread scheduling migration table.

[0009] As a further aspect of the present invention, the specific steps of S4 are as follows: S401: Read the mapping relationship data in the thread scheduling migration table, extract the corresponding original thread number, target thread number and bound virtual function number, match the current binding relationship in the DPDK receiving channel listening configuration, mark the listening binding item corresponding to the original thread number, and generate a set of numbers to be unbound. S402: Based on the set of numbers to be unbound, delete the interrupt response item corresponding to the original thread number in the DPDK receiving channel listening configuration, establish a new listening channel between the target thread number and the virtual function number, replace the old binding information content, and generate the interrupt response channel reconstruction value. S403: Based on the interrupt response channel reconstruction value, integrate the correspondence between all target thread numbers and virtual function numbers, output a unified data record format with consistent structure fields, record all updated listening configuration information, and generate an interrupt core listening reconstruction table.

[0010] As a further aspect of the present invention, the specific steps of S5 are as follows: S501: Based on the correspondence between thread identifiers and virtual function numbers in the interrupt core monitoring reconstruction table, update the thread identifier field of the virtual function path item in the SR-IOV forwarding path configuration table and generate a path thread replacement mapping value. S502: Call the path thread to replace the thread identifier information in the mapping value, update the thread binding content of the channel configuration in the DPDK user-space forwarding structure, and synchronously correct the thread channel index table entry to obtain the user-space channel synchronization adjustment value. S503: Based on the user-mode channel synchronization adjustment value and the update item in the SR-IOV forwarding path configuration table, rearrange all forwarding path configuration records and establish a forwarding path core redirection table.

[0011] As a further aspect of the present invention, the SR-IOV virtual function VF channel refers to an independent data channel that can be allocated to a virtual machine, derived from the physical function on the physical network card under a single root I / O virtualization structure. Each VF channel has an independent receive queue, interrupt number, and hardware resources. The interrupt triggering time refers to the interrupt generation timestamp recorded by the physical network card supported by SR-IOV or the interrupt handling logic of the operating system. The queue number refers to the queue number used to identify the data packets received and sent in the VF device; The buffer status refers to the status data used to characterize the current data occupancy status of the network transceiver queue, which comes from the network card driver register or the DPDK statistics module. The interrupt interval threshold refers to the time limit value set to determine whether two interrupts are consecutive. The threshold is used in the interrupt throttling mechanism configuration. The high-frequency interrupt trigger table refers to a data structure that records virtual functions that have been identified as frequently triggering interrupts and their corresponding queue numbers. It can be maintained through a custom queue in DPDK or device driver.

[0012] As a further aspect of the present invention, the DPDK receive queue polling refers to a structure or task pointer in the DPDK framework used to manage the polling packet receiving operation, which is bound to the thread core and continuously polled on the RX queue by the main loop. The polling frequency refers to the number of times a thread performs a polling operation on the bound receiving queue per unit time, which can be calculated by a polling counter within the time window; The thread number refers to the thread identifier assigned through the logical core configuration structure in the DPDK multi-core environment; The polling wait time refers to the time interval between when a thread initiates polling and when data is successfully read, reflecting the response performance in the receiving path, and can be evaluated by the timestamp difference. The queue overload scheduling mapping table is a data structure that records the queue number, its associated VF number, and the bound thread number of the queue after the system detects a queue with a polling bottleneck.

[0013] As a further aspect of the present invention, the DPDK logical core refers to the data structure that manages the mapping relationship between all logical core states and threads during DPDK runtime; The thread scheduling migration table refers to the thread adjustment mapping table generated to resolve RX queue polling conflicts, which records the correspondence between the original thread and the target idle thread, as well as the associated VF number. The DPDK receive channel monitoring configuration refers to the configuration structure that defines the binding relationship between the receive queue and the thread in DPDK; The interrupt kernel listener reconstruction table is a data structure that represents the interrupt response mapping relationship after thread rebinding, records the new thread binding status of each interrupt number, and serves as the basis for updating the DPDK listener path; The SR-IOV forwarding path configuration refers to the data structure used to control the mapping relationship between SR-IOV virtual functions and corresponding forwarding logic, as well as the resource allocation and channel scheduling configuration of the forwarding path; The DPDK user-space forwarding structure refers to the send / receive path execution structure defined in the DPDK application; The thread identifier refers to the polling thread number that is uniquely identified by the DPDK send / receive queue.

[0014] Compared with the prior art, the advantages and positive effects of the present invention are as follows: In this invention, by recording interrupt trigger information and analyzing interrupt frequency, dynamic identification of high-frequency interrupt states is achieved. By combining the load of the transmit and receive queues with the polling thread status, overload risks are detected in a timely manner and thread scheduling migration is performed to release restricted resources. By rebuilding the interrupt listening relationship and updating the forwarding path mapping, the dynamic adjustment of the data forwarding structure is completed, ensuring efficient coordination between interrupt response and data processing, improving the network throughput and processing stability in high-concurrency scenarios, enhancing resource scheduling flexibility, and optimizing the data plane performance in virtualized environments. Attached Figure Description

[0015] To more clearly illustrate the technical solutions in the embodiments of the present invention, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0016] Figure 1 This is a schematic diagram of the steps of the present invention; Figure 2 This is a detailed schematic diagram of S1 of the present invention; Figure 3 This is a detailed schematic diagram of S2 of the present invention; Figure 4 This is a detailed schematic diagram of S3 of the present invention; Figure 5 This is a detailed schematic diagram of S4 of the present invention; Figure 6 This is a detailed schematic diagram of S5 of the present invention. Detailed Implementation

[0017] The technical solution of the present invention will now be described with reference to the accompanying drawings.

[0018] In embodiments of the present invention, words such as "exemplarily," "for example," etc., are used to indicate that something is an example, illustration, or description. Any embodiment or design described as "exemplary" in the present invention should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of the word "exemplary" is intended to present the concept in a concrete manner. Furthermore, in embodiments of the present invention, the meaning expressed by "and / or" can be both, or either one.

[0019] In the embodiments of this invention, the terms "image" and "picture" may sometimes be used interchangeably. It should be noted that, without emphasizing the distinction between them, their intended meanings are consistent. Similarly, the terms "of," "corresponding (relevant)," and "corresponding" may sometimes be used interchangeably. It should be noted that, without emphasizing the distinction between them, their intended meanings are consistent.

[0020] In this embodiment of the invention, sometimes a subscript such as W1 may be written in a non-subscript form such as W1. When the difference is not emphasized, the meaning they express is the same.

[0021] To make the technical problems, technical solutions and advantages of the present invention clearer, a detailed description will be given below in conjunction with the accompanying drawings and specific embodiments.

[0022] Please see Figure 1 This invention provides a high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV, comprising the following steps: S1: Obtain the time record, transmit / receive queue number and buffer status information of the interrupt triggered on the VF channel of the SR-IOV virtual function, calculate the time interval value of the interrupt request, compare it with the set interrupt interval threshold, determine whether the current virtual function is in a high-frequency interrupt state, mark the transmit / receive queue number and interrupt information that meet the conditions, and generate a high-frequency interrupt trigger table. SR-IOV Virtual Function (VF) channels refer to independent data channels that can be allocated to virtual machines, derived from the physical function (PF) on the physical network interface card (NIC) in a single root I / O virtualization architecture. Each VF channel has an independent receive queue, interrupt number, and hardware resources, and is widely used in virtual machine pass-through communication. The interrupt triggering time record refers to the interrupt generation timestamp recorded by the physical network card supported by SR-IOV or the interrupt handling logic of the operating system. It is generated by a high-precision timer and is used to identify the time interval between interrupt events. Transceiver queue number refers to the queue number used to identify receive (RX) and transmit (TX) data packets in a VF device; Buffer status information refers to status data used to characterize the current data occupancy status of the network transmit and receive queues, including RXFIFO length and available buffer size fields, which are derived from the network card driver registers or the DPDK statistics module; Interrupt interval threshold refers to the time limit value set to determine whether two interrupts are consecutive. The threshold is often used in the configuration of interrupt throttling mechanism and is specified by the user or driver parameters. The high-frequency interrupt trigger table is a data structure that records virtual functions that have been identified as frequently triggering interrupts and their corresponding queue numbers. It is used as the input basis for queue migration and scheduling strategies and can be maintained by custom queues in DPDK or device drivers. S2: Call the queue number in the high-frequency interrupt trigger table, obtain the polling frequency and thread number from the DPDK receive queue polling structure, determine whether there is a situation where the polling waiting time in the queue bound to the same thread exceeds the threshold, combine the queue number that meets the conditions with the virtual function number and thread number to generate a queue overload scheduling mapping table. The DPDK receive queue polling structure refers to the structure or task pointer in the DPDK framework used to manage the polling packet receiving operation. It is bound to the thread core and the main loop continuously performs polling queries on the RX queue. Polling frequency refers to the number of times a thread performs a polling operation on the bound receive queue per unit time. It can be calculated by a polling counter within a time window and is often used to evaluate the queue load status. Thread ID refers to the thread identifier assigned through the logical core configuration structure in the DPDK multi-core environment, which is used to bind polling tasks to CPU cores; Polling wait time refers to the time interval between when a thread initiates polling and when data is successfully read. It reflects the response performance in the receiving path and can be evaluated by the timestamp difference. The queue overload scheduling mapping table is a data structure that records the queue number, its VF number, and the bound thread number after the system detects a queue with a polling bottleneck. It serves as the basis for thread scheduling migration. S3: Based on the thread information in the queue overload scheduling mapping table, query the unoccupied thread numbers in the DPDK logical core configuration structure, assign target threads to each queue that needs to be adjusted, record the correspondence between virtual function numbers, original thread numbers and target thread numbers, and generate a thread scheduling migration table. The DPDK logical core configuration structure refers to the data structure that manages the mapping relationship between all logical core states and threads during DPDK runtime. The thread scheduling migration table is a thread adjustment mapping table generated to resolve RX queue polling conflicts. It records the correspondence between the original thread and the target idle thread, as well as the associated VF number. S4: Read the mapping relationship in the thread scheduling migration table, modify the original interrupt response binding information in the DPDK receive channel listening configuration, unbind the original thread, establish the listening relationship between the current thread and the virtual function, record the modified mapping data, and generate the interrupt core listening reconstruction table. DPDK receive channel monitoring configuration refers to the configuration structure that defines the relationship between the receive queue and the thread in DPDK, and is used to set the interrupt or polling mode for each RX queue. The interrupt kernel listener reconstruction table is a data structure that represents the interrupt response mapping relationship after thread rebinding. It records the new thread binding status of each interrupt number and serves as the basis for updating the DPDK listener path. S5: Based on the changes in the interrupt core listening reconstruction table, update the interrupt handling channel corresponding to the virtual function in the SR-IOV forwarding path configuration table, replace the thread identifier in the original path with the target thread identifier, and synchronously update the forwarding structure in the DPDK user space to generate the forwarding path core redirection table. The SR-IOV forwarding path configuration table is a data structure used to control the mapping relationship between SR-IOV virtual functions and their corresponding forwarding logic, including resource allocation and channel scheduling configuration for forwarding paths. The forwarding structure in DPDK user space refers to the execution structure of the send and receive paths defined in a DPDK application. The thread identifier is a polling thread number used to uniquely identify the thread bound to the DPDK send / receive queue. It is often used to determine whether the binding relationship needs to be adjusted.

[0023] The high-frequency interrupt trigger table includes a virtual function high-frequency interrupt flag field, high-frequency interrupt transmit / receive queue index information, interrupt trigger cycle and buffer status statistics. The queue overload scheduling mapping table includes a queue overload status indication field, virtual function and receive queue polling association information, polling thread resource usage and waiting latency constraints. The thread scheduling migration table includes a virtual function participating in the migration index, the original execution thread identifier for interrupt handling, and the target execution thread identifier for interrupt handling. The interrupt core monitoring reconstruction table includes an interrupt handling core monitoring relationship record unit, virtual function and processing core reconstruction binding information, and a monitoring configuration adjustment status flag field. The forwarding path core redirection table includes virtual function data forwarding path description information, forwarding path interrupt handling core indication item, and user-mode forwarding structure synchronization redirection record field.

[0024] Please see Figure 2 The specific steps of S1 are as follows: S101: Obtain the time record, transmit / receive queue number and buffer status information of the interrupt triggered on the VF channel of the SR-IOV virtual function, bind the interrupt time with the transmit / receive queue number, extract the time interval of each pair of adjacent interrupts according to the time order, and generate an interrupt trigger interval value sequence. In the SR-IOV virtualization environment, VF channel interrupts can be captured in real time by the driver. Each trigger records the timestamp, transmit / receive queue number, and head / tail pointers to reflect the remaining buffer capacity (if a ring structure is used, modulo operation is required to avoid out-of-bounds errors, and the buffer status is marked as "idle," "normal," or "nearly full" according to the remaining capacity). After recording, all interrupts are sorted by time, and the time interval is calculated only for two adjacent interrupts under the same queue number. For example, if queue number 1 experiences an interrupt at 1000ms and 1000.4ms, the interval is 0.4ms, and this is recorded along with the queue number. If a queue experiences only one interrupt (e.g., queue number 2 triggers only once at 1001.2ms), the interval cannot be calculated due to the lack of adjacent time points; therefore, it is only used for interrupt status statistics and not for interval sequence construction. For queues with multiple consecutive interrupts, multiple interval values ​​(e.g., 0.4ms, 0.35ms, etc.) can be extracted sequentially and mapped bidirectionally with the corresponding queue numbers. At any interruption point, the buffer usage can be determined by reading the head and tail values. For example, if the total depth is 512, head=100, and tail=400, then the remaining 212 values ​​belong to the "normal" range. The above interruption records and buffer status are continuously written to the interruption record table in a structured form. By traversing the continuous interruption times of each queue, the intervals are extracted and numbered, thus forming the final set of correspondences between interval values ​​and queue numbers.

[0025] S102: Based on the interrupt trigger interval value sequence, call the transmit / receive queue number corresponding to each time interval, and judge in combination with the set interrupt interval threshold. Filter the numbers whose trigger interval is less than the threshold and their corresponding interrupt times, count the trigger frequency of the same number, and generate the short interval interrupt occurrence frequency value. After the interruption interval sequence is established, each item is iterated through and compared against a preset interval threshold. Given the high requirements for interrupt response in current network processing, if a threshold of 0.5ms is used, all intervals shorter than this value are retained, and their corresponding numbers are extracted as the filtering results. The frequency of each number is then counted to obtain a list of frequently triggered numbers. For example, if the interval sequence contains two items corresponding to number 1 (0.4ms and 0.35ms), both below the set threshold, then number 1 appears twice. Number 2, with an interval of 0.8ms, is not included in the count, resulting in a frequency of number 1 appearing twice. Number 2 is 0 times; the judgment condition is based on the actual network environment's requirement for judging short-interval interruptions. For example, at a rate of 10Gbps, the typical average interrupt response interval is about 1ms. Interruptions below 0.5ms can be considered frequent, so 0.5ms is selected as the filtering threshold; frequency statistics can be accumulated by number. After traversing each record that meets the condition and recording its number, the records are grouped and statistically analyzed to form a frequency set. For example, number 1 appears 2 times, number 2 appears 0 times, and number 3 appears 1 time; the whole process depends on the accurate recording of the preceding interrupt interval and the binding of the numbers. After setting the filtering range, the high-frequency items are extracted.

[0026] S103: Based on the frequency of short-interval interrupts, determine the transmit / receive queue number whose frequency exceeds the set range, integrate the corresponding interrupt time and buffer status, establish the correspondence between the number and the interrupt information, and generate a high-frequency interrupt trigger table. After frequency statistics are completed, the interrupts are screened by number according to the set high-frequency interrupt threshold. If the number of occurrences of a certain number exceeds the threshold, it is included in the high-frequency interrupt record. For example, if the threshold is set to 1 time, number 1 with a frequency of 2 times meets the condition, while number 2 with 0 times does not. After screening the numbers, the interrupt records are further traced back to extract the time point of occurrence and the corresponding buffer state, forming a detailed interrupt information entry. For example, interrupt number 1 is triggered at 1000.4ms and 1001.55ms, with corresponding buffer states of "normal" and "near full" respectively, which can form the record entry "Number 1, 1000.4ms, normal" and... “Number 1, 1001.55ms, nearly full”; The buffer status judgment standard is based on the percentage of remaining capacity relative to the total capacity. For example, if the total depth is 512, when the remaining space is less than 10%, it is marked as “near full”, more than 90% is marked as “free”, and the rest is “normal”; When the head is at position 500 and the tail is at position 40, the remaining space is 52, accounting for about 10% of the total capacity, and it is judged as “near full”; A mapping structure is formed according to the filtering number. The number is used as the key value, and the corresponding multiple interrupt times and buffer status are used as values ​​to form a set, which finally forms a set of correspondences between high-frequency numbers and their interrupt information.

[0027] Please see Figure 3 The specific steps of S2 are as follows: S201: Call the queue number in the high-frequency interrupt trigger table, obtain the corresponding polling frequency and thread number from the DPDK receive queue polling structure, extract the polling frequency value according to the polling record of the queue number in the receive queue structure, establish the corresponding mapping between the number, polling frequency and thread number, and generate the receive and send queue polling frequency value. After calling the queue number in the high-frequency interrupt trigger table, the DPDK-based receive queue polling structure is entered to locate each number and find the corresponding polling parameter item. This structure contains fields recording the number of polling executions and the thread to which they are bound. The polling frequency can be obtained by counting the number of polling operations for the queue within a fixed time period. For example, with a 1-second time interval, if receive queue number 3 is polled 800 times, then the polling frequency for that number is 800 times per second. The thread number is the processing core number bound to the queue during initialization, which can be directly obtained by recording the logical core number field bound during initialization. For example, if number 3 is bound to logical core 5, then the thread number is 5. Multiple queues may share the same thread; therefore, this is done by iterating through all interrupt numbers and completing... After extracting the above two data points, a mapping relationship can be established between the number and the polling frequency and thread number, forming a triplet dataset. In a real network, for example, numbers 1, 3, and 5 appear in the interrupt table. Through the DPDK configuration structure, the polling frequency of number 1 is 950 times per second, the thread number is 2, number 3 is 800 times per second, the thread number is 5, number 5 is 1020 times per second, and the thread number is 1, forming corresponding entries between the number and the polling frequency and thread number. The process of establishing this mapping relationship includes reading the statistical fields, calculating the frequency, extracting the thread number, and combining the three numbers and recording them in the structure. The entire process depends on the integrity of the receiving queue polling information and the binding structure. After completion, a complete set of receiving and sending queue polling frequency values ​​is generated.

[0028] S202: Based on the polling frequency value of the send and receive queues, call the corresponding thread number, detect all send and receive queue numbers bound to the thread, judge according to the polling frequency of each queue and the set polling waiting time threshold, filter the queue numbers whose waiting time exceeds the threshold corresponding to the polling frequency, and generate an overloaded queue number set. After obtaining the polling frequency and thread ID information, each thread ID is read sequentially. For each thread ID, the DPDK configuration maintains a list of all bound send / receive queues. By searching the thread-to-queue mapping field in the structure, all queue IDs managed by a given thread can be directly listed. For example, if thread ID 2 is bound to queues 1, 4, and 6, the polling frequency of each queue needs to be checked to estimate the average polling wait time. The wait time can be indirectly estimated using the polling frequency and the actual packet reception rate. For instance, if the polling frequency is 800 times per second and the average packet reception probability is 20%, then the effective reception rate is 160 times per second, and the average waiting time for each new data reception is approximately 6.25 minutes. s, this value can be regarded as the current waiting time of the queue; when the polling waiting time threshold is set to 5ms, all queue numbers whose estimated waiting time exceeds the threshold are filtered into the overload set. For example, the waiting time of number 4 is 20ms and that of number 5 is 2ms, so number 4 is marked as overloaded. The judgment method is based on the combination of polling efficiency and polling frequency. The polling frequency is obtained in the previous step, and the efficiency can be estimated based on the actual packet reception statistics. The filtering operation is to traverse the queue number bound to each thread, compare the estimated waiting time with the threshold item by item, and the number whose waiting time exceeds the threshold is included in the overload set, finally forming an overloaded number set such as number 4, 6, etc., for the next step of processing.

[0029] S203: Based on the overload queue number set, extract the corresponding virtual function number and thread number, combine and bind the three numbers, integrate them into the corresponding data structure, establish a joint mapping between the number field and the thread scheduling relationship, and generate the queue overload scheduling mapping table. For the selected set of overloaded queue numbers, it is necessary to further extract the corresponding VF numbers and thread numbers. The mapping relationship between queue numbers and VF numbers can be found in the DPDK initialization structure. Each queue is bound to a certain VF number when it is created. The thread number has been extracted in the pre-order polling frequency analysis. For example, number 4 belongs to VF number 2 and thread number 2, and number 6 belongs to VF number 3 and thread number 4. The three pieces of information are merged to form complete combined data, such as number 4-VF2-thread 2, number 6-VF3-thread 4. These combined data are recorded in a mapping structure, and a mapping entry is established with queue number and VF number as the joint key and thread number as the value. For example, if number 4 corresponds to thread 2 in VF number 2, it is recorded as combination 4-2 corresponding to 2. Multiple numbers can be added to this mapping table in sequence to complete the integration of the number information of all overloaded queues. This joint mapping structure is stored as the scheduling basic structure. Its content covers the relationship between all overloaded queues, their respective VFs and their running threads, and is used to describe the resource distribution status.

[0030] Please see Figure 4 The specific steps of S3 are as follows: S301: Based on the thread number information in the queue overload scheduling mapping table, query the DPDK logical core configuration structure one by one, extract the thread numbers that are not currently marked as occupied, filter out the records of used thread numbers in the mapping table, list the remaining thread numbers as optional scheduling thread numbers, and generate a set of idle thread numbers. Based on the thread number information in the queue overload scheduling mapping table, the thread number in each record is extracted one by one to form a set of used thread numbers. For example, if the scheduling mapping table contains records of thread numbers 1, 2, and 5, then all logical core numbers in the DPDK logical core configuration structure are traversed. This configuration structure records the status identifier field of each thread. A status value of 0 indicates that the thread is idle, and a value of 1 indicates that the thread is occupied. Each logical core number is screened. If the number is not included in the used set and the status identifier field value is 0, then it is identified as a schedulable candidate thread number. This screening step needs to consider two conditions simultaneously: whether the number is in the used set and whether the status identifier is 0. If both conditions are met, the number is added to the idle thread set. For example, there are a total of 8 logical core numbers from 0 to 7. The occupied numbers in the mapping table are 1, 2, and 5. At the same time, although number 4 is not in the mapping table, its status identifier is 1, so it is also excluded. Finally, the threads with numbers 0, 3, 6, and 7 constitute the idle thread set. The corresponding completed idle thread number set will be used for the thread allocation operation in the next stage.

[0031] S302: Based on the set of idle thread numbers, call each queue number recorded in the queue overload scheduling mapping table, sequentially assign the schedulable thread numbers to the queue numbers to be migrated, establish the correspondence between the queue numbers and the assigned thread numbers, and at the same time extract the corresponding virtual function numbers and the original thread numbers to generate migration number binding relationship values; Based on the set of idle thread IDs, the system retrieves the set of all queue IDs that need to be migrated from the queue overload scheduling mapping table. Idle thread IDs are then assigned to these IDs sequentially. Specifically, the list of idle thread IDs is mapped one-to-one with the queue IDs. If the number of idle thread IDs is less than the number of queues, the idle thread IDs can be used repeatedly until all queues are allocated. For example, if the set of idle thread IDs is 0, 3, 6, 7, and the set of queue IDs is 4, 5, 6, 7, 8, 9, then the allocation order is 4→0, 5→3, 6→6, 7→7, 8→0, 9→3. Each allocation establishes the current queue ID. The system establishes a pairing relationship between queue numbers and target thread numbers, and simultaneously searches for the virtual function number and original thread number corresponding to the current queue number. This information can be directly extracted from the overload scheduling mapping table. For example, if queue number 4 corresponds to VF number 2 and original thread number 1, and the target thread number after allocation is 0, then the combination is 4, 2, 1, 0. All queues to be migrated are processed in this way, generating migration number binding records one by one. Each record contains four fields: queue number, VF number, original thread number, and target thread number. Finally, a complete set of migration number binding relationships is formed, which constitutes the input data basis for scheduling migration.

[0032] S303: Based on the migration number binding relationship value, combine each group of queue number, virtual function number, original thread number and target thread number into a unified structure, merge and organize them into a data record format with consistent field sequence, establish a record set of all migration mapping relationships, and generate a thread scheduling migration table. Based on the migration number binding relationship set formed in the previous steps, the fields of each group of records are standardized. The queue number, VF number, original thread number, and target thread number are arranged in a fixed order into a unified structure format. This format maintains the consistency of field order to ensure that the data can be managed and processed in batches. All structured records are merged and summarized to form a migration mapping record set. During the sorting process, it is necessary to check for duplicates or conflicts. If multiple records are found to have the same queue number and VF number but different target thread numbers, they can be retained based on a fixed priority strategy. For example, the earliest generated group is retained and the others are excluded. Under the premise of no duplicates, all structures can be directly appended to the migration record set. This set constitutes the final thread scheduling migration table. The contents of the table cover all queue numbers to be migrated and their correspondence between the original scheduling thread and the target scheduling thread. For example, number 4 corresponds to VF number 2, the original thread is 1, and the target thread is 0, which is a standard record. The final migration table provides the basis for thread resource allocation instructions for subsequent scheduling deployment.

[0033] Please see Figure 5 The specific steps of S4 are as follows: S401: Read the mapping relationship data in the thread scheduling migration table, extract the corresponding original thread number, target thread number and bound virtual function number, match the current binding relationship in the DPDK receive channel listening configuration, mark the listening binding item corresponding to the original thread number, and generate a set of numbers to be unbound. Read the mapping data from the thread scheduling migration table, extracting the original thread number, target thread number, and virtual function number. Iterate through each record and construct structured fields, parsing each record individually. For the original thread number and target thread number, perform a consistency type check to ensure they are integer data types. The virtual function number is generally between 0 and 63. Match the read original thread number and VF number to the DPDK receive channel listening configuration. This configuration stores the binding information between each thread and the virtual function. For example, if the original thread number is 5 and the VF number is 12, it needs to be matched with the listening configuration table. Find the binding item with thread number 5 and VF number 12. If the binding item exists, record it as a record to be unbound. Construct a set of numbers to be unbound. This set is in the form of several structured records. Each record contains the original thread number and VF number. The whole process needs to be completed through two levels of operation: traversal and comparison. Matching can be done using a double for loop structure. Matching is confirmed by comparing the fields one by one. For example, if there are 10 migration records in total, and 6 matching items with binding relationships are obtained after traversal, then the set of numbers to be unbound contains 6 records. Subsequent operations will be based on this set to complete the interrupt listening release process.

[0034] S402: Based on the set of numbers to be unbound, delete the interrupt response item corresponding to the original thread number in the DPDK receive channel listening configuration, establish a new listening channel between the target thread number and the virtual function number, replace the old binding information content, and generate the interrupt response channel reconstruction value. Based on the set of numbers to be unbound, the DPDK receive channel listening configuration is traversed. The corresponding original thread number binding item is searched in the configuration structure. For each item found, the corresponding item is deleted from the configuration structure. The deletion operation can be performed by setting an invalid state in the flag field or by directly removing the structure element. After the original thread listening is unbound, the target thread number and virtual function number associated in the same record are extracted. A new record is added to the listening configuration structure. This record binds the target thread number and the corresponding VF number, and a new interrupt listening channel is constructed. The configuration fields need to set parameters such as interrupt triggering mode, listening status bit, and channel priority. For example, the interrupt mode is set to edge triggering, the listening status bit is initialized to active, and the priority is set to the default value of 2. The reconstruction value is defined as the structural combination of the new record corresponding to the original record after it is removed. For example, if the original thread number 5 and VF number 12 are unbound, and the target thread number 3 is bound to VF number 12, a reconstruction record of 3–12 is formed. Each channel reconstruction is accompanied by an update of the listening table structure and a refresh of the channel identifier index. The reconstruction records are collected one by one to form a complete set of interrupt response channel reconstruction values.

[0035] S403: Based on the interrupt response channel reconstruction value, integrate the correspondence between all target thread numbers and virtual function numbers, output a unified data record format with consistent structure fields, record all updated listening configuration information, and generate an interrupt core listening reconstruction table; Based on the completed interrupt response channel reconstruction value set, each record is traversed, and the target thread number and virtual function number are extracted. These are then constructed into a data structure with a fixed field order. Each record contains fields such as target thread number, VF number, interrupt triggering mode, priority setting, and status identifier. The field order is uniformly set as thread number first, followed by VF number. The remaining fields are filled with default values ​​or system settings according to the initialization rules. For example, if the target thread number is 3, the VF number is 12, the triggering mode is edge triggering, the priority is 2, and the status is active, the records are merged into the structure record 3, 12, edge, 2, active. All structure records are summarized into a tabular record set using a uniform data format to form the interrupt core listener reconstruction table. The total number of records is equal to the number of elements in the interrupt reconstruction value set. For example, if the aforementioned set contains 6 records, the reconstruction table will also contain 6 data items. The final table is used to store the interrupt listener configuration information of all target threads and VF number binding relationships. The construction process must ensure that no fields are missing, the format is consistent, and duplicate binding items are excluded to ensure that each target thread is bound to only one VF.

[0036] Please see Figure 6 The specific steps of S5 are as follows: S501: Based on the correspondence between thread identifiers and virtual function numbers in the interrupt core listener reconstruction table, update the thread identifier field of the virtual function path item in the SR-IOV forwarding path configuration table and generate path thread replacement mapping values. Based on the association information between thread identifiers and virtual function numbers in the interrupt kernel listening reconstruction table, each reconstruction record is read sequentially. The thread number and its corresponding VF number are extracted and used as input parameters to compare with the path records in the SR-IOV forwarding path configuration table. The path entries whose VF number field values ​​match those in the reconstruction table are searched, and the thread number field in the original path is extracted. After a successful match, a thread number replacement operation is performed, that is, the original thread number field in the path record is updated with the new thread number in the reconstruction table. A triplet structure can be constructed before and after the replacement to record the change: path ID, original thread number, and new thread number. All records in the entire reconstruction table are traversed to form a path thread replacement mapping set. If the record in the reconstruction table contains a thread number... 3 corresponds to VF number 12, and thread number 5 corresponds to VF number 7. In the forwarding path configuration table, VF number 12 corresponds to path ID 001, and VF number 7 corresponds to path ID 002. The original thread numbers are 1 and 2 respectively. Therefore, the path thread replacement relationship after replacement is that the thread of path 001 is updated from 1 to 3, and the thread of path 002 is updated from 2 to 5. During each update, it is necessary to verify whether the path status field value is active and whether the VF number is within the valid number range (between 0 and 63). If any field does not meet the conditions, the update record is ignored and the exception information is recorded for subsequent processing. The final completed mapping set structure contains path ID and new and old thread number information, which can be used as the data basis for the next step of user-space structure update.

[0037] S502: Call the path thread to replace the thread identifier information in the mapping value, update the thread binding content of the channel configuration in the DPDK user-space forwarding structure, and synchronously correct the thread channel index table entry to obtain the user-space channel synchronization adjustment value. Based on the information in the path thread replacement mapping set, the channel configuration table entries in the DPDK user-space forwarding structure are traversed. Channel records are located based on the path ID, the original thread number field is read and replaced with the new thread number. The channel index corresponding to the original bound thread number in the channel structure also needs to be updated synchronously. Specifically, the path ID, new thread number, and original thread number information are first retrieved from the mapping set. The user-space channel structure is then queried using the path ID to confirm the path-bound channel identifier. For example, if path ID 001 is bound to channel A, and the original thread number is 1, the bound thread number is updated to 3 after replacement. Next, the thread channel index table is searched, the original index entries between thread number 1 and channel A are cleared, and a binding index entry between thread number 3 and channel A is added. During the update process, it is necessary to... For each record, a conflict detection is performed between threads and channels. If the new thread number is already bound to another channel and that channel is the same as the currently unbound channel, it is considered a resource conflict. Conflict determination is completed by querying the binding record. If a conflict occurs, threads with lower loads are selected and reassigned. Thread load is calculated by multiplying the ratio of runtime to scheduling cycle by 100%. Generally, a load below 70% is considered a low load. If the load of all available threads is above 85%, the current conflict is recorded and the binding attempt is delayed. The retry waiting time is 5ms. After the operation is completed, each update record is constructed into a synchronization adjustment record. The fields include path ID, new thread number, channel number, and synchronization status flag. The synchronization status flag "complete" indicates that the update is complete. This set records all channel thread changes.

[0038] S503: Based on the user-mode channel synchronization adjustment value and the update items in the SR-IOV forwarding path configuration table, rearrange all forwarding path configuration records and establish a forwarding path core redirection table; Based on the user-space channel synchronization adjustment record and all path records in the SR-IOV forwarding path configuration table, a step-by-step matching and update operation is performed to rearrange the path record order. The sorting strategy prioritizes initial sorting based on the path ID in the synchronization record, followed by secondary sorting according to the thread number from smallest to largest, ultimately determining the path output order. Each path record is reconstructed into a structural unit composed of fields such as path ID, thread number, VF number, forwarding priority, and path status, maintaining consistency in field order. When a thread number is associated with multiple path records, the priority field is used to determine the sorting order; a smaller priority value indicates a higher priority, for example, a priority of 0 indicates the highest priority, and 1 indicates the lowest. 1 is high priority, 2 is medium priority, and 3 is low priority. This setting is based on the actual business type. For example, the path used for audio and video channels can be set to priority 0, the control signaling path to priority 1, the ordinary business path to priority 2, and the path for testing or diagnosis to priority 3. When there are multiple paths with the same priority, they are arranged in ascending order by VF number. The completed path record set forms the final forwarding path core redirection table. Each record retains the binding status of the target thread number of the current path and its corresponding VF number. The status field is set to active. The number of paths recorded should be consistent with the number of synchronous adjustment records. There should be no missing or duplicate bindings. The final structure is used as the basis for path relocation and core-level scheduling in the forwarding module.

[0039] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in the present invention should be included within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.

Claims

1. A high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV, characterized in that, Includes the following steps: S1: Record the trigger interrupt time, queue number and buffer status of the SR-IOV virtual function VF channel, calculate the interrupt interval and compare it with the interrupt interval threshold, identify the high-frequency interrupt status, mark the corresponding queue and interrupt information, and generate a high-frequency interrupt trigger table. S2: Based on the high-frequency interrupt trigger table, obtain the polling frequency and thread number of the DPDK receiving queue, determine whether there is a polling waiting time exceeding the limit in the queue bound to the thread, record the queue, virtual function and thread information that meet the conditions, and generate a queue overload scheduling mapping table. S3: Based on the queue overload scheduling mapping table, query the idle threads in the DPDK logic core, allocate target threads for the queues that need to be adjusted, record the correspondence between virtual functions, original threads and target threads, and generate a thread scheduling migration table; S4: Read the thread scheduling migration table, modify the DPDK receive channel listening configuration, unbind the original thread, establish the listening relationship between the virtual function and the target thread, and generate the interrupt kernel listening reconstruction table; S5: Based on the interrupt core listening reconstruction table, update the SR-IOV forwarding path configuration, replace the thread identifier with the target thread, synchronously update the DPDK user-space forwarding structure, and generate the forwarding path core redirection table.

2. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 1, characterized in that, The high-frequency interrupt trigger table includes a virtual function high-frequency interrupt flag field, high-frequency interrupt transmit / receive queue index information, interrupt trigger cycle and buffer status statistics. The queue overload scheduling mapping table includes a queue overload status indication field, virtual function and receive queue polling association information, polling thread resource usage and waiting latency constraints. The thread scheduling migration table includes a virtual function participating in the migration index, interrupt handling original execution thread identifier, interrupt handling target execution thread identifier. The interrupt core monitoring reconstruction table includes an interrupt handling core monitoring relationship record unit, virtual function and processing core reconstruction binding information, and monitoring configuration adjustment status flag field. The forwarding path core redirection table includes virtual function data forwarding path description information, forwarding path interrupt handling core indicator, and user-mode forwarding structure synchronization redirection record field.

3. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 1, characterized in that, The specific steps of S1 are as follows: S101: Obtain the time record, transmit / receive queue number and buffer status information of the interrupt triggered on the VF channel of the SR-IOV virtual function, bind the interrupt time with the transmit / receive queue number, extract the time interval of each pair of adjacent interrupts according to the time order, and generate an interrupt trigger interval value sequence. S102: Based on the interrupt trigger interval value sequence, call the transmit / receive queue number corresponding to each time interval, and make a judgment in combination with the set interrupt interval threshold. Filter out the numbers whose trigger intervals are less than the threshold and their corresponding interrupt times, count the trigger frequency of the same number, and generate a short interval interrupt occurrence frequency value. S103: Based on the frequency value of the short-interval interruption, determine the transmit / receive queue number whose frequency exceeds the set range, integrate the corresponding interrupt time and buffer status, establish the correspondence between the number and the interrupt information, and generate a high-frequency interrupt trigger table.

4. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 3, characterized in that, The specific steps of S2 are as follows: S201: Call the queue number in the high-frequency interrupt trigger table, obtain the corresponding polling frequency and thread number from the DPDK receive queue polling structure, extract the polling frequency value according to the polling record of the queue number in the receive queue structure, establish the corresponding mapping between the number, polling frequency and thread number, and generate the receive and send queue polling frequency value. S202: Based on the polling frequency value of the transmit and receive queues, call the corresponding thread number, detect all transmit and receive queue numbers bound to the thread, judge according to the polling frequency of each queue and the set polling waiting time threshold, filter the queue numbers whose waiting time corresponding to the polling frequency exceeds the threshold, and generate an overloaded queue number set. S203: Based on the overload queue number set, extract the corresponding virtual function number and thread number, combine and bind the three numbers, integrate them into the corresponding data structure, establish a joint mapping between the number field and the thread scheduling relationship, and generate a queue overload scheduling mapping table.

5. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 4, characterized in that, The specific steps for S3 are as follows: S301: Based on the thread number information in the queue overload scheduling mapping table, query the DPDK logical core configuration structure one by one, extract the thread numbers that are not currently marked as occupied, filter out the records of used thread numbers in the mapping table, list the remaining thread numbers as optional scheduling thread numbers, and generate a set of idle thread numbers. S302: Based on the set of idle thread numbers, call each queue number recorded in the queue overload scheduling mapping table, and sequentially assign the schedulable thread numbers to the queue numbers to be migrated, establish the correspondence between the queue numbers and the assigned thread numbers, and at the same time extract the corresponding virtual function numbers and the original thread numbers to generate migration number binding relationship values; S303: Based on the migration number binding relationship value, combine each group of queue number, virtual function number, original thread number and target thread number into a unified structure, merge and organize them into a data record format with consistent field sequence, establish a record set of all migration mapping relationships, and generate a thread scheduling migration table.

6. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 5, characterized in that, The specific steps of S4 are as follows: S401: Read the mapping relationship data in the thread scheduling migration table, extract the corresponding original thread number, target thread number and bound virtual function number, match the current binding relationship in the DPDK receiving channel listening configuration, mark the listening binding item corresponding to the original thread number, and generate a set of numbers to be unbound. S402: Based on the set of numbers to be unbound, delete the interrupt response item corresponding to the original thread number in the DPDK receiving channel listening configuration, establish a new listening channel between the target thread number and the virtual function number, replace the old binding information content, and generate the interrupt response channel reconstruction value. S403: Based on the interrupt response channel reconstruction value, integrate the correspondence between all target thread numbers and virtual function numbers, output a unified data record format with consistent structure fields, record all updated listening configuration information, and generate an interrupt core listening reconstruction table.

7. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 6, characterized in that, The specific steps of S5 are as follows: S501: Based on the correspondence between thread identifiers and virtual function numbers in the interrupt core monitoring reconstruction table, update the thread identifier field of the virtual function path item in the SR-IOV forwarding path configuration table and generate a path thread replacement mapping value. S502: Call the path thread to replace the thread identifier information in the mapping value, update the thread binding content of the channel configuration in the DPDK user-space forwarding structure, and synchronously correct the thread channel index table entry to obtain the user-space channel synchronization adjustment value. S503: Based on the user-mode channel synchronization adjustment value and the update item in the SR-IOV forwarding path configuration table, rearrange all forwarding path configuration records and establish a forwarding path core redirection table; The thread channel index entry refers to a data structure used to record the relationship between each thread in the DPDK user space and its bound channel number, which is used to quickly query the ownership of channel resources.

8. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 1, wherein the SR-IOV virtual function VF channel refers to an independent data channel that can be allocated to a virtual machine, derived from the physical function on the physical network card under a single root I / O virtualization structure, and each VF channel has an independent receive queue, interrupt number and hardware resources; The interrupt triggering time refers to the interrupt generation timestamp recorded by the physical network card supported by SR-IOV or the interrupt handling logic of the operating system. The queue number refers to the queue number used to identify the data packets received and sent in the VF device; The buffer status refers to the status data used to characterize the current data occupancy status of the network transceiver queue, which comes from the network card driver register or the DPDK statistics module. The interrupt interval threshold refers to the time limit value set to determine whether two interrupts are consecutive. The threshold is used in the interrupt throttling mechanism configuration. The high-frequency interrupt trigger table refers to a data structure that records virtual functions that have been identified as frequently triggering interrupts and their corresponding queue numbers. It can be maintained through a custom queue in DPDK or device driver.

9. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 1, characterized in that, The DPDK receive queue polling refers to the structure or task pointer in the DPDK framework used to manage the polling packet receiving operation. It is bound to the thread core and the main loop continuously performs polling queries on the RX queue. The polling frequency refers to the number of times a thread performs a polling operation on the bound receiving queue per unit time, which can be calculated by a polling counter within the time window; The thread number refers to the thread identifier assigned through the logical core configuration structure in the DPDK multi-core environment; The polling wait time refers to the time interval between when a thread initiates polling and when data is successfully read, reflecting the response performance in the receiving path, and can be evaluated by the timestamp difference. The queue overload scheduling mapping table is a data structure that records the queue number, its associated VF number, and the bound thread number of the queue after the system detects a queue with a polling bottleneck.

10. The high-performance virtualized network data plane acceleration method based on DPDK and SR-IOV according to claim 1, characterized in that, The DPDK logical core refers to the data structure that manages the mapping relationship between all logical core states and threads during DPDK runtime; The thread scheduling migration table refers to the thread adjustment mapping table generated to resolve RX queue polling conflicts, which records the correspondence between the original thread and the target idle thread, as well as the associated VF number. The DPDK receive channel monitoring configuration refers to the configuration structure that defines the binding relationship between the receive queue and the thread in DPDK; The interrupt kernel listener reconstruction table is a data structure that represents the interrupt response mapping relationship after thread rebinding, records the new thread binding status of each interrupt number, and serves as the basis for updating the DPDK listener path; The SR-IOV forwarding path configuration refers to the data structure used to control the mapping relationship between SR-IOV virtual functions and corresponding forwarding logic, as well as the resource allocation and channel scheduling configuration of the forwarding path; The DPDK user-space forwarding structure refers to the send / receive path execution structure defined in the DPDK application; The thread identifier refers to the polling thread number that is uniquely identified by the DPDK send / receive queue.