Image offloading systems, devices, and clusters

By designing a mirror offload system, multiple configurations of incoming port mirroring, streaming mirroring and outgoing port mirroring are solved, and the problem that the existing technology can only implement a single type of stream mirroring is achieved, and a variety of mirroring support is achieved to meet the needs of massive data forwarding.

CN119316382BActive Publication Date: 2025-03-25ZHUHAI XINGYUN ZHILIAN TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411844761.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-16
Publication Date
2025-03-25
Estimated Expiration
2044-12-16

AI Technical Summary

Technical Problem

The existing technology can only implement one type of image streaming mirror, which is very limited and is difficult to meet the needs of massive data forwarding.

Method used

Design a mirror offload system, including processors and network cards, and implement multiple mirror configurations of incoming port mirroring, streaming mirroring and outgoing port mirroring through virtual switches and data plane development kits, and compare and retain them according to the priority level of the mirror configuration.

Benefits of technology

It realizes support for multiple mirrors, which is suitable for a wide range of mirroring needs, and can perform appropriate processing methods according to the priority levels of different mirrors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119316382B_ABST
    Figure CN119316382B_ABST
Patent Text Reader

Abstract

The present application provides a mirror unloading system, device and cluster. The system includes: a network card, which is used to match a first message with a first mirror flow table entry, and add a first mirror configuration to the first message when the first message and the first mirror flow table entry match; match the first message with a second mirror flow table entry, and compare the first mirror configuration with the second mirror configuration when the first message and the second mirror flow table entry match, and retain the first mirror configuration and the second mirror configuration when the priority level of the first mirror configuration and the priority level of the second mirror configuration are the same, and retain the mirror configuration with a higher priority level when the priority level of the first mirror configuration and the priority level of the second mirror configuration are different; find the corresponding mirror action according to the retained mirror configuration, and perform the mirror action on the first message.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data communications, and in particular to an image unloading system, device and cluster. Background Art

[0002] With the development of cloud computing networks, the amount of forwarded data is increasing. Forwarding massive amounts of data is a huge challenge for virtual switches (Open vSwitch, OVS). Simply relying on virtual switch forwarding can no longer meet the current growing business needs. In order to solve this problem, a dedicated forwarding chip is needed to carry data forwarding services. OVS / OVS+Data Plane Development Kit (DPDK) data forwarding offload to hardware came into being.

[0003] However, OVS can only implement one type of mirroring: flow mirroring, which has very large usage restrictions. Summary of the invention

[0004] The present application provides an image unloading system, device and cluster, which can realize any multiple types of mirroring among inbound port mirroring, flow mirroring and outbound port mirroring.

[0005] The present application provides an image uninstallation system, including:

[0006] A processor, used for communicating with the network card;

[0007] The network card is used to provide hardware resources for network communication;

[0008] The processor or the network card runs a virtual switch and a data plane development kit, wherein the virtual switch is a switch virtualized based on hardware resources of the processor or the network card, the data plane development kit is used to assist the virtual switch to improve the performance of the virtual switch, and the virtual switch and the data plane development kit are used to offload the first mirror configuration and the second mirror configuration to the hardware of the network card;

[0009] The network card is used to match the first message with the first mirror flow table entry, and when the first message and the first mirror flow table entry match, add the first mirror configuration to the first message;

[0010] Matching the first message with the second mirror flow entry, and when the first message matches the second mirror flow entry, comparing the first mirror configuration with the second mirror configuration, and when the priority level of the first mirror configuration is the same as the priority level of the second mirror configuration, retaining the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration is different from the priority level of the second mirror configuration, retaining the mirror configuration with a higher priority level;

[0011] Find a corresponding mirroring action according to the reserved mirroring configuration, and perform the mirroring action on the first message;

[0012] The first mirroring configuration is any one of the inbound port mirroring configuration, the flow mirroring configuration and the outbound port mirroring configuration of the network card, and the second mirroring configuration is another one of the inbound port mirroring configuration, the flow mirroring configuration and the outbound port mirroring configuration.

[0013] In the above solution, multiple mirroring can be realized, which is suitable for a wide range of mirroring needs.

