ietf-dots-robust-trans

This module contains YANG definitions for the configuration of parameters that can be negotiated between a DOTS client and a DOT...

  • Version: 2023-02-28

    ietf-dots-robust-trans@2023-02-28


    
      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";
    
        }
    
        sx:augment-structure "/dots-signal:dots-signal/dots-signal:message-type/dots-signal:signal-config/dots-signal:mitigating-config";
        sx:augment-structure "/dots-signal:dots-signal/dots-signal:message-type/dots-signal:signal-config/dots-signal:idle-config";
    
        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.";
                }
              }  // case server-to-client-only
            }  // choice direction
    
            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 max-payloads
    
          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.";
                }
              }  // case server-to-client-only
            }  // choice direction
    
            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-max-retransmit
    
          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.";
                }
              }  // case server-to-client-only
            }  // choice direction
    
            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-timeout
    
          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.";
                }
              }  // case server-to-client-only
            }  // choice direction
    
            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-receive-timeout
    
          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.";
                }
              }  // case server-to-client-only
            }  // choice direction
    
            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-probing-wait
    
          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.";
                }
              }  // case server-to-client-only
            }  // choice direction
    
            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";
    
            }
          }  // container non-partial-timeout
        }  // grouping robust-transmission-attributes
    
        augment /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;
        }
    
        augment /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;
        }
      }  // module ietf-dots-robust-trans
    

© 2023 YumaWorks, Inc. All rights reserved.