Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bgpdisco: Skip parsing MRT Dump if not changed #458

Open
spolack opened this issue Dec 22, 2024 · 0 comments
Open

bgpdisco: Skip parsing MRT Dump if not changed #458

spolack opened this issue Dec 22, 2024 · 0 comments

Comments

@spolack
Copy link
Member

spolack commented Dec 22, 2024

MRT Parsing is by far the most expensive operation in bgpdisco. Currently this is done everytime at the update interval. There should be a way to skip parsing if it can be assumed that the contents havent changed.

As there is no way to instruct bird to only dump the file if the RIB has changed, we cant rely on last-change file attribute.

Multiple Ideas:

  • Get checksum of the dump (possibly also against parts of the dump) and check against previous dump. We have to check if the file contains timestamps or similar frequently changing fields which occur, without having actual changes in the RIB
  • While checksum should be prefered if possible we could resort to comparingthe file size. This was proven in the field and should be relatively safe. This can introduce edge cases, where a route was replaced with a route with similar sized attributes and therefore filesize remains unchanged. But i dont consider this to be a big deal in such a dynamic network like the BBB, where we see usually real changes at least every few minutes.
@spolack spolack added bug Something isn't working and removed bug Something isn't working labels Dec 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant