Systems and methods for determining network forwarding paths with a controller
First Claim
1. A method of using a controller that controls switches in a network, the method comprising:
- with the controller, receiving a network packet;
generating an identifier based on network attributes of the network packet;
based on the identifier, determining a network forwarding path for the network packet;
with the controller, maintaining network topology information for the network;
generating a directed acyclic graph based on the network topology information, wherein the switches include ports; and
generating a plurality of virtual switches, wherein at least one virtual switch of the plurality of virtual switches includes ports from multiple switches, wherein generating the identifier based on the network attributes of the network packet comprises;
identifying which virtual switch of the plurality of virtual switches is associated with the network packet; and
generating the identifier based on the identified virtual switch.
5 Assignments
0 Petitions
Accused Products
Abstract
A controller may control switches in a network that forwards network packets between end hosts. The controller may generate a directed acyclic graph based on maintained network topology information. The directed acyclic graph may include multiple network paths between any given pair of switches. For a given network packet received from an end host, the controller may generate an identifier or otherwise classify the network packet based on network attributes of the network packet. The network attributes may include packet header information retrieved from the network packet, information maintained by the controller such as which virtual switch is associated with the network packet, and/or other network attributes. The controller may use the network packet identifier to select a network forwarding path for the network packet from the directed acyclic graph.
-
Citations
18 Claims
-
1. A method of using a controller that controls switches in a network, the method comprising:
-
with the controller, receiving a network packet; generating an identifier based on network attributes of the network packet; based on the identifier, determining a network forwarding path for the network packet; with the controller, maintaining network topology information for the network; generating a directed acyclic graph based on the network topology information, wherein the switches include ports; and generating a plurality of virtual switches, wherein at least one virtual switch of the plurality of virtual switches includes ports from multiple switches, wherein generating the identifier based on the network attributes of the network packet comprises; identifying which virtual switch of the plurality of virtual switches is associated with the network packet; and generating the identifier based on the identified virtual switch. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of using a controller that controls switches in a network, the method comprising:
-
with the controller, selecting first and second switches of the network; with the controller, selecting a plurality of forwarding paths between the first and second switches; with the controller, assigning an identifier to each selected path; with the controller, controlling the switches to generate a forwarding path of the plurality of forwarding paths based on the assigned identifiers, wherein the switches include ports; and generating a plurality of virtual switches, wherein at least one virtual switch of the plurality of virtual switches includes ports from multiple switches, wherein assigning the identifier comprises; identifying which virtual switch of the plurality of virtual switches is associated with a network packet received by the controller; and generating the identifier based on the identified virtual switch. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A method of using a controller that controls switches in a network, the method comprising:
-
with the controller, identifying network topology information for the network; based on the network topology information, generating a directed acyclic graph including nodes corresponding to the switches and including directed edges between the nodes using the controller; with the controller, receiving and classifying a network packet to produce a classification based on network attributes associated with the network packet; with the controller, controlling the switches to generate a network forwarding path for the network packet based on the directed acyclic graph and the classification of the network packet, wherein the switches include ports; and generating a plurality of virtual switches, wherein at least one virtual switch of the plurality of virtual switches includes ports from multiple switches, and wherein classifying the network packet comprises generating an identifier based on the network attributes associated with the network packet comprises; identifying which virtual switch of the plurality of virtual switches is associated with the network packet; and generating the identifier based on the identified virtual switch. - View Dependent Claims (18)
-
Specification