[0014] In some possible designs, the network card includes an ingress port module, a flow table matching module, an egress port module, and a mirror processing module.

[0015] The processor is further used to unload a third mirror configuration to the network card, wherein the first mirror configuration is an inbound port mirror configuration, the second mirror configuration is a flow mirror configuration, and the third mirror configuration is an outbound port mirror configuration;

[0016] The ingress port module is used to match the first message with the first mirror flow entry, and add a first mirror configuration to the first message when the first message and the first mirror flow entry match;

[0017] The flow table matching module is used to match the first message with the second mirror flow table entry, and when the first message matches the second mirror flow table entry, compare the first mirror configuration with the second mirror configuration, and when the priority level of the first mirror configuration is the same as the priority level of the second mirror configuration, retain the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration is different from the priority level of the second mirror configuration, retain the mirror configuration with a higher priority level;

[0018] The egress port module is used to match the first message with the third mirror flow entry, and when the first message matches the third mirror flow entry, compare the third mirror configuration with the previously reserved mirror configuration, and when the priority level of the third mirror configuration is the same as the priority level of the previously reserved mirror configuration, retain the third mirror configuration and the previously reserved mirror configuration, and when the priority level of the third mirror configuration is different from the priority level of the previously reserved mirror configuration, retain the mirror configuration with a higher priority level;

[0019] The mirror processing module is used to find the corresponding mirror action according to the reserved mirror configuration, and execute the mirror action on the first message.

[0020] In the above solution, three types of mirroring can be implemented, and the priority levels of different mirroring can be compared to determine a suitable processing method.

[0021] In some possible designs, the retained mirror configuration includes a first mirror configuration, a second mirror configuration, and a third mirror configuration.

[0022] The mirror processing module is used to determine a first mirroring action according to the first mirroring configuration, perform local port mirroring on the first message according to the first mirroring action to obtain a first mirror message, and instruct the first mirror message to be sent out from a first target port; determine a second mirroring action according to the second mirroring configuration, perform remote virtual network mirroring on the first message according to the second mirroring action, add a virtual network message header to obtain a second mirror message, and instruct the second mirror message to be sent out from a second target port; determine a third mirroring action according to the third mirroring configuration, perform remote port mirroring on the first message according to the third mirroring action, add a tunnel message header to obtain a third mirror message, and instruct the third mirror message to be sent out from a third target port.

[0023] In the above solution, one or more of local port mirroring, remote virtual network mirroring and remote port mirroring can be implemented simultaneously.

[0024] In some possible designs, the first mirror configuration includes a first mirror identifier and a first priority level, wherein the first mirror identifier is used to find the first mirror action, and the first priority level is used to indicate a priority level of the first mirror configuration.

[0025] In some possible designs, the processor includes a flow table module and a mirror module, the flow table module is used to match the second message with the first mirror flow table entry stored in the mirror module, and when the second message matches the first mirror flow table entry, add the first mirror configuration to the second message, match the second message with the second mirror flow table entry, and when the second message matches the second mirror flow table entry, compare the first mirror configuration with the second mirror configuration, and when the priority level of the first mirror configuration is the same as the priority level of the second mirror configuration, retain the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration is different from the priority level of the second mirror configuration, retain the mirror configuration with a higher priority level; find the corresponding mirror action according to the retained mirror configuration, and execute the mirror action on the second message;

[0026] The second message is the first message of the data stream, and the first message is the message after the second message in the data stream.

[0027] In some possible designs, the flow table module marks the second message with a first identifier, and passes the second message with the first identifier through the inlet port module, the flow table matching module, the outlet port module and the mirror processing module in sequence. The inlet port module, the flow table matching module, the outlet port module and the mirror processing module transmit the second message with the first identifier based on the first identifier.

[0028] In some possible designs, the mirror module is used to send the first mirror configuration to the input port module before receiving the second message, send the first mirror action to the mirror processing module, send the third mirror configuration to the output port module before receiving the second message, and send the third mirror action to the mirror processing module.

[0029] In some possible designs, the mirroring module is used to send the second mirroring configuration to the flow table matching module and send the second mirroring action to the mirroring processing module after receiving the second message.

