Path determination method, apparatus and system

By determining the port group set in parallel to determine the path in the switching network, the problem of the single path determination method of the controller is solved, the path determination efficiency and the performance of the switching node are improved, and it is suitable for switching networks of various sizes.

WO2024255444A1PCT designated stage expired Publication Date: 2024-12-19HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/089128
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-14
Filing Date
2024-04-22
Publication Date
2024-12-19

AI Technical Summary

Technical Problem

In existing technologies, the controller uses a relatively simple method to determine the path, resulting in low path determination efficiency, failing to meet the independence requirements of port groups in the switching network, and affecting the performance of the switching nodes.

Method used

The first controller determines the set of port groups in the switching network, determines the path corresponding to each port group in parallel, ensures that the paths are independent of each other, and continues to determine the undetermined paths in the part outside the determined paths. The path determination process is optimized by combining parallel and serial methods.

Benefits of technology

It improves the efficiency of path determination, reduces the number of times paths need to be redefined, enhances the performance of switching nodes and the reusability of hardware circuits, and is suitable for switching networks of various sizes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024089128_19122024_PF_FP_ABST
    Figure CN2024089128_19122024_PF_FP_ABST
Patent Text Reader

Abstract

A path determination method, apparatus and system, which belong to the technical field of communications. The method comprises: a first controller determining a port group set; then, concurrently determining paths corresponding to respective port groups in the port group set; and determining, from parts in a switching network that are located outside a determined path, a path corresponding to a port group, the corresponding path of which has not been determined, wherein each port group comprises one first port and one second port, which are about to exchange data, and the first ports and the second ports in different port groups are different. The port group set comprises at least two port groups, the first ports and the second ports of which both belong to different switching structures; the path corresponding to any port group is a path between the first port and the second port in the port group; and paths corresponding to different port groups are independent from each other. The present application can solve the problem of the method of a controller determining a path being relatively singular, and the present application is used for determining a path.
Need to check novelty before this filing date? Find Prior Art

Description

Path determination method, device and system

[0001] This application claims priority to a Chinese patent application filed on June 14, 2023, with application number 202310710329.6 and application name “Path Determination Method, Device and System”, the entire contents of which are incorporated herein by reference. Technical Field

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

[0003] In the field of communications technology, data exchange between communication nodes typically requires a switching node. For example, a switching node includes a controller and multiple switch fabrics connected to form a switching network. Multiple communication nodes that need to exchange data are connected to ports of the switching network. The controller configures paths between these ports in the switching network so that data exchanged between the multiple communication nodes can be transmitted along these paths.

[0004] For example, the switching network may have multiple ingress ports and multiple egress ports, and any ingress port may be connected to any egress port. Assuming that multiple groups of communication nodes all need to exchange data through the switching network, and that these groups of communication nodes are connected to multiple groups of ports of the switching network (each group of ports includes one ingress port and one egress port), the controller may concurrently determine paths between the ingress ports and egress ports in the multiple groups of ports, and then configure these determined paths in the switching network.

[0005] However, the way the controller determines these paths is relatively simple.

[0006] Summary of the Invention

[0007] This application provides a path determination method, device, and system that can solve the problem that the controller has a relatively single method for determining the path. The technical solution is as follows:

[0008] In a first aspect, the present application provides a path determination method, the method comprising: a first controller determining a port group set from a plurality of port groups, then determining, in parallel in a switching network, paths corresponding to the respective port groups in the port group set, and determining, in a portion of the switching network outside the determined paths, paths corresponding to the port groups for which no corresponding paths have been determined. The first controller is connected to a plurality of switching fabrics, the switching network formed by the plurality of switching fabrics having a plurality of first ports and a plurality of second ports, the first ports and the second ports belonging to different switching fabrics, and any of the first ports being connectable to any of the second ports. The switching network may be a Clos network or another network different from a Clos network. The port group comprises: a first port and a second port for data to be exchanged, and the first port and the second port in different port groups are different; the port group set comprises: the first port and the second port both belonging to at least two port groups in different switching fabrics; the path corresponding to any port group is: the path between the first port and the second port in any port group; and the paths corresponding to different port groups are independent of each other.

[0009] In this application, the first controller first determines the paths corresponding to each port group in the port group set, and then determines the paths corresponding to the port groups for which no corresponding paths have been determined in the portion of the switching network that is outside the determined paths. This means that the first controller's path determination method differs from the method used by controllers in related arts, thus enriching the methods used by controllers to determine paths.

[0010] In addition, since the first port and the second port of the port group in the port group set belong to different switching structures, in some switching networks (such as clos networks), the paths corresponding to the various port groups in the port group set must be independent of each other. Therefore, the first controller does not need to redetermine these paths. Moreover, the first controller subsequently determines other paths outside the determined paths. Even if the subsequently determined paths need to be redetermined, it will not affect the paths corresponding to the port groups in the port group set, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. In this way, the number of paths that need to be redetermined is reduced, and the efficiency of the first controller in determining independent paths is improved. Moreover, the parallel determination of the paths corresponding to the port groups in the port group set is more efficient than the serial determination of the paths corresponding to the port groups in the port group set. This method can ensure the maximization of the reusability of the hardware circuit and has good hardware scalability.

[0011] Optionally, the multiple first ports belong to r first switching structures among the multiple switching structures; the r first switching structures are divided into j structure groups; j≥1, when j>1, the first j-1 structure groups among the j structure groups each include k first switching structures, and the number of the first switching structures in the j-th structure group is less than or equal to k; r>k>1; each of the first ports in the port group set belongs to one structure group among the j structure groups.

[0012] Furthermore, when each first port in the port group set belongs to one fabric group, the port group set may include: one first port of each first switch fabric in the one fabric group. Alternatively, the port group set may include: one first port in the same order in each first switch fabric in the one fabric group.

[0013] It is understandable that the number of port groups in the port group set may also be greater than 2, and this application does not impose any limitation thereto. In this case, when the first controller determines the port group set from the multiple port groups, it may first determine a portion of the port groups in the port group set from the multiple port groups, and then determine another portion of the port groups in the port group set based on the portion of the port groups, thereby gradually determining the port groups in the port group set.

[0014] For example, the first controller may first determine at least two initial port groups from a plurality of port groups, and then determine at least one newly added port group based on the at least two initial port groups. The resulting set of port groups includes the at least two initial port groups and the at least one newly added port group. The first ports in the at least two initial port groups belong to the first part of the first switching structure in a structure group, and the first ports and the second ports in the at least two initial port groups belong to different switching structures; the first port in the newly added port group belongs to the second part of the first switching structure in a structure group; and the first port and the second port in the at least two initial port groups and the at least one newly added port group belong to different switching structures.

[0015] The first part of the first switching structure and the second part of the first switching structure can be any two parts in the structure group. Optionally, the first part of the first switching structure includes: the first i first switching structures in a structure group; i ≥ 2, and the first ports in the at least two initial port groups belong to the first i first switching structures in a one-to-one correspondence; and optionally, the second part of the first switching structure includes: the i+1th first switching structure in a structure group; the at least one newly added port group includes: a port group in which the first port belongs to the i+1th first switching structure.

[0016] Optionally, when the first controller determines the path corresponding to the port group for which the corresponding path has not been determined in the part of the switching network located outside the determined path, it can continue to determine a new port group set in the port group associated with the above-mentioned structural group, and determine the path corresponding to the port group in the port group set in parallel. In this way, the efficiency of determining the path can be further improved.

[0017] For example, when the first controller determines the path corresponding to the port group for which the corresponding path has not been determined in the portion of the switching network located outside the determined path, the first controller can determine multiple first remaining port groups from the multiple port groups, and determine a new port group set from the multiple first remaining port groups to obtain a first port group set; thereafter, in the portion of the switching network located outside the determined path, the first controller can determine the path corresponding to each port group in the first port group set in parallel. The first port in the first remaining port group and the first port in the aforementioned port group set both belong to the aforementioned structural group, and the first remaining port group is different from the port group in the determined port group set. On this basis, the first controller can also repeat this operation to sequentially obtain the paths corresponding to the port groups in the multiple first port group sets.

[0018] Optionally, when the first controller determines the path corresponding to the port group for which the corresponding path has not been determined in the part of the switching network located outside the determined path, it can continue to determine a new port group set in the port group associated with other structural groups different from the above-mentioned one structural group, and determine the path corresponding to the port group in the port group set in parallel. In this way, the efficiency of determining the path can be further improved.

[0019] For example, when determining the path corresponding to the port group for which no corresponding path has been determined in a portion of the switching network outside the determined path, the first controller may further determine multiple second remaining port groups from the multiple port groups, and determine a new port group set from the multiple second remaining port groups to obtain a second port group set. Subsequently, in the portion of the switching network outside the determined path, the first controller may concurrently determine the path corresponding to each port group in the second port group set. The first port in the second remaining port group and the first port in the aforementioned port group set each belong to a different fabric group, and the first port of the fabric group to which the first port in the second remaining port group belongs is different from the first port in the determined port group set. For example, the first port in the second remaining port group belongs to another fabric group other than the aforementioned fabric group, and the another fabric group is the next fabric group to the one fabric group among the j fabric groups. Of course, the another fabric group may not be the next fabric group to the one fabric group; for example, the another fabric group may be the next fabric group to the one fabric group. Based on this, the first controller may further repeat this operation to sequentially obtain the paths corresponding to the port groups in the multiple second port group sets.

[0020] In combination with the above, it can be seen that the first controller can sequentially search for a port group set in the port groups associated with multiple fabric groups (the first port in the port group associated with each fabric group belongs to the switch fabric in the fabric group). Furthermore, when searching for a port group set in the port group associated with each fabric group, the first controller can sequentially search for multiple port group sets, and after each port group set is found, simultaneously determine the paths corresponding to the multiple port group sets.

[0021] After determining the paths corresponding to the port groups in the port group set, the first controller may further determine paths corresponding to other port groups (port groups for which no corresponding paths have been determined) in the portion other than these paths in the switching network.

[0022] For example, when there are at least two other port groups in addition to the port group set in the plurality of port groups, the first controller may determine the paths corresponding to the at least two other port groups in at least one of a parallel and a serial manner.

[0023] When the first controller determines the paths corresponding to multiple other port groups in a serial manner, the first controller may perform path determination operations on the multiple other port groups in sequence; wherein the path determination operation performed on any other port group includes: determining the path corresponding to any other port group in a portion of the switching network that is outside the determined path.

[0024] When the first controller determines the paths corresponding to multiple other port groups in parallel, if the paths corresponding to the multiple other port groups determined are not independent of each other, the first controller needs to re-determine the paths corresponding to the multiple other port groups until the paths corresponding to the multiple other port groups determined are independent of each other.

[0025] Optionally, the multiple first ports belong to r first switching structures among the multiple switching structures; before determining the port group set in the multiple port groups, the first controller may further obtain information about the multiple port groups and arrange the information about the multiple port groups according to the order of the first switching structures to which the first ports in the port groups belong among the r first switching structures. Arranging the information about the multiple port groups by the first controller according to the order of the first switching structures to which the first ports in the port groups belong among the r first switching structures facilitates the first controller to perform subsequent operations in the path determination method based on this information.

[0026] Optionally, after determining the paths corresponding to the multiple port groups, the first controller may further configure the paths corresponding to the multiple port groups in the switching network. It is understood that the first controller may also instruct other devices or equipment to configure the paths corresponding to the multiple port groups without configuring the paths corresponding to the multiple port groups in the switching network.

[0027] The multiple switching structures in this application may all be optical switching structures or all be electrical switching structures, or some switching structures may be optical switching structures and others may be electrical switching structures. In other words, the multiple switching structures may include at least one of an optical switching structure and an electrical switching structure. This is not limited in the embodiments of this application.

[0028] In a second aspect, a path determination device is provided. The path determination device belongs to a first controller, the first controller is connected to multiple switching structures, the switching network formed by the multiple switching structures has multiple first ports and multiple second ports, the first ports and the second ports belong to different switching structures, and any first port can be connected to any second port; the path determination device includes: a first determination module, a second determination module, and a third determination module.

[0029] The first determination module is used to determine a port group set among multiple port groups; the port group includes: one first port and one second port for data to be exchanged, and the first port and the second port in different port groups are different; the port group set includes: the first port and the second port both belong to at least two port groups of different switching structures; the second determination module is used to determine, in the switching network, the paths corresponding to the respective port groups in the port group set in parallel; the path corresponding to any port group is: the path between the first port and the second port in any port group; and the paths corresponding to different port groups are independent of each other; the third determination module is used to determine, in a part of the switching network outside the determined paths, the paths corresponding to the port groups for which the corresponding paths have not been determined.

[0030] In this application, the first controller first determines the paths corresponding to each port group in the port group set, and then determines the paths corresponding to the port groups for which no corresponding paths have been determined in the portion of the switching network that is outside the determined paths. This means that the first controller's path determination method differs from the method used by controllers in related arts, thus enriching the methods used by controllers to determine paths.

[0031] In addition, since the first port and the second port of the port group in the port group set belong to different switching structures, in some switching networks (such as clos networks), the paths corresponding to the various port groups in the port group set must be independent of each other. Therefore, the first controller does not need to redetermine these paths. Moreover, the first controller subsequently determines other paths outside the determined paths. Even if the subsequently determined paths need to be redetermined, it will not affect the paths corresponding to the port groups in the port group set, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. In this way, the number of paths that need to be redetermined is reduced, and the efficiency of the first controller in determining independent paths is improved. Moreover, the parallel determination of the paths corresponding to the port groups in the port group set is more efficient than the serial determination of the paths corresponding to the port groups in the port group set. This method can ensure the maximization of the reusability of the hardware circuit and has good hardware scalability.

[0032] Optionally, the multiple first ports belong to r first switching structures among the multiple switching structures; the r first switching structures are divided into j structure groups; j≥1, when j>1, the first j-1 structure groups among the j structure groups each include k first switching structures, and the number of the first switching structures in the j-th structure group is less than or equal to k; r>k>1; each of the first ports in the port group set belongs to one structure group among the j structure groups.

[0033] Furthermore, when each first port in the port group set belongs to one fabric group, the port group set may include: one first port of each first switch fabric in the one fabric group. Alternatively, the port group set may include: one first port in the same order in each first switch fabric in the one fabric group.

[0034] It is understandable that the number of port groups in the port group set may also be greater than 2, and this application does not impose any limitation thereto. In this case, when the first controller determines the port group set from the multiple port groups, it may first determine a portion of the port groups in the port group set from the multiple port groups, and then determine another portion of the port groups in the port group set based on the portion of the port groups, thereby gradually determining the port groups in the port group set.

[0035] For example, the first controller may first determine at least two initial port groups from a plurality of port groups, and then determine at least one newly added port group based on the at least two initial port groups. The resulting set of port groups includes the at least two initial port groups and the at least one newly added port group. The first ports in the at least two initial port groups belong to the first part of the first switching structure in a structure group, and the first ports and the second ports in the at least two initial port groups belong to different switching structures; the first port in the newly added port group belongs to the second part of the first switching structure in a structure group; and the first port and the second port in the at least two initial port groups and the at least one newly added port group belong to different switching structures.

[0036] The first part of the first switching structure and the second part of the first switching structure can be any two parts in the structure group. Optionally, the first part of the first switching structure includes: the first i first switching structures in a structure group; i ≥ 2, and the first ports in the at least two initial port groups belong to the first i first switching structures in a one-to-one correspondence; and optionally, the second part of the first switching structure includes: the i+1th first switching structure in a structure group; the at least one newly added port group includes: a port group in which the first port belongs to the i+1th first switching structure.

[0037] Optionally, when the third determination module determines the path corresponding to the port group for which the corresponding path has not been determined in the part of the switching network located outside the determined path, it can continue to determine a new port group set in the port group associated with the above-mentioned structural group, and determine the path corresponding to the port group in the port group set in parallel. In this way, the efficiency of determining the path can be further improved.

[0038] For example, when the third determination module determines the path corresponding to the port group for which the corresponding path has not been determined in the portion of the switching network located outside the determined path, it can determine multiple first remaining port groups from the multiple port groups, and determine a new port group set from the multiple first remaining port groups to obtain a first port group set; then, in the portion of the switching network located outside the determined path, it can determine the path corresponding to each port group in the first port group set in parallel. The first port in the first remaining port group and the first port in the aforementioned port group set both belong to the aforementioned structural group, and the first remaining port group is different from the port groups in the determined port group set. On this basis, the third determination module can also repeatedly perform this operation to sequentially obtain the paths corresponding to the port groups in the multiple first port group sets.

[0039] Optionally, when the third determination module determines the path corresponding to the port group for which the corresponding path has not been determined in the part of the switching network located outside the determined path, it can continue to determine a new port group set in the port group associated with other structural groups different from the above-mentioned one structural group, and determine the path corresponding to the port group in the port group set in parallel. In this way, the efficiency of determining the path can be further improved.

[0040] For example, when determining the path corresponding to the port group for which no corresponding path has been determined in a portion of the switching network outside the determined path, the third determination module may further determine multiple second remaining port groups from the multiple port groups, and determine a new port group set from the multiple second remaining port groups to obtain a second port group set. Subsequently, the path corresponding to each port group in the second port group set is determined in parallel in the portion of the switching network outside the determined path. The first port in the second remaining port group and the first port in the aforementioned port group set each belong to a different structural group, and the first port of the structural group to which the first port in the second remaining port group belongs is different from the first port in the determined port group set. For example, the first port in the second remaining port group belongs to another structural group other than the aforementioned structural group, and the other structural group is the next structural group to the one structural group in the j structural groups. Of course, the other structural group may not be the next structural group to the one structural group; for example, the other structural group may be the next structural group to the one structural group. Based on this, the first controller may further repeat this operation to sequentially obtain paths corresponding to the port groups in the multiple second port group sets.

[0041] In combination with the above, it can be seen that the first controller can sequentially search for a port group set in the port groups associated with multiple fabric groups (the first port in the port group associated with each fabric group belongs to the switch fabric in the fabric group). Furthermore, when searching for a port group set in the port group associated with each fabric group, the first controller can sequentially search for multiple port group sets, and after each port group set is found, simultaneously determine the paths corresponding to the multiple port group sets.

[0042] After determining the paths corresponding to the port groups in the port group set, the first controller may further determine paths corresponding to other port groups (port groups for which no corresponding paths have been determined) in the portion other than these paths in the switching network.

[0043] For example, when there are at least two other port groups in addition to the port group set in the plurality of port groups, the third determining module may be configured to determine paths corresponding to the at least two other port groups in at least one of a parallel and a serial manner.

[0044] When the third determination module determines the paths corresponding to multiple other port groups in a serial manner, the third determination module may perform path determination operations on the multiple other port groups in sequence; wherein the path determination operation performed on any other port group includes: determining the path corresponding to any other port group in a portion of the switching network that is outside the determined path.

[0045] When the third determination module determines the paths corresponding to multiple other port groups in a parallel manner, if the paths corresponding to the multiple other port groups determined are not independent of each other, the third determination module needs to re-determine the paths corresponding to the multiple other port groups until the paths corresponding to the multiple other port groups determined are independent of each other.

[0046] Optionally, the multiple first ports belong to r first switching structures among the multiple switching structures; and the path determination apparatus further includes: an acquisition module and an arrangement module. The acquisition module is configured to acquire information about the multiple port groups; and the arrangement module is configured to arrange the information about the multiple port groups according to the order of the first switching structures to which the first ports in the port groups belong within the r first switching structures. The first controller arranges the information about the multiple port groups according to the order of the first switching structures to which the first ports in the port groups belong within the r first switching structures, thereby facilitating the first controller to perform subsequent operations in the path determination method based on this information.

[0047] Optionally, the path determination apparatus may further include a configuration module configured to, after determining the paths corresponding to the plurality of port groups, configure the paths corresponding to the plurality of port groups in the switching network. It is understood that the first controller may also instruct other devices or equipment to configure the paths corresponding to the plurality of port groups without configuring the paths corresponding to the plurality of port groups in the switching network.

[0048] The multiple switching structures in this application may all be optical switching structures or all be electrical switching structures, or some switching structures may be optical switching structures and others may be electrical switching structures. In other words, the multiple switching structures may include at least one of an optical switching structure and an electrical switching structure. This is not limited in the embodiments of this application.

[0049] In a third aspect, the present application provides a path determination device, comprising: a processor and a memory, wherein the memory stores a program, and the processor is used to execute the program stored in the memory to implement the path determination method described in any design of the first aspect.

[0050] In a fourth aspect, the present application provides a chip, which includes a programmable logic circuit and / or program instructions, and when the chip is running, is used to implement the path determination method described in any design of the first aspect.

[0051] In a fifth aspect, the present application provides a computer-readable storage medium, which stores instructions. When the instructions are executed on a computer, the computer executes the path determination method as described in any one of the designs in the first aspect.

[0052] In a sixth aspect, the present application provides a computer program product comprising instructions, which, when run on a computer, enables the computer to execute the path determination method described in any one of the designs in the first aspect.

[0053] In the seventh aspect, the present application provides a switching node, comprising: a first controller and multiple switching structures; the first controller is connected to the multiple switching structures, the switching network formed by the multiple switching structures has multiple first ports and multiple second ports, the first ports and the second ports belong to different switching structures, and any first port is connected to any second port; the first controller is used to execute the method described in any design of the first aspect.

[0054] In an eighth aspect, the present application provides a communication system comprising: a switching node, a plurality of first communication nodes, and a plurality of second communication nodes; the switching node is the switching node described in the seventh aspect; the plurality of first communication nodes are connected one-to-one with a plurality of first ports in the switching node; the plurality of second communication nodes are connected one-to-one with a plurality of second ports in the switching node.

