Multi-path routing method, device, system, equipment, medium and program product

By assigning entropy values ​​to data packets and quickly masking them when paths are congested or fail, the problem of path overload and untimely fault handling in existing technologies is solved, and an efficient and reliable multi-path routing scheme is achieved.

CN121357084APending Publication Date: 2026-01-16WUXI STARS MICRO SYSTEM TECHNOLOGIES CO LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
CN202511590795.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-31
Publication Date
2026-01-16

AI Technical Summary

Technical Problem

Existing multi-path routing schemes cannot perceive path status in real time, leading to hash collisions that cause some paths to become overloaded and resources to become idle. Furthermore, they lack proactive fault path shielding mechanisms, which affects data transmission efficiency and reliability.

Method used

By assigning entropy values ​​to data packets to be sent, paths are determined among multiple transmission paths based on the entropy values. When a path is congested or fails, the corresponding entropy value is deleted and written to the entropy value masking table to avoid being assigned to a faulty path, thus achieving fast path masking and traffic balancing.

Benefits of technology

It improves bandwidth utilization, enhances data transmission efficiency and accuracy, avoids path overload and failover delays, and strengthens the reliability of multi-path routing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121357084A_ABST
    Figure CN121357084A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of network communication, and discloses a multi-path routing method, device, system and equipment, a medium and a program product. According to the method, the entropy values are sequentially read from the entropy value queue, the entropy values are allocated to the to-be-sent data packets, and the transmission paths corresponding to the to-be-sent data packets are determined in the plurality of transmission paths based on the entropy values, so that the balanced flow distribution of a polling reading mechanism is realized, and the bandwidth utilization rate is improved; moreover, when the congestion path / fault path exists in the plurality of transmission paths, the entropy value corresponding to the congestion path / fault path can be quickly deleted from the entropy value queue, so that the congestion path / fault path can be quickly shielded, and the reliability of multi-path routing is improved; new entropy values are read and written into an entropy value queue, so that the integrity of the number of entropy values can be ensured; by setting the entropy shielding table, the to-be-sent data packet is prevented from being distributed to the fault path, and the data transmission efficiency and accuracy are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of network communication technology, specifically to multipath routing methods, devices, systems, equipment, media, and program products. Background Technology

[0002] In the field of network communication, improving the efficiency and stability of data transmission between network devices is crucial. Related technologies employ multi-path routing schemes, transmitting traffic through multiple parallel paths. Static hashing mechanisms distribute traffic across these paths, leveraging parallelism to improve bandwidth utilization and reliability, thereby achieving load balancing.

[0003] However, the static hashing mechanism in related technologies cannot perceive the path status in real time. It is prone to overload (congestion) of some paths due to hash collisions, while other path resources are idle, reducing the overall transmission efficiency. The response to path failures mostly relies on end-to-end timeout detection or passive feedback, lacking an active and fast fault path shielding mechanism, which causes faulty paths to continuously occupy resources and affect the reliability of data transmission. Summary of the Invention

[0004] This invention provides a multipath routing method, apparatus, system, device, medium, and program product to solve the problems of low transmission efficiency and reliability in multipath routing in related technologies.

[0005] In a first aspect, the present invention provides a multi-path routing method applied to a source device; the source device is connected to at least one destination device through multiple transmission paths; the method includes: In response to a packet sending request, an entropy value is allocated to the data packet to be sent; the entropy values ​​are allocated sequentially from an entropy value queue; the entropy value queue corresponds to the destination device. Based on the entropy value, the transmission path corresponding to the data packet to be sent is determined among the multiple transmission paths, so that the data packet to be sent can be transmitted to the corresponding destination device through the transmission path; When a congested or faulty path exists among the multiple transmission paths, the entropy value corresponding to the congested or faulty path is obtained, the entropy value corresponding to the congested or faulty path is deleted from the entropy value queue, and a new entropy value is read and written into the entropy value queue; wherein, the entropy value corresponding to the faulty path is written into the entropy value masking table; the entropy value masking table is used to mask the entropy value corresponding to the faulty path when a new entropy value is read and written into the entropy value queue.

[0006] In one optional implementation, the entropy queue corresponds to an entropy space; the entropy space corresponds to a starting address, an entropy block size, and a current entropy pointer; reading a new entropy value and writing it into the entropy queue includes: The entropy value of the address pointed to by the current entropy pointer is read from the entropy value space, written into the entropy value queue, and the current entropy pointer is shifted to the next address; wherein, the current entropy pointer pointing to the last address will point to the starting address in the next shift.

[0007] In one optional implementation, the step of reading a new entropy value and writing it to the entropy value queue further includes: Read the entropy value of the address pointed to by the current entropy pointer from the entropy value space, and determine whether the entropy value is included in the entropy value mask table; If included, discard the entropy value, shift the current entropy value pointer to the next address, and return to the step of reading the entropy value at the address pointed to by the current entropy value pointer, until the entropy value masking table does not include the read entropy value.

