<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-ietf-sidrops-vrp-notation-04" submissionType="IETF" category="info" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true">

<front>
<title abbrev="VRP Notation">Human Readable Validate ROA Payload Notation</title><seriesInfo value="draft-ietf-sidrops-vrp-notation-04" status="informational" name="Internet-Draft"></seriesInfo>
<author initials="T." surname="Bruijnzeels" fullname="Tim Bruijnzeels"><organization>RIPE NCC</organization><address><postal><street></street>
</postal><email>tbruijnzeels@ripe.net</email>
</address></author><author initials="T." surname="de Kock" fullname="Ties de Kock"><organization>RIPE NCC</organization><address><postal><street></street>
</postal><email>tdekock@ripe.net</email>
</address></author><author initials="O." surname="Borchert" fullname="Oliver Borchert"><organization>NIST</organization><address><postal><street></street>
</postal><email>oliver.borchert@nist.gov</email>
</address></author><author initials="D." surname="Ma" fullname="Di Ma"><organization>ZDNS</organization><address><postal><street></street>
</postal><email>madi@zdns.cn</email>
</address></author><date/>
<area>Internet</area>
<workgroup></workgroup>

<abstract>
<t>This document defines a human readable notation for Validated ROA
Payloads (VRP, RFC 6811) based on ABNF (RFC 5234) for use with RPKI
tooling and documentation.</t>
</abstract>

</front>

<middle>

<section anchor="requirements-notation"><name>Requirements notation</name>
<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;,
&quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in
this document are to be interpreted as described in BCP 14 <xref target="RFC2119"></xref>
<xref target="RFC8174"></xref> when, and only when, they appear in all capitals, as shown here.</t>
</section>

<section anchor="introduction"><name>Introduction</name>
<t>This informational document defines a human readable notation for
Validated ROA Payloads (VRPs) <xref target="RFC6811"></xref>.</t>
<t>We provide this notation because it can help to create consistency
between RPKI Relying Party software output, making it easier for operators
to compare results. It can also be used by RPKI Certificate Authorities
(CA) command line interfaces and/or configuration. E.g. allowing a CA to
provide a listing of intended VRPs which can be easily compared to RP
output. Our final goal is that this will be helpful for documentation.</t>
<t>The chosen notation style can be read from left to right to mean that
the holder of the prefix (and optional max length) on the left authorises
annoucements by the ASN on the right.</t>
<t>That said, this document is informational. Implementations can choose
to use their own notation styles instead of, or in addition to this.</t>
</section>

<section anchor="vrp-notation-definition"><name>VRP Notation Definition</name>
<t>This specification uses ABNF syntax specified in <xref target="RFC5234"></xref>.</t>

<artwork>notation      = vrp-prefix separator origin-asn
vrp-prefix    = v4-vrp-prefix / v6-vrp-prefix

v4-vrp-prefix = v4-cidr [&quot;-&quot; v4-max-length]
v4-cidr       = v4-address &quot;/&quot; v4-pfx-length
v4-address    = v4-byte &quot;.&quot; v4-byte &quot;.&quot; v4-byte &quot;.&quot; v4-byte
v4-byte       = %d0-255
v4-pfx-length = %d0-32
v4-max-length = %d0-32

v6-vrp-prefix = v6-cidr [&quot;-&quot; v6-max-length]
v6-cidr       = v6-address &quot;/&quot; v6-pfx-length
v6-address    = (v6-un / v6-no-0 / v6-l-0 / v6-m-0 / v6-t-0)
v6-un         = &quot;::&quot;
v6-no-0       = v6-bytes 7*7(&quot;:&quot; v6-bytes)
v6-l-0        = &quot;:&quot; 1*7(&quot;:&quot; v6-bytes)
v6-m-0        = 1*6(v6-bytes &quot;:&quot;) &quot;:&quot; 1*6(&quot;:&quot; v6-bytes)
v6-t-0        = 1*7(v6-bytes &quot;:&quot;) &quot;:&quot;
v6-bytes      = %x0-FFFF
v6-pfx-length = %d0-128
v6-max-length = %d0-128

separator     = &quot; =&gt; &quot;

origin-asn    = &quot;AS&quot; uint32
uint32        = %d0-4294967295
</artwork>

<section anchor="roa-prefix"><name>roa-prefix</name>
<t>This field denotes a single Validated ROA Prefix (VRP) as defined in
section 2 of <xref target="RFC6811"></xref>. VRPs consist of either an IPv4 or an IPv6
prefix using CIDR prefix notation, optionally followed by a max-length
value.</t>
<t>Unfortunately we could not find pre-existing formal ABNF syntax
specifications for IPv4 and IPv6 CIDR prefix notation. The fairly basic
specifications defined above cover the notation of valid CIDR prefixes,
but it should be noted that they also allow for the notation of invalid
IPv6 addresses, and allow for prefix length values that are not applicable
to the base IP address. Rather than trying to define these rules in detail
here we refer to section 3.1 of <xref target="RFC4632"></xref> for guidelines on IPv4 CIDR
notation and section 2.3 of <xref target="RFC4291"></xref> for IPv6.</t>
<t>If the max-length is specified then its value needs to be the same as or
longer than the length of the prefix within the bounds applicable to the
address family of the prefix. If it is omitted then the effective
max-length for the VRP will be the same as the VPR prefix length.</t>
</section>

<section anchor="origin-asn"><name>origin-asn</name>
<t>This field consists of the string &quot;AS&quot; followed by a decimal value of a 32-bit
Autonomous System Number using the asplain presentation as specified in
<xref target="RFC5396"></xref>. Decimal values MUST represent a 32 bit value, and therefore MUST
be part of the range 0-4294967295.</t>
</section>
</section>

<section anchor="example-notations"><name>Example Notations</name>

<artwork>192.0.2.0/24 =&gt; AS65000
192.0.2.0/24-24 =&gt; AS65000
192.0.2.0/24-32 =&gt; AS65000
192.0.2.0/32 =&gt; AS65000

2001:db8::/32 =&gt; AS65000
2001:db8::/32-32 =&gt; AS65000
2001:db8::/32-128 =&gt; AS65000
2001:db8::/128 =&gt; AS65000
</artwork>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>This document has no IANA actions.</t>
</section>

<section anchor="security-considerations"><name>Security Considerations</name>
<t>TBD</t>
</section>

<section anchor="acknowledgements"><name>Acknowledgements</name>
<t>Thanks to Nan Geng for the editorial feedback. Thanks to Randy Bush for
suggesting to allow only one possible notation for AS numbers.</t>
</section>

</middle>

<back>
<references><name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4291.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4632.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5396.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6811.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
</references>

</back>

</rfc>
