<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc linkmailto="no" ?>
<?rfc editing="no" ?>
<?rfc comments="yes" ?>
<?rfc inline="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc-ext allow-markup-in-artwork="yes" ?>
<?rfc-ext include-index="no" ?>
<!--<?rfc strict="no"?> -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-andersson-netconf-quic-client-server-01" category="std" consensus="true" updates="6243" ipr="trust200902" obsoletes="" submissionType="IETF" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="Groupings for QUIC clients and servers">
      YANG Groupings for QUIC clients and QUIC servers
    </title>
    <seriesInfo name="Internet-Draft" value="draft-andersson-netconf-quic-client-server-01"/>
    <author fullname="Per Andersson" initials="P." surname="Andersson">
      <organization>Cisco Systems</organization>
      <address>
        <email>per.ietf@ionio.se</email>
      </address>
    </author>
    <date/>
    <area>OPS Area</area>
    <workgroup>NETCONF Working Group</workgroup>
    <abstract>
      <t>This document defines two YANG 1.1 modules to support the
        configuration of QUIC clients and QUIC servers. The modules include
        basic parameters for configuring QUIC based clients and servers.</t>
    </abstract>
    <note>
      <name>Editorial note (To be removed by the RFC Editor)</name>
      <t>This draft contains placeholder values that need to be replaced
        with finalized values at the time of publication. This note summarizes
        all of the substitutions that are needed. No other RFC Editor
        instructions are specified elsewhere in this document.</t>
      <t>Artwork in this document contains shorthand references to drafts in
        progress.  Please apply the following replacements:
      </t>
      <ul spacing="normal">
        <li>
          <t><tt>AAAA</tt> --&gt; the assigned RFC value for this draft</t>
        </li>
        <li>
          <t><tt>CCCC</tt> --&gt; the assigned RFC value for draft-ietf-netconf-udp-client-server</t>
        </li>
        <li>
          <t><tt>HHHH</tt> --&gt; the assigned RFC value for draft-ietf-netconf-netconf-client-server</t>
        </li>
      </ul>
    </note>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>This documents defines two YANG 1.1 <xref target="RFC7950" format="default"/> modules
        to support the configuration of QUIC clients and QUIC servers (QUIC is
        defined in <xref target="RFC9000" format="default"/>), either as standalone or in
        conjunction with configuration of other protocol layers.</t>
      <section numbered="true" toc="default">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
          NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
          "MAY", and "OPTIONAL" in this document are to be interpreted as
          described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
          when, and only when, they appear in all capitals, as shown here.</t>
        <t>The following terms are defined in <xref target="RFC7950" format="default"/>
          and are not redefined here:
            client,
            data model,
            data tree,
            feature,
            extension,
            module,
            leaf,
            leaf-list,
            and server.
        </t>
        <!--
        <t>The following terms are defined in this document as follows:</t>
        -->
      </section>
    </section>
    <section anchor="quic-client-model" numbered="true" toc="default">
      <name>The "ietf-quic-client" Module</name>
      <t>This section defines a YANG 1.1 module called "ietf-quic-client".</t>
      <section anchor="client-overview" numbered="true" toc="default">
        <name>Data model overview</name>
        <t>This section presents an overview of of the "ietf-quic-client"
          module in terms of features and groupings.</t>
        <section numbered="true" toc="default">
          <name>Features</name>
          <t>The module itself does not define any features. However, in
            order to require TLS 1.3 the following "if-feature" is defined
            "tlscmn:tls13 not tlscmn:tls12". For QUIC TLS requirements see
            <xref target="RFC9001" format="default"/>.</t>
          <t>For further details about available features see the
            "ietf-tls-client" and "ietf-udp-client" modules. defined in
            <xref target="RFC9645" format="default"/> and
            <xref target="I-D.ietf-netconf-udp-client-server" format="default"/>
            respectively.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Groupings</name>
          <t>The "ietf-quic-client" module defines the following "grouping"
            statement:</t>
          <ul>
            <li>quic-client</li>
          </ul>
          <t>This grouping is presented in the following subsection.</t>
          <section toc="exclude" numbered="true">
            <name>The "quic-client" Grouping</name>
            <t>The following tree diagram <xref target="RFC8340" format="default"/> illustrates
                the "quic-client" grouping:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
  grouping quic-client:
    +---u tlsc:tls-client-grouping
    |       {tlscmn:tls13 and not tlscmn:tls12}?
    +---u udpc:udp-client
]]></artwork>
            <t>Comments:</t>
            <ul>
              <li>This grouping uses the "tls-client-grouping" grouping
                discussed in
                <xref target="RFC9645" format="default"/>. Note
                that QUIC requires TLS 1.3 (or later), thus the
                "if-feature" invariant "tlscmn:tls13 and not tlscmn:tls12" is
                defined for this grouping.</li>
              <li>This grouping uses the "udp-client-grouping" grouping
                discussed in
                <xref target="I-D.ietf-netconf-udp-client-server" format="default"/>.</li>
            </ul>
          </section>
        </section>
        <section toc="exclude" numbered="true">
          <name>The "quic-client" Augments</name>
          <t>The "ietf-quic-client" module augments the
            "/ncs:netconf-client/ncs:initiate" container
            <xref target="I-D.ietf-netconf-netconf-client-server" format="default"/> with the
            "if-feature" "quic-initiate".</t>
          <t>This augment enables configuration of QUIC-level parameters
            for NETCONF client connections.</t>
          <!-- FIXME show a brief of the expanded ietf-netconf-server tree -->
          <t>The following tree diagram <xref target="RFC8340" format="default"/> illustrates
            the "quic-client" augmentation of "netconf-client":</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  augment /ncc:netconf-client/ncc:initiate:
  augment /ncc:netconf-client/ncc:initiate/ncc:netconf-server
            /ncc:endpoints/ncc:endpoint/ncc:transport:
    +--:(quic) {quic-initiate}?
       +--rw quic
          +---u quicc:quic-client
]]></artwork>
        </section>
      </section>
      <section anchor="client-yang-module" numbered="true" toc="default">
        <name>YANG Module</name>
        <t>This YANG module has normative references to
          <xref target="RFC9645" format="default"/> and
          <xref target="I-D.ietf-netconf-udp-client-server" format="default"/>.</t>
        <t keepWithNext="true">&lt;CODE BEGINS&gt; file "ietf-quic-client@2024-10-19.yang"</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
