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, said data packet having an incoming global path identifier corresponding to said explicit path, said data communication network comprising a plurality of network nodes, each of said plurality of network nodes including a network device, said explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of said plurality of hops being associated with one of said plurality of network nodes, the method comprising the steps of:
- receiving said data packet from said prior hop at said current hop in said network device;
performing a look-up function into a forwarding table using an index based on said incoming global path identifier to determine a forwarding table entry related to said next hop to which said data packet should be forwarded;
calculating an outgoing global path identifier for said data packet as a function of (1) said incoming global path identifier and (2) an identifier of said network device receiving said data packet at said current hop; and
forwarding said data packet to said next hop.
2 Assignments
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.
-
Citations
38 Claims
-
1. A method for routing a data packet through an explicit path in a data communication network, said data packet having an incoming global path identifier corresponding to said explicit path, said data communication network comprising a plurality of network nodes, each of said plurality of network nodes including a network device, said explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of said plurality of hops being associated with one of said plurality of network nodes, the method comprising the steps of:
-
receiving said data packet from said prior hop at said current hop in said network device;
performing a look-up function into a forwarding table using an index based on said incoming global path identifier to determine a forwarding table entry related to said next hop to which said data packet should be forwarded;
calculating an outgoing global path identifier for said data packet as a function of (1) said incoming global path identifier and (2) an identifier of said network device receiving said data packet at said current hop; and
forwarding said data packet to said next hop. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for routing a data packet through at least one explicit path in a data communication network, said data packet having a source/destination data pair, said 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, said data communication network comprising a plurality of network nodes, the method comprising:
-
receiving said data packet having said source/destination data pair;
calculating a global path identifier for said at least one explicit path through said data communication network;
performing a look-up function into a forwarding table using an index based on said source/destination data pair to determine a forwarding table entry related to a next network node along said route to which said data packet should be forwarded;
inserting said global path identifier into said data packet; and
forwarding said data packet to said next network node. - View Dependent Claims (10, 11, 12)
-
-
13. An apparatus for routing a data packet through an explicit path in a data communication network, said data packet having an incoming global path identifier corresponding to said explicit path, said data communication network comprising a plurality of network nodes, each of said plurality of network nodes including a network device, said explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of said plurality of hops being associated with one of said plurality of network nodes, the apparatus comprising:
-
means for receiving said data packet from said prior hop at said current hop in said network device;
means for performing a look-up function into a forwarding table using an index based on said incoming global path identifier to determine a forwarding table entry related to said next hop to which said data packet should be forwarded;
means for calculating an outgoing global path identifier for said data packet as a function of (1) said incoming global path identifier and (2) an identifier of said network device receiving said data packet at said current hop; and
means for forwarding said data packet to said next hop. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus for routing a data packet through at least one explicit path in a data communication network, said data packet having a source/destination data pair, said 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, said data communication network comprising a plurality of network nodes, the apparatus comprising:
-
means for receiving said data packet having said source/destination data pair;
means for calculating a global path identifier for said at least one explicit path through said data communication network;
means for performing a look-up function into a forwarding table using an index based on said source/destination data pair to determine a forwarding table entry related to a next network node along said route to which said data packet should be forwarded, means for inserting said global path identifier into said data packet; and
means for forwarding said data packet to said next network node. - View Dependent Claims (22, 23, 24)
-
-
25. An apparatus for routing a data packet through an explicit path in a data communication network, said data packet having an incoming global path identifier corresponding to said explicit path, said data communication network comprising a plurality of network nodes, each of said plurality of network nodes including a network device, said explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of said plurality of hops being associated with one of said plurality of network nodes, the apparatus comprising:
-
an input interface for receiving said data packet from said prior hop at said current hop in said network device;
table search logic for performing a look-up function into a forwarding table using an index based on said incoming global path identifier to determine a forwarding table entry related to said next hop to which said data packet should be forwarded;
path identifier assignment logic which calculates an outgoing global path identifier for said data packet as a function of (1) said incoming global path identifier and (2) an identifier of said network device receiving said data packet at said current hop; and
packet forwarding logic for forwarding said data packet to said next hop. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
-
-
33. An apparatus for routing a data packet through at least one explicit path in a data communication network, said data packet having a source/destination data pair, said 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, said data communication network comprising a plurality of network nodes, the apparatus comprising:
-
an input interface for receiving said data packet having said source/destination data pair;
global path identifier circuitry for calculating a global path identifier for said at least one explicit path through said data communication network;
table search logic for performing a look-up function into a forwarding table using an index based on said source/destination data pair to determine a forwarding table entry related to a next network node along said route to which said data packet should be forwarded;
global path identifier insertion circuitry for inserting said global path identifier into said data packet; and
packet forwarding logic for forwarding said data packet to said next network node. - View Dependent Claims (34, 35, 36)
-
-
37. 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 an explicit path in a data communication network, said data packet having an incoming global path identifier corresponding to said explicit path, said data communication network comprising a plurality of network nodes, each of said plurality of network nodes including a network device, said explicit path comprising a plurality of hops including a prior hop, a current hop, and a next hop, each of said plurality of hops being associated with one of said plurality of network nodes, the method comprising:
-
receiving said data packet from said prior hop at said current hop in said network device;
performing a look-up function into a forwarding table using an index based on said incoming global path identifier to determine a forwarding table entry related to said next hop to which said data packet should be forwarded;
calculating an outgoing global path identifier for said data packet as a function of (1) said incoming global path identifier and (2) an identifier of said network device receiving said data packet at said current hop; and
forwarding said data packet to said next hop.
-
-
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, said data packet having a source/destination data pair, said 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, said data communication network comprising a plurality of network nodes, the method comprising:
-
receiving said data packet having said source/destination data pair;
calculating a global path identifier for said at least one explicit path through said data communication network;
performing a look-up function into a forwarding table using an index based on said source/destination data pair to determine a forwarding table entry related to a next network node along said route to which said data packet should be forwarded;
inserting said global path identifier into said data packet; and
forwarding said data packet to said next network node.
-
Specification