Cross-card link aggregation method, device, and medium for data processor virtual port

The cross-card link aggregation method for DPU virtual ports addresses the single point failure issue by enabling communication through multiple links, ensuring high availability and preventing network disconnections.

JP7681741B2Active Publication Date: 2025-05-22YUSUR TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024012120
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-01-30
Filing Date
2024-01-30
Publication Date
2025-05-22
Estimated Expiration
2044-01-30

AI Technical Summary

Technical Problem

The existing DPU card setup has a single point of failure issue, where all VF traffic must pass through a single DPU card, leading to network disconnection and unguaranteed high availability in case of hardware failure.

Method used

Implement a cross-card link aggregation method for DPU virtual ports, where multiple data processors are connected to virtual machines and switches, enabling link negotiation, data message communication, and aggregation across multiple communication links to bypass single point failures.

Benefits of technology

This solution ensures high availability by allowing messages to be communicated through multiple communication links, thereby avoiding network interruptions caused by single point failures in the DPU card.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007681741000001
    Figure 0007681741000001
  • Figure 0007681741000002
    Figure 0007681741000002
  • Figure 0007681741000003
    Figure 0007681741000003
Patent Text Reader

Abstract

To provide a cross card link aggregation method of a DPU virtual port, a device, and a medium, capable of securing high availability by avoiding a problem of network interruption caused by single point of failure.SOLUTION: A method includes the steps of: providing a plurality of data processors, each of which is communicatively communicated to a virtual machine and a switch, respectively; performing link negotiation for the virtual machine and the switch, respectively; acquiring a to-be-communicated data message; In addition, determining a communication link for the to-be-communicated data message, where the communication link is a message channel between a virtual port on the virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an up-link port corresponding to a physical port on the data processor, a physical port on the data processor, and a message path between the switches; and communicating the to-be-communicated message via the communication link.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to the field of computer technology, and in particular to a method, device, apparatus and medium for cross-card link aggregation of a DPU virtual port. [Background technology]

[0002] Data Processing Unit (DPU) is a next-generation computing chip that is data-centric, I / O-intensive, and adopts the software-defined technology path to support the virtualization of infrastructure resource layer, improve computing system efficiency, reduce the total cost of ownership of the entire system, improve data processing performance, and reduce the performance loss of other computing chips.

[0003] Currently, the DPU card divides one physical port (MAC port) into multiple virtual ports (Virtual Functions, VFs) for use by virtual machines (VMs) running on the host machine. Each VF has a corresponding virtual port proxy (Virtual Function representor, VF rep), forming a (VF, VF rep) set, and the VF rep is used to send messages to the virtual switch (Open vSwitch, OVS). The MAC port also has a corresponding uplink port (uplink), forming a (MAC, uplink) set, and the uplink is also used to send messages to the OVS. The OVS processes and distributes the messages that pass through.

[0004] In the conventional technology, there is only one DPU card, and the VFs on each VM belong to one DPU card. The traffic of all VFs must pass through the DPU card, so there is a single point of failure problem. Once a hardware failure occurs in the DPU card, the network will be disconnected and high availability cannot be guaranteed. Summary of the Invention [Problem to be solved by the invention]

[0005] To solve the above problems, the present disclosure provides a method, device and medium for cross-card link aggregation of DPU virtual ports, to avoid the problem of network interruption caused by a single point failure, thereby ensuring high availability. [Means for solving the problem]

[0006] One or more embodiments of the present disclosure provide a cross-card link aggregation method for a DPU virtual port, where each data processor is communicatively connected to a virtual machine and a switch, and the method includes: performing link negotiation with the virtual machine and the switch, respectively; Obtaining a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier, and a message type; determining a communication link for the data message to be communicated, the communication link being a virtual port on a virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on a data processor, a physical port on the data processor, and a message path between the switch; and communicating said data message over said communication link.

[0007] In some embodiments, the step of performing link negotiation between the virtual machine and the switch includes: Obtaining a first negotiation message sent by the virtual machine and a second negotiation message sent by the switch; forwarding the first negotiation message and the second negotiation message to a link aggregation controller based on a virtual switch; The method includes processing the first negotiation message and the second negotiation message by the link aggregation controller, feeding back a first response protocol message to a virtual machine, and feeding back a second response protocol message to a switch.

[0008] In some embodiments, feeding back a first response protocol message to the virtual machine and feeding back a second response protocol message to the switch includes: sending the first response protocol message and the second response protocol message to the virtual switch; forwarding the first response protocol message by the virtual switch to a virtual machine; and forwarding the second response protocol message to the virtual switch.

