An apparatus comprising: a processor configured to: receive a request from a network entity for computing a path for a Multiprotocol Label Switching, MPLS, Point-to-Multipoint, P2MP, Label Switched Path, LSP, wherein the request comprises ResultPathTree, RestDestinationNodes, and CandidateNodeList, wherein RestDestinationNodes is a number of destination nodes to which a shortest path needs to be determined, wherein ResultPathTree contains shortest paths from a source node to boundary nodes or some of destination nodes, each boundary node of the boundary nodes is a node used to connect two domains together, wherein CandidateNodeList contains nodes through which the shortest paths traverse, each candidate node in CandidateNodeList has the following information: a cost of a path from the source node to the candidate node, a previous hop node and a link between the previous hop node and the candidate node, the PCE responsible for the candidate node, and a first flag indicating that the candidate node is a destination node if it is set; a second flag indicating that the candidate node is the source node if it is set; determine a node C with minimum cost based on CandidateNodeList, wherein CandidateNodeList contains the node C; determine whether a current Path Computation Element, PCE, is a PCE responsible for a domain containing the node C, and, if so, remove the node C from CandidateNodeList, graft the node C into ResultPathTree, and grow the ResultPathTree from node C, wherein the current PCE is the apparatus; wherein growing the ResultPathTree comprises: decreasing RestDestinationNodes by one if node C is a destination node; and if RestDestinationNodes is zero, determining a first shortest path from the source node to the node C and sending a reply message with the first shortest path to the network entity from which the request is received. receive a request from a network entity for computing a path for a Multiprotocol Label Switching, MPLS, Point-to-Multipoint, P2MP, Label Switched Path, LSP, wherein the request comprises ResultPathTree, RestDestinationNodes, and CandidateNodeList, wherein RestDestinationNodes is a number of destination nodes to which a shortest path needs to be determined, wherein ResultPathTree contains shortest paths from a source node to boundary nodes or some of destination nodes, each boundary node of the boundary nodes is a node used to connect two domains together, wherein CandidateNodeList contains nodes through which the shortest paths traverse, each candidate node in CandidateNodeList has the following information: a cost of a path from the source node to the candidate node, a previous hop node and a link between the previous hop node and the candidate node, the PCE responsible for the candidate node, and a first flag indicating that the candidate node is a destination node if it is set; a second flag indicating that the candidate node is the source node if it is set; determine a node C with minimum cost based on CandidateNodeList, wherein CandidateNodeList contains the node C; determine whether a current Path Computation Element, PCE, is a PCE responsible for a domain containing the node C, and, if so, remove the node C from CandidateNodeList, graft the node C into ResultPathTree, and grow the ResultPathTree from node C, wherein the current PCE is the apparatus; wherein growing the ResultPathTree comprises: decreasing RestDestinationNodes by one if node C is a destination node; and if RestDestinationNodes is zero, determining a first shortest path from the source node to the node C and sending a reply message with the first shortest path to the network entity from which the request is received. decreasing RestDestinationNodes by one if node C is a destination node; and if RestDestinationNodes is zero, determining a first shortest path from the source node to the node C and sending a reply message with the first shortest path to the network entity from which the request is received.