Data transmission method and computing device

By directly acquiring LLDP messages through the serial clock and data lines between the management controller and the network card, the problem of relying on the operating system to obtain topology connection information is solved. This enables stable acquisition of network topology connection information even in OS standby mode, improving communication efficiency and accuracy.

WO2026016562A1PCT designated stage Publication Date: 2026-01-22XFUSION DIGITAL TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/089566
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-19
Filing Date
2025-04-17
Publication Date
2026-01-22

Smart Images

  • Figure CN2025089566_22012026_PF_FP_ABST
    Figure CN2025089566_22012026_PF_FP_ABST
Patent Text Reader

Abstract

The embodiments of the present application relate to the technical field of computers. Provided are a data transmission method and a computing device, which can improve the stability of acquiring network topology connection information between a network device, which is in network connection with the computing device, and a network interface card. The method is applied to a management controller of a computing device, wherein the management controller is connected to a network interface card by means of a serial clock line (SCL) and a serial data line (SDA), and the network interface card is used for connecting the computing device to an external network. The method comprises: a management controller acquiring a link layer discovery protocol (LLDP) packet from a first network interface card on the basis of an SCL and an SDA, and determining a port identifier of the first network interface card corresponding to the LLDP packet; and then determining network topology connection information on the basis of device information of a network device in the LLDP packet and the port identifier of the first network interface card corresponding to the LLDP packet, wherein the network topology connection information is used for being displayed on a management interface of the management controller, so as to display a topology connection relationship between a port of the network interface card and the network device.
Need to check novelty before this filing date? Find Prior Art

Description

A data transmission method and computing device

[0001] This application claims priority to Chinese Patent Application No. 202410984712.5, filed on July 19, 2024, entitled "A Data Transmission Method and Computing Device", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of computer technology, and in particular to a data transmission method and a computing device. Background Technology

[0003] With the continuous development of server technology, the management controller in the server (such as the baseboard management controller) needs to manage the network topology connection information of the network card in the server and the network devices (such as switches) connected to the network card; based on this, the management controller needs to obtain the network topology connection information of the network card and the network devices connected to the network card.

[0004] In common methods for management controllers to obtain the aforementioned network topology connection information, the management controller obtains the packets received from the network by the network interface card (NIC) in the server through the server's operating system (OS). Based on the packets, it obtains the switch information (such as the switch name, port number, etc.) that sent the packets to the NIC, so that the management controller can determine the network topology connection information between the NIC and the network topology connection information indicated by the switch information.

[0005] However, the above method for obtaining network topology connection information of the network card and the network device connected to the network card requires the intervention of the OS, that is, it depends on the OS's running state, so its application scenarios are relatively limited. Summary of the Invention

[0006] This application provides a data transmission method and a computing device that enables operation without relying on the OS. Even when the OS is in standby mode, the management controller of the computing device can obtain LLDP packets from the network interface card (NIC) and determine the port identifier of the first NIC corresponding to the LLDP packet. Based on the device information of the network device in the LLDP packet and the port identifier of the first NIC corresponding to the LLDP packet, the network topology connection information is determined. The network topology connection information is displayed in the management interface of the management controller to show the topology connection relationship between the NIC port and the network device, thereby improving the stability of obtaining the network topology connection information between the network device and the NIC connected to the computing device.

[0007] In a first aspect, embodiments of this application provide a data transmission method applied to a management controller of a computing device. The management controller is connected to a network interface card (NIC) via a serial clock line (SCL) and a serial data line (SDA). The NIC is used for connecting the computing device to an external network. The method includes: the management controller obtaining a Link Layer Discovery Protocol (LLDP) message from a first NIC based on the serial clock line (SCL) and the serial data line (SDA), and determining the port identifier of the first NIC corresponding to the LLDP message; the LLDP message being sent by a network device connected to the computing device to a target port indicated by the port identifier on the first NIC; the LLDP message including device information of the network device; and the management controller determining network topology connection information based on the device information of the network device in the LLDP message and the port identifier of the first NIC corresponding to the LLDP message. The network topology connection information is used to display in the management interface of the management controller to show the topology connection relationship between the NIC's port and the network device.

[0008] Understandably, the management controller obtains Link Layer Discovery Protocol (LLDP) messages from the first network interface card (NIC) based on the serial clock line (SCL) and serial data line (SDA), and determines the port identifier of the first NIC corresponding to the LLDP message. This process does not depend on the operating state of the computing device's OS. In other words, even if the OS is in standby mode, the management controller can still obtain LLDP messages from the first NIC, determine the port identifier of the first NIC corresponding to the LLDP message, and thus determine the network topology connection information. This improves the stability of the management controller in obtaining network topology connection information between network devices and NICs connected to the computing device.

[0009] In one possible implementation, the management controller obtains Link Layer Discovery Protocol (LLDP) messages from the network interface card (NIC) based on the serial clock line (SCL) and serial data line (SDA), and determines the port identifier of the first NIC corresponding to the LLDP message. This includes: the management controller sending a first instruction to the first NIC based on the serial clock line (SCL) and serial data line (SDA); the first instruction instructing the NIC to return an LLDP message; if the management controller receives a response signal for the first instruction, it determines the port identifier and sends the port identifier to the first NIC; and the management controller receives the LLDP message returned by the first NIC corresponding to the port identifier.

[0010] Understandably, upon receiving a response signal to the first instruction, the management controller determines the port identifier and sends it to the first network interface card (NIC), thereby instructing the first NIC to return an LLDP message corresponding to the specified port identifier. This improves communication efficiency and reduces the delay in the management controller's determination and / or updating of network topology connection information.

[0011] In one possible implementation, the management controller sends a first instruction to the network interface card (NIC) based on the serial clock line SCL and the serial data line SDA, including: the management controller sending the first instruction and the identifier of the first NIC to the NIC on the serial clock line SCL and the serial data line SDA; the NIC is used to determine whether to respond to the first instruction based on the identifier of the first NIC.

[0012] Understandably, the management controller sends the first instruction and the identifier of the first network card together to the network cards on the serial clock line SCL and the serial data line SDA. This reduces the number of times control of the serial data line SDA is exchanged between the management controller and the network cards, reduces communication latency, and improves communication efficiency. Furthermore, by sending the identifier of the first network card, the management controller instructs the specified network card to return an LLDP message, further improving communication efficiency.

[0013] In one possible implementation, before the management controller sends the first instruction and the identifier of the first network interface card (NIC) based on the serial clock line SCL and the serial data line SDA, the method further includes: the management controller sending a broadcast instruction to the NICs on the serial clock line SCL and the serial data line SDA; and then, the management controller sending the first instruction and the identifier of the first NIC to the NICs on the serial clock line SCL and the serial data line SDA based on the serial clock line SCL and the serial data line SDA includes: the management controller sending the first instruction and the identifier of the first NIC to the NICs on the serial clock line SCL and the serial data line SDA upon receiving a response signal from at least one NIC to the broadcast instruction.

[0014] Understandably, by determining that it has received a response signal from at least one network card for a broadcast command sent by the management controller before sending the first command and the identifier of the first network card, the management controller can reduce the unnecessary occupation of the serial data line SDA by the management controller and improve communication efficiency.

[0015] In one possible implementation, the management controller sends a first instruction to the network interface card (NIC) based on the serial clock line SCL and the serial data line SDA. This instruction includes: the management controller sending an authentication message to the NIC on the serial clock line SCL and the serial data line SDA, the authentication message including the identifier of the first NIC; the NIC returning an acknowledgment signal if the identifier is successfully authenticated; and if the management controller receives the acknowledgment signal from the first NIC, sending the first instruction to the first NIC.

[0016] Understandably, the management controller sends verification messages to the network cards on the serial clock line SCL and serial data line SDA. Upon receiving the response signal from the first network card, it sends a first command to the first network card, thereby increasing the likelihood that the first command will be responded to and reducing the likelihood that the first command will be responded to by other unspecified network cards. This improves the reliability of communication and, consequently, the accuracy of the management controller in obtaining or updating network topology connection information.

[0017] In one possible implementation, the management controller obtains Link Layer Discovery Protocol (LLDP) messages from the network interface card (NIC) based on the serial clock line (SCL) and serial data line (SDA), and determines the port identifier of the first NIC corresponding to the LLDP message. This includes: if the management controller receives an interrupt request sent by the first NIC and accepts the interrupt request, it sends an interrupt enable signal to the first NIC; the management controller receives interrupt data sent by the first NIC based on the serial clock line (SCL) and serial data line (SDA); the interrupt data includes the LLDP message and the port identifier of the first NIC corresponding to the LLDP message; the management controller obtains the LLDP message and the port identifier of the first NIC corresponding to the LLDP message from the interrupt data.

[0018] Understandably, when the management controller receives and accepts an interrupt request, it allows the network card to initiate the interrupt request, ensuring orderly data transmission and improving the stability and reliability of communication. Furthermore, since the LLDP message is first sent to the network card by the network device connected to the computing device network, the management controller receives the interrupt data of the port identifier of the first network card corresponding to the LLDP message, which can improve the real-time performance of the management controller in obtaining or updating network topology connection information.

[0019] In one possible implementation, the interrupt data also includes an interrupt mandatory data byte target MDB; the interrupt mandatory data byte target MDB is used to indicate the content type of the interrupt data, and the management controller obtains the LLDP message and the port identifier of the first network interface card corresponding to the LLDP message from the interrupt data, including: if the combination of the interrupt group number and the interrupt number value in the interrupt mandatory data byte target MDB matches a first combination, the management controller obtains the LLDP message and the port identifier of the first network interface card corresponding to the LLDP message from the interrupt data; the first combination is used to indicate that the content type of the interrupt data is the LLDP message transmission type.

[0020] Understandably, when the management controller receives interrupt data actively sent by the network interface card (NIC), it can correctly parse the interrupt data according to the indication of the interrupt necessary data byte target MDB. This improves the accuracy of the management controller in obtaining the LLDP message and the port identifier of the first NIC corresponding to the LLDP message from the interrupt data, thereby improving the accuracy of the management controller in determining network topology connection information.

[0021] In one possible implementation, the identifier includes address information conforming to the I2C or I3C integrated circuit bus protocol specification.

[0022] It is understandable that the management controller and the network interface card (NIC) communicate based on the I2C or I3C protocol. By sending address information that conforms to the I2C or I3C protocol specifications, the accuracy of the NIC's verification of the identifier can be guaranteed, thereby improving the reliability of communication.

[0023] Secondly, embodiments of this application provide a data transmission method applied to a network interface card (NIC). The NIC is connected to the management controller of a computing device via a serial clock line (SCL) and a serial data line (SDA). The NIC is used for the computing device to connect to an external network. The method includes: the NIC determining a port identifier and sending a Link Layer Discovery Protocol (LLDP) message corresponding to the port identifier to the management controller based on the serial clock line (SCL) and the serial data line (SDA); the LLDP message being sent by a network device connected to the computing device to the target port indicated by the port identifier on the NIC; and the LLDP message including device information of the network device.

[0024] Understandably, the network card determines the port identifier and sends the corresponding LLDP message to the management controller directly based on the serial clock line SCL and serial data line SDA. This allows the management controller to determine the network topology connection information without relying on the OS running status of the computing device, thus improving the stability of the management controller in obtaining network topology connection information between the network devices and network cards connected to the computing device.

[0025] In one possible implementation, the network interface card (NIC) determines a port identifier and sends a Link Layer Discovery Protocol (LLDP) message corresponding to the port identifier to the management controller based on the serial clock line (SCL) and serial data line (SDA). This includes: if the NIC receives a first instruction sent by the management controller based on the serial clock line (SCL) and serial data line (SDA), sending a response signal to the management controller for the first instruction; the first instruction instructs the NIC to return an LLDP message; if the NIC receives a port identifier sent by the management controller, obtaining the LLDP message corresponding to the port identifier; and returning the LLDP message to the management controller based on the serial clock line (SCL) and serial data line (SDA).

[0026] Understandably, the network interface card (NIC) returns an LLDP message corresponding to the received port identifier according to the first instruction. This avoids the NIC receiving LLDP messages on multiple ports, reduces the transmission of unnecessary invalid data that the management controller does not need, improves communication efficiency, and reduces the delay in the management controller determining / updating the network topology connection information of the port specified by the NIC.

[0027] In one possible implementation, the network interface card (NIC) sends a response signal to the management controller in response to the first instruction, including: if the NIC receives the first instruction and the identifier of the first NIC sent by the management controller based on the serial clock line SCL and the serial data line SDA, and determines the response to the first instruction based on the identifier of the first NIC, it sends a response signal to the management controller in response to the first instruction.

[0028] Understandably, the network interface card (NIC) determines whether to respond to the first command based on the identifier of the first NIC, and if it determines that it will respond to the first command, it sends a response signal to the management controller in response to the first command, which can improve the reliability of communication.

[0029] In one possible implementation, before the network interface card (NIC) sends a response signal to the management controller in response to the first instruction, the method further includes: if the NIC receives a broadcast instruction sent by the management controller based on the serial clock line SCL and the serial data line SDA, sending a response signal to the management controller in response to the broadcast instruction; then the NIC sending a response signal to the management controller in response to the first instruction includes: if the NIC receives the first instruction and the identifier of the first NIC sent by the management controller based on the serial clock line SCL and the serial data line SDA, and determines the response to the first instruction based on the identifier of the first NIC, sending a response signal to the management controller in response to the first instruction.

[0030] Understandably, the network interface card (NIC) sending a response signal to the management controller in response to a broadcast command ensures that the management controller will only send the first command and the identifier of the first NIC after confirming that it has received a response signal from at least one NIC in response to the broadcast command it sent. This reduces the management controller's unnecessary use of the serial data line SDA and improves communication efficiency.

[0031] In one possible implementation, before the network interface card (NIC) sends a response signal to the management controller for the first instruction based on the serial clock line SCL and the serial data line SDA, the method further includes: if the NIC receives a verification message from the management controller based on the serial clock line SCL and the serial data line SDA, and the identification verification is successful, sending a response signal to the management controller for the verification message; the verification message includes the identification of the first NIC.

[0032] Understandably, when the network interface card (NIC) passes the identity verification, it sends a response signal to the management controller in response to the verification message, ensuring that the first instruction matches the NIC that responded to the instruction, thereby improving the reliability of communication.

[0033] In one possible implementation, the network interface card (NIC) determines a port identifier and sends a Link Layer Discovery Protocol (LLDP) message corresponding to the port identifier to the management controller based on the serial clock line (SCL) and serial data line (SDA). This includes: the NIC sending an interrupt request to the management controller based on the serial clock line (SCL) and serial data line (SDA); the NIC receiving an interrupt enable signal returned by the management controller; and the NIC sending interrupt data to the management controller based on the serial clock line (SCL) and serial data line (SDA). The interrupt data includes the LLDP message and the port identifier of the first NIC corresponding to the LLDP message.

[0034] Understandably, the network interface card (NIC) sends interrupt data to the management controller only after receiving the interrupt enable signal returned by the management controller. This ensures that data transmission will not be erroneous, thereby improving the stability and reliability of communication. Furthermore, the NIC's proactive sending of interrupt data, including the LLDP message and the port identifier of the first NIC corresponding to the LLDP message, to the management controller can improve the real-time performance of the management controller in obtaining or updating network topology connection information.

[0035] In one possible implementation, the network interface card (NIC) sends interrupt data to the management controller based on the serial clock line SCL and the serial data line SDA. This interrupt data includes: an interrupt mandatory data byte target MDB and interrupt data content sent by the NIC to the management controller based on the serial clock line SCL and the serial data line SDA. The combination of the interrupt group number and the interrupt number value in the interrupt mandatory data byte target MDB conforms to a first combination. The first combination is used to indicate that the interrupt data content type is an LLDP message transmission type. The interrupt data content includes an LLDP message and the port identifier of the first NIC corresponding to the LLDP message.

[0036] Understandably, the network card, through the interrupt must data byte target MDB indication, enables the management controller to correctly parse the interrupt data, thereby improving the accuracy of the management controller in obtaining LLDP packets and the port identifier of the first network card corresponding to the LLDP packets from the interrupt data, and improving the accuracy of the management controller in determining network topology connection information.

