Packet forwarding method, information acquisition method, apparatuses and systems

By carrying the first identifier in the message and determining the second identifier according to the forwarding rule, the message path is adjusted, the network deadlock problem is solved, and the normal forwarding and flexibility of the message are achieved.

WO2025185574A1PCT designated stage Publication Date: 2025-09-11HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/080272
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-08
Filing Date
2025-03-03
Publication Date
2025-09-11

AI Technical Summary

Technical Problem

Deadlock occurs in the network, causing packets to fail to be forwarded normally. In particular, when there is no available buffer left in the buffer areas of multiple network nodes with circular dependencies, packets cannot be forwarded any further.

Method used

By carrying the first identifier in the message and determining the second identifier according to the forwarding rule, the forwarding path of the message is adjusted to ensure the reasonable use of the cache space and avoid deadlock.

Benefits of technology

It realizes the normal forwarding of messages and improves the flexibility of message forwarding, adapting to different network topologies and resource constraints.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025080272_12092025_PF_FP_ABST
    Figure CN2025080272_12092025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a packet forwarding method, an information acquisition method, apparatuses and systems. In the packet forwarding process, on the basis of a first identifier carried in a packet and forwarding rules, a network device determines a cache space used for packet forwarding. Since the first identifier is associated with a region divided on the basis of a plurality of packet forwarding paths in a network, when the first identifier is determined, the plurality of packet forwarding paths in the network are considered, and when a deadlock phenomenon occurs, the packet forwarding paths can be adjusted, so that normal packet forwarding is ensured, and the flexibility of packet forwarding is improved.
Need to check novelty before this filing date? Find Prior Art

Description

A message forwarding method, information acquisition method, device and system

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on March 4, 2024, with application number 2024102469332 and application name “A message forwarding method, device and equipment”, the entire contents of which are incorporated by reference into this application; this application claims priority to the Chinese patent application filed with the State Intellectual Property Office on March 8, 2024, with application number 2024102699669 and application name “A message forwarding method, information acquisition method, device and system”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of communication technology, and in particular to a message forwarding method, information acquisition method, device and system. Background Art

[0003] Typically, a network consists of multiple nodes, each of which uses its cache to buffer packets before forwarding them. When multiple nodes with circular dependencies have no available buffer space, each packet in the cache occupies a portion of resources and needs to access the cache resources held by other packets on which it depends. This can prevent forwarding of packets in the entire chain, leading to a deadlock in the network.

[0004] For example, as shown in Figure 1, the network has four network devices: N1, N2, N3, and N4. N1's buffer is full with packets destined for N3. Before sending packets to N3, it needs to obtain available buffer space in N3. N3's buffer is full with packets destined for N4. Before sending packets to N4, it needs to obtain available buffer space in N4. N4's buffer is full with packets destined for N2. Before sending packets to N2, it needs to obtain available buffer space in N2. N2's buffer is full with packets destined for N1. Before sending packets to N1, it needs to obtain available buffer space in N1. As Figure 1 shows, the occupancy and retrieval of buffer space form a loop (circular dependency), causing a forwarding deadlock in the network and preventing normal packet forwarding. Summary of the Invention

[0005] Based on this, the present application provides a message forwarding method, information acquisition method, device and system to solve the message forwarding deadlock problem, realize the normal forwarding of messages, and improve the flexibility of message forwarding.

[0006] In a first aspect, a message forwarding method is provided, the method comprising: a first network device receives a first message, the first message including a first identifier, the first identifier being related to a region divided based on multiple message forwarding paths in the network; the first network device determines a second identifier based on the first identifier and a forwarding rule, the second identifier indicating a cache space utilized when forwarding the first message; and the first network device forwards the first message based on the second identifier. That is, during the message forwarding process, the network device determines the cache space utilized for forwarding the message based on the first identifier carried in the message and the forwarding rule. Since the first identifier is related to a region divided based on multiple message forwarding paths in the network, that is, when determining the first identifier, multiple message forwarding paths in the network are taken into consideration, when a deadlock occurs, the message forwarding path can be adjusted, which not only ensures the normal forwarding of the message but also improves the flexibility of message forwarding.

[0007] Among them, the forwarding rule table includes a mapping relationship between the first identifier and the second identifier, so that the first network device determines the value of the matching second identifier based on the value of the first identifier in the first message and the above mapping relationship, and then forwards the first message according to the value of the second identifier.

[0008] In some embodiments, the first message may further include a third identifier, which indicates the cache space used by the first network device when receiving the first message. In this case, the first network device will determine the second identifier based on the first identifier, the third identifier, and the forwarding rule. The forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier. That is, when determining the second identifier, reference may also be made to the cache resources used by the first network device to cache the first message, so that the determined second identifier can meet the resource constraints of the current network device, avoiding the forwarding of the message being affected by insufficient resources.

[0009] In this case, before forwarding the first message according to the second identifier, the first network device also updates the value of the third identifier in the first message to the value of the second identifier, so that the next-hop network device caches and forwards the first message according to the value of the second identifier.

[0010] In some embodiments, when the first network device determines the second identifier based on the first identifier and the forwarding rule, it may also first obtain the port information, and then determine the second identifier based on the port information, the second identifier and the forwarding rule. In this case, the forwarding rule includes a mapping relationship between the first identifier, the port information and the second identifier. Among them, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving the first message, and the output port indicates the port used by the first network device when forwarding the first message. That is, when determining the second identifier, the input and output ports for the first message on the first network device will be referenced, so that when determining the cache space corresponding to the second identifier, it can be matched with the input and output ports, thereby ensuring the normal forwarding of the message.

[0011] The first network device may obtain the port information in the following manner: the first network device determines the egress port used by the first message based on the first identifier and the destination address in the first message. Specifically, the first network device determines the corresponding egress port by querying a routing table based on the first identifier and the destination address. The routing table includes a correspondence between the first identifier, the destination address, and the egress port. Alternatively, the first network device determines the corresponding egress port based on the destination address in the first message. In this case, the routing table includes a correspondence between the destination address and the egress port.

[0012] Based on the description of the port information, determining the forwarding rule may include a mapping relationship between the first identifier, the ingress port, and the second identifier. Alternatively, the forwarding rule may include a mapping relationship between the first identifier, the egress port, and the second identifier. Alternatively, the forwarding rule may include a mapping relationship between the first identifier, the ingress port, the egress port, and the second identifier.

[0013] Based on the description of the third identifier, determining the forwarding rule may include a mapping relationship between the first identifier, the third identifier, the ingress port, and the second identifier. Alternatively, the forwarding rule may include a mapping relationship between the first identifier, the third identifier, the egress port, and the second identifier. Alternatively, the forwarding rule may include a mapping relationship between the first identifier, the third identifier, the ingress port, the egress port, and the second identifier.

[0014] In some embodiments, when the first network device determines the second identifier based on the first identifier and the forwarding rule, it may include: the first network device receives the second message sent by the second network device, the second message includes the cache space information in the second network device, and the first network device determines the second identifier based on the first identifier, the cache space information and the forwarding rule. Among them, the second network device is the next-hop network device corresponding to the first message forwarded by the first network device, and the forwarding rule includes the mapping relationship between the first identifier, the cache space information and the second identifier. That is, when determining the second identifier, the cache space information on the next-hop network device will be referenced so that when determining the cache space corresponding to the second identifier, the resource constraints of the next-hop network device can be met to avoid affecting the forwarding of the message due to insufficient resources.

[0015] Based on the fact that the aforementioned forwarding rules exist in multiple forms, combined with the third identifier, the forwarding rules may include: a mapping relationship between the first identifier, the ingress port, the cache space information, and the second identifier. Alternatively, the forwarding rules may include a mapping relationship between the first identifier, the egress port, the cache space information, and the second identifier. Alternatively, the forwarding rules may include a mapping relationship between the first identifier, the ingress port, the egress port, the cache space information, and the second identifier. Alternatively,

[0016] In the case where the aforementioned forwarding rules exist in multiple forms, combined with the cache space information, the forwarding rules may include a mapping relationship between the first identifier, the cache space information, the third identifier, the ingress port, and the second identifier. Alternatively, the forwarding rules may include a mapping relationship between the first identifier, the cache space information, the third identifier, the egress port, and the second identifier. Alternatively, the forwarding rules may include a mapping relationship between the first identifier, the cache space information, the third identifier, the ingress port, the egress port, and the second identifier.

[0017] In some embodiments, the value of the first identifier may change. For example, when the forwarding of a message meets a preset condition, the value of the first identifier will be adjusted. Preset conditions may include a failure of the forwarding network device or a change in the forwarding path. Based on this, the first network device may also update the value of the first identifier before forwarding the first message based on the second identifier. That is, when the forwarding of a message changes, the value of the first identifier can be adjusted, thereby changing the forwarding path and improving the flexibility of message forwarding.

[0018] The first network device may obtain and update the value corresponding to the first identifier based on the forwarding rule. That is, the latest value of the first identifier may be obtained based on the current value of the first identifier and the forwarding rule. The forwarding rule may include the current value of the first identifier, the second identifier, and the latest value of the first identifier. Alternatively, the first network device may calculate the latest value of the first identifier based on the current value of the first identifier and a preset algorithm.

[0019] In some embodiments, before the first network device determines the second identifier according to the first identifier and the forwarding rule, the first network device may obtain the forwarding rule in the following manner:

[0020] One approach involves the management plane of a first network device acquiring network information, determining forwarding rules based on the network information, and distributing the forwarding rules to the data plane of the first network device. The network information includes at least one or more of the following: network topology, routing scheme, and resources of at least one network device in the network. Specifically, when determining the forwarding rules, the network topology, routing scheme, and resources of at least one network device in the network are taken into consideration. This allows packet forwarding to support different network topologies, routing schemes, and resource constraints, thereby increasing packet forwarding flexibility.

[0021] One is that the first network device receives the configuration information corresponding to the forwarding rule sent by the controller, and determines the forwarding rule based on the configuration information. The configuration information is determined by the controller based on the network information, and the network information includes at least one or more of the network topology, routing method, and resources possessed by at least one network device in the network. The configuration information includes relevant content for determining the forwarding rule. For example, the configuration information describes the correspondence between different values ​​of the first identifier and different values ​​of the second identifier, and the first network device converts the above description into information that can be recognized by the data plane. That is, when determining the forwarding rule, at least one of the network topology, routing method, and resources of the network device in the network is taken into account, thereby ensuring that the forwarding rule can meet different needs and improve the flexibility of message forwarding.

[0022] That is, in a distributed application scenario, each network device in the network can determine its own forwarding rules based on network information. In a centralized application scenario, the controller collects network information from the network and determines the configuration information corresponding to the forwarding rules based on this network information. It then distributes the configuration information applicable to each network device, which then determines the forwarding rules based on the configuration information.

[0023] In some embodiments, changes in network information, such as changes in topology, routing, or network device resources, can cause changes in forwarding rules. Based on this, the first network device obtains an update cycle and updates the forwarding rules according to the update cycle. Alternatively, the controller obtains network information corresponding to the current moment based on the update cycle, then re-acquires configuration information based on the network information, and sends this configuration information to the first network device, so that the first network device updates the forwarding rules based on the configuration information. In this implementation, forwarding rules can be updated regularly to adapt to network changes and improve the flexibility of message forwarding.

[0024] In a second aspect, a message forwarding method is provided, the method comprising:

[0025] The source network device obtains a value of a first identifier and adds the value of the first identifier to the first message, where the first identifier is associated with a region divided based on multiple message forwarding paths in the network. The source network device sends the first message to the first network device, so that the first network device determines a second identifier based on the first identifier and a forwarding rule. The second identifier indicates a cache space used when forwarding the first message.

[0026] As a source device in the network, it adds the value of the first identifier to the message header before sending the message, so that subsequent intermediate devices can determine the second identifier based on the value of the first identifier and the forwarding rules, and then forward the message based on the second identifier. Because the first identifier is associated with the area divided based on multiple message forwarding paths in the network, that is, when determining the first identifier, multiple message forwarding paths in the network are taken into account, avoiding deadlock caused by circular dependencies generated by multiple message forwardings, and improving the flexibility of message forwarding.

[0027] The source network device obtains the value of the first identifier, including:

[0028] One method is to obtain network information from the management plane of the source network device, determine a value of a first identifier based on the network information, and send the value of the first identifier to the data plane of the source network device. The network information includes at least one or more of the following: network topology, routing mode, and resources of at least one network device in the network.

[0029] One is that the source network device obtains the value of the first identifier, including:

[0030] The source network device receives configuration information sent by the controller and determines a value of the first identifier based on the configuration information. The configuration information is determined by the controller based on network information, which includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network.

[0031] That is, in a distributed application scenario, the source network device itself can determine the value of the first identifier based on network information. In a centralized application scenario, the controller collects network information from the network, determines configuration information corresponding to the first identifier based on the network information, and then sends the configuration information to the source network device, which then determines the value of the first identifier based on the configuration information.

[0032] The source network device determines the value of the first identifier based on the cache space information and configuration information. The cache space information is the cache space information of the next-hop network device corresponding to the first message sent by the source network device. That is to say, when determining the value of the first identifier, the source network device first obtains the cache space information of the next-hop network device, and then determines the value of the first identifier based on the cache space information and configuration information. The next-hop network device can actively send its own cache space information to the source network device, or it can send its own cache space information to the source network device based on the instructions given by the source network device. The cache space information includes one or more of the remaining cache space, the total cache space, and the used cache space.

[0033] In a third aspect, a method for obtaining information is provided, the method comprising:

[0034] A first network device obtains network information, the network information including at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network; and the first network device obtains a forwarding rule based on the network information. The forwarding rule includes a mapping relationship between a first identifier and a second identifier, the first identifier being associated with a region divided based on multiple message forwarding paths in the network, and the second identifier indicating a cache space utilized when forwarding messages.

[0035] The first network device obtains the forwarding rule according to the network information, including:

[0036] One is that the management plane of the first network device obtains network information, determines a forwarding rule based on the network information, and sends the forwarding rule to the data plane of the first network device.

[0037] One is that the first network device sends network information to the controller, so that the controller determines configuration information corresponding to the forwarding rule based on the network information; the first network device receives the configuration information sent by the controller and determines the forwarding rule based on the configuration information.

[0038] In some embodiments, the method further includes: the first network device acquiring an update cycle; and the first network device updating the forwarding rule according to the update cycle.

[0039] In some embodiments, the method further includes: the first network device receives a first message, the first message includes the first identifier; the first network device determines a second identifier based on the first identifier and a forwarding rule; the first network device forwards the first message based on the second identifier.

[0040] In some embodiments, the first message further includes a third identifier indicating a cache space used by the first network device when forwarding the first message, and the first network device determining the second identifier based on the first identifier and a forwarding rule includes: the first network device determining the second identifier based on the first identifier, the third identifier, and the forwarding rule. The forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier.

[0041] In some embodiments, before the first network device forwards the first message according to the second identifier, the method further includes: the first network device updates the value of the third identifier in the first message to the value of the second identifier.

[0042] In some embodiments, the first network device determines the second identifier based on the first identifier and the forwarding rule, including: the first network device obtains port information, the port information includes an ingress port and / or an egress port, the ingress port indicates the port used by the first network device when receiving the first message, and the egress port indicates the port used by the first network device when forwarding the first message; the first network device determines the second identifier based on the port information, the first identifier and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the port information and the second identifier.

[0043] In some embodiments, the first network device acquires the port information, including: the first network device determines an egress port used to forward the first message according to the first identifier and a destination address in the first message.

[0044] In some embodiments, the first network device determines the second identifier based on the first identifier and the forwarding rule, including: the first network device receives a second message sent by the second network device, the second message includes cache space information in the second network device, and the second network device forwards the first message to the next-hop network device corresponding to the first network device; the first network device determines the second identifier based on the first identifier, the cache space information and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the cache space information and the second identifier.

[0045] In some embodiments, before the first network device forwards the first message according to the second identifier, the method further includes: the first network device updates the value of the first identifier.

[0046] In some embodiments, the method further includes: the first network device obtains a value corresponding to the first identifier according to the value of the first identifier and a forwarding rule.

[0047] In a fourth aspect, a method for obtaining information is provided, the method comprising: a source network device obtaining network information, the network information including network topology, routing method, and at least one or more of the resources possessed by the source network device; the source network device obtaining a value of a first identifier based on the network information, the first identifier being related to an area divided based on multiple message forwarding paths in the network.

[0048] In some embodiments, the source network device obtains the value of the first identifier based on network information, including: the management plane of the source network device determines the value of the first identifier based on the network information, and sends the value of the first identifier to the data plane of the source network device.

[0049] In some embodiments, the source network device obtains the value of the first identifier based on network information, including: the source network device sends the network information to the controller so that the controller determines the configuration information based on the network information; the source network device receives the configuration information sent by the controller, and determines the value of the first identifier based on the configuration information.

[0050] In some embodiments, the method further includes: the source network device adding the value of the first identifier to the message to be forwarded to obtain a first message; and the source network device sending the first message to the first network device, so that the first network device determines a second identifier based on the first identifier and a forwarding rule. The second identifier indicates a cache space used when forwarding the first message, and the cache space can be a cache space on the first network device or a cache space on a next-hop network device.

[0051] In a fifth aspect, an information acquisition method is provided, the method comprising: a controller receiving network information sent by a network device, the network information including at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network; the controller determining configuration information related to message forwarding based on the network information; the controller sending first configuration information to a first network device, so that the first network device determines a forwarding rule based on the first configuration information; wherein the forwarding rule comprises a mapping relationship between a first identifier and a second identifier, the first identifier being associated with an area divided based on multiple message forwarding paths in the network, and the second identifier indicating a cache space utilized when forwarding the message;

[0052] And / or the controller sends second configuration information to the source network device, so that the source network device determines the value of the first identifier according to the second configuration information.

[0053] In some embodiments, the forwarding rule includes a mapping relationship between a first identifier, a third identifier, and a second identifier, and the third identifier indicates a cache space used by the first network device when receiving a message.

[0054] In some embodiments, the forwarding rules include a mapping relationship between the first identifier, port information and the second identifier, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving a message, and the output port indicates the port used by the first network device when forwarding a message.

[0055] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier, cache space information, and the second identifier. The cache space information is cache space information of a next-hop network device corresponding to the message forwarded by the first network device.

[0056] In some embodiments, the method further includes: the controller determines an update cycle; the controller updates the forwarding rules according to the update cycle; or, the controller sends the update cycle to the first network device so that the first network device updates the forwarding rules according to the update cycle.

[0057] In some embodiments, the controller determines configuration information related to the message based on network information, including: the controller determines whether the forwarding of the message meets preset conditions based on the network information, and the preset conditions include network device failure and / or changes in the forwarding path; if the forwarding of the message meets the preset conditions, the controller adjusts the value of the first identifier.

[0058] In a sixth aspect, a message forwarding device is provided, which is applied to a first network device and includes:

[0059] A receiving unit is used to receive a first message, where the first message includes a first identifier, and the first identifier is related to an area divided based on multiple message forwarding paths in the network; a processing unit is used to determine a second identifier based on the first identifier and a forwarding rule, where the second identifier indicates a cache space used when forwarding the first message; and a sending unit is used to forward the first message based on the second identifier.

[0060] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier and the second identifier.

[0061] In some embodiments, the first message also includes: a third identifier, the third identifier indicates the cache space used by the first network device when receiving the first message, and the processing unit is specifically used to determine the second identifier based on the first identifier, the third identifier and the forwarding rule, and the forwarding rule includes the mapping relationship between the first identifier, the third identifier and the second identifier.

[0062] In some embodiments, the processing unit is further configured to update the value of the third identifier in the first message to the value of the second identifier before the sending unit forwards the first message according to the second identifier.

[0063] In some embodiments, the processing unit is specifically used to obtain port information, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving the first message, and the output port indicates the port used by the first network device when forwarding the first message; the second identifier is determined based on the port information, the first identifier and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the port information and the second identifier.

[0064] In some embodiments, the processing unit is specifically configured to determine an egress port used for forwarding the first message according to the first identifier and a destination address in the first message.

[0065] In some embodiments, the receiving unit is also used to receive a second message sent by a second network device, the second message includes cache space information in the second network device, and the second network device forwards the first message to the next-hop network device corresponding to the first network device; the processing unit is specifically used to determine the second identifier based on the first identifier, the cache space information and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the cache space information and the second identifier.

[0066] In some embodiments, the processing unit is further configured to update the value of the first identifier before the sending unit forwards the first message according to the second identifier.

[0067] In some embodiments, the processing unit is further configured to obtain and update a value corresponding to the first identifier according to the forwarding rule.

[0068] In some embodiments, the processing unit is further configured to, before determining the second identifier based on the first identifier and the forwarding rule, obtain network information, determine the forwarding rule based on the network information, and send the forwarding rule to the data plane of the first network device, where the network information includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network;

[0069] In some embodiments, the receiving unit is also used to receive configuration information corresponding to the forwarding rule sent by the controller before the processing unit determines the second identifier based on the first identifier and the forwarding rule, and determine the forwarding rule based on the configuration information. The configuration information is determined by the controller based on network information, and the network information includes network topology, routing method, and at least one or more resources possessed by at least one network device in the network.

[0070] In some embodiments, the processing unit is further configured to obtain an update period; and update the forwarding rule according to the update period.

[0071] In the seventh aspect, a message forwarding device is provided, which is applied to a source network device and includes: a processing unit and a sending unit; the processing unit is used to obtain a value of a first identifier and add the value of the first identifier to a first message, wherein the first identifier is related to an area divided based on multiple message forwarding paths in the network; the sending unit is used to send the first message to the first network device, so that the first network device determines a second identifier based on the first identifier and the forwarding rule, and the second identifier indicates the cache space used when forwarding the first message.

[0072] In some embodiments, the processing unit is specifically used to obtain network information, determine the value of the first identifier based on the network information, and send the value of the first identifier to the data plane of the source network device, and the network information includes network topology, routing method and at least one or more resources possessed by at least one network device in the network.

[0073] In some embodiments, the processing unit is specifically configured to enable the source network device to receive configuration information sent by a controller, and to determine a value of the first identifier based on the configuration information.

[0074] In some embodiments, the processing unit is specifically configured to determine a value of the first identifier based on cache space information and configuration information, where the cache space information is cache space information of a next-hop network device corresponding to sending the first message.

[0075] In some embodiments, the configuration information is determined by the controller based on network information, where the network information includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network.

[0076] In an eighth aspect, an information acquisition device is provided, which is applied to a first network device and includes:

[0077] a processing unit, configured to obtain network information, the network information including at least one or more of a network topology, a routing mode, and resources possessed by at least one network device in the network;

[0078] The processing unit is also used to obtain forwarding rules based on the network information, and the forwarding rules include a mapping relationship between a first identifier and a second identifier, the first identifier is related to an area divided based on multiple message forwarding paths in the network, and the second identifier indicates the cache space used when forwarding messages.

[0079] In some embodiments, the processing unit is specifically configured to obtain the network information, determine a forwarding rule based on the network information, and send the forwarding rule to the data plane of the first network device.

[0080] In some embodiments, the apparatus further comprises: a sending unit and a receiving unit;

[0081] The sending unit is configured to send the network information to the controller, so that the controller determines configuration information corresponding to the forwarding rule based on the network information;

[0082] The receiving unit is configured to receive the configuration information sent by the controller and determine the forwarding rule based on the configuration information.

[0083] In some embodiments, the processing unit is further configured to obtain an update period; and update the forwarding rule according to the update period.

[0084] In some embodiments, the device further includes: a receiving unit and a sending unit

[0085] The receiving unit is configured to receive a first message, where the first message includes the first identifier;

[0086] The processing unit is further configured to determine the second identifier according to the first identifier and the forwarding rule;

[0087] The sending unit is further configured to forward the first message according to the second identifier.

[0088] In some embodiments, the first message also includes: a third identifier, the third identifier indicates the cache space used by the first network device when receiving the first message, and the processing unit is specifically used to determine the second identifier based on the first identifier, the third identifier and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the third identifier and the second identifier.

[0089] In some embodiments, the processing unit is further configured to update the value of the third identifier in the first message to the value of the second identifier before the sending unit forwards the first message according to the second identifier.

[0090] In some embodiments, the processing unit is specifically used to obtain port information of the first network device, and the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving the first message, and the output port indicates the port used by the first network device when forwarding the first message; the second identifier is determined based on the port information, the first identifier and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the port information and the second identifier.

[0091] In some embodiments, the processing unit is specifically configured to determine an egress port used for forwarding the first message according to the first identifier and a destination address in the first message.

[0092] In some embodiments, the receiving unit is further configured to receive, by the first network device, a second message sent by a second network device, where the second message includes cache space information in the second network device, and the second network device forwards the first message to a next-hop network device corresponding to the first network device;

[0093] The processing unit is specifically configured to determine the second identifier according to the first identifier, the cache space information, and the forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the cache space information, and the second identifier.

[0094] In some embodiments, the processing unit is further configured to update the value of the first identifier before the sending unit forwards the first message according to the second identifier.

[0095] In some embodiments, the processing unit is further configured to obtain and update a value corresponding to the first identifier according to the forwarding rule.

[0096] In the ninth aspect, an information acquisition device is provided, characterized in that the device is applied to a source network device, and includes: a processing unit; the processing unit is used to obtain network information, and the network information includes at least one or more of the network topology, routing method and resources possessed by the source network device; the processing unit is also used to obtain the value of a first identifier based on the network information, and the first identifier is related to an area divided based on multiple message forwarding paths in the network.

[0097] In some embodiments, the processing unit is specifically configured to determine a value of a first identifier based on the network information, and send the value of the first identifier to the data plane of the source network device.

[0098] In some embodiments, the processing unit includes: a sending subunit and a receiving subunit;

[0099] The sending subunit is configured to send the network information to the controller, so that the controller determines configuration information based on the network information;

[0100] A receiving subunit is configured to receive the configuration information sent by the controller and determine a value of the first identifier based on the configuration information.

[0101] In some embodiments, the processing unit is specifically configured to determine a value of the first identifier based on cache space information and configuration information, where the cache space information is cache space information of a next-hop network device corresponding to sending the first message.

[0102] In some embodiments, the apparatus further comprises: a sending unit;

[0103] The processing unit is further configured to add the value of the first identifier to the message to be forwarded to obtain a first message;

[0104] The sending unit is configured to send the first message to a first network device, so that the first network device determines a second identifier according to the first identifier and a forwarding rule, where the second identifier indicates a cache space used when forwarding the first message.

[0105] In the tenth aspect, an information acquisition device is provided, which is applied to a controller and includes: a receiving unit for receiving network information sent by a network device, wherein the network information includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network; a processing unit for determining configuration information related to message forwarding based on the network information; a sending unit for sending first configuration information to a first network device, so that the first network device determines a forwarding rule based on the first configuration information, wherein the forwarding rule includes a mapping relationship between a first identifier and a second identifier, wherein the first identifier is related to an area divided based on multiple message forwarding paths in the network, and the second identifier indicates a cache space used when forwarding messages; and / or, sending second configuration information to a source network device, so that the source network device determines the value of the first identifier based on the second configuration information.

[0106] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier, and the third identifier indicates a cache space used by the first network device when receiving a message.

[0107] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier, port information and the second identifier, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving a message, and the output port indicates the port used by the first network device when forwarding a message.

[0108] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier, cache space information, and the second identifier, and the cache space information is cache space information of a next-hop network device corresponding to the message forwarded by the first network device.

[0109] In some embodiments, the processing unit is further configured to determine an update period; update the forwarding rule according to the update period; or

[0110] The sending unit is further configured to send the update period to the first network device, so that the first network device updates the forwarding rule according to the update period.

[0111] In some embodiments, the processing unit is specifically used to determine whether the forwarding of the message meets preset conditions based on the network information, and the preset conditions include network device failure and / or change in forwarding path; if the forwarding of the message meets the preset conditions, adjust the value of the first identifier.

[0112] In an eleventh aspect of the present application, a network device is provided, the network device comprising: a processor;

[0113] The processor is used to execute instructions or computer programs to cause the network device to execute the method in the first aspect or any possible design of the first aspect, or execute the method in the second aspect or any possible design of the second aspect, or execute the method in the third aspect or any possible design of the third aspect, or execute the method in the fourth aspect or any possible design of the fourth aspect, or execute the fifth aspect or any possible design of the fifth aspect.

[0114] In the twelfth aspect of the present application, a network system is provided, comprising: a first network device and a source network device; the first network device is used to execute the method in the first aspect or any possible design of the first aspect, or to execute the method in the third aspect or any possible design of the third aspect; the source network device is used to execute the method in the second aspect or any possible design of the second aspect, or to execute the method in the fourth aspect or any possible design of the fourth aspect.

[0115] In some embodiments, the network system further includes: a controller that executes the method in the fifth aspect or any possible design of the fifth aspect.

[0116] In the thirteenth aspect of the present application, a computer-readable storage medium is provided, comprising instructions, which, when executed on a computer, causes the computer to execute the method of the first aspect or any possible design of the first aspect, or execute the method of the second aspect or any possible design of the second aspect, or execute the method of the third aspect or any possible design of the third aspect, or execute the method of the fourth aspect or any possible design of the fourth aspect, or execute the method of the fifth aspect or any possible design of the fifth aspect.

[0117] In the fourteenth aspect of the present application, a computer program product is provided, which includes a program. When the program runs on a processor, it enables a computer or a network device to execute the method in the first aspect or any possible design of the first aspect, or execute the method in the second aspect or any possible design of the second aspect, or execute the method in the third aspect or any possible design of the third aspect, or execute the method in the fourth aspect or any possible design of the fourth aspect, or execute the method in the fifth aspect or any possible design of the fifth aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0118] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can also be obtained based on these drawings.

