Skip to content

Commit

Permalink
Script updating gh-pages from 4bc3e32. [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
ID Bot committed Sep 21, 2024
1 parent 2e0ab90 commit ebd17c1
Show file tree
Hide file tree
Showing 2 changed files with 295 additions and 180 deletions.
135 changes: 97 additions & 38 deletions draft-lenders-dns-cbor.html
Original file line number Diff line number Diff line change
Expand Up @@ -1035,7 +1035,7 @@
</tr></thead>
<tfoot><tr>
<td class="left">Lenders, et al.</td>
<td class="center">Expires 24 March 2025</td>
<td class="center">Expires 25 March 2025</td>
<td class="right">[Page]</td>
</tr></tfoot>
</table>
Expand All @@ -1048,12 +1048,12 @@
<dd class="internet-draft">draft-lenders-dns-cbor-latest</dd>
<dt class="label-published">Published:</dt>
<dd class="published">
<time datetime="2024-09-20" class="published">20 September 2024</time>
<time datetime="2024-09-21" class="published">21 September 2024</time>
</dd>
<dt class="label-intended-status">Intended Status:</dt>
<dd class="intended-status">Standards Track</dd>
<dt class="label-expires">Expires:</dt>
<dd class="expires"><time datetime="2025-03-24">24 March 2025</time></dd>
<dd class="expires"><time datetime="2025-03-25">25 March 2025</time></dd>
<dt class="label-authors">Authors:</dt>
<dd class="authors">
<div class="author">
Expand Down Expand Up @@ -1117,7 +1117,7 @@ <h2 id="name-status-of-this-memo">
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."<a href="#section-boilerplate.1-3" class="pilcrow"></a></p>
<p id="section-boilerplate.1-4">
This Internet-Draft will expire on 24 March 2025.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
This Internet-Draft will expire on 25 March 2025.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
</section>
</div>
<div id="copyright">
Expand Down Expand Up @@ -1156,7 +1156,12 @@ <h2 id="name-copyright-notice">
<p id="section-toc.1-1.3.1"><a href="#section-3" class="auto internal xref">3</a>.  <a href="#name-cbor-representations-applic" class="internal xref">CBOR Representations (application/dns+cbor)</a></p>
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1">
<p id="section-toc.1-1.3.2.1.1" class="keepWithNext"><a href="#section-3.1" class="auto internal xref">3.1</a>.  <a href="#name-domain-name-representation" class="internal xref">Domain Name Representation</a></p>
<p id="section-toc.1-1.3.2.1.1"><a href="#section-3.1" class="auto internal xref">3.1</a>.  <a href="#name-domain-name-representation" class="internal xref">Domain Name Representation</a></p>
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1.2.1">
<p id="section-toc.1-1.3.2.1.2.1.1" class="keepWithNext"><a href="#section-3.1.1" class="auto internal xref">3.1.1</a>.  <a href="#name-name-compression" class="internal xref">Name Compression</a></p>
</li>
</ul>
</li>
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2">
<p id="section-toc.1-1.3.2.2.1"><a href="#section-3.2" class="auto internal xref">3.2</a>.  <a href="#name-dns-resource-records" class="internal xref">DNS Resource Records</a></p>
Expand All @@ -1178,7 +1183,7 @@ <h2 id="name-copyright-notice">
</ul>
</li>
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4">
<p id="section-toc.1-1.4.1"><a href="#section-4" class="auto internal xref">4</a>.  <a href="#name-name-and-address-compressio" class="internal xref">Name and Address Compression with CBOR-packed</a></p>
<p id="section-toc.1-1.4.1"><a href="#section-4" class="auto internal xref">4</a>.  <a href="#name-further-compression-with-cb" class="internal xref">Further Compression with CBOR-packed</a></p>
<ul class="compact toc ulBare ulEmpty">
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.1">
<p id="section-toc.1-1.4.2.1.1"><a href="#section-4.1" class="auto internal xref">4.1</a>.  <a href="#name-media-type-negotiation" class="internal xref">Media Type Negotiation</a></p>
Expand Down Expand Up @@ -1373,16 +1378,62 @@ <h3 id="name-domain-name-representation">
<figure id="figure-2">
<div class="lang-cddl sourcecode" id="section-3.1-4.1">
<pre>
domain-name = (+ label)
label = (
tstr .regexp "([^.]+[.])*[^.]+"
domain-name = (
+ label,
? #6.TBDt(uint),
)
label = tstr
</pre>
</div>
<figcaption><a href="#figure-2" class="selfRef">Figure 2</a>:
<a href="#name-domain-name-definition" class="selfRef">Domain Name Definition</a>
</figcaption></figure>
</div>
<div id="sec_name-compression">
<section id="section-3.1.1">
<h4 id="name-name-compression">
<a href="#section-3.1.1" class="section-number selfRef">3.1.1. </a><a href="#name-name-compression" class="section-name selfRef">Name Compression</a>
</h4>
<p id="section-3.1.1-1">For name compression, a tag TBDt encapsulating an unsigned integer <em>i</em> can be appended to the sequence of text strings.
To extend the name, the unsigned integer <em>i</em> points to the <em>i</em>-th text string (counted depth first) in the overall DNS message.
That string and all strings or another tag TBDt following the <em>i</em>-th string are appended to the domain.
If another tag TBDt is encountered it is resolved in the same way.
Strings following a tag TBDt <span class="bcp14">MUST NOT</span> be appended to the domain name.
To prevent circular references, the DNS name suffix extension algorithm should error whenever a string is
encountered more than once during the extension of a name.
Decompression stops when any other type than a text string or any other tag than tag TBDt are
encountered.
The pseudo-code for this DNS name suffix extension algorithm can be seen in <a href="#fig_decode-name" class="auto internal xref">Figure 3</a>.<a href="#section-3.1.1-1" class="pilcrow"></a></p>
<span id="name-name-suffix-extension-algor"></span><div id="fig_decode-name">
<figure id="figure-3">
<div class="alignLeft art-text artwork" id="section-3.1.1-2.1">
<pre>
function decode_name(cbor_pointer: cbor_major_type) -&gt; array
{
name: array = []
visited: set = []
while (typeof(cbor_pointer) in [tstr, tag]):
if typeof(cbor_pointer) == tag:
if tag_number(cbor_pointer) != TBDt:
break
i: uint = tag_value(cbor_pointer)
cbor_pointer = go to i-th string (depth first) in CBOR object
if cbor_pointer in visited:
return ERROR("Circular reference")
# cbor_pointer should be of type tstr at this point
name.append(cbor_pointer)
visited.add(cbor_pointer)
return name
}
</pre>
</div>
<figcaption><a href="#figure-3" class="selfRef">Figure 3</a>:
<a href="#name-name-suffix-extension-algor" class="selfRef">Name Suffix Extension Algorithm</a>
</figcaption></figure>
</div>
<p id="section-3.1.1-3">The tag TBDt is included in the definition in <a href="#fig_domain-name" class="auto internal xref">Figure 2</a>.<a href="#section-3.1.1-3" class="pilcrow"></a></p>
</section>
</div>
</section>
</div>
<div id="sec_rr">
Expand All @@ -1396,15 +1447,15 @@ <h3 id="name-dns-resource-records">
represented in their binary wire-format form, as a byte string.<a href="#section-3.2-1" class="pilcrow"></a></p>
<p id="section-3.2-2">Further special records, e.g., TSIG can be defined in follow-up specifications and are out of scope
of this document.<a href="#section-3.2-2" class="pilcrow"></a></p>
<p id="section-3.2-3">The representation of a DNS resource records is defined in <a href="#fig_dns-rr" class="auto internal xref">Figure 3</a>.<a href="#section-3.2-3" class="pilcrow"></a></p>
<p id="section-3.2-3">The representation of a DNS resource records is defined in <a href="#fig_dns-rr" class="auto internal xref">Figure 4</a>.<a href="#section-3.2-3" class="pilcrow"></a></p>
<span id="name-dns-resource-record-definit"></span><div id="fig_dns-rr">
<figure id="figure-3">
<figure id="figure-4">
<div class="lang-cddl sourcecode" id="section-3.2-4.1">
<pre>
dns-rr = rr / #6.141(opt-rr) / bstr
</pre>
</div>
<figcaption><a href="#figure-3" class="selfRef">Figure 3</a>:
<figcaption><a href="#figure-4" class="selfRef">Figure 4</a>:
<a href="#name-dns-resource-record-definit" class="selfRef">DNS Resource Record Definition</a>
</figcaption></figure>
</div>
Expand Down Expand Up @@ -1454,10 +1505,10 @@ <h4 id="name-standard-rrs">
representing a label up until a string length of 23 characters.<a href="#section-3.2.1-6" class="pilcrow"></a></p>
<p id="section-3.2.1-7">Depending on the record type, the record data may also be expressed as an array.
Some initial array types are specified below.
Future specifications can extend the definition for rdata-array in <a href="#fig_dns-standard-rr" class="auto internal xref">Figure 4</a>.
Future specifications can extend the definition for rdata-array in <a href="#fig_dns-standard-rr" class="auto internal xref">Figure 5</a>.
Any additional type in rdata-array <span class="bcp14">MUST</span> be an array.<a href="#section-3.2.1-7" class="pilcrow"></a></p>
<span id="name-dns-standard-resource-recor"></span><div id="fig_dns-standard-rr">
<figure id="figure-4">
<figure id="figure-5">
<div class="lang-cddl sourcecode" id="section-3.2.1-8.1">
<pre>
rr = [
Expand All @@ -1478,7 +1529,7 @@ <h4 id="name-standard-rrs">
rdata-array = soa / mx / srv / svcb ; MUST be an array
</pre>
</div>
<figcaption><a href="#figure-4" class="selfRef">Figure 4</a>:
<figcaption><a href="#figure-5" class="selfRef">Figure 5</a>:
<a href="#name-dns-standard-resource-recor" class="selfRef">DNS Standard Resource Record Definition</a>
</figcaption></figure>
</div>
Expand Down Expand Up @@ -1513,9 +1564,9 @@ <h5 id="name-soa-record-data">
</ul>
<p id="section-3.2.1.1-3">MNAME and RNAME are put to the beginning and end of the array, respectively, to keep their labels apart.<a href="#section-3.2.1.1-3" class="pilcrow"></a></p>
<p id="section-3.2.1.1-4">TBD: make some parts optional?<a href="#section-3.2.1.1-4" class="pilcrow"></a></p>
<p id="section-3.2.1.1-5">The definition for MX record data can be seen in <a href="#fig_dns-rdata-soa" class="auto internal xref">Figure 5</a>.<a href="#section-3.2.1.1-5" class="pilcrow"></a></p>
<p id="section-3.2.1.1-5">The definition for MX record data can be seen in <a href="#fig_dns-rdata-soa" class="auto internal xref">Figure 6</a>.<a href="#section-3.2.1.1-5" class="pilcrow"></a></p>
<span id="name-soa-resource-record-data-de"></span><div id="fig_dns-rdata-soa">
<figure id="figure-5">
<figure id="figure-6">
<div class="lang-cddl sourcecode" id="section-3.2.1.1-6.1">
<pre>
soa = [
Expand All @@ -1529,7 +1580,7 @@ <h5 id="name-soa-record-data">
]
</pre>
</div>
<figcaption><a href="#figure-5" class="selfRef">Figure 5</a>:
<figcaption><a href="#figure-6" class="selfRef">Figure 6</a>:
<a href="#name-soa-resource-record-data-de" class="selfRef">SOA Resource Record Data Definition</a>
</figcaption></figure>
</div>
Expand All @@ -1550,9 +1601,9 @@ <h5 id="name-mx-record-data">
</li>
</ul>
<p id="section-3.2.1.2-3">TBD: make some parts optional?<a href="#section-3.2.1.2-3" class="pilcrow"></a></p>
<p id="section-3.2.1.2-4">The definition for MX record data can be seen in <a href="#fig_dns-rdata-mx" class="auto internal xref">Figure 6</a>.<a href="#section-3.2.1.2-4" class="pilcrow"></a></p>
<p id="section-3.2.1.2-4">The definition for MX record data can be seen in <a href="#fig_dns-rdata-mx" class="auto internal xref">Figure 7</a>.<a href="#section-3.2.1.2-4" class="pilcrow"></a></p>
<span id="name-mx-resource-record-data-def"></span><div id="fig_dns-rdata-mx">
<figure id="figure-6">
<figure id="figure-7">
<div class="lang-cddl sourcecode" id="section-3.2.1.2-5.1">
<pre>
mx = [
Expand All @@ -1561,7 +1612,7 @@ <h5 id="name-mx-record-data">
]
</pre>
</div>
<figcaption><a href="#figure-6" class="selfRef">Figure 6</a>:
<figcaption><a href="#figure-7" class="selfRef">Figure 7</a>:
<a href="#name-mx-resource-record-data-def" class="selfRef">MX Resource Record Data Definition</a>
</figcaption></figure>
</div>
Expand All @@ -1588,9 +1639,9 @@ <h5 id="name-srv-record-data">
</li>
</ul>
<p id="section-3.2.1.3-3">TBD: make some parts optional?<a href="#section-3.2.1.3-3" class="pilcrow"></a></p>
<p id="section-3.2.1.3-4">The definition for MX record data can be seen in <a href="#fig_dns-rdata-mx" class="auto internal xref">Figure 6</a>.<a href="#section-3.2.1.3-4" class="pilcrow"></a></p>
<p id="section-3.2.1.3-4">The definition for MX record data can be seen in <a href="#fig_dns-rdata-mx" class="auto internal xref">Figure 7</a>.<a href="#section-3.2.1.3-4" class="pilcrow"></a></p>
<span id="name-srv-resource-record-data-de"></span><div id="fig_dns-rdata-srv">
<figure id="figure-7">
<figure id="figure-8">
<div class="lang-cddl sourcecode" id="section-3.2.1.3-5.1">
<pre>
srv = [
Expand All @@ -1601,7 +1652,7 @@ <h5 id="name-srv-record-data">
]
</pre>
</div>
<figcaption><a href="#figure-7" class="selfRef">Figure 7</a>:
<figcaption><a href="#figure-8" class="selfRef">Figure 8</a>:
<a href="#name-srv-resource-record-data-de" class="selfRef">SRV Resource Record Data Definition</a>
</figcaption></figure>
</div>
Expand All @@ -1627,7 +1678,7 @@ <h5 id="name-svcb-and-https-record-data">
</ul>
<p id="section-3.2.1.4-3">TBD: make some parts optional?<a href="#section-3.2.1.4-3" class="pilcrow"></a></p>
<span id="name-svcb-and-https-resource-rec"></span><div id="fig_dns-rdata-svcb">
<figure id="figure-8">
<figure id="figure-9">
<div class="lang-cddl sourcecode" id="section-3.2.1.4-4.1">
<pre>
svcb = [
Expand All @@ -1642,7 +1693,7 @@ <h5 id="name-svcb-and-https-record-data">
)
</pre>
</div>
<figcaption><a href="#figure-8" class="selfRef">Figure 8</a>:
<figcaption><a href="#figure-9" class="selfRef">Figure 9</a>:
<a href="#name-svcb-and-https-resource-rec" class="selfRef">SVCB and HTTPS Resource Record Data Definition</a>
</figcaption></figure>
</div>
Expand Down Expand Up @@ -1674,7 +1725,7 @@ <h4 id="name-edns-opt-pseudo-rrs">
<p id="section-3.2.2-6">TBD: reverse extended flags to get MSB-defined DO into LSB?<a href="#section-3.2.2-6" class="pilcrow"></a></p>
<p id="section-3.2.2-7">Note that future EDNS versions may require a different format than the one described above.<a href="#section-3.2.2-7" class="pilcrow"></a></p>
<span id="name-dns-opt-resource-record-def"></span><div id="fig_dns-opt-rr">
<figure id="figure-9">
<figure id="figure-10">
<div class="lang-cddl sourcecode" id="section-3.2.2-8.1">
<pre>
opt-rr = [
Expand All @@ -1696,7 +1747,7 @@ <h4 id="name-edns-opt-pseudo-rrs">
)
</pre>
</div>
<figcaption><a href="#figure-9" class="selfRef">Figure 9</a>:
<figcaption><a href="#figure-10" class="selfRef">Figure 10</a>:
<a href="#name-dns-opt-resource-record-def" class="selfRef">DNS OPT Resource Record Definition</a>
</figcaption></figure>
</div>
Expand Down Expand Up @@ -1763,9 +1814,9 @@ <h3 id="name-dns-queries">
If three additional arrays are in the query, they encode, in that order, the answer section, the authority, and additional sections of the query each as an array of DNS resource records (see <a href="#sec_rr" class="auto internal xref">Section 3.2</a>).<a href="#section-3.3-11" class="pilcrow"></a></p>
<p id="section-3.3-12">As such, the highest precedence in elision is given to the answer section, as it only occurs with mDNS to signify Known Answers <span>[<a href="#RFC6762" class="cite xref">RFC6762</a>]</span>.
The lowest precedence is given to the additional section, as it may contain EDNS OPT Pseudo-RRs, which are common in queries (see <a href="#sec_edns" class="auto internal xref">Section 3.2.2</a>).<a href="#section-3.3-12" class="pilcrow"></a></p>
<p id="section-3.3-13">The representation of a DNS query is defined in <a href="#fig_dns-query" class="auto internal xref">Figure 10</a>.<a href="#section-3.3-13" class="pilcrow"></a></p>
<p id="section-3.3-13">The representation of a DNS query is defined in <a href="#fig_dns-query" class="auto internal xref">Figure 11</a>.<a href="#section-3.3-13" class="pilcrow"></a></p>
<span id="name-dns-query-definition"></span><div id="fig_dns-query">
<figure id="figure-10">
<figure id="figure-11">
<div class="lang-cddl sourcecode" id="section-3.3-14.1">
<pre>
dns-query = [
Expand Down Expand Up @@ -1796,7 +1847,7 @@ <h3 id="name-dns-queries">
)
</pre>
</div>
<figcaption><a href="#figure-10" class="selfRef">Figure 10</a>:
<figcaption><a href="#figure-11" class="selfRef">Figure 11</a>:
<a href="#name-dns-query-definition" class="selfRef">DNS Query Definition</a>
</figcaption></figure>
</div>
Expand Down Expand Up @@ -1843,7 +1894,7 @@ <h3 id="name-dns-responses">
The authority section is also represented as an array of one or more DNS Resource Records (see
<a href="#sec_rr" class="auto internal xref">Section 3.2</a>).<a href="#section-3.4-8" class="pilcrow"></a></p>
<span id="name-dns-response-definition"></span><div id="fig_dns-response">
<figure id="figure-11">
<figure id="figure-12">
<div class="lang-cddl sourcecode" id="section-3.4-9.1">
<pre>
dns-response = [
Expand All @@ -1854,21 +1905,23 @@ <h3 id="name-dns-responses">
]
</pre>
</div>
<figcaption><a href="#figure-11" class="selfRef">Figure 11</a>:
<figcaption><a href="#figure-12" class="selfRef">Figure 12</a>:
<a href="#name-dns-response-definition" class="selfRef">DNS Response Definition</a>
</figcaption></figure>
</div>
</section>
</div>
</section>
</div>
<div id="name-and-address-compression-with-cbor-packed">
<div id="further-compression-with-cbor-packed">
<section id="section-4">
<h2 id="name-name-and-address-compressio">
<a href="#section-4" class="section-number selfRef">4. </a><a href="#name-name-and-address-compressio" class="section-name selfRef">Name and Address Compression with CBOR-packed</a>
<h2 id="name-further-compression-with-cb">
<a href="#section-4" class="section-number selfRef">4. </a><a href="#name-further-compression-with-cb" class="section-name selfRef">Further Compression with CBOR-packed</a>
</h2>
<p id="section-4-1">If both DNS server and client support CBOR-packed <span>[<a href="#I-D.ietf-cbor-packed" class="cite xref">I-D.ietf-cbor-packed</a>]</span>, it <span class="bcp14">MAY</span> be used for name and
address compression in DNS responses.<a href="#section-4-1" class="pilcrow"></a></p>
<p id="section-4-1">If both DNS server and client support CBOR-packed <span>[<a href="#I-D.ietf-cbor-packed" class="cite xref">I-D.ietf-cbor-packed</a>]</span>, it <span class="bcp14">MAY</span> be used for further
compression in DNS responses.
Especially IPv6 addresses in, e.g., AAAA resource records can benefit from straight referencing to
compress common address prefixes.<a href="#section-4-1" class="pilcrow"></a></p>
<div id="media-type-negotiation">
<section id="section-4.1">
<h3 id="name-media-type-negotiation">
Expand Down Expand Up @@ -2110,6 +2163,12 @@ <h3 id="name-cbor-tags-registry">
</tr>
</thead>
<tbody>
<tr>
<td class="text-right" rowspan="1" colspan="1">TBDt</td>
<td class="text-left" rowspan="1" colspan="1">unsigned integer</td>
<td class="text-left" rowspan="1" colspan="1">DNS name suffix extension</td>
<td class="text-left" rowspan="1" colspan="1">draft-lenders-dns-cbor</td>
</tr>
<tr>
<td class="text-right" rowspan="1" colspan="1">TBD141</td>
<td class="text-left" rowspan="1" colspan="1">array</td>
Expand Down
Loading

0 comments on commit ebd17c1

Please sign in to comment.