[0030] In a second aspect, a computing device is provided, including an image unloading system and a storage unit, wherein the image unloading system and the storage unit can communicate with each other, and the image unloading system is a system as described in any one of the first aspect.

[0031] According to a third aspect, a computing device cluster is provided, comprising a plurality of computing devices, at least one computing device comprising an image unloading system and a storage unit, the image unloading system and the storage unit being capable of communicating with each other, and the image unloading system being a system as described in any one of the first aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the background technology, the drawings required for use in the embodiments of the present invention or the background technology will be described below.

[0033] Figure 1 It is a structural diagram of an image unloading system provided by the present application;

[0034] Figure 2 It is a structural diagram of another image unloading system provided by the present application;

[0035] Figure 3 It is a structural schematic diagram of a computing device provided by this application. DETAILED DESCRIPTION

[0036] The embodiments of the present invention are described below in conjunction with the accompanying drawings in the embodiments of the present invention. The terms used in the implementation mode of the present invention are only used to explain the specific embodiments of the present invention, and are not intended to limit the present invention.

[0037] See also Figure 1 , Figure 1 This is a schematic diagram of the structure of an image unloading system provided by this application. Figure 1 As shown, the image unloading system includes: a processor 110 and a network card 120 .

[0038] The processor 110 is used to communicate with the network card. The processor 110 can be used to run the cloud management platform 111. The cloud management platform is a software system for managing a cloud computing environment. It provides centralized management, monitoring, configuration and scheduling functions for cloud resources (such as computing, storage, network, etc.). Optionally, the processor 110 is also used to run a virtual switch and a data plane development kit. The virtual switch is a switch virtualized based on the hardware resources of the processor. The data plane development kit is used to assist the virtual switch to improve the performance of the virtual switch. The processor 110 is a computing core and a control core, which can handle complex situations. The processor 110 can be a very large-scale integrated circuit. An operating system and other software programs are installed in the processor 110, so that the processor 110 can access the memory and various PCIE devices. The processor 110 can quickly access the memory through the on-chip bus. The processor 110 may include one or more processor cores. In one implementation, the processor 110 may be a multi-core chip, that is, a chip containing multiple processing cores. In another implementation, the processor 110 may include one or more processor cores. It can be a chip with one processing core. The processor 110 may run OVS and a data plane development kit (DPDK). For an introduction to OVS, see Figure 1 The relevant description in . OVS is also not efficient in reading memory. DPDK's lightweight library function uses a very effective memory processing mechanism, that is, it uses a ring buffer to transmit data packets back and forth between the physical network card and the virtual switch using DPDK, thereby improving the overall performance of the system. OVS lacks optimization for the processing of high-speed data packets, which leads to the use of processors in many steps of the data packet processing process. Since the processor needs to handle multiple tasks, its availability (especially when overloaded) will have performance bottlenecks. In order to reduce the number of processor interrupts required for data packet reading, DPDK uses a periodic polling mechanism to periodically poll new data packets. If the packet rate drops to a very low value, it can be switched to interrupt mode instead of periodic polling mode. Through effective cache management, optimized minimum number of CPU interrupts and other enhanced features, DPDK can enable virtual switches to achieve near-native performance.

[0039] The network card 120 is used to provide hardware resources for network communication. Optionally, the network card can run a virtual switch and a data plane development kit. Because it has a Media Access Control Address (MAC) address, it belongs between Layer 1 and Layer 2 of the Open System Interconnection (OSI) model. It allows users to connect to each other via cables or wirelessly. Each network card has a unique 48-bit serial number called a MAC address, which is written in a read-only memory on the card. Here, the network card can be a Field Programmable Gate Array (FPGA) network card or an Application Specific Integrated Circuit (ASIC) network card, etc.

[0040] For the sake of convenience, the cloud management platform, virtual switch, data plane development kit, and network card are extracted separately to obtain the following Figure 2 The image unloading system shown. The virtual switch and the data plane development kit include a flow table module and a mirror module. The network card includes a message parsing module, an ingress port module, a flow table matching module, an egress port module and a mirror processing module. It can be understood that the above-mentioned virtual switch and the data plane development kit can include more modules, and the above-mentioned network card can also include more modules, which are not specifically limited here.

[0041] The cloud management platform 111 is used to send the first mirror configuration and the first mirror action, the second mirror configuration and the second mirror action, the third mirror configuration and the third mirror action to the virtual switch and the mirror module in the data plane development kit. Among them, the first mirror configuration may include a first mirror identification and a first priority level, the first mirror identification is used to find the first mirror action, and the first priority level is used to indicate the priority level of the first mirror configuration. The second mirror configuration may include a second mirror identification and a second priority level, the second mirror identification is used to find the second mirror action, and the second priority level is used to indicate the priority level of the second mirror configuration. The third mirror configuration may include a third mirror identification and a third priority level, the third mirror identification is used to find the third mirror action, and the third priority level is used to indicate the priority level of the third mirror configuration. In a specific embodiment, the first mirror configuration may be an inbound port mirror configuration, the second mirror configuration may be a flow mirror configuration, and the third mirror configuration is an outbound port mirror configuration. Similarly, the first mirror action may be an inbound port mirror action, the second mirror configuration may be a flow mirror action, and the third mirror configuration is an outbound port mirror action. Inbound port mirroring refers to copying the message entering a specific port to one or more specified monitoring ports or devices, so as to monitor, analyze and troubleshoot the traffic entering the port without affecting normal data transmission. Flow mirroring is based on specific flow rules (for example, based on the source Internet Protocol address, destination Internet Protocol address, port number, protocol, etc.) to copy network traffic to a specified destination. It is more targeted than port (inbound port and outbound port) mirroring, and only copies traffic that meets specific flow characteristics, so as to more accurately analyze specific types of network communications without affecting normal data transmission. Outbound port mirroring is to copy the network traffic output from a certain port to a specified monitoring port or device, so as to monitor the traffic output from the port without affecting normal data transmission. Here, the cloud management platform 111 can simultaneously send the first mirror configuration and the first mirror action, the second mirror configuration and the second mirror action, the third mirror configuration and the third mirror action to the mirror module in the virtual switch and the data plane development kit, and can also send the first mirror configuration and the first mirror action, the second mirror configuration and the second mirror action, the third mirror configuration and the third mirror action to the virtual switch and the data plane development kit multiple times (for example, 3 times).

[0042] The mirror module sends the first mirror configuration to the ingress port module, sends the first mirror action to the mirror processing module, sends the third mirror configuration to the egress port module, and sends the third mirror action to the mirror processing module. Similarly, the first mirror configuration, the first mirror action, the third mirror configuration, and the third mirror action may be sent simultaneously, or may be sent multiple times, which is not specifically limited here.

[0043] When the network card receives the first data packet of the data stream, the first data packet is sent to the message parsing module. The message parsing module parses the first data packet to obtain the first message header data, and sends the first message header data and the first data packet to the ingress port module. After receiving the first message header data and the first data packet, the ingress port module matches according to the first message header data to obtain the first mirror configuration. The ingress port module sends the first message header data, the first data packet and the first mirror configuration to the flow table matching module. The flow table matching module matches according to the first message header data and does not find the corresponding flow table entry, so the first data packet is sent to the flow table module. After receiving the first data packet, the flow table module searches the flow table entry in the memory to find the matching first flow table entry, and sends the first flow table entry to the flow table matching module of the network card. The flow table module notifies the mirror module to send the second mirror action to the mirror processing module and sends the second mirror configuration to the flow table matching module. Then, the flow table module edits the first data packet according to the searched flow table action and specifies the flow destination port. At the same time, the flow table module matches the first data packet with the first mirror flow table entry stored in the mirror module, and adds the first mirror configuration to the first data packet when the first data packet matches the first mirror flow table entry, matches the first data packet with the second mirror flow table entry, and compares the first mirror configuration with the second mirror configuration when the first data packet matches the second mirror flow table entry, and when the priority level of the first mirror configuration and the priority level of the second mirror configuration are the same, retains the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration and the priority level of the second mirror configuration are different, retains the mirror configuration with a higher priority level; matches the first data packet with the third mirror flow table entry, and when the first data packet and the third mirror flow table entry match, compares the third mirror configuration with the previously retained mirror configuration, and when the priority level of the third mirror configuration and the previously retained mirror configuration are the same, retains the third mirror configuration and the previously retained mirror configuration, and when the priority level of the third mirror configuration and the previously retained mirror configuration are different, retains the mirror configuration with a higher priority level. The mirror processing module finds the corresponding mirror action according to the reserved mirror configuration, and executes the mirror action on the first data message.For example, the flow table module determines the first mirroring action according to the first mirroring configuration, performs local port mirroring on the first message according to the first mirroring action to obtain the first mirroring message, and instructs the first mirroring message to be sent out from the first target port; determines the second mirroring action according to the second mirroring configuration, performs remote virtual network mirroring on the first message according to the second mirroring action, adds a virtual network message header to obtain the second mirroring message, and instructs the second mirroring message to be sent out from the second target port; determines the third mirroring action according to the third mirroring configuration, performs remote port mirroring on the first message according to the third mirroring action, adds a tunnel message header to obtain the third mirroring message, and instructs the third mirroring message to be sent out from the third target port. Then, the first data message and the mirroring message obtained according to the first data message are marked with the first mark and forwarded to the message parsing module of the network card. The message parsing module passes the first data message with the first mark and the mirroring message obtained according to the first data message through the input port module, the flow table matching module, the output port module and the mirroring processing module in sequence. The inlet port module, the flow table matching module, the outlet port module and the mirror processing module transparently transmit the first data message with the first identifier and the mirror message obtained according to the first data message based on the first identifier. In other words, the inlet port module, the flow table matching module, the outlet port module and the mirror processing module will no longer process the first data message and the mirror message obtained according to the first data message.

