as0 is subject to announce/withdraw problem

some text reduction and clarification
This commit is contained in:
Randy Bush 2025-04-15 14:58:30 -07:00
parent 6213ecaaf5
commit 28289e3b8f

View file

@ -8,7 +8,7 @@
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-sidrops-8210bis-19"
<rfc category="std" docName="draft-ietf-sidrops-8210bis-20"
submissionType="IETF" ipr="trust200902" version="2" consensus="yes">
<front>
@ -21,13 +21,6 @@
<author fullname="Randy Bush" initials="R." surname="Bush">
<organization>Arrcus, DRL, &amp; IIJ Research</organization>
<address>
<postal>
<street>5147 Crystal Springs</street>
<city>Bainbridge Island</city>
<region>Washington</region>
<code>98110</code>
<country>United States of America</country>
</postal>
<email>randy@psg.com</email>
</address>
</author>
@ -1748,8 +1741,7 @@ Cache Router
<section anchor="races" title="ROA PDU Race Minimization">
<t>
When a cache is sending ROA (IPv4 or IPv6) PDUs to a router,
especially an initial full load in response to a Reset Query PDU,
When a cache is sending ROA (IPv4 or IPv6) PDUs to a router
undesirable race conditions are possible:
<list style="hanging">
<t hangText="Make Before Break:">
@ -1759,25 +1751,26 @@ Cache Router
"make before break." If a cache is feeding a router and sends
the one not yet in service a significant time before sending
the one currently in service, then BGP data could be marked
invalid during the interval. To minimize that interval, the
cache SHOULD announce all VRPs for the same prefix as close to
sequentially as possible, and announce new VRPs for a prefix
before any withdraws,
Invalid during the interval. To minimize that interval, the
cache SHOULD semd all VRPs for the same prefix as close to
sequentially as possible.
</t>
<t hangText="Shorter Prefix First:">
If an operator has created a ROA for P0, and another operator
(likely their customer) has issued a ROA for P1 which is a
sub-prefix of P0, a router which receives the ROA for P0
before that for P1 is likely to mark a BGP announcement of
prefix P1 invalid. Therefore, the cache SHOULD announce the
sub-prefix P1 before the covering prefix P0. Conversely, in
the case of withdrawals, the cache SHOULD withdraw covering
prefixes before their sub-prefixes.
<t hangText="Longest Prefix Match:">
If an operator has created a ROA for prefix P0, and another
operator (often their customer) has created a ROA for P1 which
is a sub-prefix covered by P0, a router which receives the ROA
for P0 before that for P1 might mark BGP for prefix P1 Invalid
until the P1 announcement is processed. Therefore, the cache
SHOULD announce the sub-prefix P1 before the covering prefix
P0. Conversely, the cache SHOULD withdraw covering prefixes
before covered sub-prefixes.
</t>
<t hangText="AS 0 Last:">
<t hangText="AS 0:">
To minimize risk of inadvertent marking of BGP data as
invalid, a prefix PDU for prefix P which has an AS of 0,
SHOULD be sent after all other prefix PDUs for prefix P.
Invalid, an announcement VRP for prefix P which has an AS of
0, SHOULD be sent after all other prefix PDUs for prefix P.
Conversely, a withdrawal VRP for prefix P which has an AS of
0, SHOULD be sent before all other prefix PDUs for prefix P.
</t>
</list>
<t>
@ -1807,14 +1800,15 @@ Cache Router
PDUs are first ordered by PDU Type,
</t>
<t>
IPv4 and IPv6 Prefix PDUs are ordered by: first IPvX Prefix,
IPv4 and IPv6 Prefix VRPs are ordered by: first IPvX Prefix,
second Prefix Length, third Max Length, and fourth Autonomous
System Number. Treating AS 0 as sorting last fulfills the "AS 0
Last" requirement of <xref target="races"/>,
System Number. Treating announcements of VPUs with AS 0 as
sorting last, and withdrawals as sorting first, fulfills the "AS
0" requirement of <xref target="races"/>,
</t>
<t>
Router Keys are ordered by AS Number and then Subject Public Key
Info,
Router Key PDUs are ordered by AS Number and then Subject Public
Key Info,
</t>
<t>
And ASPA PDUs ordered by Customer AS.