[0055] The effects of the third to eighth aspects mentioned above can refer to the effects of the corresponding designs in the first and second aspects mentioned above, and this application will not go into details here. BRIEF DESCRIPTION OF THE DRAWINGS

[0056] FIG1 is a schematic structural diagram of a communication system provided by the present application;

[0057] FIG2 is a schematic diagram of an optical switching method provided by the present application;

[0058] FIG3 is a schematic diagram of a clos network provided by the present application;

[0059] FIG4 is a bipartite graph corresponding to a CSM provided in this application;

[0060] FIG5 is a bipartite graph corresponding to another CSM provided in this application;

[0061] FIG6 is a bipartite graph corresponding to another CSM provided in this application;

[0062] FIG7 is a bipartite graph corresponding to another CSM provided in this application;

[0063] FIG8 is a flow chart of a path determination method provided by the present application;

[0064] FIG9 is a schematic diagram of a switching network provided by the present application;

[0065] FIG10 is a schematic diagram of a structural group provided by the present application;

[0066] FIG11 is a block diagram of a path determination device provided by the present application;

[0067] FIG12 is a block diagram of another path determination device provided by the present application;

[0068] FIG13 is a schematic structural diagram of a path determination device provided in this application. DETAILED DESCRIPTION

[0069] In order to make the principles and technical solutions of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.

[0070] The present application provides a communication system, which can be an optical transmission network (OTN), a wireless network system, a data network system, a data center, or the like. The communication system includes multiple nodes connected to form a communication network. The multiple nodes include: multiple communication nodes and at least one switching node. Communication nodes can exchange data through the switching node. Communication nodes can be network cards, terminal devices, servers, etc., and switching nodes can be routers, switches, etc. A node can be a device itself or a part of a device.

[0071] For example, as shown in FIG1 , a first communication node 01 and a second communication node 02 in a communication system are connected via a switching node 03, and the first communication node 01 and the second communication node 02 can exchange data via the switching node 03. The first communication node 01 and the second communication node 02 can belong to the same device or to different devices, and this application does not limit this.

[0072] Switching nodes can use electrical switching or optical switching (OSW) to exchange data.

[0073] In an electrical switching approach, a communication node needing to send data can generate an electrical signal carrying the data, convert the electrical signal into an optical signal, and transmit the optical signal to a port of a switching node. After receiving the optical signal from one port, the switching node can convert the optical signal back into an electrical signal. After this, the converted electrical signal is transmitted to another communication node through another port. The other communication node can then convert the received optical signal into an electrical signal and extract the data carried by the electrical signal. This allows one communication node to exchange data with another communication node through the switching node. However, the electrical switching approach requires optical-to-electrical conversion and / or electrical-to-optical conversion at the node, both of which consume significant energy and introduce significant latency. Furthermore, when exchanging data between communication nodes through multiple stages of switching nodes, each stage of switching nodes introduces significant latency, and the latency introduced by each stage of switching nodes is uncertain. Consequently, the latency introduced by the multi-stage switching nodes as a whole is highly uncertain.

[0074] In optical switching, a communication node that needs to send data generates an optical signal carrying that data and transmits it to a port on a switching node. The switching node then transmits the optical signal received from that port to another communication node via another port. The other communication node then extracts the data carried by the received optical signal. This allows one communication node to exchange data with another through the switching node. As can be seen, optical switching eliminates the need for optical-to-electrical and / or electro-optical conversion at the node, thus avoiding the high energy consumption and latency associated with these conversions.

[0075] Furthermore, when communication nodes exchange data through a switching node, the node that sends the data is called a transmitter, and the node that receives the data is called a receiver. Because there can be one or more transmitters and receivers exchanging data through the same switching node, a receiver conflict (also known as a port conflict) occurs when multiple transmitters simultaneously exchange data with a single receiver through the same switching node.

[0076] In this case, a switching node that exchanges data electronically will buffer the electrical signal sent by one transmitter and send an optical signal to the receiver based on the electrical signal sent by the other transmitter. After sending the optical signal, the switching node will then send an optical signal to the receiver based on the buffered electrical signal.

[0077] However, switching nodes that use optical switching to exchange data do not have the ability to buffer optical signals. If a receiving-end collision occurs, communication between the sender and receiver will be affected. Therefore, switching nodes that use optical switching to exchange data need to adopt certain mechanisms to prevent receiving-end collisions.

[0078] By way of example, the following will describe a method for avoiding receiving end conflicts in an optical switching method with reference to FIG. 2 .

[0079] As shown in FIG2 , a switching node 03 that uses optical switching to exchange data includes: multiple switching structures 031 connected to form a switching network. The switching structure 031 may include a crossbar array or multiple crossbar arrays. The crossbar array is non-blocking, and a connection can be established between any two of its ports. The switching network formed by the multiple switching structures 031 can be shown in FIG3 . The multiple switching structures 031 in the switching network are divided into X input-level switching structures 031 (also known as input switch modules (ISM)), Y intermediate-level switching structures 031 (also known as intermediate switch modules (CSM)), and X output-level switching structures 031 (also known as output switch modules (OSM)). X and Y are both integers greater than or equal to 2. The switching network in this application may be a Clos network (or a network different from a Clos network), which is a multi-stage switching network. The Clos network shown in FIG3 is a three-stage Clos network, which can also be called a symmetrical three-stage Clos network.

[0080] Each ISM has Z input ports and Y output ports, each CSM has X input ports and X output ports, and each OSM has Y input ports and Z output ports. This switching network can be represented by the symbol C(Z, Y, X). The output ports of the ISM are connected to the input ports of the CSM, and the output ports of different ISMs are connected to different input ports of the CSM. In addition, the m output ports of each ISM are connected to the input ports of m CSMs in a one-to-one correspondence. The input ports of the OSM are connected to the output ports of the CSM, and the input ports of different OSMs are connected to different output ports of the CSM. In addition, the m input ports of each OSM are connected to the output ports of m CSMs in a one-to-one correspondence.

[0081] It can be seen that there is one and only one link between each ISM and each CSM, and there is one and only one link between each CSM and each OSM. Furthermore, any of the input ports of the X ISMs can be connected to any of the output ports of the X OSMs. It can be understood that since the optical path is reversible, the above-mentioned input port can also be an output port, and the output port can also be an input port. If the X*Y input ports of the X ISMs are called multiple first ports, and the X*Y output ports of the X OSMs are called multiple second ports, then any first port is connected to any second port. It can be seen that the switching network formed by connecting multiple switching structures 031 has multiple first ports and multiple second ports. The first ports and second ports belong to different switching structures, and any first port can be connected to any second port.

[0082] Continuing with Figure 2 , in addition to multiple switch fabrics 031, the switching node also includes a first controller 032 and a second controller 033 (the switching node may also not include the second controller 033; in this case, the switching node includes the first controller 032 and multiple switch fabrics 031). The first controller 032 is connected to both the multiple switch fabrics 031 and the second controller 033. The second controller 033 is also connected to multiple groups of communication nodes, each group of communication nodes including two communication nodes, which are respectively connected to a first port and a second port of the switching network. Figure 2 shows only one group of communication nodes (the first communication node 01 and the second communication node 02), and does not show the connection relationship between the group of communication nodes and the ports of the switching network.

[0083] When each group of communication nodes needs to exchange data through the switching node 03, the group of communication nodes can send an exchange request to the second controller 033. The second controller 033 can determine an exchange time for the group of communication nodes to exchange data based on the exchange request. The communication nodes that the second controller 033 determines to exchange data at the exchange time may include at least two groups of communication nodes, and the at least two groups of communication nodes are respectively connected to different first ports and different second ports of the switching network.

[0084] After determining the switching time, the second controller 033 can send a configuration instruction to the first controller 031. The configuration instruction is used to indicate at least two port groups corresponding one-to-one to the at least two groups of communication nodes, each port group including: a first port and a second port connected to the corresponding group of communication nodes. Because the at least two groups of communication nodes are respectively connected to different first ports and different second ports of the switching network, the first port and the second port in the at least two port groups are different. Based on the received configuration instruction, the first controller 031 can determine the path corresponding to each port group in the switching network and configure the path in the switching network. In this way, the paths corresponding to the at least two port groups are configured in the switching network.

[0085] After configuring the paths corresponding to the at least two port groups in the switching network, the second controller 033 also needs to send a switching response carrying the switching time to the at least two groups of communication nodes, so that the at least two groups of communication nodes exchange data through the paths corresponding to the corresponding port groups at the switching time.

[0086] According to the above content, it can be seen that in the switching node using optical switching, the second controller needs to determine the exchange time for each group of communication nodes to exchange data, and the first port and the second port in the port group corresponding to different groups of communication nodes exchanging data at the same exchange time are different, thereby avoiding receiving end conflicts (port conflicts).

[0087] In addition, according to the above content, it can be seen that the efficiency of the process (also called mapping process) in which the first controller in the switching node determines the path corresponding to the port group has a great impact on the efficiency of exchanging data between communication nodes. Therefore, improving the efficiency of this process is crucial to improving the performance of the switching node.

[0088] In the related art, the first controller determines the paths corresponding to the at least two port groups in parallel. In addition, in order to avoid conflicts between data exchanged between different groups of communication nodes in the communication network, the paths corresponding to different groups of ports are usually required to be independent of each other.

[0089] For example, the first controller may use a matrix decomposition method to determine paths corresponding to multiple port groups in parallel. In this method, a matrix P is used to represent multiple port groups:

[0090] The element in the first row and the mth column of the matrix P represents the first port in the mth port group among the multiple port groups, and the element in the second row and the mth column of the matrix P represents the second port in the mth port group, where m≥1.

[0091] For example, assume that the switching network includes 3 ISMs, 3 OSMs, and 4 CSMs.

[0092] Among them, the first ports 1, 2, 3, and 4 belong to the first ISM, the first ports 5, 6, 7, and 8 belong to the second ISM, and the first ports 8, 10, 11, and 12 belong to the third ISM. The second ports 1, 2, 3, and 4 belong to the first OSM, the first ports 5, 6, 7, and 8 belong to the second OSM, and the first ports 8, 10, 11, and 12 belong to the third OSM.

[0093] The matrix P can be converted into a business matrix:

[0094] The nth row and the mth column in the service matrix H represent the number of port groups whose first port belongs to the nth ISM and whose second port belongs to the mth OSM.

[0095] For example, the port group in which the first port belongs to the first ISM and the second port belongs to the first OSM includes port group (1, 3). Therefore, the number of port groups in which the first port belongs to the first ISM and the second port belongs to the first OSM is 1. Therefore, the element in the first row and first column of the service matrix is ​​1.

[0096] For example, the port groups in which the first port belongs to the first ISM and the second port belongs to the second OSM include port group (3, 7) and port group (4, 6). Therefore, the number of port groups in which the first port belongs to the first ISM and the second port belongs to the second OSM is 2. Therefore, the element in the first row and second column of the service matrix is ​​2.