[0044] The message parsing module of the network card receives the second data message, parses the second data message to obtain the second data message header, and sends the second data message and the second data message header to the ingress port module. The ingress port module matches the second data message with the first mirror flow table entry, and adds the first mirror configuration to the first message when the first message matches the first mirror flow table entry, and sends the second data message, the second data message header and the first mirror configuration to the flow table matching module. The flow table matching module matches the second data message header with the second mirror flow table entry, and compares the first mirror configuration with the second mirror configuration when the second data message header matches the second mirror flow table entry, and when the priority level of the first mirror configuration and the priority level of the second mirror configuration are the same, retains the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration and the priority level of the second mirror configuration are different, retains the mirror configuration with a higher priority level. That is, if the priority level of the first mirror configuration is higher, retain the first mirror configuration, and if the priority level of the second mirror configuration is higher, retain the second mirror configuration. The flow table matching module sends the second data message, the second data message header, and the reserved mirror configuration to the egress port module. The egress port module matches the second data message header with the third mirror flow table entry, and when the second data message header and the third mirror flow table entry match, compares the third mirror configuration with the previously reserved mirror configuration, and when the priority level of the third mirror configuration is the same as the priority level of the previously reserved mirror configuration, retains the third mirror configuration and the previously reserved mirror configuration, and when the priority level of the third mirror configuration is different from the priority level of the previously reserved mirror configuration, retains the mirror configuration with a higher priority level. For example, if the first mirror configuration was previously retained, compare the priority levels of the first mirror configuration and the third mirror configuration, and if the priority levels of the first mirror configuration and the third mirror configuration are the same, retain the first mirror configuration and the third mirror configuration, and if the priority level of the first mirror configuration is higher, retain the first mirror configuration, and if the priority level of the third mirror configuration is higher, retain the third mirror configuration. If the second mirror configuration is reserved before, compare the priority of the second mirror configuration and the third mirror configuration. If the priority of the second mirror configuration and the third mirror configuration is the same, retain the second mirror configuration and the third mirror configuration. If the priority of the second mirror configuration is higher, retain the second mirror configuration. If the priority of the third mirror configuration is higher, retain the third mirror configuration. If the first mirror configuration and the second mirror configuration are reserved before, compare the priority of the first mirror configuration, the second mirror configuration and the third mirror configuration.If the priority levels of the first mirror configuration, the second mirror configuration and the third mirror configuration are the same, the first mirror configuration, the second mirror configuration and the third mirror configuration are retained; if the priority levels of the first mirror configuration and the second mirror configuration are higher, the first mirror configuration and the second mirror configuration are retained; if the priority level of the third mirror configuration is higher, the third mirror configuration is retained.