module ietf-quic-client {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-quic-client";
  prefix quicc;

  import ietf-netconf-client {
    prefix ncc;
    reference
      "RFC HHHH: NETCONF Client and Server Models";
  }

  import ietf-tls-client {
    prefix tlsc;
    reference
      "RFC 9645: YANG Groupings for TLS Clients and TLS Servers";
  }

  import ietf-tls-common {
    prefix tlscmn;
    reference
      "RFC 9645: YANG Groupings for TLS Clients and TLS Servers";
  }

  import ietf-udp-client {
    prefix udpc;
    reference
      "RFC CCCC: YANG Groupings for UDP Clients and UDP Servers";
  }

  organization
    "IETF NETCONF (Network Configuration) Working Group";

  contact
    "WG List: NETCONF WG list <mailto:netconf@ietf.org>
     WG Web:  https://datatracker.ietf.org/wg/netconf
     Author:  Per Andersson <mailto:per.ietf@ionio.se>";

  description
    "This module defines reusable groupings for QUIC clients that
     can be used as a basis for specific QUIC client instances.

     Copyright (c) 2024 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 AAAA
     (https://www.rfc-editor.org/info/rfcAAAA); see the RFC
     itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
     'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
     'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
     are to be interpreted as described in BCP 14 (RFC 2119)
     (RFC 8174) when, and only when, they appear in all
     capitals, as shown here.";

  revision 2024-10-19 {
    description
      "Initial version";
    reference
      "RFC AAAA: YANG Groupings for QUIC Clients and QUIC Servers";
  }

  // Features

  feature quic-initiate {
    description
      "The 'quic-initiate' feature indicates that the NETCONF client
       supports initiating QUIC connections to NETCONF servers.";
    reference
      "RFC AAAA: YANG Groupings for QUIC Clients and QUIC Servers";
  }

  /*
  FIXME
  feature quic-listen {
    description
      "The 'quic-listen' feature indicates that the NETCONF client
       supports opening a port to listen for incoming NETCONF
       server call-home QUIC connections.";
    reference
      "RFC 8071: NETCONF Call Home and RESTCONF Call Home";
    reference
      "RFC AAAA: YANG Groupings for QUIC Clients and QUIC Servers";
  }
  */

  // Groupings

  grouping quic-client {
    description
      "Grouping to configure a QUIC client.";
    reference
      "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport";

    uses tlsc:tls-client-grouping {
      if-feature "tlscmn:tls13 and not tlscmn:tls12";
      description
        "QUIC requires that TLS 1.3 (or later) is used.";
      reference
        "RFC 9001: Using TLS to Secure QUIC";
    }
    uses udpc:udp-client;
  }

  // Augments

  /* FIXME seems pyang don't support this augment */
  augment "/ncc:netconf-client/ncc:initiate" {
    if-feature "quic-initiate";
    description
      "Add 'quic-initate' feature to the NETCONF client connection
       configuration.";
  }

  augment "/ncc:netconf-client/ncc:initiate/ncc:netconf-server" +
          "/ncc:endpoints/ncc:endpoint/ncc:transport" {
    description
      "Add QUIC transport to the NETCONF client connection
       configuration";
    case quic {
      if-feature "quic-initiate";
      container quic {
        description
          "QUIC-level client parameters to initiate a NETCONF over
           QUIC connection.";
        uses quicc:quic-client;
      }
    }
  }
}
]]></artwork>
        <t keepWithPrevious="true">&lt;CODE ENDS&gt;</t>
      </section>
    </section>
    <section anchor="quic-server-model" numbered="true" toc="default">
      <name>The "ietf-quic-server" Module</name>
      <t>This section defines a YANG 1.1 module called "ietf-quic-server".</t>
      <section anchor="server-overview" numbered="true" toc="default">
        <name>Data model overview</name>
        <t>This section presents an overview of of the "ietf-quic-server"
          module in terms of features and groupings.</t>
        <section numbered="true" toc="default">
          <name>Features</name>
          <t>The module itself does not define any features. However, in
            order to require TLS 1.3 the following "if-feature" is defined
            "tlscmn:tls13 not tlscmn:tls12". For QUIC TLS requirements see
            <xref target="RFC9001" format="default"/>.</t>
          <t>For further details about available features see the
            "ietf-tls-server" and "ietf-udp-server" modules, defined in
            <xref target="RFC9645" format="default"/> and
            <xref target="I-D.ietf-netconf-udp-client-server" format="default"/>
            respectively.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Groupings</name>
          <t>The "ietf-quic-server" module defines the following "grouping"
            statement:</t>
          <ul>
            <li>quic-server</li>
          </ul>
          <t>This grouping is presented in the following subsection.</t>
          <section toc="exclude" numbered="true">
            <name>The "quic-server" Grouping</name>
            <t>The following tree diagram <xref target="RFC8340" format="default"/> illustrates
                the "quic-server" grouping:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
  grouping quic-server:
    +---u tlss:tls-server-grouping
    |       {tlscmn:tls13 and not tlscmn:tls12}?
    +---u udps:udp-server
]]></artwork>
            <t>Comments:</t>
            <ul>
              <li>This grouping uses the "tls-server-grouping" grouping
                discussed in
                <xref target="RFC9645" format="default"/>. Note
                that QUIC requires TLS 1.3 (or later), thus the
                "if-feature" invariant "tlscmn:tls13 and not tlscmn:tls12" is
                defined for this grouping.</li>
              <li>This grouping uses the "udp-server-grouping" grouping
                discussed in
                <xref target="I-D.ietf-netconf-udp-client-server" format="default"/>.</li>
            </ul>
          </section>
        </section>
        <section toc="exclude" numbered="true">
          <name>The "quic-server" Augments</name>
          <t>The "ietf-quic-server" module augments the
            "/ncs:netconf-server/ncs:listen" container
            <xref target="I-D.ietf-netconf-netconf-client-server" format="default"/> with the
              "if-feature" "quic-listen".</t>
          <t>This augment enables configuration of QUIC-level parameters
            for NETCONF server connections.</t>
          <!-- FIXME show a brief of the expanded ietf-netconf-server tree -->
          <t>The following tree diagram <xref target="RFC8340" format="default"/> illustrates
            the "quic-server" augmentation of "netconf-server":</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  augment /ncs:netconf-server/ncs:listen:
  augment /ncs:netconf-server/ncs:listen/ncs:endpoints/ncs:endpoint
            /ncs:transport:
    +--:(quic) {quic-listen}?
       +--rw quic
          +---u quics:quic-server
]]></artwork>
        </section>
      </section>
      <section anchor="server-yang-module" numbered="true" toc="default">
        <name>YANG Module</name>
        <t>This YANG module has normative references to
          <xref target="RFC9645" format="default"/> and
          <xref target="I-D.ietf-netconf-udp-client-server" format="default"/>.</t>
        <t keepWithNext="true">&lt;CODE BEGINS&gt; file "ietf-quic-server@2024-10-19.yang"</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