[0009] In some embodiments, the data message to be communicated comprises: The data message includes at least one of a first data message sent by the virtual machine and a second data message sent by the switch.

[0010] In some embodiments, obtaining the data message to be communicated comprises: Sending the data message to be communicated to a virtual switch by a virtual port proxy corresponding to a virtual port on a virtual machine; or sending the data message to be communicated to the virtual switch via an uplink port corresponding to a physical port on a data processor; Obtaining a data message to be communicated based on the virtual switch.

[0011] In some embodiments, said establishing a communication link for said data message to be communicated comprises: Obtaining a correspondence relationship between a preset target side identifier and a preset communication link; and determining, from the correspondence relationship, a communication link corresponding to a target side identifier in the data message to be communicated.

[0012] In some embodiments, said communicating said data message over said communication link comprises: obtaining the target side identifier from the data message to be communicated by the virtual switch; forwarding the data message to be communicated by the virtual switch over the communication link to a target side corresponding to the target side identifier.

[0013] One or more embodiments of the present disclosure provide a cross-card link aggregation device for a DPU virtual port, wherein each data processor is communicatively connected to a virtual machine and a switch, and the device includes: a negotiation module for performing link negotiation on the virtual machine and the switch, respectively; an acquisition module for acquiring a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier, and a message type; A determination module for determining a communication link of the data message to be communicated, the communication link being a virtual port on a virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on a data processor, a physical port on the data processor, and a message path between the switch; a communication module for communicating the data message to be communicated over the communication link.

[0014] One or more embodiments of the present disclosure provide an electronic device including a memory, a processor, and a computer program, the computer program being stored in the memory and configured to be executed by the processor to implement a method according to a first aspect.

[0015] One or more embodiments of the present disclosure provide a computer-readable storage medium having stored thereon a computer program, the computer program being executed by a processor to implement the method according to the first aspect.

[0016] One or more embodiments of the present disclosure further provide a computer program product including a computer program or instructions, which when executed by a processor, implements the method according to the first aspect.

[0017] The embodiment of the present disclosure provides a method, device, equipment, and medium for DPU virtual port cross-card link aggregation, by installing multiple data processors, each data processor is communicatively connected between a virtual machine and a switch, and each virtual machine and switch perform link negotiation to obtain a data message to be communicated, the data message to be communicated includes a target side identifier, a source side identifier, and a message type, and a communication link for the data message to be communicated is determined, and the communication link is a virtual port on a virtual machine, a virtual port proxy corresponding to a virtual port on a virtual machine, an uplink port corresponding to a physical port on a data processor, a physical port on a data processor, and a message passage between the switch, and the data message to be communicated is communicated through the communication link. Since multiple data processors are installed and each data processor is communicatively connected between a virtual machine and a switch, a message can be communicated through multiple communication links, and the problem of network interruption caused by a single point of failure can be avoided, thereby ensuring high availability. [Brief description of the drawings]

[0018] The drawings herein, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure.

[0019] In order to more clearly describe the technical solutions in the embodiments or prior art of the present disclosure, the following briefly describes drawings required in the description of the embodiments or prior art, and it is obvious that those skilled in the art can also obtain other drawings based on these drawings without any creative efforts.

[0020]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

[0021] In order to make the above objectives, features and advantages of the present disclosure more clearly comprehensible, the technical solutions of the present disclosure are further described below. It should be noted that the embodiments and features in the embodiments of the present disclosure may be combined with each other without contradiction.

[0022] In the following description, many specific details are set forth in order to provide a thorough understanding of the present disclosure. However, the present disclosure may be practiced in ways other than those described herein. It is apparent that the embodiments in the specification are only some of the embodiments of the present disclosure, not all of them.

[0023] The data processor is centered around data, is I / O intensive, adopts a software-defined technology path, supports the virtualization of the infrastructure resource layer, improves the computing system efficiency, reduces the total cost of ownership of the entire system, improves the data processing performance, and reduces the performance loss of other computing chips. It is equipped with a next-generation computing chip.

[0024] Currently, the DPU card divides one physical port (MAC port) into multiple virtual ports (Virtual Function, VF) for use by virtual machines (VM) running on the host machine. Each VF has a corresponding virtual port proxy (Virtual Function representor, VF rep), forming a (VF, VF rep) set. The VF rep is used to send messages to the virtual switch (Openv Switch, OVS). The MAC port also has a corresponding uplink port, forming a (MAC, uplink) set. The uplink is also used to send messages to the OVS. The OVS processes and distributes the passed messages.