[0045] The mirror processing module is used to find the corresponding mirror action according to the reserved mirror configuration, and perform the mirror action on the first message. If the first mirror configuration is reserved, the first mirror action is found, and the first mirror action is performed on the second data message. If the second mirror configuration is reserved, the second mirror action is found, and the second mirror action is performed on the second data message. If the third mirror configuration is reserved, the third mirror action is found, and the third mirror action is performed on the second data message. If the first mirror configuration and the second mirror configuration are reserved, the first mirror action and the second mirror action are found, and the first mirror action and the second mirror action are performed on the second data message. If the first mirror configuration, the second mirror configuration, and the third mirror configuration are reserved, the first mirror action, the second mirror action, and the third mirror action are found, and the first mirror action, the second mirror action, and the third mirror action are performed on the second data message. In a specific embodiment, assuming that the first mirror configuration, the second mirror configuration and the third mirror configuration are retained, and the first mirror configuration is a configuration of local port mirroring, the second mirror configuration is a configuration of remote virtual network mirroring, and the third mirror configuration is a configuration of remote port mirroring, then the mirror processing module determines a first mirror action according to the first mirror configuration, performs local port mirroring on the second data packet according to the first mirror action to obtain a first mirror message, and instructs the first mirror message to be sent out from the first target port; determines a second mirror action according to the second mirror configuration, performs remote virtual network mirroring on the second data packet according to the second mirror action, adds a virtual network message header to obtain a second mirror message, and instructs the second mirror message to be sent out from the second target port; determines a third mirror action according to the third mirror configuration, performs remote port mirroring on the second data packet according to the third mirror action, adds a tunnel message header to obtain a third mirror message, and instructs the third mirror message to be sent out from the third target port.

[0046] It can be understood that the above example is described by taking the case where three mirror configurations exist at the same time. In actual applications, there may be only one or two mirror configurations, and the implementation process is similar to the process where three mirror configurations exist at the same time, and no specific limitation is made here.

[0047] See also Figure 3 , Figure 34 is a schematic diagram of a computing device provided by the present application. The computing device 400 includes: one or more processing units 410 , a communication interface 420 and a storage unit 430 .

[0048] The processing unit 410, the communication interface 420 and the storage unit 430 are interconnected via a bus 440. Optionally, the computing device 400 may also include an input / output interface 450, which is connected to an input / output device for receiving parameters set by a user, etc. The computing device 400 can be used to implement some or all of the functions of the device embodiment or system embodiment in the above-mentioned embodiment of the present application; the processing unit 410 can also be used to implement some or all of the operation steps of the method embodiment in the above-mentioned embodiment of the present application. For example, the specific implementation of the various operations performed by the computing device 400 can refer to the specific details in the above-mentioned embodiment, such as the processing unit 410 is used to perform some or all of the steps in the above-mentioned method embodiment or some or all of the operations in the above-mentioned method embodiment. For another example, in the embodiment of the present application, the computing device 400 can be used to implement some or all of the functions of one or more components in the above-mentioned device embodiment, and the communication interface 420 can be specifically used for the communication functions necessary to implement the functions of these devices and components, and the processing unit 410 can be specifically used for the processing functions necessary to implement the functions of these devices and components, etc.

[0049] Figure 3 The computing device 400 may include one or more processing units 410, and the multiple processing units 410 may provide processing capabilities in a coordinated manner in a parallel connection manner, a serial connection manner, a serial-parallel connection manner, or any connection manner, or the multiple processing units 410 may constitute a processor sequence or a processor array, or the multiple processing units 410 may be divided into a main processor and an auxiliary processor, or the multiple processing units 410 may have different architectures such as a heterogeneous computing architecture. In addition, Figure 3 The computing device 400 shown in the figure, and the related structural description and functional description are exemplary and non-limiting. In some exemplary embodiments, the computing device 400 may include Figure 3 More or fewer components may be shown, or some components may be combined or separated, or may have a different arrangement of components.