[0008] In an optional implementation, the method further includes: Create a context using the packet sending queue; The destination address of the destination device is used to query a matching table to determine whether the destination address matches the matching table; the matching table is used to indicate the correspondence between the destination device and the entropy value space. If the matching table is hit, the corresponding entropy space is obtained from the on-chip entropy pool, and the entropy space preparation completion signal and the entropy queue identifier corresponding to the entropy space are fed back to the packet sending queue. If the matching table is not found, a new entropy space is loaded from the off-chip entropy configuration cache and stored in the on-chip entropy pool. The new entropy space is bound to the destination address and updated in the matching table.

[0009] In one optional implementation, determining the transmission path corresponding to the data packet to be sent among the plurality of transmission paths based on the entropy value includes: Extract the quintuple of the data packet to be sent; the quintuple includes the entropy value corresponding to the data packet to be sent and the destination address of the destination device; The hash value is obtained by processing the five-tuple of the data packet to be sent using a hash algorithm; The hash value is used to match the transmission path of the data packet to be sent.

[0010] In a second aspect, the present invention provides a multi-path routing device applied to a source device; the source device is connected to at least one destination device through multiple transmission paths; the method includes: An entropy allocation module is used to allocate entropy values ​​to data packets to be sent in response to a packet sending request; the entropy values ​​are allocated sequentially from an entropy queue; the entropy queue corresponds to the destination device. The path determination module is used to determine the transmission path corresponding to the data packet to be sent among the multiple transmission paths based on the entropy value, so that the data packet to be sent can be transmitted to the corresponding destination device through the transmission path; The path management module is used to, when there is a congested path / faulty path among the multiple transmission paths, obtain the entropy value corresponding to the congested path / faulty path, delete the entropy value corresponding to the congested path / faulty path from the entropy value queue, and read a new entropy value and write it into the entropy value queue; wherein, the entropy value corresponding to the faulty path is written into the entropy value masking table; the entropy value masking table is used to mask the entropy value corresponding to the faulty path when reading a new entropy value and writing it into the entropy value queue.

[0011] Thirdly, the present invention provides a multi-path routing system applied to a source device; the source device is connected to at least one destination device through multiple transmission paths; the system includes: The packet transport sublayer is used to initiate packet sending requests; An entropy management module is used to allocate entropy values ​​to data packets to be sent in response to a packet sending request; the entropy values ​​are allocated sequentially from an entropy queue; the entropy queue corresponds to the destination device; and the transmission path corresponding to the data packet to be sent is determined from multiple transmission paths based on the entropy values, so that the data packet to be sent can be transmitted to the corresponding destination device through the transmission path. The dynamic routing control module is used to, when a congested path / faulty path exists among the multiple transmission paths, obtain the entropy value corresponding to the congested path / faulty path, delete the entropy value corresponding to the congested path / faulty path from the entropy value queue, and read a new entropy value and write it into the entropy value queue; wherein, the entropy value corresponding to the faulty path is written into an entropy value masking table; the entropy value masking table is used to mask the entropy value corresponding to the faulty path when reading a new entropy value and writing it into the entropy value queue.

[0012] Fourthly, the present invention provides an electronic device, comprising: a memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the computer instructions to perform the multipath routing method described in the first aspect or any corresponding embodiment thereof.

[0013] Fifthly, the present invention provides a computer-readable storage medium storing computer instructions for causing a computer to perform the multipath routing method described in the first aspect or any of its corresponding embodiments.

[0014] In a sixth aspect, the present invention provides a computer program product, including computer instructions for causing a computer to execute the multipath routing method described in the first aspect or any corresponding embodiment thereof.

[0015] The technical solution provided by this invention may include the following beneficial effects: The multi-path routing method provided by this invention sequentially reads entropy values ​​from an entropy value queue, allocates entropy values ​​to data packets to be sent, and determines the corresponding transmission path for the data packet to be sent among multiple transmission paths based on the entropy values. This achieves a round-robin reading mechanism to balance traffic distribution, avoiding path overload caused by static hashing mechanisms in related technologies and improving bandwidth utilization. Furthermore, when congested or faulty paths exist among multiple transmission paths, the entropy values ​​corresponding to the congested or faulty paths are quickly deleted from the entropy value queue, thereby quickly masking the congested or faulty paths and avoiding the problem of delayed failover in multi-path routing in related technologies, thus improving the reliability of multi-path routing. By reading new entropy values ​​and writing them into the entropy value queue, deleted entropy values ​​can be replenished in a timely manner, ensuring the integrity of the entropy value count and preventing the reduction in the number of entropy values ​​from affecting the flexibility of transmission path allocation. By setting an entropy value masking table and writing the entropy values ​​corresponding to faulty paths, the entropy values ​​corresponding to faulty paths can be prevented from being read when reading new entropy values ​​and writing them into the entropy value queue, thus avoiding the allocation of data packets to be sent to faulty paths and improving data transmission efficiency and accuracy. Attached Figure Description

[0016] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0017] Figure 1 This is a schematic diagram of the first type of multi-path routing method according to an embodiment of the present invention; Figure 2 This is a schematic diagram of a second process for a multi-path routing method according to an embodiment of the present invention; Figure 3 This is a schematic diagram of the structure of a multi-path routing system according to an embodiment of the present invention; Figure 4 This is a schematic diagram of multi-path routing according to an embodiment of the present invention; Figure 5 This is a schematic diagram of entropy value reading according to an embodiment of the present invention; Figure 6 This is a schematic diagram of entropy space refresh according to an embodiment of the present invention; Figure 7 This is a structural block diagram of a multi-path routing device according to an embodiment of the present invention; Figure 8This is a schematic diagram of the hardware structure of an electronic device according to an embodiment of the present invention. Detailed Implementation