[0025] In the prior art, there is only one DPU card, and the VFs on each VM belong to one DPU card. Since all the traffic of the VFs needs to pass through the DPU card, there is a problem of single point of failure. Once a hardware failure occurs in the DPU card, the network will be disconnected and high availability cannot be guaranteed. In response to this problem, the embodiments of the present disclosure provide a cross-card link aggregation method for DPU virtual ports, and this method will be described below in connection with specific embodiments.

[0026] 1 is a flow chart of a method for cross-card link aggregation of a DPU virtual port provided by an embodiment of the present disclosure, the method can be applied to electronic devices such as computers, notebook computers, etc., the method can be applied to the scenario of message communication based on multiple data processors, and the problem of network interruption caused by single point failure can be avoided, so as to ensure high availability. It should be understood that the method for cross-card link aggregation of a DPU virtual port provided by an embodiment of the present disclosure can also be applied to other scenarios.

[0027] Next, referring to FIG. 2, a cross-card link aggregation method of the DPU virtual port shown in FIG. 1 is introduced, which includes the following steps:

[0028] S101, each of which performs link negotiation with a virtual machine and a switch.

[0029] In some alternative embodiments, at least two data processors are disposed in the electronic device, and each data processor is communicatively connected between the virtual machine and the switch. By using the VF passage through the two DPU cards for the VM, a logical (bond) port is formed inside the VM, and at the same time, the physical port links on the two DPU cards are aggregated to jointly transmit and receive network traffic. In this step, as shown in FIG. 2, the electronic device performs link negotiation for the virtual machine and the switch, respectively, that is, performs dynamic negotiation for the bond between the DPU and the VM, or the bond between the DPU and the switch. For example, the negotiation is performed by sending a negotiation message and feeding back the negotiation message. After the negotiation, the switch can send a data message through two paths, and the VM can receive a data message through two paths. Similarly, a message from the VM also reaches the switch through two paths.

[0030] The aggregation of multiple network ports, i.e. link aggregation, forms a logical port (bond port), which realizes load balancing of inbound / outbound traffic throughput at each member port. If a failure is detected in the link of one of the member ports, the port stops sending messages and recalculates the sending port of messages to the remaining links according to the load balancing policy. After the failed port is restored, it takes over the sending and receiving ports again. Link aggregation can increase link bandwidth, link redundancy, etc.

[0031] S102, obtaining a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier and a message type.

[0032] The electronic device obtains a data message to be communicated, and the data message to be communicated includes a target side identifier, a source side identifier, and a message type. The data message to be communicated may be from the switch and sent to the virtual machine, or may be from the virtual machine and sent to the switch. The data message to be communicated includes a target side identifier, a source side identifier, and a message type. The message type is divided into a negotiation message, a data message, etc. The source side identifier represents an identifier of a sender of the data message to be communicated, and the target side identifier represents an identifier of a receiver of the data message to be communicated.

[0033] S103: determining a communication link for the data message to be communicated, the communication link being a virtual port on a virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on a data processor, a physical port on the data processor, and a message path between the switches.

[0034] At least two data processors are arranged in the electronic device, each data processor is connected to a virtual machine and a switch, and the paths for multiple VFs in a VM to send and receive messages belong to different DPU cards, forming multiple links. In this embodiment, the electronic device determines the communication link of the data message to be communicated. The communication link is a message path between a virtual port on the virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on the data processor, a physical port on the data processor, and a switch. As shown in FIG. 5, the message path is bidirectional, that is, a data message can be transmitted from a virtual port on a virtual machine to a virtual port proxy corresponding to a virtual port on a virtual machine, to an uplink port corresponding to a physical port on the data processor, to a physical port on the data processor, and finally to the switch, and a data message can be transmitted from the switch to a physical port on the data processor, an uplink port corresponding to a physical port on the data processor, to a virtual port proxy corresponding to a virtual port on a virtual machine, and finally to a virtual port on a virtual machine.

[0035] S104, communicating the data message to be communicated over the communication link.

[0036] In this embodiment, the electronic device communicates the data message to be communicated based on the communication link. At least two data processors are arranged in the electronic device, and each data processor is communicatively connected to a virtual machine and a switch, and the paths through which multiple VFs in a VM send and receive messages belong to different DPU cards, forming multiple links. Messages can be communicated through multiple communication links, thereby solving the problem of single point failure that exists in the prior art.

[0037] In some embodiments, a user can configure a virtual port on a virtual machine to be load balanced, and the virtual machine balances and sends the load across multiple VFs according to the load balancing configuration. In some embodiments, a user can configure traffic for a virtual port on a virtual machine, and the virtual machine balances and sends the traffic across multiple VFs based on the traffic configuration.

[0038] In some embodiments, a user can configure a network port on a switch for load balancing, and the switch balances and sends the load across multiple VFs according to the load balancing configuration. In some embodiments, a user configures traffic for a network port on a switch, and the switch balances and sends the traffic across multiple VFs according to the traffic configuration.

[0039] In the embodiment of the present disclosure, by installing multiple data processors, each data processor is communicatively connected between a virtual machine and a switch, and each performs link negotiation with the virtual machine and the switch to obtain a data message to be communicated, the data message to be communicated includes a target side identifier, a source side identifier, and a message type, and a communication link for the data message to be communicated is determined, the communication link is a virtual port on the virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on the data processor, a physical port on the data processor, and a message passage between the switch, and the data message to be communicated is communicated through the communication link. Since multiple data processors are installed and each data processor is communicatively connected between the virtual machine and the switch, a message can be communicated through multiple communication links, and the problem of network interruption caused by a single point of failure can be avoided, thereby ensuring high availability.

[0040] FIG. 3 is a flowchart of a cross-card link aggregation method for a DPU virtual port provided in another embodiment of the present disclosure. As shown in FIG. 3, the method includes the following steps:

[0041] S301, obtaining a first negotiation message sent by a virtual machine and a second negotiation message sent by a switch.

[0042] The electronic device receives a first negotiation message sent by the virtual machine and a second negotiation message sent by the switch. As shown in Fig. 2, the first negotiation message sent by the virtual machine at a fixed time, the second negotiation message sent by the switch at a fixed time, the virtual switch in the electronic device receives the first negotiation message sent by the virtual machine and the second negotiation message sent by the switch. The first negotiation message includes the status information, source side identifier, and target side identifier of each virtual port of the virtual machine, and the second negotiation message includes the status information, source side identifier, and target side identifier of each physical port of the switch.

[0043] S302, forwarding the first negotiation message and the second negotiation message to a link aggregation controller by a virtual switch.

[0044] After obtaining the first negotiation message sent by the virtual machine and the second negotiation message sent by the switch, the electronic device forwards the first negotiation message and the second negotiation message to a link aggregation controller by the virtual switch.

[0045] S303, processing the first negotiation message and the second negotiation message by the link aggregation controller, and feeding back a first response protocol message to a virtual machine and feeding back a second response protocol message to a switch.

[0046] Furthermore, the electronic device processes the first negotiation message and the second negotiation message through the link aggregation controller, and feeds back a first response protocol message to the virtual machine and feeds back a second response protocol message to the switch. As shown in Fig. 2, negotiation messages from the switch bond and the virtual port bond are all sent to the link aggregation controller for unified processing, and the link aggregation controller feeds back a first response protocol message to the virtual machine and feeds back a second response protocol message to the switch.

[0047] In some embodiments, feeding back the first response protocol message to the virtual machine and feeding back the second response protocol message to the switch in S303 includes, but is not limited to, S3031, S3032, and S3033.

[0048] S3031, sending the first response protocol message and the second response protocol message to the virtual switch.

[0049] As shown in Fig. 2, a link aggregation controller in an electronic device transmits the first response protocol message and the second response protocol message to the virtual switch (Open vSwitch, OVS). The virtual switch plays a role of forwarding messages and corresponds to a message relay station.

[0050] S3032, forwarding the first response protocol message to a virtual machine by the virtual switch.

[0051] After receiving the first response protocol message, the virtual switch in the electronic device forwards the first response protocol message to the virtual machine.

[0052] S3033, forwarding the second response protocol message to a switch by the virtual switch.

[0053] After receiving the second response protocol message, the virtual switch in the electronic device forwards the second response protocol message to the virtual machine.

[0054] S304, obtaining a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier and a message type.

[0055] Specifically, the implementation process and principles of S304 and S102 are the same, so the explanation is omitted here.

[0056] In some embodiments, the data message to be communicated includes at least one of a first data message sent by a virtual machine and a second data message sent by a switch, i.e., the data message to be communicated may be the first data message sent by the virtual machine or the second data message sent by the switch.

[0057] S305, obtaining a correspondence between a preset target side identifier and a preset communication link.

[0058] In some embodiments, the electronic device stores a correspondence between a preset target side identifier and a preset communication link, and the electronic device obtains the correspondence between the preset target side identifier and the preset communication link, and the target side identifier corresponds to one or more communication links, that is, a message can be communicated through multiple communication links, thereby solving the problem of single point failure existing in the prior art.

