Shortest path bridging (SPB), specified in IEEE 802.1aq, is a replacement for the older Spanning Tree Protocols (IEEE 802.1D STP, IEEE 802.1w RSTP, IEEE 802.1s MSTP) which permit only a single path toward the root bridge and block any redundant paths which could result in a layer-2 loop. SPB technology allows all paths to be active with multiple equal cost paths (ECTs). In data plane, packets may be encapsulated at the edge bridge in mac-in-mac (defined in 802.1ah). The control plane of SPB technology is based on IS-IS with a small number of extensions (called SPB IS-IS) defined in RFC 6329.
After the connection between two SPB nodes are established, the SPB nodes may exchange Hello messages to discover opposite nodes and establish a neighbor logic link with the opposite node. The neighborhoods between the SPB nodes own an attribute named “cost.” The shortest path relates to a path between two SPB nodes with minimum cost among a plurality of links. In order to obtain the shortest path between two nodes, SPB nodes encapsulate link state information (LSI) within the Link State Protocol (LSP) message spreading to the SPB nodes with neighborhood. Each SPB node obtain the link states and the network topology via collecting the LSI within the LSP message from neighboring SPB nodes. Also, the shortest paths from a specific SPB node to other SPB nodes are also calculated. A set of the shortest paths depicts a shortest path first (SPF) tree. When paths with the same cost and hops exist between two SPB nodes, the paths are deemed as equivalent paths, which may contribute to load balance. The load balance may be achieved by equal cost tree (ECT) algorithm. By adopting the SPF tree and the ECT algorithm, each SPB node may calculate the shortest forwarding path so as to generate corresponding entries for forwarding the data packets from users.
In an example, a forwarding path control logic operating on the SPB nodes may be accomplished by utilizing idle links so as to enhance the performance of load balance. Each SPB node may adopt the SPB forwarding path control logic. Referring to
At block 201, the first SPB node determines that the first SPB node and a neighboring second SPB node are connected by n links, wherein n is larger than or equal to 2.
At block 202, the first SPB node establishes n different neighborhoods between the first SPB node and the second SPB node through the n links. The LSI of each of the n links are saved in a local LSDB of the first SPB node.
At block 203, the first SPB node may aggregate the LSIs of the n links to an aggregated LSI (LSIaggr).
At block 204, the first SPB node may distribute the LSIaggr to all of the neighboring SPB nodes, and may drop the LSIaggr distributed from the neighboring SPB nodes.
At block 205, the first SPB node calculates the SPF tree according to the local LSDB, in which the cost of each link of the n links used for calculating is same, whereby to the first SPB node could select different links between first SPB node and second SPB node by different ECT algorithms upon determining the forwarding path.
Referring to
In an example, the plurality of links between node A and node B are predetermined by configuration information designated by an administrator. The administrator may distribute configuration information toward node A. the configuration information for the links may indicate that ports PA1 and PA2 of node A respectively connects to the same SPB node (node B) via Link1 and Link2. After saving the configuration information, node A may determine that there are multiple links connect to node B accordingly. Similarly, the administrator may distribute the configuration information toward node B.
The first SPB node sends the Hello message to the second SPB node via different links using different SIDs, and the second SPB node sends the Hello message to the first SPB node via different links using different SIDs. There are different neighborhoods exist between the first SPB node and the second SPB node.
In another example, the first SPB node and the second SPB node, such as node A and B, may adopt an automatic discovery process to determine whether the two nodes are connected by a plurality of links and to automatically configure the SIDs so as to establish different neighborhoods. Referring to
At block 401, the first SPB node sends a hello message to the second SPB node via each link of n links.
At block 402, the second SPB node sends a hello message to the first SPB node via each link of n links.
At block 403, the first SPB node may determine the SIDs carried by the Hello messages received from the n links are same.
At block 404, the first SPB node assigns a unique SID for each link respectively.
At block 405, the second SPB node determines the SIDs carried by the Hello messages received from the n links are same.
At block 406, the second SPB node assigns a unique SID for each link respectively.
At block 407, the first SPB node sends the Hello massage to the second SPB node via different links of the n links using different SIDs. The second SPB node sends the Hello massage to the first SPB node via different links of the n links using different SIDs.
At block 408, the first SPB node establishes n different neighborhoods with the second SPB node.
At block 409, the second SPB node establishes n different neighborhoods with the first SPB node.
In view of the above blocks 401-409, it can be understood that node A and node B are not aware of being connected via the multiple links when the connection is initially established. Thus, node A and B may carry the same SID when sending the Hello massage to each other. Node A and B may be aware of the multiple links upon respectively receiving the Hello messages carrying the same SID via two links.
Node A may automatically assign two different SIDs, i.e., the first SID and the second SID, after determining that node A is connected with node B via 2 links. In other examples, different SIDs may be configured manually by the administrator in advance. The length of the SID may be 48 bits. In an example, node A may first configure the 44 lower-bits, and may set the 4 higher-bits as zero. That is, the SID of node A may be in the form of: “0xxx-xxxx-xxxx (in Hex).” Upon determining there are multiple links between node A and node B, node A may configure two different SIDs, such as “0aaa-aaaa-aaaa” and “1aaa-aaaa-aaaa”. It can be seen that the lower-bits of the SIDs are the same, and the higher-bits of the SIDs are different.
After configuring the two different SIDs, node A may adopt the first SID and the second SID for sending the Hello message respectively via the 2 links, such as Link1 and Link2. For instance, the SID “0aaa-aaaa-aaa” is carried when the Hello message is sent via Link1, and the SID “1aaa-aaaa-aaa” is carried when the Hello message is sent via Link2. Node B may have similar process. For instance, the SID “0bbb-bbbb-bbbb” is carried when the Hello message is sent via Link1, and the SID “1bbb-bbbb-bbbb” is carried when the Hello message is sent via Link2.
After the plurality of neighborhoods are established between node A and node B, two entries may be added into a neighbor table of node A, as shown in Table 1. “Adjacent SID” denotes the SID of the neighboring node, i.e., node B. “Local Circuit ID” denotes the ID of a local port. For example, PA1 represents the local port connecting to Link1. “Adjacent Circuit ID” denotes the port ID of the opposite end, i.e., node B. For example, PB1 represents the port ID of the opposite end of Link1. The cost may be calculated by parameters such as a bandwidth of the link. Generally, a smaller cost represents a better link quality. The same rule is adopted to calculate the cost for each SPB node within the SPB network. Thus, the cost for Link1 calculated by node A and node B equal to 10.
In an example, after the neighborhoods with node B are established, node A may not directly distribute the corresponding LSI. For instance, node A may not distribute the LSI of Link1 and Link2 to other neighboring SPB nodes. Node A may distribute a LSIaggr relating to a Linkaggr that does not physically exists. The cost of the Linkaggr is calculated in accordance with the cost of Link1 and Link2. Before the LSIaggr is distributed by node A, the nodes may calculate Costaggr of the Linkaggr. In an example, Costaggr is calculated by the equation below:
Costaggr=1/(1/CostL1+1/CostL2);
In Table 1, Costaggr and CostL2 are respectively 10 and 15. In this example, the Costaggr equals to 6 after the calculation.
Referring to
Similarly, node A may distribute the LSIaggr to node B. As node B executes the SPB forwarding path control logic with node A, node B may generate the same LSIaggr by aggregating Link1 and Link2. Thus, node B discards the LSIaggr without saving the LSIaggr to the LSDB after node B receives the LSIaggr distributed by node A. In an example, node A or node B may save identifiers of the LSIaggr in an exceptional list. Upon receiving the LSI distributed from one neighboring SPB node, the LSI identifier is compared with the exceptional list. The LSI may be dropped when the LSI identifier has matched one of the exceptional list. In an example, the LSIaggr identifier may be an identifier set of the SPB nodes arranged at two opposite ends of the link. For instance, the identifier set may be a combination of the “0aaa-aaaa-aaaa” and the “0bbb-bbbb-bbbb” as shown in Table 2. Similarly, node B may distribute the same LSIaggr to node A, and then the LSIaggr is discarded without being saved to the LSDB of node A.
Unlike node A and node B, other nodes may save the LSIaggr to its own LSDB. Each LSDB may describe the SPB network topology. As shown in
Table. 3 is an example LSDB of node A, which describes the LSI of Link1 and Link2 between node A and node B. Link1 and Link2 are links that physically exist. Also referring to Table. 4, the link state information of the Linkaggr between node A and node B is also described in the LSDB of node E. The Linkaggr is a link that does not physically exist. But node E may deem the Linkaggr as a link physically exists due to the LSP messages distributed by node A. This means that the SPB network topology depicted by the LSDB of node A is different from the SPB network topology depicted by the LSDB of node E, which may be referenced respectively by the left-side and right-side network topology of
The SPB nodes distribute the LSP to synchronize the LSDB. Afterward, each SPB node may calculate the SPF tree in accordance with the local LSDB. For a node with a plurality of neighborhoods, the SPF tree is calculated by first checking whether the costs for the neighborhoods are the same. If the costs for the neighborhoods are not the same, before block 205 is executed, node A may configure the cost of Link1 and Link2 to be the same. For instance, the cost of Link1 and Link2 are configured to be 12, and then the SPF tree is calculated. In an example, the cost of Link1 and Link2 saved in the LSDB of node A are different. Thus, upon calculating the SPF tree, the cost of Link1 and Link2 are read from the LSDB, and then the cost of Link1 and Link2 are configured to be the same. Afterward, the process continues to calculate the SPF tree. In another example, node A may save the cost of Link1 and Link2 to the LSDB with an average number, such as 12. In this way, the values of the cost may be directly read from the LSDB without further configuration.
SPB nodes may be configured with a plurality of ECT algorithms, i.e., 16 ECT algorithms. Each ECT algorithm correspond to one or multiple virtual service instances (VSIs). The ECT algorithms may select one path among a plurality of paths with the same cost as the forwarding path. For any two nodes of the SPF tree, different ECT algorithm may be selected for the SPF tree. When paths with the same cost exist between two nodes, a different forwarding path may be selected for the corresponding VSI.
The foregoing descriptions are only examples of the present disclosure and are not for use in limiting the protection scope thereof. Any modification, equivalent replacement and improvement made under the spirit and principle of the present disclosure should be included in the protection scope thereof.
Number | Date | Country | Kind |
---|---|---|---|
2013 10516437.6 | Oct 2013 | CN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2014/089722 | 10/28/2014 | WO | 00 |