[0119] Figure 1 is a deadlock schematic diagram;

[0120] FIG2 is a schematic diagram of deadlock processing;

[0121] FIG3 is another deadlock processing schematic diagram;

[0122] FIG4 is a schematic diagram of a message forwarding framework provided in an embodiment of the present application;

[0123] FIG5 is a flowchart of a message forwarding method according to an embodiment of the present application;

[0124] Figures 6a-7 are schematic diagrams of forwarding rules provided in an embodiment of the present application;

[0125] FIG8 is a flow chart of an information acquisition method provided in an embodiment of the present application;

[0126] FIG9 is a flow chart of another information acquisition method provided in an embodiment of the present application;

[0127] FIG10 is a flow chart of another information acquisition method provided in an embodiment of the present application;

[0128] FIG11 is a schematic diagram of a network device structure provided in an embodiment of the present application;

[0129] FIG12a is a schematic diagram of a network topology provided in an embodiment of the present application;

[0130] FIG12b is a schematic diagram of message forwarding based on single-area two-stage active planning according to an embodiment of the present application;

[0131] FIG13a is a schematic diagram of dividing a network into multiple areas according to an embodiment of the present application;

[0132] FIG13b is a schematic diagram of VL allocation provided in an embodiment of the present application;

[0133] FIG14a is a schematic diagram of deadlock processing based on multi-region two-stage passive response according to an embodiment of the present application;

[0134] FIG14b is a schematic diagram of message forwarding in a passive response according to an embodiment of the present application;

[0135] FIG14c is a schematic diagram of deadlock handling based on multi-region two-stage periodic adjustment according to an embodiment of the present application;

[0136] FIG15 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application;

[0137] FIG16 is a schematic diagram of the structure of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0138] The following will describe the solutions in the embodiments provided in this application in conjunction with the drawings in this application.

[0139] The terms "first," "second," and the like in the specification and claims of this application and the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate and are merely used to describe the manner in which objects with the same attributes are described in the embodiments of this application.

[0140] When forwarding dependencies exist in the network architecture, the probability of forwarding deadlock occurring in the network architecture is high. Furthermore, when the above-mentioned network structure supports multiple routing methods, the probability of forwarding deadlock occurring is even greater. For example, in a mesh topology wireless mesh (Mesh) network architecture, the shortest path routing method is supported. In this network architecture, there are multiple equivalent shortest paths between any two network nodes. When there are multiple source-destination network nodes communicating simultaneously, the shortest paths of these multiple source-destination network nodes form a loop, resulting in the situation shown in Figure 1, and a deadlock occurs.

[0141] If the above routing method is specially processed, for example, even if there are multiple equal-cost shortest paths between any source and destination network nodes, only one specific shortest path is allowed to be used. By properly planning this specific shortest path, the deadlock situation shown in Figure 1 can be avoided. Therefore, the routing method within a network architecture will also affect the occurrence of deadlock. However, a network architecture will carry different types of services, and different types of services have different requirements for routing methods. For example, some services require the use of multiple equal-cost shortest paths between source and destination network nodes, while other services require the use of multiple non-equal-cost paths between source and destination network nodes. In this case, one requirement for deadlock handling technology is to be able to support multiple routing methods simultaneously, while also providing differentiated processing for different services.

[0142] Furthermore, the switching capabilities of most network nodes are designed based on a distributed routing model with table lookup forwarding. When forwarding packets, network nodes rely on querying local routing tables to determine which port to forward packets from. This requires deadlock handling technology to support this distributed table lookup routing model. Furthermore, the resources on these network nodes are limited, including computing units and cache size. Therefore, deadlock handling technology must meet these resource constraints.

[0143] There are currently two solutions available:

[0144] Solution 1 designs a mapping relationship based on service level (SL) to virtual lane (VL). Specifically, as shown in Figure 2, it includes four network nodes, namely the source node S, the intermediate nodes SW1 and SW2, and the destination node D. Among them, SW1 and SW2 can be switches, S and D can be network devices with switching functions, such as switches, or network devices independent of switches, such as routers and servers. The data plane of the network node (SW1 and SW2 in Figure 2) queries the local SL to VL mapping table based on the value of the SL field in the message header, and selects the corresponding VL forwarding based on the query result. Among them, the SL to VL mapping table and the value of the SL field in the message header can be allocated in advance by the management plane of the network node by running the deadlock processing algorithm based on the topology results and routing method.

[0145] The management plane primarily provides deadlock resolution algorithms such as Torus-2QoS and LASH. The Torus-2QoS algorithm is designed for the DOR routing algorithm in the Torus networking architecture, while the LASH algorithm can be applied to the shortest path routing algorithm of any networking architecture. The Torus-2QoS algorithm assigns a SL value based on the packet's end-to-end path. The algorithm primarily determines whether the packet's end-to-end path passes through a loop at each Torus dimension, then selects the corresponding SL value and maps the SL to the VL. This allows switches to select the appropriate VL when forwarding packets on the network simply by looking at the SL value corresponding to the current dimension. The LASH algorithm assigns a VL value based on the packet's end-to-end path. The algorithm primarily determines whether the packet's end-to-end path will cause a cache cycle dependency in the current VL. If so, the next VL is selected.

[0146] To implement this solution, the management plane must assign an appropriate SL value and SL-to-VL mapping based on the packet's end-to-end path on the data plane before sending the packet. This means that the end-to-end path must be determined before the packet enters the data plane for forwarding, and this path cannot be arbitrarily changed during the data plane forwarding process. Otherwise, the SL value and SL-to-VL mapping assigned by the management plane will not match the current data plane forwarding path. Therefore, this deadlock handling method limits the flexibility of the packet forwarding path on the data plane.

[0147] Solution 2, Cray's deadlock handling in the Torus networking architecture used in XT and other series devices, is similar to the NVIDIA OpenSM described in Solution 1, divided into a data plane and a management plane. As shown in Figure 3, it includes four network nodes: source node S, intermediate nodes SW1 and SW2, and destination node D. SW1 and SW2 can be switches, while S and D can be network devices with switch functionality, such as switches, or independent network devices such as routers or servers. The data plane of a network node (such as SW1 and SW2 in Figure 3) queries the local routing table based on the value of the destination address (DA) field in the packet header and selects the egress port (target port) and the corresponding virtual channel (VC) based on the query results. The mapping from the DA to the egress port and VC in the local routing table can be pre-assigned by a deadlock handling algorithm running on the network node's management plane based on the topology and routing scheme. This management plane primarily designs deadlock handling for the DOR routing algorithm in the Torus networking architecture.

[0148] This solution, based on the unique egress port and corresponding VC value obtained through DA query, limits the deadlock handling technology supported by the management plane to a single path. Currently, deadlock handling is designed only for the DOR routing algorithm in the Torus network architecture, limiting the network architecture and routing methods.

[0149] Through research, it is found that in order to improve the flexibility of networking architecture or routing methods, anti-deadlock technology needs to meet at least the following conditions: support multiple networking architectures, support multiple routing methods, and meet the resource constraints of network nodes.

[0150] Based on this, the present application provides a solution, which will take into account the network topology, routing method and resources of at least one network device in the network when determining the deadlock processing, so that the determined deadlock processing can support multiple networking architectures, support multiple routing methods and meet the requirements of network device resource constraints, and then the network device will forward the message according to the above-mentioned deadlock processing method when forwarding the message, thereby improving the flexibility of message forwarding. Specifically, a first network device receives a first message, and the first message includes a first identifier, and the first identifier is related to an area divided based on multiple message forwarding paths in the network, that is, the determination of the first identifier takes into account multiple message forwarding paths, thereby avoiding forwarding dependencies between multiple forwarding paths. The first network device determines a second identifier based on the first identifier and the forwarding rule, and the second identifier indicates the cache space used when forwarding the first message, and then the first network device forwards the first message based on the second identifier.

[0151] In the embodiments of the present application, organizational architecture and network topology refer to the same meaning and can be understood and used interchangeably; network node and network device refer to the same meaning and can be understood and used interchangeably.

[0152] It should be noted that the technical solutions provided in this application can be applied in scenarios including but not limited to data center networks. In this scenario, they are mainly used for high performance computing (HPC), high performance storage, artificial intelligence (AI), etc. The network devices in this embodiment may include but are not limited to switches, routers, terminal devices, servers, and computer cards with switching capabilities. Among them, computer cards with switching capabilities may include extensible processing units (XPUs) such as central processing units (CPUs), graphics processing units (GPUs), and neural network processing units (NPUs).

[0153] It should be understood that the network device can also be a virtual switch, a virtual router, a packet transport network device (PTN), an optical transport network (OTN) device and other network devices. The network device can also be a network card in a server, or the server itself carried by an NPU or GPU. This application does not limit the form of the network device.

[0154] To facilitate understanding of the specific implementation of this application, refer to Figure 4, which is a schematic diagram of a centralized application scenario provided by an embodiment of this application. In this application scenario, five network devices are included, namely a controller, a source network device S, a first intermediate device SW1, a second intermediate device SW2, and a destination network device D. Among them, SW1 and SW2 are network devices with switching capabilities, such as switches. S and D can also be network devices with switching capabilities, or other network devices, such as terminal devices, servers, etc. In this scenario, the specific implementation process is as follows:

[0155] Step 1: The controller collects network information, which includes network topology, routing mode, and resources of at least one network device in the network.

[0156] Step 2: The controller determines a matching deadlock handling method based on the network information, and determines configuration information related to packet forwarding based on the deadlock handling method.

[0157] That is, the controller will determine the deadlock processing information based on the network topology, routing method and one or more of the resources possessed by at least one network device in the network, so that the determined deadlock processing information can adapt to different network topologies, routing methods and resources, thereby improving the flexibility of handling deadlock phenomena.

[0158] Step 3: The controller sends the corresponding configuration information to each network device in the network.

[0159] Specifically, the controller distributes configuration information applicable to each network device to each network device, enabling each network device to obtain the information it needs based on the configuration information. For example, SW1 and SW2 determine a forwarding rule table based on the received configuration information. As shown in Figure 4, this forwarding rule table includes a mapping between a first identifier and a second identifier. Based on the configuration information, SW1 determines the value of the first identifier and adds it to the message to be forwarded.

[0160] The controller can collect network information and issue configuration information using common control protocols, such as the Network Configuration (NETCONF) protocol.

[0161] Step 4: When sending a message, S adds the value of the first identifier to the message header.

[0162] Step 5: After receiving the message sent by S, SW1 determines the second identifier based on the value of the first identifier in the message and the forwarding rule table. At the same time, it can modify the value of the first identifier in the message and forward the message according to the second identifier and send it to SW2.

[0163] After receiving the message, SW2 repeats the operation of step 5 and forwards the message according to the value of the first identifier in the message, thereby avoiding deadlock and improving the flexibility of message forwarding.

[0164] It should be noted that this embodiment can also be applied to distributed application scenarios, in which each network device in the network collects network information and determines the information it needs based on the network information. For example, a source network device determines possible values ​​for a first identifier based on the network information so that when sending a message, the value of the first identifier is added to the message header. An intermediate network device determines a forwarding rule based on the network information so that after receiving a message, it determines a second identifier based on the first identifier in the message and the forwarding rule, and then forwards the message based on the second identifier. In this scenario, the structure of the network devices can be seen in Figure 11.

[0165] In combination with the above application scenarios, the technical solution provided by this application will be explained.

[0166] Referring to FIG5 , which is a flow chart of a message forwarding method provided in an embodiment of the present application, as shown in FIG5 , the method includes:

[0167] S501: The source network device obtains a value of a first identifier, and adds the value of the first identifier to a first message.

[0168] The first identifier is associated with a region divided based on multiple message forwarding paths in a network, where the network refers to the network in which the source network device and the first network device are located. The source network device can be a network device with switching capabilities, such as a switch, or a terminal device, server, etc. For example, the source network device is S in Figure 4, and the first network device is SW1 or SW2 in Figure 4.

[0169] The source network device may obtain the value of the first identifier by:

[0170] In one approach, the management plane of the source network device obtains network information, determines a value for a first identifier based on the network information, and sends the value of the first identifier to the data plane of the source network device. The network information includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network. Resources, network topology, and routing methods will be described in subsequent embodiments.

[0171] In other words, the management plane of the source network device can deploy a deadlock handling algorithm. After obtaining network information, the management plane determines a matching deadlock handling method based on the deadlock handling algorithm and the network information, and then determines the value of the first identifier based on the deadlock handling method. After determining the value of the first identifier, the management plane sends the value of the first identifier to the data plane, so that when the data plane forwards the message, it adds the value of the first identifier to the message to be forwarded to obtain the first message.

[0172] The value of the first identifier is related to the deadlock handling method, which may include active planning, passive response, and periodic adjustment. Specifically, the value of the first identifier represents a specific deadlock handling method and the region and stage corresponding to the deadlock handling method.

[0173] A region is defined based on multiple packet forwarding paths within a network. If a packet cannot be forwarded along the pre-defined path from a source network device to a destination network device (e.g., due to a network device failure or a change in the forwarding path), another network device is selected as an intermediate node, which divides the path into multiple segments. If there is only one intermediate node, the first phase is from the source network device to the intermediate node, and the second phase is from the intermediate node to the destination network device, forming two phases.

[0174] Specifically, regional division involves constructing a dependency graph based on network topology and routing methods, thinning the dependency graph to form multiple directed acyclic graphs (DAGs), and ensuring that there are no loops between the DAGs. Thinning the DAGs to form regions. Stage division involves forming different stages when forwarding across regions or when forwarding paths within a region are updated.

[0175] Active planning refers to actively matching deadlock handling methods based on network information, passive response refers to matching deadlock handling methods based on network information and cache space information reported by downstream network devices, and periodic adjustment refers to regularly matching deadlock handling methods based on network information and update cycles.

[0176] It should be noted that the value representation of the first identifier can be determined according to actual application conditions, for example, it can be represented by numbers, letters, or a combination of numbers and letters. The specific representation is determined by negotiation among multiple network devices.

[0177] The value of the first identifier can be shown in Table 1, which uses numbers to represent the value of the first identifier. Taking Table 1 as an example, after obtaining the value of the first identifier, the corresponding deadlock handling method can be determined according to the numerical range of the value.

[0178] Table 1 Values ​​of the first identifier

[0179] It should be noted that in some scenarios, the values ​​of the first identifier can also be discontinuous. For example, the numbers 1-N indicate active planning, 2N-3N indicate passive response, and 4N-5N indicate periodic adjustment. Of course, other representations are also possible as long as different deadlock handling methods can be distinguished.

[0180] Another approach is for the source network device to receive configuration information sent by the controller and determine a value of the first identifier based on the configuration information. The configuration information is determined by the controller based on network information, including at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network.

[0181] In this implementation, the source network device can report network information to the controller, or the controller can proactively collect network information. After obtaining the network information, the controller determines configuration information based on the network information. The configuration information may include multiple first identifier values. After obtaining the configuration information, the source network device can randomly select a value from the multiple first identifier values ​​and add it to the first message. Alternatively, the source network device can select a qualified value from the multiple first identifier values ​​and add the value to the first message.

[0182] The source network device obtains the cache space information sent by the first network device and then determines the value of the first identifier based on the cache space information and configuration information. For example, the source network device selects a value from multiple first identifier values ​​based on the cache space information. The cache space information may include one or more of the remaining cache space, total cache space, or used cache space of the first network device.

[0183] The first identifier may be carried in the VL field of the message header, specifically, the high-order bits of the VL are used to carry the first identifier. Alternatively, the first identifier may be carried in the LB field of the message header, specifically, the high-order two bits of the LB are used to carry the first identifier. Of course, the first identifier may also be carried in other fields of the message header, which is not limited in this embodiment.

[0184] S502: The source network device sends a first message to the first network device.

[0185] The source network device and the first network device may be the same network device, in which case the first message is transmitted inside the source network device, or they may be two independent physical devices.

[0186] S503: The first network device receives the first message, and determines the second identifier according to the first identifier in the first message and a forwarding rule.

[0187] After receiving the first message, the first network device obtains the first identifier by parsing the first message, and then determines the second identifier based on the first identifier and the forwarding rule. The second identifier indicates the cache space used when forwarding the first message. The cache space can be the cache space used by the first network device when forwarding the first message, or it can be the cache space on the next-hop network device corresponding to when the first network device forwards the first message, that is, the cache space used by the next-hop network device when receiving the first message. The second identifier can be one of a virtual queue VL, a virtual channel VC, or a priority. The priority refers to the priority of a port on a network device, and different ports correspond to different priorities.

[0188] The forwarding rule may include a mapping relationship between a first identifier and a second identifier. After obtaining the first identifier, the first network device determines a matching second identifier based on the first identifier and the mapping relationship. The forwarding rule may be expressed in a form determined based on actual application scenarios, such as a forwarding rule table, a forwarding function, etc.

[0189] In one scenario, the first message may also include a third identifier, which indicates the cache space used by the first network device when receiving the first message. The third identifier is added to the message header of the first message by the source network device before forwarding the first message to the first network device. The value of the third identifier can be determined by the source network device based on network information, or determined by the source network device according to the configuration information sent by the controller. Or it can also be determined according to the service type. For example, for different service types, the third identifier can be pre-configured to correspond to different values. Before sending the first message, the source network device determines the value of the third identifier according to the service type to which the first message belongs, and then adds it to the message header of the first message. The third identifier can be a virtual queue VL, a virtual channel VC or a priority.

[0190] If the first message further includes the third identifier, the first network device determines the second identifier based on the first identifier, the third identifier, and a forwarding rule, wherein the forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier.

[0191] For ease of understanding, the following embodiments will be described using the example where the first identifier is represented as Hint, the third identifier is represented as input VL, and the third identifier is represented as output VL. For example, as shown in Figure 6a, the first identifier is Hint, the third identifier is input VL, and the second identifier is output VL. The value of the third identifier can indicate the address or number corresponding to the cache space used by the first network device when receiving the first message, the value of the second identifier can indicate the address or number corresponding to the specific cache space used by the first network device when forwarding the first message, or indicate the address or number corresponding to the specific cache space used by the next-hop network device when receiving the first message.

[0192] In one scenario, when determining the second identifier, port information may also be referenced. Specifically, when the first network device determines the second identifier based on the first identifier and the forwarding rule, the first network device obtains the port information and determines the second identifier based on the port information, the first identifier, and the forwarding rule. The port information may include an inbound port and / or an outbound port. The inbound port refers to the port used by the first network device to receive the first message, and the outbound port refers to the port used by the first network device when forwarding the first message. In this case, the forwarding rule will include a mapping relationship between the first identifier, the port information, and the second identifier. For example, as shown in FIG6b , the forwarding rule includes a mapping relationship between the first identifier Hint, the inbound port, the outbound port, and the second identifier VL. Alternatively, the forwarding rule includes a mapping relationship between the first identifier, the third identifier, the port information, and the second identifier. As shown in FIG6c , the forwarding rule includes a mapping relationship between the first identifier Hint, the inbound port, the outbound port, the third identifier inbound VL, and the second identifier outbound VL. The value of the inbound port indicates the address or number corresponding to the inbound port that receives the first message, and the value of the outbound port indicates the address or number corresponding to the outbound port used to forward the first message.

[0193] Among them, when determining the output port, the first network device can determine the output port used to forward the first message based on the first identifier and the destination address in the first message. Specifically, the first network device searches the routing table according to the first identifier and the destination address to obtain the corresponding output port. Among them, the routing table includes a mapping relationship between the first identifier, the destination address and the output port. Alternatively, the first network device can also determine the output port by searching the routing table according to the first identifier, the input port and the destination address. In this case, the routing table can include a mapping relationship between the first identifier, the input port, the destination address and the output port. Alternatively, the first network device can also determine the output port by searching the routing table only according to the destination address. In this case, the routing table includes a mapping relationship between the destination address and the output port.

[0194] In one scenario, when determining the second identifier, the cache space information of the next-hop network device can also be referred to, so as to ensure that the cache space indicated by the determined second identifier can cache the first message. Specifically, the first network device receives the second message sent by the second network device, and the second message includes the cache space information in the second network device; the first network device determines the second identifier based on the first identifier, the cache space information and the forwarding rule. Among them, the second network device is the next-hop network device corresponding to the first message forwarded by the first network device, for example, the first network device is SW1 in Figure 4, and the second network device is SW2 in Figure 4. In this case, the forwarding rule includes a mapping relationship between the first identifier, the cache space information and the second identifier.

[0195] The cache space information may include the remaining cache space size in the second network device, or the total cache space size and / or the used cache space size of the second network device, so as to obtain the remaining cache space size in the second network device. For example, as shown in FIG6d , the forwarding rule includes a mapping relationship between a first identifier Hint, a cache space restriction condition Cond, an input port, an output port, a third identifier input VL, and a second identifier output VL, wherein the cache space restriction condition Cond limits the size of the remaining cache space in the next-hop network device. Specifically, the cache space display condition may include being greater than a preset remaining cache space threshold or being less than or equal to a preset remaining cache space threshold.

[0196] The forwarding rules can be obtained in the following ways:

[0197] One approach is for the management plane of the first network device to obtain network information, determine forwarding rules based on the network information, and send the forwarding rules to the data plane of the first network device. The network information includes at least one or more of the following: network topology, routing method, and resources possessed by at least one network device in the network. Specifically, the management plane of the first network device can deploy a deadlock handling algorithm. After obtaining the network information, the management plane uses the deadlock handling algorithm and the network information to determine a matching deadlock handling method, and then generates a forwarding rule table applicable to itself based on the deadlock handling method. This forwarding rule table can avoid the occurrence of deadlock situations.

[0198] In this implementation, the first network device can also obtain an update cycle and update the forwarding rules based on the update cycle, so that the forwarding rules can adapt to the current forwarding situation of the network and avoid deadlock. The first network device can periodically collect network information and re-match the deadlock handling method based on the latest collected network information, and then generate the latest forwarding rule table based on the matched deadlock handling method.

[0199] Another is that the first network device receives the configuration information corresponding to the forwarding rule sent by the controller, and determines the forwarding rule based on the configuration information. The configuration information is determined by the controller based on the network information, and the network information can be reported to the controller by the first network device, or reported to the controller by other network devices in the network. Specifically, the controller determines the matching deadlock handling method based on the network information, and then obtains the configuration information corresponding to the deadlock handling method, and sends the configuration information to each network device. For example, in Figure 4, the controller C sends the configuration information applicable to the network device to SW1 and SW2 respectively. The configuration information may include a description of the relationship between the first identifier, other information and the second identifier. After obtaining the configuration information, the first network device converts it into a corresponding value and generates a forwarding rule table so that the forwarding rule table can be directly read and used when forwarding the message. The other information may include one or more of the third identifier, port information, and cache space restriction conditions.

[0200] Among them, determining the configuration information corresponding to the forwarding rule based on the network information may include: first constructing a forwarding dependency graph based on the network topology and routing method, and analyzing whether the message forwarding will form a loop based on the dependency graph. If it forms a loop, the area is divided and the area is thinned. Specifically, the forwarding link is divided into different loop-free areas to complete the splitting of the dependency graph into a directed acyclic graph. A set is established with the area as the granularity to determine whether the message forwarding between areas forms a loop. If it forms a loop, further thinning is performed. After the above processing, the configuration information corresponding to the forwarding rule is generated according to the area division and the link division within the area. The dependency graph is a directed graph that represents the mutual dependence between network devices. Thinning refers to disconnecting some connections in the dependency graph so that there are no loops.

[0201] That is, when determining the forwarding rules, not only one or more information such as network topology, routing method and resource constraints is referred to, but also the dependencies of multiple message forwarding paths in the network are referred to. This is so that when a deadlock occurs during message forwarding, the message forwarding path can be changed based on the forwarding rules, without being limited to a fixed forwarding path, thereby improving the flexibility of message forwarding.

[0202] The configuration information may also include an update period, and the first network device may periodically update the forwarding rules according to the update period. Specifically, the controller may determine the update rules based on changes in network information and transmit them to the first network device via the configuration information, thereby enabling the first network device to update the forwarding rules based on the updated rules, ensuring that the forwarding rules are consistent with the current forwarding conditions of the network and avoiding deadlock.

[0203] S504: The first network device forwards the first message according to the second identifier.

[0204] After determining the second identifier, the first network device forwards the first message with reference to the second identifier.

[0205] If the second identifier indicates the buffer space used by the first network device when forwarding the first message, the first network device forwards the first message to the next-hop network device through the buffer space corresponding to the second identifier.

[0206] If the second identifier indicates the cache space used by the next-hop network device to receive the first message, the first network device forwards the first message to the next-hop network device, so that the next-hop network device uses the cache space corresponding to the second identifier to cache the first message when receiving the first message.

[0207] In this embodiment, when the first message also includes a third identifier, before the first network device forwards the first message based on the second identifier, the first network device further includes: updating the value of the third identifier in the first message to the value of the second identifier. For example, in conjunction with the application scenario of Figure 4, the value of the first identifier Hint in the first message sent by S is 1, and the value of the third identifier In VL is 0. SW1 determines that the value of the second identifier is 1 based on Figure 6a. Then, before forwarding the first message to SW2, SW1 updates the value of the third identifier In VL to 1, and then forwards the first message to SW2.

[0208] In some embodiments, before forwarding the first message based on the second identifier, the first network device may also update the value of the first identifier. Specifically, the first network device may obtain the value corresponding to the first identifier based on the value of the first identifier and the forwarding rule. The forwarding rule includes the value corresponding to the first identifier, and the forwarding rule may be expressed in, but not limited to, any of the forms shown in FIG7. Alternatively, the first network device may calculate the value corresponding to the first identifier using a preset algorithm based on the value of the first identifier and the value of the second identifier.

[0209] It can be seen that after receiving the first message, the first network device parses the first identifier, which is related to the area divided based on multiple message forwarding paths in the network, and the first identifier is used to indicate the forwarding of the first message. The first network device determines the second identifier based on the first identifier and the forwarding rule, and the second identifier indicates the cache space used when forwarding the first message, and then forwards the first message according to the second identifier. That is, through the technical solution provided by the present application, during the message forwarding process, the network device determines the cache space used for forwarding the message at any time based on the first identifier and forwarding rules carried in the message. Since the first identifier is related to the area divided based on multiple message forwarding paths in the network, that is, when determining the first identifier, multiple message forwarding paths in the network are taken into account, avoiding deadlock due to circular dependence of multiple message forwarding vehicles, not only ensuring the normal forwarding of messages, but also improving the flexibility of message forwarding.

[0210] Referring to FIG8 , which is a flow chart of an information acquisition method provided in an embodiment of the present application, as shown in FIG8 , the method is applied to a first network device and includes:

[0211] S801: The first network device obtains network information.

[0212] The network information includes at least one or more of network topology, routing mode, and resources possessed by at least one network device in the network. The first network device may be SW1 or SW2 in FIG4 .

[0213] Among them, the network topology may include but is not limited to Torus networking, low-diameter networking architecture (such as mesh topology Mesh, torus topology Torus, hypercube topology Hyper-Cube, etc.), high-diameter networking architecture (such as two-dimensional mesh topology 2D-FullMesh, Dragonfly, Slim-Fly, etc.), and even a mixture of multiple networking architectures (such as multiple local two-dimensional mesh topology 2D-FullMesh networks interconnected by fat tree topology Fat-Trees to form a global 2D-FullMesh+FatTrees networking architecture, etc.).

[0214] Routing methods may include, but are not limited to, single-path routing, multi-path routing, equal-cost path routing, and non-equal-cost path routing. Single-path routing refers to a single forwarding path from a source network device to a destination network device. Multi-path routing refers to the existence of multiple, adaptively selectable forwarding paths from a source network device to a destination network device. Equal-cost path routing refers to the existence of multiple paths of equal cost from a source network device to a destination network device. Non-equal-cost path routing refers to the existence of multiple paths of varying cost from a source network device to a destination network device.

[0215] The resources possessed by the network device may include computing units (eg, CPU, GPU, NPU size), cache size, and the like.

[0216] S802: The first network device obtains a forwarding rule according to the network information.

[0217] Specifically, the first network device may obtain the forwarding rule in the following manner:

[0218] One is that the management plane of the first network device obtains network information, determines a forwarding rule based on the network information, and sends the forwarding rule to the data plane of the first network device.

[0219] Another is that the first network device sends network information to the controller, so that the controller determines configuration information corresponding to the forwarding rule based on the network information; the first network device receives the configuration information sent by the controller, and determines the forwarding rule based on the configuration information.

[0220] It should be noted that, for the specific implementation of S802, reference may be made to the relevant description of S503 in the embodiment shown in FIG5 , which will not be repeated herein.

[0221] In some embodiments, the first network device may further perform the following operations: the first network device obtains an update period and updates the forwarding rule according to the update period. For the specific implementation of the first network device updating the forwarding rule according to the update period, please refer to the relevant description in S503 of the embodiment shown in FIG5 , and this embodiment will not be repeated here.

[0222] In some embodiments, a first network device receives a first message, the first message including the first identifier; the first network device determines a second identifier based on the first identifier and a forwarding rule; and the first network device forwards the first message based on the second identifier. For specific implementations of the first network device determining the second identifier based on the first identifier and the forwarding rule, and forwarding the first message based on the second identifier, please refer to the relevant description in S503-S504 of the embodiment shown in FIG. 5 , and this embodiment will not be repeated here.

[0223] In some embodiments, the first message further includes a third identifier indicating a cache space utilized by the first network device when receiving the first message, and the first network device determining the second identifier based on the first identifier and a forwarding rule, including: the first network device determining the second identifier based on the first identifier, the third identifier, and the forwarding rule. The forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier. The implementation of the above process can be found in the relevant description of S503 in the embodiment depicted in FIG. 5 , and this embodiment will not be further described here.

[0224] In some embodiments, before the first network device forwards the first message according to the second identifier, the first network device further includes: updating the value of the third identifier in the first message to the value of the second identifier. The implementation of the above process can be seen in the relevant description of S504 in the embodiment of Figure 5, and this embodiment will not be repeated here.

[0225] In some embodiments, the first network device determines the second identifier based on the first identifier and the forwarding rule, including: the first network device obtains port information, the port information includes an inbound port and / or an outbound port, the inbound port indicates the port used by the first network device when receiving the first message, and the outbound port indicates the port used by the first network device when forwarding the first message; the first network device determines the second identifier based on the port information, the first identifier, and the forwarding rule. The forwarding rule includes a mapping relationship between the first identifier, the port information, and the second identifier. The implementation of the above process can be found in the relevant description in S503 in the embodiment described in Figure 5, and this embodiment will not be repeated here.

[0226] In some embodiments, the first network device obtains the port information, including: the first network device determines the egress port used to forward the first message based on the first identifier and the destination address in the first message. The implementation of the above process can be seen in the relevant description of S503 in the embodiment of Figure 5, and this embodiment will not be repeated here.

[0227] In some embodiments, the first network device determines the second identifier based on the first identifier and the forwarding rule, including: the first network device receives a second message sent by the second network device, the second message includes cache space information in the second network device, and the second network device forwards the first message to the next-hop network device corresponding to the first network device; the first network device determines the second identifier based on the first identifier, the cache space information, and the forwarding rule. The forwarding rule includes a mapping relationship between the first identifier, the cache space information, and the second identifier. The implementation of the above process can be found in the relevant description of S503 in the embodiment described in Figure 5, and this embodiment will not be repeated here.

[0228] In some embodiments, before the first network device forwards the first message based on the second identifier, the first network device further includes: updating the value of the first identifier. The first network device may obtain the value corresponding to the first identifier based on the value of the first identifier and a forwarding rule. The implementation of the above process can be found in the relevant description of S504 in the embodiment of FIG. 5 , and will not be further described in this embodiment.

[0229] 9 , which is a flow chart of an information acquisition method provided in an embodiment of the present application, wherein the method is applied to a source network device and includes:

[0230] S901: The source network device obtains network information.

[0231] The network information includes at least one or more of the network topology, routing mode, and resources of the source network device. For details about the network topology, routing mode, and resources, see the relevant description in S801 of the embodiment of FIG8 . For example, the source network device may be S in FIG4 .

[0232] S902: The source network device obtains a value of a first identifier based on the network information, where the first identifier is related to an area divided based on multiple message forwarding paths in the network.

[0233] The source network device may obtain the value of the first identifier in the following manner:

[0234] One is that the management plane of the source network device determines the value of the first identifier based on the network information, and sends the value of the first identifier to the data plane of the source network device.

[0235] The other is that the source network device sends network information to the controller, so that the controller determines configuration information based on the network information; the source network device receives the configuration information sent by the controller, and determines the value of the first identifier based on the configuration information.

[0236] It should be noted that, for the specific implementation of S902, reference may be made to the relevant description of S501 in the embodiment shown in FIG5 , which will not be repeated herein in this embodiment.

[0237] In some embodiments, the source network device may also add the value of the first identifier to the message to be forwarded to obtain the first message; the source network device then sends the first message to the first network device, so that the first network device determines the second identifier based on the first identifier and the forwarding rule. The second identifier indicates the cache space used when forwarding the first message. For the implementation of the above process, see the relevant description of S501 in the embodiment of Figure 5.

[0238] Referring to FIG. 10 , which is a flow chart of an information acquisition method provided in an embodiment of the present application, the method is applied to a controller and includes:

[0239] S1001: The controller receives network information sent by the network device.

[0240] The network information includes at least one or more of the following: network topology, routing mode, and resources of at least one network device in the network. For details about the network topology, routing mode, and resources, see the relevant description in S801 of the embodiment described in FIG8 . For example, the controller may be C in FIG4 .

[0241] S1002: The controller determines configuration information related to message forwarding according to network information.

[0242] The configuration information determined by the controller varies for different network devices. In this embodiment, two types of configuration information are included: first configuration information and second configuration information. The first configuration information is for non-source network devices on the packet forwarding path, such as SW1 and SW2 in Figure 4 , and is used to determine forwarding rules. The second configuration information is for source network devices on the packet forwarding path, such as S in Figure 4 , and is used to determine the value of the first identifier.

[0243] Regarding how the controller determines configuration information related to message forwarding according to network information, reference may be made to the relevant description of S501 or the relevant description of S503 in the embodiment shown in FIG. 5 .

[0244] S1003: The controller sends first configuration information to the first network device, so that the first network device determines a forwarding rule according to the first configuration information.

[0245] The forwarding rule includes a mapping relationship between a first identifier and a second identifier, wherein the first identifier is related to a region divided based on multiple message forwarding paths in the network, and the second identifier indicates the cache space used when forwarding the message. For example, the first network device is SW1 or SW2 in Figure 4.

[0246] For the specific implementation of the first network device determining the forwarding rule according to the first configuration information, reference may be made to the relevant description in S503 in the embodiment shown in FIG. 5 .

[0247] S1004: The controller sends second configuration information to the source network device, so that the source network device determines a value of the first identifier according to the second configuration information.

[0248] For the specific implementation of the source network device determining the value of the first identifier according to the second configuration information, please refer to the relevant description of S501 in the embodiment of Figure 5. For example, the source network device is S in Figure 4.

[0249] In some embodiments, the forwarding rule includes a first identifier, a third identifier, and a mapping relationship between the third identifiers, and the third identifier indicates a cache space used by the first network device when receiving a message.

[0250] In some embodiments, the forwarding rules include a mapping relationship between a first identifier, port information and a second identifier, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving a message, and the output port indicates the port used by the first network device when forwarding a message.

[0251] In some embodiments, the forwarding rule includes a mapping relationship between a first identifier, cache space information, and a second identifier, and the cache space information is cache space information of a next-hop network device corresponding to the message forwarded by the first network device.

[0252] In some embodiments, the controller may further determine an update period, and the controller updates the forwarding rule according to the update period. Alternatively, the controller sends the update period to the first network device, so that the first network device updates the forwarding rule according to the update period.

[0253] Regarding the specific implementation of the controller or the first network device updating the forwarding rule according to the update period, reference may be made to the relevant description of S503 in the vector shown in FIG. 5 .

[0254] In some embodiments, the controller determines configuration information related to the message based on the network information, including: determining whether forwarding of the message meets preset conditions based on the network information, the preset conditions including a network device failure and / or a change in the forwarding path; if the forwarding of the message meets the preset conditions, the controller adjusts the value of a first identifier. The value of the first identifier is related to the current stage, and when the stage changes, the value of the first identifier also changes accordingly.

[0255] After obtaining network information, the controller determines whether the forwarding of a certain message meets the preset conditions. If the preset conditions are met, such as a network device failure on the forwarding path corresponding to the message, a change in the forwarding path corresponding to the message, etc., indicating that the forwarding rules have changed, the controller will adjust the value of the first identifier so as to avoid deadlock by changing the value of the first identifier. That is, when the forwarding of the message meets the preset conditions, a phase change will occur and enter the next phase (for example, from the first phase to the second phase), thereby causing the value of the first identifier to change. Among them, network equipment failures can include software failures and hardware failures. Software failures can include defects or conflicts in the software programs or transmission protocols deployed on the network equipment; hardware failures can include communication interface, integrated circuit failures, etc.

[0256] Among them, for different networks, the manifestation of the change in the forwarding path is different. Specifically, the change in the forwarding path means that it is different from the conventional forwarding path or the preset forwarding path. For example, for the Clos network, if the sending direction of the message changes from bottom to top, it is determined that the forwarding path has changed; for the Tours network, it is pre-defined to forward along the X-axis first and then along the Y-axis. If the message is forwarded along the Y-axis first and then along the X-axis, it is determined that the forwarding path has changed; for the Dragonfly network, it is pre-defined to first go from the local path to the global path or first from the global path to the local path. If the local path goes from the local path to the global path and then to the global path, it is determined that the forwarding path has changed.

[0257] It should be noted that the network device in this embodiment can be abstracted as a device comprising two functional modules: a data plane and a control plane, as shown in Figure 11. Furthermore, the network device may also include a management plane. The data plane may include a network interface, a routing table, a deadlock handling controller, and a deadlock handling rule table; the control plane includes a hint controller, an info controller, and a deadlock handling rule controller. The info indicates cache space information.

[0258] Data plane - network interface: The interface used to send, receive and cache data packets. The buffer for caching packets can be divided into multiple VLs. The VL field carried in the packet header controls which buffer the packet should be received by. The value of the VL field in the packet header is determined by the deadlock processing rule controller of the network node.

[0259] Data plane - routing table: used to query the available egress ports (which may include one or more egress ports) for a message, and determine which egress ports the message should be forwarded through based on the destination address field carried in the message header. The value of the destination address field in the message header is controlled by the sender.

[0260] Data plane deadlock handling controller: Determines the deadlock handling method (such as active planning, passive response, and periodic adjustment) for packet forwarding based on the Hint field in the packet header. The value of the Hint field in the packet header is determined by the Hint controller on the control plane.

[0261] Data plane - deadlock handling rule table: used to select the most appropriate egress port and corresponding egress VL. The final egress port and corresponding egress VL are selected by querying the rule table based on the hint value and VL value carried in the packet header, the cache space information announced by the downstream network device, and the available egress ports obtained by querying the routing table.

[0262] Control plane - Hint controller: This receives hint configuration information from the management plane or controller and determines the value of the hint field in the packet header based on this hint configuration information. Before sending a packet, the source end queries the hint controller for the hint value and carries it in the corresponding field in the packet header. This is then notified to network devices along the path to guide the selection of egress ports and outbound VLs.

[0263] Control plane - Info controller: This is used to exchange cache space information between upstream and downstream devices. The Info controller on the downstream network device obtains the remaining cache size of the local network interface buffer and generates a notification message to send to the upstream network device. The upstream network device then parses the notification message and uses it as input to the deadlock handling rule controller. The deadlock handling rule controller's output consists of two parts: cache space constraints for the downstream network device, as issued by the deadlock handling controller, and a deadlock handling rule table.

[0264] The control plane deadlock handling rule controller interacts with the management plane or controller. It processes network information such as the networking architecture, routing methods, and resource constraints issued by the management plane or controller to generate data plane configuration information. Based on this information, it configures the data plane deadlock handling controller and deadlock handling rule table accordingly. It also obtains network information such as the data plane networking architecture, routing methods, and resource constraints and notifies the management plane or controller.

[0265] To facilitate understanding of the specific implementation of the embodiments of the present application, the Torus networking architecture will be used as an example for explanation below, but it can also be applied to other network architectures, such as mesh topology Mesh, torus topology Torus, hyper-cube topology Hyper-Cube two-dimensional mesh topology 2D-FullMesh, Dragonfly, Slim-Fly, etc.

[0266] Scenario 1:

[0267] Taking the specific Torus network architecture as an example, this paper focuses on the shortest single path routing method and supports switching to alternative paths after network failures, and handles deadlock situations based on proactive planning. The overall process is shown in the five key steps in Figure 4. The following is a detailed processing flow for each step based on specific scenarios:

[0268] 1. Controller C obtains network information such as the network architecture, routing method, and resource constraints. As shown in Figure 12a, this embodiment targets a two-dimensional Torus network architecture, which has two dimensions, X and Y, with five network nodes in each dimension. These five network nodes are connected according to a one-dimensional Ring network architecture. Each node's four ports are interconnected with the four surrounding network nodes. These four ports are X+ (horizontally to the right), X- (horizontally to the left), Y+ (vertically upward), and Y- (vertically downward). The routing method is to always first reach the node in the same column as the destination node horizontally to the right or left (either of the two options is the same for each node), and then reach the node in the same row as the destination node vertically upward or downward (either of the two options is the same for each node). When a faulty node is encountered, a new intermediate node is selected, and the message first reaches the intermediate node, and then reaches the destination node from the intermediate node. Here, the same routing method is used from the source node to the intermediate node and from the intermediate node to the destination node, which is the routing method described above under normal conditions without faults.

[0269] That is, when a fault occurs and the backup port is switched to, a deadlock-causing redirection (illegal redirection) may be introduced. To avoid deadlock, illegal redirection needs to be specially handled. This special handling refers to a two-stage redirection anti-deadlock processing method.

[0270] 2. Controller C's deadlock handling algorithm selects the most appropriate deadlock handling method based on the acquired network information. As shown in Figure 12a, based on an analysis of the network architecture, routing method, and resource constraints, the most suitable deadlock handling method is determined to be a two-stage active planning method based on a single region. A single region refers to the entire network being divided into one region, while two stages refer to the first segment from the source node to the intermediate node and the second segment from the intermediate node to the destination node. In each stage, different VLs are assigned based on whether the current stage crosses the ring at the X or Y latitude to avoid cache circular dependencies on the ring. Different VLs are assigned to different stages to avoid the intersection of the VLs of two stages, which could lead to cache circular dependencies.

[0271] 3. Controller C generates configuration information based on the deadlock handling method and sends it to the corresponding network node. That is, controller C generates a forwarding rule table applicable to each network node according to the deadlock handling method of active planning in a single area and two stages. The specific generation process is as follows: traverse all input ports and output ports, and judge whether it belongs to the first stage based on the current input port and output port combination. If it belongs to the first stage, VL is allocated according to the rules of the first stage, otherwise VL is allocated according to the rules of the second stage. Based on the traversal results and the allocated VL, the corresponding Hint+input VL+input port+output port+output VL forwarding rule table is generated, where Hint here specifically refers to the first stage (hint value is 0) or the second stage (hint value is 1).

[0272] 4. The Hint controller on the source end S receives the Hint configuration information sent by controller C and determines the value of the message header's Hint field based on the Hint configuration information. As shown in Figure 12b, before sending a message, the source end S queries the local Hint controller to obtain the Hint value and carries it in the corresponding field of the message header. It is then notified to network nodes along the path to guide the selection of egress ports and outgoing VLs.

[0273] 5. The switch node (SW1 or SW2) receives the forwarding rule configuration information generated by the controller based on network information such as the networking architecture, routing mode, and resource constraints. Based on this configuration information, the switch node (SW1 or SW2) configures the deadlock handling controller and deadlock handling rule table accordingly. As shown in Figure 12b, after receiving a message, the switch node (SW1 or SW2) first determines which buffer should receive the message based on the VL field in the message header. It then queries the local routing table based on the destination address field in the message header to obtain the available egress port for the message (in this scenario, there is only one egress port). Based on the Hint and VL values ​​in the message header and the available egress port found in the routing table, it queries the forwarding rule table (based on Hint + ingress VL + ingress port + egress port + egress VL) to obtain the egress VL corresponding to the egress port and modifies the Hint and VL fields in the message header.

[0274] Scenario 2:

[0275] This scenario uses the Torus networking architecture as an example, targeting the shortest multi-path routing method (adaptive selection when multiple shortest paths exist between the source and destination nodes), and uses an active planning approach to handle deadlocks. The overall process is shown in the five key steps in Figure 4. The following is a detailed description of each step based on a specific scenario:

[0276] 1. Controller C obtains network information such as the network architecture, routing scheme, and resource constraints. This embodiment targets a two-dimensional Torus network architecture, as shown in Figure 12a. This architecture consists of two dimensions, X and Y, with five network nodes in each dimension. These five network nodes are connected according to a one-dimensional ring network architecture. Each node's four ports interconnect with the four surrounding network nodes: X+ (horizontally to the right), X- (horizontally to the left), Y+ (vertically upward), and Y- (vertically downward). As shown in Figure 13a, the two-dimensional Torus network is divided into four regions: X+Y+, X+Y-, XY-, and X-Y+. The routing scheme first selects the region with the shortest distance based on the relative positions of the source and destination nodes, and then selects a route based on the direction of this shortest region. Assuming the region with the shortest distance is X+Y+, the network node will adaptively select an outbound port from either the X+ or Y+ outbound port sets.

[0277] 2. Controller C's deadlock handling algorithm selects the most appropriate deadlock handling method based on the acquired network information. Based on an analysis of the network architecture, routing methods, and resource constraints, Controller C determines that the most appropriate deadlock handling method is a multi-region, single-stage active planning approach. This region-based active planning method divides the two-dimensional Torus network into multiple regions. Within each region, different VLs are assigned based on whether the current region crosses a ring at the X or Y latitude, avoiding cache circular dependencies on possible rings. Different VLs are assigned to different regions to avoid overlapping VLs in two regions, which could lead to cache circular dependencies.

[0278] 3. Controller C generates data plane configuration information based on the deadlock handling method and sends it to the corresponding network nodes. Specifically, controller C generates configuration information corresponding to the deadlock handling rule table applicable to each network node according to the active planning deadlock handling method based on multi-region single phase. The specific generation process includes: for each region, this method will traverse all possible relative positions of source-destination nodes in the region. In a region of the two-dimensional Torus, network nodes are addressed according to (x, y) coordinates. According to the relative positions of the coordinate addresses of the source node and the target node, there are four relative positions of the source node and the target node, namely, the source node is at the lower left, upper right, upper left, and lower right of the target node, corresponding to the four cases listed in Figure 13b. For each case, a corresponding VL allocation rule is designed. Based on the traversal results and the allocated VL, the corresponding configuration information (Hint + input VL + input port + output port + output VL) is generated, where Hint specifically refers to the region.

[0279] 4. After receiving the Hint configuration information from the controller, the Hint controller at the source S determines the value of the Hint field in the message header based on the Hint configuration information. As shown in Figure 12b, before sending a message, the source S queries the local Hint controller to obtain the Hint value and carries it in the corresponding field in the message header. This value is then notified to network nodes along the path to guide the selection of egress ports and outgoing VLs.

[0280] 5. The control plane of the switch node (SW1 or SW2 in Figure 4) receives configuration information from controller C, which generates forwarding rules based on network information such as the networking architecture, routing mode, and resource constraints. Based on this configuration information, the control plane configures the deadlock handling controller and deadlock handling rule table on the data plane accordingly. As shown in Figure 12b, after receiving a packet, the switch node (SW1 or SW2) first controls which buffer should receive the packet based on the VL field in the packet header. It then queries the local routing table based on the destination address field in the packet header to obtain the available egress port for the packet (in this scenario, there is only one egress port). Then, based on the Hint and VL values ​​in the packet header and the available egress port found in the routing table, it queries the forwarding rule table (a rule table based on Hint + ingress VL + ingress port + egress port + egress VL) to obtain the egress VL corresponding to the egress port and modifies the values ​​of the Hint and VL fields in the packet header.

[0281] Scene 3

[0282] This scenario uses the Torus networking architecture as an example, targeting multi-path routing (adaptive selection when multiple paths exist between source and destination nodes, including both shortest and non-shortest paths), and a passive response-based deadlock handling method. The overall process is illustrated in Figure 4 with five key steps. The following is a detailed description of each step based on a specific scenario:

[0283] 1. Controller C obtains network information such as the network architecture, routing method, and resource constraints. This embodiment targets a two-dimensional Torus network architecture, as shown in Figure 12a. This architecture consists of two dimensions, X and Y, with five network nodes in each dimension. These five network nodes are connected according to a one-dimensional ring network architecture. Each network node's four ports interconnect with the four surrounding network nodes: X+ (horizontally to the right), X- (horizontally to the left), Y+ (vertically upward), and Y- (vertically downward). As shown in Figure 13a, the two-dimensional Torus network is divided into four regions: X+Y+, X+Y-, XY-, and X-Y+. The routing method first selects a region (not requiring the shortest distance) and then selects a route based on the direction of that region. Assuming the selected region is X+Y+, the network node will adaptively select an outbound port from the two outbound port sets, X+ and Y+.

[0284] 2. Controller C's deadlock handling algorithm selects the most appropriate deadlock handling method based on network information. Specifically, based on an analysis of the network architecture, routing methods, and resource constraints, Controller C determines that the most appropriate deadlock handling method is a multi-region, two-stage passive response approach. This region-based passive response approach divides the two-dimensional Torus network into four regions. Within each region, the two-stage approach is further divided into two phases (similar to the two-stage approach in Scenario 1). An intermediate node is dynamically selected for the first segment, from the source node to the intermediate node, and the second segment, from the intermediate node to the destination node. Different deadlock handling methods are used in different phases.

[0285] 3. Controller C generates configuration information based on the deadlock handling method and distributes it to the corresponding network nodes. Specifically, controller C generates configuration information corresponding to the deadlock handling rule table applicable to each network node, using a multi-region, two-stage passive response deadlock handling method. Specifically, as shown in Figure 14a, the generation process includes two stages in each region. In the first stage, the current node is determined to be an intermediate node based on the Info information reported by the downstream node. If it is an intermediate node, the node enters the second stage. In the second stage, different VLs are assigned based on whether the current stage crosses the ring at latitude X or Y to avoid cache circular dependencies on possible rings. Different VLs are assigned to different stages to avoid the intersection of VLs in two stages, which could lead to cache circular dependencies. Furthermore, assuming the selected region is X+Y+, if the current stage is the first stage, the network node can adaptively select one of the two outbound port sets, X+ or Y+. However, if the current stage is the second stage, X+ is prioritized over Y+. Based on the traversal results and the assigned VL, the corresponding configuration information (Hint + Cond + Incoming VL + Incoming Port + Outgoing Port + Outgoing VL) is generated. The second-phase algorithm starts at the source node in the first phase (at which point the VL switching rules corresponding to the first phase are followed). If the information meets the conditions during forwarding at an intermediate node, the algorithm switches to the second phase (at which point the VL switching rules corresponding to the second phase are followed).

[0286] Here, Hint specifically refers to the region, and can also refer to the current stage of the region (for example, Hint=0, 1 represent the first and second stages of region 0, Hint=2, 3 represent the first and second stages of region 1, Hint=4, 5 represent the first and second stages of region 2, Hint=6, 7 represent the first and second stages of region 3).

[0287] 4. The Hint controller in the source S receives the Hint configuration information sent by the controller C and configures the value of the message header's Hint field based on the Hint configuration information. As shown in Figure 14b, before sending a message, the source S queries the local Hint controller to obtain the Hint value and carries it in the corresponding field in the message header. It is then notified to network nodes along the path to guide the selection of egress ports and VLs.

[0288] 5. The switch node (SW1 or SW2 in Figure 4) receives configuration information from controller C based on network information such as the networking architecture, routing mode, and resource constraints. Based on this configuration information, the switch node (SW1 or SW2) configures the data plane deadlock handling controller and deadlock handling rule table accordingly. As shown in Figure 14b, after receiving a message, the switch node (SW1 or SW2) first controls which buffer should receive the message based on the VL field in the message header. It then queries the local routing table based on the destination IP address field in the message header to obtain the available egress port for the message (in this scenario, there is only one egress port). Based on the Hint and VL values ​​in the message header, the cache space information announced by the downstream node, and the available egress port found in the routing table, it queries the forwarding rule table (based on Hint + Cond + Incoming VL + Incoming Port + Outgoing Port + Outgoing VL) to obtain the outgoing VL corresponding to the egress port and modify the corresponding Hint and VL fields in the message header.

[0289] Scenario 4:

[0290] This scenario uses the Torus networking architecture as an example, focusing on multi-path routing (adaptive selection when multiple paths exist between source and destination nodes, including both shortest and non-shortest paths), and a deadlock handling method based on periodic adjustments. The overall process is illustrated in the five key steps in Figure 4. The following is a detailed description of each step based on a specific scenario:

[0291] 1. Controller C obtains network information, including network architecture, routing methods, and resource constraints. This embodiment targets a two-dimensional Torus network architecture, as shown in Figure 12a. This architecture consists of two dimensions, X and Y, with five network nodes in each dimension. These five network nodes are connected according to a one-dimensional ring network architecture. Each node's four ports interconnect with the four surrounding network nodes: X+ (horizontally to the right), X- (horizontally to the left), Y+ (vertically upward), and Y- (vertically downward). As shown in Figure 13a, the two-dimensional Torus network is divided into four regions: X+Y+, X+Y-, XY-, and X-Y+. The routing method first selects a region (not requiring the shortest distance) and then selects a route based on the direction of that region. Assuming the selected region is X+Y+, the network node will adaptively select an outbound port from either the X+ or Y+ outbound port sets.

[0292] 2. Controller C's deadlock handling algorithm selects the most appropriate deadlock handling method based on the acquired data plane information. Specifically, based on an analysis of the network architecture, routing method, and resource constraints, Controller C determines that the most appropriate deadlock handling method is a multi-region, two-stage periodic adjustment method. The so-called region-based periodic adjustment method divides the two-dimensional Torus network into four regions. Within each region, it is further divided into two stages (similar to the two-stage method in Example 1), dynamically selecting an intermediate node. Different deadlock handling methods are used in different stages, for the first segment from the source node to the intermediate node and the second segment from the intermediate node to the destination node.

[0293] 3. Controller C generates configuration information based on the deadlock handling method and distributes it to the corresponding network nodes. Specifically, controller C periodically adjusts the deadlock handling method in multiple regions and two phases, generating configuration information corresponding to the deadlock handling rule table applicable to each network node. Specifically, as shown in Figure 14c, the generation process includes: traversing two phases in each region. In the first phase, the current node is determined to be an intermediate node based on the configuration information periodically distributed by the management plane. If it is an intermediate node, the second phase is entered. In the second phase, different VLs are assigned based on whether the current phase crosses the ring at latitude X or Y to avoid cache circular dependencies on possible rings. Different VLs are assigned to different phases to avoid the intersection of VLs in two phases, which could lead to cache circular dependencies. The periodic algorithm refers to the first phase when the message leaves the source node (the VL switching rules corresponding to the first phase are followed). When the period condition is met during the forwarding process of the intermediate node, the message switches to the second phase (the VL switching rules corresponding to the second phase are followed).

[0294] In addition, assuming that the selected area is X+Y+, if the current stage is the first stage, the network node can adaptively select one from the two outbound port sets X+ and Y+; but if the current stage is the second stage, X+ will be selected first, and then Y+. Based on the traversal results and the assigned VL, the corresponding configuration information (Hint+input VL+input port+output port+output VL) is generated. Here, Hint here can not only refer to the area, but also refer to the current stage of the area (for example, Hint=0, 1 represent the first and second stages of area 0, Hint=2, 3 represent the first and second stages of area 1, Hint=4, 5 represent the first and second stages of area 2, and Hint=6, 7 represent the first and second stages of area 3).

[0295] 4. The Hint controller at source S receives the Hint configuration information from controller C and configures the value of the message header's Hint field based on the Hint configuration information. As shown in Figure 12b, before sending a message, source S queries the local Hint controller to obtain the Hint value and carries it in the corresponding field in the message header. This is then notified to network nodes along the path to guide the selection of egress ports and outgoing VLs.

[0296] 5. The switch node (SW1 or SW2 in Figure 4) receives configuration information from the controller based on the network architecture, routing mode, and resource constraints. Based on this configuration information, the switch node configures the data plane deadlock handling controller and deadlock handling rule table accordingly. As shown in Figure 12b, after receiving a message, the switch node (SW1 or SW2) first controls which buffer should receive the message based on the VL field in the message header. It then queries the local routing table based on the destination IP address field in the message header to obtain the available egress port for the message (in this scenario, there is only one egress port). Based on the Hint and VL values ​​in the message header and the available egress port found in the routing table, it queries the rule table (based on Hint + ingress VL + ingress port + egress port + egress VL) to obtain the egress VL corresponding to the egress port and modifies the values ​​of the Hint and VL fields in the message header.

[0297] The following describes the communication device in the embodiment of the present application from the perspective of specific device implementation.

[0298] Referring to Figure 12, this figure is a schematic diagram of a communication device 1500 provided in an embodiment of the present application. The communication device 1500 includes at least a transceiver unit 1501 and a processing unit 1502. The transceiver unit 1501 and the processing unit 1502 can be implemented via software programs or hardware circuits, and this embodiment is not limited thereto. The communication device 1500 can be a chip, such as a forwarding chip, or a physical device including a chip.

[0299] As an example, the communication device 1500 can implement the functions of the first network device in the above method example or SW1 and SW2 in Figure 4, and thus can also achieve the beneficial effects of the above method.

[0300] Specifically, the transceiver unit 1501 is used to receive a first message, which includes a first identifier, and the first identifier is related to an area divided based on multiple message forwarding paths in the network; the processing unit 1502 is used to determine a second identifier based on the first identifier and the forwarding rule, and the second identifier indicates the cache space used when forwarding the first message; the sending unit is used to forward the first message according to the second identifier.

[0301] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier and the second identifier.

[0302] In some embodiments, the first message also includes: a third identifier, the third identifier indicates the cache space used by the first network device when receiving the first message, and the processing unit 1502 is specifically used to determine the second identifier based on the first identifier, the third identifier and the forwarding rule, and the forwarding rule includes the mapping relationship between the first identifier, the third identifier and the second identifier.

[0303] In some embodiments, the processing unit 1502 is further configured to update the value of the third identifier in the first message to the value of the second identifier before the sending unit forwards the first message according to the second identifier.

[0304] In some embodiments, the processing unit 1502 is specifically used to obtain port information, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving the first message, and the output port indicates the port used by the first network device when forwarding the first message; the second identifier is determined based on the port information, the first identifier and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the port information and the second identifier.