[0059] S306, determining a communication link corresponding to the target side identifier in the data message to be communicated from the correspondence relationship.

[0060] After obtaining the correspondence relationship between the preset target side identifier and the preset communication link, the electronic device can determine the communication link corresponding to the target side identifier in the data message to be communicated from the correspondence relationship.

[0061] S307, communicating the data message to be communicated via the communication link.

[0062] Specifically, the implementation process and principles of S307 and S104 are the same, so the explanation is omitted here.

[0063] The embodiment of the present disclosure obtains a first negotiation message sent by a virtual machine and a second negotiation message sent by a switch, transfers the first negotiation message and the second negotiation message to a link aggregation controller by a virtual switch, processes the first negotiation message and the second negotiation message by the link aggregation controller, and feeds back a first response protocol message to the virtual machine and a second response protocol message to the switch.Furthermore, the embodiment of the present disclosure obtains a data message to be communicated, includes a target side identifier, a source side identifier, and a message type in the data message to be communicated, obtains a correspondence relationship between a preset target side identifier and a preset communication link, and determines a communication link corresponding to the target side identifier in the data message to be communicated from the correspondence relationship.Furthermore, the embodiment of the present disclosure communicates the data message to be communicated by the communication link.Since a plurality of data processors are provided and each data processor is communicatively connected between a virtual machine and a switch, a message can be communicated by a plurality of communication links, and the problem of network interruption caused by a single point of failure can be avoided, thereby ensuring high availability.

[0064] FIG. 4 is a flowchart of a cross-card link aggregation method for a DPU virtual port provided in another embodiment of the present disclosure. As shown in FIG. 4, the method includes the following steps:

[0065] S401, each of which performs link negotiation with a virtual machine and a switch.

[0066] Specifically, the implementation process and principles of S401 and S101 are the same, so the explanation will be omitted here.

[0067] S402, sending the data message to be communicated to a virtual switch by a virtual port proxy corresponding to a virtual port on a virtual machine.

[0068] As shown in FIG. 5, the electronic device transmits the data message to be communicated to the virtual switch (OVS) through a virtual port proxy (VF rep) corresponding to a virtual port on a virtual machine.

[0069] S403, sending the data message to be communicated to the virtual switch via an uplink port corresponding to a physical port on a data processor.

[0070] As shown in FIG. 5, the electronic device transmits the data message to be communicated to the virtual switch (OVS) through an uplink port (uplink) corresponding to a physical port on a data processor.

[0071] S404, obtaining a data message to be communicated by the virtual switch.

[0072] Furthermore, the electronic device obtains a data message to be communicated from the virtual switch.

[0073] S405: determining a communication link for the data message to be communicated, the communication link being a virtual port on a virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on a data processor, a physical port on the data processor, and a message path between the switches.

[0074] Specifically, the implementation process and principles of S405 and S103 are the same, so the explanation is omitted here.

[0075] S406, obtaining the target side identifier from the data message to be communicated by the virtual switch.

[0076] A virtual switch in the electronic device can obtain the target side identifier from the data message to be communicated.

[0077] S407, forwarding the data message to be communicated by the virtual switch through the communication link to a target side corresponding to the target side identifier.

[0078] After obtaining the target side identifier, the virtual switch in the electronic device forwards the data message to be communicated to the target side corresponding to the target side identifier through the communication link, thereby realizing message communication.

[0079] The embodiment of the present disclosure performs link negotiation between the virtual machine and the switch, sends the data message to be communicated to the virtual switch through a virtual port proxy corresponding to a virtual port on the virtual machine, sends the data message to be communicated to the virtual switch through an uplink port corresponding to a physical port on the data processor, and obtains the data message to be communicated by the virtual switch. Further, a communication link of the data message to be communicated is determined, the communication link being a message path between a virtual port on the virtual machine, a virtual port proxy corresponding to a virtual port on the virtual machine, an uplink port corresponding to a physical port on the data processor, a physical port on the data processor, and a switch. Then, obtains the target side identifier from the data message to be communicated by the virtual switch. Then, forwards the data message to be communicated to the target side corresponding to the target side identifier by the virtual switch through the communication link. The present disclosure solves the problem of single point failure in the prior art, and when one DPU card fails, another DPU card can take over the traffic of the failed card. The present disclosure uses cross-card virtual port link aggregation of DPU to eliminate single point hardware failure and improve high availability of production environment.