[0018] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0019] It is understood that before using the technical solutions disclosed in the various embodiments of the present invention, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in the present invention and their authorization should be obtained in accordance with relevant laws and regulations through appropriate means.

[0020] The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this invention, "a plurality of" means two or more, unless otherwise explicitly specified.

[0021] The Ultra Ethernet Consortium (UEC) aims to optimize Ethernet for high-performance AI and HPC networks, providing an open, interoperable, and high-performance full communication stack architecture based on Ethernet to meet the growing network demands of AI and HPC and improve performance metrics such as bandwidth and latency.

[0022] In the field of network communication, improving the efficiency and stability of data transmission between network devices is crucial. Related technologies employ multi-path routing schemes (such as ECMP) to transmit traffic through multiple parallel paths. A static hashing mechanism distributes traffic across these paths, mapping traffic to a fixed set of paths based on hash keys (such as source IP, destination IP, and port number). This parallelism enhances bandwidth utilization and reliability, achieving load balancing.

[0023] However, the static hashing mechanism in related technologies relies on static hashing algorithms to allocate traffic, which cannot perceive the path status in real time. It is prone to overload (congestion) of some paths due to hash collisions, while other path resources are idle, reducing the overall transmission efficiency. The response to path failures mostly relies on end-to-end timeout detection or passive feedback, lacking an active and fast fault path shielding mechanism, which causes faulty paths to continuously occupy resources and affect the reliability of data transmission.

[0024] According to an embodiment of the present invention, a multi-path routing method embodiment is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.

[0025] This embodiment provides a multi-path routing method applied to a source device; the source device is connected to at least one destination device through multiple transmission paths; Figure 1 This is a flowchart of a multi-path routing method according to an embodiment of the present invention, such as... Figure 1 As shown, the process includes the following steps: Step S101: In response to the packet sending request, an entropy value is allocated to the data packet to be sent, which is allocated sequentially from the entropy value queue.

[0026] The source device can be a device corresponding to a Source Fabric End Point (SFEP), which refers to the network endpoint device or logical endpoint of the data sender. It is the starting point for data transmission, responsible for sending data into the network, and can communicate with other endpoints to achieve data transmission and interaction. The destination device can be a device corresponding to a Destination Fabric End Point (DFEP), which is the target endpoint for data transmission. It is used to receive data sent from the source device and perform final data reception and processing within the network architecture. The source device and the destination device communicate through multiple transmission paths, which transmit data packets from the source device to the destination device. The entropy value (EV) is used to measure the degree of uncertainty or disorder of information. The entropy value is used as a field to identify a data packet. Network devices (such as switches) determine which transmission path the data packet should take based on the entropy value field. In this embodiment, the entropy value is allocated sequentially from an entropy value queue. This entropy value queue contains multiple queues composed of entropy values. The entropy queue corresponds to the destination device, with one entropy queue for each destination device, ensuring that the entropy value of each source-destination device pair can be configured flexibly and independently.

[0027] In this embodiment, when the source device generates a data packet to be sent, it reads the entropy value from the entropy value queue as needed and allocates it to the data packet to be sent, so that the data packet to be sent carries the allocated entropy value.

[0028] Step S102: Based on the entropy value, determine the transmission path corresponding to the data packet to be sent among the multiple transmission paths, so that the data packet to be sent can be transmitted to the corresponding destination device through the transmission path.

[0029] Next, based on the entropy value carried by the data packet to be sent, the transmission path to which the data packet should take is selected from among the multiple transmission paths. It should be noted that multiple entropy values ​​may point to the same transmission path.

[0030] Step S103: When there is a congested path / faulty path among the multiple transmission paths, obtain the entropy value corresponding to the congested path / faulty path, delete the entropy value corresponding to the congested path / faulty path from the entropy value queue, and read the new entropy value and write it into the entropy value queue; wherein, the entropy value corresponding to the faulty path is written into the entropy value mask table.

[0031] During data transmission, congestion or failures may occur along the transmission path, preventing normal data transmission. It is necessary to block or delete transmission paths that cannot transmit data normally. In this embodiment, the congestion or failure of a transmission path can be determined by detecting the transmission status of data packets passing through the path. When a congested / faulty path exists, the entropy value corresponding to the congested / faulty path is extracted from the data packets corresponding to that path. This entropy value is then deleted from the entropy value queue to prevent it from being allocated to new data packets to be sent. Simultaneously, since the entropy value corresponding to the congested / faulty path is deleted, there are empty slots in the entropy value queue. New entropy values ​​need to be read and written to the entropy value queue to fill these empty slots, ensuring sufficient entropy values ​​for allocation when sending data packets, guaranteeing packet sending flexibility, and effectively avoiding congestion.

[0032] Furthermore, when a new entropy value is read, it is necessary to determine whether the entropy value corresponds to a faulty path. This prevents the subsequent use of the entropy value corresponding to the faulty path to identify data packets to be sent, which could lead to transmission failure. Therefore, this embodiment also pre-sets an entropy value masking table. When a faulty path exists among the multiple transmission paths, the entropy value corresponding to the faulty path is obtained and written into the entropy value masking table. This entropy value masking table is used to mask the entropy value corresponding to the faulty path when a new entropy value is read and written into the entropy value queue, preventing the allocation of the entropy value corresponding to the faulty path during subsequent entropy value allocation, which could lead to data packet transmission failure. Meanwhile, congested paths continue to transmit data. Path switching is achieved by reading a new entropy value and writing it into the entropy value queue, preventing continuous traffic from flowing into the congested path. Once the congested path is decongested, it can resume normal function. Therefore, the entropy value corresponding to the congested path is not written into the entropy value masking table.

[0033] The multi-path routing method provided in this embodiment reads entropy values ​​sequentially from the entropy queue, allocates entropy values ​​to data packets to be sent, and determines the corresponding transmission path of the data packet to be sent among multiple transmission paths based on the entropy values. This achieves a round-robin reading mechanism to balance traffic distribution, avoiding path overload caused by the static hash mechanism in related technologies and improving bandwidth utilization. Furthermore, when there are congested or faulty paths among multiple transmission paths, the entropy values ​​corresponding to the congested or faulty paths can be quickly deleted from the entropy queue, thereby quickly masking the congested or faulty paths and avoiding the problem of delayed fault switching in multi-path routing in related technologies, thus improving the reliability of multi-path routing. By reading new entropy values ​​and writing them into the entropy queue, deleted entropy values ​​can be replenished in a timely manner, ensuring the integrity of the entropy value count and preventing the reduction in the number of entropy values ​​from affecting the flexibility of transmission path allocation. By setting an entropy mask table and writing the entropy values ​​corresponding to faulty paths, the entropy values ​​corresponding to faulty paths can be prevented from being read when reading new entropy values ​​and writing them into the entropy queue, thus avoiding the allocation of data packets to be sent to faulty paths and improving data transmission efficiency and accuracy.

[0034] This embodiment provides a multi-path routing method applied to a source device; the source device is connected to at least one destination device through multiple transmission paths; Figure 2 This is a flowchart of a multi-path routing method according to an embodiment of the present invention, such as... Figure 2 As shown, the process includes the following steps: Step S201: In response to the packet sending request, perform packet sending initialization operation.

[0035] Specifically, a context is first created through the packet sending queue, providing the environment and state information for program execution. Next, the destination address of the destination device is used to look up a matching table to determine if the destination address matches the table. This matching table indicates the correspondence between the destination device and the entropy value space, which corresponds to the entropy value queue. If the matching table is hit, it means that the on-chip entropy pool has pre-stored the entropy space corresponding to the destination address (for example, the on-chip entropy pool can store entropy spaces corresponding to commonly used destination addresses as needed). The corresponding entropy space can then be retrieved from the on-chip entropy pool, and an entropy space preparation completion signal and the corresponding entropy queue identifier are sent back to the packet sending queue. The entropy space preparation completion signal indicates that the entropy space is ready, and the entropy queue identifier is used for subsequent entropy queue addressing. In other words, when searching for the entropy space corresponding to the entropy queue later, it is not necessary to query the matching table again; the corresponding entropy space can be found directly through the entropy queue identifier. If the matching table is not hit, it means that the on-chip entropy pool does not store the entropy space corresponding to the destination address. A new entropy space is loaded from the off-chip entropy configuration cache, stored in the on-chip entropy pool, then bound to the destination address, and updated in the matching table. The off-chip entropy configuration cache stores the entropy spaces corresponding to all destination addresses.

[0036] Optionally, when the packet queue corresponding to this packet is released, the entry corresponding to that packet queue is deleted from the matching table to avoid useless information interfering with the query process and improve efficiency and accuracy.

[0037] Step S202: Assign an entropy value to the data packet to be sent. The entropy value is assigned sequentially from the entropy value queue.

[0038] This entropy queue corresponds to this destination device.

[0039] Optionally, the entropy queue corresponds to an entropy space, which has a starting address, an entropy block size, and a current entropy pointer. The entropy block size is used to indicate the number of addresses contained in the entropy space. An entropy value can be written to each address. The current entropy pointer starts from the starting address and points to each address in the entropy space in sequence to read the entropy value at the address pointed to by the current entropy pointer.

[0040] Step S203: Based on the entropy value, determine the transmission path corresponding to the data packet to be sent among the multiple transmission paths, so that the data packet to be sent can be transmitted to the corresponding destination device through the transmission path. Specifically, the 5-tuple of the data packet to be sent is extracted. This 5-tuple includes the entropy value corresponding to the data packet and the destination address of the destination device. For example, the 5-tuple also includes the source address, port number, etc. of the source device. Next, the 5-tuple of the data packet to be sent is processed using a hash algorithm to obtain a hash value. Finally, based on this hash value, a transmission path is matched for the data packet to be sent. The matching rules can be preset by the user or automatically adjusted by relevant functional modules. For example, hash values ​​34 and 65 match the first transmission path.

[0041] Step S204: When there is a congested path / faulty path among the multiple transmission paths, obtain the entropy value corresponding to the congested path / faulty path.

[0042] The source device can monitor the data packet transmission status in each transmission path to determine whether there is congestion or failure in each path. When there is a congested path or a faulty path in the multiple transmission paths, the entropy value is extracted from the data packet corresponding to the congested path or the faulty path to obtain the entropy value corresponding to the congested path or the faulty path.

[0043] Optionally, an entropy masking table can be pre-created. When the entropy value corresponding to a congested path / faulty path is obtained, the entropy value corresponding to the congested path / faulty path can be written into the entropy masking table.

[0044] Step S205: Remove the entropy value corresponding to the congested path / faulty path from the entropy value queue.

[0045] Specifically, based on the entropy value corresponding to the congested path / faulty path and the entropy value queue identifier, the corresponding entropy value queue is arbitrated and addressed, and then the entropy value corresponding to the congested path / faulty path is deleted from the entropy value queue.

[0046] Step S206: Write the entropy value corresponding to the fault path into the entropy value mask table.

[0047] This entropy masking table is used to mask the entropy value corresponding to the fault path when a new entropy value is read and written to the entropy value queue.

[0048] Please see details Figure 1 Step S103 of the illustrated embodiment will not be described again here.

[0049] Step S207: Read the new entropy value and write it into the entropy value queue.

[0050] After deleting an entropy value from the entropy queue, the queue needs to be replenished. Specifically, the entropy value at the address pointed to by the current entropy pointer is read from the entropy space corresponding to the queue. This entropy value is then written to the tail of the queue, and the current entropy pointer is shifted to the next address in the entropy space. This ensures that the entropy value at the next address is read when the queue needs to be replenished. The current entropy pointer pointing to the last address will point to the starting address during the next shift; in other words, the position pointed to by the current entropy pointer cycles between the starting and last addresses.

[0051] Optionally, when a new entropy value is read, it is necessary to determine whether the entropy value corresponds to a fault path to avoid using the entropy value corresponding to the fault path to identify the data packet to be sent, which would cause the data packet to fail to be transmitted. Specifically, the entropy value of the address pointed to by the current entropy value pointer is read from the entropy value space, and it is determined whether the entropy value is included in the entropy value mask table. If it is included, the entropy value is discarded, and the current entropy value pointer is shifted to the next address. The process of reading the entropy value of the address pointed to by the current entropy value pointer is returned until the entropy value mask table does not include the read entropy value.

[0052] In related technologies, congestion path avoidance and fault path shielding often employ independent mechanisms, lacking a unified entropy management framework. This results in poor coupling between congestion and fault handling, leading to complex business flow processing logic and inconsistencies, such as congested paths not being removed in a timely manner or faulty paths being mistakenly activated. In this embodiment, however, the entropy values ​​corresponding to congested / faulty paths are uniformly managed by deleting them from the entropy queue. This improves the coupling between congestion and fault handling, simplifies business flow processing logic, and enhances the accuracy of business flow processing.

[0053] In large-scale networks of related technologies, the number of entropy values ​​for end-to-end paths is enormous, making it difficult to efficiently maintain entropy value mappings within limited storage resources (such as on-chip storage). This results in low efficiency in large-scale entropy value management, leading to entropy value retrieval delays and impacting the real-time performance of routing decisions. In this embodiment, a hierarchical storage strategy combining an on-chip entropy pool and an off-chip entropy value configuration cache enables rapid access and refresh of large-scale end-to-end entropy values ​​within a limited space. This solves the resource bottleneck of entropy value management, achieves efficient management of large-scale entropy value mappings, reduces resource consumption, and adapts to the needs of large-scale deployments.

[0054] This embodiment provides a multi-path routing system applied to a source device; the source device is connected to at least one destination device through multiple transmission paths; Figure 3 This is a schematic diagram of the structure of a multi-path routing system according to an embodiment of the present invention, such as... Figure 3 As shown, the system includes a data packet transmission sublayer, an entropy management module, and a dynamic routing control module.

[0055] This data packet transport sublayer is used to initiate a packet sending request.

[0056] The entropy management module is used to allocate an entropy value to the data packet to be sent in response to the packet sending request; the entropy value is allocated sequentially from the entropy value queue; the entropy value queue corresponds to the destination device; based on the entropy value, the transmission path corresponding to the data packet to be sent is determined among the multiple transmission paths, so that the data packet to be sent can be transmitted to the corresponding destination device through the transmission path.

[0057] The dynamic routing control module is used to obtain the entropy value corresponding to the congested / faulty path when there is a congested / faulty path among the multiple transmission paths, delete the entropy value corresponding to the congested / faulty path from the entropy value queue, and read the new entropy value and write it into the entropy value queue; wherein, the entropy value corresponding to the faulty path is written into the entropy value masking table; the entropy value masking table is used to mask the entropy value corresponding to the faulty path when reading the new entropy value and writing it into the entropy value queue.

[0058] The Packet Delivery Sublayer (PDS) is a module within the Ultra Ethernet Transport Layer (UET), comprising two sub-modules: reliability and congestion management. The reliability module offers four message delivery modes to meet the diverse message delivery needs of applications such as HPC and AI, including ordered and unordered message delivery. It also handles congestion-related issues to ensure efficient data packet transmission within the network.