[0037] In one possible implementation, after the target port receives the LLDP message sent by the network device connected to the computing device network, the method further includes: writing the LLDP message and the port identifier of the target port into a first table entry; the first table entry is used to store the correspondence between the LLDP message and the port identifier.

[0038] Understandably, by recording LLDP packets, the port identifier of the target port, and the correspondence between the two in the first table entry, the network card can ensure the accuracy of data transmission when it is necessary to send LLDP packets corresponding to a specific port. Through the reliability of communication, this improves the accuracy of the management controller in determining network topology connection information.

[0039] In one possible implementation, the network interface card (NIC) identifier includes address information conforming to the I2C or I3C (Integrated Circuit Bus) protocol specifications.

[0040] It is understandable that the management controller and the network interface card (NIC) communicate based on the I2C or I3C protocol. By sending address information that conforms to the I2C or I3C protocol specifications, the accuracy of the NIC's verification of the identifier can be guaranteed, thereby improving the reliability of communication.

[0041] Thirdly, embodiments of this application provide a data transmission apparatus for performing any of the data transmission methods provided in the first aspect above.

[0042] In one possible implementation, embodiments of this application can divide the data transmission device into functional modules according to the method provided in the first aspect above. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. For example, embodiments of this application can divide the data transmission device into an acquisition module, a determination module, etc., according to function. The descriptions of the possible technical solutions and beneficial effects performed by the various functional modules described above can refer to the technical solutions provided in the first aspect above or its corresponding possible implementations, and will not be repeated here.

[0043] Fourthly, embodiments of this application provide a computing device including a management controller and a memory, with a processor coupled to the memory; the memory is used to store computer instructions, which are loaded and executed by the processor to enable the computing device to implement the data transmission method as described above.

[0044] Fifthly, embodiments of this application provide a computer-readable storage medium storing at least one computer program instruction, which is loaded and executed by a management controller in a computing device to implement the data transmission method as described above.

[0045] Sixthly, embodiments of this application provide a computer program product including computer instructions stored in a computer-readable storage medium. A management controller of a computing device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computing device to perform the data transmission method provided in the various optional implementations of the first aspect described above.

[0046] For a detailed description of the third to sixth aspects and their various implementations in the embodiments of this application, please refer to the detailed descriptions in the first and second aspects and their various implementations; and for a detailed description of the beneficial effects of the third to sixth aspects and their various implementations, please refer to the beneficial effect analysis in the first and second aspects and their various implementations, which will not be repeated here.

[0047] These or other aspects of the embodiments of this application will become more apparent in the following description. Attached Figure Description

[0048] Figure 1 is a schematic diagram of a system architecture according to an exemplary embodiment;

[0049] Figure 2 is a schematic diagram of a computing device hardware structure according to an exemplary embodiment;

[0050] Figure 3 is a flowchart illustrating a data transmission method according to an exemplary embodiment;

[0051] Figure 4 is a schematic diagram of a topological connection relationship involved in the embodiment shown in Figure 3;

[0052] Figure 5 is a schematic diagram of the command timing for an I3C write-read operation;

[0053] Figure 6 is a flowchart illustrating a data transmission method according to an exemplary embodiment;

[0054] Figure 7 is a schematic diagram of the command timing for an I2C write-read operation;

[0055] Figure 8 is a flowchart illustrating a data transmission method according to an exemplary embodiment;

[0056] Figure 9 is a schematic diagram of the command timing for an I3C interrupt operation;

[0057] Figure 10 is a flowchart illustrating a data transmission method according to an exemplary embodiment;

[0058] Figure 11 is a schematic diagram of the structure of a data transmission device provided in an exemplary embodiment of this application. Detailed Implementation

[0059] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.

[0060] In this article, "multiple" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.

[0061] Furthermore, in the description of the embodiments of this application, unless otherwise stated, "multiple" refers to two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of a single item or a plurality of items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0062] Furthermore, to facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and that "first" and "second" are not necessarily different. Meanwhile, in the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is being used as an example, illustration, or description. Any embodiment or design scheme described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design schemes. Specifically, the use of terms such as "exemplary" or "for example" is intended to present related concepts in a concrete manner for ease of understanding.

[0063] The following explains some concepts involved in the data transmission method and computing device provided in the embodiments of this application:

[0064] I2C: Inter Integrated Circuit (I2C) is a bidirectional two-wire synchronous serial bus with a master-slave communication mechanism. It uses a serial clock line (SCL) and a serial data line (SDA) for communication, supports multiple nodes connected to the same bus, and distinguishes different nodes by physical addresses.

[0065] In some feasible embodiments, the management controller is connected to one or more network interface cards (NICs) via a serial clock line (SCL) and a serial data line (SDA), where the management controller acts as the master node and the NICs act as slave nodes. The master node controls the serial clock line (SCL) to output a clock signal, which is used to ensure synchronous data transmission. The master and slave nodes take turns controlling the serial data line (SDA) (who controls it depends on the direction of data transmission) to transmit data.

[0066] I3C: Improved Inter-Integrated Circuit (I3C) is an improved version of the I2C bus. Its physical structure is identical to I2C, using the same serial clock line (SCL) and serial data line (SDA) for communication. I3C is also backward compatible with I2C. Compared to I2C, I3C offers significantly higher data transfer rates. Furthermore, I3C allows the master node to assign dynamic addresses to slave nodes, enabling multiple nodes with the same physical address to connect on the same bus. I3C also supports interrupt mechanisms, allowing slave nodes to proactively send data to the master node without waiting for responses to commands.

[0067] In some feasible embodiments, the network interface card (NIC) sends its port identifier and received LLDP packets to the management controller via an I3C interrupt operation. For details on the specific implementation of the I3C interrupt operation, please refer to the following embodiments.

[0068] A network interface card (NIC) is a piece of computer hardware designed to allow computers to communicate on a computer network. Because it possesses a Media Access Control (MAC) address, it incorporates the functionality of Layer 1 (physical layer) and Layer 2 (data link layer) of the OSI model. It enables users to connect to each other via cable or wirelessly. NICs with a Peripheral Component Interconnect Express (PCIe) interface are also known as PCIe NICs.

[0069] PCIe is a high-speed serial computer expansion bus standard. Since the connector signal definition in the PCIe network card specification includes I2C, and I3C is compatible with I2C in terms of physical signals, in some feasible embodiments, the PCIe network card and the device management module are physically connected through the existing I2C channel, or in other words, connected through the serial clock line SCL and the serial data line SDA, and communicate based on the I2C or I3C protocol without the need for additional physical signals.

[0070] Link Layer Discovery Protocol (LLDP): This is a data link layer protocol. LLDP is used by network devices to announce their status to other devices by sending Link Layer Discovery Protocol Data Units (LLDPDUs) within the local network. LLDP is a protocol that enables devices in a network to discover each other, announce their status, and exchange information.

[0071] Port: A port is a direct translation of the English word "port," and can be considered as the exit point for a device to communicate with the outside world. Ports can be divided into virtual ports and physical ports. Virtual ports refer to ports inside a computer and are usually invisible, such as port 80 on a computer. Physical ports, also known as interfaces, are visible ports, such as the RJ45 network ports commonly found on computer front panels. Network interface cards (NICs) typically have one or more ports, while switches have two or more.

[0072] A switch is a network device used for forwarding electrical (or optical) signals. It provides a dedicated electrical signal path for any two network nodes connected to the switch. The most common type of switch is the Ethernet switch. Other common types include telephone voice switches and fiber optic switches.

[0073] First, the application scenarios of the embodiments of this application will be introduced by way of example.

[0074] Currently, network deployments in computer communication and data center applications are becoming increasingly complex. In many scenarios, server devices deploy multiple network interface cards (NICs) to connect to multiple networks. This increasing network complexity has created a need for server management interfaces to accurately display the topology connections between NICs and network devices (e.g., switches) connected to the computing device. To meet this need, servers require their management controllers to obtain network topology connection information between these devices and NICs. The management interface refers to the interface displayed through the server's management controller, showing relevant server information such as hardware and software operating status, and facilitating user management operations. This includes an interface displaying network topology connection information, allowing users to perform network deployment, configuration management, and maintenance.

