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 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>
|
||||
A router MUST start each transport connection by issuing either a
|
||||
Reset Query or a Serial Query. This query MUST tell the cache
|
||||
|
|
@ -1212,6 +1255,7 @@
|
|||
</t>
|
||||
</list>
|
||||
</t>
|
||||
-->
|
||||
<t>
|
||||
In any of the downgraded combinations above, the new features of
|
||||
the higher version will not be available, and all PDUs MUST have
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue