BGP Route Advertisement Timing Under Asynchronous FIB Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing BGP implementations struggle with coalesced, out-of-order, and asynchronous hardware platform processing code responses, which complicate the determination of when routes should be advertised by network devices.
Innovation Solution
An adapter module is introduced to manage sequence numbers and route processing requests, handling coalesced, out-of-order, and asynchronous hardware platform processing code responses by assigning states to sequence numbers, updating these states, and managing queues to ensure accurate and timely route programming in hardware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If the hardware platform processing code processes routes synchronously in order received without coalescing, then the route processing order is maintained, but the processing time and system responsiveness deteriorate
Solution Approach 1:
The patent assigns sequence numbers to route processing requests before they are processed by the hardware platform. This preliminary numbering allows the system to track and reorder responses later, ensuring that routes are advertised in the correct order even when processing occurs asynchronously and out of order.
Solution Approach 2:
The patent implements a feedback mechanism where the system waits for hardware platform responses and uses sequence numbers to determine when all necessary route installations are complete. This feedback loop allows the control plane to know when it is safe to advertise routes to BGP peers, maintaining order while enabling asynchronous processing.
2Productivity
If the hardware platform processing code coalesces and processes routes asynchronously, then the processing efficiency improves, but the route advertising timing accuracy deteriorates
Solution Approach 1:
The patent assigns sequence numbers to route processing requests before asynchronous processing begins. This preliminary numbering enables the system to track which routes have been processed and in what order, even when responses arrive asynchronously and out of order, thereby maintaining timing accuracy despite improved processing efficiency.
Solution Approach 2:
The system implements feedback by monitoring hardware platform responses and using sequence numbers to determine when route installations are complete. This feedback mechanism ensures that route advertising timing remains accurate even though processing occurs asynchronously with coalesced responses.
3Reliability
If the system waits for hardware platform responses before advertising routes, then the routing information accuracy improves, but the route advertising delay increases
Solution Approach 1:
The patent assigns sequence numbers to route processing requests in advance, allowing the system to prepare for route advertising without waiting for each individual hardware response. This preliminary numbering enables batch processing and reduces the overall delay while ensuring accuracy through sequence verification.
Solution Approach 2:
The system uses feedback from hardware platform responses combined with sequence number tracking to determine when it is safe to advertise routes. This approach maintains routing information accuracy by confirming successful hardware installation while minimizing delay through efficient response processing and batch advertising.
Data Source
AI summary
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.


