Method and apparatus to minimize database exchange in OSPF by using a SHA-1 digest value
First Claim
1. A method of synchronizing router databases in a network, the method comprising:
- producing a first digest value incrementally from a first database that is local to a first router by conducting separate digest calculations on individual contents of the first database as additions and deletions are made to the first database and combining results of the separate digest calculations to form the first digest value;
sending the first digest value to a second router;
receiving a second digest value from the second router, the second digest value produced from a second database that is local to the second router;
performing at least a partial database-synchronizing packet exchange with the second router if the first digest value is not within a range of difference from the second digest value; and
transitioning the first router to a full state if the first digest value is within the range of difference from the second digest value.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a method of determining whether database located on a first router is synchronized with the database located on a second router by performing a hash function on the values contained in a link state database to derive a SHA-1 digest value. In an embodiment, the digest value is based on LSA type. The digest value is exchanged initially during a database description packet swap between the first router and second router. If the digest values are the same, the databases are already synchronized. The routers thus skip the database description packet exchange of LSAs in the database and go directly to FULL state, indicating full synchronization between databases on the first and second router and announcing adjacency to each other. If the digest differs, normal database description packet exchange is performed as specified in OSPF.
-
Citations
21 Claims
-
1. A method of synchronizing router databases in a network, the method comprising:
-
producing a first digest value incrementally from a first database that is local to a first router by conducting separate digest calculations on individual contents of the first database as additions and deletions are made to the first database and combining results of the separate digest calculations to form the first digest value; sending the first digest value to a second router; receiving a second digest value from the second router, the second digest value produced from a second database that is local to the second router; performing at least a partial database-synchronizing packet exchange with the second router if the first digest value is not within a range of difference from the second digest value; and transitioning the first router to a full state if the first digest value is within the range of difference from the second digest value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A first router, configured to synchronize a first database that is local to the first router to a second database located on a second router, comprising:
-
means for producing incrementally a first digest value from the first database that is local to the first router by conducting separate digest calculations on individual contents of the first database as additions and deletions are made to the first database and combining results of the separate digest calculations to form the first digest value; means for sending the first digest value to the second router; means for receiving a second digest value from the second router, the second digest value produced from the second database that is local to the second router; means for performing at least a partial packet exchange with the second router if the first digest value is not within a range of difference from the second digest value; and means for transitioning the first router to a full state if the first digest value is within the range of difference from the second digest value. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable medium containing instructions, which, when executed by a computer, synchronizes a first database that is local to a first router with a second database that is local to a second router, by performing the acts of:
-
producing a first digest value incrementally from the first database that is local to the first router by conducting separate digest calculations on individual contents of the first database as additions and deletions are made to the first database and combining results of the separate digest calculations to form the first digest value; sending the first digest value to the second router; receiving a second digest value from the second router, the second digest value produced from the second database that is local to the second router; performing at least a partial database-synchronizing packet exchange with the second router if the first digest value is not within a first range of difference; and transitioning the first router to a full state if the first digest value is within a second range of difference from the second digest value.
-
-
17. An apparatus comprising:
-
a communication connection configured to enable communication with a second apparatus; a first database configured to contain link state information; and a processor configured to incrementally calculate a first digest value by conducting separate digest calculations on individual contents of the first database as additions and deletions are made to the first database and combining results of the separate digest calculations to form the first digest value, compare the first digest value with a second digest value received from the second apparatus, the second digest value descriptive of a second database that contains link state information at the second apparatus, perform at least a partial database-synchronizing packet exchange with the second apparatus if the first digest value does not match the second digest value, and transition the first router to a full state if the first digest value matches the second digest value. - View Dependent Claims (18, 19, 20, 21)
-
Specification