Disclosure of Invention
The application provides a path determining method, a path determining device and a path determining system, which can solve the problem that a path determining mode of a controller is single, and the technical scheme is as follows:
In a first aspect, the present application provides a path determining method, where the method includes that a first controller determines a port group set in a plurality of port groups, then determines paths corresponding to respective port groups in the port group set in parallel in a switching network, and determines paths corresponding to the port groups for which no corresponding paths are determined in a portion of the switching network located outside the determined paths. The first controller is connected with a plurality of switching structures, the switching network formed by connecting the switching structures is provided with 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 first port can be connected with any second port. The switching network may be a claus (clos) network or other network different from the clos network. The port group comprises a first port and a second port which are used for exchanging data, the first port and the second port in different port groups are different, the port group set comprises at least two port groups, the first port and the second port belong to different switch structures, the corresponding path of 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 mutually independent.
In the application, the first controller determines the paths corresponding to the port groups in the port group set, and then determines the paths corresponding to the port groups which do not determine the corresponding paths in the part of the switching network which is positioned outside the determined paths. It can be seen that the manner in which the first controller determines the path is different from the manner in which the controller determines the path in the related art, and thus, the manner in which the controller determines the path is enriched.
In addition, since the first port and the second port of the port group in the port group set belong to different switch structures, paths corresponding to the port groups in the port group set must be independent from each other in some switch networks (such as a clos network). Therefore, the first controller does not need to re-determine these paths. And the first controller subsequently determines other paths at the part other than the determined paths, and even if the subsequently determined paths need to be redetermined, the paths corresponding to the port groups in the port group set are not influenced, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. Therefore, paths needing to be redetermined are reduced, and the efficiency of determining mutually independent paths by the first controller is improved. And, the paths corresponding to the port groups in the parallel determination port group set are more efficient than the paths corresponding to the port groups in the serial determination port group set. The method can ensure that the reusability of the hardware circuit is maximized, and has good hardware expansibility.
Optionally, the plurality of first ports belong to r first switch structures in the plurality of switch structures, the r first switch structures are divided into j structure groups, j is greater than or equal to 1, when j is greater than 1, the first j-1 structure groups in the j structure groups all comprise k first switch structures, the number of the first switch structures in the j structure groups is smaller than or equal to k, r is greater than k and is greater than 1, and each first port in the port group set belongs to one structure group in the j structure groups.
Further, in the case that 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.
It is understood that the number of port groups in the port group set may be greater than 2, which is not limited in the present application. In this case, when the first controller determines the port group set from the plurality of port groups, a part of the port groups in the port group set may be determined first from the plurality of port groups, and then another part of the port groups in the port group set may be determined based on the part of the port groups, so that the port groups in the port group set may be determined step by step.
For example, the first controller may determine at least two initial port groups among the plurality of port groups, and then determine at least one new port group based on the at least two initial port groups. The resulting port group set includes the at least two initial port groups and the at least one additional port group. The first ports in the at least two initial port groups belong to a first part of a first switching structure in one structure group, the first ports and the second ports in the at least two initial port groups belong to different switching structures, the first ports in the newly added port groups belong to a second part of the first switching structure in one structure group, and the first ports and the second ports in the at least two initial port groups and the at least one newly added port group belong to different switching structures.
The first portion first switch fabric and the second portion first switch fabric may be any two portions of the one fabric group. Optionally, the first part of the first switching structures comprise the first i first switching structures in one structure group, i is more than or equal to 2, the first ports in the at least two initial port groups are in one-to-one correspondence and belong to the first i first switching structures, and the second part of the first switching structures comprise the (i+1) th first switching structure in one structure group, and the at least one newly added port group comprises one port group of which the first ports belong to the (i+1) th first switching structure.
Optionally, when determining that the path corresponding to the port group of the corresponding path is not determined in the portion, located outside the determined path, of the switch network, the first controller may continuously determine a new port group set in the port groups associated with the one structure group, and determine the paths corresponding to the port groups in the port group set in parallel, so that the efficiency of determining the path may be further improved.
In an example, when the first controller determines that the path corresponding to the port group of the corresponding path is not determined in a portion of the switch network located outside the determined path, the first controller may determine a plurality of first remaining port groups of the plurality of port groups, determine a new port group set in the plurality of first remaining port groups, and obtain a first port group set, and then determine, in parallel, paths corresponding to respective port groups in the first port group set in a portion of the switch network located outside the determined path. Wherein, the first port in the first remaining port group and the first port in the port group set belong to the above-mentioned one structure 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 may further repeatedly perform this operation, so as to sequentially obtain paths corresponding to port groups in the plurality of first port group sets.
Alternatively, when the first controller determines that the path corresponding to the port group of the corresponding path is not determined in the portion, which is located outside the determined path, of the switch network, the first controller may continuously determine a new port group set in the port groups associated with other structure groups different from the one structure group, and determine the paths corresponding to the port groups in the port group set in parallel, so that the efficiency of determining the path may be further improved.
In an example, when determining that the path corresponding to the port group of the determined path is not determined in the portion of the switch network located outside the determined path, the first controller may further determine a plurality of second remaining port groups of the plurality of port groups, determine a new port group set in the plurality of second remaining port groups to obtain a second port group set, and then determine, in parallel, paths corresponding to respective port groups in the second port group set in the portion of the switch network located outside the determined path. The first ports in the second remaining port group and the first ports in the port group set belong to different structure groups, and the first ports in the structure group where the first ports in the second remaining port group are located are different from the first ports in the determined port group set. For example, the first port in the second remaining port group belongs to another structure group other than the above-mentioned one structure group, and the other structure group is a structure group next to the one structure group in the j structure groups. Of course, the other structure group may not be the next structure group of the one structure group, for example, the other structure group may be the next structure group of the one structure group. 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.
In view of the foregoing, the first controller may sequentially find the port group set in a plurality of port groups associated with a fabric group (a first port in the port group associated with each fabric group belongs to a switch fabric in the fabric group). And when the first controller searches the port group sets in the port groups associated with each structure group, the first controller can search a plurality of port group sets in sequence, and after searching one port group set, the first controller determines paths corresponding to the plurality of port group sets in parallel.
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 (the port groups of which the corresponding paths are not determined) in a portion other than the paths in the switch network.
For example, when at least two other port groups except the port group set exist in the plurality of port groups, the first controller may determine paths corresponding to the at least two other port groups in at least one of parallel and serial.
When the first controller determines paths corresponding to a plurality of other port groups in a serial manner, the first controller can sequentially execute path determination operations on the plurality of other port groups, wherein the path determination operations executed on any other port group comprise determining the paths corresponding to any other port group in a part, which is positioned outside the determined paths, of the switching network.
When the first controller determines paths corresponding to a plurality of other port groups in a parallel manner, if the determined paths corresponding to the plurality of other port groups are not independent of each other, the first controller needs to re-determine the paths corresponding to the plurality of other port groups until the determined paths corresponding to the plurality of other port groups are independent of each other.
Optionally, the plurality of first ports belong to r first switch fabrics in the plurality of switch fabrics, and before determining a port group set in the plurality of port groups, the first controller may further acquire information of the plurality of port groups, and arrange the information of the plurality of port groups according to the order of the first switch fabrics to which the first ports belong in the port groups in the r first switch fabrics. The first controller arranges the information of the plurality of port groups according to the sequence of the first switch structures of the port groups, to which the first ports belong, in the r first switch structures, so that the first controller can conveniently execute subsequent operations in the path determining method based on the information.
Optionally, after determining the paths respectively corresponding to the plurality of port groups, the first controller may further configure the paths respectively corresponding to the plurality of port groups in the switch network. It will be appreciated that the first controller may not be required to configure paths corresponding to the plurality of port groups in the switching network, but may instruct other devices or apparatuses to perform configuring paths corresponding to the plurality of port groups.
The multiple switch fabrics in the present application may be all optical switch fabrics, or all electrical switch fabrics, or one part of the switch fabrics is an optical switch fabric, and the other part of the switch fabrics is an electrical switch fabric. In other words, the plurality of switch fabrics includes at least one of an optical switch fabric and an electrical switch fabric. The embodiment of the present application is not limited thereto.
In a second aspect, a path determining device is provided, the path determining device belongs to a first controller, the first controller is connected with a plurality of switch structures, a switch network formed by connecting the switch structures is provided with a plurality of first ports and a plurality of second ports, the first ports and the second ports belong to different switch structures, any one of the first ports can be connected with any one of the second ports, and the path determining device comprises a first determining module, a second determining module and a third determining module.
The first determining module is used for determining a port group set in a plurality of port groups, the port groups comprise a first port and a second port of data to be exchanged, the first port and the second port in different port groups are different, the port group set comprises at least two port groups of which the first port and the second port belong to different switch structures, the second determining module is used for determining paths corresponding to all port groups in the port group set in parallel in the switch network, the paths corresponding to any port group are paths between the first port and the second port in any port group, paths corresponding to different port groups are independent, and the third determining module is used for determining paths corresponding to the port groups, of which the corresponding paths are not determined, in a part, outside the determined paths, of the switch network.
In the application, the first controller determines the paths corresponding to the port groups in the port group set, and then determines the paths corresponding to the port groups which do not determine the corresponding paths in the part of the switching network which is positioned outside the determined paths. It can be seen that the manner in which the first controller determines the path is different from the manner in which the controller determines the path in the related art, and thus, the manner in which the controller determines the path is enriched.
In addition, since the first port and the second port of the port group in the port group set belong to different switch structures, paths corresponding to the port groups in the port group set must be independent from each other in some switch networks (such as a clos network). Therefore, the first controller does not need to re-determine these paths. And the first controller subsequently determines other paths at the part other than the determined paths, and even if the subsequently determined paths need to be redetermined, the paths corresponding to the port groups in the port group set are not influenced, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. Therefore, paths needing to be redetermined are reduced, and the efficiency of determining mutually independent paths by the first controller is improved. And, the paths corresponding to the port groups in the parallel determination port group set are more efficient than the paths corresponding to the port groups in the serial determination port group set. The method can ensure that the reusability of the hardware circuit is maximized, and has good hardware expansibility.
Optionally, the plurality of first ports belong to r first switch structures in the plurality of switch structures, the r first switch structures are divided into j structure groups, j is greater than or equal to 1, when j is greater than 1, the first j-1 structure groups in the j structure groups all comprise k first switch structures, the number of the first switch structures in the j structure groups is smaller than or equal to k, r is greater than k and is greater than 1, and each first port in the port group set belongs to one structure group in the j structure groups.
Further, in the case that 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.
It is understood that the number of port groups in the port group set may be greater than 2, which is not limited in the present application. In this case, when the first controller determines the port group set from the plurality of port groups, a part of the port groups in the port group set may be determined first from the plurality of port groups, and then another part of the port groups in the port group set may be determined based on the part of the port groups, so that the port groups in the port group set may be determined step by step.
For example, the first controller may determine at least two initial port groups among the plurality of port groups, and then determine at least one new port group based on the at least two initial port groups. The resulting port group set includes the at least two initial port groups and the at least one additional port group. The first ports in the at least two initial port groups belong to a first part of a first switching structure in one structure group, the first ports and the second ports in the at least two initial port groups belong to different switching structures, the first ports in the newly added port groups belong to a second part of the first switching structure in one structure group, and the first ports and the second ports in the at least two initial port groups and the at least one newly added port group belong to different switching structures.
The first portion first switch fabric and the second portion first switch fabric may be any two portions of the one fabric group. Optionally, the first part of the first switching structures comprise the first i first switching structures in one structure group, i is more than or equal to 2, the first ports in the at least two initial port groups are in one-to-one correspondence and belong to the first i first switching structures, and the second part of the first switching structures comprise the (i+1) th first switching structure in one structure group, and the at least one newly added port group comprises one port group of which the first ports belong to the (i+1) th first switching structure.
Optionally, when determining that the path corresponding to the port group of the corresponding path is not determined in the portion, which is located outside the determined path, of the switch network, the third determining module may continuously determine a new port group set in the port groups associated with the one structure group, and determine the paths corresponding to the port groups in the port group set in parallel, so that the efficiency of determining the path may be further improved.
The third determining module may determine a plurality of first remaining port groups of the plurality of port groups when determining that the path corresponding to the port group of the corresponding path is not determined in a portion of the switch network located outside the determined path, and determine a new port group set from the plurality of first remaining port groups to obtain a first port group set, and then determine paths corresponding to respective port groups in the first port group set in parallel in a portion of the switch network located outside the determined path. Wherein, the first port in the first remaining port group and the first port in the port group set belong to the above-mentioned one structure group, and the first remaining port group is different from the port group in the determined port group set. On this basis, the third determining module may further repeatedly perform this operation, so as to sequentially obtain paths corresponding to the port groups in the plurality of first port group sets.
In another embodiment, when the third determining module determines, in a portion of the switch network that is located outside the determined path, a path corresponding to the port group of the corresponding path is not determined, the third determining module may continuously determine a new port group set in the port groups associated with other structure groups different from the one structure group, and determine, in parallel, a path corresponding to the port group in the port group set, so that efficiency of determining the path may be further improved.
In an example, when determining that the path corresponding to the port group of the determined path is not determined in the portion of the switch network located outside the determined path, the third determining module may further determine a plurality of second remaining port groups of the plurality of port groups, determine a new port group set in the plurality of second remaining port groups to obtain a second port group set, and then determine, in parallel, paths corresponding to respective port groups in the second port group set in the portion of the switch network located outside the determined path. The first ports in the second remaining port group and the first ports in the port group set belong to different structure groups, and the first ports in the structure group where the first ports in the second remaining port group are located are different from the first ports in the determined port group set. For example, the first port in the second remaining port group belongs to another structure group other than the above-mentioned one structure group, and the other structure group is a structure group next to the one structure group in the j structure groups. Of course, the other structure group may not be the next structure group of the one structure group, for example, the other structure group may be the next structure group of the one structure group. 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.
In view of the foregoing, the first controller may sequentially find the port group set in a plurality of port groups associated with a fabric group (a first port in the port group associated with each fabric group belongs to a switch fabric in the fabric group). And when the first controller searches the port group sets in the port groups associated with each structure group, the first controller can search a plurality of port group sets in sequence, and after searching one port group set, the first controller determines paths corresponding to the plurality of port group sets in parallel.
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 (the port groups of which the corresponding paths are not determined) in a portion other than the paths in the switch network.
For example, when there are at least two other port groups in the plurality of port groups other than the port group set, the third determining module may be configured to determine paths corresponding to the at least two other port groups in at least one of parallel and serial.
When the third determining module determines paths corresponding to a plurality of other port groups in a serial manner, the third determining module may sequentially perform path determining operations for the plurality of other port groups, where the path determining operations performed for any other port group include determining a path corresponding to any other port group in a portion of the switch network that is located outside the determined path.
When the third determining module determines paths corresponding to the plurality of other port groups in a parallel manner, if the determined paths corresponding to the plurality of other port groups are not independent of each other, the third determining module needs to re-determine the paths corresponding to the plurality of other port groups until the determined paths corresponding to the plurality of other port groups are independent of each other.
Optionally, the plurality of first ports belong to r first switch structures in the plurality of switch structures, and the path determining device further comprises an acquisition module and an arrangement module. The device comprises an acquisition module, an arrangement module and a data processing module, wherein the acquisition module is used for acquiring information of a plurality of port groups, and the arrangement module is used for arranging the information of the plurality of port groups according to the sequence of the first switch structures of the port groups in the first switch structures of the first port groups in the r first switch structures. The first controller arranges the information of the plurality of port groups according to the sequence of the first switch structures of the port groups, to which the first ports belong, in the r first switch structures, so that the first controller can conveniently execute subsequent operations in the path determining method based on the information.
Optionally, the path determining device may further include a configuration module, configured to configure paths respectively corresponding to the plurality of port groups in the switch network after determining paths respectively corresponding to the plurality of port groups. It will be appreciated that the first controller may not be required to configure paths corresponding to the plurality of port groups in the switching network, but may instruct other devices or apparatuses to perform configuring paths corresponding to the plurality of port groups.
The multiple switch fabrics in the present application may be all optical switch fabrics, or all electrical switch fabrics, or one part of the switch fabrics is an optical switch fabric, and the other part of the switch fabrics is an electrical switch fabric. In other words, the plurality of switch fabrics includes at least one of an optical switch fabric and an electrical switch fabric. The embodiment of the present application is not limited thereto.
In a third aspect, the present application provides a path determining apparatus, including a processor and a memory, where the memory stores a program, and the processor is configured to execute the program stored in the memory, so as to implement the path determining method according to any one of the designs of the first aspect.
In a fourth aspect, the present application provides a chip comprising programmable logic circuits and/or program instructions for implementing a path determination method according to any one of the designs of the first aspect when the chip is run.
In a fifth aspect, the present application provides a computer readable storage medium having instructions stored therein which, when run on a computer, cause the computer to perform the path determination method according to any one of the designs of the first aspect.
In a sixth aspect, the application provides a computer program product comprising instructions which, when run on a computer, cause the computer to perform the path determination method of any one of the designs of the first aspect.
In a seventh aspect, the present application provides a switching node, including a first controller and a plurality of switching fabrics, where the first controller is connected to the plurality of switching fabrics, and a switching network formed by connecting the plurality of switching fabrics has a plurality of first ports and a plurality of second ports, where the first ports and the second ports belong to different switching fabrics, and any one of the first ports is connected to any one of the second ports, and the first controller is configured to execute the method according to any one of the designs of the first aspect.
In an eighth aspect, the present application provides a communication system, which includes a switching node, a plurality of first communication nodes and a plurality of second communication nodes, where the switching node is the switching node in the seventh aspect, the plurality of first communication nodes are connected in one-to-one correspondence with a plurality of first ports in the switching node, and the plurality of second communication nodes are connected in one-to-one correspondence with a plurality of second ports in the switching node.
The effects of the third aspect to the eighth aspect may refer to the effects of the corresponding designs of the first aspect and the second aspect, and the present application is not described herein.
Detailed Description
In order to make the principles and technical solutions of the present application more apparent, embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
The present application provides a communication system, which may be an optical transmission network (optical transmission network, OTN), a wireless network system, a data center, etc. The communication system comprises a plurality of nodes connected into a communication network. The plurality of nodes includes a plurality of communication nodes and at least one switching node. Data may be exchanged between the communication nodes via the switching node. The communication node may be a network card, a terminal device, a server, etc., and the switching node may be a router, a switch, etc. The node may be the device itself or may be a part of the device.
Illustratively, as shown in fig. 1, a first communication node 01 and a second communication node 02 in a communication system are connected through a switching node 03, and the first communication node 01 and the second communication node 02 can exchange data through the switching node 03. The first communication node 01 and the second communication node 02 may belong to the same device or may belong to different devices, which is not limited in the present application.
The switching nodes may exchange data in an electrical or Optical Switch (OSW) manner.
In an electrical switching approach, a communication node that needs to transmit data may generate an electrical signal carrying the data, convert the electrical signal to an optical signal, and transmit the optical signal to a port of the switching node. The switching node may, upon receiving the optical signal from one port, reconvert the optical signal into an electrical signal, reconvert the electrical signal into an optical signal, and transmit the optical signal from another port to another communication node. The other communication node may convert the received optical signal into an electrical signal and extract data carried by the electrical signal. In this way, it is achieved that one communication node exchanges data with another communication node via the switching node. However, the electrical switching method needs to perform photoelectric conversion and/or electro-optical conversion at the node, and the photoelectric conversion and the electro-optical conversion both have more energy consumption and bring about larger time delay. Meanwhile, under the condition that data are exchanged between communication nodes through the multi-stage switching nodes, each stage of switching node brings about larger time delay, and the time delay brought by each stage of switching node has uncertainty, so that the time delay brought by the whole multi-stage switching node has great uncertainty.
In the manner of optical switching, a communication node that needs to transmit data may generate an optical signal carrying the data and transmit the optical signal to a port of the switching node. The switching node may transmit an optical signal received from the port from another port to another communication node. The further communication node may extract the data carried by the received optical signal. In this way, it is achieved that one communication node exchanges data with another communication node via the switching node. It can be seen that the optical switching does not require photoelectric conversion and/or electro-optical conversion at the node, and therefore, no more energy consumption and no longer time delay are caused by the photoelectric conversion and the electro-optical conversion.
Further, in the case where data is exchanged between communication nodes through a switching node, the communication node that transmits the data is referred to as a transmitting end, and the communication node that receives the data is referred to as a receiving end. Since one or more transmitting ends and receiving ends can exchange data through the same switching node, a receiving end collision (also referred to as a port collision) occurs when a plurality of transmitting ends exchange data with one receiving end through one switching node at the same time.
In this case, the switching node for switching data by using the electrical switching manner buffers the electrical signal transmitted from one transmitting terminal, and transmits the optical signal to the receiving terminal based on the electrical signal transmitted from the other transmitting terminal. After the optical signal is sent, the switching node sends the optical signal to the receiving end based on the buffered electrical signal.
However, the switching node that uses the optical switching method to exchange data does not have the capability of buffering optical signals, and if a receiving end conflict occurs, communication between the sending end and the receiving end can be affected. Therefore, the switching node adopting the optical switching mode to exchange data needs to adopt a certain mechanism to avoid the occurrence of the condition of conflict of the receiving end.
By way of example, a manner in which receiver collisions are avoided in the optical switching manner will be described below in connection with fig. 2.
As shown in fig. 2, the switching node 03 for data switching by means of optical switching comprises a plurality of switching fabrics 031 connected to form a switching network. The switching fabric 031 may include one crossbar array (crossbar) or a plurality of crossbar arrays. The crossbar array is non-blocking and enables connection to be established between any two ports. As shown in fig. 3, the switching network to which the switching fabrics 031 are connected may be divided into X input stage switching fabrics 031 (also called input switching modules (input switch module, ISM)), Y intermediate stage switching fabrics 031 (also called intermediate switching modules (CENTRAL SWITCH modules, CSMs)) and X output stage switching fabrics 031 (also called output switching modules (output switch module, OSMs)). X and Y are integers greater than or equal to 2. The switching network in the present application may be a claus (or a different network than a clos) network, which is a multi-stage switching network. The clos network shown in fig. 3 is a three-stage (clos) network, which may also be referred to as a symmetric three-stage clos network.
Each ISM has Z ingress ports and Y egress ports, each CSM has X ingress ports and X egress ports, and each OSM has Y ingress ports and Z egress ports. The switching network may be denoted by the symbol C (Z, Y, X). The output ports of the ISMs connect to the input ports of the CSM, and the output ports of the different ISMs connect to the different input ports of the CSM. And, m output ports of each ISM are connected with m input ports of CSM in 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. And, m ingress ports of each OSM are connected with m egress ports of CSM in one-to-one correspondence.
It can be seen that there is and only one link between each ISM and each CSM and there is and only one link between each CSM and each OSM. Any one of the ingress ports of the X ISM can be connected to any one of the egress ports of the X OSM. It will be appreciated that the inlet port may also be an outlet port and the outlet port may also be an inlet port, since the optical path is reversible. If X Y ingress ports of X ISM are referred to as a plurality of first ports and X Y egress ports of X OSM are referred to as a plurality of second ports, then any one first port is connected to any one second port. It can be seen that the switching network formed by connecting the switch fabrics 031 has a plurality of first ports and a plurality of second ports, where the first ports and the second ports belong to different switch fabrics, and any first port and any second port can be connected.
With continued reference to fig. 2, the switching node includes, in addition to the plurality of switching fabrics 031, a first controller 032 and a second controller 033 (the switching node may also not include the second controller 033, and in this case, the switching node includes the first controller 032 and the plurality of switching fabrics 031). The first controller 032 is connected to the plurality of switch fabrics 031 and the second controller 033, and the second controller 033 is further connected to a plurality of groups of communication nodes, each group of communication nodes includes two communication nodes, and the two communication nodes are respectively connected to a first port and a second port of the switch network. Only one set of communication nodes (first communication node 01 and second communication node 02) is shown in fig. 2, and the connection relationship between the set of communication nodes and ports of the switching network is not shown.
Each group of communication nodes may send a switching request to the second controller 033 when it is required to switch data via the switching node 03. The second controller 033 may determine a switching time for the group of communication nodes to switch data based on the switching request. The communication nodes determined by the second controller 033 to exchange data at the exchange time may have at least two sets of communication nodes, and the at least two sets of communication nodes are respectively connected to different first ports and different second ports of the exchange network.
After determining the switching time, the second controller 033 may send a configuration instruction to the first controller 031, where the configuration instruction is configured to instruct at least two port groups corresponding to the at least two groups of communication nodes one to one, where each port group includes a first port and a second port connected to a corresponding group of communication nodes. The at least two groups of communication nodes are respectively connected with different first ports and different second ports of the switching network, so that the first ports and the second ports in the at least two groups of ports are different. The first controller 031 may determine a path corresponding to each port group in the switching network based on the received configuration instruction, 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.
After the paths corresponding to the at least two port groups are configured in the switching network, the second controller 033 also needs to send switching responses 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 at the switching time through the paths corresponding to the corresponding port groups respectively.
As can be seen from the foregoing, in the switching node adopting the optical switching method, the second controller needs to determine the switching time of each group of communication nodes for switching data, and the first port and the second port in the port group corresponding to the different groups of communication nodes for switching data at the same switching time are different, so that the receiving end collision (port collision) is avoided.
In addition, as can be seen from the foregoing, the efficiency of the process of determining the path corresponding to the port group by the first controller in the switching node (also referred to as the mapping process) has a great influence on the efficiency of exchanging data between the communication nodes, so that improving the efficiency of this process is important to improving the performance of the switching node.
In the related art, the first controller determines paths corresponding to the at least two port groups in parallel. In order to avoid collisions of data exchanged by different groups of communication nodes in the communication network, paths corresponding to different groups of ports are generally required to be independent from each other.
For example, the first controller may determine paths corresponding to the plurality of port groups in parallel using a matrix decomposition method. In this method, a plurality of port groups are represented by a matrix P:
wherein the first row and the mth column of the matrix P represent the first port in the mth port group in the plurality of port groups, and the second row and the mth column of the matrix P represent the second port in the mth port group, and m is larger than or equal to 1.
For example, suppose a switching network includes 3 ISMs, 3 OSMs, and 4 CSMs.
Wherein the first ports 1,2, 3, 4 belong to the 1 st ISM, the first ports 5, 6, 7, 8 belong to the 2 nd ISM, and the first ports 8, 10, 11, 12 belong to the third ISM. The second ports 1,2, 3, 4 belong to the 1 st OSM, the first ports 5, 6, 7, 8 belong to the 2 nd OSM, and the first ports 8, 10, 11, 12 belong to the third OSM.
The matrix P may be converted into a traffic matrix:
The nth row, mth, in the traffic matrix H represents the number of port groups for which the first port belongs to the nth ISM and the second port belongs to the mth OSM.
For example, a port group where the first port belongs to the 1 st ISM and the second port belongs to the 1 st OSM includes port groups (1, 3), it can be seen that the first port belongs to the 1 st ISM and the number of port groups where the second port belongs to the 1 st OSM is 1. Thus, the element of row 1, column 1 in the traffic matrix is 1.
For another example, a port group where the first port belongs to the 1 st ISM and the second port belongs to the 2 nd OSM includes port groups (3, 7) and port groups (4, 6), it can be seen that the first port belongs to the 1 st ISM and the number of port groups where the second port belongs to the 2 nd OSM is 2. Thus, the element of row 1, column 2in the traffic matrix is 2.
Further, the corresponding assignment matrix may be generated in parallel from the rows of elements of the traffic matrix.
For example, the assignment matrix generated from row 1 elements of the traffic matrix is:
The assignment matrix generated from row 2 elements of the traffic matrix is:
the assignment matrix generated from row 3 elements of the traffic matrix is:
The nth row and mth column elements in assignment matrix C1 represent the number of port groups connected by the nth CSM with the first port belonging to the 1 st ISM and the second port belonging to the mth OSM. For example, taking the 1 st row and 1 st column element of C1 as an example, the value of this element is 1, meaning that the connection is through the 1 st CSM and the first port belongs to the 1 st ISM and the second port belongs to the 1 st OSM port group by 1. If the element in the assignment matrix is greater than 1, then it is stated that the connection is through the same CSM and that the first port belongs to the same ISM and the number of port groups that the second port belongs to the same OSM is greater than 1. In which case port collisions may occur. Therefore, to avoid port collisions, an element in the assignment matrix is either 0 or 1.
After generating the assignment matrix from the rows of elements in the traffic matrix, the two assignment matrices may be added. If the added matrix contains elements greater than 1, it is stated that the connection is through the same CSM, the first port belongs to a different ISM, and the number of port groups of the second port belongs to the same OSM is greater than 1, in which case a port collision may occur. Therefore, at least one of the two assignment matrices needs to be adjusted so that the matrix resulting from the addition of the two assignment matrices does not contain elements greater than 1. And then adding the matrix obtained by adding the two assignment matrices with the next assignment matrix, and repeating the steps until all the assignment matrices are added, wherein the matrix obtained by adding all the assignment matrices does not contain elements larger than 1.
For example, the processing steps may be performed,It can be seen that there are a number of elements greater than 1 in the matrix resulting from the addition of C1 and C2. In this case, port collisions occur, so that C1 and C2 need to be adjusted so that no element greater than 1 is present in the matrix obtained by c1+c2. For example, after the adjustment, the device can be used for adjusting the position of the mobile phone,Elements greater than 1 are not present in the matrix. Then, the matrix is added to C3, and elements greater than 1 are also present in the obtained matrix, where at least one of the matrices C1, C2, and C3 needs to be adjusted (for example, the matrix C3 is adjusted) so that the matrix obtained by c1+c2+c3 does not contain elements greater than 1.
Then, based on the finally obtained C1, C2 and C3, decomposing the service matrix H into four matrices corresponding to the four CSMs one by one:
In the four matrixes obtained by decomposing the service matrix H, the element of the nth row and the mth column in the matrix corresponding to each CSM represents the number of port groups which need to be connected through the CSM, wherein the first port belongs to the nth ISM, and the second port belongs to the mth OSM.
After four matrices, one for each of the four CSMs, are obtained, the paths corresponding to each of the matrices can be output. The paths corresponding to each matrix comprise paths corresponding to port groups of the OSM corresponding to columns of the element, wherein the first port belongs to the ISM corresponding to the row of the element with the value of 1 in the matrix, and the second port belongs to the OSM corresponding to the column of the element, and the paths pass through the CSM corresponding to the matrix.
From the foregoing, it can be seen that the first controller determines paths corresponding to the at least two groups of ports in parallel, which may cause at least some of the paths to fail to satisfy mutually independent requirements (for example, the case of the port collision). In this case, the first controller needs to redetermine 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 (e.g., at least one matrix of C1 and C2 is adjusted in the foregoing description). And, the number of times the path is redefined is not controllable, resulting in the first controller determining that the time of the path is not controllable. In addition, the first controller has a high complexity of determining the path at a time. It can be seen that the first controller determines that the mutually independent paths are less efficient, resulting in a poor performance of the switching node.
In the related art, the first controller may further determine paths corresponding to the plurality of port groups sequentially in a serial manner. For example, the first controller may determine paths corresponding to the plurality of port groups in series using a bipartite graph edge coloring method. In the method, a first controller needs to sequentially determine a port group corresponding to each CSM in a plurality of CSMs, and a first port and a second port in the port group corresponding to each CSM are connected through the CSM. The first controller may determine CSMs corresponding to each of the plurality of port groups in turn according to the service matrix, and generate a bipartite graph corresponding to each CSM. The bipartite graph includes points representing 3 ISM's, points representing 3 OSM's, and lines representing port groups corresponding to the CSMs, one end of each line being connected to a point representing an ISM of a first port in the port group, and the other end being connected to a point representing an OSM of a second port in the port group. The first port and the second port in each port group are connected through corresponding CSM, and the first port and the second port of different port groups corresponding to each CSM are different. Taking the above 4 CSMs as an example, the bipartite graphs corresponding to the 4 CSMs may be shown in fig. 4, fig. 5, fig. 6 and fig. 7, respectively. After determining the CSM corresponding to each of the plurality of port groups, the path corresponding to each port group may be determined to be the path through the CSM corresponding to the port group.
But determining paths corresponding to multiple port groups in a serial manner is inefficient, resulting in poor performance of the first controller. In addition, when the switching network is not a strictly non-blocking network, there is a case where the serial system cannot identify a path corresponding to a partial port group.
In addition, in the related art, the controller can only determine paths corresponding to a plurality of port groups in a serial or parallel mode, so that the controller determines fewer paths.
The application provides a new path determining method which is different from the path determining method of the controller in the related technology, so that the path determining method of the controller is enriched. In addition, in some cases, the efficiency of determining mutually independent paths by the first controller can be improved, and the performance of the switching node is improved.
The path determining method provided by the application is executed by a first controller, which may be a control chip or a board card. The first controller is connected with a plurality of switching structures, and a switching network formed by connecting the plurality of switching structures can be a clos network. The clos network has a plurality of first ports and a plurality of second ports, the first ports and the second ports belonging to different switch fabrics, and any one of the first ports being connectable to any one of the second ports. Wherein the plurality of switching fabrics 031 that make up the clos network are divided into at least three stages of switching fabrics 031, each stage of switching fabrics 031 comprises at least two switching fabrics 031, the plurality of first ports belong to a first stage of switching fabrics 031, and the plurality of second ports belong to a last stage of switching fabrics 031. Any switching fabric 031 except for the last stage of switching fabric 031 is connected to each next stage of switching fabric 031, so that any first port can be connected to any second port. The present application is not limited to the example of a switch network as the clos network, and in some cases, the switch network may not be the clos network. The first controller and the plurality of switch fabrics may refer to the first controller and the plurality of switch fabrics in fig. 2, which are not described herein. In the present application, the plurality of switch fabrics are all optical switch fabrics, alternatively, the plurality of switch fabrics may be all electrical switch fabrics, or one part of the plurality of switch fabrics is an optical switch fabric and the other part of the plurality of switch fabrics is an electrical switch fabric.
Fig. 8 is a flowchart of a path determining method according to the present application, as shown in fig. 8, where the path determining method includes:
And S101, the first controller acquires information of a plurality of port groups, wherein the port groups comprise a first port and a second port of data to be exchanged, and the first port and the second port in different port groups are different.
The first controller may receive a configuration instruction carrying information of the plurality of port groups sent by the second controller, and extract the information of the plurality of port groups from the configuration instruction. Alternatively, the first controller may obtain the information of the plurality of port groups in other manners, for example, the first controller may integrate the functions of the second controller, so that the first controller may generate the information of the plurality of port groups by itself.
Each port group includes a first port and a second port for data to be exchanged. The port group may also be referred to as a first port to second port route in the port group. The first port and the second port are connected to different communication nodes which can exchange data through the group of ports in the switching network. And, to avoid port collisions, the first port and the second port in different ones of the plurality of port groups are each different.
By way of example, assume a switching network as shown in fig. 9, which has first ports 1 to 16 and second ports 1 to 16. Wherein the first ports 1, 2, 3, 4 belong to the 1 st first switching fabric (ISM 1), the first ports 5, 6, 7, 8 belong to the 2 nd first switching fabric (ISM 2), the first ports 9, 10, 11, 12 belong to the 3 rd first switching fabric (ISM 3), and the first ports 13, 14, 15, 16 belong to the 4 th first switching fabric (ISM 4). The second ports 1, 2, 3, 4 belong to the 1 st second switching fabric (OSM 1), the second ports 5, 6, 7, 8 belong to the 2 nd second switching fabric (OSM 2), the second ports 9, 10, 11, 12 belong to the 3 rd second switching fabric (OSM 3), and the second ports 13, 14, 15, 16 belong to the 4 th second switching fabric (OSM 4). The plurality of port groups may be represented by a matrix P:
the matrix P includes 16 columns of elements, each column representing a port group, and 16 columns of elements representing 16 port groups. The first row of elements in the matrix P represents the first port and the second row of elements represents the second port. Therefore, the 16 port groups are respectively:
a port group 1 composed of a first port 1 and a second port 13;
a port group 2 consisting of a first port 2 and a second port 4;
a port group 3 consisting of a first port 3 and a second port 12;
A port group 4 consisting of a first port 4 and a second port 5;
A port group 5 consisting of a first port 5 and a second port 6;
a port group 6 of a first port 6 and a second port 16;
a port group 7 consisting of a first port 7 and a second port 11;
a port group 8 consisting of a first port 8 and a second port 15;
A port group 9 consisting of a first port 9 and a second port 10;
A port group 10 consisting of a first port 10 and a second port 2;
a port group 11 composed of a first port 11 and a second port 1;
a port group 12 consisting of a first port 12 and a second port 3;
A port group 13 consisting of a first port 13 and a second port 9;
a port group 14 of a first port 14 and a second port 8;
a port group 15 composed of a first port 15 and a second port 14;
A port group 16 of a first port 16 and a second port 7.
The information of each of the plurality of port groups acquired by the first controller in S101 may be a column of elements in the matrix P for representing the port group.
S102, the first controller arranges the information of the plurality of port groups according to the sequence of the first switching structures of the port groups, to which the first ports belong, in the r first switching structures.
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 the first controller obtains the information of the plurality of port groups, the information of the plurality of port groups may be arranged according to the order of the first switch structures to which the first ports in the port groups belong in the r first switch structures.
It is assumed that the information of each of the plurality of port groups may be a column of elements in the above matrix P for representing the port group, the first ports 1, 2, 3,4 belong to the 1 st first switch fabric (ISM 1), the first ports 5, 6, 7, 8 belong to the 2 nd first switch fabric (ISM 2), the first ports 9, 10, 11, 12 belong to the 3 rd first switch fabric (ISM 3), and the first ports 13, 14, 15, 16 belong to the 4 th first switch fabric (ISM 4). Then, since the information of the plurality of port groups has been arranged in the matrix P in the order of the first switch fabric to which the first port belongs in the r first switch fabrics, the positions of the arranged information in the matrix P may not be changed.
The first controller arranges the information of the plurality of port groups according to the sequence of the first switch structures of the port groups, to which the first ports belong, in the r first switch structures, so that the first controller can conveniently execute subsequent operations based on the information. It is understood that the first controller may not perform S102, but may directly perform S103 after S101.
S103, the first controller determines a port group set in a plurality of port groups, wherein the port group set comprises at least two port groups of which the first port and the second port belong to different switch structures.
The first controller may determine a port group set among the plurality of port groups according to information of the plurality of port groups. The port group set comprises at least two port groups, wherein first ports of the at least two port groups belong to different switch structures, and second ports of the at least two port groups also belong to different switch structures. In this case, the paths between the first port and the second port in the at least two port groups can be ensured to be independent of each other regardless of the design of the paths between the first port and the second port in the at least two port groups. It can be seen that the at least two port groups may be mutually independent port groups.
For example, taking the above 16 port group represented by the element in the matrix P as an example, the first port 1 and the first port 5 respectively belong to the 1 st first switch fabric (ISM 1) and the 2 nd first switch fabric (ISM 2), and the second port 13 and the second port 6 respectively belong to the 4 th second switch fabric (OSM 4) and the 2 nd second switch fabric (OSM 2). Thus, the port group 1 formed by the first port 1 and the second port 13, and the port group 5 formed by the first port 5 and the second port 6 are mutually independent port groups, and the port group set determined by the first controller in S103 may include the two port groups.
When determining the port group set, the first controller may first determine one port group in the port group set, and then search for other port groups in the port group set in the port groups of different first switch structures in the first port and the first port in the port group.
Optionally, the r first switching structures are divided into j structure groups, j is greater than or equal to 1, when j is greater than 1, the first j-1 structure groups in the j structure groups all comprise k first switching structures, the number of the first switching structures in the j structure groups is smaller than or equal to k, and r is greater than or equal to k >1. Each first port in the set of port groups belongs to one of the j fabric groups. For example, r first switch fabrics are 4 ISM in fig. 10, and the 4 ISM may be divided into 2 fabric groups, where ISM 1 and ISM 2 form fabric group 1, and ISM 3 and ISM 4 form fabric group 2. The port group set may include the port group 1 and the port group 5 described above, and the first port in the two port groups belongs to the fabric group 1.
Further, in the case that 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. For example, the above-mentioned fabric group 1 includes a1 st first switch fabric (ISM 1) and a2 nd first switch 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 1 st first switch fabric (ISM 1) and one first port 5 in the 2 nd first switch fabric (ISM 2). It is understood that the port group set may not include one first port of each of the first switch fabrics in the one fabric group, e.g., the port group set includes first ports of a portion of the first switch fabrics 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. For example, the port group set including port group 1 and port group 5 includes the 1 st first port 1 in the first switch fabric (ISM 1) and the 1 st first port 5 in the 2 nd first switch fabric (ISM 2).
For example, the first controller, when determining the port group set, may first determine the fabric group 1 and determine the 1 st first port 1 in the 1 st first switch fabric (ISM 1) in the fabric group 1. Thereafter, the first controller may determine the 1 st first port 5 in the 2 nd first switch fabric (ISM 2) in fabric group 1. The first controller may determine whether the second port 13 in the port group 1 where the first port 1 is located and the second port 6 in the port group 5 where the first port 5 is located belong to different second switch fabrics (OSMs). It was confirmed whether the second port 13 in the port group 1 where the first port 1 is located and the second port 6 in the port group 5 where the first port 5 is located belong to different second switch fabrics. Thus, the first controller may determine that the port group set includes port group 1 and port group 5.
In the above, the first controller needs to determine whether the first ports in different port groups belong to the same switch fabric. For example, the first port may be represented in binary, and the first ports 1-16 may be represented sequentially as 0000, 0001, 0010, 0011, 1111. The first controller may determine whether the first ports in the different port groups belong to the same switch fabric by comparing whether the first two bits in the binary representation of the first ports in the different port groups are the same. Taking here as an example 4 first ports per switch fabric, when each switch fabric has F first ports, the first controller can determine whether the first ports in different port groups belong to the same switch fabric by comparing whether the first (log base 2F logarithm) bits in the binary representation of the first ports in different port groups are the same.
S104, the first controller determines paths corresponding to all the port groups in the port group set in parallel in the switching network, wherein the paths corresponding to any port group are paths between a first port and a second port in any port group, and the paths corresponding to different port groups are mutually independent.
After determining the port group set, the first controller may determine paths corresponding to each port group in the port group set in parallel in the switch network. Since the port groups in the port group set are not related to each other, in the clos network, paths corresponding to the port groups are independent from each other, and the paths do not collide at any port. Therefore, paths which are determined in parallel are not independent of each other, and paths are determined again in parallel, so that the efficiency of determining the paths corresponding to the ports in the port group set by the first controller is improved.
The port group set includes at least two port groups, and the first controller may determine paths corresponding to the at least two port groups in a one-to-one correspondence using the at least two processing cores.
S105, the first controller determines the path corresponding to the port group of which the corresponding path is not determined in the part, which is positioned outside the determined path, of the switching network.
After determining the paths corresponding to the port groups in the port group set in S104, the first controller may further continue to determine paths corresponding to other port groups (the port groups for which the corresponding paths are not determined) in a portion other than those paths in the switch network. In this process, since the path determined in S105 is out of the path determined in S104, the path determined in S105 does not affect the path determined in S104, and there is no problem in that the path determined in S104 is re-determined because the path determined in S105 collides with the path determined in S104.
For example, when at least two other port groups except the port group set exist in the plurality of port groups, the first controller may determine paths corresponding to the at least two other port groups in at least one of parallel and serial.
When the first controller determines paths corresponding to a plurality of other port groups in a serial manner, the first controller can sequentially execute path determination operations on the plurality of other port groups, wherein the path determination operations executed on any other port group comprise determining the paths corresponding to any other port group in a part, which is positioned outside the determined paths, of the switching network.
When the first controller determines paths corresponding to a plurality of other port groups in a parallel manner, if the determined paths corresponding to the plurality of other port groups are not independent of each other, the first controller needs to re-determine the paths corresponding to the plurality of other port groups until the determined paths corresponding to the plurality of other port groups are independent of each other.
S106, after determining paths corresponding to the port groups, the first controller configures paths corresponding to the port groups in the switching network.
The first controller may determine, according to paths corresponding to the plurality of port groups, a connection relationship required between ports in each switch fabric in the switch network, and configure the corresponding connection relationship in the switch fabrics, so as to implement configuring paths corresponding to the plurality of port groups in the switch network respectively. When a path is configured, the first controller needs to configure a connection relationship between an ingress port and an egress port of each switch fabric through which the path passes.
It will be appreciated that the first controller may not be required to configure paths corresponding to the plurality of port groups in the switching network, but may instruct other devices or apparatuses to perform configuring paths corresponding to the plurality of port groups.
In summary, in the present application, the first controller determines the paths corresponding to the port groups in the port group set, and then determines the paths corresponding to the port groups, for which no corresponding paths are determined, in the portion of the switch network located outside the determined paths. It can be seen that the manner in which the first controller determines the path is different from the manner in which the controller determines the path in the related art, and thus, the manner in which the controller determines the path is enriched.
In addition, since the first port and the second port of the port group in the port group set belong to different switch structures, paths corresponding to the port groups in the port group set must be independent from each other in some switch networks (such as a clos network). Therefore, the first controller does not need to re-determine these paths. And the first controller subsequently determines other paths at the part other than the determined paths, and even if the subsequently determined paths need to be redetermined, the paths corresponding to the port groups in the port group set are not influenced, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. Therefore, paths needing to be redetermined are reduced, and the efficiency of determining mutually independent paths by the first controller is improved. And, the paths corresponding to the port groups in the parallel determination port group set are more efficient than the paths corresponding to the port groups in the serial determination port group set. The method can ensure that the reusability of the hardware circuit is maximized, and has good hardware expansibility.
The method provided by the application can be suitable for switching networks of various scales. In addition, because the path determining method provided by the application can rapidly determine the paths corresponding to the port groups, the method can not cause the great increase of network delay when being applied to a switching network with a larger scale. For example, as shown in table 1, when the path determining method provided by the present application is applied to the switching network of various scales as described below, the performance of the first controller can be improved by more times compared with the related art.
TABLE 1
Optionally, in S105, the first controller may continuously determine a new port group set from the port groups associated with the one structure group, and determine paths corresponding to the port groups in the port group set in parallel, so that efficiency of determining paths may be further improved.
In the S105, the first controller may determine a plurality of first remaining port groups of the plurality of port groups, determine a new port group set from the plurality of first remaining port groups to obtain a first port group set, and then determine paths corresponding to the respective port groups in the first port group set in parallel in a portion of the switch network located outside the determined paths. Wherein, the first port in the first remaining port group and the first port in the port group set determined in S103 belong to the one structure 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 may further repeatedly perform this operation, so as to sequentially obtain paths corresponding to port groups in the plurality of first port group sets.
Still, the 16 port group described above is exemplified by 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 includes port groups 2-4, 6-8. Thereafter, the first controller may determine a new port group set (including the port group 2 and the port group 6) among the port groups 2-4 and 6-8 as one first port group set, and determine paths corresponding to the port group 2 and the port group 6 in parallel. Thereafter, the first controller may continue to determine that the current plurality of first remaining port groups includes port groups 3-4, 7-8. The first controller may determine a new port group set (port group 4 and port group 8) among the port groups 3-4, 7-8 as another second port group set and determine paths corresponding to the port group 4 and the port group 8 in parallel. After that, the first port belongs to the port group of the structure group 1, and no other port group set is already present, so the first controller may stop searching for the port group set in the port group of the first port group belonging to the structure group 1.
Alternatively, in S105, the first controller may continuously determine a new port group set from the port groups associated with other structure groups different from the one structure group, and determine paths corresponding to the port groups in the port group set in parallel, so that the efficiency of determining the paths may be further improved.
In the S105, the first controller may further determine a plurality of second remaining port groups of the plurality of port groups, determine a new port group set from the plurality of second remaining port groups to obtain a second port group set, and then determine paths corresponding to the respective port groups in the second port group set in parallel in a portion of the switch network located outside the determined paths. The first ports in the second remaining port group and the first ports in the port group set determined in S103 belong to different structure groups, and the first ports in the structure group where the first ports in the second remaining port group are located are different from the first ports in the determined port group set. For example, the first port in the second remaining port group belongs to another structure group other than the above-mentioned one structure group, and the other structure group is a structure group next to the one structure group in the j structure groups. Of course, the other structure group may not be the next structure group of the one structure group, for example, the other structure group may be the next structure group of the one structure group.
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.
Still, the 16 port group described above is exemplified by 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 second remaining port groups includes port groups 9-16. Thereafter, the first controller may determine a new port group set (including the port group 10 and the port group 14) among the port groups 9 to 16 as a second port group set, and determine paths corresponding to the port group 10 and the port group 14 in parallel. After that, since there is no fabric group other than the fabric group 1 and the fabric group 2, the first controller may stop looking for other port group sets.
Alternatively, as will be appreciated in light of the above, the first controller may look up the port group set in a plurality of fabric group-associated port groups (with a first port in each fabric group-associated port group belonging to a switch fabric in that fabric group) in sequence. And when the first controller searches the port group sets in the port groups associated with each structure group, the first controller can search a plurality of port group sets in sequence, and after searching one port group set, the first controller determines paths corresponding to the plurality of port group sets in parallel.
For example, the 16 port group is still taken 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 includes port groups 2-4, 6-8. Thereafter, the first controller may determine a new port group set (including the port group 2 and the port group 6) among the port groups 2-4 and 6-8 as one first port group set, and determine paths corresponding to the port group 2 and the port group 6 in parallel. Thereafter, the first controller may continue to determine that the current plurality of first remaining port groups includes port groups 3-4, 7-8. The first controller may determine a new port group set (port group 4 and port group 8) among the port groups 3-4, 7-8 as another second port group set and determine paths corresponding to the port group 4 and the port group 8 in parallel. After that, the first port belongs to the port group of the structure group 1, and no other port group set is already present, so the first controller may stop searching for the port group set in the port group of the first port group belonging to the structure group 1.
Thereafter, the first controller may determine that the current plurality of second remaining port groups includes port groups 9-16. The first controller may determine a new set of port groups (including port group 10 and port group 14) among the port groups 9-16 as a second set of port groups and determine paths corresponding to port group 10 and port group 14 in parallel. The first controller may then proceed to determine that the current plurality of second remaining port groups includes port groups 9, 11-13, 15-16. The first controller may determine a new set of port groups (port group 11 and port group 15) among the port groups 9, 11-13, 15-16 as another second set of port groups and determine paths corresponding to the port group 11 and the port group 15 in parallel. Thereafter, the first controller may continue to determine that the current plurality of second remaining port groups includes port groups 9, 12-13, 16. The first controller may determine a new set of port groups (port group 12 and port group 16) among the port groups 9, 12-13, 16 as another second set of port groups and determine paths corresponding to the port groups 12 and 16 in parallel. After that, there is no other port group set in the port group of the first port group belonging to the structure group 2, and therefore, the first controller may stop searching for the port group set in the port group of the first port group belonging to the structure group 2.
After that, since there is no fabric group other than the fabric group 1 and the fabric group 2, the first controller may stop looking for other port group sets. To this end, the first controller looks up 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) together. The first controller may sequentially determine paths corresponding to the port groups in the port group sets 1 to 6. And, when determining the paths corresponding to the port groups in each port group set, the first controller may determine the paths corresponding to the port groups in the port group set in turn. After that, the first controller may sequentially determine paths corresponding to the port groups 3, 7, 9, and 13, of the port groups 3, 7, 9, and 13, which are remaining in the port groups other than the port group set.
In the above process, the first controller needs to determine the path multiple times, and each time the first controller determines the path, the path corresponding to the port group is determined outside the determined path in the switching network. In the foregoing, taking the example that the first controller still needs to continuously determine the new port group set in S105, it is to be understood that the first controller may not need to determine the new port group set in S105, but may sequentially determine paths corresponding to the remaining port groups.
Further, in the above embodiments, the port group set includes two port groups as an example, it is understood that the number of port groups in the port group set may be greater than 2, which is not limited in the present application.
In this case, when the first controller determines the port group set from the plurality of port groups, a part of the port groups in the port group set may be determined first from the plurality of port groups, and then another part of the port groups in the port group set may be determined based on the part of the port groups, so that the port groups in the port group set may be determined step by step.
For example, the first controller may determine at least two initial port groups among the plurality of port groups, and then determine at least one new port group based on the at least two initial port groups. The resulting port group set includes the at least two initial port groups and the at least one additional port group. The first ports in the at least two initial port groups belong to a first part of a first switching structure in one structure group, the first ports and the second ports in the at least two initial port groups belong to different switching structures, the first ports in the newly added port groups belong to a second part of the first switching structure in one structure group, and the first ports and the second ports in the at least two initial port groups and the at least one newly added port group belong to different switching structures.
The first portion first switch fabric and the second portion first switch fabric may be any two portions of the one fabric group. Optionally, the first part of the first switching structures comprise the first i first switching structures in one structure group, i is more than or equal to 2, the first ports in the at least two initial port groups are in one-to-one correspondence and belong to the first i first switching structures, and the second part of the first switching structures comprise the (i+1) th first switching structure in one structure group, and the at least one newly added port group comprises one port group of which the first ports belong to the (i+1) th first switching structure.
Taking the above matrix P as an example, assuming that the port groups 1 to 16 belong to the same fabric group, the first controller may first determine two initial port groups (port groups 1 and 5) among the port groups (port groups 1 to 8) of which the first ports belong to the first switch fabrics 1 and 2. Then the first controller can find a new port group (port group 9) among the port groups (port groups 9 to 12) belonging to the first switch fabric 3, and then the first controller takes the port groups 1, 5 and 9 as initial port groups and finds a new port group among the port groups (port groups 13 to 16) belonging to the first switch fabric 4, but does not find a new port group. At this time, the first controller may determine that the found port group set includes port groups 1, 5, 9.
In the foregoing, the first controller determines the port group set based on the concept of the structure group, and it is understood that the first controller may directly find the port group set from the plurality of port groups instead of determining the port group set based on the concept of the structure group.
The multiple switch fabrics in the present application may be all optical switch fabrics, or all electrical switch fabrics, or one part of the switch fabrics is an optical switch fabric, and the other part of the switch fabrics is an electrical switch fabric. In other words, the plurality of switch fabrics includes at least one of an optical switch fabric and an electrical switch fabric. The embodiment of the present application is not limited thereto.
Based on the path determining method provided by the application, the application also provides a path determining device, and the path determining device belongs to the first controller. The first controller is connected with a plurality of switch fabrics, the switch network formed by connecting the switch fabrics is provided with a plurality of first ports and a plurality of second ports, the first ports and the second ports belong to different switch fabrics, any first port can be connected with any second port, and the path determining device comprises a first determining module 1001, a second determining module 1002 and a third determining module 1003 as shown in fig. 11.
The first determining module 1001 is configured to determine a port group set among a plurality of port groups, where the port group includes one first port and one second port of data to be exchanged, and the first port and the second port of different port groups are different, the port group set includes at least two port groups of which the first port and the second port belong to different switch fabrics, and the operation performed by the first determining module 1001 may refer to S103 in the foregoing embodiment, and the disclosure is not repeated herein.
The second determining module 1002 is configured to determine paths corresponding to each port group in the port group set in parallel in the switch network, where a path corresponding to any one port group is a path between the first port and the second port in the any one port group, paths corresponding to different port groups are independent of each other, and an operation performed by the second determining module 1002 may refer to S104 in the foregoing embodiment, and the disclosure is not repeated herein.
The third determining module 1003 is configured to determine, in a portion of the switch network that is located outside the determined path, a path corresponding to the port group for which a corresponding path is not determined. The operation performed by the third determining module 1003 may refer to S105 in the foregoing embodiment, and the disclosure is not repeated here.
In the application, the first controller determines the paths corresponding to the port groups in the port group set, and then determines the paths corresponding to the port groups which do not determine the corresponding paths in the part of the switching network which is positioned outside the determined paths. It can be seen that the manner in which the first controller determines the path is different from the manner in which the controller determines the path in the related art, and thus, the manner in which the controller determines the path is enriched.
In addition, since the first port and the second port of the port group in the port group set belong to different switch structures, paths corresponding to the port groups in the port group set must be independent from each other in some switch networks (such as a clos network). Therefore, the first controller does not need to re-determine these paths. And the first controller subsequently determines other paths at the part other than the determined paths, and even if the subsequently determined paths need to be redetermined, the paths corresponding to the port groups in the port group set are not influenced, so that the first controller does not need to redetermine the paths corresponding to the port groups in the port group set. Therefore, paths needing to be redetermined are reduced, and the efficiency of determining mutually independent paths by the first controller is improved. And, the paths corresponding to the port groups in the parallel determination port group set are more efficient than the paths corresponding to the port groups in the serial determination port group set. The method can ensure that the reusability of the hardware circuit is maximized, and has good hardware expansibility.
Optionally, the plurality of first ports belong to r first switch structures in the plurality of switch structures, the r first switch structures are divided into j structure groups, j is greater than or equal to 1, when j is greater than 1, the first j-1 structure groups in the j structure groups all comprise k first switch structures, the number of the first switch structures in the j structure groups is smaller than or equal to k, r is greater than k and is greater than 1, and each first port in the port group set belongs to one structure group in the j structure groups.
Further, in the case that 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.
It is understood that the number of port groups in the port group set may be greater than 2, which is not limited in the present application. In this case, when the first controller determines the port group set from the plurality of port groups, a part of the port groups in the port group set may be determined first from the plurality of port groups, and then another part of the port groups in the port group set may be determined based on the part of the port groups, so that the port groups in the port group set may be determined step by step.
For example, the first controller may determine at least two initial port groups among the plurality of port groups, and then determine at least one new port group based on the at least two initial port groups. The resulting port group set includes the at least two initial port groups and the at least one additional port group. The first ports in the at least two initial port groups belong to a first part of a first switching structure in one structure group, the first ports and the second ports in the at least two initial port groups belong to different switching structures, the first ports in the newly added port groups belong to a second part of the first switching structure in one structure group, and the first ports and the second ports in the at least two initial port groups and the at least one newly added port group belong to different switching structures.
The first portion first switch fabric and the second portion first switch fabric may be any two portions of the one fabric group. Optionally, the first part of the first switching structures comprise the first i first switching structures in one structure group, i is more than or equal to 2, the first ports in the at least two initial port groups are in one-to-one correspondence and belong to the first i first switching structures, and the second part of the first switching structures comprise the (i+1) th first switching structure in one structure group, and the at least one newly added port group comprises one port group of which the first ports belong to the (i+1) th first switching structure.
Optionally, when determining that the path corresponding to the port group of the corresponding path is not determined in the portion, which is located outside the determined path, of the switch network, the third determining module may continuously determine a new port group set in the port groups associated with the one structure group, and determine the paths corresponding to the port groups in the port group set in parallel, so that the efficiency of determining the path may be further improved.
The third determining module may determine a plurality of first remaining port groups of the plurality of port groups when determining that the path corresponding to the port group of the corresponding path is not determined in a portion of the switch network located outside the determined path, and determine a new port group set from the plurality of first remaining port groups to obtain a first port group set, and then determine paths corresponding to respective port groups in the first port group set in parallel in a portion of the switch network located outside the determined path. Wherein, the first port in the first remaining port group and the first port in the port group set belong to the above-mentioned one structure group, and the first remaining port group is different from the port group in the determined port group set. On this basis, the third determining module may further repeatedly perform this operation, so as to sequentially obtain paths corresponding to the port groups in the plurality of first port group sets.
In another embodiment, when the third determining module determines, in a portion of the switch network that is located outside the determined path, a path corresponding to the port group of the corresponding path is not determined, the third determining module may continuously determine a new port group set in the port groups associated with other structure groups different from the one structure group, and determine, in parallel, a path corresponding to the port group in the port group set, so that efficiency of determining the path may be further improved.
In an example, when determining that the path corresponding to the port group of the determined path is not determined in the portion of the switch network located outside the determined path, the third determining module may further determine a plurality of second remaining port groups of the plurality of port groups, determine a new port group set in the plurality of second remaining port groups to obtain a second port group set, and then determine, in parallel, paths corresponding to respective port groups in the second port group set in the portion of the switch network located outside the determined path. The first ports in the second remaining port group and the first ports in the port group set belong to different structure groups, and the first ports in the structure group where the first ports in the second remaining port group are located are different from the first ports in the determined port group set. For example, the first port in the second remaining port group belongs to another structure group other than the above-mentioned one structure group, and the other structure group is a structure group next to the one structure group in the j structure groups. Of course, the other structure group may not be the next structure group of the one structure group, for example, the other structure group may be the next structure group of the one structure group. 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.
In view of the foregoing, the first controller may sequentially find the port group set in a plurality of port groups associated with a fabric group (a first port in the port group associated with each fabric group belongs to a switch fabric in the fabric group). And when the first controller searches the port group sets in the port groups associated with each structure group, the first controller can search a plurality of port group sets in sequence, and after searching one port group set, the first controller determines paths corresponding to the plurality of port group sets in parallel.
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 (the port groups of which the corresponding paths are not determined) in a portion other than the paths in the switch network.
For example, when there are at least two other port groups in the plurality of port groups other than the port group set, the third determining module may be configured to determine paths corresponding to the at least two other port groups in at least one of parallel and serial.
When the third determining module determines paths corresponding to a plurality of other port groups in a serial manner, the third determining module may sequentially perform path determining operations for the plurality of other port groups, where the path determining operations performed for any other port group include determining a path corresponding to any other port group in a portion of the switch network that is located outside the determined path.
When the third determining module determines paths corresponding to the plurality of other port groups in a parallel manner, if the determined paths corresponding to the plurality of other port groups are not independent of each other, the third determining module needs to re-determine the paths corresponding to the plurality of other port groups until the determined paths corresponding to the plurality of other port groups are independent of each other.
Optionally, the plurality of first ports belong to r first switch fabrics in the plurality of switch fabrics, and the path determining device further comprises an acquisition module and an arrangement module (not shown in fig. 11). The device comprises an acquisition module, an arrangement module and a data processing module, wherein the acquisition module is used for acquiring information of a plurality of port groups, and the arrangement module is used for arranging the information of the plurality of port groups according to the sequence of the first switch structures of the port groups in the first switch structures of the first port groups in the r first switch structures. The first controller arranges the information of the plurality of port groups according to the sequence of the first switch structures of the port groups, to which the first ports belong, in the r first switch structures, so that the first controller can conveniently execute subsequent operations in the path determining method based on the information.
Optionally, the path determining apparatus may further include a configuration module (not shown in fig. 11) configured to configure paths respectively corresponding to the plurality of port groups in the switch network after determining paths respectively corresponding to the plurality of port groups. It will be appreciated that the first controller may not be required to configure paths corresponding to the plurality of port groups in the switching network, but may instruct other devices or apparatuses to perform configuring paths corresponding to the plurality of port groups.
The multiple switch fabrics in the present application may be all optical switch fabrics, or all electrical switch fabrics, or one part of the switch fabrics is an optical switch fabric, and the other part of the switch fabrics is an electrical switch fabric. In other words, the plurality of switch fabrics includes at least one of an optical switch fabric and an electrical switch fabric. The embodiment of the present application is not limited thereto.
The above-mentioned path determining device may be implemented by hardware and/or software, and as shown in fig. 12, the path determining device includes a preprocessing unit, a first buffer unit, a port group set determining unit, at least two processing cores (three processing cores are taken as an example in the figure), and a second buffer unit. The preprocessing unit can be realized in a hardware or software mode, and the first buffer unit, the port group set determining unit, the at least two processing cores and the second buffer unit can be realized in a hardware mode. The preprocessing unit comprises the acquisition module and the arrangement module, and is used for acquiring information of a plurality of port groups and arranging the information of the plurality of port groups according to the sequence of the first switch structures of the port groups, to which the first ports belong, in the r first switch structures. The first buffer unit is used for storing the information of the plurality of port groups obtained by the processing of the preprocessing unit. The port group set determining unit includes the first determining 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, which are in one-to-one correspondence with the at least two processing cores. The second determining module includes at least two processing cores, where the at least two processing cores are configured to determine paths corresponding to the at least two port groups in a one-to-one correspondence manner. The second buffer unit is used for storing the path determined by the processing core.
In the case where 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 of the plurality of processing cores, where the at least one processing core may be configured to determine a path corresponding to a port group other than the port group set.
In case the third determination module further needs to continue determining the port group set, the third determination module comprises a port group set determination unit and at least two processing cores. The third determining module continues to determine other port group sets by using the port group set determining unit, and determines paths corresponding to all port groups in the port group set by using at least two processing cores in a one-to-one correspondence manner. When it is determined that the port group set is not output, if at least one port group exists in the plurality of port groups, the third determining module may determine, by using the at least one processing core, a path corresponding to the at least one port group.
In addition, some parameters (such as j, i, the number of port groups in the port group set, etc.) in the path determining method may also be stored in the first buffer unit, and the port group set determining unit may determine the port group set based on these parameters.
The application also provides a path determining device, which comprises a processor and a memory, wherein the memory is stored with a program, and the processor is used for executing the program stored in the memory so as to realize any path determining method executed by the first controller.
In the path determining apparatus, the number of the processors may be plural, and the memory coupled with the processors may be independent from the processors or independent from the path determining apparatus, or may be internal to the processors. The memory may be a physically independent unit, or may be a storage space on a cloud server, a network hard disk, or the like. Alternatively, the memory may be one or more. When the number of the memories is plural, the memories may be located at the same or different positions and may be used independently or in combination. For example, please refer to fig. 13, fig. 13 is a schematic diagram illustrating a path determining apparatus according to an embodiment of the present application. The path determining apparatus 100 includes a processor 102 and a memory 101, wherein the memory 101 is configured to store a program, and the processor 102 is configured to call the program stored in the memory 101 to cause the path determining apparatus to execute any one of the methods provided by the present application that are executed by the first controller. Optionally, as shown in fig. 13, the path determining device 100 may further comprise at least one communication interface 103 and at least one communication bus 104. The memory 101, the processor 102, and the communication interface 103 are communicatively connected by a 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 may call the program stored in the memory 101 through the communication bus 104.
The present application provides a chip comprising programmable logic circuits and/or program instructions for implementing any of the path determination methods provided by the present application as performed by a first controller when the chip is running.
The present application provides a computer readable storage medium having instructions stored therein which, when executed on a computer, cause the computer to perform any of the path determination methods provided by the present application as performed by a first controller.
The present application provides a computer program product comprising instructions which, when run on a computer, cause the computer to perform any of the path determination methods provided by the present application as performed by a first controller.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be embodied in whole or in part in the form of a computer program product comprising one or more computer instructions. When loaded and executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a network of computers, or other programmable devices. The computer instructions may be stored in or transmitted from one computer readable storage medium to another, for example, by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means from one website, computer, server, or data center. The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device including one or more servers, data centers, etc. that can be integrated with the available medium. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium, or a semiconductor medium (e.g., solid state disk), etc.
The application also provides a switching node which comprises a first controller and a plurality of switching structures, wherein the first controller is connected with the plurality of switching structures, the switching network formed by connecting the plurality of switching structures is provided with a plurality of first ports and a plurality of second ports, the first ports and the second ports belong to different switching structures, any one of the first ports is connected with any one of the second ports, and the first controller is used for executing any one of the path determination methods executed by the first controller.
The application also provides a communication system which comprises any one of the switching nodes, a plurality of first communication nodes and a plurality of second communication nodes, wherein the first communication nodes are in one-to-one correspondence with the first ports in the switching nodes, and the second communication nodes are in one-to-one correspondence with the second ports in the switching nodes.
In the present application, the terms "first" and "second" and the like are used for descriptive purposes only and are not to be construed as indicating or implying relative importance. The term "at least one" means one or more, "a plurality" means two or more, unless expressly defined otherwise. The term "and/or" is merely an association relation describing the association object, and means that three kinds of relations may exist, for example, a and/or B, and that three kinds of cases where a exists alone, a and B exist together, and B exists alone.
Different types of embodiments, such as a method embodiment and an apparatus embodiment, provided in the embodiment of the present application may be referred to each other, which is not limited by the embodiment of the present application. The sequence of the operations of the method embodiment provided by the embodiment of the application can be properly adjusted, the operations can be correspondingly increased or decreased according to the situation, and any method which is easily conceivable to be changed by a person skilled in the art within the technical scope of the disclosure of the application is covered in the protection scope of the application, so that the description is omitted.
In the corresponding embodiments provided by the present application, it should be understood that the disclosed system and apparatus may be implemented in other structural manners. For example, the above-described device embodiments are merely illustrative, e.g., the division of modules is merely a logical function division, and there may be additional divisions of actual implementation, e.g., multiple modules may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be through some interface, indirect coupling or communication connection of devices or modules, electrical or otherwise.
The elements illustrated as separate elements may or may not be physically separate, and elements described as elements may or may not be physically located in one place or distributed over a plurality of devices. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
While the application has been described with reference to certain preferred embodiments, it will be understood by those skilled in the art that various changes and substitutions of equivalents may be made and equivalents will be apparent to those skilled in the art without departing from the scope of the application. Therefore, the protection scope of the application is subject to the protection scope of the claims.