[0097] Furthermore, corresponding assignment matrices may be generated in parallel according to the row elements of the service matrix.

[0098] For example, the assignment matrix generated based on the first row of elements in the service matrix is:

[0099] The assignment matrix generated according to the second row elements of the traffic matrix is:

[0100] The assignment matrix generated according to the third row elements of the service matrix is:

[0101] The element in the nth row and mth column of the assignment matrix C1 represents the number of port groups connected through the nth CSM, with the first port belonging to the first ISM and the second port belonging to the mth OSM. For example, taking the element in the 1st row and 1st column of C1 as an example, a value of 1 indicates that the number of port groups connected through the 1st CSM, with the first port belonging to the first ISM and the second port belonging to the first OSM is 1. If the value of an element in the assignment matrix is ​​greater than 1, it means that the number of port groups connected through the same CSM, with the first port belonging to the same ISM and the second port belonging to the same OSM is greater than 1. In this case, port conflicts will occur. Therefore, to avoid port conflicts, the elements in the assignment matrix are either 0 or 1.

[0102] After generating an assignment matrix based on the row elements in the service matrix, the two assignment matrices can be added together. If the resulting matrix contains an element greater than 1, this indicates that the number of port groups connected through the same CSM, where the first port belongs to different ISMs and the second port belongs to the same OSM, is greater than 1. In this case, a port conflict may also occur. Therefore, at least one of the two assignment matrices needs to be adjusted so that the matrix obtained by adding the two assignment matrices does not contain an element greater than 1. The matrix obtained by adding the two assignment matrices is then added to the next assignment matrix, and this process is repeated until all assignment matrices have been added together and the matrix obtained by adding all assignment matrices does not contain an element greater than 1.

[0103] For example, It can be seen that the matrix obtained by adding C1 and C2 contains multiple elements greater than 1. In this case, port conflict will occur, so C1 and C2 need to be adjusted so that there is no element greater than 1 in the matrix obtained by C1+C2. For example, after adjustment, This matrix does not contain any elements greater than 1. When this matrix is ​​then added to C3, the resulting matrix will also contain elements greater than 1. In this case, at least one of the matrices C1, C2, and C3 needs to be adjusted (for example, matrix C3 needs to be adjusted) so that the matrix obtained by C1+C2+C3 does not contain any elements greater than 1.

[0104] Then, based on the final obtained C1, C2, and C3, the above service matrix H is decomposed into four matrices corresponding to the four CSMs:

[0105] In the four matrices decomposed from the service matrix H, the element in the nth row and mth column of the matrix corresponding to each CSM represents the number of port groups that need to be connected through the CSM and whose first port belongs to the nth ISM and whose second port belongs to the mth OSM.

[0106] After obtaining the four matrices corresponding to the four CSMs, the paths corresponding to each of these matrices can be output. The paths corresponding to each matrix include the path corresponding to the port group whose first port belongs to the ISM corresponding to the row of the element with a value of 1 in the matrix, and whose second port belongs to the OSM corresponding to the column of the element. This path passes through the CSM corresponding to the matrix.

[0107] According to the above content, the first controller determines the paths corresponding to the at least two groups of ports in parallel, which may cause at least some of these paths to fail to meet the requirements of mutual independence (such as the above-mentioned situation where there is a port conflict). In this case, the first controller needs to re-determine the paths corresponding to the at least two groups of ports until the determined paths corresponding to the at least two groups of ports are independent of each other (such as adjusting at least one of the matrices in C1 and C2 in the above content). In addition, the number of times the path is re-determined is uncontrollable, resulting in the time it takes for the first controller to determine the path being uncontrollable. In addition, the complexity of the first controller in determining the path each time is high. It can be seen that the efficiency of the first controller in determining independent paths is low, resulting in poor performance of the switching node.

[0108] In related technologies, the first controller can also sequentially determine the paths corresponding to multiple port groups in a serial manner. For example, the first controller can sequentially determine the paths corresponding to multiple port groups using a bipartite graph edge coloring method. In this method, the first controller needs to sequentially determine the port group corresponding to each of the multiple CSMs, where the first and second ports in the port group corresponding to each CSM are connected via the CSM. Based on the aforementioned service matrix, the first controller can sequentially determine the CSM corresponding to each of the multiple port groups and generate a bipartite graph corresponding to each CSM. This bipartite graph includes points representing three ISMs, points representing three OSMs, and a line representing the port group corresponding to the CSM. One end of the line connects the point representing the ISM where the first port in the port group is located, and the other end connects the point representing the OSM where the second port in the port group is located. The first and second ports in each port group are connected via the corresponding CSM, and the first and second ports of different port groups corresponding to each CSM are different. Taking the four CSMs mentioned above as an example, the bipartite graphs corresponding to these four CSMs can be shown in Figures 4, 5, 6, and 7, respectively. After determining the CSM corresponding to each of the multiple port groups, the path corresponding to each port group can be determined as: the path passing through the CSM corresponding to the port group.

[0109] However, the serial method is inefficient in determining paths corresponding to multiple port groups, resulting in poor performance of the first controller. Furthermore, when the switching network is not strictly non-blocking, the serial method may fail to determine paths corresponding to some port groups.

[0110] Furthermore, in the related art, the controller can only determine the paths corresponding to the multiple port groups in a serial or parallel manner. Therefore, the controller has few ways to determine these paths.

[0111] This application provides a new path determination method that differs from the controller-based path determination methods used in related technologies, thereby enriching the controller's path determination methods. Furthermore, in some cases, this method can improve the efficiency of the first controller in determining independent paths, thereby enhancing the performance of the switching node.

[0112] For example, the path determination method provided in the present application is performed by a first controller, which may be a control chip or a board. The first controller is connected to multiple switch structures, and the switch network formed by the multiple switch structures may be a clos network. The clos network has multiple first ports and multiple second ports, the first ports and the second ports belong to different switch structures, and any first port can be connected to any second port. Among them, the multiple switch structures 031 that make up the clos network are divided into at least three levels of switch structures 031, each level of switch structure 031 includes at least two switch structures 031, the multiple first ports belong to the first level switch structure 031, and the multiple second ports belong to the last level switch structure 031. Any switch structure 031 other than the last level switch structure 031 is connected to each next level switch structure 031 so that any first port can be connected to any second port. This application takes the clos network as an example of a switch network. In some cases, the switch network may not be a clos network, and this application does not limit this. The first controller and the multiple switch structures can refer to the first controller and the multiple switch structures in Figure 2 above, and this application will not elaborate on them here. In this application, it is taken as an example that the multiple switching structures are all optical switching structures. Optionally, the multiple switching structures can also be all electrical switching structures, or some of the multiple switching structures are optical switching structures and another part of the switching structures are electrical switching structures.

[0113] FIG8 is a flow chart of a path determination method provided by the present application. As shown in FIG8 , the path determination method includes:

[0114] S101. A first controller obtains information about multiple port groups. The port group includes a first port and a second port for exchanging data, and the first port and the second port in different port groups are different.

[0115] The first controller may receive a configuration instruction sent by the second controller that carries the information about the multiple port groups, and extract the information about the multiple port groups from the configuration instruction. Alternatively, the first controller may obtain the information about the multiple port groups through other means, such as integrating the functions of the second controller so that the first controller can independently generate the information about the multiple port groups.

[0116] Each port group includes a first port and a second port for exchanging data. A port group can also be referred to as a route from the first port to the second port in the port group. The first port and the second port connect to different communication nodes, which can exchange data through the port group in the switching network. Furthermore, to avoid port conflicts, the first port and the second port in different port groups within the multiple port groups are different.

[0117] For example, assume that the switching network is as shown in Figure 9, which has first ports 1 to 16 and second ports 1 to 16. First ports 1, 2, 3, and 4 belong to the first first switching fabric (ISM 1), first ports 5, 6, 7, and 8 belong to the second first switching fabric (ISM 2), first ports 9, 10, 11, and 12 belong to the third first switching fabric (ISM 3), and first ports 13, 14, 15, and 16 belong to the fourth first switching fabric (ISM 4). Second ports 1, 2, 3, and 4 belong to the first second switching fabric (OSM 1), second ports 5, 6, 7, and 8 belong to the second second switching fabric (OSM 2), second ports 9, 10, 11, and 12 belong to the third second switching fabric (OSM 3), and second ports 13, 14, 15, and 16 belong to the fourth second switching fabric (OSM 4). Multiple port groups can be represented by a matrix P:

[0118] The matrix P consists of 16 columns, each representing a port group. The 16 columns represent 16 port groups. The first row of the matrix P represents the first port, and the second row represents the second port. Therefore, the 16 port groups are:

[0119] Port group 1 consisting of a first port 1 and a second port 13;

[0120] A port group 2 consisting of a first port 2 and a second port 4;

[0121] A port group 3 consisting of a first port 3 and a second port 12;

[0122] A port group 4 consisting of a first port 4 and a second port 5;

[0123] A port group 5 consisting of a first port 5 and a second port 6;

[0124] A port group 6 consisting of a first port 6 and a second port 16;

[0125] A port group 7 consisting of a first port 7 and a second port 11;

[0126] A port group 8 consisting of a first port 8 and a second port 15;

[0127] A port group 9 consisting of a first port 9 and a second port 10;

[0128] A port group 10 consisting of a first port 10 and a second port 2;

[0129] A port group 11 consisting of a first port 11 and a second port 1;

[0130] A port group 12 consisting of a first port 12 and a second port 3;

[0131] A port group 13 consisting of a first port 13 and a second port 9;

[0132] A port group 14 consisting of a first port 14 and a second port 8;

[0133] A port group 15 consisting of a first port 15 and a second port 14;

[0134] The first port 16 and the second port 7 form a port group 16 .

[0135] The information of each port group among the multiple port groups acquired by the first controller in S101 may be a column of elements in the matrix P used to represent the port group.

[0136] S102: The first controller arranges information of the plurality of port groups according to the order of the first switch fabrics to which the first ports in the port groups belong in the r first switch fabrics.

[0137] The switching network has a plurality of first ports and a plurality of second ports, the plurality of first ports belonging to r first switching fabrics among the plurality of first ports. After obtaining information about the plurality of port groups, the first controller may arrange the information about the plurality of port groups according to the order of the first switching fabrics to which the first ports in the port groups belong in the r first switching fabrics.

[0138] Assume that the information of each of the multiple port groups can be a column of elements in the matrix P used to represent the port group; first ports 1, 2, 3, and 4 belong to the first first switching fabric (ISM 1), first ports 5, 6, 7, and 8 belong to the second first switching fabric (ISM 2), first ports 9, 10, 11, and 12 belong to the third first switching fabric (ISM 3), and first ports 13, 14, 15, and 16 belong to the fourth first switching fabric (ISM 4). Then, since the information of the multiple port groups is already arranged in the matrix P according to the order of the first switching fabrics to which the first ports belong in the r first switching fabrics, the positions of the information in the matrix P after arrangement do not need to change.