[0305] In some embodiments, the processing unit 1502 is specifically configured to determine an egress port used for forwarding the first message according to the first identifier and a destination address in the first message.

[0306] In some embodiments, the transceiver unit 1501 is also used to receive a second message sent by a second network device, the second message includes cache space information in the second network device, and the second network device forwards the first message to the next-hop network device corresponding to the first network device; the processing unit 1502 is specifically used to determine the second identifier based on the first identifier, the cache space information and the forwarding rule, and the forwarding rule includes the mapping relationship between the first identifier, the cache space information and the second identifier.

[0307] In some embodiments, the processing unit 1502 is further configured to update the value of the first identifier before the sending unit forwards the first message according to the second identifier.

[0308] In some embodiments, the processing unit 1502 is further configured to obtain and update a value corresponding to the first identifier according to the forwarding rule.

[0309] In some embodiments, the processing unit 1502 is further configured to, before determining the second identifier based on the first identifier and the forwarding rule, obtain network information, determine the forwarding rule based on the network information, and send the forwarding rule to the data plane of the first network device, where the network information includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network;

[0310] In some embodiments, the transceiver unit 1501 is also used to receive configuration information corresponding to the forwarding rule sent by the controller before the processing unit 1502 determines the second identifier based on the first identifier and the forwarding rule, and determine the forwarding rule based on the configuration information. The configuration information is determined by the controller based on network information, and the network information includes network topology, routing method, and at least one or more resources possessed by at least one network device in the network.

[0311] In some embodiments, the processing unit 1502 is further configured to obtain an update period; and update the forwarding rule according to the update period.

[0312] As another example, the communication device 1500 can implement the functions of the source network device in the above method or S in Figure 4, and thus can also achieve the beneficial effects of the above method embodiment.

[0313] Specifically, the processing unit 1502 is used to obtain the value of the first identifier and add the value of the first identifier to the first message, where the first identifier is related to the area divided based on multiple message forwarding paths in the network; the transceiver unit 1501 is used to send the first message to the first network device, so that the first network device determines the second identifier based on the first identifier and the forwarding rule, where the second identifier indicates the cache space used when forwarding the first message.

[0314] In some embodiments, the processing unit 1502 is specifically used to obtain network information, determine the value of the first identifier based on the network information, and send the value of the first identifier to the data plane of the source network device, and the network information includes network topology, routing method and at least one or more resources possessed by at least one network device in the network.

[0315] In some embodiments, the processing unit 1502 is specifically configured to enable the source network device to receive configuration information sent by a controller, and to determine a value of the first identifier based on the configuration information.

[0316] In some embodiments, the processing unit 1502 is specifically configured to determine a value of the first identifier according to cache space information and configuration information, where the cache space information is cache space information of a next-hop network device corresponding to sending the first message.

[0317] In some embodiments, the configuration information is determined by the controller based on network information, where the network information includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network.

[0318] As another example, the communication device 1500 can implement the functions of the first network device in the above method or SW1 and SW2 in Figure 4, and thus can also achieve the beneficial effects of the above method.

[0319] Specifically, the processing unit 1502 is configured to obtain network information, where the network information includes at least one or more of a network topology, a routing mode, and resources possessed by at least one network device in the network;

[0320] The processing unit 1502 is also used to obtain forwarding rules based on the network information, and the forwarding rules include a mapping relationship between a first identifier and a second identifier, the first identifier is related to an area divided based on multiple message forwarding paths in the network, and the second identifier indicates the cache space used when forwarding messages.

[0321] In some embodiments, the processing unit 1502 is specifically configured to obtain the network information, determine a forwarding rule based on the network information, and send the forwarding rule to the data plane of the first network device.

[0322] In some embodiments, the transceiver unit 1501 is also used to send the network information to the controller so that the controller determines the configuration information corresponding to the forwarding rule based on the network information; receive the configuration information sent by the controller, and determine the forwarding rule based on the configuration information.

[0323] In some embodiments, the processing unit 1502 is further configured to obtain an update period; and update the forwarding rule according to the update period.

[0324] In some embodiments, the transceiver unit 1501 is also used to receive a first message, which includes the first identifier; the processing unit 1502 is also used to determine the second identifier based on the first identifier and the forwarding rule; the transceiver unit 1501 is also used to forward the first message based on the second identifier.

[0325] In some embodiments, the first message also includes: a third identifier, the third identifier indicates the cache space used by the first network device when receiving the first message, and the processing unit 1502 is specifically used to determine the second identifier based on the first identifier, the third identifier and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the third identifier and the second identifier.

[0326] In some embodiments, the processing unit 1502 is further configured to update the value of the third identifier in the first message to the value of the second identifier before the sending unit forwards the first message according to the second identifier.

[0327] In some embodiments, the processing unit 1502 is specifically used to obtain port information of the first network device, and the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving the first message, and the output port indicates the port used by the first network device when forwarding the first message; determine the second identifier based on the port information, the first identifier and the forwarding rule, and the forwarding rule includes a mapping relationship between the first identifier, the port information and the second identifier.

[0328] In some embodiments, the processing unit 1502 is specifically configured to determine an egress port used for forwarding the first message according to the first identifier and a destination address in the first message.

[0329] In some embodiments, the transceiver unit 1501 is further configured to receive, by the first network device, a second message sent by a second network device, where the second message includes cache space information in the second network device, and the second network device forwards the first message to the next hop network device corresponding to the first message for the first network device;

[0330] The processing unit 1502 is specifically configured to determine the second identifier according to the first identifier, the cache space information, and the forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the cache space information, and the second identifier.

[0331] In some embodiments, the processing unit 1502 is further configured to update the value of the first identifier before the sending unit forwards the first message according to the second identifier.

[0332] In some embodiments, the processing unit 1502 is further configured to obtain and update a value corresponding to the first identifier according to the forwarding rule.

[0333] As another example, the communication device 1500 can implement the functions of the source network device in the above method or S in Figure 4, and thus can also achieve the beneficial effects of the above method.

[0334] Specifically, the processing unit 1502 is used to obtain network information, which includes network topology, routing method and at least one or more of the resources possessed by the source network device; and obtain the value of the first identifier based on the network information, where the first identifier is related to an area divided based on multiple packet forwarding paths in the network.

[0335] In some embodiments, the processing unit 1502 is specifically configured to determine a value of a first identifier based on the network information, and send the value of the first identifier to the data plane of the source network device.

[0336] In some embodiments, the transceiver unit 1501 is specifically used to send the network information to the controller so that the controller determines the configuration information based on the network information; receive the configuration information sent by the controller, and determine the value of the first identifier based on the configuration information.

[0337] In some embodiments, the processing unit 1502 is specifically configured to determine a value of the first identifier according to cache space information and configuration information, where the cache space information is cache space information of a next-hop network device corresponding to sending the first message.

[0338] In some embodiments, the processing unit 1502 is further configured to add the value of the first identifier to the message to be forwarded to obtain a first message;

[0339] The transceiver unit 1501 is configured to send the first message to a first network device, so that the first network device determines a second identifier according to the first identifier and a forwarding rule, where the second identifier indicates a cache space used when forwarding the first message.

[0340] As another example, the communication device 1500 can implement the function of the controller in the above method embodiment or C in Figure 4, and thus can also achieve the beneficial effects of the above method.

[0341] Specifically, the transceiver unit 1501 is used to receive network information sent by a network device, wherein the network information includes at least one or more of a network topology, a routing method, and resources possessed by at least one network device in the network; the processing unit 1502 is used to determine configuration information related to message forwarding based on the network information; the transceiver unit 1501 is used to send first configuration information to a first network device, so that the first network device determines a forwarding rule based on the first configuration information, and the forwarding rule includes a mapping relationship between a first identifier and a second identifier, the first identifier is related to an area divided based on multiple message forwarding paths in the network, and the second identifier indicates a cache space used when forwarding messages; and / or, send second configuration information to a source network device, so that the source network device determines the value of the first identifier based on the second configuration information.

[0342] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier, and the third identifier indicates a cache space used by the first network device when receiving a message.

[0343] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier, port information and the second identifier, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving a message, and the output port indicates the port used by the first network device when forwarding a message.

[0344] In some embodiments, the forwarding rule includes a mapping relationship between the first identifier, cache space information, and the second identifier, and the cache space information is cache space information of a next-hop network device corresponding to the message forwarded by the first network device.

[0345] In some embodiments, the processing unit 1502 is further configured to determine an update period; update the forwarding rule according to the update period; or,

[0346] The transceiver unit 1501 is further configured to send the update period to the first network device, so that the first network device updates the forwarding rule according to the update period.

[0347] In some embodiments, the processing unit 1502 is specifically used to determine whether the forwarding of the message meets preset conditions based on the network information, and the preset conditions include network device failure and / or change in the forwarding path; if the forwarding of the message meets the preset conditions, adjust the value of the first identifier.

[0348] It should be noted that, for details on the information execution process of the units of the above-mentioned communication device 1500, please refer to the description in the method embodiment shown above in this application, and no further details will be given here.

[0349] Please refer to Figure 16, which is a structural diagram of another communication device provided in an embodiment of the present application, wherein the communication device 1600 can specifically be the source network device, the first network device, the second network device or the controller in the aforementioned embodiment, and the structure of the communication device can refer to the structure shown in Figure 16.

[0350] The communication device includes at least one processor 1601, at least one memory 1602, at least one transceiver 1603, and one or more antennas 1604. The processor 1601, memory 1602, and transceiver 1603 are connected, for example, via a bus. In the embodiment of the present application, this connection may include various interfaces, transmission lines, or buses, and is not limited in this embodiment. Antenna 1604 is connected to transceiver 1603.

[0351] As an implementation example, when the communication device shown in Figure 16 is the first network device in Figure 5 and related embodiments, the processor 1601 is used to obtain a second identifier determined based on the first identifier and forwarding rules, and the second identifier indicates the cache space used when forwarding the first message; the transceiver 1603 is used to receive a first message and forward the first message according to the second identifier.

[0352] As an implementation example, when the communication device shown in Figure 16 is the source network device in Figure 5 and related embodiments, the processor 1601 is used to obtain the value of the first identifier and add the value of the first identifier to the first message, where the first identifier is related to the area divided based on multiple message forwarding paths in the network; the transceiver 1603 is used to send the first message to the first network device.

[0353] As an implementation example, when the communication device shown in Figure 16 is the controller in the aforementioned Figure 10 and related embodiments, the processor 1601 is used to determine configuration information related to message forwarding based on the network information; the transceiver 1603 is used to receive network information sent by the network device, and send first configuration information to the first network device, so that the first network device determines a forwarding rule based on the first configuration information, and the forwarding rule includes a mapping relationship between a first identifier and a second identifier, the first identifier is related to an area divided based on multiple message forwarding paths in the network, and the second identifier indicates the cache space used when forwarding messages; and / or send second configuration information to the source network device, so that the source network device determines the value of the first identifier based on the second configuration information.

[0354] It should be noted that the execution process of each device in the communication device shown in Figure 16 and other contents can be specifically referred to the description in the method embodiment shown above in this application, and will not be repeated here.

[0355] Processor 1601 is primarily used to process communication protocols and communication data, as well as control the entire communication device, execute software programs, and process software program data, for example, to support the communication device in performing the actions described in the embodiments. The communication device may include a baseband processor and a central processing unit. The baseband processor is primarily used to process communication protocols and communication data, while the central processing unit is primarily used to control the entire source network device, the first network device, or the second network device, execute software programs, and process software program data. Processor 1601 in Figure 16 may integrate the functions of a baseband processor and a central processing unit. Those skilled in the art will appreciate that the baseband processor and the central processing unit may also be independent processors interconnected via a bus or other technology. Those skilled in the art will appreciate that the source network device, the first network device, the second network device, or the controller may include multiple baseband processors to accommodate different network standards. The source network device, the first network device, the second network device, or the controller may include multiple central processing units to enhance their processing capabilities. The various components of the source network device, the first network device, the second network device, or the controller may be connected via various buses. The baseband processor may also be referred to as a baseband processing circuit or a baseband processing chip. The central processing unit may also be referred to as a central processing circuit or a central processing chip. The function of processing the communication protocol and communication data may be built into the processor, or may be stored in the memory in the form of a software program, and the processor executes the software program to implement the baseband processing function.

[0356] The memory is primarily used to store software programs and data. Memory 1602 may be independent and connected to processor 1601. Alternatively, memory 1602 may be integrated with processor 1601, for example, within a single chip. Memory 1602 can store program code for executing the technical solutions of the embodiments of the present application, and execution is controlled by processor 1601. The various computer program codes executed can also be considered drivers for processor 1601.

[0357] Figure 16 shows only one memory and one processor. In an actual source network device, first network device, second network device, or controller, multiple processors and multiple memories may exist. Memory may also be referred to as a storage medium or storage device. The memory may be a storage element on the same chip as the processor, i.e., an on-chip storage element, or an independent storage element, which is not limited in the present embodiment.

[0358] The transceiver 1603 can be used to support the reception or transmission of radio frequency signals between the communication device and the terminal, and the transceiver 1603 can be connected to the antenna 1604. The transceiver 1603 includes a transmitter Tx and a receiver Rx. Specifically, one or more antennas 1604 can receive radio frequency signals. The receiver Rx of the transceiver 1603 is used to receive the radio frequency signals from the antennas, convert the radio frequency signals into digital baseband signals or digital intermediate frequency signals, and provide the digital baseband signals or digital intermediate frequency signals to the processor 1601 so that the processor 1601 can further process the digital baseband signals or digital intermediate frequency signals, such as demodulation and decoding. In addition, the transmitter Tx in the transceiver 1603 is also used to receive modulated digital baseband signals or digital intermediate frequency signals from the processor 1601, convert the modulated digital baseband signals or digital intermediate frequency signals into radio frequency signals, and send the radio frequency signals through one or more antennas 1604. Specifically, the receiver Rx can selectively perform one or more stages of down-mixing and analog-to-digital conversion on the RF signal to obtain a digital baseband signal or a digital intermediate frequency signal. The order of the down-mixing and analog-to-digital conversion processes is adjustable. The transmitter Tx can selectively perform one or more stages of up-mixing and digital-to-analog conversion on the modulated digital baseband signal or digital intermediate frequency signal to obtain a RF signal. The order of the up-mixing and digital-to-analog conversion processes is adjustable. The digital baseband signal and the digital intermediate frequency signal may be collectively referred to as digital signals.

[0359] A transceiver may also be referred to as a transceiver unit, a transceiver, a transceiver device, etc. Alternatively, a device in a transceiver unit that implements a receiving function may be referred to as a receiving unit, and a device in a transceiver unit that implements a transmitting function may be referred to as a transmitting unit. That is, a transceiver unit includes a receiving unit and a transmitting unit. A receiving unit may also be referred to as a receiver, an input port, a receiving circuit, etc., and a transmitting unit may be referred to as a transmitter, a transmitter, or a transmitting circuit, etc.

