Control device discovery in networks having separate control and forwarding devices
AssigneeLevel 3 Communications, LLC
InventorsWilliam Thomas Sella, James Michael Sella
Life of this patent
Estimating the term…
Abstract
A Software Defined Network (SDN) includes a plurality of forwarding devices and a routing control device located separate from the forwarding devices. The routing control device, establishes paths to and from the network forwarding devices. Using such paths, forwarding devices send the routing control device information reflecting the topology if the network. Embodiments disclosed herein enable automatic discovery of the topology of the network and the paths to and from the routing control device.
Claims21
A method for discovering routes from a plurality of forwarding devices 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 includes a performance metric indicating an estimated time to route a packet from the other forwarding device to the routing control device;
- (b) identifying, based at least in part on (i) the data link layer port that received the control packet and (ii) the performance metric in the control packet, which data link layer port, identified by a MAC address, on the forwarding device to forward data to reach the routing control device;
- (c) in response to receipt of a new 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 new data stream along the determined path;
- and
- (d) forwarding the new data stream according to configuration commands of the routing control device.
A forwarding device for discovering routes to a control device, comprising:
- a switch discovery module configured to:
- (i) receive, on a data link layer port of the forwarding device, a control packet originating from the routing control device, wherein the port connects the forwarding device to another forwarding device via a link and the control packet includes a performance metric indicating an estimated time to route a packet from the other forwarding device to the routing control device, and (ii) identify, based at least in part on (i) the data link layer port that received the control packet and (ii) the performance metric in the control packet, which data link layer port, identified by a MAC address, on the forwarding device to forward data to reach the routing control device;
- a path request module configured to, in response to receipt of a new data stream at the forwarding device, send a message to the routing control device on the identified data link layer port, the message instructing the routing control device to:
- (i) determine a path through the plurality of forwarding devices to a destination and (ii) configure a subset of the plurality of forwarding devices to forward the new data stream along the determined path;
- and
- a routing table within the forwarding device populated to enable the forwarding device to forward the new data stream according to configuration commands of the routing control device.
A program storage device tangibly embodying a program of instructions executable by at least one machine to perform a method for discovering routes from a plurality of forwarding devices to a routing control device, the method 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 includes a performance metric indicating an estimated time to route a packet from the other forwarding device to the routing control device;
- (b) identifying, based at least in part on (i) the data link layer port that received the control packet and (ii) the performance metric in the control packet, which data link layer port, identified by a MAC address, on the forwarding device to forward data to reach the routing control device;
- (c) in response to receipt of a new 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 new data stream along the determined path;
- and
- (d) forwarding the new data stream according to configuration commands of the routing control device.
Dependencies are inferred from the claim text.