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. |