<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ovmd-netmod-dmanm-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="DMaNM">An Approach to Expose 'Device Models'-as-'Network Models'</title>
    <seriesInfo name="Internet-Draft" value="draft-ovmd-netmod-dmanm-00"/>
    <author fullname="Oscar Gonzalez de Dios">
      <organization>Telefonica</organization>
      <address>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>
    <author fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </author>
    <author fullname="Mohamed Boucadair">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Daniele Ceccarelli">
      <organization>Cisco</organization>
      <address>
        <email>dceccare@cisco.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="05"/>
    <area>Operations and Management</area>
    <workgroup>Network Modeling</workgroup>
    <keyword>Device models</keyword>
    <keyword>Network models</keyword>
    <abstract>
      <?line 49?>

<t>This document describes an approach for exposing Device Models as Network Models (DMaNM). In particular, this document provides guidance for structuring a data model to facilitate the reuse of device models within the customer-facing interface of Software-Defined Networking (SDN) controllers. The objective of this approach is to enhance the reusability of device models in various network scenarios and ease the mapping between network/service models with device models  and ensure lossless mapping between the various layers.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://vlopezalvarez.github.io/vlopezalvarez-draft-ovmd-netmod-dmanm/draft-ovmd-netmod-dmanm.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ovmd-netmod-dmanm/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Modeling Working Group mailing list (<eref target="mailto:netmod@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/netmod/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/netmod/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/vlopezalvarez/vlopezalvarez-draft-ovmd-netmod-dmanm"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Network operators need to efficiently manage network elements (including, embedded service functions) throughout their infrastructure. By implementing network-wide management and configuration practices, operators can achieve centralized control and better visibility over their network elements. Doing so enables them to streamline operations, monitor performance, and promptly respond to network events. Moreover, network-wide management facilitates the enforcement of standardized policies and configurations, thus, ensuring consistent behavior and minimizing the risk of errors or misconfigurations that may result in service disruptions. Additionally, that approach enables operators to implement proactive actions such as performance optimization, efficient load balancing, and security policies across the entire network, fostering a more secure and efficient infrastructure.</t>
      <t>The ability to reuse device models may play a crucial role in network management. Multiple teams within an organization, such as network engineering, operations, and planning, can benefit from leveraging and using these device models. These models may serve as a common "language" for understanding and managing network services and elements, ensuring consistency and interoperability across different teams and systems. The utilization of models from various teams is a key requirement for network operators.</t>
      <t>The IETF has made remarkable progress in defining device models to manage network element capabilities. These device models, often represented using YANG data modeling language <xref target="RFC7950"/>, provide a structured, standardized approach to manage various network devices and their features. By leveraging YANG models, network operators can effectively manage the network element functionalities. These models not only streamline network management but also promote interoperability between different vendors and platforms, fostering a more efficient and robust networking ecosystem.</t>
      <t>Some examples device models which can be to manage specific network functions are listed below:</t>
      <ul spacing="normal">
        <li>
          <t>"ietf-routing-policy" <xref target="RFC8349"/>: This YANG model defines a generic data model for managing routing policies that can be applied to various routing protocols. The model provides a framework for creating, modifying, and applying routing policies, which allows defining how routes are selected, filtered, and modified. The "ietf-routing-policy" model covers features like policy definition, policy attachment, route filters, and route actions.</t>
        </li>
        <li>
          <t>"ietf-bgp-policy" <xref target="I-D.ietf-idr-bgp-model"/>: This YANG model defines a data model for the Border Gateway Protocol (BGP). The "ietf-bgp-policy" model is designed to configure and manage BGP routers and sessions, as well as provide a representation of BGP operational state data. The model covers BGP-specific features such as peer configuration, address families, route filters, and route actions. The model is intended to work alongside the "ietf-routing-policy" model to manage BGP routing policies.</t>
        </li>
        <li>
          <t>"ietf-access-list" <xref target="RFC8519"/>: This YANG model provides a data model for configuring and managing network access control lists (ACLs). This model provides a generic structure for representing ACLs, along with the ability to define rules for permitting, denying, or assigning a specific action to matching packets.</t>
        </li>
        <li>
          <t>"ietf-nat" <xref target="RFC8512"/> defines a YANG module for the Network Address Translation (NAT) function. Various translation flavors are covered: Network Address Translation from IPv4 to IPv4 (NAT44), Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers (NAT64), customer-side translator (CLAT), Stateless IP/ICMP Translation (SIIT), Explicit Address Mappings (EAM) for SIIT, IPv6-to-IPv6 Network Prefix Translation (NPTv6), and Destination NAT.</t>
        </li>
      </ul>
      <t>Software-Defined Networking (SDN) <xref target="RFC7149"/><xref target="RFC7426"/> controllers facilitate seamless communication and coordination between high-level management systems and the underlying network infrastructure. This arrangement enables efficient translation of network-wide policies and objectives, defined by the Operations Support Systems (OSS), into granular, device-specific configurations and commands for the network elements. A similar concept applies for orchestration scenarios like in Network Slicing <xref target="RFC9543"/>. SDN controllers are typically placed as intermediate entities between the OSS and the network elements. <xref target="SDNsce"/> represents such scenario, where an SDN controller exposes its customer-facing interface to the OSS or orchestration layer.</t>
      <figure anchor="SDNsce">
        <name>An Example of SDN Scenario</name>
        <artwork align="center"><![CDATA[
        +-----+  +------+
        | OSS |  | Orch |
        +-----+  +------+
           ^        ^
           |        | Customer-Facing
           v        v    Interface
     +-------------------+
     | SDN Controller(s) |
     +-------------------+
      ^      ^       ^
      |      |       | Network-Facing
      v      v       v    Interface
  +-----+ +-----+ +-----+
  | NE1 | | NE2 | | NE3 |
  +-----+ +-----+ +-----+
]]></artwork>
      </figure>
      <t><xref target="SDNsce"/> illustrates the hierarchical relationship between the OSS, SDN controllers, and the network elements. In this example, the OSS acts as the central management system responsible for overseeing the entire network. An orchestrator acts with a similar role in scenarios like Network Slicing. An SDN controller, positioned in the middle, acts as an intermediary, facilitating communication, and coordination between the OSS and the network elements. At the bottom, the network elements are directly controlled and configured by an SDN controller. This architecture enables efficient translation of high-level network policies into device-specific configurations, ultimately streamlining network management and decoupling the systems from the network evolution.</t>
      <t>Device models were defined to be applicable in the network-facing interface of an SDN controller. As a result, these models do not inherently expose/capture the necessary network concepts to make them directly applicable in the customer-facing interface of the SDN controller.</t>
      <t>Within the scope of the IETF, efforts can be focused on two approaches when it comes to creating network models for device models. The first approach involves creating network models specific to each device model, while the second approach entails developing a generic and reusable structure for all models. This document puts forth a proposal for a reusable structure, aligning with the latter approach.</t>
      <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
        <t>The document uses the following terms from <xref target="RFC8309"/> and <xref target="RFC8969"/>:</t>
        <dl>
          <dt>Service Model:</dt>
          <dd>
            <t>Describes a service and the parameters of the service in a portable way that can be used uniformly and independent of the equipment and operating environment.</t>
          </dd>
          <dt/>
          <dd>
            <t>Examples of service models are the L3VPN Service Model (L3SM) <xref target="RFC8299"/> and the L2VPN Service Model (L2SM) <xref target="RFC8466"/>.</t>
          </dd>
          <dt>Network Model:</dt>
          <dd>
            <t>Describes a network-level abstraction (or a subset of aspects of a network infrastructure), including devices and their subsystems, and relevant protocols operating at the link and network layers across multiple devices. This model corresponds to the network configuration model discussed in <xref target="RFC8309"/>. : It can be used by a network operator to allocate resources (e.g., tunnel resource, topology resource) for the service or schedule resources to meet the service requirements defined in a service model.</t>
          </dd>
          <dt/>
          <dd>
            <t>Examples of network models are the L3VPN Network Model (L3NM) <xref target="RFC9182"/> or the L2VPN Network Model (L2NM) <xref target="RFC9291"/>.</t>
          </dd>
          <dt>Device Model:</dt>
          <dd>
            <t>Refers to the Network Element YANG data model described in <xref target="RFC8199"/> or the device configuration model discussed in <xref target="RFC8309"/>.</t>
          </dd>
          <dt/>
          <dd>
            <t>Device models are also used to refer to model a function embedded in a device (e.g., Access Control Lists (ACLs) <xref target="RFC8519"/>).</t>
          </dd>
        </dl>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="prefix-in-data-node-names">
        <name>Prefix in Data Node Names</name>
        <t>Names of data nodes and other data model objects are prefixed using the standard prefix associated with the corresponding YANG imported modules, as shown in <xref target="tab-prefixes"/>.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">Yang Module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">grp</td>
              <td align="left">ietf-grp-ntw-elements</td>
              <td align="left">RFCXXX</td>
            </tr>
          </tbody>
        </table>
        <ul empty="true">
          <li>
            <dl>
              <dt>RFC Editor Note:</dt>
              <dd>
                <t>Please replace XXXX with the RFC number assigned to this document. Please remove this note in that case.</t>
              </dd>
            </dl>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sample-use-cases">
      <name>Sample Use Cases</name>
      <section anchor="device-config-as-a-service">
        <name>"Device Config"-as-a-Service</name>
        <t>"Device Config"-as-a-Service involves the use of device models by an OSS to configure network elements through the SDN controller. In this scenario, the SDN controller acts as an intermediary between the OSS and the network elements, providing a configuration service for each network element.</t>
        <t>By leveraging device models, the OSS gains a common representation of the network elements' capabilities and configuration parameters. These device models define the desired configuration for specific functions, such as ACLs or routing policies. The OSS utilizes these device models to define the desired configuration for each network element.</t>
        <t>Through an SDN controller, the OSS can send the configuration instructions based on the device models to the respective network elements. The SDN controller translates and applies the configuration, ensuring consistency and correctness across the network. Moreover, the mediation of an SDN controller facilitates the access to the network elements from several users, applications or OSS minimizing the impact on the device.</t>
      </section>
      <section anchor="profiles">
        <name>Profiles</name>
        <t>By leveraging device models, network operators can design profile that represent configurations for specific network functionalities, protocols, or services. These templates serve as reusable building blocks, encapsulating best practices, and ensuring consistency in network configuration and management. Once a profile is created, it can be applied to one or multiple network elements, either individually or in groups, depending on the specific network requirements.</t>
        <t>This approach not only simplifies the configuration process but also reduces the likelihood of errors and misconfigurations, ultimately improving network stability and performance. Moreover, this process facilitates the lifecycle of the configurations enabling updating the profiles and, later, the network elements in a consistent manner across multiple network elements as a network-wide operation.</t>
      </section>
    </section>
    <section anchor="guidelines-to-use-device-models-in-the-customer-facing-interface-of-sdn-controllers">
      <name>Guidelines to Use Device Models in the Customer-facing Interface of SDN Controllers</name>
      <t>This section outlines two key concepts for the guidelines on utilizing device models in the Customer-facing Interface of SDN controllers: (1) groups of network elements and (2) a YANG structure for extending device models to enable network-wide utilization.</t>
      <section anchor="groups-of-network-elements">
        <name>Groups of Network Elements</name>
        <t>The management of groups of network elements is a requirement to cover the previous use cases. It is intended to have a YANG model to tag a group of network elements under the same identifier, so the operator can apply a given configuration to a set of devices. This document defines a module called "ietf-grp-ntw-elements", which provides a structured approach to represent and manage groups of network elements, enabling efficient network management.</t>
        <t>The "ietf-grp-ntw-elements" module defines a YANG model for representing a group of network elements. Within the module, there is a list called "grp-ntw-element" that includes the groups of network elements. Each group is uniquely identified by the "grp-ne-id" leaf, which has a string data type and represents the group's identifier. The "grp-ntw-element" list has a nested list called "ntw-elements" to specify the individual network elements within each group. The "ntw-element" list has a key of "ne-id" to uniquely identify each network element. The "ne-id" leaf represents the identifier of each network element and has a string data type.</t>
        <t><xref target="ietf-grp-ntw-elements-tree-st"/> represents the tree of the proposed YANG model.</t>
        <figure anchor="ietf-grp-ntw-elements-tree-st">
          <name>Group of Network Elements</name>
          <artwork align="center"><![CDATA[
module: ietf-grp-ntw-elements
  +--rw grp-ntw-elements* [grp-ne-id]
     +--rw grp-ne-id       string
     +--rw ntw-element* [ne-id]
        +--rw ne-id    string
]]></artwork>
        </figure>
      </section>
      <section anchor="yang-structure-for-extending-the-models">
        <name>YANG Structure for Extending the Models</name>
        <t>The document proposes a structure to enable the reutilization of the device models in network scenarios. The objective is to create a YANG model with the device model and providing a nested structure to store deployment information for network elements associated with each instance in the list. The guideline is to follow the next structure:</t>
        <ul spacing="normal">
          <li>
            <t>An import of the device model.</t>
          </li>
          <li>
            <t>A container named deployment that includes:</t>
          </li>
          <li>
            <t>A list called "ntw-element" with the following elements:</t>
          </li>
          <li>
            <t>A leaf named "ne-id" of type string that serves as the network element identifier (which is the key).</t>
          </li>
          <li>
            <t>A leaf named "devmod-alias" of type string that serves as the device module alias for the deployment.</t>
          </li>
          <li>
            <t>A list called "grp-ntw-elements" with the following elements:  </t>
            <ul spacing="normal">
              <li>
                <t>A leaf named "grp-ne-id" of type string that serves as the network element identifier (which is the key).</t>
              </li>
              <li>
                <t>A leaf named "devmod-alias" of type string that serves as the device module alias for the deployment.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Let us assume that there is a device model called "foo.yang". The tree of the "foo.yang" model is shown in <xref target="foo-tree-st"/>.</t>
        <figure anchor="foo-tree-st">
          <name>Foo Tree Structure</name>
          <artwork align="center"><![CDATA[
module: foo
  +--rw foo?   empty
]]></artwork>
        </figure>
        <t>This document proposes the creation of a module that consists of a list of instances from the "foo.yang" model. To iterate through the list, a key named "devmod-name" must be defined, which will be a string. Additionally, the new model will import "foo.yang". Lastly, a container called "deployment" will encompass a list of network elements, with each element identified by the "ne-id" and having a "devmod-alias" as an alias for the "devmod-name" configuration in the network element.</t>
        <t>An example of the proposed structure is shown in <xref target="foo-ntwdev-tree-st"/>.</t>
        <figure anchor="foo-ntwdev-tree-st">
          <name>Usage Example for 'foo' Module</name>
          <artwork align="center"><![CDATA[
module: foo-ntwdev
  +--rw devmod-list* [devmod-name]
     +--rw devmod-name    string
     +--rw foo?           -> /foo:foo
     +--rw deployment
        +--rw ntw-elements* [ne-id]
        |  +--rw ne-id           string
        |  +--rw devmod-alias?   string
        +--rw grp-ntw-elements* [grp-ne-id]
           +--rw grp-ne-id       string
           +--rw devmod-alias?   string
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="dmanm-yang-model">
      <name>DMaNM YANG Model</name>
      <section anchor="groups-of-network-elements-1">
        <name>Groups of Network Elements</name>
        <sourcecode markers="true" name="ietf-grp-ntw-elements@2024-07-05.yang"><![CDATA[
module ietf-grp-ntw-elements {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-grp-ntw-elements";
  prefix "grp";

  organization
    "IETF NETMOD Working Group";
  contact
    "WG Web:  <https://datatracker.ietf.org/wg/netmod/>
    WG List:  <mailto:netmod@ietf.org>

    Editor:   Oscar Gonzalez de Dios
              <mailto:oscar.gonzalezdedios@telefonica.com>
    Editor:   Victor Lopez
              <mailto:victor.lopez@nokia.com>
    Editor:   Mohamed Boucadair
              <mailto:mohamed.boucadair@orange.com>
    Editor:   Daniele Ceccarelli
              <mailto:dceccare@cisco.com>";

  description
    "YANG model for group of network elements.";

  revision "2024-07-05" {
    description "Initial version.";
    reference
      "RFC XXXX: An Approach to Expose 'Device Models'
      -as-'Network Models'";
  }

  list grp-ntw-elements {
    key "grp-ne-id";
    description
      "List of groups of network elements.";

    leaf grp-ne-id {
      type string;
      description
        "Group of network element identifier.";
    }

    list ntw-element {
      key "ne-id";
      description
        "List of network elements.";

      leaf ne-id {
        type string;
        description
          "Network element identifier.";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="usage-example-applying-the-guidelines-to-the-foo-module">
        <name>Usage Example: Applying the Guidelines to The 'foo' Module"</name>
        <sourcecode markers="true" name="example-foo-ntwdev@2024-07-05.yang"><![CDATA[
module foo-ntwdev {
  namespace "urn:example:foo-ntwdev";
  prefix "netdevfoo";

  import foo {
    prefix "foo";
  }

  organization "Example Organization";
  contact "example@example.com";
  description "YANG model for foo-dev.";

  revision "2024-07-05" {
    description
      "Initial version.";
    reference
      "RFC XXXX: YANG Model for foo-dev";
  }

  leaf foo {
    type leafref {
      path "/foo:foo";
    }
    description
      "Reference to foo leaf from foo.yang";
  }

  container deployment {
    description
      "Deployment container.";

    list ntw-element {
      key "ne-id";
      description
        "List of network elements.";

      leaf ne-id {
        type string;
        description
          "Network element identifier.";
      }
      leaf devmod-alias {
        type string;
        description
          "Device module alias for the deployment.";
      }
    }

    list grp-ntw-elements {
      key "grp-ne-id";
      description
        "List of group of network elements.";

      leaf grp-ne-id {
        type string;
        description
          "Group of network element identifier.";
      }
      leaf devmod-alias {
        type string;
        description
          "Device module alias for the deployment.";
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG module specified in this document defines schema for data that is designed to be accessed via network management protocols such as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/> 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>There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) and delete operations to these data nodes without proper protection or authentication can have a negative effect on network operations. These are the subtrees and data nodes and their sensitivity/ vulnerability in the "xxx" module:</t>
      <ul spacing="normal">
        <li>
          <t>TBC</t>
        </li>
        <li>
          <t>TBC</t>
        </li>
      </ul>
      <t>Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. These are the subtrees and data nodes and their sensitivity/vulnerability in the "ixxx" module:</t>
      <ul spacing="normal">
        <li>
          <t>TBC</t>
        </li>
        <li>
          <t>TBC</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns" subregistry within the "IETF XML Registry"  <xref target="RFC3688"/>:</t>
      <t>URI:  urn:ietf:params:xml:ns:yang:grp-ntw-elements
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.</t>
      <t>IANA is requested to register the following YANG module in the "YANG Module Names" registry  <xref target="RFC6020"/> within the "YANG Parameters" registry group.</t>
      <t>Name:  xxx
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:grp-ntw-elements
   Prefix:  grp
   Reference:  RFC XXXX</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section will be used to track the status of the implementations of the model. It is aimed at being removed if the document becomes RFC.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7950">
          <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>
        <reference anchor="RFC8519">
          <front>
            <title>YANG Data Model for Network Access Control Lists (ACLs)</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="S. Agarwal" initials="S." surname="Agarwal"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <author fullname="D. Blair" initials="D." surname="Blair"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a data model for Access Control Lists (ACLs). An ACL is a user-ordered set of rules used to configure the forwarding behavior in a device. Each rule is used to find a match on a packet and define actions that will be performed on the packet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8519"/>
          <seriesInfo name="DOI" value="10.17487/RFC8519"/>
        </reference>
        <reference anchor="RFC7149">
          <front>
            <title>Software-Defined Networking: A Perspective from within a Service Provider Environment</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Software-Defined Networking (SDN) has been one of the major buzz words of the networking industry for the past couple of years. And yet, no clear definition of what SDN actually covers has been broadly admitted so far. This document aims to clarify the SDN landscape by providing a perspective on requirements, issues, and other considerations about SDN, as seen from within a service provider environment.</t>
              <t>It is not meant to endlessly discuss what SDN truly means but rather to suggest a functional taxonomy of the techniques that can be used under an SDN umbrella and to elaborate on the various pending issues the combined activation of such techniques inevitably raises. As such, a definition of SDN is only mentioned for the sake of clarification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7149"/>
          <seriesInfo name="DOI" value="10.17487/RFC7149"/>
        </reference>
        <reference anchor="RFC7426">
          <front>
            <title>Software-Defined Networking (SDN): Layers and Architecture Terminology</title>
            <author fullname="E. Haleplidis" initials="E." role="editor" surname="Haleplidis"/>
            <author fullname="K. Pentikousis" initials="K." role="editor" surname="Pentikousis"/>
            <author fullname="S. Denazis" initials="S." surname="Denazis"/>
            <author fullname="J. Hadi Salim" initials="J." surname="Hadi Salim"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="O. Koufopavlou" initials="O." surname="Koufopavlou"/>
            <date month="January" year="2015"/>
            <abstract>
              <t>Software-Defined Networking (SDN) refers to a new approach for network programmability, that is, the capacity to initialize, control, change, and manage network behavior dynamically via open interfaces. SDN emphasizes the role of software in running networks through the introduction of an abstraction for the data forwarding plane and, by doing so, separates it from the control plane. This separation allows faster innovation cycles at both planes as experience has already shown. However, there is increasing confusion as to what exactly SDN is, what the layer structure is in an SDN architecture, and how layers interface with each other. This document, a product of the IRTF Software-Defined Networking Research Group (SDNRG), addresses these questions and provides a concise reference for the SDN research community based on relevant peer-reviewed literature, the RFC series, and relevant documents by other standards organizations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7426"/>
          <seriesInfo name="DOI" value="10.17487/RFC7426"/>
        </reference>
        <reference anchor="RFC9543">
          <front>
            <title>A Framework for Network Slices in Networks Built from IETF Technologies</title>
            <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
            <author fullname="J. Drake" initials="J." role="editor" surname="Drake"/>
            <author fullname="R. Rokui" initials="R." surname="Rokui"/>
            <author fullname="S. Homma" initials="S." surname="Homma"/>
            <author fullname="K. Makhijani" initials="K." surname="Makhijani"/>
            <author fullname="L. Contreras" initials="L." surname="Contreras"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document describes network slicing in the context of networks built from IETF technologies. It defines the term "IETF Network Slice" to describe this type of network slice and establishes the general principles of network slicing in the IETF context.</t>
              <t>The document discusses the general framework for requesting and operating IETF Network Slices, the characteristics of an IETF Network Slice, the necessary system components and interfaces, and the mapping of abstract requests to more specific technologies. The document also discusses related considerations with monitoring and security.</t>
              <t>This document also provides definitions of related terms to enable consistent usage in other IETF documents that describe or use aspects of IETF Network Slices.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9543"/>
          <seriesInfo name="DOI" value="10.17487/RFC9543"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC8340">
          <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>
        <reference anchor="RFC8309">
          <front>
            <title>Service Models Explained</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>The IETF has produced many modules in the YANG modeling language. The majority of these modules are used to construct data models to model devices or monolithic functions.</t>
              <t>A small number of YANG modules have been defined to model services (for example, the Layer 3 Virtual Private Network Service Model (L3SM) produced by the L3SM working group and documented in RFC 8049).</t>
              <t>This document describes service models as used within the IETF and also shows where a service model might fit into a software-defined networking architecture. Note that service models do not make any assumption of how a service is actually engineered and delivered for a customer; details of how network protocols and devices are engineered to deliver a service are captured in other modules that are not exposed through the interface between the customer and the provider.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8309"/>
          <seriesInfo name="DOI" value="10.17487/RFC8309"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="RFC8299">
          <front>
            <title>YANG Data Model for L3VPN Service Delivery</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="L. Tomotaki" initials="L." surname="Tomotaki"/>
            <author fullname="K. Ogaki" initials="K." surname="Ogaki"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used for communication between customers and network operators and to deliver a Layer 3 provider-provisioned VPN service. This document is limited to BGP PE-based VPNs as described in RFCs 4026, 4110, and 4364. This model is intended to be instantiated at the management system to deliver the overall service. It is not a configuration model to be used directly on network elements. This model provides an abstracted view of the Layer 3 IP VPN service configuration components. It will be up to the management system to take this model as input and use specific configuration models to configure the different network elements to deliver the service. How the configuration of network elements is done is out of scope for this document.</t>
              <t>This document obsoletes RFC 8049; it replaces the unimplementable module in that RFC with a new module with the same name that is not backward compatible. The changes are a series of small fixes to the YANG module and some clarifications to the text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8299"/>
          <seriesInfo name="DOI" value="10.17487/RFC8299"/>
        </reference>
        <reference anchor="RFC8466">
          <front>
            <title>A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery</title>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure a Layer 2 provider-provisioned VPN service. It is up to a management system to take this as an input and generate specific configuration models to configure the different network elements to deliver the service. How this configuration of network elements is done is out of scope for this document.</t>
              <t>The YANG data model defined in this document includes support for point-to-point Virtual Private Wire Services (VPWSs) and multipoint Virtual Private LAN Services (VPLSs) that use Pseudowires signaled using the Label Distribution Protocol (LDP) and the Border Gateway Protocol (BGP) as described in RFCs 4761 and 6624.</t>
              <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8466"/>
          <seriesInfo name="DOI" value="10.17487/RFC8466"/>
        </reference>
        <reference anchor="RFC9182">
          <front>
            <title>A YANG Network Data Model for Layer 3 VPNs</title>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="L. Munoz" initials="L." surname="Munoz"/>
            <author fullname="A. Aguado" initials="A." surname="Aguado"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>As a complement to the Layer 3 Virtual Private Network Service Model (L3SM), which is used for communication between customers and service providers, this document defines an L3VPN Network Model (L3NM) that can be used for the provisioning of Layer 3 Virtual Private Network (L3VPN) services within a service provider network. The model provides a network-centric view of L3VPN services.</t>
              <t>The L3NM is meant to be used by a network controller to derive the configuration information that will be sent to relevant network devices. The model can also facilitate communication between a service orchestrator and a network controller/orchestrator.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9182"/>
          <seriesInfo name="DOI" value="10.17487/RFC9182"/>
        </reference>
        <reference anchor="RFC9291">
          <front>
            <title>A YANG Network Data Model for Layer 2 VPNs</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="L. Munoz" initials="L." surname="Munoz"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document defines an L2VPN Network Model (L2NM) that can be used to manage the provisioning of Layer 2 Virtual Private Network (L2VPN) services within a network (e.g., a service provider network). The L2NM complements the L2VPN Service Model (L2SM) by providing a network-centric view of the service that is internal to a service provider. The L2NM is particularly meant to be used by a network controller to derive the configuration information that will be sent to relevant network devices.</t>
              <t>Also, this document defines a YANG module to manage Ethernet segments and the initial versions of two IANA-maintained modules that include a set of identities of BGP Layer 2 encapsulation types and pseudowire types.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9291"/>
          <seriesInfo name="DOI" value="10.17487/RFC9291"/>
        </reference>
        <reference anchor="RFC8199">
          <front>
            <title>YANG Module Classification</title>
            <author fullname="D. Bogdanovic" initials="D." surname="Bogdanovic"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <author fullname="C. Moberg" initials="C." surname="Moberg"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>The YANG data modeling language is currently being considered for a wide variety of applications throughout the networking industry at large. Many standards development organizations (SDOs), open-source software projects, vendors, and users are using YANG to develop and publish YANG modules for a wide variety of applications. At the same time, there is currently no well-known terminology to categorize various types of YANG modules.</t>
              <t>A consistent terminology would help with the categorization of YANG modules, assist in the analysis of the YANG data modeling efforts in the IETF and other organizations, and bring clarity to the YANG- related discussions between the different groups.</t>
              <t>This document describes a set of concepts and associated terms to support consistent classification of YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8199"/>
          <seriesInfo name="DOI" value="10.17487/RFC8199"/>
        </reference>
        <reference anchor="RFC2119">
          <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>
        <reference anchor="RFC8174">
          <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>
        <reference anchor="RFC6241">
          <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>
        <reference anchor="RFC8040">
          <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>
        <reference anchor="RFC6242">
          <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>
        <reference anchor="RFC8446">
          <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>
        <reference anchor="RFC8341">
          <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>
        <reference anchor="RFC3688">
          <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>
        <reference anchor="RFC6020">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-model">
          <front>
            <title>YANG Model for Border Gateway Protocol (BGP-4)</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization>Kloud Services</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization>Arrcus</organization>
            </author>
            <author fullname="Susan Hares" initials="S." surname="Hares">
              <organization>Huawei</organization>
            </author>
            <author fullname="Jeffrey Haas" initials="J." surname="Haas">
              <organization>Juniper Networks</organization>
            </author>
            <date day="5" month="July" year="2023"/>
            <abstract>
              <t>   This document defines a YANG data model for configuring and managing
   BGP, including protocol, policy, and operational aspects, such as
   RIB, based on data center, carrier, and content provider operational
   requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-model-17"/>
        </reference>
        <reference anchor="RFC8512">
          <front>
            <title>A YANG Module for Network Address Translation (NAT) and Network Prefix Translation (NPT)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="S. Sivakumar" initials="S." surname="Sivakumar"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <author fullname="S. Vinapamula" initials="S." surname="Vinapamula"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>This document defines a YANG module for the Network Address Translation (NAT) function.</t>
              <t>Network Address Translation from IPv4 to IPv4 (NAT44), Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers (NAT64), customer-side translator (CLAT), Stateless IP/ICMP Translation (SIIT), Explicit Address Mappings (EAM) for SIIT, IPv6-to-IPv6 Network Prefix Translation (NPTv6), and Destination NAT are covered in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8512"/>
          <seriesInfo name="DOI" value="10.17487/RFC8512"/>
        </reference>
      </references>
    </references>
    <?line 416?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
