Server communication system and methods
By introducing Ethernet switching components and programming modules into the server to dynamically generate communication addresses, the problems of low KCS link speed and the need for manual configuration for hardware changes are solved, achieving efficient and automated network management and reducing operation and maintenance costs.
Patent Information
- Application Number
- CN202511016005.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-23
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2045-07-23
AI Technical Summary
In traditional servers, the KCS link speed between BMC and SMC is low, which cannot meet the high data volume requirements of modern servers, resulting in wasted hardware resources and high operation and maintenance costs. Furthermore, hardware changes require manual reconfiguration of network parameters.
Using Ethernet switching components as a communication bridge, communication addresses are dynamically generated through programming and software modules, simplifying hardware design, enabling flexible and efficient connections between devices, and automatically completing network configuration.
It improves the communication speed of internal server devices, reduces the operation and maintenance costs caused by hardware changes, reduces manual intervention, and ensures the automation and stability of network configuration.
Smart Images

Figure CN120528778B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to communication systems and methods for servers. Background Technology
[0002] In traditional server designs, communication between the system and the BMC (Baseboard Management Controller) and the SMC (Satellite Management Controller) typically relies on the KCS (Keyboard Controller Style) connection. However, KCS, as a low-speed link technology, offers limited speed improvements, only increasing from around 10 Mbps to 20 Mbps. With the exponential growth in the amount of data that modern servers need to manage, and the increasingly intelligent and powerful devices connected to these servers—such as smart network interface cards (NICs) and GPU cards—these SMC devices are themselves independent operating systems, containing their own BMCs and requiring the processing of massive amounts of data. Clearly, KCS link technology cannot meet their demands.
[0003] In related technologies, BMC, OS, and SMC still primarily connect point-to-point via KCS. Due to the low link speed, additional high-speed links (such as USB) are often needed to meet the demands of high-speed communication. This results in multiple link types between communication devices. For example, from a hardware perspective, if the BMC needs to communicate separately with the OS and SMC, two USB and two KCS connections are required, wasting hardware resources. From a software perspective, if the BMC needs to communicate separately with the OS and SMC, management programs need to run simultaneously on the KCS and USB. Furthermore, when replacing devices (such as server network cards), the communication addresses (MAC / IP addresses) may no longer be applicable, requiring manual network reconfiguration, which is prone to errors and leads to high maintenance costs. Summary of the Invention
[0004] This application provides a communication system and method for servers to at least solve the problems in related technologies, such as slow speeds caused by link technology connecting management system components and high costs caused by the need for manual reconfiguration of network parameters when hardware changes are made.
[0005] This application provides a server communication system, including: a switching component and at least one functional component of the server, wherein the switching component includes a programming module and at least one port, the port being connected to the functional component, the programming module obtaining the communication address prefix of the functional component and the port through which the functional component connects to the switching component; and a software module integrated on the functional component, the software module communicating with the programming module, for setting a communication address to the internal network card of the functional component according to the communication address prefix and the port, wherein the functional components, after setting, interact with each other through the switching component.
[0006] This application also provides a communication method based on a server communication system, comprising the following steps: obtaining a read instruction initiated by a functional component; sending the read instruction to a programming module, wherein the programming module identifies the communication address prefix of the functional component and the port of the functional component connected to the switching component based on the read instruction; sending the communication address prefix and port to a software module integrated on the functional component, wherein the software module sets the communication address to the internal network card of the functional component according to the communication address prefix and port, wherein the functional components after setting the address interact with each other through the switching component.
[0007] This application simplifies hardware design by using an Ethernet switching component as a communication bridge between internal server devices, making connections between different devices more flexible and efficient. Based on the interaction between the software modules integrated on the functional components and the programming modules in the switching components, communication addresses can be dynamically generated. Each functional component can automatically complete its own network configuration without manual intervention, effectively reducing the maintenance costs caused by hardware changes. This solves the problems in related technologies where management system components are connected via link technology, resulting in slow speeds, and where hardware changes usually require manual reconfiguration of network parameters, leading to high maintenance costs. Attached Figure Description
[0008] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0009] Figure 1 A block diagram of a server communication system provided in an embodiment of this application;
[0010] Figure 2 A schematic diagram illustrating the principle of a server communication system provided in one embodiment of this application;
[0011] Figure 3 An execution flowchart of a programming module provided in one embodiment of this application;
[0012] Figure 4 An execution flowchart of a software module provided in one embodiment of this application;
[0013] Figure 5 A flowchart illustrating a communication method provided in one embodiment of this application. Detailed Implementation
[0014] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.
[0015] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.
[0016] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0017] Embodiments of this application provide a server communication system 10, such as... Figure 1 As shown, it includes: a switching component 101 and at least one functional component 102 of a server.
[0018] The switching component 101 includes a programming module and at least one port, which is connected to the functional component 102. The programming module obtains the communication address prefix of the switching component 101 and the port on which the switching component 101 is connected. A software module is integrated on the functional component 102. The software module communicates with the programming module and is used to set the communication address to the internal network card of the functional component 102 according to the communication address prefix and the port. After setting, the functional components 102 interact with each other through the switching component 101.
[0019] It is understood that the switching component 101 in this embodiment of the application acts as a central switching node, responsible for connecting various functional components 102 and enabling data interaction between them. The switching component 101 includes a programming module (such as LSW_CPLD) and at least one port. The programming module is responsible for obtaining the communication address prefix (MAC address prefix and IP address prefix) of the switching component 101, and identifying the specific port connected to each functional component 102. Each functional component 102 (such as BMC, OS, SMC, etc.) integrates a software module (FUNC_MANAGE) for communicating with the programming module and setting the corresponding MAC address and IP address to the internal network card according to the communication address prefix and port number obtained from the programming module. After the communication addresses are set, the various functional components 102 can perform efficient data interaction through the switching component 101. Therefore, this embodiment of the application uses a unified Ethernet interface and switching component, reducing the complexity of hardware wiring, lowering hardware costs, simplifying hardware design, and improving the internal network communication speed.
[0020] In some embodiments, the communication address includes an Internet Protocol address and a physical address, wherein the Internet Protocol address consists of an Internet Protocol address prefix and a port representation, and the physical address consists of a physical address prefix and a port identifier.
[0021] In related technologies, the BMC maintains a fixed set of riser tables, which causes problems when riser configurations need to be changed. For example, if the riser card configuration is changed, causing the I2C address (IP address and MAC address) of the riserswitch chip corresponding to slot "PCIE0" transmitted by the BIOS to change to addr2 and the channel number to channel2, the BMC is unaware that the current riser configuration has changed, nor does it know the slot information corresponding to the new riser configuration. This application's method of dynamically generating unique physical addresses (MAC addresses) and Internet Protocol addresses (IP addresses) allows the server to easily adapt to different application scenarios without changing hardware configurations, without worrying about address conflicts or communication failures. Furthermore, through an automated address allocation and management mechanism, manual intervention is reduced. For example, generating internal MAC addresses saves MAC address resources, eliminates the factory MAC address burning process, and speeds up factory production efficiency; generating internal IP addresses simplifies the management of devices within the server.
[0022] In one embodiment of this application, the software module sends a read instruction to the programming module, and the programming module responds to the read instruction. The read instruction is used to read at least one of the Internet Protocol address prefix, physical address prefix and port identifier.
[0023] In this embodiment, the software module (e.g., the FUNC_MANAGE module) and the programming module (e.g., LSW_CPLD) interact through a specific set of read commands to read key network parameters such as Internet Protocol (IP) address prefixes, physical address (MAC) prefixes, and port identifiers. The read command set includes the GET_PORT command, the GET_MAC_ADDR_PREFIX command, and the GET_IP_ADDR_PREFIX command. The GET_PORT command is used to obtain the port number of the switch chip connected to functional component 102. The GET_MAC_ADDR_PREFIX command is used to obtain the MAC address prefix. The GET_IP_ADDR_PREFIX command is used to obtain the IP address prefix.
[0024] During actual execution, when the software module powers on and initializes, it actively sends a series of read commands to the programming module. These commands include, but are not limited to, the GET_PORT command, the GET_MAC_ADDR_PREFIX command, and the GET_IP_ADDR_PREFIX command. After receiving these read commands, the programming module LSW_CPLD performs the corresponding operation according to the request type and returns the result to the software module, as follows:
[0025] 1) GET_PORT command
[0026] Requesting devices such as BMC, OS, and SMC obtain specific port information on the Ethernet switching component 101 by sending specific commands (e.g., GET_PORT) to the programming module (e.g., LSW_CPLD). This port information is used to set the requester's MAC address, IP address, etc.
[0027] 2) The GET_MAC_ADDR_PREFIX command
[0028] In related technologies, communication between internal functional modules such as BMC, OS, and SMC relies on fixed hardware connection methods (such as KCS) or preset riser tables. These functional modules typically use the same MAC address prefix (e.g., from the same manufacturer), and port number information cannot be dynamically obtained. This leads to multiple devices using the same MAC address in a local area network, which can easily cause MAC conflicts and communication failures.
[0029] To address this issue, this application proposes a method for dynamically configuring MAC addresses based on a command interface provided by a programming module (such as LSW_CPLD). The key steps are as follows:
[0030] Step 1: Obtain the MAC address prefix (GET_MAC_ADDR_PREFIX);
[0031] After each functional component 102 (BMC, OS, SMC) powers on, it sends a GET_MAC_ADDR_PREFIX command to LSW_CPLD. LSW_CPLD returns a unified MAC address prefix, usually an Organizationally Unique Identifier (OUI) registered by the company, such as 00:22:00, ensuring that the MAC address belongs to the same vendor and conforms to the standard specification.
[0032] Step 2: Get the currently connected Ethernet port (GET_PORT);
[0033] After each functional component 102 (BMC, OS, SMC) is powered on, it obtains the specific physical port number (e.g., Port 1, Port 2) to which it is connected to the switching chip via GET_PORT. The port number serves as a unique identifier for the functional component 102 in the network topology.
[0034] Step 3: Combine and generate a unique MAC address;
[0035] For example, with a MAC address prefix of MAC_Prefix = 00:22:00 and a port number of Port_Number = 05, combining the MAC address prefix and port number generates the final MAC address as 00:22:00:00:00:05. This ensures that the MAC address of each functional component 102 is unique within the same local area network, avoiding conflicts.
[0036] 3) GET_IP_ADDR_PREFIX command
[0037] Step 1: Get the IP address prefix (GET_IP_ADDR_PREFIX);
[0038] After the functional component 102 (such as BMC) is powered on, it sends the GET_IP_ADDR_PREFIX command to LSW_CPLD.
[0039] LSW_CPLD returns a preset IP address prefix, such as 192.168.1.0. This network segment must ensure that it does not overlap with external networks (such as data center networks) to avoid IP conflicts.
[0040] Step 2: Get the currently connected Ethernet port (GET_PORT);
[0041] Functional component 102 (such as BMC) sends a GET_PORT command to obtain the specific physical port number (such as Port 3) to which it is connected. The port number is used to distinguish different devices and is a key identifier for generating a unique IP address.
[0042] Step 3: Combine and generate a unique IP address;
[0043] With IP address prefix: IP_Prefix = 192.168.1.0, port number: Port_Number = 3, the final IP address is: 192.168.1.3. This ensures that each functional component 102 has a unique IP address within the same local area network, thereby achieving stable and reliable communication.
[0044] Therefore, when the server replaces or reconfigures the Riser card, the Ethernet switching chip ports connected to devices such as the BMC, OS, and SMC may change, affecting their communication addresses in the network. In related technologies, these addresses typically rely on firmware presets or manual configuration, failing to automatically detect and adapt to changes in topology, easily leading to MAC address conflicts, IP address conflicts, or communication path failures. In the technical solution of this application, each functional module sends commands such as GET_PORT, GET_MAC_ADDR_PREFIX, and GET_IP_ADDR_PREFIX to the LSW_CPLD, enabling real-time acquisition of the current network environment information during the power-on initialization phase, and automatically generating unique MAC and IP addresses based on this information. In this way, even if the Riser card configuration changes, network parameters can still be automatically updated and adapted without firmware modification or manual intervention.
[0045] In one embodiment of this application, functional component 102 is a combination of motherboard management controller, operating system and satellite controller.
[0046] In one embodiment of this application, the software module is further configured to: monitor the Internet Protocol address of each functional component 102 on the internal network card; if the Internet Protocol address is consistent with the external network address, send a deletion command to the programming module, and the programming module responds to the deletion command, which is used to delete the Internet Protocol address of the functional component 102 on the internal network card.
[0047] To ensure compatibility with external networks and avoid conflicts, embodiments of this application may have software modules in the Motherboard Management Controller (BMC) or Operating System (OS) periodically designed to monitor and manage Internet Protocol (IP) addresses on the internal network interface card (NIC), ensuring timely detection of any potential IP address changes or conflicts. If an internal network address is detected to be identical to an external network address, a potential conflict risk is considered, as this could lead to packet routing errors or other communication problems. In actual implementation, once it is found that the internal network IP address of a functional component 102 is the same as the external network address, the software module of the BMC or OS will send a "delete command" to the programming module (e.g., LSW_CPLD).
[0048] Upon receiving a deletion command, the programming module will execute the corresponding operation to delete the IP address of the functional component 102 on the internal network card. This immediately eliminates potential IP conflicts, prevents interference between the internal and external networks, and ensures the security and reliability of data transmission.
[0049] In another embodiment, if the Internet Protocol address of functional component 102 is consistent with the external network address, the software module of the motherboard management controller or the operating system is further used to send a modification instruction to the programming module. The programming module responds to the modification instruction and modifies the Internet Protocol address prefix of the corresponding functional component 102.
[0050] Understandably, when an internal IP address is detected to be identical to an external network address, the software module of the BMC or OS can send a "modification instruction" to the programming module. The programming module adjusts the IP address prefix of the corresponding functional component 102 according to the received modification instruction, thereby generating a new, non-conflicting internal network IP address. In actual execution, if the currently used IP address prefix causes a conflict, the IP address prefix can be changed to a value not used by the external network using the SET_IP_ADDR_PREFIX command, ensuring that the newly generated IP address does not duplicate the external network address.
[0051] Therefore, this embodiment of the application, through a mechanism of real-time monitoring and automatic adjustment, enables the server to maintain optimal performance and stability in different network environments. Even when the network environment changes, it can react quickly, reducing the need for manual intervention. Furthermore, there is no need to worry about complex setup issues caused by hardware replacement or configuration changes, as all adjustments can be completed automatically.
[0052] In one embodiment of this application, the software module of the motherboard management controller or the operating system is further used to send a setting instruction to the programming module, and the programming module responds to the setting instruction to set the communication address prefix of the corresponding functional component 102.
[0053] Understandably, the various functional components 102 within the server (such as the BMC, OS, and SMC) communicate via the Ethernet switching component 101. To ensure these devices have unique identifiers within the network, the system introduces an address prefix management mechanism based on a programming module (such as LSW_CPLD). LSW_CPLD stores a unified MAC / IP address prefix. Each functional component 102 (such as the BMC, OS, and SMC) obtains the prefix upon power-on or during operation using specific commands (such as GET_MAC_ADDR_PREFIX and GET_IP_ADDR_PREFIX). If the address prefix needs adjustment (e.g., if an address conflict is detected or the Riser card is replaced), it can be updated using setting commands such as SET_MAC_ADDR_PREFIX or SET_IP_ADDR_PREFIX. Specifically:
[0054] 1) SET_MAC_ADDR_PREFIX command
[0055] In the internal communication network of a server, the MAC address is the fundamental basis for uniquely identifying a device. If any functional module (such as the SMC) can arbitrarily change the MAC address prefix, it may lead to the following security risks. Therefore, this application embodiment strictly controls the setting permission of the MAC address prefix. Since the BMC is the management core of the system, responsible for hardware status monitoring and fault recovery, and the OS is the main operating system with full access to system resources, this application embodiment can allow entities with system management permissions (such as the BMC or OS) to execute relevant commands.
[0056] In practice, when the BMC or OS sends the SET_MAC_ADDR_PREFIX command, the LSW_CPLD needs to verify the legitimacy of the command initiator. This can be achieved by identifying the initiator based on the address on the I2C bus. Ensuring that only a trusted entity can modify the MAC address prefix is crucial to preventing potential security threats. Once the LSW_CPLD verifies that a valid SET_MAC_ADDR_PREFIX request has been received, it begins processing the command: verifying the validity of the new prefix and updating the MAC address prefix value in the internal register or memory area. After the update is complete, the BMC or OS needs to notify other relevant components to retrieve the latest MAC address prefix and generate the complete MAC address accordingly.
[0057] 2) SET_IP_ADDR_PREFIX command
[0058] In this embodiment, the SET_IP_ADDR_PREFIX command is also executed by an entity with system management privileges (such as the BMC or OS). The specific execution can be referenced to the SET_MAC_ADDR_PREFIX command in the above embodiments; to avoid redundancy, it will not be elaborated here.
[0059] The server communication system proposed in the embodiments of this application uses an Ethernet switching component as a communication bridge between internal server devices, which simplifies hardware design and makes the connection between different devices more flexible and efficient. Based on the interaction between the software module integrated on the functional component and the programming module in the switching component, communication addresses can be dynamically generated. Each functional component can automatically complete its own network configuration without manual intervention, effectively reducing the operation and maintenance costs caused by hardware changes. This solves the problems in related technologies where the management system components are connected by link technology, resulting in slow speeds, and where hardware changes usually require manual reconfiguration of network parameters, leading to high maintenance costs.
[0060] The following is combined with, for example Figure 2 The specific examples shown illustrate the communication system of the server in this application embodiment.
[0061] Specifically, the switching component 101 is as follows: Figure 2 The switching chip shown allows various functional components 102 to communicate and exchange data via the chip. The OS (Operating System), as the core software layer, manages and schedules hardware resources, providing the user interface and application runtime environment. The BMC (Branch Management Controller) operates independently of the main processor, monitoring and managing the server's hardware status, such as temperature, voltage, and fan speed, and providing remote management functions. The NIC (Network Interface Card) is responsible for data transmission between the server and external networks and is a key hardware component for server network access. The GPU (Graphics Processing Unit) is primarily managed and scheduled by the OS and its drivers, specifically designed for graphics computing and acceleration tasks, and is widely used in high-performance computing, machine learning, and other fields.
[0062] The LSW_CPLD module in the switching chip is used to identify which ports of the Ethernet switching chip the OS, BMC, and SMC are connected to; to obtain and set the Ethernet MAC address prefix; and to obtain and set the TCP / IP network IP address prefix. These correspond to the GET_PORT, GET_MAC_ADDR_PREFIX, SET_MAC_ADDR_PREFIX, GET_IP_ADDR_PREFIX, and SET_IP_ADDR_PREFIX commands, respectively.
[0063] The GET_PORT command is used to obtain which port of the Ethernet switching chip the functional component 102 (such as the BMC) is connected to. This port is used to set the MAC address, IP address, etc. of the requesting party. The GET_MAC_ADDR_PREFIX command obtains the Ethernet MAC address prefix. The MAC address is the foundation of Ethernet communication. In an Ethernet LAN, the MAC addresses of communicating devices must be different; otherwise, a conflict will occur, leading to communication failure. However, for internal network devices, the MAC addresses are the same by default, so communication will definitely fail by default. The GET_MAC_ADDR_PREFIX command obtains the MAC prefix (mac_prefix), and the GET_PORT command obtains the Ethernet port. Using mac_prefix + port, a unique MAC address within the internal network can be generated. For example, if mac_prefix is 00:22:00:00:00:00 and port is 1, then the MAC address of this device is 00:22:00:00:00:01. mac_prefix is generally set to the company's MAC prefix. The `SET_MAC_ADDR_PREFIX` command can modify the MAC address prefix. This command can only be executed by the BMC and OS; the SMC cannot execute it with the necessary permissions because SMCs may be from different manufacturers, and allowing the SMC to modify the MAC address prefix poses a security risk. The `GET_IP_ADDR_PREFIX` command retrieves the TCP / IP network IP address prefix. IP addresses are fundamental to TCP / IP network communication. In a TCP / IP LAN, the IP addresses of communicating devices must be different; otherwise, conflicts will occur, leading to communication failures. However, communication devices do not have IP addresses by default and need to obtain usable IP addresses through some means and then set them on the device. `GET_IP_ADDR_PREFIX` obtains the IP prefix `ip_prefix`, and `GET_PORT` obtains the Ethernet port. Using `ip_prefix + port` generates a unique IP address within the internal network. For example, if `ip_prefix` is 192.168.1.0 and `port` is 1, then the device's IP address is 192.168.1.1. The `ip_prefix` needs to be set to a different network segment than the external network; otherwise, it will affect the external network. The `SET_IP_ADDR_PREFIX` command is used to modify the IP address prefix. Servers operate in different environments, and the external network's IP address segment may be the same as the internal network's IP address, which can cause TCP / IP network anomalies. Therefore, it's necessary to modify the internal TCP / IP network address prefix. However, this command can only be executed by the BMC and OS; the SMC lacks the necessary permissions to execute it because SMCs may be from different manufacturers, and allowing the SMC to modify the IP address prefix poses a security risk.
[0064] Specifically, such as Figure 3 As shown, the LSW_CPLD module receives the GET_PORT command, which queries the port number of the switching chip currently connected to the requesting party (such as the BMC), and encapsulates the obtained port number information into a response data packet and sends it to the requesting party. If the query fails (e.g., due to network failure or hardware problem), an error log is logged and an error message is returned.
[0065] The LSW_CPLD module receives the GET_MAC_ADDR_PREFIX command, which checks if a valid MAC address prefix exists in the EEPROM (Electrically Erasable Programmable Read-Only Memory). If it does not exist or the data is invalid, an error log is logged and an error message is returned. If it exists, the MAC address prefix is read from the EEPROM, and the read MAC address prefix is encapsulated into a response data packet and sent to the requester.
[0066] If the LSW_CPLD module receives the SET_MAC_ADDR_PREFIX command, it verifies whether the requester is a BMC or OS. If not, it returns an insufficient privilege error message and exits. If so, it checks whether the new MAC address prefix meets the format requirements (e.g., length, character set, etc.). If it does, it writes the new MAC address prefix to the corresponding location in the EEPROM. The new MAC address prefix value is then encapsulated into a response data packet and sent to the requester.
[0067] The LSW_CPLD module receives the GET_IP_ADDR_PREFIX command, which checks if a valid IP address prefix exists in the EEPROM. If it does not exist or the data is invalid, an error log is logged and an error message is returned. If it exists, the IP address prefix is read from the EEPROM and encapsulated into a response packet, which is then sent to the requester.
[0068] If the LSW_CPLD module receives the SET_IP_ADDR_PREFIX command, it verifies whether the requester is a BMC or OS. If not, it returns an insufficient privilege error message and exits. If so, it checks whether the new IP address prefix meets the format requirements (e.g., length, character set, etc.). If it does, it writes the new IP address prefix to the corresponding location in the EEPROM. The new IP address prefix value is then encapsulated into a response packet and sent to the requester.
[0069] FUNC_MANAGE is a software module that all functional components 102 (OS, BMC, SMC) need to integrate. This module can be written in C, so it can run on any common operating system. The specific workflow is as follows: Figure 4 As shown, it includes the following steps:
[0070] 1. After the functional component 102 is powered on, it obtains the port number of the currently connected Ethernet switching chip through the GET_PORT instruction of LSW_CPLD.
[0071] 2. Read the MAC address prefix using the GET_MAC_ADDR_PREFIX instruction of LSW_CPLD, generate the MAC address based on the port, and set it on the internal network card.
[0072] 3. Read the IP address prefix using the GET_IP_ADDR_PREFIX instruction of LSW_CPLD and generate an internal network IP address based on the port. Then, check the external network IP address every certain period of time (e.g., 2 seconds). If the external network IP address is different from the generated internal network IP address, set the internal network IP address to the internal network card; otherwise, delete the internal network card IP address to prevent IP segment conflicts from causing external network abnormalities.
[0073] Through the above description of the embodiments, those skilled in the art can clearly understand that the system according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.
[0074] Embodiments of this application also provide communication methods, such as... Figure 5 As shown, it includes the following steps:
[0075] In step S101, a read instruction initiated by a functional component is obtained.
[0076] In step S102, a read command is sent to the programming module, which identifies the communication address prefix of the functional component and the port of the functional component connected to the switching component based on the read command.
[0077] In one embodiment of this application, the read instruction includes first to third commands, which identify the communication address prefix of the functional component connected to the functional component and the port of the functional component connected to the switching component based on the functional component connection read instruction, including: using the first command to read the port of the functional component connected to the switching component; using the second command to read the physical address prefix of the functional component connection; and using the third command to read the Internet Protocol address prefix.
[0078] Based on the above embodiments that describe the server's communication system, in this application embodiment, the first command can be the GET_PORT command, the second command can be the GET_MAC_ADDR_PREFIX command, and the third command can be the GET_IP_ADDR_PREFIX command.
[0079] The specific command execution process can be found in the above embodiments, and will not be elaborated here.
[0080] In step S103, the communication address prefix and port are sent to the software module integrated on the functional component. The software module sets the communication address to the internal network card of the functional component according to the communication address prefix and port. The functional components then exchange data through the switching component.
[0081] In one embodiment of this application, the functional component connection communication address includes an Internet Protocol address and a physical address. The functional component connection Internet Protocol address consists of an Internet Protocol address prefix and a port number, and the functional component connection physical address consists of a physical address prefix and a functional component connection port identifier. The method also includes: monitoring the Internet Protocol address of each functional component on its internal network interface card; if the functional component connection Internet Protocol address and the external network address are the same, a modification instruction is initiated to the programming module, and the functional component connection programming module modifies the communication address prefix of the corresponding functional component based on the functional component connection modification instruction.
[0082] Understandably, to ensure compatibility with external networks and avoid conflicts, this application embodiment can periodically check the Internet Protocol address (IP address) of each functional component on its internal network card. When an internal IP address is detected to be identical to an external network address, this application can send a modification command to the programming module. The programming module adjusts the IP address prefix of the corresponding functional component according to the received modification command, thereby generating a new, non-conflicting internal network IP address. In actual execution, if the currently used IP address prefix causes a conflict, the IP address prefix can be changed to a value not used by the external network using the SET_IP_ADDR_PREFIX command, ensuring that the newly generated IP address does not duplicate the external network address. The specific execution flow of the SET_IP_ADDR_PREFIX command can be found in the above embodiment.
[0083] In one embodiment of this application, before modifying the communication address prefix of the corresponding functional component based on the functional component connection modification instruction, the method further includes: identifying the requester who initiated the functional component connection modification instruction; if the functional component connection requester is the target functional component, the programming module modifies the communication address prefix of the functional component connection based on the functional component connection modification instruction, otherwise the functional component connection modification instruction is not executed.
[0084] In this embodiment, the modification instruction is initiated by a functional component (such as BMC or OS) with system management privileges. This embodiment ensures that only a trusted entity can modify the communication address prefix of a functional component by identifying the requester who initiates the functional component connection modification instruction, thus preventing potential security threats.
[0085] It should be noted that the description of the features in the embodiments corresponding to this method can be found in the relevant description of the embodiments corresponding to the communication system of the server in the above embodiments, and will not be repeated here.
[0086] According to the communication method of this application embodiment, based on the interaction between the software module integrated on the functional component and the programming module in the switching component, the communication address can be dynamically generated. Each functional component can automatically complete its own network configuration without manual intervention, which effectively reduces the operation and maintenance costs caused by hardware changes. This solves the problems in related technologies where the management system components are connected by link technology, resulting in slow speeds, and hardware changes usually require manual reconfiguration of network parameters, leading to high maintenance costs.
[0087] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software 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.
[0088] The communication system for a server provided in this application has been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the system and its core ideas. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.
Claims
1. A communication system for a server, characterized in that, include: At least one functional component of a switching component and a server, wherein the functional component is a combination of a motherboard management controller, an operating system, and a satellite controller; The switching component includes a programming module and at least one port, the port being connected to the functional component, and the programming module obtaining the communication address prefix of the functional component and the port through which the functional component is connected to the switching component; A software module integrated on the functional component, which communicates with the programming module, is used to set a communication address to the internal network card of the functional component according to the communication address prefix and the port. The functional components after setting the address interact with each other through the switching component. The software module of the motherboard management controller or operating system is further configured to: send a setting instruction to the programming module, and the programming module responds to the setting instruction by setting the communication address prefix of the corresponding functional component; The communication address includes an Internet Protocol (IP) address and a physical address. The IP address is composed of an IP address prefix and a port number, and the physical address is composed of a physical address prefix and a port number. The software module is further configured to: monitor the IP address of each functional component on the internal network interface card (NIC); if the IP address matches the external network address, a deletion command is sent to the programming module, and the programming module responds to the deletion command, which is used to delete the IP address of the functional component on the internal NIC.
2. The communication system of the server according to claim 1, characterized in that, The software module sends a read command to the programming module, and the programming module responds to the read command. The read command is used to read at least one of the Internet Protocol address prefix, physical address prefix and port identifier.
3. The communication system for the server according to claim 1, characterized in that, Also includes: If the Internet Protocol address of the functional component is consistent with the external network address, the software module of the motherboard management controller or the operating system is further used to send a modification instruction to the programming module. The programming module responds to the modification instruction and modifies the Internet Protocol address prefix of the corresponding functional component.
4. A communication method, characterized in that, The method is implemented based on the communication system of the server according to any one of claims 1-3, and includes the following steps: Obtain the read command initiated by the functional component; The read command is sent to the programming module, which identifies the communication address prefix of the functional component and the port on which the functional component connects to the switching component based on the read command. The communication address prefix and the port are sent to the software module integrated on the functional component. The software module sets the communication address to the internal network card of the functional component according to the communication address prefix and the port. The functional components after setting the address interact with each other through the switching component. The communication address includes an Internet Protocol address (IPA) and a physical address. The IPA is composed of an IPA prefix and a port number, and the physical address is composed of a physical address prefix and a port number. The system also includes: monitoring the IPA of each functional component on its internal network interface card (NIC); if the IPA and the external network address are the same, a modification instruction is sent to the programming module, which modifies the communication address prefix of the corresponding functional component based on the modification instruction.
5. The communication method according to claim 4, characterized in that, Before modifying the communication address prefix of the corresponding functional component based on the modification instruction, the method further includes: Identify the party that initiated the modification instruction; If the requester is a target functional component, the programming module modifies the communication address prefix of the functional component based on the modification instruction; otherwise, the modification instruction is not executed.
6. The communication method according to claim 4, characterized in that, The read instruction includes first to third commands, and identifies the communication address prefix of the functional component and the port where the functional component connects to the switching component based on the read instruction, including: Use the first command to read the port where the functional component connects to the switching component; Use the second command to read the physical address prefix; Use a third command to read the Internet Protocol address prefix.
Citation Information
Patent Citations
Method of automatic network address configuration for communication unit within equipment
CN1567831A