[0075] This application provides a data transmission method in which a network interface card (NIC) and a management controller are connected via a serial clock line (SCL) and a serial data line (SDA). This means the NIC and management controller can communicate via an I2C or I3C bus. The NIC directly sends the LLDP message received from the network and the port identifier of the port receiving the LLDP message to the management controller. The LLDP message includes device information of the network device (such as a switch) connected to the computing device network. In other words, the management controller directly obtains the LLDP message from the NIC using the I2C or I3C bus and determines the port identifier of the first NIC corresponding to the LLDP message, without OS intervention. This avoids the problem of the management controller being unable to obtain network topology connection information between the NIC and network devices due to the OS being in a non-running state (e.g., standby). Therefore, it improves the stability of the management controller obtaining network topology connection information between the network device and the NIC connected to the computing device network.

[0076] In some embodiments, this application provides a data transmission method applied to a management controller of a computing device. The management controller is connected to a network interface card (NIC) via a serial clock line (SCL) and a serial data line (SDA). The NIC is used for the computing device to connect to an external network. The method includes: the management controller obtaining a Link Layer Discovery Protocol (LLDP) message from a first NIC based on the SCL and SDA, and determining the port identifier of the first NIC corresponding to the LLDP message; the LLDP message being sent by a network device (e.g., a switch) connected to the computing device via a network to a target port indicated by the port identifier on the first NIC; the LLDP message including device information of the network device; and the management controller determining network topology connection information based on the device information of the network device in the LLDP message and the port identifier of the first NIC corresponding to the LLDP message. This network topology connection information is used to display in the management interface of the management controller to show the topology connection relationship between the NIC's port and the network device.

[0077] In the above embodiments, the management controller can acquire the received LLDP packets from the first network card through either active acquisition or passive reception based on the serial clock line SCL and serial data line SDA, and determine the port identifier of the first network card corresponding to the LLDP packet. Then, based on the LLDP packet and the port identifier, the management controller determines the network topology connection information between the network device connected to the computing device via the network and the first network card. This does not require the intervention of the computing device's OS, thus avoiding the problem that the management controller cannot obtain the network topology connection information between the network card and the network device due to the OS being in a non-running state (e.g., standby state). Therefore, the stability of the management controller in obtaining the network topology connection information between the network card and the network device is improved.

[0078] Secondly, the system architecture of the embodiments of this application will be described by way of example.

[0079] The data transmission method provided in this application embodiment can be applied to the system architecture shown in Figure 1. In this system architecture, computing device 101 is connected to an external network via a connected network card. The network includes network device 102, wherein computing device 101 and network device 102 are connected via Ethernet (hereinafter referred to as: network connection). As an example, computing device 101 can be a server device; network device 102 can be a switch; Ethernet can specifically be the intranet of a data center, an enterprise intranet, or a school intranet, etc., and this application embodiment does not limit this.

[0080] Figure 1 uses the network card 1012 built into the computing device 101 as an example. In other embodiments, the network card may also be external.

[0081] The aforementioned computing device 101 is used to determine the network connection topology information between the computing device 101 and the network device 102 by receiving LLDP messages sent by the network device 102.

[0082] In this embodiment of the application, the management controller 1011 and the network card 1012 in the computing device 101 are connected through the serial clock line SCL and the serial data line SDA. The serial clock line SCL and the serial data line SDA can support the I2C and I3C protocols, so the management controller 1011 and the network card 1012 can transmit data that conforms to the I2C or I3C protocol.

[0083] The network interface card 1012 is used to receive LLDP messages sent by the network device 102. The LLDP message includes information about the network device 102. For example, when the network device 102 is a switch, the LLDP message may include the port identifier of the switch (such as port number and port name) and MAC address.

[0084] The network card 1012 can specifically be a network card with one or more interfaces, including at least one PCIe interface, or at least one I2C or I3C interface.

[0085] In one possible implementation, the network interface card 1012 further includes a memory (not shown in Figure 1) for storing the LLDP message and the port identifier of the first network interface card corresponding to the LLDP message.

[0086] The management controller 1011 is used to obtain the LLDP message received by the network card 1012 based on the serial clock line SCL and the serial data line SDA, and determine the port identifier of the first network card corresponding to the LLDP message. The LLDP message is sent by a network device (such as a switch) connected to the computing device network to the target port indicated by the port identifier on the first network card. Based on the device information of the network device in the LLDP message and the port identifier of the first network card corresponding to the LLDP message, the management controller 1011 determines the network topology connection information. The network topology connection information is used to display in the management interface of the management controller to show the topology connection relationship between the port of the network card and the network device.

[0087] Network device 102 is used to send LLDP messages to computing device 101. Specifically, network device 102 is used to send the LLDP messages that management controller 1011 needs to obtain to a certain port of the network card 1012.

[0088] Network device 102 may specifically be a switch with one or more ports, such as an Ethernet switch.

[0089] Optionally, the data transmission system described above may include one network device or multiple network devices. In the case that the data transmission system includes multiple network devices, the network card 1012 may connect to each of the multiple switches.

[0090] Optionally, the computing device 101 may be connected to one network card or multiple network cards. In the case of multiple network cards connected to the computing device, one of the multiple network cards may be connected to the network device 102; or each of the multiple network cards may be connected to the network device 102.

[0091] It should be noted that when the computing device 101 is connected to multiple network cards and the data transmission system includes multiple network devices, any one of the multiple network cards has a network connection with at least one of the multiple network devices.

[0092] For example, Figure 2 is a schematic diagram of the hardware structure of the computing device 101 in the data transmission system shown in Figure 1. Taking the computing device as a server as an example, in terms of form, the server can be a rack server or a full-rack server; in terms of performance, it can be a general-purpose server, a GPU (graphics processing unit) server, or an artificial intelligence (AI) server.

[0093] The hardware of this computing device includes a processor, a network interface card (NIC), a management controller, and memory. The software includes a management control module, processor firmware, and an operating system (OS) management unit.

[0094] The aforementioned management and control module runs within the management controller, while the OS management unit runs on the processor (as shown in Figure 2). The management and control module can be a management unit for non-business modules. This module is completely independent of the computing device's operating system and can communicate with the OS management unit through the computing device's management and control interface.

[0095] For example, the management control module may include a management unit for the computer device's operating mode, a management system in a management chip outside the processor, a baseboard management controller (BMC), a system management mode (SMM), etc. It should be noted that the specific form of the management control module in this application is not limited; the above is merely illustrative. In the following embodiments, only a BMC is used as an example for description.

[0096] It should be understood that different server manufacturers use different names for the management control module. In some manufacturers, the management control module is called BMC, while in others it is called the remote management module (integrated light-out, iLO). Specific embodiments in this application will not be listed one by one.

[0097] The network interface card (NIC) is used to receive data or packets sent by the computing device and other devices, and based on the destination address of the data or packets, to send the data or packets to the OS management unit in the processor via the PCIe bus, or to send the data or packets to the management control module via the serial clock line SCL and the serial data line SDA; the NIC is also used to receive data or packets sent by the processor and / or management controller in the computing device, and to send the data or packets to other devices.

[0098] The memory can be RAM, which is installed in a memory slot on the motherboard of a computing device. The RAM communicates with the memory controller through a memory channel.

[0099] It should be noted that the system architecture and application scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of system architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.

[0100] This application provides a data transmission method, which is applied to the management controller in the computing device shown in FIG2 above. Specifically, as shown in FIG3, the method includes: S110-S120.

[0101] S110, the management controller, obtains LLDP messages from the first network card based on the serial clock line SCL and the serial data line SDA, and determines the port identifier of the first network card corresponding to the LLDP message.

[0102] In this step, the management controller and the first network interface card (NIC) communicate directly via the serial clock line SCL and the serial data line SDA. This allows the management controller to acquire LLDP messages even when the OS is not running (e.g., in standby mode), and determine the port identifier of the first NIC corresponding to the LLDP message. The aforementioned LLDP message is sent by a network device connected to the computing device via a network to the target port indicated by the port identifier on the first NIC. In other words, when the NIC receives an LLDP message, it can determine the correspondence between the LLDP message and the port identifier of the target port. For example, the NIC receives LLDP message A from port 1.