[0059] The System-on-Chip Routing Control Center (SOC) is integrated into the DPU (Data Processor) or smart NIC chip to perform real-time path calculation and dynamic congestion control.

[0060] The entropy management module (EV_MNG) can be a module or functional unit in the network card of the source device. Its services mainly cover three types of service flows: data packet sending, eliminating congested paths, and shielding faulty paths.

[0061] For data packet transmission services, the data packet transmission sublayer connects to the entropy management module via the first channel pkt_tx_req. When a data packet is sent from the data packet transmission sublayer's sending queue, the entropy queue identifier evq_id of the required entropy queue is input via the first channel pkt_tx_req. After arbitration, the corresponding entropy queue ev_q is addressed, the entropy value pointed to by the head pointer is read, and the head pointer is moved to the next entropy value. The entropy queue ev_q records the entropy values ​​of non-congested / faulty paths, and the entropy values ​​in the queue are polled during packet transmission. This operation is repeated for subsequent packet transmissions, with the head pointer being polled and shifted sequentially in the entropy queue. Here, TX_REQ_FIFO refers to the packet request first-in-first-out queue (packet queue), used to store packet requests sequentially. The MUX is a multiplexer. The entropy selection module EV Select in the entropy management module contains multiple entropy queues ev q#0…ev q#n. The entropy selection module EV Select is also connected to the on-chip entropy pool ev_pool. When it is necessary to replenish the entropy queue with new entropy values, it loads new entropy values ​​from the on-chip entropy pool ev_pool.

[0062] For the congestion path removal service, the data packet transmission sublayer monitors the congestion status of each transmission path. When a congested path is detected, the entropy value corresponding to the congested path and the entropy queue identifier evq_id are input through the second channel rx_ev_exc. After arbitration and addressing to the corresponding entropy queue ev_q, the corresponding entropy value is deleted from the entropy queue. If the entropy queue is not full, the entropy selection module EV Select initiates a new entropy value read operation to the on-chip entropy pool ev_pool (i.e., EV POOL), and the on-chip entropy pool ev_pool returns the new entropy value. The entropy selection module EV Select also pre-stores an entropy mask table ev_msk_tab to record the entropy values ​​corresponding to the faulty paths. If the returned new entropy value is not in the entropy mask table ev_msk_tab, the new entropy value is written to the tail of the entropy queue ev_q; if the returned new entropy value is in the entropy mask table ev_msk_tab, the new entropy value is read again, and the process is repeated until the new entropy value is no longer in the entropy mask table ev_msk_tab. Here, Path mask means path masking.

[0063] For services that block faulty paths, the switching equipment between the source and destination devices feeds back the information corresponding to the faulty path to the source device. The dynamic routing control module writes the entropy value corresponding to the faulty path into the entropy value blocking table `ev_msk_tab`. Simultaneously, based on the entropy value queue identifier `evq_id` and the corresponding entropy value, it removes the entropy value from the corresponding entropy value queue `ev_q`, triggering a read operation from the on-chip entropy value pool `ev_pool` in the entropy value queue `ev_q`. The entropy value blocking table `ev_msk_tab` filters the entropy values ​​returned by the on-chip entropy value pool `ev_pool` during the read process, re-initiating the read operation for the filtered entropy values ​​until a valid entropy value is obtained and written to the corresponding entropy value queue `ev_q`. When the faulty path recovers, the blocking of the faulty path is lifted, making it a normal path and available again.

[0064] Figure 4 This is a schematic diagram of multi-path routing according to an embodiment of the present invention. The source device SFEP and the destination device DFEP are connected through multiple transmission paths EV0 to EVn, where EV1 is the fault path and EV2 is the congestion path.

[0065] Figure 5 This is a schematic diagram of entropy value reading according to an embodiment of the present invention. The entropy value space EV_SPACE is managed by the system-configured starting address EV_START, the entropy value block size EV_SIZE, and the current entropy value pointer Ev_ptr. Different source-destination device pairs allocate their own entropy value spaces to ensure that the entropy value can be configured flexibly and independently. When the entropy value queue ev_q needs a new entropy value, it starts from the starting address EV_START and reads incrementally within the range of the entropy value block size EV_SIZE. The current reading position is recorded by the current entropy value pointer Ev_ptr. When the current entropy value pointer Ev_ptr increments to EV_START + EV_SIZE - 1, the next increment wraps back to the starting address EV_START. That is to say, the current entropy value pointer Ev_ptr cycles within the range [EV_START, EV_START + EV_SIZE - 1].

[0066] Figure 6This is a schematic diagram of entropy space refresh according to an embodiment of the present invention. When creating a context, the packet sending queue of the data packet transmission sublayer performs a lookup in the matching table FEP_TAB using the destination address. If the entropy space corresponding to the destination address is matched in the on-chip entropy pool ev_pool, the entropy space preparation completion signal ev_rdy and the entropy queue identifier evq_id are fed back to the sending queue. If no match is found, the loading module TAB_LOAD loads and refreshes the {EV_START, EV_SIZE, EV_PTR} stored in the off-chip entropy configuration cache ev_cache to the corresponding entry in the on-chip entropy pool ev_pool. Here, EV_START represents the starting address of the entropy space, EV_SIZE represents the entropy block size of the entropy space, and EV_PTR represents the current entropy pointer of the entropy space. Pdc_ar indicates initiating an initialization operation. When the transmission queue corresponding to the destination address is released, the corresponding entry in the matching table FEP_TAB is deleted.