[0050] The processing unit 410 may have a variety of specific implementation forms. For example, the processing unit 410 may include a processor (central processing unit, CPU), a graphic processing unit (graphic processing unit, GPU), a neural-network processing unit (neural-network processing unit, NPU), a tensor processing unit (tensor processing unit, TPU) or a data processing unit (data processing unit, DPU) and other combinations thereof, which are not specifically limited in the embodiments of the present application. The processing unit 410 may also be a single-core processor or a multi-core processor. The processing unit 410 may be a combination of a CPU and a hardware chip. The above-mentioned hardware chip may be an application-specific integrated circuit (application-specific integrated circuit, ASIC), a programmable logic device (programmable logic device, PLD) or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (field-programmable gate array, FPGA), a generic array logic (generic array logic, GAL) or any combination thereof. The processing unit 410 may also be implemented using a logic device with built-in processing logic alone, such as an FPGA or a digital signal processor (digital signal processor, DSP), etc.

[0051] The communication interface 420 may be a wired interface or a wireless interface for communicating with other modules or devices. The wired interface may be an Ethernet interface, a local interconnect network (LIN), etc., and the wireless interface may be a cellular network interface or a wireless local area network interface, etc.

[0052] The storage unit 430 may be a non-volatile memory, such as a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The storage unit 430 may also be a volatile memory, which may be a random access memory (RAM) used as an external cache. By way of example but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous connection dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). The storage unit 430 may also be used to store program codes and data, so that the processing unit 410 can call the program codes stored in the storage unit 430 to execute some or all of the operation steps in the above method embodiment, or to execute the corresponding functions in the above device embodiment. Figure 3 Show more or fewer components, or have different component configurations.

[0053] The bus 440 may be a peripheral component interconnect express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus 440 may be divided into an address bus, a data bus, a control bus, etc. In addition to the data bus, the bus 440 may also include a power bus, a control bus, and a status signal bus, etc. However, for the sake of clarity, Figure 3 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0054] The present application also provides a system, which includes multiple computing devices, and the structure of each computing device can refer to the structure of the computing device described above. The functions or operations that can be implemented by the system can refer to the specific implementation steps in the above method embodiment and / or the specific functions described in the above device embodiment, which will not be repeated here.

[0055] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one network site, computer, server or data center to another network site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer, or it can be a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape, etc.), an optical medium (e.g., a DVD, etc.), or a semiconductor medium (e.g., a solid-state hard disk), etc. In the above embodiments, the description of each embodiment has different emphases. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

Claims

1. An image uninstallation system, characterized in that: include: A processor, used for communicating with the network card; The network card is used to provide hardware resources for network communication; The processor or the network card runs a virtual switch and a data plane development kit, wherein the virtual switch is a switch virtualized based on hardware resources of the processor or the network card, the data plane development kit is used to assist the virtual switch to improve the performance of the virtual switch, and the virtual switch and the data plane development kit are used to offload the first mirror configuration and the second mirror configuration to the hardware of the network card; The network card is used to match the first message with the first mirror flow table entry, and when the first message and the first mirror flow table entry match, add the first mirror configuration to the first message; Matching the first message with the second mirror flow entry, and when the first message matches the second mirror flow entry, comparing the first mirror configuration with the second mirror configuration, and when the priority level of the first mirror configuration is the same as the priority level of the second mirror configuration, retaining the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration is different from the priority level of the second mirror configuration, retaining the mirror configuration with a higher priority level; Find a corresponding mirroring action according to the reserved mirroring configuration, and perform the mirroring action on the first message; The first mirroring configuration is any one of the inbound port mirroring configuration, the flow mirroring configuration and the outbound port mirroring configuration of the network card, and the second mirroring configuration is another one of the inbound port mirroring configuration, the flow mirroring configuration and the outbound port mirroring configuration.

2. The system according to claim 1, characterized in that The network card includes an inbound port module, a flow table matching module, an outbound port module and a mirror processing module. The processor is further used to unload a third mirror configuration to the network card, wherein the first mirror configuration is an inbound port mirror configuration, the second mirror configuration is a flow mirror configuration, and the third mirror configuration is an outbound port mirror configuration; The ingress port module is used to match the first message with the first mirror flow entry, and add a first mirror configuration to the first message when the first message and the first mirror flow entry match; The flow table matching module is used to match the first message with the second mirror flow table entry, and when the first message matches the second mirror flow table entry, compare the first mirror configuration with the second mirror configuration, and when the priority level of the first mirror configuration is the same as the priority level of the second mirror configuration, retain the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration is different from the priority level of the second mirror configuration, retain the mirror configuration with a higher priority level; The egress port module is used to match the first message with the third mirror flow entry, and when the first message matches the third mirror flow entry, compare the third mirror configuration with the previously reserved mirror configuration, and when the priority level of the third mirror configuration is the same as the priority level of the previously reserved mirror configuration, retain the third mirror configuration and the previously reserved mirror configuration, and when the priority level of the third mirror configuration is different from the priority level of the previously reserved mirror configuration, retain the mirror configuration with a higher priority level; The mirror processing module is used to find the corresponding mirror action according to the reserved mirror configuration, and execute the mirror action on the first message.

3. The system according to claim 2, characterized in that The retained mirror configurations include the first mirror configuration, the second mirror configuration, and the third mirror configuration. The mirror processing module is used to determine a first mirror action according to the first mirror configuration, perform local port mirroring on the first message according to the first mirror action to obtain a first mirror message, and instruct to send the first mirror message from a first target port; Determine a second mirroring action according to the second mirroring configuration, perform remote virtual network mirroring on the first message according to the second mirroring action, add a virtual network message header to obtain a second mirroring message, and instruct to send the second mirroring message from the second target port; Determine a third mirroring action according to the third mirroring configuration, perform remote port mirroring on the first message according to the third mirroring action, add a tunnel message header to obtain a third mirroring message, and instruct to send the third mirroring message from a third target port.

4. The system according to claim 3, characterized in that The first mirror configuration includes a first mirror identifier and a first priority level, wherein the first mirror identifier is used to search for the first mirror action, and the first priority level is used to indicate a priority level of the first mirror configuration.

5. The system according to any one of claims 2 to 4, characterized in that: The processor includes a flow table module and a mirror module, wherein the flow table module is used to match the second message with the first mirror flow table entry stored in the mirror module, and when the second message matches the first mirror flow table entry, add the first mirror configuration to the second message, match the second message with the second mirror flow table entry, and when the second message matches the second mirror flow table entry, compare the first mirror configuration with the second mirror configuration, and when the priority level of the first mirror configuration is the same as the priority level of the second mirror configuration, retain the first mirror configuration and the second mirror configuration, and when the priority level of the first mirror configuration is different from the priority level of the second mirror configuration, retain the mirror configuration with a higher priority level; Find a corresponding mirroring action according to the reserved mirroring configuration, and perform the mirroring action on the second message; The second message is the first message of the data stream, and the first message is the message after the second message in the data stream.

6. The system according to claim 5, characterized in that The flow table module adds a first identifier to the second message, and passes the second message with the first identifier through the inlet port module, the flow table matching module, the outlet port module and the mirror processing module in sequence. The inlet port module, the flow table matching module, the outlet port module and the mirror processing module transparently transmit the second message with the first identifier based on the first identifier.

7. The system according to claim 5, characterized in that The mirror module is used to send the first mirror configuration to the input port module and the first mirror action to the mirror processing module before receiving the second message, and send the third mirror configuration to the output port module and the third mirror action to the mirror processing module before receiving the second message.

8. The system according to claim 5, characterized in that The mirroring module is used to send the second mirroring configuration to the flow table matching module and send the second mirroring action to the mirroring processing module after receiving the second message.

9. A computing device, characterized in that It comprises an image unloading system and a storage unit, the image unloading system and the storage unit can communicate with each other, and the image unloading system is the system according to any one of claims 1-6.

10. A computing device cluster, characterized in that: It comprises a plurality of computing devices, at least one computing device comprises an image unloading system and a storage unit, the image unloading system and the storage unit can communicate with each other, and the image unloading system is a system as claimed in any one of claims 1 to 6.

Citation Information

Patent Citations

  • Message mirror image, mirror image configuration method, virtual switch and mirror image configuration device

    CN114172854A

  • Traffic mirroring method, apparatus, device and nonvolatile readable storage medium

    WO2024113817A1