module ietf-quic-server {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-quic-server";
  prefix quics;

  import ietf-netconf-server {
    prefix ncs;
    reference
      "RFC HHHH: NETCONF Client and Server Models";
  }

  import ietf-tls-server {
    prefix tlss;
    reference
      "RFC 9645: YANG Groupings for TLS Clients and TLS Servers";
  }

  import ietf-tls-common {
    prefix tlscmn;
    reference
      "RFC 9645: YANG Groupings for TLS Clients and TLS Servers";
  }

  import ietf-udp-server {
    prefix udps;
    reference
      "RFC CCCC: YANG Groupings for UDP Clients and UDP Servers";
  }

  organization
    "IETF NETCONF (Network Configuration) Working Group";

  contact
    "WG List: NETCONF WG list <mailto:netconf@ietf.org>
     WG Web:  https://datatracker.ietf.org/wg/netconf
     Author:  Per Andersson <mailto:per.ietf@ionio.se>";

  description
    "This module defines reusable groupings for QUIC servers that
     can be used as a basis for specific QUIC server instances.

     Copyright (c) 2024 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 AAAA
     (https://www.rfc-editor.org/info/rfcAAAA); see the RFC
     itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
     'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
     'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
     are to be interpreted as described in BCP 14 (RFC 2119)
     (RFC 8174) when, and only when, they appear in all
     capitals, as shown here.";

  revision 2024-10-19 {
    description
      "Initial version";
    reference
      "RFC AAAA: YANG Groupings for QUIC Clients and QUIC Servers";
  }

  // Features

  feature quic-listen {
    description
      "The 'quic-listen' feature indicates that the NETCONF server
       supports the QUIC transport.";
    reference
      "I-D.draft-ietf-netconf-over-quic-00: NETCONF over QUIC";
  }

  // FIXME feature quic-call-home

  // Groupings

  grouping quic-server {
    description
      "Grouping to configure a QUIC server.";
    reference
      "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport";

    uses tlss:tls-server-grouping {
      if-feature "tlscmn:tls13 and not tlscmn:tls12";
      description
        "QUIC requires that TLS 1.3 (or later) is used.";
      reference
        "RFC 9001: Using TLS to Secure QUIC";
    }
    uses udps:udp-server;
  }

  // Augments

  /* FIXME seems pyang don't support this augment */
  augment "/ncs:netconf-server/ncs:listen" {
    if-feature "quic-listen";
    description
      "Add 'quic-listen' feature to the NETCONF server listen
       configuration.";
  }

  augment "/ncs:netconf-server/ncs:listen/ncs:endpoints" +
          "/ncs:endpoint/ncs:transport" {
    description
      "Add QUIC transport to the NETCONF server listen
       configuration.";
    case quic {
      if-feature "quic-listen";
      container quic {
        description
          "QUIC-level server parameters to listen for NETCONF over
           QUIC connections.";
        uses quics:quic-server;
      }
    }
  }
}
]]></artwork>
        <t keepWithPrevious="true">&lt;CODE ENDS&gt;</t>
      </section>
    </section>
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This section follows the template defined in Section 3.7.1 of
        <xref target="RFC8407" format="default"/>.</t>
      <t>The YANG modules specified in this document defines a schema for data
        that is designed to be accessed via network management protocols such
        as NETCONF <xref target="RFC6241" format="default"/> or RESTCONF
        <xref target="RFC8040" format="default"/>. The lowest NETCONF layer is the secure
        transport layer, and the mandatory-to-implement secure transport is
        Secure Shell (SSH) <xref target="RFC6242" format="default"/>. The lowest RESTCONF layer
        is HTTPS, and the mandatory-to-implement secure transport is TLS
        <xref target="RFC8446" format="default"/>.</t>
      <t>The Network Configuration Access Control Model (NACM)
        <xref target="RFC8341" format="default"/> provides the means to restrict access for
        particular NETCONF or RESTCONF users to a preconfigured subset of all
        available NETCONF or RESTCONF protocol operations and content.</t>
      <t>The modules presented in this draft does not contain any protocol
        accessible nodes, and thus the security considerations for such are
        not provided here.</t>
      <t>Furthermore, the modules defines groupings, these considerations are
        primarily for the designers of other modules that use these groupings.</t>
      <t>Security considerations for the groupings used in the modules are
        discussed in <xref target="RFC9645" format="default"/> and
        <xref target="I-D.ietf-netconf-udp-client-server" format="default"/>, refer to these
        documents for further details.</t>
      <t>Since the modules does not define any RPCs or actions or notifications,
        and thus the security considerations for such are not provided here.</t>
    </section>
    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section numbered="true" toc="default">
        <name>The "IETF XML" Registry</name>
        <t>This document registers two URIs in the "ns" subregistry of
            the IETF XML Registry <xref target="RFC3688" format="default"/> maintained at
            <eref target="https://www.iana.org/assignments/xml-registry/xml-registry.xhtml#ns"/>.
            Following the format in <xref target="RFC3688" format="default"/>, the following
            registration is requested:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
URI: urn:ietf:params:xml:ns:yang:ietf-quic-client
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.

URI: urn:ietf:params:xml:ns:yang:ietf-quic-server
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.
            ]]></artwork>
      </section>
      <section numbered="true" toc="default">
        <name>The "YANG Module Names" Registry</name>
        <t>This document registers two YANG modules in the YANG
          Module Names registry <xref target="RFC6020" format="default"/> maintained at
          <eref target="https://www.iana.org/assignments/yang-parameters/yang-parameters.xhtml"/>.
          Following the format defined in <xref target="RFC6020" format="default"/>,
          the below registration is requested:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
name: ietf-quic-client
namespace: urn:ietf:params:xml:ns:yang:ietf-quic-client
prefix: quicc
RFC: AAAA

name: ietf-quic-server
namespace: urn:ietf:params:xml:ns:yang:ietf-quic-server
prefix: quics
RFC: AAAA
            ]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <!-- MUSTs, etc. -->
      <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <!-- IETF XML Registry -->
      <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <!-- NETCONF -->
      <reference anchor="RFC6242" target="https://www.rfc-editor.org/info/rfc6242" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6242.xml">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <!-- NETCONF over SSH -->
      <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <!-- YANG (curr) -->
      <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <!-- RESTCONF -->
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <!-- rfc2119 update -->
      <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <!-- NACM -->
      <reference anchor="RFC8407" target="https://www.rfc-editor.org/info/rfc8407" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8407.xml">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This memo provides guidelines for authors and reviewers of specifications containing YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules. This document obsoletes RFC 6087.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="8407"/>
          <seriesInfo name="DOI" value="10.17487/RFC8407"/>
        </reference>
        <!-- YANG guidelines -->
      <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <!-- TLS 1.3 -->
      <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9000.xml">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <!-- QUIC -->
      <reference anchor="RFC9001" target="https://www.rfc-editor.org/info/rfc9001" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9001.xml">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <!-- QUIC TLS -->
      <reference anchor="RFC9645" target="https://www.rfc-editor.org/info/rfc9645" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9645.xml">
          <front>
            <title>YANG Groupings for TLS Clients and TLS Servers</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>This document presents four YANG 1.1 modules -- three IETF modules and one supporting IANA module.</t>
              <t>The three IETF modules are "ietf-tls-common", "ietf-tls-client", and "ietf-tls-server". The "ietf-tls-client" and "ietf-tls-server" modules are the primary productions of this work, supporting the configuration and monitoring of TLS clients and servers.</t>
              <t>The IANA module is "iana-tls-cipher-suite-algs". This module defines YANG enumerations that provide support for an IANA-maintained algorithm registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9645"/>
          <seriesInfo name="DOI" value="10.17487/RFC9645"/>
        </reference>
        <!-- tls-client-server -->
      <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-netconf-udp-client-server.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-netconf-netconf-client-server.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6020.xml">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <!-- YANG (orig) -->
      <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <!-- tree diagrams-->
    </references>
    </references>
  </back>
</rfc>
