rfc9362xml2.original.xml | rfc9362.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <!DOCTYPE rfc [ | |||
<?rfc toc="yes"?> | <!ENTITY nbsp " "> | |||
<?rfc tocompact="yes"?> | <!ENTITY zwsp "​"> | |||
<?rfc tocdepth="4"?> | <!ENTITY nbhy "‑"> | |||
<?rfc tocindent="yes"?> | <!ENTITY wj "⁠"> | |||
<?rfc symrefs="yes"?> | ]> | |||
<?rfc sortrefs="yes"?> | ||||
<?rfc comments="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
<?rfc inline="yes"?> | std" consensus="true" docName="draft-ietf-dots-robust-blocks-06" number="9362" i | |||
<?rfc compact="yes"?> | pr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDept | |||
<?rfc subcompact="no"?> | h="4" symRefs="true" sortRefs="true" version="3"> | |||
<rfc category="std" docName="draft-ietf-dots-robust-blocks-06" | ||||
ipr="trust200902"> | <!-- xml2rfc v2v3 conversion 3.15.0 --> | |||
<front> | <front> | |||
<title abbrev="DOTS Robust Block Transmission">Distributed | <title abbrev="DOTS Robust Block Transmission">Distributed | |||
Denial-of-Service Open Threat Signaling (DOTS) Signal Channel | Denial-of-Service Open Threat Signaling (DOTS) Signal Channel | |||
Configuration Attributes for Robust Block Transmission</title> | Configuration Attributes for Robust Block Transmission</title> | |||
<seriesInfo name="RFC" value="9362"/> | ||||
<author fullname="Mohamed Boucadair" initials="M." surname="Boucadair"> | <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair"> | |||
<organization>Orange</organization> | <organization>Orange</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city>Rennes</city> | <city>Rennes</city> | |||
<region/> | ||||
<region></region> | ||||
<code>35000</code> | <code>35000</code> | |||
<country>France</country> | <country>France</country> | |||
</postal> | </postal> | |||
<email>mohamed.boucadair@orange.com</email> | <email>mohamed.boucadair@orange.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Jon Shallow" initials="J." surname="Shallow"> | <author fullname="Jon Shallow" initials="J." surname="Shallow"> | |||
<organization></organization> | <organization/> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city/> | ||||
<city></city> | <region/> | |||
<code/> | ||||
<region></region> | ||||
<code></code> | ||||
<country>United Kingdom</country> | <country>United Kingdom</country> | |||
</postal> | </postal> | |||
<email>supjps-ietf@jpshallow.com</email> | <email>supjps-ietf@jpshallow.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2023" month="February" /> | ||||
<date /> | <area>sec</area> | |||
<workgroup>dots</workgroup> | ||||
<workgroup>DOTS</workgroup> | ||||
<keyword>Quick-Block</keyword> | <keyword>Quick-Block</keyword> | |||
<keyword>Robust-Block</keyword> | <keyword>Robust-Block</keyword> | |||
<keyword>R-Block</keyword> | <keyword>R-Block</keyword> | |||
<keyword>Tough-Block</keyword> | <keyword>Tough-Block</keyword> | |||
<keyword>Resilient-Block</keyword> | <keyword>Resilient-Block</keyword> | |||
<keyword>Fast-Block</keyword> | <keyword>Fast-Block</keyword> | |||
<keyword>Resilience</keyword> | <keyword>Resilience</keyword> | |||
<keyword>Filtering</keyword> | <keyword>Filtering</keyword> | |||
<keyword>Faster transmission</keyword> | <keyword>Faster transmission</keyword> | |||
<keyword>Large amounts of data</keyword> | <keyword>Large amounts of data</keyword> | |||
<keyword>Less packet interchange</keyword> | <keyword>Less packet interchange</keyword> | |||
<keyword>Fast recovery</keyword> | <keyword>Fast recovery</keyword> | |||
<abstract> | <abstract> | |||
<t>This document specifies new DDoS Open Threat Signaling (DOTS) signal | <t>This document specifies new DDoS Open Threat Signaling (DOTS) signal | |||
channel configuration parameters that can be negotiated between DOTS | channel configuration parameters that can be negotiated between DOTS | |||
peers to enable the use of Q-Block1 and Q-Block2 CoAP options. These | peers to enable the use of Q-Block1 and Q-Block2 Constrained Application P rotocol (CoAP) options. These | |||
options enable robust and faster transmission rates for large amounts of | options enable robust and faster transmission rates for large amounts of | |||
data with less packet interchanges as well as supporting faster recovery | data with less packet interchanges as well as support for faster recovery | |||
should any of the blocks get lost in transmission (especially, during | should any of the blocks get lost in transmission (especially during | |||
DDoS attacks).</t> | DDoS attacks).</t> | |||
<t>Also, this document defines a YANG data model for representing these | <t>Also, this document defines a YANG data model for representing these | |||
new DOTS signal channel configuration parameters. This model augments | new DOTS signal channel configuration parameters. This model augments | |||
the DOTS signal YANG module ("ietf-dots-signal-channel") defined in RFC | the DOTS signal YANG module ("ietf-dots-signal-channel") defined in RFC | |||
9132.</t> | 9132.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction" title="Introduction"> | <section anchor="introduction" numbered="true" toc="default"> | |||
<t>The Constrained Application Protocol (CoAP) <xref | <name>Introduction</name> | |||
target="RFC7252"></xref>, although inspired by HTTP, was designed to use | <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252" form | |||
at="default"/>, although inspired by HTTP, was designed to use | ||||
UDP instead of TCP. The message layer of CoAP over UDP includes support | UDP instead of TCP. The message layer of CoAP over UDP includes support | |||
for reliable delivery, simple congestion control, and flow control. The | for reliable delivery, simple congestion control, and flow control. The | |||
block-wise transfer <xref target="RFC7959"></xref> introduced the CoAP | block-wise transfer <xref target="RFC7959" format="default"/> introduced t he CoAP | |||
Block1 and Block2 options to handle data records that cannot fit in a | Block1 and Block2 options to handle data records that cannot fit in a | |||
single IP packet, so not having to rely on IP fragmentation. The | single IP packet, to avoid having to rely on IP fragmentation. The | |||
block-wise transfer was further updated by <xref | block-wise transfer was further updated by <xref target="RFC8323" format=" | |||
target="RFC8323"></xref> for use over TCP, TLS, and WebSockets.</t> | default"/> for use over TCP, TLS, and WebSockets.</t> | |||
<t>The CoAP Block1 and Block2 options work well in environments where | <t>The CoAP Block1 and Block2 options work well in environments where | |||
there are no or minimal packet losses. These options operate | there are no or minimal packet losses. These options operate | |||
synchronously where each individual block has to be requested and can | synchronously where each individual block has to be requested and can | |||
only ask for (or send) the next block when the request for the previous | only ask for (or send) the next block when the request for the previous | |||
block has completed. Packet, and hence block transmission rate, is | block has completed. Packet rates, and hence block transmission rates, are | |||
controlled by Round-Trip Times (RTTs).</t> | controlled by Round-Trip Times (RTTs).</t> | |||
<t>There is a requirement for these blocks of data to be transmitted at | <t>There is a requirement for these blocks of data to be transmitted at | |||
higher rates under network conditions where there may be asymmetrical | higher rates under network conditions where there may be asymmetrical | |||
transient packet loss (e.g., responses may get dropped). An example is | transient packet loss (e.g., responses may get dropped). An example is | |||
when a network is subject to a Distributed Denial of Service (DDoS) | when a network is subject to a Distributed Denial of Service (DDoS) | |||
attack and there is a need for DDoS mitigation agents relying upon CoAP | attack and there is a need for DDoS mitigation agents relying upon CoAP | |||
to communicate with each other (e.g., <xref target="RFC9244"></xref>). | to communicate with each other (e.g., <xref target="RFC9244" format="defau | |||
As a reminder, <xref target="RFC7959"></xref> recommends the use of | lt"/>). | |||
As a reminder, <xref target="RFC7959" format="default"/> recommends the us | ||||
e of | ||||
Confirmable (CON) responses to handle potential packet loss. However, | Confirmable (CON) responses to handle potential packet loss. However, | |||
such a recommendation does not work with a flooded pipe DDoS situation | such a recommendation does not work with a "flooded pipe" DDoS situation | |||
because the returning ACK packets may not get through.</t> | because the returning ACK packets may not get through.</t> | |||
<t>The block-wise transfer specified in <xref target="RFC7959" format="def | ||||
<t>The block-wise transfer specified in <xref target="RFC7959"></xref> | ault"/> | |||
covers the general case, but falls short in situations where packet loss | covers the general case but falls short in situations where packet loss | |||
is highly asymmetrical. The mechanism specified in <xref | is highly asymmetrical. The mechanism specified in <xref target="RFC9177" | |||
target="RFC9177"></xref> provides roughly similar features to the | format="default"/> provides features roughly similar to the | |||
Block1/Block2 options, but provides additional properties that are | Block1/Block2 options but also provides additional properties that are | |||
tailored towards the intended DDoS Open Threat Signaling (DOTS) | tailored towards the intended DDoS Open Threat Signaling (DOTS) | |||
transmission. Concretely, <xref target="RFC9177"></xref> primarily | transmission. Concretely, <xref target="RFC9177" format="default"/> primar ily | |||
targets applications such as DOTS that can't use Confirmable responses | targets applications such as DOTS that can't use Confirmable responses | |||
to handle potential packet loss and that support application-specific | to handle potential packet loss and that support application-specific | |||
mechanisms to assess whether the remote peer is able to handle the | mechanisms to assess whether the remote peer is able to handle the | |||
messages sent by a CoAP endpoint (e.g., DOTS heartbeats in Section 4.7 | messages sent by a CoAP endpoint (e.g., DOTS heartbeats as discussed in <x | |||
of <xref target="RFC9132"></xref>).</t> | ref target="RFC9132" sectionFormat="of" section="4.7"/>).</t> | |||
<t><xref target="RFC9177" format="default"/> includes guards to prevent a | ||||
<t><xref target="RFC9177"></xref> includes guards to prevent a CoAP | CoAP | |||
agent from overloading the network by adopting an aggressive sending | agent from overloading the network by adopting an aggressive sending | |||
rate. These guards are followed in addition to the existing CoAP | rate. These guards are followed in addition to the existing CoAP | |||
congestion control as specified in Section 4.7 of <xref | congestion control as specified in <xref target="RFC7252" sectionFormat="o | |||
target="RFC7252"></xref> (mainly, PROBING_RATE). Table 1 lists the | f" section="4.7"/> (mainly PROBING_RATE). <xref target="tab-1"/> lists the | |||
additional CoAP parameters that are used for the guards (Section 7.2 of | additional CoAP parameters that are used for the guards (<xref target="RFC | |||
<xref target="RFC9177"></xref>). Note that NON in this table refers to | 9177" sectionFormat="of" section="7.2"/>). Note that NON in this table refers to | |||
Non-confirmable.</t> | Non-confirmable.</t> | |||
<t><figure align="center"> | <table anchor="tab-1"> | |||
<artwork align="center"><![CDATA[+---------------------+-------------- | <name>Congestion Control Parameters</name> | |||
-----+ | <thead> | |||
| Parameter Name | Default Value | | <tr> | |||
+=====================+===================+ | <th>Parameter Name</th> | |||
| MAX_PAYLOADS | 10 | | <th>Default Value</th> | |||
| NON_MAX_RETRANSMIT | 4 | | </tr> | |||
| NON_TIMEOUT | 2 s | | </thead> | |||
| NON_TIMEOUT_RANDOM | between 2-3 s | | <tbody> | |||
| NON_RECEIVE_TIMEOUT | 4 s | | <tr> | |||
| NON_PROBING_WAIT | between 247-248 s | | <td>MAX_PAYLOADS</td> | |||
| NON_PARTIAL_TIMEOUT | 247 s | | <td>10</td> | |||
+---------------------+-------------------+ | </tr> | |||
<tr> | ||||
Table 1: Congestion Control Parameters]]></artwork> | <td>NON_MAX_RETRANSMIT</td> | |||
</figure></t> | <td>4</td> | |||
</tr> | ||||
<tr> | ||||
<td>NON_TIMEOUT</td> | ||||
<td>2 s</td> | ||||
</tr> | ||||
<tr> | ||||
<td>NON_TIMEOUT_RANDOM</td> | ||||
<td>between 2-3 s</td> | ||||
</tr> | ||||
<tr> | ||||
<td>NON_RECEIVE_TIMEOUT</td> | ||||
<td>4 s</td> | ||||
</tr> | ||||
<tr> | ||||
<td>NON_PROBING_WAIT</td> | ||||
<td>between 247-248 s</td> | ||||
</tr> | ||||
<tr> | ||||
<td>NON_PARTIAL_TIMEOUT</td> | ||||
<td>247 s</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>PROBING_RATE and other transmission parameters are negotiated between | <t>PROBING_RATE and other transmission parameters are negotiated between | |||
DOTS peers as discussed in Section 4.5.2 of <xref | DOTS peers as discussed in <xref target="RFC9132" sectionFormat="of" secti | |||
target="RFC9132"></xref>. Nevertheless, negotiating the parameters | on="4.5.2"/>. Nevertheless, negotiating the parameters | |||
listed in Table 1 is not supported in <xref target="RFC9132"></xref>. | listed in <xref target="tab-1"/> is not supported in <xref target="RFC9132 | |||
" format="default"/>. | ||||
This document defines new DOTS signal channel attributes, corresponding | This document defines new DOTS signal channel attributes, corresponding | |||
to the parameters in Table 1, that are used to customize the | to the parameters in <xref target="tab-1"/>, that are used to customize th e | |||
configuration of robust block transmission in a DOTS context.</t> | configuration of robust block transmission in a DOTS context.</t> | |||
</section> | </section> | |||
<section anchor="notation" numbered="true" toc="default"> | ||||
<section anchor="notation" title="Terminology"> | <name>Terminology</name> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
"OPTIONAL" in this document are to be interpreted as described in BCP 14 | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
<xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and | "<bcp14>SHOULD NOT</bcp14>", | |||
only when, they appear in all capitals, as shown here.</t> | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | ||||
are to be interpreted as described in BCP 14 | ||||
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | ||||
when, they appear in all capitals, as shown here.</t> | ||||
<t>Readers should be familiar with the terms and concepts defined in | <t>Readers should be familiar with the terms and concepts defined in | |||
<xref target="RFC7252"></xref> and <xref target="RFC8612"></xref>.</t> | <xref target="RFC7252" format="default"/> and <xref target="RFC8612" forma | |||
t="default"/>.</t> | ||||
<t>The terms "payload" and "body" are defined in <xref | <t>The terms "payload" and "body" are defined in <xref target="RFC7959" fo | |||
target="RFC7959"></xref>. The term "payload" is thus used for the | rmat="default"/>. The term "payload" is thus used for the | |||
content of a single CoAP message (i.e., a single block being | content of a single CoAP message (i.e., a single block being | |||
transferred), while the term "body" is used for the entire resource | transferred), while the term "body" is used for the entire resource | |||
representation that is being transferred in a block-wise fashion.</t> | representation that is being transferred in a block-wise fashion.</t> | |||
<t>The meanings of the symbols in YANG tree diagrams are defined in <xref | ||||
<t>The meaning of the symbols in YANG tree diagrams are defined in <xref | target="RFC8340" format="default"/> and <xref target="RFC8791" format="default"/ | |||
target="RFC8340"></xref> and <xref target="RFC8791"></xref>.</t> | >.</t> | |||
</section> | </section> | |||
<section anchor="new" numbered="true" toc="default"> | ||||
<section anchor="new" | <name>DOTS Attributes for Robust Block Transmission</name> | |||
title="DOTS Attributes for Robust Block Transmission"> | <t><xref target="RFC9177" sectionFormat="of" section="7.2"/> defines the f | |||
<t>Section 7.2 of <xref target="RFC9177"></xref> defines the following | ollowing | |||
parameters that are used for congestion control purposes:<list | parameters that are used for congestion control purposes:</t> | |||
style="hanging"> | <dl newline="false" spacing="normal"> | |||
<t hangText="MAX_PAYLOADS:">is the maximum number of payloads that | <dt>MAX_PAYLOADS:</dt> | |||
can be transmitted at any one time.</t> | <dd>This parameter represents the maximum number of payloads that | |||
can be transmitted at any one time.</dd> | ||||
<t hangText="NON_MAX_RETRANSMIT:">is the maximum number of times a | <dt>NON_MAX_RETRANSMIT:</dt> | |||
<dd>This parameter represents the maximum number of times a | ||||
request for the retransmission of missing payloads can occur without | request for the retransmission of missing payloads can occur without | |||
a response from the remote peer. By default, NON_MAX_RETRANSMIT has | a response from the remote peer. By default, NON_MAX_RETRANSMIT has | |||
the same value as MAX_RETRANSMIT (Section 4.8 of <xref | the same value as MAX_RETRANSMIT (<xref target="RFC7252" sectionFormat | |||
target="RFC7252"></xref>).</t> | ="of" section="4.8"/>).</dd> | |||
<dt>NON_TIMEOUT:</dt> | ||||
<t hangText="NON_TIMEOUT:">is the maximum period of delay between | <dd>This parameter represents the maximum period of delay between | |||
sending sets of MAX_PAYLOADS payloads for the same body. NON_TIMEOUT | sending sets of MAX_PAYLOADS payloads for the same body. NON_TIMEOUT | |||
has the same value as ACK_TIMEOUT (Section 4.8 of <xref | has the same value as ACK_TIMEOUT (<xref target="RFC7252" sectionForma | |||
target="RFC7252"></xref>).</t> | t="of" section="4.8"/>).</dd> | |||
<dt>NON_TIMEOUT_RANDOM:</dt> | ||||
<t hangText="NON_TIMEOUT_RANDOM:">is the initial actual delay | <dd>This parameter represents the initial actual delay | |||
between sending the first two MAX_PAYLOADS_SETs of the same body. It | between sending the first two MAX_PAYLOADS_SETs of the same body. It | |||
is a random duration between NON_TIMEOUT and (NON_TIMEOUT * | is a random duration between NON_TIMEOUT and (NON_TIMEOUT * | |||
ACK_RANDOM_FACTOR).</t> | ACK_RANDOM_FACTOR).</dd> | |||
<dt>NON_RECEIVE_TIMEOUT:</dt> | ||||
<t hangText="NON_RECEIVE_TIMEOUT:">is the maximum time to wait for a | <dd>This parameter represents the maximum time to wait for a | |||
missing payload before requesting retransmission. By default, | missing payload before requesting retransmission. By default, | |||
NON_RECEIVE_TIMEOUT has a value of twice NON_TIMEOUT.</t> | NON_RECEIVE_TIMEOUT has a value of twice NON_TIMEOUT.</dd> | |||
<dt>NON_PROBING_WAIT:</dt> | ||||
<t hangText="NON_PROBING_WAIT:">is used to limit the potential wait | <dd>This parameter is used to limit the potential wait | |||
needed when using PROBING_RATE.</t> | needed when using PROBING_RATE.</dd> | |||
<dt>NON_PARTIAL_TIMEOUT:</dt> | ||||
<t hangText="NON_PARTIAL_TIMEOUT:">is used for expiring partially | <dd>This parameter is used for expiring partially | |||
received bodies.</t> | received bodies.</dd> | |||
</list></t> | </dl> | |||
<t>These parameters are used together with the PROBING_RATE parameter, whi | ||||
<t>These parameters are used together with PROBING_RATE parameter which | ch | |||
in CoAP indicates the average data rate that must not be exceeded by a | in CoAP indicates the average data rate that must not be exceeded by a | |||
CoAP endpoint in sending to a peer endpoint that does not respond. The | CoAP endpoint in sending to a peer endpoint that does not respond. The | |||
single body of blocks will be subjected to PROBING_RATE (Section 4.7 of | single body of blocks will be subjected to PROBING_RATE (<xref target="RFC | |||
<xref target="RFC7252"></xref>), not the individual packets. If the wait | 7252" sectionFormat="of" section="4.7"/>), not the individual packets. If the wa | |||
it | ||||
time between sending bodies that are not being responded to based on | time between sending bodies that are not being responded to based on | |||
PROBING_RATE exceeds NON_PROBING_WAIT, then the wait time is limited to | PROBING_RATE exceeds NON_PROBING_WAIT, then the wait time is limited to | |||
NON_PROBING_WAIT.</t> | NON_PROBING_WAIT.</t> | |||
<t>This document augments the "ietf-dots-signal-channel" DOTS signal | <t>This document augments the "ietf-dots-signal-channel" DOTS signal | |||
YANG module defined in Section 5.3 of <xref target="RFC9132"></xref> | YANG module defined in <xref target="RFC9132" sectionFormat="of" section=" | |||
with the following additional attributes that can be negotiated between | 5.3"/> with the following additional attributes that can be negotiated between | |||
DOTS peers to enable robust and faster transmission:</t> | DOTS peers to enable robust and faster transmission:</t> | |||
<dl newline="false" spacing="normal"> | ||||
<t><list style="hanging"> | <dt>max-payloads:</dt> | |||
<t hangText="max-payloads:">This attribute echoes the MAX_PAYLOADS | <dd> | |||
parameter in <xref target="RFC9177"></xref>.<vspace | <t>This attribute echoes the MAX_PAYLOADS | |||
blankLines="1" />This is an optional attribute. If the attribute is | parameter defined in <xref target="RFC9177" format="default"/>.</t> | |||
supplied in both ‘idle-config’ and | <t>This is an optional attribute. If the attribute is | |||
‘mitigating-config’, then it MUST convey the same value. | supplied in both 'idle-config' and | |||
'mitigating-config', then it <bcp14>MUST</bcp14> convey the same value | ||||
. | ||||
If the attribute is only provided as part of | If the attribute is only provided as part of | |||
‘idle-config’ (or ‘mitigating-config’), then | 'idle-config' (or 'mitigating-config'), then | |||
the other definition (i.e., ‘mitigating-config’ (or | the other definition (i.e., 'mitigating-config' (or | |||
‘idle-config’)) MUST be updated to the same value.</t> | 'idle-config')) <bcp14>MUST</bcp14> be updated to the same value.</t> | |||
</dd> | ||||
<t hangText="non-max-retransmit:">This attribute echoes the | <dt>non-max-retransmit:</dt> | |||
NON_MAX_RETRANSMIT parameter in <xref target="RFC9177"></xref>. The | <dd> | |||
<t>This attribute echoes the | ||||
NON_MAX_RETRANSMIT parameter defined in <xref target="RFC9177" format= | ||||
"default"/>. The | ||||
default value of this attribute is 'max-retransmit'. Note that DOTS | default value of this attribute is 'max-retransmit'. Note that DOTS | |||
uses a default value of '3' instead of '4' used for the generic CoAP | uses a default value of '3' instead of '4' (which is used | |||
use (Section 4.5.2 of <xref target="RFC9132"></xref>) for | generically by CoAP for 'max-transmit'; see <xref target="RFC9132" sec | |||
max-transmit. <vspace blankLines="1" />This is an optional | tionFormat="of" section="4.5.2"/> and <xref target="RFC7252" sectionFormat="of" | |||
attribute.</t> | section="4.8"/>).</t> | |||
<t hangText="non-timeout:">This attribute, expressed in seconds, | <t>This is an optional | |||
echoes the NON_TIMEOUT parameter in <xref target="RFC9177"></xref>. | attribute.</t> | |||
The default value of this attribute is 'ack-timeout'.<vspace | </dd> | |||
blankLines="1" />This attribute is also used to compute the | <dt>non-timeout:</dt> | |||
NON_TIMEOUT_RANDOM parameter.<vspace blankLines="1" />This is an | <dd> | |||
<t>This attribute, expressed in seconds, | ||||
echoes the NON_TIMEOUT parameter defined in <xref target="RFC9177" for | ||||
mat="default"/>. | ||||
The default value of this attribute is 'ack-timeout'.</t> | ||||
<t>This attribute is also used to compute the | ||||
NON_TIMEOUT_RANDOM parameter.</t> | ||||
<t>This is an | ||||
optional attribute.</t> | optional attribute.</t> | |||
</dd> | ||||
<t hangText="non-receive-timeout:">This attribute, expressed in | <dt>non-receive-timeout:</dt> | |||
seconds, echoes the NON_RECEIVE_TIMEOUT parameter in <xref | <dd> | |||
target="RFC9177"></xref>. The default value of this attribute is | <t>This attribute, expressed in | |||
twice 'non-timeout'.<vspace blankLines="1" />This is an optional | seconds, echoes the NON_RECEIVE_TIMEOUT parameter defined in <xref tar | |||
get="RFC9177" format="default"/>. The default value of this attribute is | ||||
twice 'non-timeout'.</t> | ||||
<t>This is an optional | ||||
attribute.</t> | attribute.</t> | |||
</dd> | ||||
<t hangText="non-probing-wait:">This attribute, expressed in | <dt>non-probing-wait:</dt> | |||
seconds, echoes the NON_PROBING_WAIT parameter in <xref | <dd> | |||
target="RFC9177"></xref>. <vspace blankLines="1" />This is an | <t>This attribute, expressed in | |||
seconds, echoes the NON_PROBING_WAIT parameter defined in <xref target | ||||
="RFC9177" format="default"/>. </t> | ||||
<t>This is an | ||||
optional attribute.</t> | optional attribute.</t> | |||
</dd> | ||||
<dt>non-partial-timeout:</dt> | ||||
<dd> | ||||
<t>This attribute, expressed in | ||||
seconds, echoes the NON_PARTIAL_TIMEOUT parameter defined in <xref tar | ||||
get="RFC9177" format="default"/>. The default value of this attribute is 247 | ||||
seconds.</t> | ||||
<t>This is an optional attribute.</t> | ||||
</dd> | ||||
</dl> | ||||
<t>The tree structure of the "ietf-dots-robust-trans" module (<xref target | ||||
="module" format="default"/>) is shown in <xref target="tree" format="default"/> | ||||
.</t> | ||||
<t hangText="non-partial-timeout:">This attribute, expressed in | <figure anchor="tree"> | |||
seconds, echoes the NON_PARTIAL_TIMEOUT parameter in <xref | <name>DOTS Fast Block Transmission Tree Structure</name> | |||
target="RFC9177"></xref>. The default value of this attribute is 247 | <sourcecode name="" type="yangtree"><![CDATA[module: ietf-dots-robust-tr | |||
seconds.<vspace blankLines="1" />This is an optional attribute.</t> | ans | |||
</list></t> | ||||
<t>The tree structure of the "ietf-dots-robust-trans" module (<xref | ||||
target="module"></xref>) is shown in <xref target="tree"></xref>.</t> | ||||
<t><figure anchor="tree" | ||||
title="DOTS Fast Block Transmission Tree Structure"> | ||||
<artwork><![CDATA[module: ietf-dots-robust-trans | ||||
augment-structure /dots-signal:dots-signal/dots-signal:message-type | augment-structure /dots-signal:dots-signal/dots-signal:message-type | |||
/dots-signal:signal-config | /dots-signal:signal-config | |||
/dots-signal:mitigating-config: | /dots-signal:mitigating-config: | |||
+-- max-payloads | +-- max-payloads | |||
| +-- (direction)? | | +-- (direction)? | |||
| | +--:(server-to-client-only) | | | +--:(server-to-client-only) | |||
| | +-- max-value? uint16 | | | +-- max-value? uint16 | |||
| | +-- min-value? uint16 | | | +-- min-value? uint16 | |||
| +-- current-value? uint16 | | +-- current-value? uint16 | |||
skipping to change at line 333 ¶ | skipping to change at line 320 ¶ | |||
| | +--:(server-to-client-only) | | | +--:(server-to-client-only) | |||
| | +-- max-value-decimal? decimal64 | | | +-- max-value-decimal? decimal64 | |||
| | +-- min-value-decimal? decimal64 | | | +-- min-value-decimal? decimal64 | |||
| +-- current-value-decimal? decimal64 | | +-- current-value-decimal? decimal64 | |||
+-- non-probing-wait | +-- non-probing-wait | |||
| +-- (direction)? | | +-- (direction)? | |||
| | +--:(server-to-client-only) | | | +--:(server-to-client-only) | |||
| | +-- max-value-decimal? decimal64 | | | +-- max-value-decimal? decimal64 | |||
| | +-- min-value-decimal? decimal64 | | | +-- min-value-decimal? decimal64 | |||
| +-- current-value-decimal? decimal64 | | +-- current-value-decimal? decimal64 | |||
+-- non-partial-wait: | +-- non-partial-timeout: | |||
+-- (direction)? | +-- (direction)? | |||
| +--:(server-to-client-only) | | +--:(server-to-client-only) | |||
| +-- max-value-decimal? decimal64 | | +-- max-value-decimal? decimal64 | |||
| +-- min-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | |||
+-- current-value-decimal? decimal64 | +-- current-value-decimal? decimal64 | |||
augment-structure /dots-signal:dots-signal/dots-signal:message-type | augment-structure /dots-signal:dots-signal/dots-signal:message-type | |||
/dots-signal:signal-config/dots-signal:idle-config: | /dots-signal:signal-config | |||
/dots-signal:idle-config: | ||||
+-- max-payloads | +-- max-payloads | |||
| +-- (direction)? | | +-- (direction)? | |||
| | +--:(server-to-client-only) | | | +--:(server-to-client-only) | |||
| | +-- max-value? uint16 | | | +-- max-value? uint16 | |||
| | +-- min-value? uint16 | | | +-- min-value? uint16 | |||
| +-- current-value? uint16 | | +-- current-value? uint16 | |||
+-- non-max-retransmit | +-- non-max-retransmit | |||
| +-- (direction)? | | +-- (direction)? | |||
| | +--:(server-to-client-only) | | | +--:(server-to-client-only) | |||
| | +-- max-value? uint16 | | | +-- max-value? uint16 | |||
skipping to change at line 372 ¶ | skipping to change at line 360 ¶ | |||
| | +--:(server-to-client-only) | | | +--:(server-to-client-only) | |||
| | +-- max-value-decimal? decimal64 | | | +-- max-value-decimal? decimal64 | |||
| | +-- min-value-decimal? decimal64 | | | +-- min-value-decimal? decimal64 | |||
| +-- current-value-decimal? decimal64 | | +-- current-value-decimal? decimal64 | |||
+-- non-probing-wait | +-- non-probing-wait | |||
| +-- (direction)? | | +-- (direction)? | |||
| | +--:(server-to-client-only) | | | +--:(server-to-client-only) | |||
| | +-- max-value-decimal? decimal64 | | | +-- max-value-decimal? decimal64 | |||
| | +-- min-value-decimal? decimal64 | | | +-- min-value-decimal? decimal64 | |||
| +-- current-value-decimal? decimal64 | | +-- current-value-decimal? decimal64 | |||
+-- non-partial-wait: | +-- non-partial-timeout: | |||
+-- (direction)? | +-- (direction)? | |||
| +--:(server-to-client-only) | | +--:(server-to-client-only) | |||
| +-- max-value-decimal? decimal64 | | +-- max-value-decimal? decimal64 | |||
| +-- min-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | |||
+-- current-value-decimal? decimal64 | +-- current-value-decimal? decimal64 | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | </figure> | |||
<t>These attributes are mapped to Concise Binary Object Representation (CB | ||||
<t>These attributes are mapped to CBOR types as specified in <xref | OR) types as specified in <xref target="maptab" format="default"/> and in <xref | |||
target="maptab"></xref> and Section 6 of <xref | target="RFC9132" sectionFormat="of" section="6"/>.</t> | |||
target="RFC9132"></xref>.</t> | <t>DOTS clients follow the procedure specified in <xref target="RFC9132" s | |||
ectionFormat="of" section="4.5"/> to negotiate, configure, and retrieve the DOTS | ||||
<t>DOTS clients follow the procedure specified in Section 4.5 of <xref | ||||
target="RFC9132"></xref> to negotiate, configure, and retrieve the DOTS | ||||
signal channel session behavior (including Q-Block parameters) with DOTS | signal channel session behavior (including Q-Block parameters) with DOTS | |||
peers.</t> | peers.</t> | |||
<dl newline="false" spacing="normal"> | ||||
<t><list style="hanging"> | <dt>Implementation Note 1:</dt> | |||
<t hangText="Implementation Note 1:">'non-probing-wait' ideally | <dd>'non-probing-wait' ideally | |||
should be left having some jitter and so should not be hard-coded | should be left having some jitter and so should not be hard-coded | |||
with an explicit value. It is suggested to use a base value (using | with an explicit value. It is suggested to use a base value (using | |||
NON_TIMEOUT instead of NON_TIMEOUT_RANDOM) and, then, the jitter | NON_TIMEOUT instead of NON_TIMEOUT_RANDOM); the jitter | |||
(ACK_RANDOM_FACTOR - 1) is added to each time the value is | (ACK_RANDOM_FACTOR - 1) is then added to each time the value is | |||
checked.</t> | checked.</dd> | |||
<dt>Implementation Note 2:</dt> | ||||
<t hangText="Implementation Note 2:">If any of the signal channel | <dd>If any of the signal channel | |||
session configuration parameters is updated, the 'non-probing-wait' | session configuration parameters is updated, the 'non-probing-wait' | |||
and 'non-partial-timeout' values should be recalculated according to | and 'non-partial-timeout' values should be recalculated according to | |||
the definition algorithms in Section 7.2 of <xref | the definition algorithms provided in <xref target="RFC9177" sectionFo | |||
target="RFC9177"></xref> unless explicit values are provided as part | rmat="of" section="7.2"/> unless explicit values are provided as part | |||
of the negotiated configuration.</t> | of the negotiated configuration.</dd> | |||
</list></t> | </dl> | |||
<t>An example of a PUT message to configure Q-Block parameters is | <t>An example of a PUT message to configure Q-Block parameters is | |||
depicted in <xref target="put"></xref>. In this example, a non-default | depicted in <xref target="put" format="default"/>. In this example, a non- default | |||
value is configured for the 'max-payloads' attribute, while default | value is configured for the 'max-payloads' attribute, while default | |||
values are used for 'non-max-retransmit', 'non-timeout', and | values are used for 'non-max-retransmit', 'non-timeout', and | |||
'non-receive-timeout' in both idle and mitigation times. Given that | 'non-receive-timeout' in both idle and mitigation times. Given that | |||
'non-probing-wait' and 'non-partial-wait' are not explicitly configured | 'non-probing-wait' and 'non-partial-timeout' are not explicitly configured | |||
in this example, these attributes will be computed following the | in this example, these attributes will be computed following the | |||
algorithms in Section 7.2 of <xref target="RFC9177"></xref>. The meaning | algorithms provided in <xref target="RFC9177" sectionFormat="of" section=" | |||
of the other attributes is detailed in Section 4.5 of <xref | 7.2"/>. The meanings | |||
target="RFC9132"></xref>.</t> | of the other attributes are detailed in <xref target="RFC9132" sectionForm | |||
at="of" section="4.5"/>.</t> | ||||
<t><figure align="center" anchor="put" | <figure anchor="put"> | |||
title="Example of PUT to Convey the Configuration Parameters"> | <name>Example of PUT to Convey the Configuration Parameters</name> | |||
<artwork align="left"><![CDATA[ Header: PUT (Code=0.03) | <sourcecode name="" type="http-message"><![CDATA[ | |||
Header: PUT (Code=0.03) | ||||
Uri-Path: ".well-known" | Uri-Path: ".well-known" | |||
Uri-Path: "dots" | Uri-Path: "dots" | |||
Uri-Path: "config" | Uri-Path: "config" | |||
Uri-Path: "sid=123" | Uri-Path: "sid=123" | |||
Content-Format: "application/dots+cbor" | Content-Format: "application/dots+cbor" | |||
{ | { | |||
"ietf-dots-signal-channel:signal-config": { | "ietf-dots-signal-channel:signal-config": { | |||
"mitigating-config": { | "mitigating-config": { | |||
"heartbeat-interval": { | "heartbeat-interval": { | |||
skipping to change at line 487 ¶ | skipping to change at line 467 ¶ | |||
"current-value": 3 | "current-value": 3 | |||
}, | }, | |||
"ietf-dots-robust-trans:non-timeout": { | "ietf-dots-robust-trans:non-timeout": { | |||
"current-value-decimal": "2.00" | "current-value-decimal": "2.00" | |||
}, | }, | |||
"ietf-dots-robust-trans:non-receive-timeout": { | "ietf-dots-robust-trans:non-receive-timeout": { | |||
"current-value-decimal": "4.00" | "current-value-decimal": "4.00" | |||
} | } | |||
} | } | |||
} | } | |||
}]]></artwork> | } | |||
</figure></t> | ]]></sourcecode> | |||
</figure> | ||||
<t></t> | <t>The payload of the message depicted in <xref target="put" format="defau | |||
lt"/> is | ||||
<t>The payload of the message depicted in <xref target="put"></xref> is | ||||
CBOR-encoded as indicated by the Content-Format set to | CBOR-encoded as indicated by the Content-Format set to | |||
"application/dots+cbor" (Section 10.3 of <xref | "application/dots+cbor" (<xref target="RFC9132" sectionFormat="of" section | |||
target="RFC9132"></xref>). However, and for the sake of better | ="10.4"/>). However, and for the sake of better | |||
readability, the example uses JSON encoding of YANG-modeled data | readability, the example uses JSON encoding of YANG-modeled data | |||
following the mapping table in <xref target="maptab"></xref> and Section | following the mapping tables in <xref target="maptab" format="default"/> a | |||
6 of <xref target="RFC9132"></xref>: use the JSON names and types | nd in <xref target="RFC9132" sectionFormat="of" section="6"/>: use the JSON name | |||
defined in <xref target="maptab"></xref>. These conventions are | s and types | |||
inherited from <xref target="RFC9132"></xref>.</t> | defined in <xref target="maptab" format="default"/>. These conventions are | |||
inherited from <xref target="RFC9132" format="default"/>.</t> | ||||
</section> | </section> | |||
<section anchor="maptab" numbered="true" toc="default"> | ||||
<section anchor="maptab" title="YANG/JSON Mapping Parameters to CBOR"> | <name>YANG/JSON Mapping Parameters to CBOR</name> | |||
<t>The YANG/JSON mapping parameters to CBOR are listed in Table 2.<list | <t>The YANG/JSON mapping parameters to CBOR are listed in <xref target="ta | |||
style="symbols"> | b-2"/>.</t> | |||
<t>Note: Implementers must check that the mapping output provided by | <t indent="3">Note: Implementers must check that the mapping output prov | |||
ided by | ||||
their YANG-to-CBOR encoding schemes is aligned with the content of | their YANG-to-CBOR encoding schemes is aligned with the content of | |||
Table 2.</t> | <xref target="tab-2"/>.</t> | |||
</list></t> | ||||
<t><figure align="center"> | ||||
<artwork><![CDATA[+----------------------+------------+------+-------- | ||||
-------+--------+ | ||||
| Parameter Name | YANG | CBOR | CBOR Major | JSON | | ||||
| | Type | Key | Type & | Type | | ||||
| | | | Information | | | ||||
+======================+============+======+===============+========+ | ||||
| ietf-dots-robust- | container | TBA1 | 5 map | Object | | ||||
| trans:max-payloads | | | | | | ||||
+----------------------+------------+------+---------------+--------+ | ||||
| ietf-dots-robust- | container | TBA2 | 5 map | Object | | ||||
| trans:non-max- | | | | | | ||||
| retransmit | | | | | | ||||
+----------------------+------------+------+---------------+--------+ | ||||
| ietf-dots-robust- | container | TBA3 | 5 map | Object | | ||||
| trans:non-timeout | | | | | | ||||
+----------------------+------------+------+---------------+--------+ | ||||
| ietf-dots-robust- | container | TBA4 | 5 map | Object | | ||||
| trans:non-receive- | | | | | | ||||
| timeout | | | | | | ||||
+----------------------+------------+------+---------------+--------+ | ||||
| ietf-dots-robust- | container | TBA5 | 5 map | Object | | ||||
| trans:non-probing- | | | | | | ||||
| wait | | | | | | ||||
+----------------------+------------+------+---------------+--------+ | ||||
| ietf-dots-robust- | container | TBA6 | 5 map | Object | | ||||
| trans:non-partial- | | | | | | ||||
| wait | | | | | | ||||
+----------------------+------------+------+---------------+--------+ | ||||
Table 2: YANG/JSON Mapping Parameters to CBOR | <table anchor="tab-2"> | |||
]]></artwork> | <name>YANG/JSON Mapping Parameters to CBOR</name> | |||
</figure></t> | <thead> | |||
<tr> | ||||
<th>Parameter Name</th> | ||||
<th>YANG Type</th> | ||||
<th>CBOR Key</th> | ||||
<th>CBOR Major Type & Information</th> | ||||
<th>JSON Type</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:max-payloads</td> | ||||
<td>container</td> | ||||
<td>32776</td> | ||||
<td>5 map</td> | ||||
<td>Object</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-max-retransmit</td> | ||||
<td>container</td> | ||||
<td>32777</td> | ||||
<td>5 map</td> | ||||
<td>Object</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-timeout</td> | ||||
<td>container</td> | ||||
<td>32778</td> | ||||
<td>5 map</td> | ||||
<td>Object</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-receive-timeout</td> | ||||
<td>container</td> | ||||
<td>32779</td> | ||||
<td>5 map</td> | ||||
<td>Object</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-probing-wait</td> | ||||
<td>container</td> | ||||
<td>32780</td> | ||||
<td>5 map</td> | ||||
<td>Object</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-partial-timeout</td> | ||||
<td>container</td> | ||||
<td>32781</td> | ||||
<td>5 map</td> | ||||
<td>Object</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t></t> | ||||
</section> | </section> | |||
<section anchor="module" numbered="true" toc="default"> | ||||
<section anchor="module" | <name>DOTS Robust Block Transmission YANG Module</name> | |||
title="DOTS Robust Block Transmission YANG Module"> | <t>This module uses the data structure extension defined in <xref target=" | |||
<t>This module uses the data structure extension defined in <xref | RFC8791" format="default"/>.</t> | |||
target="RFC8791"></xref>.</t> | <sourcecode name="ietf-dots-robust-trans@2023-01-26.yang" type="yang" mark | |||
ers="true"><![CDATA[ | ||||
<t><figure> | ||||
<artwork><![CDATA[<CODE BEGINS> file "ietf-dots-robust-trans@2022-01-0 | ||||
4.yang" | ||||
module ietf-dots-robust-trans { | module ietf-dots-robust-trans { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans"; | namespace "urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans"; | |||
prefix dots-robust; | prefix dots-robust; | |||
import ietf-dots-signal-channel { | import ietf-dots-signal-channel { | |||
prefix dots-signal; | prefix dots-signal; | |||
reference | reference | |||
"RFC 9132: Distributed Denial-of-Service Open Threat | "RFC 9132: Distributed Denial-of-Service Open Threat | |||
Signaling (DOTS) Signal Channel Specification"; | Signaling (DOTS) Signal Channel Specification"; | |||
skipping to change at line 577 ¶ | skipping to change at line 570 ¶ | |||
reference | reference | |||
"RFC 8791: YANG Data Structure Extensions"; | "RFC 8791: YANG Data Structure Extensions"; | |||
} | } | |||
organization | organization | |||
"IETF DDoS Open Threat Signaling (DOTS) Working Group"; | "IETF DDoS Open Threat Signaling (DOTS) Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/dots/> | "WG Web: <https://datatracker.ietf.org/wg/dots/> | |||
WG List: <mailto:dots@ietf.org> | WG List: <mailto:dots@ietf.org> | |||
Author: Mohamed Boucadair | Author: Mohamed Boucadair | |||
<mailto:mohamed.boucadair@orange.com>; | <mailto:mohamed.boucadair@orange.com>; | |||
Author: Jon Shallow | Author: Jon Shallow | |||
<mailto:ietf-supjps@jpshallow.com>"; | <mailto:ietf-supjps@jpshallow.com>"; | |||
description | description | |||
"This module contains YANG definitions for the configuration | "This module contains YANG definitions for the configuration | |||
of parameters that can be negotiated between a DOTS client | of parameters that can be negotiated between a DOTS client | |||
and a DOTS server for robust block transmission. | and a DOTS server for robust block transmission. | |||
Copyright (c) 2022 IETF Trust and the persons identified as | Copyright (c) 2023 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC 9362; see the | |||
the RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
revision 2022-01-04 { | revision 2023-01-26 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: Distributed Denial-of-Service Open Threat | "RFC 9362: Distributed Denial-of-Service Open Threat | |||
Signaling (DOTS) Configuration Attributes | Signaling (DOTS) Configuration Attributes | |||
for Robust Block Transmission"; | for Robust Block Transmission"; | |||
} | } | |||
grouping robust-transmission-attributes { | grouping robust-transmission-attributes { | |||
description | description | |||
"A set of DOTS signal channel session configuration | "A set of DOTS signal channel session configuration | |||
that are negotiated between DOTS agents when | parameters that are negotiated between DOTS agents when | |||
making use of Q-Block1 and Q-Block2 options."; | making use of Q-Block1 and Q-Block2 options."; | |||
container max-payloads { | container max-payloads { | |||
description | description | |||
"Indicates the maximum number of payloads that | "Indicates the maximum number of payloads that | |||
can be transmitted at any one time."; | can be transmitted at any one time."; | |||
choice direction { | choice direction { | |||
description | description | |||
"Indicates the communication direction in which the | "Indicates the communication direction in which the | |||
data nodes can be included."; | data nodes can be included."; | |||
case server-to-client-only { | case server-to-client-only { | |||
description | description | |||
"These data nodes appear only in a message sent | "These data nodes appear only in a message sent | |||
from the server to the client."; | from the server to the client."; | |||
leaf max-value { | leaf max-value { | |||
type uint16; | type uint16; | |||
description | description | |||
"Maximum acceptable max-payloads value."; | "Maximum acceptable 'max-payloads' value."; | |||
} | } | |||
leaf min-value { | leaf min-value { | |||
type uint16; | type uint16; | |||
description | description | |||
"Minimum acceptable max-payloads value."; | "Minimum acceptable 'max-payloads' value."; | |||
} | } | |||
} | } | |||
} | } | |||
leaf current-value { | leaf current-value { | |||
type uint16; | type uint16; | |||
default "10"; | default "10"; | |||
description | description | |||
"Current max-payloads value."; | "Current 'max-payloads' value."; | |||
reference | reference | |||
"RFC 9177: Constrained Application Protocol (CoAP) | "RFC 9177: Constrained Application Protocol (CoAP) | |||
Block-Wise Transfer Options Supporting | Block-Wise Transfer Options Supporting | |||
Robust Transmission, Section 7.2"; | Robust Transmission, Section 7.2"; | |||
} | } | |||
} | } | |||
container non-max-retransmit { | container non-max-retransmit { | |||
description | description | |||
"Indicates the maximum number of times a request | "Indicates the maximum number of times a request | |||
for the retransmission of missing payloads can | for the retransmission of missing payloads can | |||
skipping to change at line 665 ¶ | skipping to change at line 658 ¶ | |||
description | description | |||
"Indicates the communication direction in which the | "Indicates the communication direction in which the | |||
data nodes can be included."; | data nodes can be included."; | |||
case server-to-client-only { | case server-to-client-only { | |||
description | description | |||
"These data nodes appear only in a message sent | "These data nodes appear only in a message sent | |||
from the server to the client."; | from the server to the client."; | |||
leaf max-value { | leaf max-value { | |||
type uint16; | type uint16; | |||
description | description | |||
"Maximum acceptable non-max-retransmit value."; | "Maximum acceptable 'non-max-retransmit' value."; | |||
} | } | |||
leaf min-value { | leaf min-value { | |||
type uint16; | type uint16; | |||
description | description | |||
"Minimum acceptable non-max-retransmit value."; | "Minimum acceptable 'non-max-retransmit' value."; | |||
} | } | |||
} | } | |||
} | } | |||
leaf current-value { | leaf current-value { | |||
type uint16; | type uint16; | |||
default "3"; | default "3"; | |||
description | description | |||
"Current non-max-retransmit value."; | "Current 'non-max-retransmit' value."; | |||
reference | reference | |||
"RFC 9177: Constrained Application Protocol (CoAP) | "RFC 9177: Constrained Application Protocol (CoAP) | |||
Block-Wise Transfer Options Supporting | Block-Wise Transfer Options Supporting | |||
Robust Transmission, Section 7.2"; | Robust Transmission, Section 7.2"; | |||
} | } | |||
} | } | |||
container non-timeout { | container non-timeout { | |||
description | description | |||
"Indicates the maximum period of delay between | "Indicates the maximum period of delay between | |||
sending sets of MAX_PAYLOADS payloads for the same | sending sets of MAX_PAYLOADS payloads for the same | |||
skipping to change at line 704 ¶ | skipping to change at line 697 ¶ | |||
case server-to-client-only { | case server-to-client-only { | |||
description | description | |||
"These data nodes appear only in a message sent | "These data nodes appear only in a message sent | |||
from the server to the client."; | from the server to the client."; | |||
leaf max-value-decimal { | leaf max-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Maximum ack-timeout value."; | "Maximum 'ack-timeout' value."; | |||
} | } | |||
leaf min-value-decimal { | leaf min-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Minimum ack-timeout value."; | "Minimum 'ack-timeout' value."; | |||
} | } | |||
} | } | |||
} | } | |||
leaf current-value-decimal { | leaf current-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
default "2.00"; | default "2.00"; | |||
description | description | |||
"Current ack-timeout value."; | "Current 'ack-timeout' value."; | |||
reference | reference | |||
"RFC 9177: Constrained Application Protocol (CoAP) | "RFC 9177: Constrained Application Protocol (CoAP) | |||
Block-Wise Transfer Options Supporting | Block-Wise Transfer Options Supporting | |||
Robust Transmission, Section 7.2"; | Robust Transmission, Section 7.2"; | |||
} | } | |||
} | } | |||
container non-receive-timeout { | container non-receive-timeout { | |||
description | description | |||
"Indicates the time to wait for a missing payload | "Indicates the time to wait for a missing payload | |||
before requesting retransmission."; | before requesting retransmission."; | |||
skipping to change at line 748 ¶ | skipping to change at line 741 ¶ | |||
case server-to-client-only { | case server-to-client-only { | |||
description | description | |||
"These data nodes appear only in a message sent | "These data nodes appear only in a message sent | |||
from the server to the client."; | from the server to the client."; | |||
leaf max-value-decimal { | leaf max-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Maximum non-receive-timeout value."; | "Maximum 'non-receive-timeout' value."; | |||
} | } | |||
leaf min-value-decimal { | leaf min-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Minimum non-receive-timeout value."; | "Minimum 'non-receive-timeout' value."; | |||
} | } | |||
} | } | |||
} | } | |||
leaf current-value-decimal { | leaf current-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
default "4.00"; | default "4.00"; | |||
description | description | |||
"Current non-receive-timeout value."; | "Current 'non-receive-timeout' value."; | |||
reference | reference | |||
"RFC 9177: Constrained Application Protocol (CoAP) | "RFC 9177: Constrained Application Protocol (CoAP) | |||
Block-Wise Transfer Options Supporting | Block-Wise Transfer Options Supporting | |||
Robust Transmission, Section 7.2"; | Robust Transmission, Section 7.2"; | |||
} | } | |||
} | } | |||
container non-probing-wait { | container non-probing-wait { | |||
description | description | |||
"Is used to limit the potential wait needed when | "Used to limit the potential wait needed when | |||
using probing-rate."; | using 'probing-rate'."; | |||
choice direction { | choice direction { | |||
description | description | |||
"Indicates the communication direction in which the | "Indicates the communication direction in which the | |||
data nodes can be included."; | data nodes can be included."; | |||
case server-to-client-only { | case server-to-client-only { | |||
description | description | |||
"These data nodes appear only in a message sent | "These data nodes appear only in a message sent | |||
from the server to the client."; | from the server to the client."; | |||
leaf max-value-decimal { | leaf max-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Maximum non-probing-wait value."; | "Maximum 'non-probing-wait' value."; | |||
} | } | |||
leaf min-value-decimal { | leaf min-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Minimum non-probing-wait value."; | "Minimum 'non-probing-wait' value."; | |||
} | } | |||
} | } | |||
} | } | |||
leaf current-value-decimal { | leaf current-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Current non-probing-wait value."; | "Current 'non-probing-wait' value."; | |||
reference | reference | |||
"RFC 9177: Constrained Application Protocol (CoAP) | "RFC 9177: Constrained Application Protocol (CoAP) | |||
Block-Wise Transfer Options Supporting | Block-Wise Transfer Options Supporting | |||
Robust Transmission, Section 7.2"; | Robust Transmission, Section 7.2"; | |||
} | } | |||
} | } | |||
container non-partial-wait { | container non-partial-timeout { | |||
description | description | |||
"Is used for expiring partially received bodies."; | "Used for expiring partially received bodies."; | |||
choice direction { | choice direction { | |||
description | description | |||
"Indicates the communication direction in which the | "Indicates the communication direction in which the | |||
data nodes can be included."; | data nodes can be included."; | |||
case server-to-client-only { | case server-to-client-only { | |||
description | description | |||
"These data nodes appear only in a message sent | "These data nodes appear only in a message sent | |||
from the server to the client."; | from the server to the client."; | |||
leaf max-value-decimal { | leaf max-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Maximum non-partial-wait value."; | "Maximum 'non-partial-timeout' value."; | |||
} | } | |||
leaf min-value-decimal { | leaf min-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Minimum non-partial-wait value."; | "Minimum 'non-partial-timeout' value."; | |||
} | } | |||
} | } | |||
} | } | |||
leaf current-value-decimal { | leaf current-value-decimal { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 2; | fraction-digits 2; | |||
} | } | |||
units "seconds"; | units "seconds"; | |||
default "247.00"; | default "247.00"; | |||
description | description | |||
"Current non-partial-wait value."; | "Current 'non-partial-timeout' value."; | |||
reference | reference | |||
"RFC 9177: Constrained Application Protocol (CoAP) | "RFC 9177: Constrained Application Protocol (CoAP) | |||
Block-Wise Transfer Options Supporting | Block-Wise Transfer Options Supporting | |||
Robust Transmission, Section 7.2"; | Robust Transmission, Section 7.2"; | |||
} | } | |||
} | } | |||
} | } | |||
sx:augment-structure "/dots-signal:dots-signal" | sx:augment-structure "/dots-signal:dots-signal" | |||
+ "/dots-signal:message-type" | + "/dots-signal:message-type" | |||
skipping to change at line 881 ¶ | skipping to change at line 874 ¶ | |||
sx:augment-structure "/dots-signal:dots-signal" | sx:augment-structure "/dots-signal:dots-signal" | |||
+ "/dots-signal:message-type" | + "/dots-signal:message-type" | |||
+ "/dots-signal:signal-config" | + "/dots-signal:signal-config" | |||
+ "/dots-signal:idle-config" { | + "/dots-signal:idle-config" { | |||
description | description | |||
"Indicates DOTS configuration parameters to use for | "Indicates DOTS configuration parameters to use for | |||
robust transmission when no mitigation is active."; | robust transmission when no mitigation is active."; | |||
uses robust-transmission-attributes; | uses robust-transmission-attributes; | |||
} | } | |||
} | } | |||
<CODE ENDS>]]></artwork> | ]]></sourcecode> | |||
</figure></t> | ||||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
<section anchor="map" title="DOTS Signal Channel CBOR Mappings Registry"> | <section anchor="map" numbered="true" toc="default"> | |||
<name>Registry for DOTS Signal Channel CBOR Mappings</name> | ||||
<t>This specification registers the following parameters in the IANA | <t>This specification registers the following parameters in the IANA | |||
"DOTS Signal Channel CBOR Key Values" registry <xref | "DOTS Signal Channel CBOR Key Values" registry <xref target="Key-Map" fo | |||
target="Key-Map"></xref>.</t> | rmat="default"/>.</t> | |||
<t><list style="symbols"> | ||||
<t>Note to the RFC Editor: Please replace TBA1-TBA6 with the CBOR | ||||
keys that are assigned from the 32768-49151 range. Please update | ||||
Table 2 accordingly.</t> | ||||
</list></t> | ||||
<t><figure align="center"> | ||||
<artwork><![CDATA[+------------------------+-------+-------+-------- | ||||
----+---------------+ | ||||
| Parameter Name | CBOR | CBOR | Change | Specification | | ||||
| | Key | Major | Controller | Document(s) | | ||||
| | Value | Type | | | | ||||
+========================+=======+=======+============+===============+ | ||||
| ietf-dots-robust-trans:| TBA1 | 5 | IESG | [RFCXXXX] | | ||||
| max-payloads | | | | | | ||||
+------------------------+-------+-------+------------+---------------+ | ||||
| ietf-dots-robust-trans:| TBA2 | 5 | IESG | [RFCXXXX] | | ||||
| non-max-retransmit | | | | | | ||||
+------------------------+-------+-------+------------+---------------+ | ||||
| ietf-dots-robust-trans:| TBA3 | 5 | IESG | [RFCXXXX] | | ||||
| non-timeout | | | | | | ||||
+------------------------+-------+-------+------------+---------------+ | ||||
| ietf-dots-robust-trans:| TBA4 | 5 | IESG | [RFCXXXX] | | ||||
| non-receive-timeout | | | | | | ||||
+------------------------+-------+-------+------------+---------------+ | ||||
| ietf-dots-robust-trans:| TBA5 | 5 | IESG | [RFCXXXX] | | ||||
| non-probing-wait | | | | | | ||||
+------------------------+-------+-------+------------+---------------+ | ||||
| ietf-dots-robust-trans:| TBA6 | 5 | IESG | [RFCXXXX] | | ||||
| non-partial-wait | | | | | | ||||
+------------------------+-------+-------+------------+---------------+ | ||||
]]></artwork> | <table> | |||
</figure></t> | <name>DOTS Robust Block Transmission CBOR Mappings</name> | |||
<thead> | ||||
<tr> | ||||
<th>Parameter Name</th> | ||||
<th>CBOR Key Value</th> | ||||
<th>CBOR Major Type</th> | ||||
<th>Change Controller</th> | ||||
<th>Specification Document(s)</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:max-payloads</td> | ||||
<td>32776</td> | ||||
<td>5</td> | ||||
<td>IESG</td> | ||||
<td>RFC 9362</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-max-retransmit</td> | ||||
<td>32777</td> | ||||
<td>5</td> | ||||
<td>IESG</td> | ||||
<td>RFC 9362</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-timeout</td> | ||||
<td>32778</td> | ||||
<td>5</td> | ||||
<td>IESG</td> | ||||
<td>RFC 9362</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-receive-timeout</td> | ||||
<td>32779</td> | ||||
<td>5</td> | ||||
<td>IESG</td> | ||||
<td>RFC 9362</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-probing-wait</td> | ||||
<td>32780</td> | ||||
<td>5</td> | ||||
<td>IESG</td> | ||||
<td>RFC 9362</td> | ||||
</tr> | ||||
<tr> | ||||
<td>ietf-dots-robust-trans:non-partial-timeout</td> | ||||
<td>32781</td> | ||||
<td>5</td> | ||||
<td>IESG</td> | ||||
<td>RFC 9362</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="yang-iana" numbered="true" toc="default"> | ||||
<section anchor="yang-iana" | <name>DOTS Robust Block Transmission YANG Module</name> | |||
title="DOTS Robust Block Transmission YANG Module"> | <t>IANA has registered the following URI in the | |||
<t>This document requests IANA to register the following URI in the | "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688" f | |||
"ns" subregistry within the "IETF XML Registry" <xref | ormat="default"/>:</t> | |||
target="RFC3688"></xref>:</t> | <dl newline="false" spacing="compact"> | |||
<dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans</dd> | ||||
<t><figure> | <dt>Registrant Contact:</dt><dd>The IESG.</dd> | |||
<artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:ietf-dots-robus | <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | |||
t-trans | </dl> | |||
Registrant Contact: The IESG. | <t>IANA has registered the following YANG module | |||
XML: N/A; the requested URI is an XML namespace. | in the "YANG Module Names" subregistry <xref target="RFC6020" format="de | |||
]]></artwork> | fault"/> | |||
</figure></t> | ||||
<t>This document requests IANA to register the following YANG module | ||||
in the "YANG Module Names" subregistry <xref target="RFC6020"></xref> | ||||
within the "YANG Parameters" registry.</t> | within the "YANG Parameters" registry.</t> | |||
<dl newline="false" spacing="compact"> | ||||
<t><figure> | <dt>Name:</dt><dd>ietf-dots-robust-trans</dd> | |||
<artwork><![CDATA[ Name: ietf-dots-robust-trans | <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans</dd> | |||
Namespace: urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans | <dt>Maintained by IANA?</dt><dd>N</dd> | |||
Maintained by IANA? N | <dt>Prefix:</dt><dd>dots-robust</dd> | |||
Prefix: dots-robust | <dt>Reference:</dt><dd>RFC 9362</dd> | |||
Reference: RFC XXXX | </dl> | |||
]]></artwork> | ||||
</figure></t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="security" numbered="true" toc="default"> | ||||
<section anchor="security" title="Security Considerations"> | <name>Security Considerations</name> | |||
<t>The security considerations for the DOTS signal channel protocol are | <t>The security considerations for the DOTS signal channel protocol are | |||
discussed in Section 11 of <xref target="RFC9132"></xref>.</t> | discussed in <xref target="RFC9132" sectionFormat="of" section="11"/>.</t> | |||
<t>CoAP-specific security considerations are discussed in <xref target="RF | ||||
<t>CoAP-specific security considerations are discussed in Section 11 of | C9177" sectionFormat="of" section="11"/>.</t> | |||
<xref target="RFC9177"></xref>.</t> | <t>Consistent with <xref target="RFC9132" sectionFormat="of" section="5"/> | |||
, the | ||||
<t>Consistent with Section 5 of <xref target="RFC9132"></xref>, the | ||||
"ietf-dots-robust-trans" module is not intended to be used via | "ietf-dots-robust-trans" module is not intended to be used via | |||
NETCONF/RESTCONF. It serves as an abstract representation in DOTS signal | NETCONF/RESTCONF. It serves as an abstract representation in DOTS signal | |||
channel messages. The "ietf-dots-robust-trans" module does not introduce | channel messages. The "ietf-dots-robust-trans" module does not introduce | |||
any new vulnerabilities beyond those specified above.</t> | any new vulnerabilities beyond those specified above.</t> | |||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
119.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
252.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
959.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
323.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
791.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
177.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
132.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
020.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
688.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
244.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
612.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
340.xml"/> | ||||
<section anchor="ack" title="Acknowledgements"> | <reference anchor="Key-Map" target="https://www.iana.org/assignments/dot | |||
<t>Thanks to Tiru Reddy, Meiling Chen, and Kaname Nishizuka for the | s/"> | |||
<front> | ||||
<title>DOTS Signal Channel CBOR Key Values</title> | ||||
<author> | ||||
<organization>IANA</organization> | ||||
</author> | ||||
<date/> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="ack" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>Thanks to <contact fullname="Tiru Reddy"/>, <contact fullname="Meiling | ||||
Chen"/>, and <contact fullname="Kaname Nishizuka"/> for the | ||||
review.</t> | review.</t> | |||
<t>Thanks to <contact fullname="Michal Vaško"/> for the yangdoctors review | ||||
<t>Thanks to Michal Vaško for the yangdoctors review.</t> | .</t> | |||
<t>Thanks to <contact fullname="Valery Smyslov"/> for shepherding the docu | ||||
<t>Thanks to Valery Smyslov for shepherding the document, Paul Wouters | ment, <contact fullname="Paul Wouters"/> | |||
for the AD review, Paul Kyzivat for the artart directorate review, Tim | for the AD review, <contact fullname="Paul Kyzivat"/> for the artart direc | |||
Evens for the Gen-ART review, and Jean-Michel Combes for the int-dir | torate review, <contact fullname="Tim Evens"/> for the Gen-ART review, and <cont | |||
act fullname="Jean-Michel Combes"/> for the int-dir | ||||
review.</t> | review.</t> | |||
<t>Thanks to <contact fullname="John Scudder"/>, <contact fullname="Lars E | ||||
<t>Thanks to John Scudder, Lars Eggert, Éric Vyncke, Roman | ggert"/>, <contact fullname="Éric Vyncke"/>, <contact fullname="Roman | |||
Danyliw, Rob Wilton, and Martin Duke for the comments during the IESG | Danyliw"/>, <contact fullname="Rob Wilton"/>, and <contact fullname="Marti | |||
n Duke"/> for their comments during the IESG | ||||
review.</t> | review.</t> | |||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<?rfc include='reference.RFC.2119'?> | ||||
<?rfc include='reference.RFC.7252'?> | ||||
<?rfc include='reference.RFC.8174'?> | ||||
<?rfc include='reference.RFC.7959'?> | ||||
<?rfc include='reference.RFC.8323'?> | ||||
<?rfc include='reference.RFC.8791'?> | ||||
<?rfc include='reference.RFC.9177'?> | ||||
<?rfc include='reference.RFC.9132'?> | ||||
<?rfc include='reference.RFC.6020'?> | ||||
<?rfc include='reference.RFC.3688'?> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include="reference.RFC.9244"?> | ||||
<?rfc include='reference.RFC.8612'?> | ||||
<?rfc include='reference.RFC.8340'?> | ||||
<reference anchor="Key-Map" | ||||
target="https://www.iana.org/assignments/dots/dots.xhtml#dots-s | ||||
ignal-channel-cbor-key-values"> | ||||
<front> | ||||
<title>DOTS Signal Channel CBOR Key Values</title> | ||||
<author fullname="IANA"> | ||||
<organization></organization> | ||||
</author> | ||||
<date /> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 122 change blocks. | ||||
460 lines changed or deleted | 521 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |