Skip to content

Update to accommodate Jeff Haas's comment#40

Open
ksriram25 wants to merge 2 commits into
QratorLabs:masterfrom
ksriram25:patch-28
Open

Update to accommodate Jeff Haas's comment#40
ksriram25 wants to merge 2 commits into
QratorLabs:masterfrom
ksriram25:patch-28

Conversation

@ksriram25

Copy link
Copy Markdown
Contributor

@mitradir @job @jhaas-pfrc

Jeff requested consideration in the draft for rare AS partition scenarios, when AS loop detection may be disabled and the AS may accept its own routes with an AS loop from a provider and propagate to downstream customers. In these scenarios, operators may temporarily onboard a pre-designated emergency transit provider to bridge the isolated segments of AS. Jeff suggested we include some wording to say that operators must plan for these contingencies in advance while registering their ASPA.

ksriram25 added 2 commits June 5, 2026 20:08
@mitradir @job @jhaas-pfrc 

Jeff requested consideration in the draft for rare AS partition scenarios, when AS loop detection may be disabled and the AS may accept its own routes with an AS loop from a provider and propagate to downstream customers. In these scenarios, operators may temporarily onboard a pre-designated emergency transit provider to bridge the isolated segments of AS. Jeff suggested we include some wording to say that operators must plan for these contingencies in advance while registering their ASPA.
Jeff requested consideration in the draft for rare AS partition scenarios, when AS loop detection may be disabled and the AS may accept its own routes with an AS loop from a provider and propagate to downstream customers. In these scenarios, operators may temporarily onboard a pre-designated emergency transit provider to bridge the isolated segments of AS. Jeff suggested we include some wording to say that operators must plan for these contingencies in advance while registering their ASPA.

Added Sec. 6.6 for the above. 

Minor correction in Sec. 5.1 concerning AS prepend compression.
@jhaas-pfrc

Copy link
Copy Markdown
Contributor

This text addresses the point I've raised. Thanks for covering it.

@mitradir mitradir self-assigned this Jun 16, 2026

@mitradir mitradir left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's discuss bellow comments

<section title="Principles" anchor="principles">
<t>
Let the sequence COMPRESSED_AS_PATH {AS(N), AS(N-1),..., AS(2), AS(1)} represent the AS_PATH in terms of unique ASNs, where AS(1) is the origin AS and AS(N) is the most recently added AS and neighbor of the receiving/verifying AS.
Let the sequence COMPRESSED_AS_PATH = {AS(N), AS(N-1),..., AS(2), AS(1)} represent the AS_PATH after collapsing consecutive duplicate ASNs, where AS(1) is the origin AS, AS(N) is the most recently added AS (and a neighbor of the receiving/verifying AS), and no two consecutive ASNs are equal.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with the first change of the sentence, but the last part of the phrase looks like an overkill for me

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps:
Let the sequence COMPRESSED_AS_PATH = {AS(N), AS(N-1),..., AS(2), AS(1)} represent the AS_PATH after removing consecutive duplicate ASNs, where AS(1) is the origin AS, AS(N) is the most recently added AS, and a neighbor of the receiving/verifying AS.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good for me

<section title="Partitioned AS" anchor="AS-part">
<t>
In rare scenarios where an AS becomes internally partitioned, for example, due to a physical link failure, operators may temporarily onboard a pre-designated emergency transit provider to bridge the isolated segments.
To achieve this, the AS must override standard eBGP loop detection to accept its own routes via the emergency provider and it may propagate the routes (with loops) to its downstream customers.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there an assumption that there is a specific provider between two parts of the same network? I have seen such a scenario before in the wild, and to my understanding, there may be multiple ASs in the middle. If loop detection is turned off or relaxed, they just accept their own routes from other sources.

But the ASPA will also work in this case, no actions are needed except for registering providers, including emergency ones, and this was already stated in the document.

I can work on the wording of this section, but do we really need it if there is no specific processing and second thoughts?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There can definitely be more than one provider involved.

@ksriram25 ksriram25 Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mitradir @jhaas-pfrc
In the example in Section 6.6, there are two providers -- one regular (say Provider AS A) and another that is for emergency/backup (say Provider AS B). When the AS X in question is not partitioned, AS A serves all of AS X. When partitioned, AS X breaks into two disconnected parts -- Parts 1 and 2. Part 1 is still connected to and served by Provider AS A. The emergency Provider AS B is on-boarded to serve Part 2. So, when an ASBR in Part 2 receives Part 1's customers' routes from AS B, the routes contain both AS A and AS B in the path.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may be still be a regular provider, or a backup provider, or ASA ASB ASC ASA, where ASB and ASC are both providers of ASA, it doesn't change the situation. And doesn't require any additional guidance in terms of ASPA registration process.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sole necessary guidance is "if you're going to use loops as a feature, ASPA can break it if you don't have the necessary objects registered".

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

Successfully merging this pull request may close these issues.

3 participants