[0103] In one possible implementation, after the network device connected to the computing device via the network sends the LLDP message to the target port indicated by the port identifier on the first network card, the first network card writes the LLDP message and the port identifier of the target port into a first table entry; wherein, the first table entry is used to store the correspondence between the LLDP message and the port identifier.

[0104] Specifically, after the network interface card (NIC) receives an LLDP packet through the target port, it can first save the LLDP packet to the NIC's buffer, and then establish a first entry to record the correspondence between the LLDP packet and the target port. This first entry can be stored in the NIC's own table resources or register resources. This ensures the accuracy of data transmission when the NIC needs to send LLDP packets corresponding to a specific port, improves communication reliability, and consequently improves the accuracy of the management controller in determining network topology connection information.

[0105] For example, as shown in Table 1 below, Table 1 is a specific example of the first entry, which includes three port identifiers and four LLDP packets of the first network interface card (NIC). The port identifiers include: port 1, port 2, and port 3; the LLDP packets include: packets A through D. The LLDP packets received by port 1 of this NIC include: packets A and B, abbreviated as: the LLDP packets corresponding to port A include packets A and B; the LLDP packets corresponding to port B include packet C; and the LLDP packets corresponding to port C include packet D.

[0106] Table 1

[0107] In this way, if the first network card receives an instruction from the management controller that instructs the network card to send an LLDP message corresponding to a certain port, the first network card can look up the first entry in the table through the port identifier of that port and return the LLDP message corresponding to the port identifier to the management controller.

[0108] Furthermore, in order to save storage resources of the first network card, the LLDP packets received and saved by the network card from the target port can be the most recent ones. That is to say, the LLDP packets received by the first network card this time can overwrite the previously saved LLDP packets to save buffer space.

[0109] For example, based on Table 1 above, if the first network card obtains packet B later than it obtains packet A, then packet B can overwrite packet A, thus obtaining Table 2 below. Table 1 is another specific example of the first table entry. By comparing Table 1 and Table 2, it can be seen that the storage resources occupied by Table 2 are less than those of Table 1 above.

[0110] Table 2

[0111] For a detailed explanation of how the management controller obtains the LLDP message from the first network card in step S110, and how the management controller determines the port identifier of the first network card corresponding to the LLDP message, please refer to the description of the embodiments corresponding to Figures 5 to 11 below, which will not be repeated here.

[0112] S120: The management controller determines the network topology connection information based on the device information of the network device in the LLDP message and the port identifier of the first network card corresponding to the LLDP message.

[0113] In this step, the management controller can obtain the device information of the network device by parsing the LLDP message content. The device information may include the MAC address, model, name, port number, etc. of the network device. Combined with the port identifier corresponding to the LLDP message, the management controller can determine the connection relationship between the network device and the network card port, that is, the network topology connection information. This network topology connection information can be used to display in the management interface of the management controller to show the topology connection relationship between the network card port and the network device.

[0114] For example, by parsing the LLDP message C, the management controller obtains the device information of the network device as: port 1 of switch 1, and the port identifier corresponding to LLDP message C is port 2 of network card 1. Therefore, the network topology connection information determined by the management controller is: port 2 of network card 1 is connected to port 1 of switch 1.

[0115] Furthermore, by parsing multiple LLDP packets and the port identifiers corresponding to each LLDP packet, the management controller can display a topology connection diagram as shown in Figure 4 on the management interface. Figure 4 is a schematic diagram of a topology connection relationship involved in the embodiment shown in Figure 3, specifically including: network cards 1 and 2, and switches 1 and 2. All four devices include at least three ports shown in Figure 4: ports 1-3. Specifically, ports 1-3 of network card 1 are connected to ports 1 and 3 of switch 1 and port 1 of switch 2, respectively; ports 2 and 3 of network card 2 are connected to ports 2 and 3 of switch 2, respectively.

[0116] It should be noted that Figure 4 above is only one possible example. The topology connection relationship displayed in the management interface of the management controller can be customized according to different actual needs. For example, if it is not necessary to display the topology connection relationship between specific ports, only the topology connection relationship between network cards and network devices can be displayed (e.g., network card No. 1 connects to switch No. 1).

[0117] Through the above S110-S120, the management controller, based on the serial clock line SCL and the serial data line SDA, can determine the network topology connection information without OS intervention. Therefore, it improves the stability of the management controller in obtaining the network topology connection information between network devices and network cards connected to the computing device.

[0118] The following describes step S110 in detail with reference to Figures 5 to 11. In general, the management controller obtains LLDP packets from the first network interface card in the following two ways:

[0119] In the first method, the management controller actively obtains LLDP messages from the first network interface card (NIC); in the second method, the management controller passively receives LLDP messages sent by the first NIC.

[0120] The first approach specifically includes the following two embodiments:

[0121] Example 1

[0122] This application extends the I3C protocol, defines commands for transmitting LLDP messages and network card port identifiers, and provides a specific implementation method for transmitting data (including LLDP messages and / or network card port identifiers) through write and read operations in the I3C protocol. The command timing of the write-read operation defined by the I3C specification is shown in Figure 5.

[0123] The method is shown in Figure 6 and includes: S210-S240.

[0124] Optionally, before executing step S210, the management controller sends a broadcast command to the network card on the serial clock line SCL and the serial data line SDA. This ensures that the management controller is connected to the network card via the serial clock line SCL and the serial data line SDA before proceeding with the following steps, thereby avoiding invalid communication on the serial clock line SCL and the serial data line SDA and improving communication efficiency.

[0125] Specifically, the management controller sends I3C reserved addresses to the network cards on the serial clock line SCL and serial data line SDA. Different I3C reserved addresses have different functions. For example, 7'h7E is a broadcast command used to address all devices.

[0126] For example, the management controller sends a broadcast command: 7'h7E to the network card on the serial clock line SCL and the serial data line SDA.

[0127] If at least one network interface card (NIC) receives the broadcast command and returns a response signal to the management controller indicating receipt of the broadcast command, the management controller can determine that it has connected the NIC via the serial clock line SCL and the serial data line SDA upon receiving the response signal, and then continue to execute the following steps S210-S240.

[0128] S210, the management controller sends the first instruction and the identifier of the first network card to the network card.

[0129] In step S210, the management controller sends the first instruction and the identifier of the first network card to the network card according to the write operation in the I3C protocol.

[0130] The first instruction is explained below: Although the I3C protocol specification does not define a scheme or command for transmitting LLDP messages and network card port identifiers, it does define some common command codes. These common command codes can be represented, for example, through the I3C directed common command codes (I3C directed CCC) field. Different common command codes represent different functions; for example, 0x00 indicates an enable events command. The I3C protocol specification also defines some reserved command codes, with values ​​ranging from 0xE0 to 0xFE, which can be used for extended purposes. This embodiment uses the 0xEA command code as an example, using it as the first instruction to instruct the network card to return an LLDP message, also known as the Get LLDPDU instruction. 0xEA is merely an example; other values ​​from 0xE0 to 0xFE can be used, and the specific setting can be determined according to actual needs.

[0131] In this embodiment, the identifier of the first network interface card (NIC) can refer to its I3C address. In the same I3C communication system, there is a one-to-one correspondence between I3C addresses and NICs; that is, the management controller can only access one NIC at most based on an I3C address. The identifier of the first NIC can also be the MAC address of the NIC, or other configured identifiers.

[0132] For example, the management controller sends a first instruction, 0xEA, and the identifier of the first network card, 7'b1010010, to the network card via the serial clock line SCL and the serial data line SDA.

[0133] S220, the first network card returns a response signal to the management controller.

[0134] In step S210, the management controller sends the first instruction and the identifier of the first network card to the network cards connected to it via the serial clock line SCL and the serial data line SDA, so that these network cards determine whether to respond to the first instruction based on the identifier of the first network card sent by the management controller, and return an acknowledgment signal to the management controller if they determine that they should respond to the first instruction.

[0135] For example, if there is a network card A whose identifier (I3C address) matches the identifier (I3C address) of the first network card, then network card A is the first network card. In this case, network card A will return an acknowledgment signal to the management controller. When the management controller receives the acknowledgment signal, it can determine that the first network card exists among the network cards connected to the management controller via the serial clock line SCL and the serial data line SDA.

