rfc9362v2.txt   rfc9362.txt 
Internet Engineering Task Force (IETF) M. Boucadair Internet Engineering Task Force (IETF) M. Boucadair
Request for Comments: 9362 Orange Request for Comments: 9362 Orange
Category: Standards Track J. Shallow Category: Standards Track J. Shallow
ISSN: 2070-1721 January 2023 ISSN: 2070-1721 February 2023
Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal
Channel Configuration Attributes for Robust Block Transmission Channel Configuration Attributes for Robust Block Transmission
Abstract Abstract
This document specifies new DDoS Open Threat Signaling (DOTS) signal 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 Constrained peers to enable the use of Q-Block1 and Q-Block2 Constrained
Application Protocol (CoAP) options. These options enable robust and Application Protocol (CoAP) options. These options enable robust and
skipping to change at line 300 skipping to change at line 300
| | +--:(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:signal-config
/dots-signal:idle-config: /dots-signal:idle-config:
+-- max-payloads +-- max-payloads
skipping to change at line 340 skipping to change at line 340
| | +--:(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
Figure 1: DOTS Fast Block Transmission Tree Structure Figure 1: DOTS Fast Block Transmission Tree Structure
These attributes are mapped to Concise Binary Object Representation These attributes are mapped to Concise Binary Object Representation
(CBOR) types as specified in Section 4 and in Section 6 of [RFC9132]. (CBOR) types as specified in Section 4 and in Section 6 of [RFC9132].
skipping to change at line 376 skipping to change at line 376
'non-partial-timeout' values should be recalculated according to 'non-partial-timeout' values should be recalculated according to
the definition algorithms provided in Section 7.2 of [RFC9177] the definition algorithms provided in Section 7.2 of [RFC9177]
unless explicit values are provided as part of the negotiated unless explicit values are provided as part of the negotiated
configuration. configuration.
An example of a PUT message to configure Q-Block parameters is An example of a PUT message to configure Q-Block parameters is
depicted in Figure 2. In this example, a non-default value is depicted in Figure 2. In this example, a non-default value is
configured for the 'max-payloads' attribute, while default values are configured for the 'max-payloads' attribute, while default values are
used for 'non-max-retransmit', 'non-timeout', and 'non-receive- used for 'non-max-retransmit', 'non-timeout', and 'non-receive-
timeout' in both idle and mitigation times. Given that 'non-probing- timeout' in both idle and mitigation times. Given that 'non-probing-
wait' and 'non-partial-wait' are not explicitly configured in this wait' and 'non-partial-timeout' are not explicitly configured in this
example, these attributes will be computed following the algorithms example, these attributes will be computed following the algorithms
provided in Section 7.2 of [RFC9177]. The meanings of the other provided in Section 7.2 of [RFC9177]. The meanings of the other
attributes are detailed in Section 4.5 of [RFC9132]. attributes are detailed in Section 4.5 of [RFC9132].
Header: PUT (Code=0.03) 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"
skipping to change at line 494 skipping to change at line 494
| ietf-dots-robust- | container | 32779 | 5 map | Object | | ietf-dots-robust- | container | 32779 | 5 map | Object |
| trans:non- | | | | | | trans:non- | | | | |
| receive-timeout | | | | | | receive-timeout | | | | |
+--------------------+-----------+-------+-----------------+--------+ +--------------------+-----------+-------+-----------------+--------+
| ietf-dots-robust- | container | 32780 | 5 map | Object | | ietf-dots-robust- | container | 32780 | 5 map | Object |
| trans:non- | | | | | | trans:non- | | | | |
| probing-wait | | | | | | probing-wait | | | | |
+--------------------+-----------+-------+-----------------+--------+ +--------------------+-----------+-------+-----------------+--------+
| ietf-dots-robust- | container | 32781 | 5 map | Object | | ietf-dots-robust- | container | 32781 | 5 map | Object |
| trans:non- | | | | | | trans:non- | | | | |
| partial-wait | | | | | | partial-timeout | | | | |
+--------------------+-----------+-------+-----------------+--------+ +--------------------+-----------+-------+-----------------+--------+
Table 2: YANG/JSON Mapping Parameters to CBOR Table 2: YANG/JSON Mapping Parameters to CBOR
5. DOTS Robust Block Transmission YANG Module 5. DOTS Robust Block Transmission YANG Module
This module uses the data structure extension defined in [RFC8791]. This module uses the data structure extension defined in [RFC8791].
<CODE BEGINS> file "ietf-dots-robust-trans@2023-01-26.yang" <CODE BEGINS> file "ietf-dots-robust-trans@2023-01-26.yang"
module ietf-dots-robust-trans { module ietf-dots-robust-trans {
skipping to change at line 767 skipping to change at line 767
} }
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
"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 866 skipping to change at line 866
| ietf-dots-robust- | 32779 | 5 | IESG | RFC 9362 | | ietf-dots-robust- | 32779 | 5 | IESG | RFC 9362 |
| trans:non- | | | | | | trans:non- | | | | |
| receive-timeout | | | | | | receive-timeout | | | | |
+-------------------+----------+-------+------------+---------------+ +-------------------+----------+-------+------------+---------------+
| ietf-dots-robust- | 32780 | 5 | IESG | RFC 9362 | | ietf-dots-robust- | 32780 | 5 | IESG | RFC 9362 |
| trans:non- | | | | | | trans:non- | | | | |
| probing-wait | | | | | | probing-wait | | | | |
+-------------------+----------+-------+------------+---------------+ +-------------------+----------+-------+------------+---------------+
| ietf-dots-robust- | 32781 | 5 | IESG | RFC 9362 | | ietf-dots-robust- | 32781 | 5 | IESG | RFC 9362 |
| trans:non- | | | | | | trans:non- | | | | |
| partial-wait | | | | | | partial-timeout | | | | |
+-------------------+----------+-------+------------+---------------+ +-------------------+----------+-------+------------+---------------+
Table 3: DOTS Robust Block Transmission CBOR Mappings Table 3: DOTS Robust Block Transmission CBOR Mappings
6.2. DOTS Robust Block Transmission YANG Module 6.2. DOTS Robust Block Transmission YANG Module
IANA has registered the following URI in the "ns" subregistry within IANA has registered the following URI in the "ns" subregistry within
the "IETF XML Registry" [RFC3688]: the "IETF XML Registry" [RFC3688]:
URI: urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans URI: urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans
 End of changes. 10 change blocks. 
10 lines changed or deleted 10 lines changed or added

This html diff was produced by rfcdiff 1.48.