Path establishment method and controller
11502937 ยท 2022-11-15
Assignee
Inventors
Cpc classification
H04L12/1854
ELECTRICITY
H04L45/50
ELECTRICITY
International classification
Abstract
A path establishment method and a controller are disclosed. The method includes: when detecting a path establishment request for establishing P2MP TE, computing a P2MP TE path by using head node information and tail node information included in the path establishment request; identifying a target branch node in the P2MP TE path, and obtaining a label of the target branch node; and when a third node corresponding to the head node information and the target branch node are not a same node, sending first information to the third node, and sending second information to the target branch node, where the second information is used to instruct the target branch node to generate a multicast forwarding entry. Embodiments of this application can reduce complexity of establishing the P2MP TE path.
Claims
1. A path establishment method implemented by a controller, the method comprising: computing a point-to-multipoint traffic engineering (P2MP TE) path comprising at least one branch node and at least two tail nodes; obtaining a label of a target branch node of the at least one branch node, wherein the target branch node is at least connected to a first node and a second node along the P2MP TE path; and sending first information comprising the label to the target branch node, the first information is used to instruct the target branch node to generate a multicast forwarding entry, the multicast forwarding entry comprises information about a path from the target branch node to the at least two tail nodes, and the multicast forwarding entry is used by the target branch node to forward a packet comprising the label.
2. The method according to claim 1, wherein the target branch node is a head node of the P2MP TE path.
3. The method according to claim 2, wherein the first information further comprises information indicating that the target branch node is the head node.
4. The method according to claim 1, further comprising: sending second information to a head node of the P2MP TE path, wherein the second information comprises the label and path information about a path from the head node to the target branch node.
5. The method according to claim 4, wherein the second information is used to instruct the head node to encapsulate the path information and the label of the target branch node in a received packet.
6. The method according to claim 1, further comprising: obtaining the label of the target branch node from the target branch node.
7. The method according to claim 6, wherein the obtaining the label of the target branch node, comprises: receiving a message from the target branch node, wherein the message comprises the label allocated by the target branch node.
8. The method according to claim 7, further comprising: sending a message to the target branch node to instruct the target branch node to allocate the label.
9. The method according to claim 1, wherein the obtaining the label of the target branch node comprises: allocating the label to the target branch node.
10. The method according to claim 1, wherein the computing, by the controller, the P2MP TE path comprises: computing the P2MP TE path by using head node information and tail node information comprised in a path establishment request.
11. The method according to claim 1, wherein the computing, by the controller, the P2MP TE path comprises: computing by using a constrained shortest path first (CSPF) algorithm, the P2MP TE path.
12. A controller managing at least three nodes, the controller comprising: a memory storing instructions; and a processor coupled to the memory and, when the processor executes the instructions, the processor is configured to perform operations comprising: computing a point-to-multipoint traffic engineering (P2MP TE) path comprising at least one branch node and at least two tail nodes; obtaining a label of a target branch node of the at least one branch node, wherein the target branch node is at least connected to a first node and a second node along the P2MP TE path; and sending first information comprising the label to the target branch node, the first information is used to instruct the target branch node to generate a multicast forwarding entry, the multicast forwarding entry comprises information about a path from the target branch node to the at least two tail nodes, and the multicast forwarding entry is used by the target branch node to forward a packet comprising the label.
13. The controller according to claim 12, wherein the target branch node is a head node of the P2MP TE path.
14. The controller according to claim 13, wherein the first information further comprises information indicating that the target branch node is the head node.
15. The controller according to claim 12, wherein the operations further comprise: sending second information to a head node of the P2MP TE path, wherein the second information comprises the label and path information about a path from the head node to the target branch node.
16. The controller according to claim 12, wherein the operations further comprise: obtaining the label of the target branch node from the target branch node.
17. The controller according to claim 16, wherein the operations further comprise: sending a message to the target branch node to instruct the target branch node to allocate the label.
18. The controller according to claim 12, wherein the operations further comprise: allocating the label to the target branch node.
19. A non-transitory computer-readable storage medium storing instructions for establishing a path for a controller, the instructions, when executed by a computer, cause the computer to carry out steps comprising: computing a point-to-multipoint traffic engineering (P2MP TE) path comprising at least one branch node and at least two tail nodes; obtaining a label of a target branch node of the at least one branch node, wherein the target branch node is at least connected to a first node and a second node along the P2MP TE path; and sending first information comprising the label to the target branch node, the first information is used to instruct the target branch node to generate a multicast forwarding entry, the multicast forwarding entry comprises information about a path from the target branch node to the at least two tail nodes, and the multicast forwarding entry is used by the target branch node to forward a packet comprising the label.
20. The non-transitory computer readable storage medium of claim 19, further storing instructions that when executed further cause the computer to perform steps comprising: sending second information to a head node of the P2MP TE path, wherein the second information comprises the label and path information about a path from the head node to the target branch node.
21. A system, comprising: at least one branch node comprising a target branch node; at least two tail nodes; and a controller, configured to: compute a point-to-multipoint traffic engineering (P2MP TE) path comprising the at least one branch node and the at least two tail nodes; obtain a label of the target branch node of the at least one branch node, wherein the target branch node is at least connected to a first node and a second node along the P2MP TE path; and send first information comprising the label to the target branch node, the first information is used to instruct the target branch node to generate a multicast forwarding entry, the multicast forwarding entry comprises information about a path from the target branch node to the at least two tail nodes, and the multicast forwarding entry is used by the target branch node to forward a packet comprising the label; wherein the target branch node is configured to: receive the first information; generate the multicast forwarding entry; and forward the packet comprising the label by using the multicast forwarding entry.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) To describe the technical solutions in the embodiments of this application more clearly, the following briefly describes the accompanying drawings required for the embodiments. Apparently, the accompanying drawings in the following description show merely some embodiments of this application, and a person of ordinary skill in the art may derive other drawings from these accompanying drawings without creative efforts.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DESCRIPTION OF EMBODIMENTS
(13) The following clearly describes the technical solutions in the embodiments of this application with reference to the accompanying drawings in the embodiments of this application. Apparently, the described embodiments are some but not all of the embodiments of this application. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of this application without creative efforts shall fall within the protection scope of this application.
(14) The embodiments of this application disclose a path establishment method and a controller, so as to reduce complexity of establishing a P2MP TE path. Details are separately described in the following.
(15) To better understand a path establishment method and a controller according to the embodiments of this application, the following first describes a network architecture used in the embodiments of this application. Referring to
(16) Based on the network architecture shown in
(17) 201. When detecting a path establishment request for establishing P2MP TE, compute a P2MP TE path by using head node information and tail node information included in the path establishment request.
(18) In this embodiment, the controller (controller) may obtain a topology structure between nodes in a network in advance by using the Interior Gateway Protocol (IGP) or the Border Gateway Protocol (BGP), and may obtain a label switched path (LSP) between the nodes in the network in advance by using the Path Computation Element Communication Protocol (PCEP). Therefore, when detecting the path establishment request that is for establishing the P2MP TE and that includes the head node information and the tail node information, the controller may compute the P2MP TE path based on the head node information, the tail node information, the topology structure between the nodes, and the LSP between the nodes, to be specific, compute a path between a node corresponding to the head node information and a node corresponding to the tail node information. For example, a head node is R1 in a left diagram in
(19) In a possible implementation, the controller may compute, by using a CSPF algorithm, an optimal path between the node corresponding to the head node information and the node corresponding to the tail node information, so that a packet transmission path can be optimal.
(20) In a possible implementation, the path establishment request may further include information such as required bandwidth, a required maximum delay, and a link affinity attribute. When computing the P2MP TE path, the controller may select, from the path from the node corresponding to the head node information to the node corresponding to the tail node information, a path that satisfies at least one of the information such as the required bandwidth, the required maximum delay, and the link affinity attribute, so that the computed P2MP TE path satisfies a service requirement, and accordingly a service packet can be transmitted.
(21) 202. Identify a target branch node in the P2MP TE path, and obtain a label of the target branch node.
(22) In this embodiment, after the P2MP TE path is computed, the target branch node in the P2MP TE path needs to be identified. To be specific, a specific node at which the P2MP TE path starts to branch needs to be identified, and the node is a branch node. The controller may send a label obtaining request to the target branch node, so that the target branch node returns the allocated label to the P2MP TE path. Alternatively, the controller may allocate the label to the P2MP TE path. This is not limited in this embodiment. The target branch node is connected to at least a first node and a second node. The first node is a first tail node or the first node is a node between the target branch node and the first tail node. The second node is a second tail node or the second node is a node between the target branch node and the second tail node. The first tail node and the second tail node are nodes in the at least two tail nodes. The target branch node is any one of the at least one branch node.
(23) In this embodiment, the label of the target branch node may be allocated by the target branch node. In this case, the controller may newly add a PCLRresv message (message) by extending the Path Computation Element Communication Protocol (PCEP), to request the label of the target branch node. Referring to
(24) 203. When a third node corresponding to the head node information and the target branch node are not a same node, send first information to the third node, and send second information to the target branch node.
(25) In this embodiment, the controller may newly add a PCLabelUpd message by extending the PCEP protocol, to deliver the first information to the third node and deliver the second information to the target branch node. Referring to
(26) In this embodiment, after the label of the target branch node is obtained, the first information is sent to the third node when the third node corresponding to the head node information and the target branch node are not a same node, that is, when a head node is not a branch node. The first information may include the label of the target branch node and information about a path from the third node to the target branch node in the P2MP TE path. The first information may be used to instruct the third node to encapsulate the path information and the label of the target branch node in a first packet when receiving the first packet. The label of the target branch node is after the path information in the encapsulated first packet. The path information may be used to instruct the third node to forward the encapsulated first packet based on the path information. The first information may be sent to the third node by using a label stack. For example, in the left diagram in
(27) 204. When a third node corresponding to the head node information and the target branch node are a same node, send third information and the label of the target branch node to the target branch node.
(28) In this embodiment, when the third node corresponding to the head node information and the target branch node are a same node, the label of the target branch node and the third information are delivered to the target branch node by using a PCLabelUpd message. The label of the target branch node may be used to instruct the target branch node to generate a second multicast forwarding entry based on the third information. The second multicast forwarding entry may include information about a path from the target branch node to a node corresponding to the tail node information in the P2MP TE path. The second multicast forwarding entry may be used by the target branch node to forward a second packet based on the second multicast forwarding entry when receiving the second packet. To be specific, the second packet is duplicated for a quantity of paths included in the second multicast forwarding entry, and each second packet is forwarded based on one path included in the second multicast forwarding entry. The third information may further include information used to indicate that the target branch node is an ingress node, to indicate that the target branch node is the ingress node.
(29) In the path establishment method described in
(30) Based on the network architecture shown in
(31) a computation unit 301, configured to: when a path establishment request for establishing P2MP TE is detected, compute a P2MP TE path by using head node information and tail node information included in the path establishment request, where the P2MP TE path includes at least one branch node and at least two tail nodes;
(32) an identification unit 302, configured to identify a target branch node in the P2MP TE path computed by the computation unit 301, where the target branch node is connected to at least a first node and a second node, the first node is a first tail node or the first node is a node between the target branch node and the first tail node, the second node is a second tail node or the second node is a node between the target branch node and the second tail node, the first tail node and the second tail node are nodes in the at least two tail nodes, and the target branch node is any one of the at least one branch node;
(33) an obtaining unit 303, configured to obtain a label of the target branch node identified by the identification unit 302; and
(34) a sending unit 304, configured to: when a third node corresponding to the head node information and the target branch node are not a same node, send first information to the third node, and send second information to the target branch node identified by the identification unit 302, where the first information includes the label obtained by the obtaining unit 303 and information about a path from the third node to the target branch node in the P2MP TE path computed by the computation unit, the first information is used to instruct the third node to encapsulate the path information and the label of the target branch node in a first packet when receiving the first packet, the path information is used to instruct the third node to forward the encapsulated first packet based on the path information, the second information is used to instruct the target branch node to generate a first multicast forwarding entry, the first multicast forwarding entry includes information about a path from the target branch node to a node corresponding to the tail node information in the P2MP TE path, and the first multicast forwarding entry is used by the target branch node to forward the first packet based on the first multicast forwarding entry when receiving the first packet including the label of the target branch node.
(35) In a possible implementation, the sending unit 304 is further configured to: when the third node corresponding to the head node information and the target branch node are a same node, send third information and the label of the target branch node that is obtained by the obtaining unit 303 to the target branch node identified by the identification unit 302. The label of the target branch node is used to instruct the target branch node to generate a second multicast forwarding entry based on the third information. The second multicast forwarding entry includes information about a path from the target branch node to a node corresponding to the tail node information in the P2MP TE path computed by the computation unit. The second multicast forwarding entry is used by the target branch node to forward a second packet based on the second multicast forwarding entry when receiving the second packet.
(36) In a possible implementation, the obtaining unit 303 is specifically configured to:
(37) send a label obtaining request message to the target branch node, where the label obtaining request message is used to instruct the target branch node to allocate the label to the P2MP TE path; and
(38) receive a response message sent by the target branch node, where the response message includes the label.
(39) In a possible implementation, the obtaining unit 303 is specifically configured to allocate the label to the target branch node.
(40) In a possible implementation, the computation unit 301 is specifically configured to compute, by using a constrained shortest path first CSPF algorithm, the P2MP TE path between the third node corresponding to the head node information and the node corresponding to the tail node information.
(41) In the controller described in
(42) Based on the network architecture shown in
(43) The memory 402 stores a set of program code, and the processor 401 is configured to invoke the program code stored in the memory 402 to perform the following operations:
(44) when detecting a path establishment request for establishing point-to-multipoint traffic engineering P2MP TE, computing a P2MP TE path by using head node information and tail node information included in the path establishment request, where the P2MP TE path includes at least one branch node and at least two tail nodes; and
(45) identifying a target branch node in the P2MP TE path, and obtaining a label of the target branch node, where the target branch node is connected to at least a first node and a second node, the first node is a first tail node or the first node is a node between the target branch node and the first tail node, the second node is a second tail node or the second node is a node between the target branch node and the second tail node, the first tail node and the second tail node are nodes in the at least two tail nodes, and the target branch node is any one of the at least one branch node.
(46) The transceiver 403 is configured to: when a third node corresponding to the head node information and the target branch node are not a same node, send first information to the third node, and send second information to the target branch node. The first information includes the label of the target branch node and information about a path from the third node to the target branch node in the P2MP TE path. The first information is used to instruct the third node to encapsulate the path information and the label of the target branch node in a first packet when receiving the first packet. The path information is used to instruct the third node to forward the encapsulated first packet based on the path information. The second information is used to instruct the target branch node to generate a first multicast forwarding entry. The first multicast forwarding entry includes information about a path from the target branch node to a node corresponding to the tail node information in the P2MP TE path. The first multicast forwarding entry is used by the target branch node to forward the first packet based on the first multicast forwarding entry when receiving the first packet including the label of the target branch node.
(47) In a possible implementation, the transceiver 503 is further configured to: when the third node corresponding to the head node information and the target branch node are a same node, send third information and the label of the target branch node to the target branch node. The label of the target branch node is used to instruct the target branch node to generate a second multicast forwarding entry based on the third information. The second multicast forwarding entry includes information about a path from the target branch node to a node corresponding to the tail node information in the P2MP TE path. The second multicast forwarding entry is used by the target branch node to forward a second packet based on the second multicast forwarding entry when receiving the second packet.
(48) In a possible implementation, that the processor 401 obtains a label of the target branch node includes:
(49) The transceiver 403 sends a label obtaining request message to the target branch node, where the label obtaining request message is used to instruct the target branch node to allocate the label to the P2MP TE path.
(50) The transceiver 403 receives a response message sent by the target branch node, where the response message includes the label.
(51) In a possible implementation, that the processor 401 obtains a label of the target branch node includes:
(52) The processor 401 allocates the label to the target branch node.
(53) In a possible implementation, that the processor 401 computes a P2MP TE path by using head node information and tail node information included in the path establishment request includes:
(54) The processor 401 computes, by using a constrained shortest path first CSPF algorithm, the P2MP TE path between the third node corresponding to the head node information and the node corresponding to the tail node information.
(55) Steps 201 and 202 may be performed by the processor 401 in the controller by invoking the program code stored in the memory 402, and step 203 and step 204 may be performed by the transceiver 403 in the controller.
(56) The computation unit 301, the identification unit 302, and the obtaining unit 303 may be implemented by the processor 401 and the memory 402 in the controller, and the sending unit 304 may be implemented by the transceiver 403 in the controller.
(57) In the controller described in
(58) Based on the network architecture shown in
(59) The controller 501 is configured to: when detecting a path establishment request for establishing P2MP TE, compute a P2MP TE path by using head node information and tail node information included in the path establishment request, identify a target branch node in the P2MP TE path, and obtain a label of the target branch node. The P2MP TE path includes at least one branch node and at least two tail nodes. The target branch node is connected to at least a first node and a second node. The first node is a first tail node or the first node is a node between the target branch node and the first tail node. The second node is a second tail node or the second node is a node between the target branch node and the second tail node. The first tail node and the second tail node are nodes in the at least two tail nodes. The target branch node is any one of the at least one branch node.
(60) The controller 501 is further configured to: when a third node corresponding to the head node information and the target branch node are not a same node, send first information to the third node, and send second information to the target branch node. The first information includes the label of the target branch node and information about a path from the third node to the target branch node in the P2MP TE path.
(61) The third node 502 is configured to: receive the first information, receive a first packet, encapsulate the path information and the label of the target branch node in the first packet, and forward the encapsulated first packet to the target branch node based on the path information. The label of the target branch node is after the path information in the encapsulated first packet.
(62) The target branch node 502 is configured to: receive the second information, generate a first multicast forwarding entry, receive the first packet including the label of the target branch node, and forward the first packet based on information, included in the first multicast forwarding entry, about a path from the target branch node to a node corresponding to the tail node information in the P2MP TE path.
(63) In a possible implementation, the controller 501 is further configured to: when the third node corresponding to the head node information and the target branch node are a same node, send third information and the label of the branch node to the target branch node.
(64) The target branch node 502 is further configured to: generate a second multicast forwarding entry under an indication of the label of the target branch node based on the third information, receive a second packet, and forward the second packet based on information, included in the second multicast forwarding entry, about a path from the target branch node to a node corresponding to the tail node information in the P2MP TE path.
(65) In a possible implementation, that the controller 501 obtains a label of the target branch node includes:
(66) The controller 501 sends a label obtaining request message to the target branch node 502.
(67) The target branch node 502 allocates the label to the P2MP TE path, and sends the label to the controller 501.
(68) The controller 501 receives the label sent by the target branch node 502.
(69) In a possible implementation, that the controller 501 obtains a label of the target branch node 502 includes:
(70) allocating the label to the target branch node 502.
(71) In a possible implementation, that the controller 501 computes a P2MP TE path by using head node information and tail node information included in the path establishment request includes:
(72) computing, by using a constrained shortest path first CSPF algorithm, the P2MP TE path between the third node corresponding to the head node information and the node corresponding to the tail node information.
(73) A head node may be indicated by using a dashed-line box, to indicate that the head node and a branch node may be a same node or different nodes.
(74) In the path establishment system described in
(75) In an embodiment, a readable storage medium is disclosed. The readable storage medium stores program code used by a command distribution apparatus to perform the path establishment method corresponding to
(76) A person of ordinary skill in the art may understand that all or a part of the steps of the methods in the embodiments may be implemented by a program instructing related hardware. The program may be stored in a computer readable storage medium. The storage medium may include a flash memory, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, an optical disk, or the like.
(77) Clause 1. A path establishment method implemented by a controller, the method comprising:
(78) computing a point-to-multipoint traffic engineering (P2MP TE) path comprising at least one branch node and at least two tail nodes;
(79) obtaining a label of a target branch node of the at least one branch node, wherein the target branch node is at least connected to a first node and a second node along the P2MP TE path; and
(80) sending a first information comprising the label to the target branch node, the first information is used to instruct the target branch node to generate a first multicast forwarding entry, the first multicast forwarding entry comprises information about a path from the target branch node to the at least two tail nodes, and the first multicast forwarding entry is used by the target branch node to forward the first packet comprising the label.
(81) Clause 2. The method according to Clause 1, wherein the target branch node is a head node of the P2MP TE path.
(82) Clause 3. The method according to Clause 2, wherein the first information further comprising information indicating that the target branch node is the head node.
(83) Clause 4. The method according to any one of Clauses 1 to 3, wherein the method further comprising:
(84) sending a second information to a head node of the P2MP TE path, wherein the second information comprising the label and path information about a path from the head node to the target branch node.
(85) Clause 5. The method according to Clause 4, wherein the second information is used to instruct the head node to encapsulate the path information and the label of the target branch node in a received packet.
(86) Clause 6. The method according to any one of Clauses 1 to 5, wherein the method further comprising:
(87) obtaining the label of the target branch node from the target branch node.
(88) Clause 7. The method according to Clause 6, wherein the obtaining the label of the target branch node, comprises:
(89) receiving a message from the target branch node, wherein the message comprising the label allocated by the target branch node.
(90) Clause 8. The method according to Clause 7, wherein the method further comprising:
(91) sending a message to the target branch node to instruct the target branch node to allocate the label.
(92) Clause 9. The method according to Clause 1, wherein the obtaining the label of the target branch node comprises:
(93) allocating the label to the target branch node.
(94) Clause 10. The method according to any one of Clauses 1 to 9, wherein the computing, by the controller, the P2MP TE path comprises:
(95) computing the P2MP TE path by using head node information and tail node information comprised in a path establishment request.
(96) Clause 11. The method according to any one of Clauses 1 to 10, wherein the computing, by the controller, the P2MP TE path comprises:
(97) computing by using a constrained shortest path first CSPF algorithm, the P2MP TE path.
(98) Clause 12. A controller managing at least three nodes comprises:
(99) a memory comprising instructions; and
(100) a processor coupled to the memory, wherein the processor is configured to execute the instructions to: compute a point-to-multipoint traffic engineering (P2MP TE) path comprising at least one branch node and at least two tail nodes; obtain a label of a target branch node of the at least one branch node, wherein the target branch node is at least connected to a first node and a second node along the P2MP TE path; and send a first information comprising the label to the target branch node, the first information is used to instruct the target branch node to generate a first multicast forwarding entry, the first multicast forwarding entry comprises information about a path from the target branch node to the at least two tail nodes, and the first multicast forwarding entry is used by the target branch node to forward the first packet comprising the label.
(101) Clause 13. The controller according to Clause 12, wherein the target branch node is a head node of the P2MP TE path.
(102) Clause 14. The controller according to Clause 13, wherein the first information further comprising information indicating that the target branch node is the head node.
(103) Clause 15. The controller according to Clause 12, wherein the processor is configured to execute the instructions to:
(104) send a second information to a head node of the P2MP TE path, wherein the second information comprising the label and path information about a path from the head node to the target branch node.
(105) Clause 16. The controller according to any one of Clauses 12 to 15, wherein the processor is configured to execute the instructions to:
(106) obtain the label of the target branch node from the target branch node.
(107) Clause 17. The controller according to Clause 16, wherein the processor is configured to execute the instructions to:
(108) send a message to the target branch node to instruct the target branch node to allocate the label. Alternatively, the message is a response message in response to a request message sent by the controller.
(109) Clause 17. The controller according to Clause 16, wherein the processor is configured to execute the instructions to:
(110) send the request message to instruct the target branch node to allocate the label.
(111) Clause 18. The controller according to any one of Clauses 12 to 15, wherein the processor is configured to execute the instructions to:
(112) allocate the label to the target branch node.
(113) Clause 19. A controller, configured to implement any one of the method of Clauses 1 to 11.
(114) Clause 20. A non-transitory computer-readable storage medium storing instructions for establishing a path for a controller, the instructions, when executed by a computer, cause the computer to carry out any one of the methods of Clauses 1 to 11.
(115) The path establishment method and the controller according to the embodiments of this application are described in detail above. The principles and implementations of this application are described in this specification by using specific examples. The description of the foregoing embodiments is merely intended to help understand the method and core ideas of this application. In addition, with respect to the implementations and the application scope, modifications may be made by a person of ordinary skill in the art according to the idea of this application. Therefore, the content of this specification shall not be construed as a limitation on this application.