Specifying and utilizing paths through a network
First Claim
Patent Images
1. A method of specifying a path for a data message flow through a network comprising a plurality of forwarding elements, the method comprising:
- at a host computer executing a source machine sending the data message flow,using a set of attributes associated with the data message flow to identify one path-defining rule from a plurality of path-defining rules each of which (i) is stored on the host computer and (ii) specifies a different candidate path from a plurality of candidate paths for the data message flow through the network to a destination of the data message flow, the path specified by the identified path-defining rule traversing through a set of forwarding elements in a particular sequence;
with an outer tunnel header that is placed outside of layers 2 and 3 headers of each data message of the flow, encapsulating each data message in the flow, each outer tunnel header comprising (i) an outer portion that stores a destination network address that is a network address of a forwarding element that is the first forwarding element in the particular sequence, and (ii) an inner portion that stores a set of forwarding element identifiers identifying the set of forwarding elements on the path specified by the identified path-defining rule and a next forwarding-element identifier that identifies a next hop forwarding element along the path and is adjusted by each subsequent forwarding element in the specified path to identify the next hop forwarding element without removing the identifier of the subsequent forwarding element from the set of identifiers stored in the inner portion; and
forwarding the data messages encapsulated with their tunnel headers along the path specified by the identified path-defining rule.
1 Assignment
0 Petitions
Accused Products
Abstract
For a multi-tenant environment, some embodiments of the invention provide a novel method for (1) embedding a specific path for a tenant'"'"'s data message flow through a network in tunnel headers encapsulating the data message flow, and then (2) using the embedded path information to direct the data message flow through the network. In some embodiments, the method selects the specific path from two or more viable such paths through the network for the data message flow.
-
Citations
16 Claims
-
1. A method of specifying a path for a data message flow through a network comprising a plurality of forwarding elements, the method comprising:
at a host computer executing a source machine sending the data message flow, using a set of attributes associated with the data message flow to identify one path-defining rule from a plurality of path-defining rules each of which (i) is stored on the host computer and (ii) specifies a different candidate path from a plurality of candidate paths for the data message flow through the network to a destination of the data message flow, the path specified by the identified path-defining rule traversing through a set of forwarding elements in a particular sequence; with an outer tunnel header that is placed outside of layers 2 and 3 headers of each data message of the flow, encapsulating each data message in the flow, each outer tunnel header comprising (i) an outer portion that stores a destination network address that is a network address of a forwarding element that is the first forwarding element in the particular sequence, and (ii) an inner portion that stores a set of forwarding element identifiers identifying the set of forwarding elements on the path specified by the identified path-defining rule and a next forwarding-element identifier that identifies a next hop forwarding element along the path and is adjusted by each subsequent forwarding element in the specified path to identify the next hop forwarding element without removing the identifier of the subsequent forwarding element from the set of identifiers stored in the inner portion; and forwarding the data messages encapsulated with their tunnel headers along the path specified by the identified path-defining rule. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A non-transitory machine readable medium storing a program for specifying a path for a data message flow through a network comprising a plurality of forwarding elements, the program for execution by a set of hardware processing units of a host computer executing a source machine sending the data message flow, the program comprising sets of instructions for:
-
using a set of attributes associated with the data message flow to identify one path-defining rule from a plurality of path-defining rules each of which (i) is stored on the host computer and (ii) specifies a different candidate path from a plurality of candidate paths for the data message flow through the network to a destination of the data message flow, the path specified by the identified path-defining rule traversing through a set of forwarding elements in a particular sequence; with an outer tunnel header that is placed outside of layers 2 and 3 headers of each data message of the flow, encapsulating each data message in the flow, each outer tunnel header comprising (i) an outer portion that stores a destination network address that is a network address of a forwarding element that is the first forwarding element in the particular sequence, and (ii) an inner portion that stores a set of forwarding element identifiers identifying the set of forwarding elements on the path specified by the identified path-defining rule and a next forwarding-element identifier that identifies a next hop forwarding element along the path and is adjusted by each subsequent forwarding element in the specified path to identify the next hop forwarding element without removing the identifier of the subsequent forwarding element from the set of identifiers stored in the inner portion; and forwarding the data messages encapsulated with their tunnel headers along the path specified by the identified path-defining rule. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification