SichangHe / internet_route_verification

RPSLyzer: Parse Routing Policy Specification Language from IRR and compare BGP routes against it
MIT License
1 stars 0 forks source link

Split `SkipReason` cases #65

Closed SichangHe closed 11 months ago

SichangHe commented 11 months ago

SkipReason cases sorted

Operators' fault because they did not put stuff in IRR (Right, @cunha?):

Invalid RPSL met:

Our limitations:

Operators' fault because they did not write any rules (maybe I should move these to SpecialCase):

There was another skip:

What do we do

@cunha, what do you think about these?

cunha commented 11 months ago

The breakdown looks good to me. Don't we just Skip/Ignore the ASes with no import/export?

I am not sure I get the last bullets:

We might as well move most of these to SpecialCase and only leave our limitations.

Maybe we could have three classes? The special cases are valid RPSL with valid data, but in a pattern that isn't exactly accurate; it's somewhat different from the unrecorded and limitations.

UnknownFilter should be considered an RpslError.

+1

The skip messages to indicate there are other skips have been useless, so maybe we remove them.

Not sure I understand this. We can discuss in the next call.

SichangHe commented 11 months ago

Don't we just Skip/Ignore the ASes with no import/export?

Okay, keeping them, then.

Maybe we could have three classes? The special cases are valid RPSL with valid data, but in a pattern that isn't exactly accurate; it's somewhat different from the unrecorded and limitations.

So how would the report cases be like?

The skip messages to indicate there are other skips have been useless…

Not sure I understand this.

They are generated e.g. when a NOT is met and the thing under the NOT is skipped.

cunha commented 11 months ago

So how would the report cases be like?

I think there are two things: The label we attach to an export/import between a specific pair of ASes in an AS-path. These can be Ok, Bad, Skip, and Special. Maybe we could aplit Skip into Unrecorded and Limitation.

Then there are the reports for a whole path. For the whole path, I think we could have matching classes, and take the min across all AS-pair import/exports, sorting them (from good to bad) in this order: Ok, Skip, Special, Unrecorded, Bad.

cunha commented 11 months ago

They are generated e.g. when a NOT is met and the thing under the NOT is skipped.

Sorry, still not sure I understand. Maybe an example would help? 🤔

SichangHe commented 11 months ago

I just realized that we can get rid of SkipReason, SpecialCase, etc. entirely in report.rs and flatten all cases under the ReportItem enum.

The other benefit would be to make the report 1 word smaller (5 → 4).