CN113438184B - Network card queue management method and device and electronic equipment - Google Patents

Network card queue management method and device and electronic equipment Download PDF

Info

Publication number
CN113438184B
CN113438184B CN202110712574.1A CN202110712574A CN113438184B CN 113438184 B CN113438184 B CN 113438184B CN 202110712574 A CN202110712574 A CN 202110712574A CN 113438184 B CN113438184 B CN 113438184B
Authority
CN
China
Prior art keywords
queue
network interface
queues
virtual network
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110712574.1A
Other languages
Chinese (zh)
Other versions
CN113438184A (en
Inventor
王建东
曾涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Beijing Huijun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Huijun Technology Co ltd filed Critical Beijing Huijun Technology Co ltd
Priority to CN202110712574.1A priority Critical patent/CN113438184B/en
Publication of CN113438184A publication Critical patent/CN113438184A/en
Application granted granted Critical
Publication of CN113438184B publication Critical patent/CN113438184B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details

Abstract

The application provides a queue management method and device of a network card and electronic equipment, and belongs to the technical field of computer application. The queue management method of the network card comprises the following steps: acquiring virtual network interface creating requests which correspond to the network card and comprise the identification of the virtual network interface to be created and the number of request queues; when the network card has an idle queue, determining a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum queue number supported by each virtual network interface; traversing the queue state arrays corresponding to the network card, and determining the queues with the queue states of idle states as queues to be distributed in sequence according to the number of the request queues; and sequentially filling the identifier of each queue to be distributed into a preset queue mapping table according to the base address, and updating the queue state array and the number of idle queues. Therefore, by the queue management method of the network card, queue resources in the network card are fully utilized, and the performance of the network card is improved.

Description

Network card queue management method and device and electronic equipment
Technical Field
The present application relates to the field of computer application technologies, and in particular, to a method and an apparatus for managing a queue of a network card, and an electronic device.
Background
For a common multi-queue network card, there are usually multiple physical network interfaces and several queues on one network card. For the network card, a fixed allocation mode can be adopted to equally allocate the queues in the hardware to the physical network interfaces so as to realize the management and allocation of the queues in the hardware.
In a cloud computing virtualization scene, virtual network interfaces can be created according to actual needs, so that the number of network interfaces corresponding to network cards is increased (up to 256). However, under the condition that the number of queues in the network card hardware is fixed, the number of queues allocated to each network interface in a fixed allocation manner is not sufficient, so that when the queue corresponding to the network interface is in an idle state, the network interface cannot be allocated to other queues for use, and the idle queue corresponding to the network interface cannot be allocated to other network interfaces for use, which results in waste of queue resources and reduces the network card performance.
Disclosure of Invention
The network card queue management method, the network card queue management device, the electronic equipment and the storage medium are used for solving the problems that in a cloud computing virtualization scene in the related art, the number of network interfaces corresponding to the network card is increased, queue distribution is performed in a fixed distribution mode, so that when the queue corresponding to the network interface is in an idle state, the network interface cannot be distributed to other queues for use, and the idle queue corresponding to the network interface cannot be distributed to other network interfaces for use, so that queue resources are wasted, and the performance of the network card is reduced.
An embodiment of an aspect of the present application provides a method for managing a queue of a network card, including: acquiring a virtual network interface creating request corresponding to a network card, wherein the virtual network interface creating request comprises an identifier of a virtual network interface to be created and the number of request queues corresponding to the virtual network interface to be created; determining a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum queue number supported by each virtual network interface corresponding to the network card under the condition that the number of idle queues corresponding to the network card is greater than 0; traversing the queue state array corresponding to the network card, and determining the queue with the queue state being an idle state as a queue to be allocated in sequence until the traversal of the queue state array is completed or until the number of the queues to be allocated is equal to the number of the request queues; sequentially filling the identifier of each queue to be distributed into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table; and updating the queue state array and the number of the idle queues according to the identifiers of the queues to be distributed and the number of the queues to be distributed.
Another embodiment of the present application provides a queue management device for a network card, including: the device comprises a first acquisition module, a second acquisition module and a third acquisition module, wherein the first acquisition module is used for acquiring a virtual network interface creation request corresponding to a network card, and the virtual network interface creation request comprises an identifier of a virtual network interface to be created and the number of request queues corresponding to the virtual network interface to be created; a first determining module, configured to determine, when the number of idle queues corresponding to the network card is greater than 0, a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface corresponding to the network card; the first traversal module is used for traversing the queue state array corresponding to the network card, and sequentially determining the queue with the queue state being an idle state as a queue to be distributed until the traversal of the queue state array is completed or until the number of the queue to be distributed is less than or equal to the number of the request queues; the filling module is used for sequentially filling the identifier of each queue to be distributed into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table; and the updating module is used for updating the queue state array and the number of the idle queues according to the identifiers of the queues to be distributed and the number of the queues to be distributed.
An embodiment of another aspect of the present application provides an electronic device, which includes: the network card queue management method is characterized in that the processor executes the program to realize the network card queue management method.
In another aspect of the present application, a computer-readable storage medium is provided, on which a computer program is stored, where the computer program is executed by a processor to implement the method for queue management of a network card as described above.
The method, the device, the electronic apparatus, and the computer-readable storage medium for managing the queues of the network card provided in the embodiments of the present application, when a virtual network interface creation request corresponding to the network card is obtained and the number of idle queues corresponding to the network card is greater than 0, determine a base address of the virtual network interface to be created in a preset queue mapping table according to an identifier of the virtual network interface to be created included in the virtual network interface creation request and the maximum number of queues supported by each virtual network interface corresponding to the network card, traverse a queue state array corresponding to the network card, determine a queue whose queue state is an idle state in sequence according to the number of the request queues as a queue to be allocated, then fill the identifier of each queue to be allocated into the preset queue mapping table in sequence according to the base address of the virtual network interface to be created in the preset queue mapping table, and further according to the identifier of the queue to be allocated and the number of queues to be allocated, and updating the queue state array and the number of free queues. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, the idle queue corresponding to the network card is flexibly distributed to each network interface, so that queue resources in the network card are fully utilized, and the performance of the network card is improved.
Additional aspects and advantages of the present application will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the present application.
Drawings
The foregoing and/or additional aspects and advantages of the present application will become apparent and readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
fig. 1 is a schematic flowchart of a method for managing a queue of a network card according to an embodiment of the present application;
fig. 2 is a schematic structural diagram of an electronic device including a network card according to an embodiment of the present disclosure;
FIG. 3 is a schematic diagram of a fixed-mode queue allocation in a network card;
FIG. 4 is a diagram of queues allocated in a network card in an on-demand allocation manner;
fig. 5 is a schematic process diagram of a method for managing a queue of a network card according to an embodiment of the present application;
fig. 6 is a schematic flowchart of another method for managing a queue of a network card according to an embodiment of the present application;
fig. 7 is a schematic flowchart of another method for managing a queue of a network card according to an embodiment of the present application;
fig. 8 is a schematic flowchart of a method for managing a queue of another network card according to an embodiment of the present application;
fig. 9 is a schematic flowchart of a method for managing a queue of a network card according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of a queue management device of a network card according to an embodiment of the present application;
fig. 11 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
Reference will now be made in detail to the embodiments of the present application, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments described below with reference to the drawings are exemplary and intended to be used for explaining the present application and should not be construed as limiting the present application.
The embodiment of the application provides a queue management method for a network card, aiming at the problems that in the related art, in a cloud computing virtualization scene, the number of network interfaces corresponding to the network card is increased, and queue allocation is performed in a fixed allocation mode, so that when a queue corresponding to the network interface is in an idle state, the network interface cannot be allocated to other queues for use, and an idle queue corresponding to the network interface cannot be allocated to other network interfaces for use, so that queue resources are wasted, and the performance of the network card is reduced.
The method for managing the queue of the network card according to the embodiment of the application comprises the steps of determining a base address of a virtual network interface to be created in a preset queue mapping table according to an identifier of the virtual network interface to be created included in a virtual network interface creation request and the maximum queue number supported by each virtual network interface corresponding to the network card when the virtual network interface creation request corresponding to the network card is acquired and the number of idle queues corresponding to the network card is greater than 0, traversing a queue state array group corresponding to the network card, sequentially determining a queue with a queue state being an idle state as a queue to be allocated according to the number of the request queues, sequentially filling the identifier of each queue to be allocated into the preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table, and further sequentially filling the identifier of the queue to be allocated and the number of the queue to be allocated, and updating the queue state array and the number of free queues. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, the idle queue corresponding to the network card is flexibly distributed to each network interface, so that queue resources in the network card are fully utilized, and the performance of the network card is improved.
The following describes in detail a queue management method, apparatus, electronic device, storage medium, and computer program for a network card provided in the present application with reference to the drawings.
Fig. 1 is a flowchart illustrating a method for managing a queue of a network card according to an embodiment of the present application.
As shown in fig. 1, the method for managing the queue of the network card includes the following steps:
step 101, acquiring a virtual network interface creating request corresponding to a network card, wherein the virtual network interface creating request includes an identifier of a virtual network interface to be created and the number of request queues corresponding to the virtual network interface to be created.
It should be noted that the queue management method for the network card in the embodiment of the present application may be executed by the queue management method device for the network card in the embodiment of the present application. The network card queue management method according to the embodiment of the present application may be configured in any electronic device, so as to execute the network card queue management method according to the embodiment of the present application.
As a possible implementation manner, the method for managing the queue of the network card in the embodiment of the present application may be executed by the network card in the electronic device. As shown in fig. 2, a schematic structural diagram of an electronic device including a network card according to an embodiment of the present application is provided, where the electronic device includes the network card, and the network card mainly includes two parts, namely a network card logic and management software. The network card logic may be implemented by a Field Programmable Gate Array (FPGA), and the management software may run on a Central Processing Unit (CPU) on the network card. It should be noted that, in the present application, the queue inside the network card and the preset queue mapping table (hardware part) may be implemented by a network card logic, and the queue management method (software part) of the network card may be implemented by management software.
The network card may be any network card having a plurality of network interfaces. For example, it may be an intelligent network card that supports the creation of virtual network interfaces.
The virtual network interface creation request may be sent to the network card by an application program in the electronic device where the network card is located, so as to create a network interface used when the application program sends and receives a data packet.
The identifier of the virtual network interface to be created may be specified when the application program sends a virtual network interface creation request; or the management software of the network card may generate the identifier according to the created virtual network interface after acquiring the virtual network interface creation request, and the identifier of the virtual network interface to be created is different from the identifier of the created virtual network interface.
It should be noted that the identifier of the virtual network interface is information that can uniquely determine the virtual network interface, and the identifiers of the virtual network interfaces are different from each other. Optionally, a format of the identifier of the virtual network interface may be preset, so as to allocate a legal identifier to the newly-built virtual network interface when the virtual network interface is newly built. For example, the identities of the virtual network interfaces may be NET0, NET1, NET2, and so on.
The number of request queues corresponding to the virtual network interface to be created refers to the number of queues that are allocated to the virtual network interface to be created according to the current needs set by the application program according to actual needs.
In this embodiment of the present application, the management software in the network card may obtain, in real time, a virtual network interface creation request sent by an application program in the electronic device, and perform parsing on the virtual network interface creation request to determine an identifier of a virtual network interface to be created included in the virtual network interface creation request and a number of request queues corresponding to the virtual network interface to be created.
And 102, under the condition that the number of idle queues corresponding to the network card is greater than 0, determining a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface corresponding to the network card.
In the embodiment of the present application, because the number of network interfaces in the network card is large in the cloud computing virtualization environment, when the fixed allocation manner shown in fig. 3 is adopted to equally allocate the queues in the network card to each network interface, the queues in the network card are not sufficient, and when there is an idle queue in a network interface, the idle queue cannot be allocated to other network interfaces for use, so that queue resources are wasted. The quee _ base refers to a base address corresponding to a corresponding network interface, and the quee _ offset refers to an offset address corresponding to a queue.
When the on-demand allocation method shown in fig. 4 is used to allocate the queues in the network card to the network interfaces, the queues are directly exposed to the application program for use, and therefore the queues allocated to the same network interface need to be physically continuous, so that after the network interfaces are created and deleted for many times, a "hole" is easily formed in the queue space, and thus the queue resources are wasted. For example, as shown in fig. 4, initially, 4 network interfaces NET0, NET1, NET2, NET3 are created in sequence, and each network interface occupies 2 queues. Then, the network interface NET1 is deleted, releasing the Queue2/3 Queue, and then the network interface NET3 is deleted, releasing the Queue6/7 Queue. At this time, Queue2/3 and Queue6/7 are in idle state, but are not physically continuous, if a network interface NET4 containing 4 queues needs to be created subsequently, the creation will fail in a continuous allocation mode, although the number of idle queues inside the network card is greater than or equal to 4, thereby wasting Queue resources.
Therefore, in the embodiment of the present application, in order to fully utilize the queue resources in the network card, a queue mapping table may be preset, so as to store the allocation relationship between the virtual network interfaces and the queues through a preset queue mapping table, and for each virtual network interface, a continuous space may be allocated in the preset queue mapping table to store the mapping relationship between the virtual network interface and the queues; when the application program accesses the queues through the queue mapping table, the queues corresponding to the same virtual network interface are continuous in the preset queue mapping table for the application program regardless of whether the queues corresponding to the virtual network interfaces are continuous physically, so that the physically discontinuous queues can be successfully allocated to the same virtual network interface, and queue resources are fully utilized.
The maximum number of queues supported by each virtual network interface refers to a mapping position with a fixed size configured for each virtual network interface in the network card in a preset queue mapping table, and can reflect the maximum number of queues that each virtual network interface can allocate. For example, the maximum number of supported queues allocated to each virtual network interface in the network card in the preset queue mapping table may be 64, that is, each virtual network interface may be allocated with 64 queues at most.
It should be noted that, assuming that the network card includes 1000 queues, 1 queue in the preset queue mapping table needs to be represented by 10 bytes, and if the maximum number of queues supported by each virtual network interface is 64 and the network card can support 128 virtual network interfaces at most, 10 bits × 64 × 128 — 80Kb of storage resources are needed to implement the preset queue mapping table, so that the resource occupation amount is small.
The base address of the virtual network interface to be created in the preset queue mapping table refers to a starting address of the virtual network interface to be created in the preset queue mapping table, that is, a storage address of a first queue corresponding to the virtual network interface to be created.
As a possible implementation manner, the number of idle queues corresponding to the network card may be stored in the management software, so that when the management software obtains a virtual network interface creation request, the management software may first determine whether the network card currently has an idle queue according to the number of idle queues to determine whether to respond to the creation request. Therefore, when the number of the idle queues corresponding to the network card is greater than 0, that is, when the idle queues currently exist in the network card, the creation request of the virtual network interface is responded, and the mapping relation between the new virtual network interface and the idle queues is generated in the preset queue mapping table, so that the idle queues are allocated to the new virtual network interface for use, and the creation of the virtual network interface is completed. Therefore, the base address of the virtual network interface to be created in the preset queue mapping table can be determined according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface, so that the mapping relationship between the virtual network interface to be created and the queue allocated to the virtual network interface to be created can be stored according to the base address.
Optionally, the identifier of the virtual network interface to be created may be used to indicate an arrangement order of the virtual network interface to be created in the preset queue mapping table, so that the base address of the virtual network interface to be created in the preset queue mapping table may be determined according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface. For example, the identifiers of the virtual network interfaces are NET0, NET1, NET2, NET3, … …, where NET0 is the 1 st virtual network interface in the preset queue mapping table, NET1 is the 2 nd virtual network interface in the preset queue mapping table, and so on; if the identifier of the virtual network interface to be created is NET1, the maximum number of queues supported by each virtual network interface is 64, and the addresses of each storage unit corresponding to the preset queue mapping table are 0, 1, 2, 3, … …, and so on; thus, it can be determined that the base address of the virtual network interface NET1 to be created in the preset queue mapping table is 64.
As a possible implementation manner, if the number of idle queues corresponding to the network card is 0, it may be determined that no idle queue exists in the network card at present, and the virtual network interface creation request may not be responded, and a prompt message of creation failure is sent to the application program that initiated the request, and a failure reason is reported.
Step 103, traversing the queue state array corresponding to the network card, and determining the queue with the queue state being an idle state as a queue to be allocated in sequence until the traversal of the queue state array is completed, or until the number of the queues to be allocated is equal to the number of the request queues.
The queue state may include a use state and an idle state. The use state means that the queue is currently used by the network interface; an idle state, meaning that the queue is not currently being used by any network interface.
In the embodiment of the application, a queue state array may be maintained in management software for storing a queue state of each queue in the network card, so that when an idle queue exists in the network card, the queue state array corresponding to the network card may be traversed to determine, in sequence, each queue whose queue state is the idle state as a queue to be allocated, and allocate the queue to be allocated to a virtual network interface to be created, so as to complete creation of a new virtual network interface.
As a possible implementation manner, if the number of idle queues corresponding to the network card is less than the number of request queues, all queues in an idle state may be determined as queues to be allocated, and the number of actually allocated queues is returned to the application program that sends the request after the virtual network interface is created; if the number of the idle queues corresponding to the network card is greater than or equal to the number of the request queues, the idle queues can be determined as queues to be allocated in sequence from the first idle queue in the queue state array until the number of the queues to be allocated is equal to the number of the request queues.
For example, as shown in fig. 5, assuming that the number of request queues corresponding to the to-be-created virtual network interface NET1 is 4, and there are free queues Queue3, Queue4, Queue6, and Queue8 in the network card, free queues Queue3, Queue4, Queue6, and Queue8 may be determined as queues to be allocated.
And step 104, sequentially filling the identifier of each queue to be allocated into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table.
The identifier of the queue to be allocated may be a physical number of the queue to be allocated in the network card. For example, as shown in FIG. 5, the identification of Queue0 can be 0, the identification of Queue1 can be 1, and so on.
In this embodiment of the present application, when the queue mapping table is preset, a preset value may be filled in each storage unit corresponding to the preset queue table, for example, as shown in fig. 5, the preset value may be-1. After determining the queues to be allocated, filling the identifier of the 1 st queue to be allocated into a storage unit corresponding to the base address in a preset queue mapping table, filling the identifier of the 2 nd queue to be allocated into a storage unit which is positioned behind the storage unit corresponding to the base address and adjacent to the storage unit corresponding to the base address in the preset queue mapping table, and so on until the identifiers of all queues to be allocated are filled into the preset queue mapping table, thereby generating the corresponding relationship between the virtual network interface to be created and each queue to be allocated in the preset queue mapping table.
For example, as shown in fig. 5, after determining that the queues to be allocated corresponding to the virtual network interfaces NET1 to be created are Queue3, Queue4, Queue6 and Queue8, respectively, identifier 3 of Queue3, identifier 4 of Queue4, identifier 6 of Queue6, and identifier 8 of Queue8 may be sequentially filled in a preset Queue mapping table from a base address corresponding to NET 1.
And 105, updating the queue state array and the number of the idle queues according to the identifiers of the queues to be distributed and the number of the queues to be distributed.
In the embodiment of the application, after the identifier of the queue to be allocated is filled in the preset queue mapping table, the corresponding relationship between the virtual network interface to be created and the queue to be allocated is established, that is, each queue to be allocated is already used by the virtual network interface to be created, and the queue state of each queue to be allocated changes, so that the queue state array and the number of idle queues need to be updated, so as to ensure that the queue state data and the number of idle queues can accurately represent the use condition of each queue in the network card.
As a possible implementation manner, the queue state array may include a corresponding relationship between an identifier of each queue and a queue state, so that after the queue to be allocated is allocated to the virtual network interface to be created, the queue state corresponding to the queue to be allocated may be searched and updated by using the identifier of the queue to be allocated as an index, and the number of free queues may be updated. That is, in a possible implementation manner of this embodiment of the present application, step 105 may include:
updating the queue state corresponding to the identifier of each queue to be allocated in the queue state array to be a use state according to the identifier of the queue to be allocated, and associating the identifier of each queue to be allocated with the identifier of the virtual network interface to be created;
and determining the difference between the number of the idle queues and the number of the queues to be distributed as the updated number of the idle queues corresponding to the network card.
In the embodiment of the application, the queue state array may be traversed to update the queue state corresponding to the identifier of each queue to be allocated in the array to the use state, and the identifier of the virtual network interface to be created corresponding to the queue to be allocated may be written into the queue state data, so as to associate the identifier of each queue to be allocated with the identifier of the virtual network interface to be created, so that the queue state array may represent not only the use state of each queue in the network card, but also which network interface each queue is specifically allocated to for use.
In the embodiment of the application, since the queue to be allocated is allocated to the virtual network interface to be created for use, the number of idle queues corresponding to the network card is correspondingly reduced, so that the difference value between the current number of idle queues and the number of queues to be allocated can be determined as the updated number of idle queues.
For example, as shown in fig. 5, assuming that the current free Queue number of the network card is 4, after Queue3, Queue4, Queue6 and Queue8 are allocated to NET1, the Queue states corresponding to Queue3, Queue4, Queue6 and Queue8 may be updated to the use state and the free Queue number may be updated to 0 in the Queue state array.
As a possible implementation manner, step 103-105 in this embodiment may also be performed synchronously, that is, in the process of traversing the queue state array, each idle queue is queried, the idle queue is determined as a queue to be allocated, and at the same time, the queue state corresponding to the queue to be allocated is updated to the use state, and the number of the idle queues is reduced by one; and traversing the next queue in the queue state array until the number of the queues to be distributed is the same as that of the request queues, or the traversal of the queue state array is completed.
The method for managing the queue of the network card according to the embodiment of the application comprises the steps of determining a base address of a virtual network interface to be created in a preset queue mapping table according to an identifier of the virtual network interface to be created included in a virtual network interface creation request and the maximum queue number supported by each virtual network interface corresponding to the network card when the virtual network interface creation request corresponding to the network card is acquired and the number of idle queues corresponding to the network card is greater than 0, traversing a queue state array group corresponding to the network card, sequentially determining a queue with a queue state being an idle state as a queue to be allocated according to the number of the request queues, sequentially filling the identifier of each queue to be allocated into the preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table, and further sequentially filling the identifier of the queue to be allocated and the number of the queue to be allocated, and updating the queue state array and the number of free queues. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, the idle queue corresponding to the network card is flexibly distributed to each network interface, so that queue resources in the network card are fully utilized, and the performance of the network card is improved.
In a possible implementation form of the present application, the request may be correspondingly created and a new virtual network interface may be created only when the number of idle queues in the network card is greater than or equal to the number of request queues corresponding to the virtual network interface to be created, so that the created virtual network interface may meet the actual use requirement of the application program, and the reliability of the operation of the network card is further improved while the queue resources are fully utilized.
The queue management method of the network card provided in the embodiment of the present application is further described below with reference to fig. 6.
Fig. 6 is a flowchart illustrating another method for managing a queue of a network card according to an embodiment of the present application.
As shown in fig. 6, the method for managing the queue of the network card includes the following steps:
step 201, obtaining a virtual network interface creation request corresponding to the network card, where the virtual network interface creation request includes an identifier of a virtual network interface to be created and a number of request queues corresponding to the virtual network interface to be created.
The detailed implementation process and principle of step 201 may refer to the detailed description of the above embodiments, and are not described herein again.
Step 202, obtaining the number of idle queues corresponding to the network card.
In the embodiment of the application, the number of idle queues corresponding to the network card can be stored in the management software, so that when a virtual network interface creation request is obtained, assignment of a variable corresponding to the number of idle queues can be obtained, and the assignment of the variable is determined as the number of idle queues corresponding to the network card currently.
Step 203, sending a prompt message of failure of newly building a virtual network interface when the number of the idle queues is less than the number of the request queues.
As a possible implementation manner, if the number of idle queues corresponding to the network card at present is less than the number of request queues, it may be determined that the number of the idle queues is insufficient, and a virtual network interface cannot be newly created, so that a prompt message indicating that a newly created virtual network interface fails may be sent to an application program that sends a request, and a failure reason is sent, so as to ensure that the newly created virtual network interface can meet actual requirements of the application program, and further improve the reliability of the operation of the network card.
And 204, under the condition that the number of the idle queues is determined to be greater than or equal to the number of the request queues, determining the base address of the virtual network interface to be created in the preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum number of the queues supported by each virtual network interface corresponding to the network card.
As a possible implementation manner, if it is determined that the number of idle queues corresponding to the network card currently is greater than or equal to the number of request queues, it may be determined that the current idle queues may meet the requirement of newly building a virtual network interface, so that a virtual network interface may be newly built according to a virtual network interface creation request, the same number of idle queues are allocated to the virtual network interface according to the number of request queues, a mapping relationship between a new virtual network interface and an idle queue is generated in a preset queue mapping table, and creation of the virtual network interface is completed.
It should be noted that, the specific process and implementation principle of determining the base address of the virtual network interface to be created in the preset queue mapping table in step 204 may refer to the detailed description of the foregoing embodiment, and details are not described here.
Step 205, sequentially obtaining the queue state corresponding to each queue in the queue state array.
In the embodiment of the application, after the base address of the virtual network interface to be created in the preset queue mapping table is determined, the queue state array corresponding to the network card may be traversed to determine the current idle queue in the network card, and the idle queue is allocated to the virtual network interface to be created, so that the queue state corresponding to each queue in the queue state array may be sequentially obtained to determine the queue state as the queue in the idle state.
And step 206, determining the current queue as the queue to be allocated under the condition that the queue state corresponding to the current queue is an idle state.
In the embodiment of the application, when the queue state array corresponding to the network card is traversed, if it is determined that the queue state corresponding to the current queue in the queue state array is an idle state, the current queue may be determined as a queue to be allocated, so as to allocate the queue to a virtual network interface to be created. For example, as shown in fig. 5, if the Queue status of Queue3 is idle, Queue3 may be determined as the Queue to be allocated.
And step 207, under the condition that the queue state corresponding to the current queue is the use state, skipping the current queue and acquiring the queue state corresponding to the next queue adjacent to the current queue in the queue state array until the number of the queues to be distributed is equal to the number of the request queues.
In this embodiment of the present application, when traversing the queue state array corresponding to the network card, if it is determined that the queue state corresponding to the current queue in the queue state array is the use state, it may be determined that the current queue cannot be allocated to the virtual network interface to be created, so that the current queue may be directly skipped, and the queue state of the next queue adjacent to the current queue is continuously obtained from the queue state array until the number of queues to be allocated is equal to the number of request queues, and the above traversal process may be completed.
For example, as shown in fig. 5, when NET1 is created, the number of corresponding request queues is 4, and the Queue state of current Queue5 is the use state, then Queue5 may be skipped to obtain the Queue state of Queue6 until the Queue state of Queue8 is determined to be the idle state, and after Queue8 is determined to be the Queue to be allocated, the number of queues to be allocated is determined to be 4, which is the same as the number of request queues, so that traversal of the Queue state array may be stopped.
And step 208, sequentially filling the identifier of each queue to be allocated into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table.
Step 209, updating the queue status array and the number of idle queues according to the identifier of the queue to be allocated and the number of the queue to be allocated.
The detailed implementation process and principle of the step 208 and the step 209 may refer to the detailed description of the above embodiments, and are not described herein again.
The method for managing the queues of the network card provided by the embodiment of the application determines the base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created included in the virtual network interface creation request and the maximum queue number supported by each virtual network interface corresponding to the network card when the virtual network interface creation request corresponding to the network card is acquired and the number of the idle queues corresponding to the network card is greater than or equal to the number of the request queues, traverses the queue state array corresponding to the network card, determines the queue with the queue state in the idle state as the queue to be allocated according to the number of the request queues, then sequentially fills the identifier of each queue to be allocated into the preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table, and further according to the identifier of the queue to be allocated and the number of the queue to be allocated, and updating the queue state array and the number of free queues. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, idle queues corresponding to the network card are flexibly distributed to each network interface, and queues are distributed to the network interfaces according to the number of request queues in the creation request, so that queue resources in the network card are fully utilized, the processing efficiency of the network card is improved, and the running reliability of the network card is further improved.
In a possible implementation form of the present application, the method for managing the queue of the network card according to the embodiment of the present application may further delete a created virtual network interface, and timely release queue resources in the network card, thereby further improving the utilization rate of the queue resources and improving the processing efficiency of the network card.
The queue management method of the network card provided in the embodiment of the present application is further described below with reference to fig. 7.
Fig. 7 is a flowchart illustrating a further method for managing a queue of a network card according to an embodiment of the present application.
As shown in fig. 7, the method for managing the queue of the network card includes the following steps:
step 301, obtaining a virtual network interface creation request corresponding to the network card, where the virtual network interface creation request includes an identifier of a virtual network interface to be created and a number of request queues corresponding to the virtual network interface to be created.
Step 302, when the number of idle queues corresponding to the network card is greater than 0, determining a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface corresponding to the network card.
Step 303, traversing the queue state array corresponding to the network card, and determining the queue with the queue state being an idle state as the queue to be allocated in sequence until the traversal of the queue state array is completed, or until the number of the queues to be allocated is equal to the number of the request queues.
And step 304, sequentially filling the identifier of each queue to be allocated into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table.
Step 305, updating the queue state array and the number of idle queues according to the identifiers of the queues to be allocated and the number of the queues to be allocated.
The detailed implementation process and principle of the steps 301-305 can refer to the detailed description of the above embodiments, and are not described herein again.
Step 306, a virtual network interface deletion request corresponding to the network card is obtained, wherein the virtual network interface deletion request includes an identifier of the virtual network interface to be deleted.
The virtual network interface deletion request may be sent to the network card by an application program in the electronic device where the network card is located, so as to delete the corresponding relationship between the corresponding network interface and the queue from a preset queue mapping table according to actual needs.
In the embodiment of the application, the management software in the network card may obtain, in real time, a virtual network interface deletion request sent by an application program in the electronic device, and perform analysis processing on the virtual network interface deletion request to determine an identifier of a virtual network interface to be deleted included in the virtual network interface deletion request.
Step 307, traversing the queue state array to obtain a corresponding relationship between the identifier of each queue in the network card and the queue state and an association relationship between the identifier of each queue and the identifier of the virtual network interface.
In this embodiment, the queue state array corresponding to the network card may store the queue state of each queue in the network and the virtual network interface associated with each queue. Therefore, after the virtual network interface deletion request is obtained, the queue state array corresponding to the network card can be traversed to obtain the corresponding relation between the identifier of each queue in the network card and the queue state and the incidence relation between the identifier of each queue and the identifier of the virtual network interface, and further determine the queue allocated to the virtual network interface to be deleted in the network card.
Step 308, deleting the identifier of the current queue from the preset queue mapping table, updating the queue state corresponding to the current queue in the queue state array to be an idle state, and adding one to the number of the idle queues when the queue state corresponding to the current queue is the use state and the identifier of the current queue is associated with the identifier of the virtual network interface to be deleted.
In this embodiment of the application, when traversing the queue state array corresponding to the network card, if the queue state corresponding to the current queue is the use state and the identifier of the current queue is associated with the identifier of the virtual network interface to be deleted, it may be determined that the current queue is the queue allocated to the virtual network interface to be deleted, so that the identifier of the current queue may be deleted from the preset queue mapping table, and a preset value (for example, the preset value may be-1) is filled in the storage unit corresponding to the identifier of the current queue, and then the queue state corresponding to the current queue in the queue state array is updated to be the idle state, and the number of idle queues corresponding to the network card is increased by one, so as to update the number of the queue state array and the number of idle queues corresponding to the network card.
Step 309, when the queue status corresponding to the current queue is in an idle status, or the identifier of the current queue is not associated with the identifier of the virtual network interface to be deleted, skipping the current queue and obtaining the corresponding relationship between the identifier of the next queue in the queue status array and the queue status, and the associated relationship between the identifier of the next queue and the identifier of the virtual network interface, until the queue status array is completely traversed.
In this embodiment of the application, when traversing the queue state array corresponding to the network card, if the queue state corresponding to the current queue is an idle state, or the queue state of the current queue is a use state but is not associated with the identifier of the virtual network interface to be deleted, it may be determined that the current queue is not a queue allocated to the virtual network interface to be deleted, and the current queue may be skipped to continuously obtain the corresponding relationship between the identifier of the next queue in the queue state array and the queue state and the associated relationship between the identifier of the next queue and the identifier of the virtual network interface until the traversal of the queue state array is completed, and it may be determined that the virtual network interface is deleted.
According to the queue management method of the network card, when a virtual network interface deletion request corresponding to the network card is obtained, the queue state array is traversed, the identification of the current queue is deleted from the preset queue mapping table under the condition that the queue state corresponding to the current queue is a use state and the identification of the current queue is associated with the identification of the virtual network interface to be deleted, the queue state corresponding to the current queue in the queue state array is updated to be an idle state, the number of the idle queues is increased by one, and the next queue in the queue state array traversed by the current queue is skipped under the condition that the queue state corresponding to the current queue is an idle state or the identification of the current queue is not associated with the identification of the virtual network interface to be deleted, so that the virtual network interface is deleted. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, the idle queue corresponding to the network card is flexibly distributed to each network interface, the created virtual network interface can be deleted, and the queue resources in the network card are released in time, so that the utilization rate of the queue resources is further improved, and the processing efficiency of the network card is improved.
In a possible implementation form of the present application, an application program in an electronic device where a network card is located may access an actual physical queue that needs to be used for sending a data packet through a preset queue mapping table, so as to ensure reliability of operation of the network card.
The queue management method of the network card provided in the embodiment of the present application is further described below with reference to fig. 8.
Fig. 8 is a flowchart illustrating a method for managing a queue of a network card according to an embodiment of the present application.
As shown in fig. 8, the method for managing the queue of the network card includes the following steps:
step 401, obtaining a virtual network interface creation request corresponding to the network card, where the virtual network interface creation request includes an identifier of a virtual network interface to be created and a number of request queues corresponding to the virtual network interface to be created.
Step 402, determining a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum queue number supported by each virtual network interface corresponding to the network card under the condition that the number of idle queues corresponding to the network card is greater than 0.
Step 403, traversing the queue state array corresponding to the network card, and sequentially determining the queue with the queue state being an idle state as a queue to be allocated until the traversal of the queue state array is completed, or until the number of the queues to be allocated is equal to the number of the request queues.
Step 404, sequentially filling the identifier of each queue to be allocated into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table.
Step 405, updating the queue state array and the number of idle queues according to the identifier of the queue to be allocated and the number of the queue to be allocated.
The detailed implementation process and principle of the steps 401 and 405 can refer to the detailed description of the above embodiments, and are not described herein again.
Step 406, a data packet sending request sent by the first application to the network card is obtained, where the data packet sending request includes a base address and an offset address corresponding to the first target queue in the preset queue mapping table.
The first application program refers to an upper application program which is required to send a data packet to other equipment currently in the electronic equipment where the network card is currently located.
The data packet sending request may be generated by a driver corresponding to the network interface and sent to the management software 3 in the network card when the first application needs to send a data packet to another device through the network link.
The first target queue refers to a queue in a network card that needs to be used when the first application program sends a data packet currently.
In this embodiment, the driver software of the network interface may calculate five tuple information (a protocol type, a source IP address, a destination IP address, a source port number, and a destination port number) of a to-be-sent data packet of the first application program through a hash algorithm, determine a first target queue that needs to be used by the first application program to send the to-be-sent data packet, generate a base address and an offset address corresponding to the first target queue in a preset queue mapping table, and send the base address and the offset address to the management software, so that the management software queries an identifier of the first target queue from the preset queue mapping table according to the base address and the offset address corresponding to the first target queue.
Step 407, acquiring the identifier of the first target queue from the preset queue mapping table according to the base address and the offset address corresponding to the first target queue.
In this embodiment of the present application, after the management software determines the base address and the offset address corresponding to the first target queue, the management software may obtain the identifier of the first target queue from the corresponding storage unit of the preset queue mapping table according to the base address and the offset address corresponding to the first target queue.
For example, as shown in fig. 5, assuming that the maximum number of queues supported by each virtual network interface is 64, the base address of NET0 is 0, and the base address of NET1 is 64, if the base address of the first target queue is 64 and the offset address is 2, the identifier of the first target queue may be determined to be 6.
Step 408, according to the identifier of the first target queue, obtaining a pointer and/or a storage address corresponding to the data packet to be sent from the first target queue.
In the embodiment of the application, after the identifier of the first target queue is determined, the first target queue can be accessed according to the identifier of the first target queue, information such as a pointer and a storage address corresponding to a data packet to be sent is obtained from the first target queue, and the data packet to be sent is read from a corresponding storage space according to the information such as the pointer and/or the storage address corresponding to the data packet to be sent.
Step 409, initiating a read operation to the first application program according to the pointer and/or the storage address corresponding to the data packet to be sent to acquire the data packet to be sent, and sending the data packet to be sent through the first virtual network interface corresponding to the first target queue.
In this embodiment of the application, after the information such as the pointer and/or the storage address corresponding to the data packet to be sent is obtained, a read operation may be initiated to the first application according to the pointer and/or the storage address corresponding to the data packet to be sent, so as to read information such as a descriptor and a buffer area of the data packet to be sent from a corresponding storage space, and send the data packet to be sent through the first virtual network interface corresponding to the first target queue, thereby completing a sending process of the data packet.
According to the queue management method for the network card, when a data packet sending request sent to the network card by a first application program is obtained, according to a base address and an offset address corresponding to a first target queue in a preset queue mapping table included in the data packet sending request, an identifier of the first target queue is obtained from the preset queue mapping table, according to the identifier of the first target queue, a pointer and/or a storage address corresponding to a data packet to be sent are obtained from the first target queue, then, a read operation is initiated to the first application program according to the pointer and/or the storage address corresponding to the data packet to be sent, so that the data packet to be sent is obtained, and the data packet to be sent is sent through a first virtual network interface corresponding to the first target queue. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, idle queues corresponding to the network card are flexibly distributed to each network interface, and an application program in the electronic equipment where the network card is located can access actual physical queues required to be used for sending data packets through the preset queue mapping table, so that the utilization rate of queue resources and the processing efficiency of the network card are improved, and the running reliability of the network card is further improved.
In a possible implementation form of the present application, an application program in an electronic device where a network card is located may access an actual physical queue that needs to be used for receiving a data packet through a preset queue mapping table, so as to ensure reliability of operation of the network card.
The queue management method of the network card provided in the embodiment of the present application is further described below with reference to fig. 9.
Fig. 9 is a flowchart illustrating a method for managing a queue of another network card according to an embodiment of the present application.
As shown in fig. 9, the method for managing the queue of the network card includes the following steps:
step 501, acquiring a virtual network interface creation request corresponding to a network card, where the virtual network interface creation request includes an identifier of a virtual network interface to be created and a number of request queues corresponding to the virtual network interface to be created.
Step 502, determining a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum queue number supported by each virtual network interface corresponding to the network card, when the number of idle queues corresponding to the network card is greater than 0.
Step 503, traversing the queue state array corresponding to the network card, and determining the queue with the queue state being an idle state as the queue to be allocated in sequence until the traversal of the queue state array is completed, or until the number of the queue to be allocated is equal to the number of the request queues.
Step 504, sequentially filling the identifier of each queue to be allocated into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table.
And 505, updating the queue state array and the number of idle queues according to the identifier of the queue to be distributed and the number of the queue to be distributed.
The detailed implementation process and principle of the steps 501-505 may refer to the detailed description of the embodiments, and are not described herein again.
Step 506, a data packet to be received by the physical network interface of the network card is obtained.
The data packet to be received refers to a data packet sent by other equipment, which is received by a physical network interface of the network card through a network link.
In this embodiment, the network card may include a physical network interface and a virtual network interface, and when receiving a data packet sent by another device through a network, the network card may receive the data packet to be received through the physical network interface, and further determine the virtual network interface and the queue for receiving the data packet to be received according to the received data packet to be received.
Step 507, the data packet to be received is analyzed to determine the identifier of the second virtual network interface corresponding to the data packet to be received, and the base address and the offset address corresponding to the second target queue in the preset queue mapping table.
The second virtual network interface is a network interface to be simulated, which is required to be used by the network card to currently receive the data packet to be received.
The second target queue refers to a queue that needs to be used by the network card to currently receive the data packet to be received. It should be noted that the second target queue is a queue allocated to the second virtual network interface.
In this embodiment, after receiving a data packet to be received, a network card may utilize an OVS module in the network card to perform parsing on the data packet to be received, so as to determine a virtual network interface for receiving the data packet to be received, further calculate, according to a hash algorithm, quintuple information corresponding to the data packet to be received through driver software corresponding to the network interface, so as to determine a second target queue that needs to be used for receiving the data packet to be received, generate a base address and an offset address corresponding to the second target queue in a preset queue mapping table, and send the base address and the offset address to management software, so that the management software queries an identifier of the second target queue from the preset queue mapping table according to the base address and the offset address corresponding to the second target queue.
And step 508, acquiring the identifier of the second target queue from the preset queue mapping table according to the base address and the offset address corresponding to the second target queue.
In the embodiment of the present application, after the management software determines the base address and the offset address corresponding to the second target queue, the identifier of the second target queue may be obtained from the corresponding storage unit of the preset queue mapping table according to the base address and the offset address corresponding to the second target queue.
For example, as shown in fig. 5, assuming that the maximum number of queues supported by each virtual network interface is 64, the base address of NET0 is 0, and the base address of NET1 is 64, if the base address of the first target queue is 0 and the offset address is 1, it may be determined that the identifier of the second target queue is 2.
Step 509, according to the identifier of the second target queue, obtaining a pointer and/or a storage address corresponding to the data packet to be received from the second target queue.
In the embodiment of the present application, after the identifier of the second target queue is determined, the second target queue may be accessed according to the identifier of the second target queue, and information such as a pointer and a storage address corresponding to the data packet to be received is obtained from the second target queue, so that the data packet to be received is written into a corresponding storage space according to the information such as the pointer and/or the storage address corresponding to the data packet to be received.
Step 510, writing the data packet to be received into the memory according to the pointer and/or the storage address corresponding to the data packet to be received, and sending the data to be received to the second application program through the second virtual network interface corresponding to the second target queue.
The second application program is an upper layer application program that finally receives the data packet to be received.
In this embodiment of the application, after information such as a pointer and/or a storage address corresponding to a data packet to be received is obtained, a write operation may be initiated to a system memory according to the pointer and/or the storage address corresponding to the data packet to be received, so as to write the data packet to be received into a corresponding storage space, and the data packet to be received is sent to a second application program through a second virtual network interface corresponding to a second target queue, thereby completing a receiving process of the data packet.
In the method for managing the network card queue provided in the embodiment of the application, when the data packet to be received by the physical network interface of the network card is acquired, analyzing the data packet to be received to determine the identifier of the second virtual network interface corresponding to the data packet to be received, and the base address and the offset address corresponding to the second target queue in the preset queue mapping table, acquiring the identifier of a second target queue from a preset queue mapping table according to the base address and the offset address corresponding to the second target queue, then acquiring a pointer and/or a storage address corresponding to a data packet to be received from the second target queue according to the identifier of the second target queue, further writing the data packet to be received into the memory according to the pointer and/or the memory address corresponding to the data packet to be received, and sending the data to be received to a second application program through a second virtual network interface corresponding to the second target queue. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, the idle queues corresponding to the network card are flexibly distributed to each network interface, and an application program in the electronic equipment where the network card is located can access the actual physical queues required to be used for receiving the data packets through the preset queue mapping table, so that the utilization rate of queue resources and the processing efficiency of the network card are improved, and the running reliability of the network card is further improved.
In order to implement the foregoing embodiment, the present application further provides a queue management device for a network card.
Fig. 10 is a schematic structural diagram of a queue management device of a network card according to an embodiment of the present application.
As shown in fig. 10, the queue management device 60 of the network card includes:
a first obtaining module 61, configured to obtain a virtual network interface creation request corresponding to a network card, where the virtual network interface creation request includes an identifier of a virtual network interface to be created and a number of request queues corresponding to the virtual network interface to be created;
a first determining module 62, configured to determine, when the number of idle queues corresponding to the network card is greater than 0, a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface corresponding to the network card;
the first traversal module 63 is configured to traverse the queue state array corresponding to the network card, and sequentially determine the queue with the queue state being an idle state as a queue to be allocated until the traversal of the queue state array is completed, or until the number of the queues to be allocated is equal to the number of the request queues;
a filling module 64, configured to sequentially fill the identifier of each to-be-allocated queue into a preset queue mapping table according to the base address of the to-be-created virtual network interface in the preset queue mapping table;
an updating module 65, configured to update the queue state array and the number of idle queues according to the identifier of the queue to be allocated and the number of the queue to be allocated.
In practical use, the queue management device of the network card provided in the embodiment of the present application may be configured in any electronic device to execute the queue management method of the network card.
The queue management device of the network card provided in the embodiment of the application, when a virtual network interface creation request corresponding to the network card is obtained and the number of idle queues corresponding to the network card is greater than 0, according to the identifier of the virtual network interface to be created included in the virtual network interface creation request and the maximum number of queues supported by each virtual network interface corresponding to the network card, determining the base address of the virtual network interface to be created in a preset queue mapping table, traversing a queue state array corresponding to the network card, sequentially determining the queue with the queue state being idle state as a queue to be allocated according to the number of the request queues, sequentially filling the identifier of each queue to be allocated into the preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table, and further according to the identifier of the queue to be allocated and the number of the queues to be allocated, and updating the queue state array and the number of the free queues. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, the idle queue corresponding to the network card is flexibly distributed to each network interface, so that queue resources in the network card are fully utilized, and the performance of the network card is improved.
In one possible implementation form of the present application, the queue management device 60 of the network card further includes:
the second acquisition module is used for acquiring the number of idle queues corresponding to the network card;
a second determining module to determine that the number of free queues is greater than or equal to the number of request queues.
Further, in another possible implementation form of the present application, the queue management device 60 of the network card further includes:
and the sending module is used for sending a prompt message of failure in establishing the new virtual network interface under the condition that the number of the idle queues is less than that of the request queues.
Further, in another possible implementation form of the present application, the first traversal module 63 includes:
the acquisition unit is used for sequentially acquiring the queue state corresponding to each queue in the queue state array;
the determining unit is used for determining the current queue as the queue to be allocated under the condition that the queue state corresponding to the current queue is an idle state;
and the traversing unit is used for skipping the current queue and acquiring the queue state corresponding to the next queue adjacent to the current queue in the queue state array under the condition that the queue state corresponding to the current queue is the use state until the number of the queues to be distributed is equal to the number of the request queues.
Further, in another possible implementation form of the present application, the queue state array includes a corresponding relationship between an identifier of each queue in the network card and a queue state, and correspondingly, the updating module 65 includes:
the first updating unit is used for updating the queue state corresponding to the identifier of each queue to be allocated in the queue state array into a use state according to the identifier of the queue to be allocated, and associating the identifier of each queue to be allocated with the identifier of the virtual network interface to be created;
and the second updating unit is used for determining the difference between the number of the idle queues and the number of the queues to be distributed as the updated number of the idle queues corresponding to the network card.
Further, in another possible implementation form of the present application, the queue management device 60 of the network card further includes:
the third acquisition module is used for acquiring a virtual network interface deletion request corresponding to the network card, wherein the virtual network interface deletion request comprises an identifier of a virtual network interface to be deleted;
the second traversal module is used for traversing the queue state array to obtain the corresponding relation between the identifier of each queue in the network card and the queue state and the incidence relation between the identifier of each queue and the identifier of the virtual network interface;
a deleting module, configured to delete the identifier of the current queue from the preset queue mapping table, update the queue state corresponding to the current queue in the queue state array to an idle state, and add one to the number of idle queues when the queue state corresponding to the current queue is a use state and the identifier of the current queue is associated with the identifier of the virtual network interface to be deleted;
and a third traversing module, configured to skip the current queue and obtain a corresponding relationship between an identifier of a next queue in the queue state array and the queue state and an association relationship between an identifier of the next queue and an identifier of the virtual network interface, until the queue state array is traversed completely, when the queue state corresponding to the current queue is an idle state or the identifier of the current queue is not associated with the identifier of the virtual network interface to be deleted.
Further, in another possible implementation form of the present application, the queue management device 60 for a network card further includes:
a fourth obtaining module, configured to obtain a data packet sending request sent by a first application to the network card, where the data packet sending request includes a base address and an offset address corresponding to a first target queue in the preset queue mapping table;
a fifth obtaining module, configured to obtain, according to a base address and an offset address corresponding to the first target queue, an identifier of the first target queue from the preset queue mapping table;
a sixth obtaining module, configured to obtain, according to the identifier of the first target queue, a pointer and/or a storage address corresponding to a to-be-sent data packet from the first target queue;
a seventh obtaining module, configured to initiate a read operation to the first application according to the pointer and/or the storage address corresponding to the to-be-sent data packet, so as to obtain the to-be-sent data packet, and send the to-be-sent data packet through the first virtual network interface corresponding to the first target queue.
Further, in another possible implementation form of the present application, the queue management device 60 of the network card further includes:
the eighth acquiring module is used for acquiring a data packet to be received, which is received by a physical network interface of the network card;
a third determining module, configured to analyze the to-be-received data packet to determine an identifier of a second virtual network interface corresponding to the to-be-received data packet, and a base address and an offset address corresponding to a second target queue in the preset queue mapping table;
a ninth obtaining module, configured to obtain, according to the base address and the offset address corresponding to the second target queue, an identifier of the second target queue from a preset queue mapping table;
a tenth obtaining module, configured to obtain, according to the identifier of the second target queue, a pointer and/or a storage address corresponding to a data packet to be received from the second target queue;
and the writing module is used for writing the data packet to be received into a memory according to the pointer and/or the storage address corresponding to the data packet to be received, and sending the data to be received to a second application program through a second virtual network interface corresponding to the second target queue.
It should be noted that the foregoing explanation on the embodiments of the queue management method for the network card shown in fig. 1, fig. 6, fig. 7, fig. 8, and fig. 9 is also applicable to the queue management device 60 for the network card of the embodiment, and is not repeated here.
The queue management device for the network card provided in the embodiment of the application, when a virtual network interface creation request corresponding to the network card is obtained and the number of idle queues corresponding to the network card is greater than or equal to the number of request queues, determines a base address of a virtual network interface to be created in a preset queue mapping table according to an identifier of the virtual network interface to be created included in the virtual network interface creation request and the maximum number of queues supported by each virtual network interface corresponding to the network card, traverses a queue state array corresponding to the network card, determines a queue with a queue state in an idle state as a queue to be allocated according to the number of the request queues, sequentially fills the identifier of each queue to be allocated into the preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table, and further sequentially fills the identifier of each queue to be allocated and the number of queues to be allocated, and updating the queue state array and the number of the free queues. Therefore, by presetting a queue mapping table in the network card and carrying out dynamic queue management through the queue mapping table, idle queues corresponding to the network card are flexibly distributed to each network interface, and queues are distributed to the network interfaces according to the number of request queues in the creation request, so that queue resources in the network card are fully utilized, the processing efficiency of the network card is improved, and the running reliability of the network card is further improved.
In order to implement the above embodiments, the present application further provides an electronic device.
Fig. 11 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
As shown in fig. 11, the electronic device 200 includes:
a memory 210 and a processor 220, and a bus 230 connecting different components (including the memory 210 and the processor 220), wherein the memory 210 stores a computer program, and when the processor 220 executes the program, the method for managing the queue of the network card according to the embodiment of the present application is implemented.
Bus 230 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures include, but are not limited to, Industry Standard Architecture (ISA) bus, micro-channel architecture (MAC) bus, enhanced ISA bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
Electronic device 200 typically includes a variety of electronic device readable media. Such media may be any available media that is accessible by electronic device 200 and includes both volatile and nonvolatile media, removable and non-removable media.
Memory 210 may also include computer system readable media in the form of volatile memory, such as Random Access Memory (RAM)240 and/or cache memory 250. The electronic device 200 may further include other removable/non-removable, volatile/nonvolatile computer system storage media. By way of example only, storage system 260 may be used to read from and write to non-removable, nonvolatile magnetic media (not shown in FIG. 11, and commonly referred to as a "hard drive"). Although not shown in FIG. 11, a magnetic disk drive for reading from and writing to a removable, nonvolatile magnetic disk (e.g., a "floppy disk") and an optical disk drive for reading from or writing to a removable, nonvolatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to bus 230 by one or more data media interfaces. Memory 210 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the application.
A program/utility 280 having a set (at least one) of program modules 270, including but not limited to an operating system, one or more application programs, other program modules, and program data, each of which or some combination thereof may comprise an implementation of a network environment, may be stored in, for example, the memory 210. The program modules 270 generally perform the functions and/or methodologies of the embodiments described herein.
Electronic device 200 may also communicate with one or more external devices 290 (e.g., keyboard, pointing device, display 291, etc.), with one or more devices that enable a user to interact with electronic device 200, and/or with any devices (e.g., network card, modem, etc.) that enable electronic device 200 to communicate with one or more other computing devices. Such communication may occur via input/output (I/O) interfaces 292. Also, the electronic device 200 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network such as the Internet) via the network adapter 293. As shown, the network adapter 293 communicates with the other modules of the electronic device 200 via the bus 230. It should be appreciated that although not shown in the figures, other hardware and/or software modules may be used in conjunction with the electronic device 200, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, among others.
The processor 220 executes various functional applications and data processing by executing programs stored in the memory 210.
It should be noted that, for the implementation process and the technical principle of the electronic device in this embodiment, reference is made to the foregoing explanation of the queue management method of the network card in the embodiment of the present application, and details are not described here again.
The electronic device provided in this embodiment of the present application can execute the aforementioned queue management method for a network card, when a virtual network interface creation request corresponding to the network card is obtained and the number of idle queues corresponding to the network card is greater than 0, determining a base address of the virtual network interface to be created in a preset queue mapping table according to an identifier of the virtual network interface to be created included in the virtual network interface creation request and a maximum number of queues supported by each virtual network interface corresponding to the network card, traversing a queue state array corresponding to the network card, sequentially determining a queue whose queue state is idle according to the number of the request queues as a queue to be allocated, sequentially filling the identifier of each queue to be allocated into the preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table, and further sequentially filling the identifier of each queue to be allocated and the number of queues to be allocated, and updating the queue state array and the number of free queues. Therefore, the queue mapping table is preset in the network card, dynamic queue management is carried out through the queue mapping table, and the idle queues corresponding to the network card are flexibly distributed to all network interfaces, so that queue resources in the network card are fully utilized, and the performance of the network card is improved.
In order to implement the above embodiments, the present application also proposes a computer-readable storage medium.
The computer-readable storage medium stores thereon a computer program, and the computer program is executed by a processor to implement the queue management method for the network card according to the embodiment of the present application.
In order to implement the foregoing embodiments, a further embodiment of the present application provides a computer program, where the computer program is executed by a processor to implement the method for queue management of a network card according to the embodiments of the present application.
In an alternative implementation, the present embodiments may employ any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present application may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the consumer electronic device, partly on the consumer electronic device, as a stand-alone software package, partly on the consumer electronic device and partly on a remote electronic device, or entirely on the remote electronic device or server. In the case of remote electronic devices, the remote electronic devices may be connected to the consumer electronic device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external electronic device (e.g., through the internet using an internet service provider).
Other embodiments of the present application will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the invention following, in general, the principles of the application and including such departures from the present disclosure as come within known or customary practice within the art to which the invention pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the application being indicated by the following claims.
It will be understood that the present application is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the application is limited only by the appended claims.