[0360] It should be noted that the communication device shown in Figure 16 can be specifically used to implement the steps implemented by the source network device, the first network device, the second network device or the controller in any of the aforementioned method embodiments, and to achieve the corresponding technical effects of the source network device, the first network device, the second network device or the controller. The specific implementation method of the communication device shown in Figure 16 can refer to the description in any of the aforementioned method embodiments, and will not be repeated here one by one.

[0361] An embodiment of the present application also provides a network system, which includes: a first network device and a source network device; the first network device is used to implement the relevant functions in the aforementioned embodiment; the source network device is used to implement the relevant functions in the aforementioned embodiment.

[0362] In some embodiments, the network system further includes: a controller, which is used to implement the relevant functions in the aforementioned embodiments.

[0363] An embodiment of the present application further provides a computer-readable storage medium storing one or more computer-executable instructions. When the computer-executable instructions are executed by a processor, the processor executes the method described in the possible implementation of the communication device in the aforementioned embodiment, wherein the communication device can specifically be the source network device, the first network device, the second network device or the controller in the aforementioned embodiment.

[0364] An embodiment of the present application also provides a computer program product (or computer program) storing one or more computers. When the computer program product is executed by the processor, the processor executes the method of the possible implementation of the above-mentioned communication device, wherein the communication device can specifically be the source network device, the first network device, the second network device or the controller in the aforementioned embodiment.

[0365] The present application also provides a chip system, which includes a processor for supporting a communication device to implement the functions involved in the possible implementation of the communication device. In one possible design, the chip system may also include a memory for storing program instructions and data necessary for the communication device. The chip system may be composed of a chip or may include a chip and other discrete devices, wherein the communication device may specifically be the source network device, the first network device, the second network device, or the controller in the aforementioned embodiment.

[0366] Optionally, the chip system may include: an application-specific integrated circuit (ASIC) or a general-purpose processor, the ASIC including: a network switching chip and a router chip; specifically, the functional module in the source network device, the first network device, the second network device or the controller for sensing the topology, determining the detour path, and formulating the isolation identifier is called a management and control plane module, which is usually implemented using a general-purpose processor; the general-purpose processor usually corresponds to a server; the functional module in the source network device, the first network device, and the second network device for sending the first message, etc., and the functional module in the first node for sending the first isolation identifier, etc. are called dedicated forwarding functional modules, which are usually implemented using an ASIC, and the device form corresponding to the above-mentioned ASIC is usually a network device such as a switch or a router; in addition to using ASIC to implement the dedicated forwarding functional module, these network devices can use an independent general-purpose processor to load the ASIC's running file, configure the ASIC's registers, read the ASIC's registers, etc.; in some cases, the general-purpose processor core is combined with the ASIC into a chip, so that the network device does not include an additional general-purpose processor.

[0367] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

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

[0369] In addition, each functional unit in each embodiment of the present application may be integrated into a processing unit 1502, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The above-mentioned integrated units may be implemented in the form of hardware or software functional units.

[0370] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the part that essentially contributes to the technical solution of the present application or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a first node, a second node or a third node, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0371] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the above embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the above embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A message forwarding method, characterized in that: The method comprises: The first network device receives a first message, where the first message includes a first identifier, and the first identifier is related to a region divided based on multiple message forwarding paths in the network; The first network device determines a second identifier according to the first identifier and a forwarding rule, where the second identifier indicates a cache space used when forwarding the first message; The first network device forwards the first message according to the second identifier.

2. The method according to claim 1, characterized in that The forwarding rule includes a mapping relationship between the first identifier and the second identifier.

3. The method according to claim 1 or 2, characterized in that The first message further includes: a third identifier, the third identifier indicating a cache space used by the first network device when receiving the first message, and the first network device determining a second identifier based on the first identifier and a forwarding rule, including: The first network device determines the second identifier according to the first identifier, the third identifier, and a forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier.

4. The method according to claim 3, characterized in that Before the first network device forwards the first message according to the second identifier, the method further includes: The first network device updates the value of the third identifier in the first message to the value of the second identifier.

5. The method according to any one of claims 1 to 4, characterized in that The first network device determines the second identifier according to the first identifier and the forwarding rule, including: The first network device acquires port information, where the port information includes an inbound port and / or an outbound port, where the inbound port indicates a port used by the first network device to receive the first message, and the outbound port indicates a port used by the first network device to forward the first message; The first network device determines a second identifier according to the port information, the first identifier, and a forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the port information, and the second identifier.

6. The method according to claim 5, characterized in that The first network device obtains the port information, including: The first network device determines, according to the first identifier and a destination address in the first message, an egress port used for forwarding the first message.

7. The method according to any one of claims 1 to 6, characterized in that The first network device determines the second identifier according to the first identifier and the forwarding rule, including: The first network device receives a second message sent by a second network device, where the second message includes cache space information in the second network device, and the second network device forwards the first message to a next-hop network device corresponding to the first message for the first network device; The first network device determines the second identifier according to the first identifier, the cache space information, and a forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the cache space information, and the second identifier.

8. The method according to any one of claims 1 to 7, characterized in that Before the first network device forwards the first message according to the second identifier, the method further includes: The first network device updates the value of the first identifier.

9. The method according to any one of claims 1 to 8, characterized in that The method further comprises: The first network device obtains and updates a value corresponding to the first identifier according to the forwarding rule.

10. The method according to any one of claims 1 to 9, characterized in that Before the first network device determines the second identifier according to the first identifier and the forwarding rule, the method further includes: The management plane of the first network device obtains network information, determines the forwarding rule based on the network information, and sends the forwarding rule to the data plane of the first network device, wherein the network information includes at least one or more of a network topology, a routing mode, and resources of at least one network device in the network; 11. The method according to any one of claims 1 to 9, characterized in that Before the first network device determines the second identifier according to the first identifier and the forwarding rule, the method further includes: The first network device receives configuration information corresponding to the forwarding rule sent by the controller, and determines the forwarding rule based on the configuration information. The configuration information is determined by the controller based on network information, and the network information includes network topology, routing method, and at least one or more resources possessed by at least one network device in the network.

12. The method according to any one of claims 1 to 11, characterized in that The method further comprises: The first network device obtains an update period; The first network device updates the forwarding rule according to the update period.

13. A message forwarding method, characterized in that: The method comprises: The source network device obtains a value of a first identifier and adds the value of the first identifier to the first message, where the first identifier is related to an area divided based on multiple message forwarding paths in the network; The source network device sends the first message to the first network device, so that the first network device determines a second identifier according to the first identifier and a forwarding rule, where the second identifier indicates a cache space used when forwarding the first message.

14. The method according to claim 13, characterized in that The source network device obtains a value of the first identifier, including: The management plane of the source network device obtains network information, determines the value of the first identifier based on the network information, and sends the value of the first identifier to the data plane of the source network device, wherein the network information includes at least one or more of the network topology, routing method, and resources possessed by at least one network device in the network.

15. The method according to claim 13, characterized in that The source network device obtains a value of the first identifier, including: The source network device receives the configuration information sent by the controller, and determines a value of the first identifier based on the configuration information.

16. The method according to claim 15, characterized in that The source network device determines a value of the first identifier based on the configuration information, including: The source network device determines a value of the first identifier according to cache space information and configuration information, where the cache space information is cache space information of a next-hop network device corresponding to the first message being sent.

17. The method according to claim 15 or 16, characterized in that The configuration information is determined by the controller based on network information, where the network information includes at least one or more of a network topology, a routing mode, and resources possessed by at least one network device in the network.

18. An information acquisition method, characterized in that: The method comprises: The first network device acquires network information, where the network information includes at least one or more of a network topology, a routing mode, and resources possessed by at least one network device in the network; The first network device obtains a forwarding rule based on the network information, and the forwarding rule includes a mapping relationship between a first identifier and a second identifier, the first identifier is related to an area divided based on multiple message forwarding paths in the network, and the second identifier indicates a cache space used when forwarding messages.

19. The method according to claim 18, characterized in that The first network device obtains a forwarding rule according to the network information, including: The management plane of the first network device obtains the network information, determines a forwarding rule based on the network information, and sends the forwarding rule to the data plane of the first network device.

20. The method according to claim 18, wherein The first network device obtains a forwarding rule according to the network information, including: The first network device sends the network information to the controller, so that the controller determines configuration information corresponding to the forwarding rule based on the network information; The first network device receives the configuration information sent by the controller, and determines the forwarding rule based on the configuration information.

21. The method according to any one of claims 18 to 20, characterized in that The method further comprises: The first network device obtains an update period; The first network device updates the forwarding rule according to the update period.

22. The method according to any one of claims 18 to 20, characterized in that The method further comprises: The first network device receives a first message, where the first message includes the first identifier; The first network device determines the second identifier according to the first identifier and the forwarding rule; The first network device forwards the first message according to the second identifier.

23. The method according to claim 22, characterized in that The first message further includes: a third identifier, the third identifier indicating a cache space used by the first network device when receiving the first message, and the first network device determining the second identifier according to the first identifier and the forwarding rule, including: The first network device determines the second identifier according to the first identifier, the third identifier, and the forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier.

24. The method according to claim 23, wherein Before the first network device forwards the first message according to the second identifier, the method further includes: The first network device updates the value of the third identifier in the first message to the value of the second identifier.

25. The method according to any one of claims 22 to 24, characterized in that The first network device determines the second identifier according to the first identifier and the forwarding rule, including: The first network device acquires port information, where the port information includes an inbound port and / or an outbound port, where the inbound port indicates a port used by the first network device to receive the first message, and the outbound port indicates a port used by the first network device to forward the first message; The first network device determines the second identifier according to the port information, the first identifier, and the forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the port information, and the second identifier.

26. The method according to claim 25, characterized in that The first network device obtains the port information, including: The first network device determines, according to the first identifier and a destination address in the first message, an egress port used for forwarding the first message.

27. The method according to any one of claims 22 to 26, characterized in that: The first network device determines the second identifier according to the first identifier and the forwarding rule, including: The first network device receives a second message sent by a second network device, where the second message includes cache space information in the second network device, and the second network device forwards the first message to a next-hop network device corresponding to the first message for the first network device; The first network device determines the second identifier according to the first identifier, the cache space information, and the forwarding rule, where the forwarding rule includes a mapping relationship between the first identifier, the cache space information, and the second identifier.

28. The method according to any one of claims 22 to 27, characterized in that Before the first network device forwards the first message according to the second identifier, the method further includes: The first network device updates the value of the first identifier.

29. The method according to claim 28, characterized in that The method further comprises: The first network device obtains and updates a value corresponding to the first identifier according to the forwarding rule.

30. An information acquisition method, characterized in that: The method comprises: The source network device acquires network information, where the network information includes at least one or more of a network topology, a routing mode, and resources possessed by the source network device; The source network device obtains a value of a first identifier based on the network information, where the first identifier is related to an area divided based on multiple message forwarding paths in the network.

31. The method according to claim 30, wherein The source network device obtains a value of the first identifier based on the network information, including: The management plane of the source network device determines a value of the first identifier based on the network information, and sends the value of the first identifier to the data plane of the source network device.

32. The method according to claim 30, wherein The source network device obtains a value of the first identifier based on the network information, including: The source network device sends the network information to a controller, so that the controller determines configuration information based on the network information; The source network device receives the configuration information sent by the controller, and determines a value of the first identifier based on the configuration information.

33. The method according to claim 32, characterized in that The source network device determines a value of the first identifier based on the configuration information, including: The source network device determines a value of the first identifier according to cache space information and configuration information, where the cache space information is cache space information of a next-hop network device corresponding to the first message being sent.

34. The method according to any one of claims 30 to 33, wherein: The method further comprises: The source network device adds the value of the first identifier to the message to be forwarded to obtain a first message; The source network device sends the first message to the first network device, so that the first network device determines a second identifier according to the first identifier and a forwarding rule, where the second identifier indicates a cache space used when forwarding the first message.

35. An information acquisition method, characterized in that: The method comprises: The controller receives network information sent by the network device, wherein the network information includes at least one or more of a network topology, a routing mode, and resources possessed by at least one network device in the network; The controller determines configuration information related to message forwarding based on the network information; The controller sends first configuration information to the first network device, so that the first network device determines a forwarding rule based on the first configuration information, the forwarding rule including a mapping relationship between a first identifier and a second identifier, the first identifier being related to an area divided based on multiple message forwarding paths in the network, and the second identifier indicating a cache space used when forwarding the message; and / or The controller sends second configuration information to the source network device, so that the source network device determines a value of the first identifier according to the second configuration information.

36. The method according to claim 35, characterized in that The forwarding rule includes a mapping relationship between the first identifier, the third identifier, and the second identifier, and the third identifier indicates a cache space used by the first network device when receiving a message.

37. The method according to claim 35 or 36, characterized in that The forwarding rule includes a mapping relationship between the first identifier, port information and the second identifier, the port information includes an input port and / or an output port, the input port indicates the port used by the first network device when receiving a message, and the output port indicates the port used by the first network device when forwarding a message.

38. The method according to any one of claims 35 to 37, wherein: The forwarding rule includes a mapping relationship between the first identifier, cache space information, and the second identifier, and the cache space information is cache space information of a next-hop network device corresponding to the message forwarded by the first network device.

39. The method according to any one of claims 35 to 38, wherein: The method further comprises: The controller determines an update period; The controller updates the forwarding rule according to the update period; or, The controller sends the update period to the first network device, so that the first network device updates the forwarding rule according to the update period.

40. The method according to any one of claims 35 to 39, characterized in that The controller determines configuration information related to the message according to the network information, including: The controller determines whether forwarding of the message meets preset conditions based on the network information, where the preset conditions include network device failure and / or change in the forwarding path; If the forwarding of the message meets the preset condition, the controller adjusts the value of the first identifier.

41. A communication device, characterized in that The communication device includes: a processor; The processor is configured to execute the method according to any one of claims 1 to 40.

42. A network system, characterized in that The network system includes: a first network device and a source network device; The first network device is configured to execute the method according to any one of claims 1 to 12, or execute the method according to any one of claims 18 to 29; The source network device is used to execute the message forwarding method described in any one of 13-17, or execute the method described in any one of 30-34.

43. The system according to claim 42, wherein: The network system further includes: a controller; The controller is used to execute the method according to any one of claims 35 to 40.

44. A computer-readable storage medium, characterized in that The method comprises instructions which, when executed on a computer, cause the computer to execute the method according to any one of claims 1 to 40.

45. A computer program product, characterized in that The computer program product comprises a program, and when the program is run on a processor, the computer or network device is caused to execute the method according to any one of claims 1 to 40.

Citation Information

Patent Citations

  • Hybrid wireless optical network-on-chip architecture and multicast routing algorithm thereof

    CN111786911A

  • Communication method and device

    CN114079870A

  • System and method for avoiding deadlock

    US20040133744A1

  • Selective insertion of a deadlock recovery buffer in a bus interconnect for deadlock recovery

    US20190020586A1