Yesterday, Ruediger talked about a 4th validation state for BGP routes (RFC 6811 gives only 3). After thinking about it more, I believe it may be helpful to call this validation state "Uninitialized". Here's why.

First, for the purposes of this discussion, we assume that the validating cache has a "complete" snapshot of the global RPKI. The definition of "complete" must be tuned via the validator settings according to local policy, but that's a separate conversation.

I believe Ruediger is talking about the actual variable *in the router* that stores validation state. Currently, in the router, the three prescribed validation states for a BGP route are (RFC 6811):

   o  NotFound: No VRP Covers the Route Prefix.

   o  Valid: At least one VRP Matches the Route Prefix.

   o  Invalid: At least one VRP Covers the Route Prefix, but no VRP
      Matches it.

There's a hidden assumption in this trichotomy: that the snapshot has been completely transferred to the router (via the rpki-rtr), and all related processing is complete. "NotFound" really means "I have searched the complete set of VRPs, and no VRP Covers the route prefix." Similarly, "Invalid" really means "I have searched the complete set of VRPs, and at least one VRP Covers the route prefix, but no VRP Matches it."

During startup, however, it's important to for a validation state variable to start in a 4th state ("Uninitialized"). "Uninitialized" says "I haven't finished receiving/processing all the VRPs yet". This is different from "NotFound". In fact, filters would potentially treat this "Uninitialized" state differently from "NotFound".

In some sense this is just an implementation issue, but it is something that an implementer could easily get wrong. You probably DON'T want your variables to start out in the "NotFound" state.

Andrew
_______________________________________________
sidr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/sidr

Reply via email to