[0136] In one possible implementation, if the management controller does not receive a response signal within a set time range, it can continue to send the first command and the identifier of the second network card, and so on, until a response signal is received. If the management controller has sent the identifiers of all network cards connected to it via the serial clock line SCL and the serial data line SDA and still does not receive a response signal, it can resend the first command and the identifier of the first network card after a set time interval, or issue an alarm message to prompt relevant personnel to check.

[0137] S230: The management controller specifies the target port identifier from the port identifier of the first network card and sends the target port identifier to the first network card.

[0138] In this step, the management controller designates a specific port from among the multiple ports of the first network interface card (NIC) and then retrieves the LLDP packets corresponding to that port. The management controller can determine the port identifier in several ways. For example, it can retrieve LLDP packets received by all ports on the first NIC in ascending order of port number. If the management controller previously retrieved port 1 of the first NIC, then this time it can determine port 2. The management controller then identifies the target port and sends it to the first NIC via the serial clock line (SCL) and serial data line (SDA).

[0139] This application embodiment does not limit the way in which the management controller specifies the target port identifier from the port identifier of the first network card.

[0140] S240, the first network card returns an LLDP message to the management controller.

[0141] In this step, after the first network interface card (NIC) receives the port identifier sent by the management controller in step S230, it can retrieve the LLDP packet corresponding to the port identifier by looking up a table (such as Table 2 above) and return it to the management controller. From the perspective of the management controller, the management controller retrieves the LLDP packet corresponding to the port identifier sent in step S230 from the first NIC through an I3C read operation. Then, the management controller can determine the network topology connection information based on the network device information in the LLDP packet and the port identifier sent in step S230.

[0142] For example, the first network interface card (NIC) returns an LLDP message A to the management controller. The management controller receives and parses the LLDP message A, obtaining the device information of the network device as: port 3 of switch 2. Moreover, the port identifier sent by the management controller is: port 4 of NIC 1. Therefore, the management controller determines the network topology connection information as: port 4 of NIC 1 is connected to port 3 of switch 2. Further, the management controller uses this network topology connection information to display in the management interface of the management controller to show the topology connection relationship including port 4 of NIC 1 connected to port 3 of switch 2.

[0143] When the first network card determines that there is no LLDP message corresponding to the port identifier, it can return a specific value to indicate that there is no LLDP information. For example, the first network card returns 0x00. Here, 0x00 is only an example. The first network card can also return other values ​​to indicate that there is no corresponding LLDP information. This application embodiment does not limit the value.

[0144] Thus, through the above steps S210-S240, the management controller can obtain the LLDP packet corresponding to the specified port number from the network card through I3C write-read operations without the need for OS intervention, thereby improving the stability of the management controller in obtaining network topology connection information between network devices and network cards connected to the computing device.

[0145] Example 2

[0146] I3C is backward compatible with I2C, and given the large number of devices supporting the I2C protocol, this application provides a specific implementation method for transmitting data (including LLDP messages and / or network card port identifiers) through write and read operations in the I2C protocol, considering device availability. The command timing for write-read operations as defined in the I2C specification is shown in Figure 7.

[0147] This application extends the I2C protocol by defining a command for transmitting LLDP messages and the port identifier of the network card. The specific method is shown in Figure 8, including: S310-S360.

[0148] S310, the management controller sends an authentication message to the network card.

[0149] In this embodiment of the application, the verification message includes the identifier of the first network card, which may refer to the I2C address of the first network card (with the same format as the I3C address). For example, the management controller sends the verification message 7'b1010010 to the network card through the serial clock line SCL and the serial data line SDA.

[0150] S320, the first network card returns a response signal to the management controller.

[0151] In step S310 above, the management controller sends a verification message to the network card connected to it via the serial clock line SCL and the serial data line SDA. If there is a network card that has passed the verification of the identifier of the first network card in the verification message, for example, if there is a network card whose identifier (I2C address) matches the identifier (I2C address) of the first network card in the verification message, then network card A is the first network card, and the first network card returns a response signal to the management controller. In this way, when the management controller receives the response signal, it can determine that the first network card exists.

[0152] If the management controller does not receive a response signal for the verification message sent in step S310 within the set time range, the management controller can continue to send the verification message for the second network card, and so on, until a response signal is received. If the management controller has sent verification messages for all network cards connected to it through the serial clock line SCL and the serial data line SDA, and has not received a response signal, it can resend the verification message for the first network card after the set time interval, or issue an alarm message to prompt relevant personnel to check.

[0153] S330, the management controller sends the first instruction to the first network card.

[0154] The first instruction is explained below: In this embodiment, the operation command field is defined based on the I2C protocol. Taking 0xE0 as an example, it is used as the first instruction to instruct the network card to return an LLDP packet, or the Get LLDPDU instruction. 0xE0 is only an example; other values ​​can be taken from 0x00-0xFF, and can be set according to actual needs.

[0155] For example, the management controller sends a first instruction: 0xE0 to the first network card via the serial clock line SCL and the serial data line SDA.

[0156] S340, the first network card returns a response signal to the management controller.

[0157] In this step, the first network interface card (NIC) returns a response signal to the management controller to indicate that it has received the first instruction.

[0158] Furthermore, since a first instruction is defined in this embodiment, after receiving the first instruction sent by the management controller in step S330, the first network card can determine that it needs to return an LLDP message to the management controller instead of other data, thereby improving the efficiency of communication between the management controller and the first network card.

[0159] S350: The management controller specifies the target port identifier from the port identifier of the first network card and sends the target port identifier to the first network card.

[0160] In this step, the management controller can refer to step S230 above, and will not be repeated here.

[0161] S360, the first network card returns an LLDP message to the management controller.

[0162] This step, as well as the subsequent process of the management controller determining network topology connection information, can be referred to the relevant description of step S240 above, and will not be repeated here.

[0163] Thus, through the above steps S310-S360, the management controller can obtain the LLDP message corresponding to the specified port number from the network card through I2C write-read operations without the intervention of the OS. This improves the stability of the management controller in obtaining network topology connection information between the network device and the network card connected to the computing device. Furthermore, this method is currently highly available on the device side and has low implementation difficulty and complexity.

[0164] The second approach specifically includes the following embodiment:

[0165] Example 3

[0166] In the aforementioned Embodiment 1 and Embodiment 2, the data transmission originates from the management controller. However, the network device connected to the computing device via the network is actually the network interface card (NIC) that first receives the LLDP message. Therefore, to further improve the real-time performance of the management controller in determining network topology connection information, this application provides a specific implementation method for the NIC to actively transmit data (including LLDP messages and port identifiers) to the management controller through interrupt operations in the I3C protocol, or for the management controller to passively receive data (including LLDP messages and port identifiers) sent by the NIC. The command timing of the interrupt operation defined by the I3C specification is shown in Figure 9.

[0167] This application extends the I3C protocol by defining a command for transmitting LLDP messages and the port identifier of the network card. The specific method is shown in Figure 10, and the method includes: S410-S430.

[0168] Before the network card performs the following step S410, the network device (e.g., a switch) connected to the computing device via the network and each port of the network card are connected, and the network card receives LLDP messages sent by the network device through the port.

[0169] Optionally, after the network card receives an LLDP message sent by a network device connected to the computing device via the target port, the network card writes the LLDP message and the port identifier of the target port into its own buffer, wherein the LLDP message and the port identifier of the target port have a corresponding relationship.

[0170] For example, after the network card receives LLDP message A sent by the switch in the network through port 1, it writes LLDP message A and port identifier: port 1 into its own buffer and records the correspondence between LLDP message A and port 1.

[0171] Optionally, after the network card receives the LLDP message sent by the network device connected to the computing device through the target port, the network card writes the LLDP message and the port identifier of the target port into the first table entry. Please refer to the relevant description in step S110 above, which will not be repeated here.

[0172] S410, the first network card sends an interrupt request to the management controller.

[0173] In this step, after receiving the LLDP message, the first network card can actively send an interrupt request to the management controller through the serial clock line SCL and the serial data line SDA. This interrupt request indicates that the first network card wants to send data to the management controller.