[0067] This embodiment also provides a multi-path routing device for implementing the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0068] This embodiment provides a multi-path routing device applied to a source device; the source device is connected to at least one destination device through multiple transmission paths; such as... Figure 7 As shown, the device includes: Entropy allocation module 701 is used to allocate entropy values ​​to data packets to be sent in response to a packet sending request; the entropy values ​​are allocated sequentially from the entropy value queue; the entropy value queue corresponds to the destination device. The path determination module 702 is used to determine the transmission path corresponding to the data packet to be sent among the multiple transmission paths based on the entropy value, so that the data packet to be sent can be transmitted to the corresponding destination device through the transmission path; The path management module 703 is used to obtain the entropy value corresponding to the congested path / faulty path when there is a congested path / faulty path among the multiple transmission paths, delete the entropy value corresponding to the congested path / faulty path from the entropy value queue, and read the new entropy value and write it into the entropy value queue; wherein, the entropy value corresponding to the faulty path is written into the entropy value masking table; the entropy value masking table is used to mask the entropy value corresponding to the faulty path when reading the new entropy value and writing it into the entropy value queue.

[0069] In one optional implementation, the entropy queue corresponds to an entropy space; the entropy space corresponds to a starting address, an entropy block size, and a current entropy pointer; the path management module is also used for: Read the entropy value of the address pointed to by the current entropy pointer from the entropy value space, write it into the entropy value queue, and shift the current entropy pointer to the next address; the current entropy pointer pointing to the last address will point to the starting address in the next shift.

[0070] In one alternative implementation, the path management module is further configured to: Read the entropy value at the address pointed to by the current entropy pointer from the entropy value space, and determine whether the entropy value is included in the entropy value mask table; If included, discard the entropy value, shift the current entropy value pointer to the next address, and return to the step of reading the entropy value at the address pointed to by the current entropy value pointer, until the entropy value mask does not include the read entropy value.

[0071] In one alternative implementation, the path management module is further configured to: Create a context using the packet sending queue; The destination address of the destination device is used to query the matching table to determine whether the destination address matches the table; the matching table is used to indicate the correspondence between the destination device and the entropy value space. If the matching table is hit, the corresponding entropy space is obtained from the on-chip entropy pool, and the entropy space preparation completion signal and the entropy queue identifier corresponding to the entropy space are fed back to the packet sending queue. If the matching table is not found, a new entropy space is loaded from the off-chip entropy configuration cache and stored in the on-chip entropy pool. Bind the new entropy space to the destination address and update the matching table.

[0072] In an optional implementation, the path determination module is further configured to: Extract the 5-tuple of the data packet to be sent; the 5-tuple includes the entropy value corresponding to the data packet to be sent and the destination address of the destination device; The hash value is obtained by processing the five-tuple of the data packet to be sent using a hash algorithm; The hash value is used to match the transmission path of the data packet to be sent.

[0073] The multi-path routing apparatus provided in this embodiment of the invention can execute the multi-path routing method provided in any embodiment of the invention, and has the corresponding functional modules and beneficial effects for executing the method. Further functional descriptions of the various modules and units described above are the same as in the corresponding embodiments described above, and will not be repeated here.

[0074] Figure 8This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present invention.

[0075] The following is a detailed reference. Figure 8 This diagram illustrates a suitable structural schematic for implementing an electronic device according to embodiments of the present invention. The electronic device may include a processor (e.g., a central processing unit, graphics processor, etc.) 801, which can perform various appropriate actions and processes based on a program stored in read-only memory (ROM) 802 or a program loaded from memory 808 into random access memory (RAM) 803. The RAM 803 also stores various programs and data required for the operation of the electronic device. The processor 801, ROM 802, and RAM 803 are interconnected via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.

[0076] Typically, the following devices can be connected to I / O interface 805: input devices 806 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 807 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; memory devices 808 including, for example, magnetic tapes, hard disks, etc.; and communication devices 809. Communication device 809 allows electronic devices to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 8 Electronic devices with various devices are shown, but it should be understood that it is not required to implement or have all of the devices shown, and more or fewer devices may be implemented or have instead.

[0077] In particular, according to embodiments of the present invention, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of the present invention include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 809, or installed from a memory 808, or installed from a ROM 802. When the computer program is executed by the processor 801, it performs the functions defined in the multipath routing method of the embodiments of the present invention.

[0078] Figure 8 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of use of the embodiments of the present invention.

[0079] This invention also provides a computer-readable storage medium. The methods described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded over a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code. When the software or computer code is accessed and executed by the computer, processor, or hardware, the multi-path routing method shown in the above embodiments is implemented.

[0080] A portion of this invention can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide the methods and / or technical solutions according to the invention through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled program, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.

[0081] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined by the invention.

Claims

