IP Library Granted Patent US 10,671,590
Granted Patent B2
US 10,671,590 · App. 15/254,943 · Granted Jun 2, 2020

Delta database synchronization

Inventors: Alfred C. Lindem, III (Cary, NC); Keyur Patel (San Jose, CA); Abhay Roy (Cupertino, CA); Derek Man-Kit Yeung (Fremont, CA)
Assignee: Cisco Technology, Inc.
G06F16/2329G06F16/273G06F16/275H04L67/1095
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,671,590
App. No.
15/254,943
Granted
Jun 2, 2020
Kind
B2
Abstract

Aspects of the embodiments are directed to synchronizing at least a portion of a link-state database. A network element can lose an adjacency. The network element can transmit a request to a neighboring network element for synchronization of a link-state database. The request can include a version number of a last synchronized link-state database from the neighboring network element. The neighboring network element can determine whether the version of the link-state database is greater than or less than a copy of the link-state database stored by the neighboring network element. If the requested version number is less than the neighboring network element's link-state database version number, then the neighboring network element can send changes to the link-state database since the requested link-state database version number.

Claims (73)

1. A computer-readable non-transitory medium comprising one or more instructions for synchronizing a link-state database, the instructions when executed on a processor are operable to:

assign a version number to a version of a local link-state database of a network element;

receive by the network element a request from a neighboring network element for an update to the neighboring network element's link-state database, the request comprising a version number for the last version of the local link-state database synchronized with the neighboring network element's link-state database;

compare the version number of the version of the local link-state database with the version number for the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database;

determine, based on the comparison, whether the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is older or newer than the local link-state database;

transmit, to the neighboring network element, one or more changes that have occurred in the local link-state database as compared to the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database if the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is determined to be older than the local link-state database, and transmit to the neighboring network element the local link-state database in its entirety if the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is determined to be newer than the local link-state database;

retain a last-deleted link state database;

maintain one or more last-deleted link state database elements for a predetermined time interval;

store a version number for a link state database that included a most-recent last-deleted link state database element to time-out;

determine that the last-deleted link state database element has timed-out based on the predetermined time interval for maintaining the last-deleted link state database element being elapsed;

identify the version number of the database associated with the most-recent last-deleted link state database element to time-out;

determine that the requested link-state database version is greater than the version number of the link state database associated with the most-recent last-deleted database element to time out; and

transmit to the neighboring network element the one or more changes that have occurred in the local link-state database as compared to the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database.

2. The computer-readable non-transitory medium of claim 1 , wherein the instructions when executed are further operable to:

receive an update to the local link-state database;

update the local link-state database with the update;

increment the version number; and

associate the version number with the updated local link-state database.

3. The computer-readable non-transitory medium of claim 1 , wherein the instructions when executed are further operable to:

determine that the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is older than the local link-state database based on the version number associated with an updated local link-state database; and

transmit the one or more changes to the neighboring network element based on the update.

4. The computer-readable non-transitory medium of claim 1 , wherein the instructions when executed are further operable to:

receive the request from the neighboring network element for the update to the neighboring network element's link-state database after an adjacency between the network element and the neighboring network element is lost.

5. The computer-readable non-transitory medium of claim 1 , wherein the instructions when executed are further operable to:

update the version number in response to a change to the local link-state database.

6. A network element, the network element comprising:

at least one memory element having instructions stored thereon; and

at least one processors coupled to the at least one memory element and configured to execute the instructions to cause the network element to:

assign a version number to a version of a local link-state database of the network element;

receive a request from a neighboring network element for an update to the neighboring network element's link-state database, the request comprising a version number for the last version of the local link-state database synchronized with the neighboring network element's link-state database;

compare the version number of the version of the local link-state database with the version number for the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database;

determine, based on the comparison, whether the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is older or newer than the local link-state database;

transmit, to the neighboring network element, one or more changes that have occurred in the local link-state database as compared to the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database if the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is determined to be older than the local link-state database, and transmit to the neighboring network element the local link-state database in its entirety if the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is determined to be newer than the local link-state database;

retain a last-deleted link state database;

maintain one or more last-deleted link state database elements for a predetermined time interval;

store a version number for a link state database that included a most-recent last-deleted link state database element to time-out;

determine that a last-deleted link state database element has timed-out based on the predetermined time interval for maintaining the one or more last-deleted link state database elements being elapsed;

identify the version number of the database associated with the most-recent last-deleted link state database element to time-out;

determine that the requested link-state database version is greater than the version number of the link state database associated with the most-recent last-deleted database element to time out; and

transmit to the neighboring network element the one or more changes that have occurred in the local link-state database as compared to the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database.

7. The network element of claim 6 , wherein the instructions cause the network element to:

receive an update to the local link-state database;

update the local link-state database with the update;

increment the version number; and

associate the version number with the updated local link-state database.

8. The network element of claim 7 , wherein the instructions cause the network element to:

determine that the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is older than the local link-state database based on the version number associated with the updated local link-state database; and

transmit the one or more changes based on the update to the neighboring network element.

9. The network element of claim 6 , wherein the instructions cause the network element to:

receive the request from the neighboring network element for the update to the neighboring network element's link-state database after an adjacency between the network element and the neighboring network element is lost.

10. A method performed at a network element, the method comprising:

assigning a version number to a version of a local link-state database of the network element;

receiving a request from a neighboring network element for an update to the neighboring network element's link-state database, the request comprising a version number for the last version of the local link-state database synchronized with the neighboring network element's link-state database;

comparing the version number of the version of the local link-state database with the version number for the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database;

determining, based on the comparing, whether the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is older or newer than the local link-state database;

transmitting, to the neighboring network element one or more changes that have occurred in the local link-state database as compared to the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database if the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is determined to be older than that of the local link-state database, and transmitting to the neighboring network element the local link-state database in its entirety if the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is determined to be newer than the local link-state database;

retaining a last-deleted link state database;

maintaining one or more last-deleted link state database elements for a predetermined time interval;

storing a version number for a link state database that included a most-recent last-deleted link state database element to time-out;

determining that the last-deleted link state database has timed-out based on the predetermined time interval for maintaining the last-deleted link state database element being elapsed;

identifying the version number of the database associated with the most-recent last-deleted link state database element to time-out;

determining that the requested link-state database version is greater than the version number of the link state database associated with the most-recent last-deleted database element to time out; and

transmitting to the neighboring network element the one or more changes that have occurred in the local link-state database as compared to the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database.

11. The method of claim 10 , further comprising:

receiving an update to the local link-state database;

updating the local link-state database with the update;

incrementing the version number; and

associating the version number with the updated local link-state database.

12. The method of claim 11 , further comprising:

determining that the last version of the local link-state database of the network element synchronized with the neighboring network element's link-state database is older than the local link-state database based on the version number associated with the updated local link-state database; and

transmitting the one or more changes based on the update to the neighboring network element.

13. The method of claim 10 , wherein the receiving the request from the neighboring network element for the update to the neighboring network element's link-state database is after an adjacency between the network element and the neighboring network element is lost.

14. The method of claim 10 , further comprising updating the version number in response to a change to the local link-state database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: LINDEM, ALFRED C., III; PATEL, KEYUR; ROY, ABHAY; YEUNG, DEREK MAN-KIT
To: CISCO TECHNOLOGY, INC.
Reel/Frame 039618/0558 →
Continuity (2)
Provisional Application 62342621 · May 27, 2016
Related Publication 20170344594A1 · Nov 30, 2017
Cited By (1)
US 12,262,302