Apparatus and method for scalable and dynamic traffic engineering in a data communication network
First Claim
1. A method for routing a data packet through an explicit path in a data communication network, the data packet having an incoming global path identifier corresponding to the explicit path, the data communication network comprising a plurality of network nodes, each of the plurality of network nodes including a network device, the explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of the plurality of hops being associated with one of the plurality of network nodes, the method comprising:
- receiving the data packet from the prior hop at the current hop in the network device;
performing a look-up function into a forwarding table using an index based on the incoming global path identifier to determine a forwarding table entry related to the next hop to which the data packet should be forwarded;
extracting an outgoing global path identifier for the data packet from the forwarding table entry, wherein the outgoing global path identifier for the data packet has been pre-calculated as a function of (1) the incoming global path identifier and (2) an identifier of the network device receiving the data packet at the current hop;
replacing the incoming global path identifier with the outgoing global path identifier in the data packet; and
forwarding the data packet to the next hop.
1 Assignment
0 Petitions
Accused Products
Abstract
A global path identifier is assigned to each explicit route through a data communication network. The global path identifier is inserted into each packet as the packet enters a network and is used in selecting the next hop. When encountering a new selected path, an ingress router sends an explicit object to downstream nodes of the path to set up explicit routes by caching the next hop in an Explicit Forwarding Information Base (“EFIB”) table. Ingress routers maintain an Explicit Route Table (“ERT”) that tracks the global path identifier associated with each flow through the network. Multiple flows using the same path can be implemented by sharing the same global path identifier. In case of sudden network load changes, rerouting can be performed by changing the global path identifier associated with those flows that need to be rerouted and by then transmitting a new path object to downstream nodes.
80 Citations
38 Claims
-
1. A method for routing a data packet through an explicit path in a data communication network, the data packet having an incoming global path identifier corresponding to the explicit path, the data communication network comprising a plurality of network nodes, each of the plurality of network nodes including a network device, the explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of the plurality of hops being associated with one of the plurality of network nodes, the method comprising:
-
receiving the data packet from the prior hop at the current hop in the network device; performing a look-up function into a forwarding table using an index based on the incoming global path identifier to determine a forwarding table entry related to the next hop to which the data packet should be forwarded; extracting an outgoing global path identifier for the data packet from the forwarding table entry, wherein the outgoing global path identifier for the data packet has been pre-calculated as a function of (1) the incoming global path identifier and (2) an identifier of the network device receiving the data packet at the current hop; replacing the incoming global path identifier with the outgoing global path identifier in the data packet; and forwarding the data packet to the next hop. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus for routing a data packet through an explicit path in a data communication network, the data packet having an incoming global path identifier corresponding to the explicit path, the data communication network comprising a plurality of network nodes, each of the plurality of network nodes including a network device, the explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of the plurality of hops being associated with one of the plurality of network nodes, the apparatus comprising:
-
means for receiving the data packet from the prior hop at the current hop in the network device; means for performing a look-up function into a forwarding table using an index based on the incoming global path identifier to determine a forwarding table entry related to the next hop to which the data packet should be forwarded; means for extracting an outgoing global path identifier for the data packet from the forwarding table entry, wherein the outgoing global path identifier for the data packet has been pre-calculated as a function of (1) the incoming global path identifier and (2) an identifier of the network device receiving the data packet at the current hop; means for replacing the incoming global path identifier with the outgoing global path identifier in the data packet; and means for forwarding the data packet to the next hop. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for routing a data packet through an explicit path in a data communication network, the data packet having an incoming global path identifier corresponding to the explicit path, the data communication network comprising a plurality of network nodes, each of the plurality of network nodes including a network device, the explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of the plurality of hops being associated with one of the plurality of network nodes, the apparatus comprising:
-
an input interface for receiving the data packet from the prior hop at the current hop in the network device; table search logic for performing a look-up function into a forwarding table using an index based on the incoming global path identifier to determine a forwarding table entry related to the next hop to which the data packet should be forwarded; path identifier assignment logic which extracts an outgoing global path identifier for the data packet from the forwarding table entry, wherein the outgoing global path identifier for the data packet has been pre-calculated as a function of (1) the incoming global path identifier and (2) an identifier of the network device receiving the data packet at the current hop; path identifier insertion logic which replaces the incoming global path identifier with the outgoing global path identifier in the data packet; and packet forwarding logic for forwarding the data packet to the next hop. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method of routing a data packet through an explicit path in a data communication network, the data packet having an incoming global path identifier corresponding to the explicit path, the data communication network comprising a plurality of network nodes, each of the plurality of network nodes including a network device, the explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of the plurality of hops being associated with one of the plurality of network nodes, the method comprising:
-
receiving the data packet from the prior hop at the current hop in the network device; performing a look-up function into a forwarding table using an index based on the incoming global path identifier to determine a forwarding table entry related to the next hop to which the data packet should be forwarded; extracting an outgoing global path identifier for the data packet from the forwarding table entry, wherein the outgoing global path identifier for the data packet has been pre-calculated as a function of (1) the incoming global path identifier and (2) an identifier of the network device receiving the data packet at the current hop; replacing the incoming global path identifier with the outgoing global path identifier in the data packet; and forwarding the data packet to the next hop.
-
-
26. A method for routing a data packet through at least one explicit path in a data communication network, the data packet having a source/destination data pair, the at least one explicit path having specified a plurality of network nodes that form a route from a source network node to a destination network node, the data communication network comprising a plurality of network nodes, the method comprising:
-
receiving the data packet having the source/destination data pair; performing a look-up fraction into a forwarding table using an index based on the source/destination data pair to determine a forwarding table entry related to a next network node along the route to which the data packet should be forwarded; extracting a global path identifier for the data packet from the forwarding table entry, wherein the global path identifier for the data packet has been pre-calculated for the at least one explicit path through the data communication network; inserting the global path identifier into the data packet; and forwarding the data packet to the next network node. - View Dependent Claims (27, 28, 29)
-
-
30. An apparatus for routing a data packet through at least one explicit path in a data communication network, the data packet having a source/destination data pair, the at least one explicit path having specified a plurality of network nodes that form a route from a source network node to a destination network node, the data communication network comprising a plurality of network nodes, the apparatus comprising:
-
means for receiving the data packet having the source/destination data pair; means for performing a look-up function into a forwarding table using an index based on the source/destination data pair to determine a forwarding table entry related to a next network node along the route to which the data packet should be forwarded; means for extracting a global path identifier for the data packet from the forwarding table entry, wherein the global path identifier for the data packet has been pre-calculated for the at least one explicit path through the data communication network; means for inserting the global path identifier into the data packet; and means for forwarding the data packet to the next network node. - View Dependent Claims (31, 32, 33)
-
-
34. An apparatus for routing a data packet through at least one explicit path in a data communication network, the data packet having a source/destination data pair, the at least one explicit path having specified a plurality of network nodes that form a route from a source network node to a destination network node, the data communication network comprising a plurality of network nodes, the apparatus comprising:
-
an input interface for receiving the data packet having the source/destination data pair; table search logic for performing a look-up function into a forwarding table using an index based on the source/destination data pair to determine a forwarding table entry related to a next network node along the route to which the data packet should be forwarded; global path identifier assignment logic which extracts a global path identifier for the data packet from the forwarding table entry, wherein the global path identifier for the data packet has been pre-calculated for the at least one explicit path through the data communication network; global path identifier insertion circuitry for inserting the global path identifier into the data packet; and packet forwarding logic for forwarding the data packet to the next network node. - View Dependent Claims (35, 36, 37)
-
-
38. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for routing a data packet through at least one explicit path in a data communication network, the data packet having a source/destination data pair, the at least one explicit path having specified a plurality of network nodes that form a route from a source network node to a destination network node, the data communication network comprising a plurality of network nodes, the method comprising:
-
receiving the data packet having the source/destination data pair; performing a look-up function into a forwarding table using an index based on the source/destination data pair to determine a forwarding table entry related to a next network node along the route to which the data packet should be forwarded; extracting a global path identifier for the data packet from the forwarding table entry, wherein the global path identifier for the data packet has been pre-calculated for the at least one explicit path through the data communication network; inserting the global path identifier into the data packet; and forwarding the data packet to the next network node.
-
Specification