[0174] S420. If an interrupt request is received and accepted, the management controller sends an interrupt enable signal to the first network interface card.

[0175] In this step, when the management controller receives the interrupt request in step S420, it needs to determine whether it can accept the interrupt request according to the I3C protocol specification. For example, the management controller determines whether there is a higher priority read / write operation that needs to be processed. If it can be accepted, the management controller sends an interrupt enable signal to the first network card; if it cannot be accepted, the management controller does not respond. This can ensure the stability and accuracy of data transmission on the serial clock line SCL and the serial data line SDA.

[0176] S430, the first network card sends interrupt data to the management controller.

[0177] In this step, the first network interface card (NIC) sends an LLDP message and the corresponding port identifier to the management controller according to the interrupt data format specified in the I3C protocol. The interrupt data specifically includes: a target mandatory data byte (target MDB) and target IBI data. The one-byte target MDB includes a 3-bit interrupt group number and a 5-bit interrupt identifier. Different interrupt group numbers and interrupt identifiers in the I3C protocol can be used to represent different interrupt types and interrupt data contents. The target IBI data includes multiple one-byte interrupt data entries from target IBI data1 to target IBI dataN. Each target IBI data entry is followed by a transition bit (T-Bit). When the T-Bit is 1, it indicates that the interrupt data has not yet ended; when the T-Bit is 0, it indicates that the interrupt data has ended. The I3C protocol specification defines some reserved interrupt group numbers and interrupt identifiers for extended use. In this embodiment, interrupt group number 3'b000 and interrupt number 5'h0E are used as the first combination to indicate that the content type of the interrupted data is a transmitted LLDP message type. 3'b000 and 5'h0E are merely examples; the interrupt group number can also be other values ​​from 3'b000, 3'b110, and 3'b111; the interrupt number can also be other values ​​from 5'h00 to 5'h1F. The specific values ​​can be set according to actual needs.

[0178] Specifically, when the network card executes step S430, it first sends the target MDB, then sends one T-Bit (with a value of 1), and then sends one or more target IBI data. Each target IBI data is followed by one T-Bit. Except for the T-Bit following the last target IBI data, which has a value of 0, the others have a value of 1.

[0179] For example, the network interface card (NIC) fills the port identifier into "target IBI data1", then fills the acquired LLDP packets in bytes sequentially into "target IBI data2"-"target IBI dataN", and transmits them to the management controller in sequence. The NIC can fill the port identifier into other target IBI data fields as needed.

[0180] Furthermore, after receiving the interrupt data sent by the first network card, the management controller determines that the content type of the interrupt data is an LLDP message by judging whether the combination of the interrupt group number and the interrupt number value in the target MDB of the interrupt data matches the first combination. This ensures that the management controller parses the interrupt data in the correct parsing method, thereby ensuring the accuracy of the management controller in determining the network topology connection information.

[0181] Thus, through the above steps S410-S430, the network card actively sends LLDP messages and corresponding port numbers to the information management controller via I3C interrupt operations without the need for OS intervention. This improves the stability of the management controller in obtaining network topology connection information between network devices and network cards connected to the computing device, and this method has high real-time performance.

[0182] In the above embodiments, when the management controller and the network card communicate through the serial clock line SCL and the serial data line SDA, they actually control the serial clock line SCL and the serial data line SDA to generate specific level states or combinations of level transition states according to the specifications of the I2C or I3C protocol, which will not be described in detail in the embodiments of this application.

[0183] The foregoing mainly describes the solutions provided by the embodiments of this application from a methodological perspective. To achieve the above functions, it includes corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, based on the units and algorithm steps of the examples described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0184] This application embodiment can divide the data transmission device according to the above method example. For example, it can divide the device into functional modules corresponding to various functions, or it can integrate two or more functions into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.

[0185] With each functional module divided according to its corresponding function, Figure 11 shows a possible structural schematic diagram of the data transmission device involved in the above embodiments. As shown in Figure 11, the data transmission device 1100 includes: an acquisition module 1110 and a determination unit 1120.

[0186] The acquisition module 1110 is used to acquire Link Layer Discovery Protocol (LLDP) messages from the first network interface card (NIC) based on the serial clock line SCL and the serial data line SDA, and determine the port identifier of the first NIC corresponding to the LLDP message; the LLDP message is sent by a network device connected to the computing device network to the target port indicated by the port identifier on the first NIC; the LLDP message includes the device information of the network device.

[0187] The determining unit 1120 is used to determine network topology connection information based on the device information port identifier of the network device in the LLDP message and the port identifier of the first network card corresponding to the LLDP message. The network topology connection information is used to display in the management interface of the management controller to show the topology connection relationship between the port of the first network card and the network device.

[0188] Optionally, the acquisition module 1110 is configured to send a first instruction to the first network card based on the serial clock line SCL and the serial data line SDA; the first instruction is configured to instruct the first network card to return the LLDP message; if a response signal from the first network card to the first instruction is received, a port identifier is determined and the port identifier is sent to the first network card; and the LLDP message corresponding to the port identifier returned by the first network card is received.

[0189] Optionally, the acquisition module 1110 is used to send the first instruction and the identifier of the first network card to the network card on the serial clock line SCL and the serial data line SDA based on the serial clock line SCL and the serial data line SDA; the network card is used to determine whether to respond to the first instruction based on the identifier of the first network card.

[0190] Optionally, the data transmission device 1100 further includes a broadcast module. The broadcast module is used to send a broadcast command to the network interface cards (NICs) on the serial clock line SCL and the serial data line SDA. The acquisition module 1110 is used to send the first command and the identifier of the first NIC to the NICs on the serial clock line SCL and the serial data line SDA upon receiving a response signal from at least one NIC in response to the broadcast command.

[0191] Optionally, the acquisition module 1110 is configured to send a verification message to the network interface card (NIC) on the serial clock line SCL and the serial data line SDA based on the serial clock line SCL and the serial data line SDA. The verification message includes the identifier of the first NIC. The NIC is configured to return a response signal if the identifier is verified successfully. If the response signal of the first NIC is received, the first instruction is sent to the first NIC.

[0192] Optionally, the acquisition module 1110 is configured to, if it receives an interrupt request sent by the first network card and accepts the interrupt request, send an interrupt enable signal to the first network card; receive interrupt data sent by the first network card based on the serial clock line SCL and the serial data line SDA; the interrupt data includes an LLDP message and the port identifier of the first network card corresponding to the LLDP message; and obtain the LLDP message and the port identifier of the first network card corresponding to the LLDP message from the interrupt data.

[0193] Optionally, the interrupt data further includes an interrupt mandatory data byte Target MDB; the interrupt mandatory data byte Target MDB is used to indicate the content type of the interrupt data; the acquisition module 1110 is used to obtain the LLDP message and the port identifier of the first network card corresponding to the LLDP message from the interrupt data if the combination of the interrupt group number and the interrupt number value in the interrupt mandatory data byte Target MDB matches a first combination; the first combination is used to indicate that the content type of the interrupt data is the LLDP message transmission type.

[0194] Optionally, the identifier of the network card includes address information conforming to the I2C or I3C integrated circuit bus protocol specification.

[0195] The above embodiments can be implemented entirely or partially by software, hardware, firmware, or any combination thereof. When implemented using software programs, they can be implemented entirely or partially in the form of a computer program product. This computer program product includes one or more computer instructions. When these computer instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application 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. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., digital video discs (DVDs)), or semiconductor media (e.g., solid-state drives (SSDs)).

[0196] Through the above description of the embodiments, those skilled in the art will clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. The specific working process of the system, device, and unit described above can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.

[0197] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, or indirect coupling or communication connection between apparatuses or units, and may be electrical, mechanical, or other forms.

[0198] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0199] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0200] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as flash memory, portable hard disk, read-only memory, random access memory, magnetic disk, or optical disk.

[0201] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