1. A method of multi-path routing, characterized by, The application is applied to a source device; The source device is connected with at least one destination device through multiple transmission paths; the method comprises: In response to a packet sending request, entropy values are allocated to data packets to be sent; the entropy values are sequentially allocated from an entropy value queue; the entropy value queue corresponds to the destination device; Based on the entropy values, a transmission path corresponding to the data packets to be sent is determined in the multiple transmission paths, so that the data packets to be sent are transmitted to the corresponding destination device through the transmission path; When there is a congested path / faulty path in the multiple transmission paths, the entropy value corresponding to the congested path / faulty path is obtained, the entropy value corresponding to the congested path / faulty path is deleted from the entropy value queue, and a new entropy value is read and written into the entropy value queue; wherein, the entropy value corresponding to the faulty path is written into an entropy value shielding table; the entropy value shielding table is used to shield the entropy value corresponding to the faulty path when reading the new entropy value and writing it into the entropy value queue.

2. The method of claim 1, wherein, The entropy value queue corresponds to an entropy value space; the entropy value space corresponds to a start address, an entropy value block size and a current entropy value pointer; reading the new entropy value and writing it into the entropy value queue comprises: reading the entropy value of the address pointed to by the current entropy value pointer from the entropy value space, writing it into the entropy value queue, and shifting the current entropy value pointer to the next address; wherein, the current entropy value pointer pointing to the last address points to the start address in the next shift.

3. The method of claim 2, wherein, The reading of the new entropy value and the writing into the entropy value queue further comprises: reading the entropy value of the address pointed to by the current entropy value pointer from the entropy value space, judging whether the entropy value is included in the entropy value shielding table; if yes, discarding the entropy value, shifting the current entropy value pointer to the next address, and returning to the step of reading the entropy value of the address pointed to by the current entropy value pointer until the read entropy value is not included in the entropy value shielding table.

4. The method of claim 3, wherein, The method further comprises: creating a context through a packet sending queue; querying a matching table through a destination address of the destination device to judge whether the destination address hits the matching table; the matching table is used to indicate the correspondence between the destination device and the entropy value space; if yes, obtaining the corresponding entropy value space from an on-chip entropy value pool, and feeding back an entropy value space preparation completion signal and an entropy value queue identifier corresponding to the entropy value space to the packet sending queue; if no, loading a new entropy value space from an off-chip entropy value configuration cache into the on-chip entropy value pool; binding the new entropy value space with the destination address, and updating to the matching table.

5. The method according to any one of claims 1 to 4, characterized in that, The determination of the transmission path corresponding to the data packets to be sent based on the entropy values in the multiple transmission paths comprises: extracting a five-tuple of the data packets to be sent; the five-tuple comprises the entropy value corresponding to the data packets to be sent and a destination address of the destination device; processing the five-tuple of the data packets to be sent through a hash algorithm to obtain a hash value; matching the transmission path for the data packets to be sent based on the hash value.

6. A multi-path routing apparatus characterized by comprising: The application is applied to a source device; The source device is connected with at least one destination device through multiple transmission paths; the method comprises: An entropy value allocation module is configured to allocate an entropy value to a data packet to be sent in response to a packet sending request; the entropy values are sequentially allocated from an entropy value queue; the entropy value queue corresponds to the destination device; A path determination module is configured to determine a transmission path corresponding to the data packet to be sent among the multiple transmission paths based on the entropy value, so that the data packet to be sent is transmitted to the corresponding destination device through the transmission path. A path management module is configured to, when there is a congested path / faulty path among the multiple transmission paths, acquire an entropy value corresponding to the congested path / faulty path, delete the entropy value corresponding to the congested path / faulty path from the entropy value queue, and read a new entropy value and write the new entropy value into the entropy value queue.

7. A multi-path routing system, characterized by The source device is applied to; The source device is connected with at least one destination device through multiple transmission paths; the system comprises: A data packet transmission sub-layer is configured to initiate a packet sending request; An entropy value management module is configured to allocate an entropy value to a data packet to be sent in response to a packet sending request; the entropy values are sequentially allocated from an entropy value queue; the entropy value queue corresponds to the destination device; a transmission path corresponding to the data packet to be sent is determined among the multiple transmission paths based on the entropy value, so that the data packet to be sent is transmitted to the corresponding destination device through the transmission path. A dynamic route control module is configured to, when there is a congested path / faulty path among the multiple transmission paths, acquire an entropy value corresponding to the congested path / faulty path, delete the entropy value corresponding to the congested path / faulty path from the entropy value queue, and read a new entropy value and write the new entropy value into the entropy value queue.

8. An electronic device, comprising: Comprise: A memory and a processor are communicatively connected with each other, the memory stores computer instructions, and the processor executes the computer instructions to perform the multi-path routing method in any one of claims 1 to 5.

9. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer instructions, and the computer instructions are used to make a computer execute the multi-path routing method in any one of claims 1 to 5.

10. A computer program product, characterised in that, The computer instructions are used to make a computer execute the multi-path routing method in any one of claims 1 to 5.

Citation Information

Patent Citations

  • Message forwarding method, device and system and computer readable storage medium

    CN110636003A

  • Data transmission method and system and electronic equipment

    CN120200961A

  • Congestion control method and apparatus, and electronic device

    CN120223634A

  • Data transmission method, device and computer program product

    CN120567778A

  • Packet Labels For Identifying Synchronization Groups of Packets

    US20150200843A1