A first Software Defined Network, SDN, controller (106, 110, 210A-210E, 1100) comprising: a memory comprising instructions executable by a processor; and a processor coupled to the memory and configured to execute the instructions, wherein executing the instructions causes the processor to: receive, from a second SDN controller during a border gateway protocol, BGP, communication session, a communications capabilities message indicating capabilities of the second SDN controller; receive, from the second SDN controller, an advertisement message indicating connections and accesses of a second domain controlled by the second SDN controller; receive a request to route data between a source located in a first domain and a destination; transmit a first request message to the second SDN controller to cause the second SDN controller to compute a path segment through the second domain; wherein the first request message is a Request for Computing Path Segment, CPSReq, receive, from the second SDN controller, a Reply for Computing Path Segment, CPSRep, containing information relating to the path requested for computation according to the CPSReq; and transmit a second request message to create a tunnel segment of an end-to-end, E2E, tunnel between the source and the destination crossing the first domain and the second domain, wherein the first SDN controller is a parent controller of the second SDN controller. a memory comprising instructions executable by a processor; and a processor coupled to the memory and configured to execute the instructions, wherein executing the instructions causes the processor to: receive, from a second SDN controller during a border gateway protocol, BGP, communication session, a communications capabilities message indicating capabilities of the second SDN controller; receive, from the second SDN controller, an advertisement message indicating connections and accesses of a second domain controlled by the second SDN controller; receive a request to route data between a source located in a first domain and a destination; transmit a first request message to the second SDN controller to cause the second SDN controller to compute a path segment through the second domain; wherein the first request message is a Request for Computing Path Segment, CPSReq, receive, from the second SDN controller, a Reply for Computing Path Segment, CPSRep, containing information relating to the path requested for computation according to the CPSReq; and transmit a second request message to create a tunnel segment of an end-to-end, E2E, tunnel between the source and the destination crossing the first domain and the second domain, wherein the first SDN controller is a parent controller of the second SDN controller. receive, from a second SDN controller during a border gateway protocol, BGP, communication session, a communications capabilities message indicating capabilities of the second SDN controller; receive, from the second SDN controller, an advertisement message indicating connections and accesses of a second domain controlled by the second SDN controller; receive a request to route data between a source located in a first domain and a destination; transmit a first request message to the second SDN controller to cause the second SDN controller to compute a path segment through the second domain; wherein the first request message is a Request for Computing Path Segment, CPSReq, receive, from the second SDN controller, a Reply for Computing Path Segment, CPSRep, containing information relating to the path requested for computation according to the CPSReq; and transmit a second request message to create a tunnel segment of an end-to-end, E2E, tunnel between the source and the destination crossing the first domain and the second domain, wherein the first SDN controller is a parent controller of the second SDN controller.