A data transmission method, characterized in that, A management controller applied to a computing device, the management controller being connected with a network card through a serial clock line SCL and a serial data line SDA, the network card being used for connecting the computing device with an external network; the method comprises: obtaining a link layer discovery protocol LLDP message from a first network card based on the serial clock line SCL and the serial data line SDA, and determining a port identifier of the first network card corresponding to the LLDP message; the LLDP message is sent by a network device connected with the computing device to a target port indicated by the port identifier on the first network card; the LLDP message comprises device information of the network device; determining network topology connection information based on the device information of the network device in the LLDP message and the port identifier of the first network card corresponding to the LLDP message, the network topology connection information being used for being displayed in a management interface of the management controller to show a topology connection relationship between a port of the first network card and the network device. The method of claim 1, wherein The method of obtaining the LLDP message from the first network card based on the serial clock line SCL and the serial data line SDA, and determining the port identifier of the first network card corresponding to the LLDP message comprises: sending a first instruction to the first network card based on the serial clock line SCL and the serial data line SDA; the first instruction is used for instructing the first network card to return the LLDP message; if a response signal of the first network card for the first instruction is received, determining the port identifier, and sending the port identifier to the first network card; receiving the LLDP message corresponding to the port identifier returned by the first network card. The method according to claim 2, characterized in that The method of sending the first instruction to the first network card based on the serial clock line SCL and the serial data line SDA comprises: sending the first instruction and an identifier of the first network card to a network card on the serial clock line SCL and the serial data line SDA based on the serial clock line SCL and the serial data line SDA; the network card is used for determining whether to respond to the first instruction according to the identifier of the first network card. The method according to claim 3, characterized in that Before the method of sending the first instruction and the identifier of the first network card based on the serial clock line SCL and the serial data line SDA, the method further comprises: sending a broadcast instruction to the network card on the serial clock line SCL and the serial data line SDA; The method of sending the first instruction and the identifier of the first network card to the network card on the serial clock line SCL and the serial data line SDA based on the serial clock line SCL and the serial data line SDA comprises: in a case that a response signal of at least one network card for the broadcast instruction is received, sending the first instruction and the identifier of the first network card to the network card on the serial clock line SCL and the serial data line SDA. The method according to claim 2, characterized in that The method of sending the first instruction to the first network card based on the serial clock line SCL and the serial data line SDA comprises: sending a verification message to a network card on the serial clock line SCL and the serial data line SDA, the verification message comprising an identifier of the first network card; the network card being configured to return a response signal if the identifier is verified; if the response signal of the first network card is received, sending the first instruction to the first network card. The method of claim 1, wherein The method comprises the following steps: if an interrupt request sent by the first network card is received and the interrupt request is accepted, sending an interrupt permission signal to the first network card; receiving interrupt data sent by the first network card based on the serial clock line SCL and the serial data line SDA; the interrupt data comprising an LLDP message and a port identifier of the first network card corresponding to the LLDP message; obtaining the LLDP message and the port identifier of the first network card corresponding to the LLDP message from the interrupt data. The method according to claim 6, characterized in that The interrupt data further comprises an interrupt mandatory data byte Target MDB; the interrupt mandatory data byte Target MDB being configured to indicate a content type of the interrupt data. The method comprises the following steps: if a combination of an interrupt group number and an interrupt number value in the interrupt mandatory data byte Target MDB meets a first combination, obtaining the LLDP message and the port identifier of the first network card corresponding to the LLDP message from the interrupt data; the first combination being configured to indicate that the content type of the interrupt data is a transmission LLDP message type. The method according to any one of claims 3-7, characterized in that The identifier of the network card comprises address information meeting an Inter-Integrated Circuit (I2C) or an Improved Inter-Integrated Circuit (I3C) protocol specification. A data transmission method, characterized in that, The method comprises the following steps: determining a port identifier and sending a link layer discovery protocol (LLDP) message corresponding to the port identifier to a management controller based on the serial clock line SCL and the serial data line SDA; the LLDP message being sent by a network device connected to the computing device to a target port indicated by the port identifier on the network card; the LLDP message comprising device information of the network device. The method of claim 9, wherein The method comprises the following steps: determining a port identifier and sending a link layer discovery protocol (LLDP) message corresponding to the port identifier to a management controller based on the serial clock line SCL and the serial data line SDA; the LLDP message being sent by a network device connected to the computing device to a target port indicated by the port identifier on the network card; the LLDP message comprising device information of the network device. If a first instruction sent by the management controller based on the serial clock line SCL and the serial data line SDA is received, a response signal for the first instruction is sent to the management controller; the first instruction is used to instruct the network card to return the LLDP packet; If a port identifier sent by the management controller is received, an LLDP packet corresponding to the port identifier is obtained; The LLDP packet is returned to the management controller based on the serial clock line SCL and the serial data line SDA. The method of claim 10, wherein The response signal for the first instruction sent to the management controller includes: If the first instruction sent by the management controller based on the serial clock line SCL and the serial data line SDA and the identifier of the first network card are received, and it is determined to respond to the first instruction according to the identifier of the first network card, a response signal for the first instruction is sent to the management controller. The method of claim 11, wherein Before the response signal for the first instruction is sent to the management controller, the method further includes: If a broadcast instruction sent by the management controller based on the serial clock line SCL and the serial data line SDA is received, a response signal for the broadcast instruction is sent to the management controller; The response signal for the first instruction sent to the management controller includes: If the first instruction sent by the management controller based on the serial clock line SCL and the serial data line SDA and the identifier of the first network card are received, and it is determined to respond to the first instruction according to the identifier of the first network card, a response signal for the first instruction is sent to the management controller. The method of claim 10, wherein Before the response signal for the first instruction sent to the management controller based on the serial clock line SCL and the serial data line SDA is received, the method further includes: If a verification message sent by the management controller based on the serial clock line SCL and the serial data line SDA is received, a response signal for the verification message is sent to the management controller if the verification message is verified; the verification message includes the identifier of the first network card. The method of claim 9, wherein The determination of the port identifier and the sending of the link layer discovery protocol (LLDP) packet corresponding to the port identifier to the management controller based on the serial clock line SCL and the serial data line SDA includes: An interrupt request is sent to the management controller based on the serial clock line SCL and the serial data line SDA; An interrupt permission signal returned by the management controller is received; Interrupt data is sent to the management controller based on the serial clock line SCL and the serial data line SDA; the interrupt data includes the LLDP packet and the port identifier of the first network card corresponding to the LLDP packet. The method of claim 14, wherein The interrupt data sent to the management controller based on the serial clock line SCL and the serial data line SDA includes An interrupt must data byte target MDB, interrupt data content sent to the management controller based on the serial clock line SCL and serial data line SDA; The combination of the interrupt group number and the interrupt number value in the interrupt must data byte target MDB meets a first combination; the first combination is used to indicate that the content type of the interrupt data is a transmission LLDP packet type; the interrupt data content includes the LLDP packet and the port identifier of the first network card corresponding to the LLDP packet. The method according to any one of claims 9-15, characterized in that After the LLDP packet sent by the network device connected with the computing device is received by the target port, the method further comprises: writing the LLDP packet and the port identifier of the target port into a first table item; the first table item is used to save the corresponding relationship between the LLDP packet and the port identifier. The method according to any one of claims 9-16, characterized in that The identifier of the network card includes address information meeting the integrated circuit bus I2C or improved integrated circuit bus I3C protocol specification. A computing device, characterized in that The computing device includes a management controller and a central processor; the central processor is connected with a network card; the network card is used for connecting the computing device with an external network; the management controller is connected with the network card through a serial clock line SCL and a serial data line SDA; The management controller is used to acquire a link layer discovery protocol LLDP packet from a first network card based on the serial clock line SCL and the serial data line SDA, and determine the port identifier of the first network card corresponding to the LLDP packet; The LLDP packet is sent by a network device connected with the computing device to a target port indicated by the port identifier on the first network card; the LLDP packet includes device information of the network device; Based on the device information of the network device in the LLDP packet and the port identifier of the first network card corresponding to the LLDP packet, a topology connection relationship between the port of the first network card and the network device is determined, and the topology connection relationship is used to be displayed in a management interface of the management controller.

Citation Information

Patent Citations

  • System, method and server for obtaining network topology

    CN109831318A

  • Computing device

    CN117793032A

  • Data transmission method and computing device

    CN119052099A

  • System and method for providing secure console access with multtiple smart nics using NC-si and spdm

    US20220210229A1

  • Computing device

    WO2024045742A1