A centralized, software-defined networking system for connecting network entities, the system comprising: a plurality of network entities connected vertically across layers and horizontally on the same layer, particular ones of the network entities being software defined SD entities (501, 201, 210 to 510, 220, 230 to 530) and remaining network entities being non-SD entities (502 to 504, 320, 420) and some non-SD entities being connected to at least one of the SD entities; and a centralized software-defined controller for controlling SD entities, non-SD entities being uncontrollable by the controller, responsive to a demand for a communication path between two network entities (501, 530), the controller being configured to inform all involved SD entities (501, 201, 210, 220, 230, 530) and allocate resources with the involved SD entities to reconfigure themselves so as to establish the communication path, the involved SD entities being all connected to each other either vertically or horizontally, wherein software-defined is reconfigurability enabled by software, and wherein the centralized controller is configured to compile and maintain a list of the SD entities, carry out computing of a connection path or paths in the lowest layer possible to minimize the number of vertical hops such that SD entities on the same layer are traversed end-to-end via only one connection path, send parallel configuration messages using out-of-band connections to all involved SD entities along the computed connection path or paths, such that there is no need for handshaking between peer SD entities on the same layer, and receive an acknowledgment message from all involved SD entities, whereby the communication path is considered to be established. a plurality of network entities connected vertically across layers and horizontally on the same layer, particular ones of the network entities being software defined SD entities (501, 201, 210 to 510, 220, 230 to 530) and remaining network entities being non-SD entities (502 to 504, 320, 420) and some non-SD entities being connected to at least one of the SD entities; and a centralized software-defined controller for controlling SD entities, non-SD entities being uncontrollable by the controller, responsive to a demand for a communication path between two network entities (501, 530), the controller being configured to inform all involved SD entities (501, 201, 210, 220, 230, 530) and allocate resources with the involved SD entities to reconfigure themselves so as to establish the communication path, the involved SD entities being all connected to each other either vertically or horizontally, wherein software-defined is reconfigurability enabled by software, and wherein the centralized controller is configured to compile and maintain a list of the SD entities, carry out computing of a connection path or paths in the lowest layer possible to minimize the number of vertical hops such that SD entities on the same layer are traversed end-to-end via only one connection path, send parallel configuration messages using out-of-band connections to all involved SD entities along the computed connection path or paths, such that there is no need for handshaking between peer SD entities on the same layer, and receive an acknowledgment message from all involved SD entities, whereby the communication path is considered to be established.