An apparatus associated with a first domain, the apparatus comprising: a processor configured to compute a portion of a point-to-multipoint, P2MP, path, wherein the P2MP path spans a plurality of domains including the first domain, wherein the apparatus further comprises an ingress port coupled to the processor and configured to receive a request message, wherein the request message comprises a source node, a plurality of destination nodes, a result path list, and a candidate path list, and wherein the processor is configured to compute the portion of the P2MP path based only on the request message, a graph of the first domain, and inter-domain links connected to the first domain, without requiring knowledge of a core tree of domains, wherein the result path list contains final shortest paths from the source node to boundary nodes or one or more destination nodes of the plurality of destination nodes, and the candidate path list contains temporary shortest paths from the source node to the boundary nodes or one or more destination nodes of the plurality of destination nodes currently found, each boundary node of the boundary nodes is a node used to connect two domains together; wherein the apparatus is configured: a) to remove a temporary shortest path with the minimum cost in the candidate path list from the candidate path list and b) to determine whether the removed temporary shortest path is in a graph formed by the graph of the first domain and the inter-domain links connected to the first domain and if so, to graft the removed temporary shortest path to the result path list as a final shortest path; c) to determine whether an end point of the removed temporary shortest path is one of the plurality of destination nodes and if so, to remove the end point of the removed temporary shortest path from the plurality of destination nodes; and e) to send, if the shortest paths to all the destination nodes are found, a reply with the shortest paths to a device from which the request message is received. a processor configured to compute a portion of a point-to-multipoint, P2MP, path, wherein the P2MP path spans a plurality of domains including the first domain, wherein the apparatus further comprises an ingress port coupled to the processor and configured to receive a request message, wherein the request message comprises a source node, a plurality of destination nodes, a result path list, and a candidate path list, and wherein the processor is configured to compute the portion of the P2MP path based only on the request message, a graph of the first domain, and inter-domain links connected to the first domain, without requiring knowledge of a core tree of domains, wherein the result path list contains final shortest paths from the source node to boundary nodes or one or more destination nodes of the plurality of destination nodes, and the candidate path list contains temporary shortest paths from the source node to the boundary nodes or one or more destination nodes of the plurality of destination nodes currently found, each boundary node of the boundary nodes is a node used to connect two domains together; wherein the apparatus is configured: a) to remove a temporary shortest path with the minimum cost in the candidate path list from the candidate path list and b) to determine whether the removed temporary shortest path is in a graph formed by the graph of the first domain and the inter-domain links connected to the first domain and if so, to graft the removed temporary shortest path to the result path list as a final shortest path; c) to determine whether an end point of the removed temporary shortest path is one of the plurality of destination nodes and if so, to remove the end point of the removed temporary shortest path from the plurality of destination nodes; and e) to send, if the shortest paths to all the destination nodes are found, a reply with the shortest paths to a device from which the request message is received. a) to remove a temporary shortest path with the minimum cost in the candidate path list from the candidate path list and b) to determine whether the removed temporary shortest path is in a graph formed by the graph of the first domain and the inter-domain links connected to the first domain and if so, to graft the removed temporary shortest path to the result path list as a final shortest path; c) to determine whether an end point of the removed temporary shortest path is one of the plurality of destination nodes and if so, to remove the end point of the removed temporary shortest path from the plurality of destination nodes; and e) to send, if the shortest paths to all the destination nodes are found, a reply with the shortest paths to a device from which the request message is received.