Claims (11)

1. A queue management method of a network card is characterized by comprising the following steps:
acquiring a virtual network interface creating request corresponding to a network card, wherein the virtual network interface creating request comprises an identifier of a virtual network interface to be created and the number of request queues corresponding to the virtual network interface to be created;
determining a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum queue number supported by each virtual network interface corresponding to the network card under the condition that the number of idle queues corresponding to the network card is greater than 0;
traversing the queue state array corresponding to the network card, and determining the queue with the queue state being an idle state as a queue to be allocated in sequence until the traversal of the queue state array is completed or until the number of the queues to be allocated is equal to the number of the request queues;
sequentially filling the identifier of each queue to be distributed into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table;
and updating the queue state array and the number of the idle queues according to the identifiers of the queues to be distributed and the number of the queues to be distributed.
2. The method according to claim 1, wherein when the number of idle queues corresponding to the network card is greater than 0, determining, according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface corresponding to the network card, a base address of the virtual network interface to be created in a preset queue mapping table, further includes:
acquiring the number of idle queues corresponding to the network card;
determining that the number of free queues is greater than or equal to the number of request queues.
3. The method of claim 2, wherein after obtaining the number of idle queues corresponding to the network card, the method further comprises:
and sending a prompt message of failure in establishing a new virtual network interface under the condition that the number of the idle queues is less than that of the request queues.
4. The method of claim 2, wherein traversing the queue state array corresponding to the network card, and sequentially determining the queues with the queue states in the idle state as queues to be allocated until the traversal of the queue state array is completed, or until the number of the queues to be allocated is equal to the number of the request queues, comprises:
sequentially acquiring the queue state corresponding to each queue in the queue state array;
determining the current queue as the queue to be allocated under the condition that the queue state corresponding to the current queue is an idle state;
and under the condition that the queue state corresponding to the current queue is the use state, skipping the current queue and acquiring the queue state corresponding to the next queue adjacent to the current queue in the queue state array until the number of the queues to be distributed is equal to the number of the request queues.
5. The method of claim 1, wherein the queue state array includes a correspondence between an identifier of each queue in the network card and a queue state, and the updating the queue state array and the number of idle queues according to the identifier of the queue to be allocated and the number of the queue to be allocated includes:
updating the queue state corresponding to the identifier of each queue to be allocated in the queue state array to a use state according to the identifier of the queue to be allocated, and associating the identifier of each queue to be allocated with the identifier of the virtual network interface to be created;
and determining the difference between the number of the idle queues and the number of the queues to be distributed as the updated number of the idle queues corresponding to the network card.
6. The method of any of claims 1-5, further comprising:
acquiring a virtual network interface deletion request corresponding to the network card, wherein the virtual network interface deletion request comprises an identifier of a virtual network interface to be deleted;
traversing the queue state array to obtain the corresponding relation between the identifier of each queue in the network card and the queue state and the incidence relation between the identifier of each queue and the identifier of the virtual network interface;
under the condition that the queue state corresponding to the current queue is the use state and the identifier of the current queue is associated with the identifier of the virtual network interface to be deleted, deleting the identifier of the current queue from the preset queue mapping table, updating the queue state corresponding to the current queue in the queue state array into an idle state, and adding one to the number of the idle queues;
and under the condition that the queue state corresponding to the current queue is an idle state or the identifier of the current queue is not associated with the identifier of the virtual network interface to be deleted, skipping the current queue and acquiring the corresponding relation between the identifier of the next queue in the queue state array and the queue state and the associated relation between the identifier of the next queue and the identifier of the virtual network interface until the queue state array is traversed completely.
7. The method of any of claims 1-5, further comprising:
acquiring a data packet sending request sent to the network card by a first application program, wherein the data packet sending request comprises a base address and an offset address corresponding to a first target queue in the preset queue mapping table;
acquiring the identifier of the first target queue from the preset queue mapping table according to the base address and the offset address corresponding to the first target queue;
acquiring a pointer and/or a storage address corresponding to a data packet to be sent from the first target queue according to the identifier of the first target queue;
and initiating a read operation to the first application program according to the pointer and/or the storage address corresponding to the data packet to be sent so as to acquire the data packet to be sent, and sending the data packet to be sent through a first virtual network interface corresponding to the first target queue.
8. The method of any of claims 1-5, further comprising:
acquiring a data packet to be received by a physical network interface of the network card;
analyzing the data packet to be received to determine an identifier of a second virtual network interface corresponding to the data packet to be received, and a base address and an offset address corresponding to a second target queue in the preset queue mapping table;
acquiring the identifier of the second target queue from a preset queue mapping table according to the base address and the offset address corresponding to the second target queue;
acquiring a pointer and/or a storage address corresponding to a data packet to be received from the second target queue according to the identifier of the second target queue;
and writing the data packet to be received into a memory according to the pointer and/or the storage address corresponding to the data packet to be received, and sending the data to be received to a second application program through a second virtual network interface corresponding to the second target queue.
9. A queue management device of a network card is characterized by comprising:
the device comprises a first acquisition module, a second acquisition module and a third acquisition module, wherein the first acquisition module is used for acquiring a virtual network interface creation request corresponding to a network card, and the virtual network interface creation request comprises an identifier of a virtual network interface to be created and the number of request queues corresponding to the virtual network interface to be created;
a first determining module, configured to determine, when the number of idle queues corresponding to the network card is greater than 0, a base address of the virtual network interface to be created in a preset queue mapping table according to the identifier of the virtual network interface to be created and the maximum number of queues supported by each virtual network interface corresponding to the network card;
the first traversal module is used for traversing the queue state array corresponding to the network card, and sequentially determining the queue with the queue state being an idle state as a queue to be distributed until the traversal of the queue state array is completed or until the number of the queues to be distributed is equal to the number of the request queues;
the filling module is used for sequentially filling the identifier of each queue to be distributed into a preset queue mapping table according to the base address of the virtual network interface to be created in the preset queue mapping table;
and the updating module is used for updating the queue state array and the number of the idle queues according to the identifiers of the queues to be distributed and the number of the queues to be distributed.
10. An electronic device, comprising: a memory, a processor and a program stored on the memory and executable on the processor, the processor implementing the method for queue management of a network card according to any one of claims 1-8 when executing the program.
11. A computer-readable storage medium on which a computer program is stored, the program, when executed by a processor, implementing a method for queue management of a network card according to any one of claims 1 to 8.
CN202110712574.1A 2021-06-25 2021-06-25 Network card queue management method and device and electronic equipment Active CN113438184B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110712574.1A CN113438184B (en) 2021-06-25 2021-06-25 Network card queue management method and device and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110712574.1A CN113438184B (en) 2021-06-25 2021-06-25 Network card queue management method and device and electronic equipment

