A method for discovering routes from a plurality of forwarding devices (104, 106, 108, 110, 112) to a routing control device, comprising: (a) receiving, on a data link layer port of a forwarding device of the plurality of forwarding devices, a control packet originating from the routing control device, wherein the data link layer port connects the forwarding device to another forwarding device via a link, and the control packet comprises a performance metric indicating an estimated time to route a packet from the other forwarding device to the routing control device; (b) updating the performance metric by adding a time to route the packet from the other forwarding device to the forwarding device via said link to the estimated time, after said updating, determining that the performance metric is lower than performance metrics included in all control packets previously received by, and updated at, the forwarding device; in response to said determining, identifying the data link layer port that received the control packet as the data link layer port on the forwarding device to forward data to reach the routing control device, the data link layer port identified by a MAC address; (c) in response to receipt of a data stream at the forwarding device, sending a message to the routing control device on the data link layer port identified in (b), the message instructing the routing control device to determine a path through the plurality of forwarding devices to a destination and to configure a subset of the plurality of forwarding devices to forward the data stream along the determined path; and (d) forwarding the new data stream according to configuration commands of the routing control device. (a) receiving, on a data link layer port of a forwarding device of the plurality of forwarding devices, a control packet originating from the routing control device, wherein the data link layer port connects the forwarding device to another forwarding device via a link, and the control packet comprises a performance metric indicating an estimated time to route a packet from the other forwarding device to the routing control device; (b) updating the performance metric by adding a time to route the packet from the other forwarding device to the forwarding device via said link to the estimated time, after said updating, determining that the performance metric is lower than performance metrics included in all control packets previously received by, and updated at, the forwarding device; in response to said determining, identifying the data link layer port that received the control packet as the data link layer port on the forwarding device to forward data to reach the routing control device, the data link layer port identified by a MAC address; (c) in response to receipt of a data stream at the forwarding device, sending a message to the routing control device on the data link layer port identified in (b), the message instructing the routing control device to determine a path through the plurality of forwarding devices to a destination and to configure a subset of the plurality of forwarding devices to forward the data stream along the determined path; and (d) forwarding the new data stream according to configuration commands of the routing control device.