[0139] The first controller arranges information about the multiple port groups according to the order of the first switch fabrics to which the first ports in the port groups belong in the r first switch fabrics, which facilitates the first controller to perform subsequent operations based on the information. It is understood that the first controller may also execute S103 directly after S101 without executing S102.

[0140] S103: The first controller determines a port group set from the multiple port groups; the port group set includes: at least two port groups in which the first port and the second port belong to different switch structures.

[0141] The first controller can determine a port group set from the multiple port groups based on information about the multiple port groups. The port group set includes at least two port groups, and the first ports of the at least two port groups belong to different switch fabrics, and the second ports of the at least two port groups also belong to different switch fabrics. In this case, no matter how the paths between the first port and the second port in the at least two port groups are designed, it is possible to ensure that the paths between the first port and the second port in the at least two port groups are independent of each other. Therefore, the at least two port groups can be independent port groups.

[0142] For example, taking the 16 port groups represented by the elements of the matrix P, the first port 1 and the first port 5 belong to the first first switch fabric (ISM 1) and the second first switch fabric (ISM 2), respectively, and the second port 13 and the second port 6 belong to the fourth second switch fabric (OSM 4) and the second second switch fabric (OSM 2), respectively. Therefore, the port group 1 consisting of the first port 1 and the second port 13, and the port group 5 consisting of the first port 5 and the second port 6 are independent port groups, and the port group set determined by the first controller in S103 may include these two port groups.

[0143] When determining the port group set, the first controller may first determine a port group in the port group set, and then search for other port groups in the port group set in the port groups of the first switching fabric where the first port and the first port in the port group are different.

[0144] Optionally, the r first switching structures are divided into j structure groups; j ≥ 1, when j > 1, the first j-1 structure groups in the j structure groups each include k first switching structures, and the number of first switching structures in the j-th structure group is less than or equal to k; r > k > 1. Each first port in the port group set belongs to one of the j structure groups. For example, the r first switching structures are the four ISMs in Figure 10. These four ISMs can be divided into two structure groups, where ISM 1 and ISM 2 form structure group 1, and ISM 3 and ISM 4 form structure group 2. The port group set can include the above-mentioned port group 1 and port group 5, and the first ports in these two port groups both belong to structure group 1.

[0145] Furthermore, in the case where each first port in the port group set belongs to one fabric group, the port group set may include: one first port of each first switching fabric in the one fabric group. For example, the fabric group 1 includes the first first switching fabric (ISM 1) and the second first switching fabric (ISM 2), and the port group set including the port group 1 and the port group 5 includes one first port 1 in the first first switching fabric (ISM 1) and one first port 5 in the second first switching fabric (ISM 2). It is understandable that the port group set may also not include: one first port of each first switching fabric in the one fabric group. For example, the port group set includes: first ports of some of the first switching fabrics in the one fabric group.

[0146] Optionally, the port group set may include: one first port in the same order in each first switch fabric in the one fabric group. For example, the port group set including port group 1 and port group 5 includes the first first port 1 in the first switch fabric (ISM 1) and the first first port 5 in the second first switch fabric (ISM 2).

[0147] For example, when determining a port group set, the first controller may first determine fabric group 1 and the first first port 1 in the first first switching fabric (ISM 1) in fabric group 1. Subsequently, the first controller may determine the first first port 5 in the second first switching fabric (ISM 2) in fabric group 1. The first controller may determine whether the second port 13 in port group 1, where the first port 1 is located, and the second port 6 in port group 5, where the first port 5 is located, belong to different second switching fabrics (OSMs). After confirmation, it is found that the second port 13 in port group 1, where the first port 1 is located, and the second port 6 in port group 5, where the first port 5 is located, belong to different second switching fabrics. Therefore, the first controller may determine that the port group set includes port group 1 and port group 5.

[0148] In the above content, the first controller needs to determine whether the first ports in different port groups belong to the same switching structure. For example, the first port can be represented in binary, and the first ports 1-16 can be represented as 0000, 0001, 0010, 0011, ..., 1111 in sequence. The first controller can determine whether the first ports in different port groups belong to the same switching structure by comparing whether the first two bits in the binary representation of the first ports in different port groups are the same. Here, taking each switching structure having 4 first ports as an example, when each switching structure has F first ports, the first controller can determine whether the first ports in different port groups belong to the same switching structure by comparing whether the first (logarithm of F with base 2) bits in the binary representation of the first ports in different port groups are the same.

[0149] S104: The first controller determines, in parallel, in the switching network, a path corresponding to each port group in the port group set; the path corresponding to any port group is: a path between a first port and a second port in any port group; and the paths corresponding to different port groups are independent of each other.

[0150] After determining the output port group set, the first controller can then concurrently determine the paths corresponding to each port group in the port group set within the switching network. Because the port groups within the port group set are independent of each other, the paths corresponding to each port group are independent within the CLOS network, and these paths do not conflict at any port. This eliminates the need to re-determine paths in parallel due to non-independent paths determined in parallel, improving the efficiency of the first controller in determining the paths corresponding to the ports in the output port group set.

[0151] The port group set includes at least two port groups, and the first controller may use at least two processing cores to determine paths corresponding to the at least two port groups in a one-to-one correspondence.

[0152] S105 : The first controller determines, in a portion of the switching network outside the determined path, a path corresponding to a port group for which no corresponding path has been determined.

[0153] After the first controller determines the paths corresponding to the port groups in the port group set in S104, it may continue to determine paths corresponding to other port groups (port groups for which corresponding paths have not yet been determined) in the portion of the switching network other than these paths. In this process, since the paths determined in S105 are outside the paths determined in S104, the paths determined in S105 do not affect the paths determined in S104, and therefore there is no problem of re-determining the paths determined in S104 due to conflicts between the paths determined in S105 and S104.

[0154] For example, when there are at least two other port groups in addition to the port group set in the plurality of port groups, the first controller may determine the paths corresponding to the at least two other port groups in at least one of a parallel and a serial manner.

[0155] When the first controller determines the paths corresponding to multiple other port groups in a serial manner, the first controller may perform path determination operations on the multiple other port groups in sequence; wherein the path determination operation performed on any other port group includes: determining the path corresponding to any other port group in a portion of the switching network that is outside the determined path.

[0156] When the first controller determines the paths corresponding to multiple other port groups in parallel, if the paths corresponding to the multiple other port groups determined are not independent of each other, the first controller needs to re-determine the paths corresponding to the multiple other port groups until the paths corresponding to the multiple other port groups determined are independent of each other.

[0157] S106 : After determining the paths corresponding to the multiple port groups, the first controller configures the paths corresponding to the multiple port groups in the switching network.

[0158] The first controller can determine the required connection relationships between ports in each switch fabric in the switching network based on the paths corresponding to the multiple port groups, and configure the corresponding connection relationships in the switch fabrics to implement configuration of the paths corresponding to the multiple port groups in the switching network. When configuring a path, the first controller needs to configure the connection relationships between the input ports and output ports of each switch fabric through which the path passes.

[0159] It is understandable that the first controller may not need to configure paths corresponding to the multiple port groups in the switching network, but may instruct other devices or equipment to configure the paths corresponding to the multiple port groups.

[0160] In summary, in this application, the first controller first determines the paths corresponding to each port group in the set of port groups, and then, in the portion of the switching network outside the determined paths, determines the paths corresponding to the port groups for which no corresponding paths have been determined. This means that the first controller's path determination method differs from the methods used by controllers in related arts, thus enriching the methods used by controllers to determine paths.

[0161] In addition, since the first port and the second port of the port group in the port group set belong to different switching structures, in some switching networks (such as clos networks), the paths corresponding to the various port groups in the port group set must be independent of each other. Therefore, the first controller does not need to redetermine these paths. Moreover, the first controller subsequently determines other paths outside the determined paths. Even if the subsequently determined paths need to be redetermined, it will not affect the paths corresponding to the port groups in the port group set, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. In this way, the number of paths that need to be redetermined is reduced, and the efficiency of the first controller in determining independent paths is improved. Moreover, the parallel determination of the paths corresponding to the port groups in the port group set is more efficient than the serial determination of the paths corresponding to the port groups in the port group set. This method can ensure the maximization of the reusability of the hardware circuit and has good hardware scalability.

[0162] The method provided in this application can be applied to switching networks of various sizes. Moreover, since the path determination method provided in this application can quickly determine the path corresponding to each port group, when this method is applied to a larger switching network, it will not cause a significant increase in network latency. For example, as shown in Table 1, when the path determination method provided in this application is applied to the following switching networks of various sizes, the performance of the first controller can be improved many times compared to the related technologies.

[0163] Table 1

[0164] Optionally, in S105 , the first controller may continue to determine a new port group set from the port groups associated with the one structure group, and concurrently determine paths corresponding to the port groups in the port group set. This may further improve efficiency in determining paths.

[0165] For example, in S105, the first controller may determine a plurality of first remaining port groups from the plurality of port groups, and determine a new port group set from the plurality of first remaining port groups to obtain a first port group set; thereafter, in a portion of the switching network outside the determined paths, paths corresponding to the respective port groups in the first port group set are determined in parallel. The first port in the first remaining port group and the first port in the port group set determined in S103 both belong to the one structural group, and the first remaining port group is different from the port groups in the determined port group set.

[0166] On this basis, the first controller may further repeatedly perform this operation to sequentially obtain paths corresponding to the port groups in the plurality of first port group sets.

[0167] For example, still using the aforementioned 16 port groups as an example, assume that the port group set determined in S103 includes port group 1 and port group 5. Then, the first controller may determine that the current plurality of first remaining port groups include port groups 2-4 and 6-8. The first controller may then determine a new port group set (including port group 2 and port group 6) from port groups 2-4 and 6-8 as a first port group set, and concurrently determine the paths corresponding to port groups 2 and 6. The first controller may then continue to determine that the current plurality of first remaining port groups include port groups 3-4 and 7-8. The first controller may then determine a new port group set (port group 4 and port group 8) from port groups 3-4 and 7-8 as another second port group set, and concurrently determine the paths corresponding to port groups 4 and 8. After this, there are no other port group sets in the port groups to which the first port belongs in fabric group 1. Therefore, the first controller may stop searching for port group sets in the port groups to which the first port group belongs in fabric group 1.

[0168] Optionally, the first controller can continue to determine a new port group set in the port groups associated with other structure groups different from the above-mentioned one structure group in the above-mentioned S105, and in parallel determine the paths corresponding to the port groups in the port group set. In this way, the efficiency of determining the path can be further improved.

[0169] For example, in S105 above, the first controller may further determine multiple second remaining port groups from the multiple port groups, and determine a new port group set from the multiple second remaining port groups to obtain a second port group set; thereafter, in a portion of the switching network outside the determined path, paths corresponding to each port group in the second port group set are determined in parallel. The first port in the second remaining port group and the first port in the port group set determined in S103 above each belong to different structural groups, and the first port of the structural group to which the first port in the second remaining port group belongs is different from the first port in the determined port group set. For example, the first port in the second remaining port group belongs to another structural group other than the one structural group, and the other structural group is the next structural group to the one structural group among the j structural groups. Of course, the other structural group may not be the next structural group to the one structural group; for example, the other structural group may be the next structural group to the one structural group.

[0170] On this basis, the first controller may further repeatedly perform this operation to sequentially obtain paths corresponding to the port groups in the plurality of second port group sets.

[0171] For example, still taking the above-mentioned 16 port groups as an example. Assume that the port group set determined in S103 includes: port group 1 and port group 5. Then, the first controller can determine that the current multiple second remaining port groups include: port groups 9-16. Afterwards, the first controller can determine a new port group set (including port group 10 and port group 14) from port groups 9-16 as a second port group set, and determine the paths corresponding to port group 10 and port group 14 in parallel. After this, since there are no structural groups other than structural group 1 and structural group 2, the first controller can stop searching for other port group sets.

[0172] Optionally, in combination with the above, it can be seen that the first controller can sequentially search for a port group set in port groups associated with multiple fabric groups (the first port in the port group associated with each fabric group belongs to the switch fabric in the fabric group). Furthermore, when searching for a port group set in the port group associated with each fabric group, the first controller can sequentially search for multiple port group sets, and after each port group set is found, determine the paths corresponding to the multiple port group sets in parallel.

[0173] For example, still using the aforementioned 16 port groups as an example, assume that the port group set determined in S103 includes port group 1 and port group 5. Then, the first controller may determine that the current plurality of first remaining port groups include port groups 2-4 and 6-8. The first controller may then determine a new port group set (including port group 2 and port group 6) from port groups 2-4 and 6-8 as a first port group set, and concurrently determine the paths corresponding to port groups 2 and 6. The first controller may then continue to determine that the current plurality of first remaining port groups include port groups 3-4 and 7-8. The first controller may then determine a new port group set (port group 4 and port group 8) from port groups 3-4 and 7-8 as another second port group set, and concurrently determine the paths corresponding to port groups 4 and 8. After this, there are no other port group sets in the port groups to which the first port belongs in fabric group 1. Therefore, the first controller may stop searching for port group sets in the port groups to which the first port group belongs in fabric group 1.

[0174] Afterwards, the first controller may determine that the current plurality of second remaining port groups include: port groups 9-16. The first controller may determine a new port group set (including port group 10 and port group 14) from port groups 9-16 as a second port group set, and determine the paths corresponding to port group 10 and port group 14 in parallel. Then, the first controller may continue to determine that the current plurality of second remaining port groups include: port groups 9, 11-13, 15-16. The first controller may determine a new port group set (port group 11 and port group 15) from port groups 9, 11-13, 15-16 as another second port group set, and determine the paths corresponding to port group 11 and port group 15 in parallel. Afterwards, the first controller may continue to determine that the current plurality of second remaining port groups include: port groups 9, 12-13, 16. The first controller can determine a new port group set (port group 12 and port group 16) from port groups 9, 12-13, and 16 as another second port group set, and concurrently determine the paths corresponding to port groups 12 and 16. After this, there are no other port group sets in the port group to which the first port belongs in fabric group 2. Therefore, the first controller can stop searching for port group sets in the port group to which the first port group belongs in fabric group 2.

[0175] After this, since there are no fabric groups other than fabric group 1 and fabric group 2, the first controller can stop searching for other port group sets. At this point, the first controller has found port group set 1 (including port group 1 and port group 5), port group set 2 (including port group 2 and port group 6), port group set 3 (including port group 4 and port group 8), port group set 4 (including port group 10 and port group 14), port group set 5 (including port group 11 and port group 15), and port group set 6 (including port group 12 and port group 16). The first controller can sequentially determine the paths corresponding to the port groups in port group sets 1 through 6. Furthermore, when determining the paths corresponding to the port groups in each port group set, the first controller can sequentially determine the paths corresponding to each port group in that port group set. After this, port groups 3, 7, 9, and 13 remain in the multiple port groups, excluding these port group sets. The first controller can sequentially determine the paths corresponding to port groups 3, 7, 9, and 13.

[0176] In the above process, the first controller needs to determine paths multiple times. Each time the first controller determines a path, it determines a path corresponding to a port group in addition to the paths already determined in the switching network. The above description uses the example of the first controller further determining a new set of port groups in S105. It is understood that the first controller may not need to determine a new set of port groups in S105, but may instead sequentially determine paths corresponding to the remaining port groups.

[0177] Furthermore, in the above embodiments, the port group set includes two port groups as an example. It can be understood that the number of port groups in the port group set may also be greater than 2, and this application does not impose any limitation on this.

[0178] In this case, when the first controller determines a port group set among multiple port groups, it can first determine a part of the port groups in the port group set among the multiple port groups, and then determine another part of the port groups in the port group set based on this part of the port groups, thereby gradually determining the port groups in the port group set.

[0179] For example, the first controller may first determine at least two initial port groups from a plurality of port groups, and then determine at least one newly added port group based on the at least two initial port groups. The resulting set of port groups includes the at least two initial port groups and the at least one newly added port group. The first ports in the at least two initial port groups belong to the first part of the first switching structure in a structure group, and the first ports and the second ports in the at least two initial port groups belong to different switching structures; the first port in the newly added port group belongs to the second part of the first switching structure in a structure group; and the first port and the second port in the at least two initial port groups and the at least one newly added port group belong to different switching structures.

[0180] The first part of the first switching structure and the second part of the first switching structure can be any two parts in the structure group. Optionally, the first part of the first switching structure includes: the first i first switching structures in a structure group; i ≥ 2, and the first ports in the at least two initial port groups belong to the first i first switching structures in a one-to-one correspondence; and optionally, the second part of the first switching structure includes: the i+1th first switching structure in a structure group; the at least one newly added port group includes: a port group in which the first port belongs to the i+1th first switching structure.

[0181] Still using the above matrix P as an example, assuming that port groups 1 to 16 belong to the same fabric group, the first controller can first determine two initial port groups (port groups 1 and 5) from the port groups (port groups 1 to 8) whose first ports belong to first switch fabrics 1 and 2. The first controller can then search for a new port group (port group 9) from the port groups (port groups 9 to 12) whose first ports belong to first switch fabric 3. Next, the first controller uses port groups 1, 5, and 9 as the initial port groups and searches for a new port group from the port groups (port groups 13 to 16) whose first ports belong to first switch fabric 4, but fails to find one. At this point, the first controller can determine that the found set of port groups includes: port groups 1, 5, and 9.

[0182] In the above content, the first controller determines the port group set based on the concept of the structure group as an example. It is understandable that the first controller may also determine the port group set without considering the concept of the structure group, but directly search for the port group set in multiple port groups.

[0183] The multiple switching structures in this application may all be optical switching structures or all be electrical switching structures, or some switching structures may be optical switching structures and others may be electrical switching structures. In other words, the multiple switching structures may include at least one of an optical switching structure and an electrical switching structure. This is not limited in the embodiments of this application.

[0184] Based on the path determination method provided in this application, this application also provides a path determination device, which belongs to a first controller. The first controller is connected to multiple switch fabrics, and the multiple switch fabrics are connected to form a switch network having multiple first ports and multiple second ports. The first ports and the second ports belong to different switch fabrics, and any first port can be connected to any second port. As shown in Figure 11, the path determination device includes: a first determination module 1001, a second determination module 1002, and a third determination module 1003.

[0185] The first determination module 1001 is used to determine a port group set in multiple port groups; the port group includes: one first port and one second port for data to be exchanged, and the first port and the second port in different port groups are different; the port group set includes: the first port and the second port both belong to at least two port groups of different switching structures; the operation performed by the first determination module 1001 can refer to S103 in the aforementioned embodiment, and this application will not repeat it here.

[0186] The second determination module 1002 is used to determine, in parallel, the paths corresponding to the respective port groups in the port group set in the switching network; the path corresponding to any port group is: the path between the first port and the second port in any port group; and the paths corresponding to different port groups are independent of each other; the operations performed by the second determination module 1002 can refer to S104 in the aforementioned embodiment, and are not described in detail in this application.

[0187] The third determining module 1003 is configured to determine, in a portion of the switching network outside the determined path, a path corresponding to the port group for which no corresponding path has been determined. The operations performed by the third determining module 1003 may refer to S105 in the aforementioned embodiment and will not be described in detail herein.

[0188] In this application, the first controller first determines the paths corresponding to each port group in the port group set, and then determines the paths corresponding to the port groups for which no corresponding paths have been determined in the portion of the switching network that is outside the determined paths. This means that the first controller's path determination method differs from the method used by controllers in related arts, thus enriching the methods used by controllers to determine paths.

[0189] In addition, since the first port and the second port of the port group in the port group set belong to different switching structures, in some switching networks (such as clos networks), the paths corresponding to the various port groups in the port group set must be independent of each other. Therefore, the first controller does not need to redetermine these paths. Moreover, the first controller subsequently determines other paths outside the determined paths. Even if the subsequently determined paths need to be redetermined, it will not affect the paths corresponding to the port groups in the port group set, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. In this way, the number of paths that need to be redetermined is reduced, and the efficiency of the first controller in determining independent paths is improved. Moreover, the parallel determination of the paths corresponding to the port groups in the port group set is more efficient than the serial determination of the paths corresponding to the port groups in the port group set. This method can ensure the maximization of the reusability of the hardware circuit and has good hardware scalability.

[0190] Optionally, the multiple first ports belong to r first switching structures among the multiple switching structures; the r first switching structures are divided into j structure groups; j≥1, when j>1, the first j-1 structure groups among the j structure groups each include k first switching structures, and the number of the first switching structures in the j-th structure group is less than or equal to k; r>k>1; each of the first ports in the port group set belongs to one structure group among the j structure groups.

[0191] Furthermore, when each first port in the port group set belongs to one fabric group, the port group set may include: one first port of each first switch fabric in the one fabric group. Alternatively, the port group set may include: one first port in the same order in each first switch fabric in the one fabric group.

[0192] It is understandable that the number of port groups in the port group set may also be greater than 2, and this application does not impose any limitation thereto. In this case, when the first controller determines the port group set from the multiple port groups, it may first determine a portion of the port groups in the port group set from the multiple port groups, and then determine another portion of the port groups in the port group set based on the portion of the port groups, thereby gradually determining the port groups in the port group set.

[0193] For example, the first controller may first determine at least two initial port groups from a plurality of port groups, and then determine at least one newly added port group based on the at least two initial port groups. The resulting set of port groups includes the at least two initial port groups and the at least one newly added port group. The first ports in the at least two initial port groups belong to the first part of the first switching structure in a structure group, and the first ports and the second ports in the at least two initial port groups belong to different switching structures; the first port in the newly added port group belongs to the second part of the first switching structure in a structure group; and the first port and the second port in the at least two initial port groups and the at least one newly added port group belong to different switching structures.