Publications (2)

Publication Number Publication Date
CN113438184A CN113438184A (en) 2021-09-24
CN113438184B true CN113438184B (en) 2022-09-06

Family

ID=77754633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110712574.1A Active CN113438184B (en) 2021-06-25 2021-06-25 Network card queue management method and device and electronic equipment

Country Status (1)

Country Link
CN (1) CN113438184B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726657A (en) * 2022-03-21 2022-07-08 京东科技信息技术有限公司 Method and device for interrupt management and data receiving and sending management and intelligent network card
CN116795554B (en) * 2023-08-22 2023-11-17 无锡沐创集成电路设计有限公司 Virtual network card queue allocation method and readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102790777A (en) * 2012-08-07 2012-11-21 华为技术有限公司 Network interface adapter register method as well as drive equipment and server
CN102932174A (en) * 2012-10-25 2013-02-13 华为技术有限公司 Method, device and physical host for managing physical network card
CN103414535A (en) * 2013-07-31 2013-11-27 华为技术有限公司 Data sending method, data receiving method and relevant devices
CN112003797A (en) * 2020-07-16 2020-11-27 苏州浪潮智能科技有限公司 Method, system, terminal and storage medium for improving performance of virtualized DPDK network

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147517A (en) * 2017-03-24 2017-09-08 上海交通大学 A kind of adaptive polo placement resource allocation methods for virtual network function

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102790777A (en) * 2012-08-07 2012-11-21 华为技术有限公司 Network interface adapter register method as well as drive equipment and server
CN102932174A (en) * 2012-10-25 2013-02-13 华为技术有限公司 Method, device and physical host for managing physical network card
CN103414535A (en) * 2013-07-31 2013-11-27 华为技术有限公司 Data sending method, data receiving method and relevant devices
CN112003797A (en) * 2020-07-16 2020-11-27 苏州浪潮智能科技有限公司 Method, system, terminal and storage medium for improving performance of virtualized DPDK network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多核架构和多收发队列的高速捕包模型研究;齐战胜 等;《网络安全技术与应用》;20131231;第63-70页 *

