Determining when routes may be advertised by a network device in the context of asynchronous hardware platform processing code responses
Some disclosed examples involve receiving information regarding a forwarding information base (FIB) sequence number, placing the FIB sequence number into a FIB sequence number queue and assigning the FIB sequence number a first state. Some examples involve receiving a route processing request including an indication of a route and a platform sequence number associated with the FIB sequence number, assigning the FIB sequence number a second state and placing the route processing request into a route-associated queue corresponding to the route. Some examples involve receiving a route processing response corresponding to the route and corresponding to one or more route processing requests, including the route processing request, removing the route processing request from the route-associated queue, assigning the FIB sequence number a third state and publishing the FIB sequence number.
1 . A method, comprising:
receiving information regarding a forwarding information base (FIB) sequence number;
placing the FIB sequence number into a FIB sequence number queue;
assigning the FIB sequence number a new state;
receiving a route processing request including an indication of a route and a platform sequence number associated with the FIB sequence number;
assigning the FIB sequence number a sent-to-platform state;
placing the route processing request into a route-associated queue corresponding to the route;
receiving a route processing response corresponding to the route and corresponding to one or more processing requests, including at least the route processing request;
removing the route processing request from the route-associated queue;
assigning the FIB sequence number a processed state; and
publishing the FIB sequence number.
2 . The method of claim 1 , further comprising publishing all FIB sequence numbers at a head of the FIB sequence number queue having the processed state.
3 . The method of claim 1 , further comprising removing the FIB sequence number from the FIB sequence number queue, clearing a state of the FIB sequence number, or both removing the FIB sequence number from the FIB sequence number queue and clearing the state of the FIB sequence number.
4 . The method of claim 1 , further comprising:
receiving an indication that a route has changed from a first FIB sequence number to a second FIB sequence number, the first FIB sequence number having the new state;
assigning the second FIB sequence number the new state; and
changing a state of the first FIB sequence number from the new state to an obsoleted state.
5 . The method of claim 4 , further comprising ceasing processing of the FIB sequence number queue responsive to determining that a FIB sequence number at a head of the FIB sequence number queue is not in the obsoleted state or the processed state.
6 . The method of claim 1 , wherein the route processing request indicates that the route is requested to be processed by a hardware platform.
7 . The method of claim 1 , further comprising ceasing processing of the FIB sequence number queue responsive to determining that the FIB sequence number queue is empty.
8 . The method of claim 1 , wherein the method is performed by a sequence number processing module implemented by a network device control system.
9 . The method of claim 8 , wherein publishing the FIB sequence number involves sending the FIB sequence number to one or more other modules implemented by the network device control system.
10 . The method of claim 8 , wherein the network device control system is a component of a network device configured for exchanging routing information with one or more neighboring network devices.
11 . A network device, comprising:
an interface system;
a memory system; and
a control system configured to:
receive, via the interface system, information regarding a forwarding information base (FIB) sequence number;
place the FIB sequence number into a FIB sequence number queue implemented in the memory system;
assign the FIB sequence number a new state;
receive a route processing request including an indication of a route and a platform sequence number associated with the FIB sequence number;
assign the FIB sequence number a sent-to-platform state;
place the route processing request into a route-associated queue corresponding to the route, the route-associated queue being implemented in the memory system;
receive a route processing response corresponding to the route and corresponding to one or more processing requests, including at least the route processing request;
remove the route processing request from the route-associated queue;
assign the FIB sequence number a processed state; and
publish the FIB sequence number.
12 . The network device of claim 11 , wherein the control system is further configured to publish all FIB sequence numbers in the FIB sequence number queue having the processed state.
13 . The network device of claim 11 , wherein the control system is further configured to remove the FIB sequence number from the FIB sequence number queue, to clear a state of the FIB sequence number, or to both remove the FIB sequence number from the FIB sequence number queue and clear the state of the FIB sequence number.
14 . The network device of claim 11 , wherein the control system is further configured to:
receive an indication that a route has changed from a first FIB sequence number to a second FIB sequence number, the first FIB sequence number having the new state;
assign the second FIB sequence number the new state; and
change a state of the first FIB sequence number from the new state to an obsoleted state.
15 . The network device of claim 14 , wherein the control system is further configured to cease processing of the FIB sequence number queue responsive to determining that a FIB sequence number at a head of the FIB sequence number queue is not in the obsoleted state or the processed state.
16 . The network device of claim 11 , wherein the control system is further configured to exchange routing information with one or more neighboring network devices.
17 . One or more non-transitory media having instructions for controlling a network device to perform a method stored thereon, the method comprising:
receiving information regarding a forwarding information base (FIB) sequence number;
placing the FIB sequence number into a FIB sequence number queue;
assigning the FIB sequence number a new state;
receiving a route processing request including an indication of a route and a platform sequence number associated with the FIB sequence number;
assigning the FIB sequence number a sent-to-platform state;
placing the route processing request into a route-associated queue corresponding to the route;
receiving a route processing response corresponding to the route and corresponding to one or more processing requests, including at least the route processing request;
removing the route processing request from the route-associated queue;
assigning the FIB sequence number a processed state; and
publishing the FIB sequence number.
18 . The one or more non-transitory media of claim 17 , wherein the method further comprises publishing all FIB sequence numbers in the FIB sequence number queue having the processed state.