IP Library Granted Patent US 9,973,411
Granted Patent B2
US 9,973,411 · App. 15/076,491 · Granted May 15, 2018

Synchronization of data and control planes of routers

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 9,973,411
App. No.
15/076,491
Granted
May 15, 2018
Kind
B2
Abstract

Synchronization between a data plane of a router in a network and a control plane of the router is performed by a processor of the router. Route information associated with at least one network node in the network is learned using a routing protocol. The route information includes a plurality of subsets and is stored in a routing information base (RIB) of the router. A first subset of the plurality of subsets of the route information is copied from the RIB to a forwarding information base (FIB) of the router. After the first subset has been copied to the FIB, synchronization data in the router associated with the first subset is modified. The modification indicates that the first subset has been copied to the FIB.

Claims (64)

1. A method for synchronizing a data plane of a router in a network with a control plane of the router, wherein the method is performed by a processor of the router, the method comprising:

learning route information associated with at least one network node in the network, using a routing protocol, wherein the route information includes a plurality of subsets;

storing the route information in a routing information base (RIB) of the router;

copying a first subset of the plurality of subsets of the route information from the RIB to a forwarding information base (FIB) of the router; and

modifying synchronization data in the router associated with the first subset after the first subset has been copied to the FIB, wherein the modification indicates that the first subset has been copied to the FIB.

2. The method of claim 1 , further comprising advertising the first subset to at least one peer node in the network based on a determination that the synchronization data indicates that the first subset has been copied to the FIB.

3. The method of claim 2 , further comprising:

determining, based on synchronization data in the router associated with a second subset of the plurality of subsets, that the second subset has not been copied from the RIB to the FIB.

4. The method of claim 3 , further comprising:

determining, based on synchronization data in the router associated with a third subset of the plurality of subsets, that the third subset has been copied from the RIB to the FIB; and

advertising the third subset to said at least one peer node based on said determining that the third subset has been copied from the RIB to the FIB, without advertising the second subset.

5. The method of claim 3 , further comprising:

delaying by a delay interval; and

after the delay interval, checking the synchronization data in the router associated with the second subset.

6. The method of claim 5 , wherein said checking indicates that the second subset has been copied from the RIB to the FIB, the method further comprising:

advertising the second subset to said at least one peer node based on the indication that the second subset has been copied from the RIB to the FIB.

7. The method of claim 1 , wherein:

the synchronization data associated with the first subset comprises a bitflag;

said storing the route information in the RIB includes setting the bitflag for the first subset to a first value; and

said modifying the synchronization data associated with the first subset includes setting the bitflag to a second value.

8. The method of claim 1 , wherein:

said learning and said storing are performed by the processor in a first process;

said copying is performed by the processor in a second process; and

said modifying is performed by the processor in a third process.

9. A non-transitory computer-readable storage medium having computer-executable instructions embodied thereon, wherein, when executed by at least one processor of a router in a network, the computer-executable instructions cause the at least one processor to:

learn route information associated with at least one network node in the network, using a routing protocol, wherein the route information includes a plurality of subsets;

store the route information in a routing information base (RIB) of the router;

copy a first subset of the plurality of subsets of the route information from the RIB to a forwarding information base (FIB) of the router; and

modify synchronization data in the router associated with the first subset after the first subset has been copied to the FIB, wherein the modification indicates that the first subset has been copied to the FIB.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the computer-executable instructions, when executed, further cause the at least one processor to advertise the first subset to at least one peer node in the network based on a determination that the synchronization data indicates that the first subset has been copied to the FIB.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the computer-executable instructions, when executed, further cause the at least one processor to determine, based on synchronization data in the router associated with a second subset of the plurality of subsets, that the second subset has not been copied from the RIB to the FIB.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the computer-executable instructions, when executed, further cause the at least one processor to:

determine, based on synchronization data in the router associated with a third subset of the plurality of subsets, that the third subset has been copied from the RIB to the FIB; and

advertise the third subset to said at least one peer node based on said determining that the third subset has been copied from the RIB to the FIB, without advertising the second subset.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the computer-executable instructions, when executed, further cause the at least one processor to:

delay by a delay interval; and

after the delay interval, check the synchronization data in the router associated with the second subset.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the check of the synchronization data in the router associated with the second subset indicates that the second subset has been copied from the RIB to the FIB, and the computer-executable instructions, when executed, further cause the at least one processor to:

advertise the second subset to said at least one peer node based on the indication that the second subset has been copied from the RIB to the FIB.

15. The non-transitory computer-readable storage medium of claim 9 , wherein:

the synchronization data associated with the first subset comprises a bitflag;

the computer-executable instructions, when executed, cause the at least one processor to store the route information in the RIB by setting the bitflag for the first subset to a first value; and

the computer-executable instructions, when executed, cause the at least one processor to modify the synchronization data associated with the first subset by setting the bitflag to a second value.

16. The non-transitory computer-readable storage medium of claim 9 , wherein the computer-executable instructions, when executed, cause the at least one processor to:

learn the route information and store the route information in the RIB in a first process;

copy the first subset of the route information from the RIB to the FIB in a second process; and

modify the synchronization data associated with the first subset in a third process.

17. A router for routing data through a network, the router comprising:

at least one processor;

at least one memory; and

a computer-readable storage medium having computer-executable instructions embodied thereon, wherein, when executed by the at least one processor, the computer-executable instructions cause the at least one processor to:

learn route information associated with at least one network node in the network, using a routing protocol, wherein the route information includes a plurality of subsets;

store the route information in a routing information base (RIB) in the at least one memory;

copy a first subset of the plurality of subsets of the route information from the RIB to a forwarding information base (FIB) in the at least one memory; and

modify synchronization data in the router associated with the first subset after the first subset of the route information has been copied to the FIB, wherein the modification indicates that the first subset has been copied to the FIB.

18. The router of claim 17 , wherein the computer-executable instructions, when executed, further cause the at least one processor to advertise the first subset to at least one peer node in the network based on a determination that the synchronization data that the first subset has been copied to the FIB.

19. The router of claim 17 , wherein:

the synchronization data associated with the first subset comprises a bitflag;

the computer-executable instructions, when executed, cause the at least one processor to store the route information in the RIB by setting the bitflag for the first subset to a first value; and

the computer-executable instructions, when executed, cause the at least one processor to modify the synchronization data associated with the first subset by setting the bitflag to a second value.

20. The router of claim 17 , wherein the computer-executable instructions, when executed, cause the at least one processor to:

learn the route information and store the route information in the RIB in a first process;

copy the first subset of the route information from the RIB to the FIB in a second process; and

modify the synchronization data associated with the first subset in a third process.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2016
From: QU, HONGYA
To: NICIRA, INC.
Reel/Frame 038061/0692 →