Also Published As

Publication number Publication date
CN113438184A (en) 2021-09-24

Similar Documents

Publication Publication Date Title
US7730259B2 (en) Method, computer and system for managing a storage subsystem configuration
CN111078147B (en) Processing method, device and equipment for cache data and storage medium
US9998532B2 (en) Computer-based, balanced provisioning and optimization of data transfer resources for products and services
CN109710190B (en) Data storage method, device, equipment and storage medium
CN113438184B (en) Network card queue management method and device and electronic equipment
JP2016531349A (en) Virtual disk blueprint for virtualized storage area networks
US20220263711A1 (en) Acceleration Resource Scheduling Method and Apparatus, and Acceleration System
CN111597148B (en) Distributed metadata management method for distributed file system
CN109656889B (en) File system implementation method, device, equipment and storage medium based on block chain
CN112346647B (en) Data storage method, device, equipment and medium
CN111679911B (en) Management method, device, equipment and medium of GPU card in cloud environment
CN109857545B (en) Data transmission method and device
CN111917587A (en) Method for network service management by using service system and service system
US11416176B2 (en) Function processing using storage controllers for load sharing
CN110706148B (en) Face image processing method, device, equipment and storage medium
CN109271193B (en) Data processing method, device, equipment and storage medium
CN111651286A (en) Data communication method, device, computing equipment and storage medium
CN110162395B (en) Memory allocation method and device
CN114510321A (en) Resource scheduling method, related device and medium
CN117608856A (en) Memory expansion method, system, terminal and storage medium for NVMe (network video Me) acceleration card
CN112035460A (en) Identification distribution method, device, equipment and storage medium
CN112583868A (en) Backup method, device, equipment and medium for cloud storage data
CN112948336B (en) Data acceleration method, cache unit, electronic device and storage medium
CN114726657A (en) Method and device for interrupt management and data receiving and sending management and intelligent network card
US11893407B2 (en) Overlay container storage driver for microservice workloads

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231225

Address after: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Patentee after: Jingdong Technology Information Technology Co.,Ltd.

Address before: 100176 room 1004, 10th floor, building 1, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee before: Beijing Huijun Technology Co.,Ltd.