[0194] The first part of the first switching structure and the second part of the first switching structure can be any two parts in the structure group. Optionally, the first part of the first switching structure includes: the first i first switching structures in a structure group; i ≥ 2, and the first ports in the at least two initial port groups belong to the first i first switching structures in a one-to-one correspondence; and optionally, the second part of the first switching structure includes: the i+1th first switching structure in a structure group; the at least one newly added port group includes: a port group in which the first port belongs to the i+1th first switching structure.

[0195] Optionally, when the third determination module determines the path corresponding to the port group for which the corresponding path has not been determined in the part of the switching network located outside the determined path, it can continue to determine a new port group set in the port group associated with the above-mentioned structural group, and determine the path corresponding to the port group in the port group set in parallel. In this way, the efficiency of determining the path can be further improved.

[0196] For example, when the third determination module determines the path corresponding to the port group for which the corresponding path has not been determined in the portion of the switching network located outside the determined path, it can determine multiple first remaining port groups from the multiple port groups, and determine a new port group set from the multiple first remaining port groups to obtain a first port group set; then, in the portion of the switching network located outside the determined path, it can determine the path corresponding to each port group in the first port group set in parallel. The first port in the first remaining port group and the first port in the aforementioned port group set both belong to the aforementioned structural group, and the first remaining port group is different from the port groups in the determined port group set. On this basis, the third determination module can also repeatedly perform this operation to sequentially obtain the paths corresponding to the port groups in the multiple first port group sets.

[0197] Optionally, when the third determination module determines the path corresponding to the port group for which the corresponding path has not been determined in the part of the switching network located outside the determined path, it can continue to determine a new port group set in the port group associated with other structural groups different from the above-mentioned one structural group, and determine the path corresponding to the port group in the port group set in parallel. In this way, the efficiency of determining the path can be further improved.

[0198] For example, when determining the path corresponding to the port group for which no corresponding path has been determined in a portion of the switching network outside the determined path, the third determination module may further determine multiple second remaining port groups from the multiple port groups, and determine a new port group set from the multiple second remaining port groups to obtain a second port group set. Subsequently, the path corresponding to each port group in the second port group set is determined in parallel in the portion of the switching network outside the determined path. The first port in the second remaining port group and the first port in the aforementioned port group set each belong to a different structural group, and the first port of the structural group to which the first port in the second remaining port group belongs is different from the first port in the determined port group set. For example, the first port in the second remaining port group belongs to another structural group other than the aforementioned structural group, and the other structural group is the next structural group to the one structural group in the j structural groups. Of course, the other structural group may not be the next structural group to the one structural group; for example, the other structural group may be the next structural group to the one structural group. Based on this, the first controller may further repeat this operation to sequentially obtain paths corresponding to the port groups in the multiple second port group sets.

[0199] In combination with the above, it can be seen that the first controller can sequentially search for a port group set in the port groups associated with multiple fabric groups (the first port in the port group associated with each fabric group belongs to the switch fabric in the fabric group). Furthermore, when searching for a port group set in the port group associated with each fabric group, the first controller can sequentially search for multiple port group sets, and after each port group set is found, simultaneously determine the paths corresponding to the multiple port group sets.

[0200] After determining the paths corresponding to the port groups in the port group set, the first controller may further determine paths corresponding to other port groups (port groups for which no corresponding paths have been determined) in the portion other than these paths in the switching network.

[0201] For example, when there are at least two other port groups in addition to the port group set in the plurality of port groups, the third determining module may be configured to determine paths corresponding to the at least two other port groups in at least one of a parallel and a serial manner.

[0202] When the third determination module determines the paths corresponding to multiple other port groups in a serial manner, the third determination module may perform path determination operations on the multiple other port groups in sequence; wherein the path determination operation performed on any other port group includes: determining the path corresponding to any other port group in a portion of the switching network that is outside the determined path.

[0203] When the third determination module determines the paths corresponding to multiple other port groups in a parallel manner, if the paths corresponding to the multiple other port groups determined are not independent of each other, the third determination module needs to re-determine the paths corresponding to the multiple other port groups until the paths corresponding to the multiple other port groups determined are independent of each other.

[0204] Optionally, the multiple first ports belong to r first switching structures among the multiple switching structures; the path determination device further includes: an acquisition module and an arrangement module (not shown in FIG11 ). The acquisition module is used to acquire information about the multiple port groups; the arrangement module is used to arrange the information about the multiple port groups according to the order of the first switching structures to which the first ports in the port groups belong among the r first switching structures. The first controller arranges the information about the multiple port groups according to the order of the first switching structures to which the first ports in the port groups belong among the r first switching structures, which can facilitate the first controller to perform subsequent operations in the path determination method based on this information.

[0205] Optionally, the path determination apparatus may further include a configuration module (not shown in FIG11 ) configured to, after determining the paths corresponding to the plurality of port groups, configure the paths corresponding to the plurality of port groups in the switching network. It is understood that the first controller may also instruct other devices or equipment to configure the paths corresponding to the plurality of port groups without configuring the paths corresponding to the plurality of port groups in the switching network.

[0206] The multiple switching structures in this application may all be optical switching structures or all be electrical switching structures, or some switching structures may be optical switching structures and others may be electrical switching structures. In other words, the multiple switching structures may include at least one of an optical switching structure and an electrical switching structure. This is not limited in the embodiments of this application.

[0207] Each module in the path determination device described above can be implemented in hardware and / or software. As shown in FIG12 , the path determination device includes: a preprocessing unit, a first buffer unit, a port group set determination unit, at least two processing cores (three processing cores are used as an example in the figure), and a second buffer unit. The preprocessing unit can be implemented in hardware or software, and the first buffer unit, the port group set determination unit, the at least two processing cores, and the second buffer unit can all be implemented in hardware. The preprocessing unit includes the acquisition module and the arrangement module, configured to acquire information about multiple port groups and arrange the information about the multiple port groups according to the order of the first switch fabrics to which the first ports in the port groups belong within the r first switch fabrics. The first buffer unit is configured to store the information about the multiple port groups processed by the preprocessing unit. The port group set determination unit includes the first determination module, configured to determine the port group set based on the information stored in the first buffer unit. The port group set includes at least two port groups, and the at least two port groups have a one-to-one correspondence with the at least two processing cores. The second determination module includes the at least two processing cores, configured to determine the paths corresponding to the at least two port groups in a one-to-one correspondence. The second buffer unit is used to store the path determined by the processing core.

[0208] In the case that the third determining module does not need to continue to determine the port group set, the third determining module includes at least one processing core among the multiple processing cores, and the at least one processing core can be used to determine paths corresponding to port groups other than the port group set.

[0209] If the third determination module still needs to determine a port group set, the third determination module includes a port group set determination unit and at least two processing cores. The third determination module uses the port group set determination unit to continue determining additional port group sets, and uses the at least two processing cores to determine paths corresponding to each port group in the port group set in a one-to-one correspondence. If no port group set is determined, and if at least one port group still exists in the plurality of port groups, the third determination module may use the at least one processing core to determine paths corresponding to the at least one port group.

[0210] In addition, some parameters in the path determination method (such as the aforementioned j, i, the number of port groups in the port group set, etc.) can also be stored in the first buffer unit, and the port group set determination unit can determine the port group set based on these parameters.

[0211] The present application also provides a path determination device, comprising: a processor and a memory, wherein the memory stores a program, and the processor is configured to execute the program stored in the memory to implement any one of the path determination methods provided in the present application and executed by the first controller.

[0212] In this path determination device, there can be multiple processors, and the memory coupled to the processors can be independent of the processors or the path determination device, or within the processors. The memory can be a physically independent unit, or it can be storage space on a cloud server or a network hard drive, etc. Optionally, there can be one or more memories. When there are multiple memories, they can be located in the same or different locations and can be used independently or in combination. For example, please refer to Figure 13, which is a schematic diagram of the structure of a path determination device provided in an embodiment of the present application. The path determination device 100 includes: a processor 102 and a memory 101, wherein the memory 101 is used to store programs, and the processor 102 is used to call the programs stored in the memory 101 so that the path determination device executes any of the methods provided in this application and performed by the first controller. Optionally, as shown in Figure 13, the path determination device 100 may also include at least one communication interface 103 and at least one communication bus 104. The memory 101, processor 102, and communication interface 103 are communicatively connected via the communication bus 104. The communication interface 103 is used to communicate with other devices under the control of the processor 102 , and the processor 102 can call the program stored in the memory 101 through the communication bus 104 .

[0213] The present application provides a chip, which includes a programmable logic circuit and / or program instructions. When the chip is running, it is used to implement any path determination method provided in the present application and executed by a first controller.

[0214] The present application provides a computer-readable storage medium having instructions stored therein. When the instructions are executed on a computer, the computer is enabled to execute any one of the path determination methods provided in the present application and executed by a first controller.

[0215] The present application provides a computer program product comprising instructions. When the computer program product is run on a computer, the computer is enabled to execute any one of the path determination methods performed by a first controller provided in the present application.

[0216] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product, which includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server or data center to another website, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrations. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium, or a semiconductor medium (e.g., a solid-state hard disk).

[0217] The present application also provides a switching node, comprising: a first controller and multiple switching structures; the first controller is connected to the multiple switching structures, the switching network formed by the multiple switching structures has multiple first ports and multiple second ports, the first ports and the second ports belong to different switching structures, and any first port is connected to any second port; the first controller is used to execute any path determination method performed by the first controller provided in the present application.

[0218] The present application also provides a communication system, comprising: any one of the switching nodes provided in the present application, a plurality of first communication nodes, and a plurality of second communication nodes; a one-to-one connection between the plurality of first communication nodes and a plurality of first ports in the switching node; and a one-to-one connection between the plurality of second communication nodes and a plurality of second ports in the switching node.

[0219] In this application, the terms "first" and "second" are used for descriptive purposes only and should not be understood to indicate or imply relative importance. The term "at least one" refers to one or more, and "plurality" refers to two or more, unless otherwise expressly limited. The term "and / or" simply describes an association relationship between associated objects, indicating that three possible relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, or B exists alone.

[0220] The different types of embodiments, such as the method embodiments and device embodiments provided in the embodiments of this application, can refer to each other, and the embodiments of this application are not limited thereto. The order of the operations of the method embodiments provided in the embodiments of this application can be appropriately adjusted, and the operations can be increased or decreased accordingly according to the circumstances. Any person skilled in the art who can easily think of a method of variation within the technical scope disclosed in this application should be included in the scope of protection of this application, and therefore will not be described in detail.

[0221] In the corresponding embodiments provided in this application, it should be understood that the disclosed systems and devices can be implemented through other configurations. For example, the device embodiments described above are merely illustrative. For example, the division of modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or modules can be electrical or other forms.

[0222] Units described as separate components may or may not be physically separate, and components described as units may or may not be physical units, and may be located in one place or distributed across multiple devices. Some or all of these units may be selected to achieve the purpose of this embodiment based on actual needs.

[0223] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present application, and such modifications or substitutions should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A path determination method, characterized in that: The method is performed by a first controller, the first controller is connected to a plurality of switching structures, the switching network formed by connecting the plurality of switching structures has a plurality of first ports and a plurality of second ports, the first ports and the second ports belong to different switching structures, and any of the first ports can be connected to any of the second ports; The method comprises: Determine a port group set from a plurality of port groups; the port group comprises: one of the first port and one of the second port for data to be exchanged, and the first port and the second port in different port groups are different; the port group set comprises: the first port and the second port both belong to at least two port groups of different switching structures; In the switching network, paths corresponding to the respective port groups in the port group set are determined in parallel; the path corresponding to any port group is: a path between the first port and the second port in any port group; and paths corresponding to different port groups are independent of each other; In a portion of the switching network that is outside the determined path, a path corresponding to the port group for which no corresponding path has been determined is determined.

2. The method according to claim 1, characterized in that The plurality of first ports belong to r first switch structures among the plurality of switch structures; The r first exchange structures are divided into j structure groups; j≥1, when j>1, the first j-1 structure groups in the j structure groups all include k first exchange structures, and the number of the first exchange structures in the jth structure group is less than or equal to k; r>k>1; Each of the first ports in the port group set belongs to one of the j structure groups.

3. The method according to claim 2, characterized in that The port group set includes: a first port of each of the first switching structures in the one structure group.

4. The method according to claim 2 or 3, characterized in that: The determining of a port group set from a plurality of port groups comprises: Determine at least two initial port groups from the multiple port groups; the first ports in the at least two initial port groups belong to a first part of a first switching structure in the one structure group, and the first port and the second port in the at least two initial port groups belong to different switching structures; Based on the at least two initial port groups, at least one newly added port group is determined in the multiple port groups; the first port in the newly added port group belongs to the second part of the first switching structure in the one structure group; the first port and the second port in the at least two initial port groups and the at least one newly added port group belong to different switching structures; The port group set includes: the at least two initial port groups and the at least one newly added port group.

5. The method according to claim 4, characterized in that The method satisfies at least one of the following conditions: The first part of the first switching structure includes: the first i first switching structures in the one structure group; i≥2, the first ports in the at least two initial port groups belong to the first i first switching structures in a one-to-one correspondence; The second part of the first switching structure includes: the (i+1)th first switching structure in the one structure group; the at least one newly added port group includes: the first port belongs to a port group of the (i+1)th first switching structure.

6. The method according to any one of claims 2 to 5, characterized in that: Determining, in a portion of the switching network outside the determined path, a path corresponding to the port group for which no corresponding path has been determined, comprises: Determine a plurality of first remaining port groups in the plurality of port groups; the first port in the first remaining port group belongs to the one structure group, and the first remaining port group is different from the port group in the determined port group set; Determine the new port group set from the plurality of first remaining port groups to obtain a first port group set; In a portion of the switching network outside the determined path, paths corresponding to the respective port groups in the first port group set are determined in parallel.

7. The method according to any one of claims 2 to 6, characterized in that: Determining, in a portion of the switching network outside the determined path, a path corresponding to the port group for which no corresponding path has been determined, comprises: Determine a plurality of second remaining port groups from the plurality of port groups; the first port in the second remaining port group belongs to another structure group from the j structure groups, and the first port of the another structure group is different from the first port in the determined port group set; Determine a new port group set from the plurality of second remaining port groups to obtain a second port group set; In a portion of the switching network outside the determined path, paths corresponding to the respective port groups in the second port group set are determined in parallel.

8. The method according to claim 7, characterized in that The another structure group is a structure group next to the one structure group among the j structure groups.

9. The method according to any one of claims 1 to 8, characterized in that: The determining, in a portion of the switching network outside the determined path, a path corresponding to the port group for which no corresponding path has been determined, comprises: When there are at least two other port groups other than the port group set in the plurality of port groups, performing path determination operations on the at least two other port groups in sequence; The path determination operation performed on any other port group among the at least two other port groups includes: determining a path corresponding to any other port group in a portion of the switching network that is outside the determined path.

10. The method according to any one of claims 1 to 9, characterized in that: The plurality of first ports belong to r first switch structures among the plurality of switch structures; Before determining a port group set from a plurality of port groups, the method further includes: Obtaining information of the multiple port groups; The information of the plurality of port groups is arranged according to the order of the first switch structures to which the first ports in the port group belong in the r first switch structures.

11. The method according to any one of claims 1 to 10, characterized in that: The method further comprises: After determining the paths respectively corresponding to the plurality of port groups, the paths respectively corresponding to the plurality of port groups are configured in the switching network.

12. The method according to any one of claims 1 to 11, characterized in that: The plurality of switching structures include: at least one switching structure of an optical switching structure and an electrical switching structure.

13. A path determination device, characterized in that: The path determination device belongs to a first controller, the first controller is connected to a plurality of switching structures, the switching network formed by the plurality of switching structures has a plurality of first ports and a plurality of second ports, the first ports and the second ports belong to different switching structures, and any of the first ports can be connected to any of the second ports; The path determination device comprises: A first determining module is used to determine a port group set from a plurality of port groups; the port group includes: one of the first port and one of the second port for data to be exchanged, and the first port and the second port in different port groups are different; the port group set includes: the first port and the second port both belong to at least two port groups of different switching structures; A second determination module is used to determine, in the switching network, paths corresponding to the respective port groups in the port group set in parallel; the path corresponding to any port group is: a path between the first port and the second port in any port group; and the paths corresponding to different port groups are independent of each other; The third determination module is used to determine, in a portion of the switching network outside the determined path, a path corresponding to the port group for which a corresponding path has not been determined.

14. The path determination device according to claim 13, characterized in that: The plurality of first ports belong to r first switch structures among the plurality of switch structures; The r first exchange structures are divided into j structure groups; j≥1, when j>1, the first j-1 structure groups in the j structure groups all include k first exchange structures, and the number of the first exchange structures in the jth structure group is less than or equal to k; r>k>1; Each of the first ports in the port group set belongs to one of the j structure groups.

15. The path determination device according to claim 14, characterized in that: The port group set includes: a first port of each of the first switching structures in the one structure group.

16. The path determination device according to claim 14 or 15, characterized in that: The first determining module is used for: Determine at least two initial port groups from the multiple port groups; the first ports in the at least two initial port groups belong to a first part of a first switching structure in the one structure group, and the first port and the second port in the at least two initial port groups belong to different switching structures; Based on the at least two initial port groups, at least one newly added port group is determined in the multiple port groups; the first port in the newly added port group belongs to the second part of the first switching structure in the one structure group; The first port and the second port in the at least two initial port groups and the at least one newly added port group belong to different switching structures; The port group set includes: the at least two initial port groups and the at least one newly added port group.

17. The path determination device according to claim 16, characterized in that: The path determination device satisfies at least one of the following conditions: The first part of the first switching structure includes: the first i first switching structures in the one structure group; i≥2, the first ports in the at least two initial port groups belong to the first i first switching structures in a one-to-one correspondence; The second part of the first switching structure includes: the (i+1)th first switching structure in the one structure group; the at least one newly added port group includes: the first port belongs to a port group of the (i+1)th first switching structure.

18. The path determination device according to any one of claims 14 to 17, characterized in that: The third determination module is used for: Determine a plurality of first remaining port groups in the plurality of port groups; the first port in the first remaining port group belongs to the one structure group, and the first remaining port group is different from the port group in the determined port group set; Determine the new port group set from the plurality of first remaining port groups to obtain a first port group set; In a portion of the switching network outside the determined path, paths corresponding to the respective port groups in the first port group set are determined in parallel.

19. The path determination device according to any one of claims 14 to 18, characterized in that: The third determination module is used for: Determine a plurality of second remaining port groups from the plurality of port groups; the first port in the second remaining port group belongs to another structure group from the j structure groups, and the first port of the another structure group is different from the first port in the determined port group set; Determine a new port group set from the plurality of second remaining port groups to obtain a second port group set; In a portion of the switching network outside the determined path, paths corresponding to the respective port groups in the second port group set are determined in parallel.

20. The path determination device according to claim 19, characterized in that: The another structure group is a structure group next to the one structure group among the j structure groups.

21. The path determination device according to any one of claims 13 to 20, characterized in that: The third determination module is used for: When there are at least two other port groups other than the port group set in the plurality of port groups, performing path determination operations on the at least two other port groups in sequence; The path determination operation performed on any other port group among the at least two other port groups includes: determining a path corresponding to any other port group in a portion of the switching network that is outside the determined path.

22. The path determination device according to any one of claims 13 to 21, characterized in that: The plurality of first ports belong to r first switch structures among the plurality of switch structures; The path determination device also includes: An acquisition module, used to acquire information of the multiple port groups; An arrangement module is used to arrange the information of the plurality of port groups according to the order of the first switch structure to which the first port in the port group belongs in the r first switch structures.

23. The path determination device according to any one of claims 13 to 22, characterized in that: The path determination device also includes: A configuration module is used to configure the paths corresponding to the multiple port groups in the switching network after determining the paths corresponding to the multiple port groups.

24. The path determination device according to any one of claims 13 to 22, characterized in that: The plurality of switching structures include: at least one switching structure of an optical switching structure and an electrical switching structure.

25. A path determination device, characterized in that: include: A processor and a memory, wherein the memory stores a program, and the processor is used to execute the program stored in the memory to implement the path determination method described in any one of claims 1 to 12.

26. A chip, characterized in that: The chip includes a programmable logic circuit and / or program instructions, and when the chip is running, it is used to implement the path determination method according to any one of claims 1 to 12.

27. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores instructions, and when the instructions are executed on a computer, the computer executes the path determination method according to any one of claims 1 to 12.

28. A switching node, characterized in that: include: a first controller and a plurality of switch fabrics; The first controller is connected to a plurality of switching structures, the switching network formed by the plurality of switching structures has a plurality of first ports and a plurality of second ports, the first ports and the second ports belong to different switching structures, and any of the first ports is connected to any of the second ports; the first controller is used to execute any of the methods described in claims 1 to 12.

29. A communication system, characterized in that: include: a switching node, a plurality of first communication nodes, and a plurality of second communication nodes; The switching node is the switching node according to claim 28; The plurality of first communication nodes are connected to the plurality of first ports in the switching node in a one-to-one correspondence; The plurality of second communication nodes are connected to the plurality of second ports in the switching node in a one-to-one correspondence.

Citation Information

Patent Citations

  • Port configuration method and communication equipment

    CN110233799A

  • Internal active detection path planning method and device for virtual private network of cloud network

    CN113296894A

  • Path determination method and device

    CN113747277A

  • Transmission path aggregation method and device, network switching equipment and storage medium

    CN115225479A

  • Data center failure management in an SDN deployment using border gateway node control

    US20200336420A1