-
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Documentation #29
Closed
Closed
Documentation #29
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
AlexanderBand
requested changes
Oct 6, 2023
- Update to latest roto for peer id and route status update support. - Refactor all rib related code to rib.rs. - Rename Rib to PhysicalRib and move common setup code inside. - Store TypeValue in RIB items, not RawRouteWithDelta. - Rename RouteWithUserDefinedHash to PreHashedTypeValue. - Use new roto support to pre-compute keys for items stored in the RibValue HashSet and use a default key that assumes the stored type is a route, for now. - Mark withdrawn routes as withdrawn on MergeUpdate of a withdraw to the rib. - Added initial tests of RIB MergeUpdate behaviour.
…eporter that no longer exists.
…the TCP layer to disconnect.
…fix withdrawals on peer down. - Now encodes IPv6 withdrawals correctly per RFC 4760 MP_UNREACH_NLRI, instead of putting IPv6 withdrawals in the RFC 4271 IPv4 withdrawals list. - Extends the test suite and test utils to test this case. - Skips creating an empty BGP UPDATE if there are no prefixes to withdraw.
…ary and so Cargo.lock is valid to store (as per Rust guidelines).
…ls on peer down, in case the simple test util code we use generates a bad BGP UPDATE message that fails to parse.
…the BGP UPDATE message when withdrawing routes on peer down.
… large. We need to encode these properly or use a different internal type than a BGP UPDATE message, but this is an improvement for now.
… use `new_with_message_ref()` instead.
…outes on peer down.
… at trace level. (cherry picked from commit cdf1aaf)
…ess log format (cherry picked from commit e7868f1)
…bled. (cherry picked from commit 2060188)
(cherry picked from commit facf8fe)
(cherry picked from commit 9f6a2d5)
(cherry picked from commit 40cea1a)
(cherry picked from commit af2af14)
- For filtering on BMP message properties, pass the official `BmpMessage` Roto type to the Roto VM instead of the Roto record based and limited `BmpMsg` type that was used as a placeholder while `BmpMessage` didn't yet exist. - Actually set the Gate name used by earlier commit cdf1aaf. - Re-work support for Roto output messages: - Centralize Roto exec result processing of rx_tx, tx and/or output-stream outputs. - Also centralize Roto filtering in general. Adds new Filterable trait and impl for Payload. - Replace the 'bmp-pre-filter' unit by 'roto-filter' and generalize and rename the 'roto-filter' to just 'filter'. - Log unexpected message types received by units/targets. - Counting - Use TypeValue::OutputStreamMessage instead of adding Update::OutputStreamMessage. - Follow upstream roto crate change to not included name and topic in the message record. - Remove custom roto filtering support from the 'bmp-in' unit, instead do 'bmp-tcp-in' -> 'filter' -> 'bmp-in'. - Restrict the MQTT target to handling ONLY output stream messages. - Use the new Roto BmpMessage support everywhere: - Use TypeValue::Builtin(BuiltinTypeValue::BmpMessage) instead of Payload::RawBmp. - Payload values are now only and always TypeValue, no special cases. - Replace RawBmp::router_addr with a more general Payload::SourceId. - Generalize EoF notification to downstream units/targets via new Update::UpstreamStatusChange and removal of BMP specific eof related Payload helper methods. - Other: - Refactor RibUnitRunner to reduce the number of variables passed around and use &self more instead. - Known issues: - A replacement for RawBmp::received is missing. - Counting of filtered messages is missing. - Update rotonda.conf to describe the new output stream and roto filtering capabilities and note which types components handle and how.
Centralize roto script compilation, use a more structured approach to error handling, and avoid repeated failing attempts to compile the same script over and over again and each time dumping the verbose compilation error to the logs.
The `peer_up_peer_down()` test already covers this case.
* Use the new BGP update builder to synthesize withdrawals ala how the new BGP input unit does it. * Synthetic BGP withdrawals should have the Withdrawn status. * Test that synthesized BMP withdrawals correctly span multiple BGP UPDATE messages. * Factor out common synthetic withdrawal generation code. * Update to latest commit on the routecore compose-messages-nlri-v2 branch.
Document the bgp-tcp-in unit settings, and cleanup dangling footnotes, fix typos and make various improvements to the config file text and structure.
…run async fn from within sync closure from within async fn...
Co-authored-by: Alex Band <alex@nlnetlabs.nl>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add Documentation for Rotonda