[0080] 6 is a structural schematic diagram of a DPU virtual port cross-card link aggregation device provided by an embodiment of the present disclosure. The DPU virtual port cross-card link aggregation device may be the electronic device of the above embodiment, and the DPU virtual port cross-card link aggregation device may be a member or component in the electronic device. The DPU virtual port cross-card link aggregation device provided by the embodiment of the present disclosure can execute the processing flow provided by the embodiment of the DPU virtual port cross-card link aggregation method. As shown in FIG. 6, the DPU virtual port cross-card link aggregation device 60 includes a negotiation module 61, an acquisition module 62, a determination module 63 and a communication module 64. Here, the negotiation module 61 is used to perform link negotiation with the virtual machine and the switch, respectively; the acquisition module 62 is used to acquire a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier, and a message type; the determination module 63 is used to determine a communication link of the data message to be communicated, the communication link being a virtual port on a virtual machine, a virtual port proxy corresponding to a virtual port on a virtual machine, an uplink port corresponding to a physical port on a data processor, a physical port on a data processor, and a message path between the switch; and the communication module 64 is used to communicate the data message to be communicated via the communication link.

[0081] Optionally, when the negotiation module 61 performs link negotiation with a virtual machine and a switch respectively, specifically, it acquires a first negotiation message sent by the virtual machine and a second negotiation message sent by the switch, transfers the first negotiation message and the second negotiation message to a link aggregation controller by the virtual switch, processes the first negotiation message and the second negotiation message by the link aggregation controller, and is used to feedback a first response protocol message to the virtual machine and a second response protocol message to the switch.

[0082] Optionally, when the negotiation module 61 feedbacks a first response protocol message to the virtual machine and a second response protocol message to the switch, specifically, it sends the first response protocol message and the second response protocol message to the virtual switch, and the virtual switch is used to transfer the first response protocol message to the virtual machine and transfer the second response protocol message to the switch.

[0083] Optionally, the data message to be communicated includes at least one of a first data message sent by the virtual machine and a second data message sent by the switch.

[0084] Optionally, when the acquisition module 62 acquires a data message to be communicated, specifically, it sends the data message to be communicated to the virtual switch by a virtual port proxy corresponding to a virtual port on the virtual machine, or sends the data message to be communicated to the virtual switch by an uplink port corresponding to a physical port on the data processor, and the virtual switch is used to acquire the data message to be communicated.

[0085] Optionally, when the determination module 63 determines a communication link of the data message to be communicated, it is specifically used to obtain a correspondence relationship between a preset target side identifier and a preset communication link, and determine a communication link corresponding to the target side identifier in the data message to be communicated from the correspondence relationship.

[0086] Optionally, when communicating the data message to be communicated via the communication link, the communication module 64 is specifically used to obtain the target side identifier from the data message to be communicated via the virtual switch, and forward the data message to be communicated via the communication link to a target side corresponding to the target side identifier via the virtual switch.

[0087] The embodiment of the DPU virtual port cross-card link aggregation device shown in FIG. 6 can be used to implement the technical solution of the embodiment of the method described above, and the implementation principle and technical effect are similar, so they will not be described in further detail here.

[0088] FIG. 7 is a structural schematic diagram of an electronic device provided by an embodiment of the present disclosure. The electronic device may be a terminal such as a computer, a notebook, or an in-vehicle computer. The electronic device provided by the embodiment of the present disclosure can execute the processing flow provided by the embodiment of the cross-card link aggregation method of the DPU virtual port, and as shown in FIG. 7, the electronic device 80 includes a memory 81, a processor 82, a computer program, and a communication interface 83. Here, the computer program is stored in the memory 81 and configured to execute the above-described cross-card link aggregation method of the DPU virtual port by the processor 82.

[0089] In addition, an embodiment of the present disclosure further provides a computer-readable recording medium storing a computer program, the computer program being executed by a processor to realize the cross-card link aggregation method of the DPU virtual port described in the above embodiment.

[0090] In addition, the embodiments of the present disclosure further provide a computer program product including a computer program or instructions, which, when executed by a processor, realizes the above-described cross-card link aggregation method of a DPU virtual port.

[0091] It should be noted that the above-mentioned computer-readable storage medium of the present disclosure may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. The computer-readable medium may be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples of computer-readable storage medium may include, but are not limited to, 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 disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, the computer-readable storage medium may be any tangible medium that contains or has stored thereon a program, which can be used by or in combination with an instruction execution system, apparatus, or device. In the present disclosure, the computer-readable signal medium may include a data signal propagating in baseband or as part of a carrier wave, on which computer-readable program code is borne. Such propagated data signals can take a variety of forms, including, but not limited to, electromagnetic signals, optical signals, or any suitable combination of the above. Also, the computer-readable signal medium may be any computer-readable medium other than a computer-readable storage medium, which can transmit, propagate, or transmit a program for use by or in combination with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted over any suitable medium, including, but not limited to, wire, fiber optic cable, RF (radio frequency), etc., or any suitable combination of the above.

[0092] In some embodiments, the clients and servers may communicate using any network protocol now known or later developed, such as Hyper Text Transfer Protocol (HTTP), and may interconnect with any form or medium of digital data communication (e.g., a communications network). Examples of communications networks include local area networks (LANs), wide area networks (WANs), the Internet (e.g., the Internet), and end-to-end networks (e.g., ad-hoc end-to-end networks), and networks now known or later developed.

[0093] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated in the electronic device.

[0094] The computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: performing link negotiation with the virtual machine and the switch, respectively; Obtaining a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier, and a message type; determining a communication link for the data message to be communicated, the communication link being a virtual port on a virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on a data processor, a physical port on the data processor, and a message path between the switch; communicating said data message to be communicated over said communication link.

[0095] In addition, the electronic device can also perform other steps in the above-mentioned DPU virtual port cross-card link aggregation method.

[0096] Computer program code for carrying out the operations of the present disclosure can be written in one or more programming languages ​​or combinations thereof, including but not limited to object-oriented programming languages ​​such as Java, Smalltalk, C++, and the like, as well as traditional procedural programming languages ​​such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. When a remote computer is involved, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or can be connected to an external computer (e.g., connecting via the Internet using an Internet Service Provider).

[0097] The flowcharts and block diagrams in the drawings illustrate possible architectures, functions and operations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, program segment or part of code, including one or more executable instructions for implementing a given logical function. It should also be noted that in some alternative implementations, the functions described in the blocks may occur in a different order than that described in the drawings. For example, two consecutive blocks may actually be executed essentially in parallel, or may be executed in the reverse order depending on the function. It should be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams may be implemented in a dedicated hardware-based system that executes a given function or operation, or may be implemented in a combination of dedicated hardware and computer instructions.

[0098] In addition, the units in the embodiments of the present disclosure may be realized by software or hardware, and the names of the units do not necessarily constitute limitations on the units themselves, in some cases.

[0099] The functions described herein above may be performed at least in part by one or more hardware logic components, including, but not limited to, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.

[0100] In the context of this disclosure, a machine-readable medium may be a tangible medium, which may include or store a program for use in or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the above. More specific examples of machine-readable storage media include an electrical connection with one or more leads, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0101] It should be noted that, in this specification, relational terms such as first and second are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply that these actual relationships or sequences exist between these entities or operations. Also, the terms "comprise", "comprises" and other variations are meant to cover a non-exclusive inclusion, such that a process, method, article or device that includes a set of elements includes not only those elements, but also other elements not expressly listed or that are inherent to the process, method, article or device. In the absence of further limitations, an element defined by the phrase "including a ..." does not exclude the presence of other identical elements in the process, method, article or device that includes the above-mentioned element.

[0102] The above description is merely specific embodiments of the present disclosure, so that those skilled in the art can understand or practice the present disclosure. Although various modifications to these examples will be apparent to those skilled in the art, the general principles defined herein can be implemented in other examples without departing from the spirit or scope of the present disclosure. Thus, the present disclosure is not limited to these examples described herein, but rather should be accorded the widest scope consistent with the principles and novel features disclosed herein.

[0103] (Additional Note) (Appendix 1) A method for cross-card link aggregation of virtual ports of data processors, each of the data processors being communicatively connected to a virtual machine and a switch, the method comprising: performing link negotiation with the virtual machine and the switch, respectively; Obtaining a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier, and a message type; determining a communication link for the data message to be communicated, the communication link being a virtual port on the virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on the data processor, a physical port on the data processor, and a message path between the switch; and communicating said data message to be communicated over said communications link.

[0104] (Appendix 2) Obtaining a first negotiation message sent by the virtual machine and a second negotiation message sent by the switch; forwarding the first negotiation message and the second negotiation message to a link aggregation controller based on the virtual switch; The method of claim 1, further comprising: processing the first negotiation message and the second negotiation message by the link aggregation controller; and feeding back a first response protocol message to the virtual machine and feeding back a second response protocol message to the switch.

[0105] (Appendix 3) feeding back a first response protocol message to the virtual machine and feeding back a second response protocol message to the switch sending the first response protocol message and the second response protocol message to a virtual switch; forwarding the first response protocol message by the virtual switch to the virtual machine; and forwarding the second response protocol message to the switch by the virtual switch.

[0106] (Appendix 4) The data message to be communicated is 2. The method of claim 1, comprising at least one of a first data message sent by the virtual machine and a second data message sent by the switch.

[0107] (Appendix 5) The obtaining of the data message to be communicated includes: Sending the data message to a virtual switch via a virtual port proxy corresponding to a virtual port on the virtual machine; or sending the data message to be communicated to the virtual switch via an uplink port corresponding to a physical port on the data processor; 2. The method of claim 1, further comprising obtaining a data message to be communicated based on the virtual switch.

[0108] (Appendix 6) Determining a communication link for the data message to be communicated includes: Obtaining a correspondence relationship between a preset target side identifier and a preset communication link; The method of claim 1, further comprising determining a communication link corresponding to a target side identifier in the data message to be communicated from the correspondence relationship.

[0109] (Appendix 7) said communicating said data message based on said communication link comprises: obtaining the target side identifier from the data message to be communicated by a virtual switch; 2. The method of claim 1, further comprising forwarding the data message to be communicated by the virtual switch via the communication link to a target side corresponding to the target side identifier.

[0110] (Appendix 8) An electronic device, Memory, A processor; and a computer program, An electronic device configured to store the computer program in the memory and to be executed by the processor to implement a method according to any one of claims 1 to 7.

[0111] (Appendix 9) A computer-readable recording medium having a computer program stored thereon, the computer program implementing the method according to any one of claims 1 to 7 when executed by a processor.

Claims

1. A method for cross-card link aggregation of virtual ports of data processors, each of the data processors being communicatively connected to a virtual machine and a switch, the method comprising: performing link negotiation with the virtual machine and the switch, respectively; Obtaining a data message to be communicated, the data message to be communicated including a target side identifier, a source side identifier, and a message type; determining a communication link for the data message to be communicated, the communication link being a virtual port on the virtual machine, a virtual port proxy corresponding to the virtual port on the virtual machine, an uplink port corresponding to a physical port on the data processor, a physical port on the data processor, and a message path between the switch; communicating the data message to be communicated over the communication link; Determining a communication link for the data message to be communicated includes: Obtaining a correspondence relationship between a preset target side identifier and a preset communication link; determining, from the correspondence relationship, a communication link corresponding to a target side identifier in the data message to be communicated.

2. Obtaining a first negotiation message sent by the virtual machine and a second negotiation message sent by the switch; forwarding the first negotiation message and the second negotiation message to a link aggregation controller based on a virtual switch; 2. The method of claim 1, further comprising: processing the first negotiation message and the second negotiation message by the link aggregation controller; and feeding back a first response protocol message to the virtual machine and feeding back a second response protocol message to the switch.

3. The feeding back a first response protocol message to the virtual machine and feeding back a second response protocol message to the switch includes: sending the first response protocol message and the second response protocol message to the virtual switch; forwarding the first response protocol message by the virtual switch to the virtual machine; and forwarding the second response protocol message by the virtual switch to the switch.

4. The data message to be communicated is The method of claim 1 , further comprising at least one of a first data message sent by the virtual machine and a second data message sent by a switch.

5. The obtaining of the data message to be communicated includes: Sending the data message to a virtual switch via a virtual port proxy corresponding to a virtual port on the virtual machine; or sending the data message to be communicated to the virtual switch via an uplink port corresponding to a physical port on the data processor; The method of claim 1 , further comprising obtaining a data message to be communicated based on the virtual switch.

6. said communicating said data message based on said communication link comprises: obtaining the target side identifier from the data message to be communicated by a virtual switch; 2. The method of claim 1, further comprising: forwarding, by said virtual switch, said data message to be communicated over said communication link to a target side corresponding to said target side identifier.

7. An electronic device, Memory, A processor; and a computer program, An electronic device, the computer program being stored in the memory and configured to be executed by the processor to implement the method according to any one of claims 1 to 6.

8. A computer-readable recording medium having a computer program stored thereon, the computer program implementing the method according to any one of claims 1 to 6 when executed by a processor.

Citation Information

Patent Citations

  • Flow table processing method and related equipment

    CN114531405A

  • Implementation of protocol in virtual link aggregate group

    US20150110105A1

  • Link Management Method, Device and System in Virtual Machine Environment

    US20170346680A1

  • Intelligent connection placements on SR-IOV virtual functions

    US20220050698A1