Parameter Name | Default Value |
---|---|
MAX_PAYLOADS | 10 |
NON_MAX_RETRANSMIT | 4 |
NON_TIMEOUT | 2 s |
NON_TIMEOUT_RANDOM | between 2-3 s |
NON_RECEIVE_TIMEOUT | 4 s |
NON_PROBING_WAIT | between 247-248 s |
NON_PARTIAL_TIMEOUT | 247 s |
module: ietf-dots-robust-trans augment-structure /dots-signal:dots-signal/dots-signal:message-type /dots-signal:signal-config /dots-signal:mitigating-config: +-- max-payloads | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value? uint16 | | +-- min-value? uint16 | +-- current-value? uint16 +-- non-max-retransmit | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value? uint16 | | +-- min-value? uint16 | +-- current-value? uint16 +-- non-timeout | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | +-- current-value-decimal? decimal64 +-- non-receive-timeout | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | +-- current-value-decimal? decimal64 +-- non-probing-wait | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | +-- current-value-decimal? decimal64 +-- non-partial-timeout: +-- (direction)? | +--:(server-to-client-only) | +-- max-value-decimal? decimal64 | +-- min-value-decimal? decimal64 +-- current-value-decimal? decimal64 augment-structure /dots-signal:dots-signal/dots-signal:message-type /dots-signal:signal-config /dots-signal:idle-config: +-- max-payloads | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value? uint16 | | +-- min-value? uint16 | +-- current-value? uint16 +-- non-max-retransmit | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value? uint16 | | +-- min-value? uint16 | +-- current-value? uint16 +-- non-timeout | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | +-- current-value-decimal? decimal64 +-- non-receive-timeout | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | +-- current-value-decimal? decimal64 +-- non-probing-wait | +-- (direction)? | | +--:(server-to-client-only) | | +-- max-value-decimal? decimal64 | | +-- min-value-decimal? decimal64 | +-- current-value-decimal? decimal64 +-- non-partial-timeout: +-- (direction)? | +--:(server-to-client-only) | +-- max-value-decimal? decimal64 | +-- min-value-decimal? decimal64 +-- current-value-decimal? decimal64
Header: PUT (Code=0.03) Uri-Path: ".well-known" Uri-Path: "dots" Uri-Path: "config" Uri-Path: "sid=123" Content-Format: "application/dots+cbor" { "ietf-dots-signal-channel:signal-config": { "mitigating-config": { "heartbeat-interval": { "current-value": 30 }, "missing-hb-allowed": { "current-value": 15 }, "probing-rate": { "current-value": 15 }, "max-retransmit": { "current-value": 3 }, "ack-timeout": { "current-value-decimal": "2.00" }, "ack-random-factor": { "current-value-decimal": "1.50" }, "ietf-dots-robust-trans:max-payloads": { "current-value": 15 }, "ietf-dots-robust-trans:non-max-retransmit": { "current-value": 3 }, "ietf-dots-robust-trans:non-timeout": { "current-value-decimal": "2.00" }, "ietf-dots-robust-trans:non-receive-timeout": { "current-value-decimal": "4.00" } }, "idle-config": { "heartbeat-interval": { "current-value": 0 }, "max-retransmit": { "current-value": 3 }, "ack-timeout": { "current-value-decimal": "2.00" }, "ack-random-factor": { "current-value-decimal": "1.50" }, "ietf-dots-robust-trans:max-payloads": { "current-value": 15 }, "ietf-dots-robust-trans:non-max-retransmit": { "current-value": 3 }, "ietf-dots-robust-trans:non-timeout": { "current-value-decimal": "2.00" }, "ietf-dots-robust-trans:non-receive-timeout": { "current-value-decimal": "4.00" } } } }
Parameter Name | YANG Type | CBOR Key | CBOR Major Type & Information | JSON Type |
---|---|---|---|---|
ietf-dots-robust-trans:max-payloads | container | 32776 | 5 map | Object |
ietf-dots-robust-trans:non-max-retransmit | container | 32777 | 5 map | Object |
ietf-dots-robust-trans:non-timeout | container | 32778 | 5 map | Object |
ietf-dots-robust-trans:non-receive-timeout | container | 32779 | 5 map | Object |
ietf-dots-robust-trans:non-probing-wait | container | 32780 | 5 map | Object |
ietf-dots-robust-trans:non-partial-timeout | container | 32781 | 5 map | Object |
module ietf-dots-robust-trans { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-dots-robust-trans"; prefix dots-robust; import ietf-dots-signal-channel { prefix dots-signal; reference "RFC 9132: Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal Channel Specification"; } import ietf-yang-structure-ext { prefix sx; reference "RFC 8791: YANG Data Structure Extensions"; } organization "IETF DDoS Open Threat Signaling (DOTS) Working Group"; contact "WG Web: <https://datatracker.ietf.org/wg/dots/> WG List: <mailto:dots@ietf.org> Author: Mohamed Boucadair <mailto:mohamed.boucadair@orange.com>; Author: Jon Shallow <mailto:ietf-supjps@jpshallow.com>"; description "This module contains YANG definitions for the configuration of parameters that can be negotiated between a DOTS client and a DOTS server for robust block transmission. Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 9362; see the RFC itself for full legal notices."; revision 2023-02-28 { description "Initial revision."; reference "RFC 9362: Distributed Denial-of-Service Open Threat Signaling (DOTS) Configuration Attributes for Robust Block Transmission"; } grouping robust-transmission-attributes { description "A set of DOTS signal channel session configuration parameters that are negotiated between DOTS agents when making use of Q-Block1 and Q-Block2 options."; container max-payloads { description "Indicates the maximum number of payloads that can be transmitted at any one time."; choice direction { description "Indicates the communication direction in which the data nodes can be included."; case server-to-client-only { description "These data nodes appear only in a message sent from the server to the client."; leaf max-value { type uint16; description "Maximum acceptable 'max-payloads' value."; } leaf min-value { type uint16; description "Minimum acceptable 'max-payloads' value."; } } } leaf current-value { type uint16; default "10"; description "Current 'max-payloads' value."; reference "RFC 9177: Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission, Section 7.2"; } } container non-max-retransmit { description "Indicates the maximum number of times a request for the retransmission of missing payloads can occur without a response from the remote peer."; choice direction { description "Indicates the communication direction in which the data nodes can be included."; case server-to-client-only { description "These data nodes appear only in a message sent from the server to the client."; leaf max-value { type uint16; description "Maximum acceptable 'non-max-retransmit' value."; } leaf min-value { type uint16; description "Minimum acceptable 'non-max-retransmit' value."; } } } leaf current-value { type uint16; default "3"; description "Current 'non-max-retransmit' value."; reference "RFC 9177: Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission, Section 7.2"; } } container non-timeout { description "Indicates the maximum period of delay between sending sets of MAX_PAYLOADS payloads for the same body."; choice direction { description "Indicates the communication direction in which the data nodes can be included."; case server-to-client-only { description "These data nodes appear only in a message sent from the server to the client."; leaf max-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Maximum 'ack-timeout' value."; } leaf min-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Minimum 'ack-timeout' value."; } } } leaf current-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; default "2.00"; description "Current 'ack-timeout' value."; reference "RFC 9177: Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission, Section 7.2"; } } container non-receive-timeout { description "Indicates the time to wait for a missing payload before requesting retransmission."; choice direction { description "Indicates the communication direction in which the data nodes can be included."; case server-to-client-only { description "These data nodes appear only in a message sent from the server to the client."; leaf max-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Maximum 'non-receive-timeout' value."; } leaf min-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Minimum 'non-receive-timeout' value."; } } } leaf current-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; default "4.00"; description "Current 'non-receive-timeout' value."; reference "RFC 9177: Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission, Section 7.2"; } } container non-probing-wait { description "Used to limit the potential wait needed when using 'probing-rate'."; choice direction { description "Indicates the communication direction in which the data nodes can be included."; case server-to-client-only { description "These data nodes appear only in a message sent from the server to the client."; leaf max-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Maximum 'non-probing-wait' value."; } leaf min-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Minimum 'non-probing-wait' value."; } } } leaf current-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Current 'non-probing-wait' value."; reference "RFC 9177: Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission, Section 7.2"; } } container non-partial-timeout { description "Used for expiring partially received bodies."; choice direction { description "Indicates the communication direction in which the data nodes can be included."; case server-to-client-only { description "These data nodes appear only in a message sent from the server to the client."; leaf max-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Maximum 'non-partial-timeout' value."; } leaf min-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; description "Minimum 'non-partial-timeout' value."; } } } leaf current-value-decimal { type decimal64 { fraction-digits 2; } units "seconds"; default "247.00"; description "Current 'non-partial-timeout' value."; reference "RFC 9177: Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission, Section 7.2"; } } } sx:augment-structure "/dots-signal:dots-signal" + "/dots-signal:message-type" + "/dots-signal:signal-config" + "/dots-signal:mitigating-config" { description "Indicates DOTS configuration attributes to use for robust transmission when a mitigation is active."; uses robust-transmission-attributes; } sx:augment-structure "/dots-signal:dots-signal" + "/dots-signal:message-type" + "/dots-signal:signal-config" + "/dots-signal:idle-config" { description "Indicates DOTS configuration parameters to use for robust transmission when no mitigation is active."; uses robust-transmission-attributes; } }
Parameter Name | CBOR Key Value | CBOR Major Type | Change Controller | Specification Document(s) |
---|---|---|---|---|
ietf-dots-robust-trans:max-payloads | 32776 | 5 | IESG | RFC 9362 |
ietf-dots-robust-trans:non-max-retransmit | 32777 | 5 | IESG | RFC 9362 |
ietf-dots-robust-trans:non-timeout | 32778 | 5 | IESG | RFC 9362 |
ietf-dots-robust-trans:non-receive-timeout | 32779 | 5 | IESG | RFC 9362 |
ietf-dots-robust-trans:non-probing-wait | 32780 | 5 | IESG | RFC 9362 |
ietf-dots-robust-trans:non-partial-timeout | 32781 | 5 | IESG | RFC 9362 |