reworked version negotiation
This commit is contained in:
parent
6e442cdad6
commit
f812c253dc
1 changed files with 44 additions and 0 deletions
|
|
@ -1177,6 +1177,49 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section anchor="version" title="Protocol Version Negotiation">
|
<section anchor="version" title="Protocol Version Negotiation">
|
||||||
|
<t>
|
||||||
|
Once a router has established a transport connection to a cache,
|
||||||
|
it MUST attempt to open a RPKI-Router 'session' by issuing
|
||||||
|
either a Reset Query <xref target="resetquery"/>) or a Serial
|
||||||
|
Query (<xref target="serialquery"/>) with the highest version of
|
||||||
|
this protocol the router implements in the Protocol Version
|
||||||
|
field. If the cache supports that version, it responds with a
|
||||||
|
Cache Response (<xref target="cacheresponse"/>) of that version
|
||||||
|
and the session is considered open.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
If a cache which supports version N receives a query with
|
||||||
|
Protocol Version Q < N, and the cache does not support
|
||||||
|
versions <= Q, the cache MUST send an Error Report (<xref
|
||||||
|
target="error"/>) with Protocol Version N and Error Code 4
|
||||||
|
("Unsupported Protocol Version") and disconnect the transport
|
||||||
|
session.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
If a cache which supports version N receives a query with
|
||||||
|
Protocol Version Q < N, the cache MUST downgrade to protocol
|
||||||
|
version Q, <xref target="RFC6810"/> or <xref target="RFC8210"/>,
|
||||||
|
and respond with a Cache Response (<xref
|
||||||
|
target="cacheresponse"/>) of that Protocol Version and the
|
||||||
|
session is considered open.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
If the router query has version Q > N, the cache MUST send an
|
||||||
|
Error Report (<xref target="error"/>) with Protocol Version
|
||||||
|
N and Error Code 4 ("Unsupported Protocol Version"), and the
|
||||||
|
router SHOULD send another query with a Protocol Version Q of
|
||||||
|
the version N in the Error Report, unless it has already
|
||||||
|
failed at that version. This MAY repeat with the router
|
||||||
|
attempting to negotiate lower and lower versions until they
|
||||||
|
agree.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
If the router requests Q == 0 and it still fails with the cache
|
||||||
|
sending an Error Report (<xref target="error"/>) with Error Code
|
||||||
|
4 ("Unsupported Protocol Version"), then the router MUST abort
|
||||||
|
the transport connection.
|
||||||
|
</t>
|
||||||
|
<!--
|
||||||
<t>
|
<t>
|
||||||
A router MUST start each transport connection by issuing either a
|
A router MUST start each transport connection by issuing either a
|
||||||
Reset Query or a Serial Query. This query MUST tell the cache
|
Reset Query or a Serial Query. This query MUST tell the cache
|
||||||
|
|
@ -1212,6 +1255,7 @@
|
||||||
</t>
|
</t>
|
||||||
</list>
|
</list>
|
||||||
</t>
|
</t>
|
||||||
|
-->
|
||||||
<t>
|
<t>
|
||||||
In any of the downgraded combinations above, the new features of
|
In any of the downgraded combinations above, the new features of
|
||||||
the higher version will not be available, and all PDUs MUST have
|
the higher version will not be available, and all PDUs MUST have
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue