Method and apparatus for exchanging routing information in a packet-based data network
First Claim
1. A method at a first router comprising:
- a) selecting for processing a routing message received from one peer router from among a group of a plurality of peer routers of the first router, the routing message comprising a path from the peer router to a destination end router and an associated path history associated with that path, the path history indicating a sequence of any number of path change events that allowed the one peer router to adopt that path;
b) determining a new path from the first router to the destination end router from a set of stored paths to the destination end router and the path in the routing message;
c) dynamically computing a new path history associated with the determined new path; and
d) sending the determined new path and its associated new path history to one or more of the plurality of peer routers.
7 Assignments
0 Petitions
Accused Products
Abstract
Routing information is exchanged between edge routers in different autonomous systems that independently define their routing policies. A Simple Path Vector Protocol extends the prior art Border Gateway Protocol in a manner that is guaranteed to converge by adding a new attribute to the routing messages sent by an edge router to its peers in the different systems. This attribute is a path history, which is dynamically computed at each router as the routing path to a particular destination is changed. The path history attribute is sent in a routing message by a router to its peers together with the sending router'"'"'s path to that destination. By observing the dynamic path history that is computed at a router as a received routing message from a peer router that contains a history attribute is processed, a cycle can be identified in the newly computed history and associated with a policy conflict at that receiving router'"'"'s associated autonomous system. A path whose history contains a cycle is automatically suppressed as a permitted path to that destination.
188 Citations
26 Claims
-
1. A method at a first router comprising:
-
a) selecting for processing a routing message received from one peer router from among a group of a plurality of peer routers of the first router, the routing message comprising a path from the peer router to a destination end router and an associated path history associated with that path, the path history indicating a sequence of any number of path change events that allowed the one peer router to adopt that path;
b) determining a new path from the first router to the destination end router from a set of stored paths to the destination end router and the path in the routing message;
c) dynamically computing a new path history associated with the determined new path; and
d) sending the determined new path and its associated new path history to one or more of the plurality of peer routers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
e) after dynamically computing the new path history, determining whether there is a cycle present in the new path history determined in step b). -
7. The method of claim 6 further comprising, when in step e) a cycle is determined to be present in the new path history determined in step b):
f) determining a newer path from the first router to the destination end router from the set of stored paths to the destination and the path in the routing message, which excludes as being the newer path the new path determined in step b) which associated path history was determined in step e) to contain the cycle.
-
8. The method of claim 7 further comprising determining whether the newer path determined in step f) is different than the original old path, and when it is different, setting the history of the newer path determined in step f) to a function of the history of the original old path.
-
9. The method of claim 1 wherein the routing message selected for processing from the one peer router is the oldest unprocessed received routing message from the one peer router.
-
-
10. A router comprising:
-
means for selecting for processing a routing message received from one peer router from among a group of a plurality of peer routers of the first router, the routing message comprising a path from the peer router to a destination end router and an associated path history associated with that path, the path history indicating a sequence of any number of path change events that allowed the one peer router to adopt that path;
means for determining a new path from the first router to the destination end router from a set of stored paths to the destination end router and the path in the routing message; and
means for dynamically computing a new path history associated with the determined new path. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer readable media tangibly embodying a program of instructions executable by a computer to perform at a first router a method for exchanging routing information with a group of a plurality of peer routers, the method comprising:
-
a) selecting for processing a routing message received from one of the peer routers, the routing message comprising a path from the peer router to a destination end router and an associated path history associated with that path, the path history indicating a sequence of any number of path change events that allowed the one peer router to adopt that path;
b) determining a new path from the first router to the destination end router from a set of stored paths to the destination end router and the path in the routing message;
c) dynamically computing a new path history associated with the determined new path; and
d) sending the determined new path and its associated new path history to one or more of the plurality of peer routers. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
e) after dynamically computing the new path history, determining whether there is a cycle present in the new path history. -
24. The media of claim 23 wherein the method further comprises,
f) when a cycle is determined to be present in the new path history, determining a newer path from the first router to the destination end router from the set of stored paths to the destination end router and the path in the routing message, which excludes as being the newer path the new path determined in step b) which associated path history was determined in step c) to contain the cycle. -
25. The media of claim 24 wherein the method further comprises determining whether the newer path is different than the original old path, and when it is different, setting the history of the newer path to a function of the history of the original old path.
-
26. The media of claim 18 wherein in the method the routing message selected for processing from the one peer router is the oldest unprocessed received routing message from the one peer router.
-
Specification