<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-opsawg-ucl-acl-15" number="10065" category="std" consensus="true" updates="" obsoletes="" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" xml:lang="en" prepTime="2026-10-08T00:32:29" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-opsawg-ucl-acl-15" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc10065" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="YANG and RADIUS for Network Access Control">A YANG Data Model and RADIUS Extension for Policy-Based Network Access Control</title>
    <seriesInfo name="RFC" value="10065" stream="IETF"/>
    <author fullname="Qiufang Ma" role="editor">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Jiangsu</city>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>maqiufang1@huawei.com</email>
      </address>
    </author>
    <author fullname="Qin Wu">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Jiangsu</city>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>bill.wu@huawei.com</email>
      </address>
    </author>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization showOnFrontPage="true">Orange</organization>
      <address>
        <postal>
          <city>Rennes</city>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Daniel King">
      <organization showOnFrontPage="true">Lancaster University</organization>
      <address>
        <postal>
          <country>United Kingdom</country>
        </postal>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </author>
    <date month="10" year="2026"/>
    <area>OPS</area>
    <workgroup>opsawg</workgroup>
    <keyword>ACL</keyword>
    <keyword>BYOD</keyword>
    <keyword>Access control</keyword>
    <keyword>Policy Enforcement Point</keyword>
    <keyword>PEP</keyword>
    <keyword>Policy enforcement</keyword>
    <keyword>Policy Decision Point</keyword>
    <keyword>PDP</keyword>
    <keyword>Network Management</keyword>
    <keyword>Service Provisioning</keyword>
    <keyword>Group-Based Policy</keyword>
    <keyword>GBP</keyword>
    <keyword>Software-Defined Networking</keyword>
    <keyword>SDN</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines a YANG data model for policy-based network access
   control, which enables enforcement of
   network access control policies based on group identity. This YANG data model extends Access Control Lists (ACLs) with date and time parameters to support schedule-aware policy enforcement.</t>
      <t indent="0" pn="section-abstract-2">Specifically in scenarios where network access is triggered by user authentication, this document defines a mechanism that eases the maintenance
   of the mapping between a user group identifier and a set of packet header 
   fields to enforce policy-based network access control. 
   
   Moreover, this document defines a Remote Authentication Dial-in
   User Service (RADIUS) attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc10065" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2026 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conventions-and-definitions">Conventions and Definitions</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sample-usage">Sample Usage</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-policy-based-network-access">Policy-Based Network Access Control</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-overview">Overview</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-endpoint-group">Endpoint Group</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-user-group">User Group</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-device-group">Device Group</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.3.1"><xref derivedContent="4.2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-application-group">Application Group</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-relations-between-different">Relations Between Different Endpoint Groups</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-ucl-extension-to-the-ac">The UCL Extension to the ACL Module</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-module-overview">Module Overview</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-ietf-ucl-acl-yang-modul">The "ietf-ucl-acl" YANG Module</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-user-access-group-id-radius">User-Access-Group-ID RADIUS Attribute</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-table-of-radius-attributes">Table of RADIUS Attributes</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-considerations">Operational Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deployment-options">Deployment Options</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-hardware-software-implicati">Hardware/Software Implications</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.3">
                <t indent="0" pn="section-toc.1-1.8.2.3.1"><xref derivedContent="8.3" format="counter" sectionFormat="of" target="section-8.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mapping-consistency">Mapping Consistency</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-yang">YANG</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-radius">RADIUS</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-yang-2">YANG</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-radius-2">RADIUS</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.11.2">
              <li pn="section-toc.1-1.11.2.1">
                <t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.11.2.2">
                <t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-usage-examples">Usage Examples</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.12.2">
              <li pn="section-toc.1-1.12.2.1">
                <t indent="0" pn="section-toc.1-1.12.2.1.1"><xref derivedContent="A.1" format="counter" sectionFormat="of" target="section-appendix.a.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-configuring-the-controller-">Configuring the Controller Using the Group-Based ACL</xref></t>
              </li>
              <li pn="section-toc.1-1.12.2.2">
                <t indent="0" pn="section-toc.1-1.12.2.2.1"><xref derivedContent="A.2" format="counter" sectionFormat="of" target="section-appendix.a.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-configuring-a-pep-using-the">Configuring a PEP Using the Group-Based ACL</xref></t>
              </li>
              <li pn="section-toc.1-1.12.2.3">
                <t indent="0" pn="section-toc.1-1.12.2.3.1"><xref derivedContent="A.3" format="counter" sectionFormat="of" target="section-appendix.a.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-configuring-a-pep-using-an-">Configuring a PEP Using an Address-Based ACL</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">With the increased adoption of remote access technologies (e.g.,
   Virtual Private Networks (VPNs) and Bring Your Own Device (BYOD)
   policies), enterprises adopted more flexibility related to how, where,
   and when employees work and collaborate.  However, more flexibility
   comes with increased risks.  Enabling office flexibility (e.g.,
   mobility across many access locations) introduces a set of challenges
   for large-scale enterprises compared to conventional network access management approaches.
   Examples of such challenges are listed below:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-2">
        <li pn="section-1-2.1">
          <t indent="0" pn="section-1-2.1.1">Endpoints do not have stable and unique IP addresses.  For example, Wireless
LAN (WLAN) and VPN clients, as well as back-end servers based on Virtual Machines
(VMs), can move; their IP addresses could change as a
result. Furthermore, mechanisms such as IPv6 temporary addresses <xref target="RFC8981" format="default" sectionFormat="of" derivedContent="RFC8981"/> and Network Address Port Translation (NAPT) <xref target="RFC3022" format="default" sectionFormat="of" derivedContent="RFC3022"/> may further contribute to address instability and non-uniqueness. This complicates the consistent and efficient access control policy enforcement relying on IP/transport fields (e.g., the
5-tuple). IP-address-based policies may not be flexible
enough to accommodate endpoints with volatile IP addresses.</t>
        </li>
        <li pn="section-1-2.2">
          <t indent="0" pn="section-1-2.2.1">With the massive adoption of teleworking, there is a need to
apply different security policies to the same set of endpoints under
different circumstances (e.g., prevent relay attacks against a
local attachment point to the enterprise network). For example,
network access might be granted based upon criteria such as a user's
access location, source network reputation, a user's role, the time of 
day, the type of network device used (e.g., corporate-issued device
versus personal device), a device's security posture, etc. This
means that the network needs to recognize the endpoints' identities and their
current contexts and map the endpoints to their correct access
grants to the network.</t>
        </li>
      </ul>
      <t indent="0" pn="section-1-3">This document defines a YANG data model (<xref target="sec-UCL" format="default" sectionFormat="of" derivedContent="Section 5.2"/>) for policy-based network access control,
   which extends the IETF Access Control Lists (ACLs) module defined in <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/>.
   This module can be used to ensure consistent enforcement of ACL policies
   based on the group identity. Additionally, the YANG data model defined in the document also extends ACLs with date and time parameters to support schedule-aware policy enforcement.</t>
      <t indent="0" pn="section-1-4">The ACL concept has been generalized to be device-nonspecific, and it can be
   defined at the network/administrative domain level <xref target="RFC9899" format="default" sectionFormat="of" derivedContent="RFC9899"/>. To
   allow for all  ACL applications, the YANG module for policy-based network
   ACL defined in <xref target="sec-UCL" format="default" sectionFormat="of" derivedContent="Section 5.2"/> does not limit how it can be used.</t>
      <t indent="0" pn="section-1-5">Specifically in scenarios where network access is triggered by user authentication, this document also defines a mechanism to establish a mapping between (1) the
   user group identifier (ID) and (2) common IP packet header fields and other
   encapsulating packet data (e.g., a Media Access Control (MAC) address) to execute the policy-based access control.
   Additionally, the document defines a Remote Authentication Dial-in
   User Service (RADIUS) <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/> attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information (<xref target="sec-radius" format="default" sectionFormat="of" derivedContent="Section 6"/>).</t>
      <t indent="0" pn="section-1-6">Although this document cites MAC addresses as an example in some sections, this
   document does not make assumptions about which identifiers are used to trigger ACLs.
   These examples should not be considered as recommendations. Readers should be
   aware that MAC-based ACLs can be bypassed by clearing the MAC address.
   Other implications related to the change of MAC addresses are discussed in
   <xref target="RFC9797" format="default" sectionFormat="of" derivedContent="RFC9797"/>.</t>
      <t indent="0" pn="section-1-7">This document does not specify how to map the policy group identifiers to
dedicated packet fields. Group-Based Policy (GBP), discussed in <xref section="6.2.3" sectionFormat="of" target="RFC9638" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9638#section-6.2.3" derivedContent="RFC9638"/>,
   provides an example of how that may be achieved.</t>
    </section>
    <section anchor="conventions-and-definitions" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-conventions-and-definitions">Conventions and Definitions</name>
      <t indent="0" pn="section-2-1">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
      </t>
      <t indent="0" pn="section-2-2">The meanings of the symbols in tree diagrams are defined in
   <xref target="RFC8340" format="default" sectionFormat="of" derivedContent="RFC8340"/>.</t>
      <t indent="0" pn="section-2-3">This document uses the following terms defined in <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/>:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2-4">
        <li pn="section-2-4.1">
          <t indent="0" pn="section-2-4.1.1">Access Control Entry (ACE)</t>
        </li>
        <li pn="section-2-4.2">
          <t indent="0" pn="section-2-4.2.1">Access Control List (ACL)</t>
        </li>
      </ul>
      <t indent="0" pn="section-2-5">The following definitions are used throughout this document:</t>
      <dl indent="3" newline="false" spacing="normal" pn="section-2-6">
        <dt pn="section-2-6.1">Enterprise device:</dt>
        <dd pn="section-2-6.2">
          <t indent="0" pn="section-2-6.2.1">A device that falls under the access control domain of
   a centrally managed authority (enterprise administrator, typically).
   An enterprise device provides compute, memory, storage, and networking capabilities and connects to a network.</t>
          <t indent="0" pn="section-2-6.2.2">An enterprise device could be a server that hosts applications or software that delivers services to enterprise users. It could also be an enterprise Internet of Things (IoT) device that serves a limited purpose (e.g., a printer that allows users to scan and print).</t>
        </dd>
        <dt pn="section-2-6.3"/>
        <dd pn="section-2-6.4">
          <t indent="0" pn="section-2-6.4.1">While a personal device (BYOD) is not a physical asset of the enterprise, it is subject to the enterprise's access control policies when accessing the enterprise resources controlled by the centrally managed authority.</t>
        </dd>
        <dt pn="section-2-6.5">Endpoint:</dt>
        <dd pn="section-2-6.6">
          <t indent="0" pn="section-2-6.6.1">An entity that could be an end user, enterprise device, or application that actually connects to a network.</t>
        </dd>
        <dt pn="section-2-6.7">Endpoint group:</dt>
        <dd pn="section-2-6.8">
          <t indent="0" pn="section-2-6.8.1">A group of endpoints that share common access control policies.</t>
        </dd>
        <dt pn="section-2-6.9">User group:</dt>
        <dd pn="section-2-6.10">
          <t indent="0" pn="section-2-6.10.1">A group of end users who will be assigned the same network access policy. An end user is defined as a person. Refer to <xref target="sec-ug" format="default" sectionFormat="of" derivedContent="Section 4.2.1"/> for more details.</t>
        </dd>
        <dt pn="section-2-6.11">Device group:</dt>
        <dd pn="section-2-6.12">
          <t indent="0" pn="section-2-6.12.1">A collection of enterprise devices that share common access control policies. Refer to <xref target="sec-dg" format="default" sectionFormat="of" derivedContent="Section 4.2.2"/> for more details.</t>
        </dd>
        <dt pn="section-2-6.13">Application group:</dt>
        <dd pn="section-2-6.14">
          <t indent="0" pn="section-2-6.14.1">A collection of applications that share common access control policies. An application is a software program used for a specific service. Refer to <xref target="sec-ag" format="default" sectionFormat="of" derivedContent="Section 4.2.3"/> for more details.</t>
        </dd>
        <dt pn="section-2-6.15">Endpoint group identifier:</dt>
        <dd pn="section-2-6.16">
          <t indent="0" pn="section-2-6.16.1">An identifier used to represent the collective identity of
   an endpoint group. An endpoint group may include a user group, device group, or application group.</t>
        </dd>
        <dt pn="section-2-6.17">User-group-based Control List (UCL) data model:</dt>
        <dd pn="section-2-6.18">
          <t indent="0" pn="section-2-6.18.1">A YANG data model for policy-based network access
control that specifies an extension to the "ietf-access-control-list" module <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/>.
It allows policy enforcement based on a group identifier, which can be used
both at the network device level and at the network/administrative domain level.</t>
        </dd>
        <dt pn="section-2-6.19">Policy:</dt>
        <dd pn="section-2-6.20">
          <t indent="0" pn="section-2-6.20.1">A set of rules to administer, manage, and control access to network resources <xref target="RFC3198" format="default" sectionFormat="of" derivedContent="RFC3198"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sample-usage" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-sample-usage">Sample Usage</name>
      <t indent="0" pn="section-3-1">Access to some networks (e.g., enterprise networks) requires
   recognizing the endpoints' identities no matter how, where, or when they
   connect to the network resources.  Then, the network maps the
   (connecting) endpoints to their access authorization rights.  Such rights
   are defined using local policies.  As discussed in <xref target="intro" format="default" sectionFormat="of" derivedContent="Section 1"/>,
   because (1) there is a large number of connecting endpoints and (2) an endpoint may have different
   source IP addresses in different network segments,
   deploying a network access control policy for each IP address or
   network segment requires a high overhead. An alternate approach is to configure endpoint groups to classify users,
   enterprise devices, and applications, and to associate ACLs with endpoint
   groups so that endpoints in each group can share a group of ACL rules.
   This approach greatly reduces
   the overhead of the administrators and optimizes ACL resources.</t>
      <t indent="0" pn="section-3-2">The network ACLs can be provisioned on devices using specific
   mechanisms, such as those described in <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/> or <xref target="RFC9899" format="default" sectionFormat="of" derivedContent="RFC9899"/>.</t>
      <t indent="0" pn="section-3-3">Different policies may need to be applied in different contextual situations.
   For example, companies may restrict (or grant) employees access to specific
   internal or external resources during work hours,
   while another policy is adopted during off-hours and weekends.  A
   network administrator may also require traffic shaping
   (<xref section="2.3.3.3" sectionFormat="of" target="RFC2475" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2475#section-2.3.3.3" derivedContent="RFC2475"/>) and policing
   (<xref section="2.3.3.4" sectionFormat="of" target="RFC2475" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2475#section-2.3.3.4" derivedContent="RFC2475"/>) during peak hours in order to not affect other data
   services.</t>
    </section>
    <section anchor="policy-based-network-access-control" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-policy-based-network-access">Policy-Based Network Access Control</name>
      <section anchor="overview" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-overview">Overview</name>
        <t indent="0" pn="section-4.1-1">An example architecture of a system that provides real-time and
   consistent enforcement of access control policies is shown in
   <xref target="arch" format="default" sectionFormat="of" derivedContent="Figure 1"/>.  This architecture illustrates a user-centric flow, which
   includes the following functional entities and interfaces:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1-2">
          <li pn="section-4.1-2.1">
            <t indent="0" pn="section-4.1-2.1.1">A service orchestrator that coordinates the overall service, including security policies. The service may be connectivity or any other access to resources that can be hosted and offered by a network.</t>
          </li>
          <li pn="section-4.1-2.2">
            <t indent="0" pn="section-4.1-2.2.1">A Software-Defined Networking (SDN) <xref target="RFC7149" format="default" sectionFormat="of" derivedContent="RFC7149"/> <xref target="RFC7426" format="default" sectionFormat="of" derivedContent="RFC7426"/> controller that is responsible for maintaining endpoint-group-based ACLs and mapping the endpoint group to the associated attributes information (e.g., packet header fields). An SDN controller also behaves as a Policy Decision Point (PDP) <xref target="RFC3198" format="default" sectionFormat="of" derivedContent="RFC3198"/> and pushes the required access control policies to relevant Policy Enforcement Points (PEPs) <xref target="RFC3198" format="default" sectionFormat="of" derivedContent="RFC3198"/>. A PDP is also known as a "policy server" <xref target="RFC2753" format="default" sectionFormat="of" derivedContent="RFC2753"/>.  </t>
            <t indent="0" pn="section-4.1-2.2.2">
An SDN controller may interact with an Authentication, Authorization, and Accounting (AAA) <xref target="RFC3539" format="default" sectionFormat="of" derivedContent="RFC3539"/> server or a Network Access Server (NAS) <xref target="RFC7542" format="default" sectionFormat="of" derivedContent="RFC7542"/>.</t>
          </li>
          <li pn="section-4.1-2.3">
            <t indent="0" pn="section-4.1-2.3.1">A NAS entity that handles authentication requests. The NAS interacts with a AAA server to complete user authentication using protocols like RADIUS <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>. When access is granted, the AAA server provides the group identifier (group ID) to which the user belongs when the user first logs onto the network.  </t>
            <t indent="0" pn="section-4.1-2.3.2">
A new RADIUS attribute is defined in <xref target="sec-radius" format="default" sectionFormat="of" derivedContent="Section 6"/> for this purpose.</t>
          </li>
          <li pn="section-4.1-2.4">
            <t indent="0" pn="section-4.1-2.4.1">The AAA server provides a collection of authentication, authorization, and accounting functions. The AAA server is responsible for centralized user information management. The AAA server is preconfigured with user credentials (e.g., username and password), possible group identities, and related user attributes (users may be divided into different groups based on different user attributes).</t>
          </li>
          <li pn="section-4.1-2.5">
            <t indent="0" pn="section-4.1-2.5.1">A PEP is the central entity that is responsible for enforcing appropriate access control policies. A first deployment scenario assumes that the SDN controller maps the group ID to the related common packet header and delivers ACL policies based on packet header fields to the required PEPs. Another deployment scenario may require that PEPs map incoming packets to their associated source and/or destination endpoint group IDs and act upon the corresponding group-based ACL policies (e.g., a group identifier may be carried in packet headers, as discussed in <xref section="6.2.3" sectionFormat="of" target="RFC9638" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9638#section-6.2.3" derivedContent="RFC9638"/>).  </t>
            <t indent="0" pn="section-4.1-2.5.2">
Multiple PEPs may be involved in a network.  </t>
            <t indent="0" pn="section-4.1-2.5.3">
A PEP exposes a YANG-based interface (e.g., NETCONF <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/>) to an SDN controller.</t>
          </li>
        </ul>
        <t indent="0" pn="section-4.1-3"><xref target="arch" format="default" sectionFormat="of" derivedContent="Figure 1"/> provides the overall architecture and procedure for policy-based access control management.</t>
        <figure anchor="arch" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-an-example-architecture-for">An Example Architecture for User-Group-Based Policy Management</name>
          <artset pn="section-4.1-4.1">
            <artwork type="svg" align="center" pn="section-4.1-4.1.1"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="536" viewBox="0 0 536 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 16,144 L 16,176" fill="none" stroke="black"/>
                <path d="M 16,320 L 16,352" fill="none" stroke="black"/>
                <path d="M 80,144 L 80,176" fill="none" stroke="black"/>
                <path d="M 80,320 L 80,352" fill="none" stroke="black"/>
                <path d="M 104,160 L 104,288" fill="none" stroke="black"/>
                <path d="M 152,144 L 152,192" fill="none" stroke="black"/>
                <path d="M 176,272 L 176,384" fill="none" stroke="black"/>
                <path d="M 192,192 L 192,272" fill="none" stroke="black"/>
                <path d="M 192,304 L 192,352" fill="none" stroke="black"/>
                <path d="M 224,144 L 224,192" fill="none" stroke="black"/>
                <path d="M 272,144 L 272,192" fill="none" stroke="black"/>
                <path d="M 288,32 L 288,64" fill="none" stroke="black"/>
                <path d="M 288,224 L 288,272" fill="none" stroke="black"/>
                <path d="M 344,64 L 344,88" fill="none" stroke="black"/>
                <path d="M 344,104 L 344,144" fill="none" stroke="black"/>
                <path d="M 344,192 L 344,224" fill="none" stroke="black"/>
                <path d="M 376,304 L 376,352" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,64" fill="none" stroke="black"/>
                <path d="M 392,304 L 392,336" fill="none" stroke="black"/>
                <path d="M 416,144 L 416,192" fill="none" stroke="black"/>
                <path d="M 416,224 L 416,272" fill="none" stroke="black"/>
                <path d="M 512,304 L 512,336" fill="none" stroke="black"/>
                <path d="M 528,272 L 528,384" fill="none" stroke="black"/>
                <path d="M 288,32 L 392,32" fill="none" stroke="black"/>
                <path d="M 288,64 L 392,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 448,96" fill="none" stroke="black"/>
                <path d="M 16,144 L 80,144" fill="none" stroke="black"/>
                <path d="M 152,144 L 224,144" fill="none" stroke="black"/>
                <path d="M 272,144 L 416,144" fill="none" stroke="black"/>
                <path d="M 80,160 L 104,160" fill="none" stroke="black"/>
                <path d="M 16,176 L 80,176" fill="none" stroke="black"/>
                <path d="M 224,176 L 272,176" fill="none" stroke="black"/>
                <path d="M 152,192 L 224,192" fill="none" stroke="black"/>
                <path d="M 272,192 L 416,192" fill="none" stroke="black"/>
                <path d="M 288,224 L 416,224" fill="none" stroke="black"/>
                <path d="M 176,272 L 528,272" fill="none" stroke="black"/>
                <path d="M 104,288 L 176,288" fill="none" stroke="black"/>
                <path d="M 192,304 L 376,304" fill="none" stroke="black"/>
                <path d="M 392,304 L 512,304" fill="none" stroke="black"/>
                <path d="M 16,320 L 80,320" fill="none" stroke="black"/>
                <path d="M 80,336 L 176,336" fill="none" stroke="black"/>
                <path d="M 392,336 L 512,336" fill="none" stroke="black"/>
                <path d="M 16,352 L 80,352" fill="none" stroke="black"/>
                <path d="M 192,352 L 376,352" fill="none" stroke="black"/>
                <path d="M 176,384 L 528,384" fill="none" stroke="black"/>
                <path class="jump" d="M 344,104 C 350,104 350,88 344,88" fill="none" stroke="black"/>
                <g class="text">
                  <text x="340" y="52">Orchestrator</text>
                  <text x="40" y="84">Service</text>
                  <text x="376" y="84">(Step</text>
                  <text x="412" y="84">1)</text>
                  <text x="40" y="116">Network</text>
                  <text x="236" y="132">Step</text>
                  <text x="264" y="132">4</text>
                  <text x="36" y="164">User</text>
                  <text x="68" y="164">#1</text>
                  <text x="184" y="164">AAA</text>
                  <text x="296" y="164">SDN</text>
                  <text x="356" y="164">Controller</text>
                  <text x="188" y="180">Server</text>
                  <text x="336" y="180">PDP</text>
                  <text x="452" y="228">Step</text>
                  <text x="480" y="228">5</text>
                  <text x="44" y="244">Step</text>
                  <text x="72" y="244">2</text>
                  <text x="220" y="244">Step</text>
                  <text x="248" y="244">3</text>
                  <text x="232" y="324">Network</text>
                  <text x="292" y="324">Access</text>
                  <text x="348" y="324">Server</text>
                  <text x="432" y="324">Firewall,</text>
                  <text x="492" y="324">etc.</text>
                  <text x="36" y="340">User</text>
                  <text x="68" y="340">#2</text>
                  <text x="272" y="340">(NAS)</text>
                  <text x="368" y="372">PEP</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center" pn="section-4.1-4.1.2">
                                   .------------.
                                   |Orchestrator|
                                   '------+-----'
 Service                                  | (Step 1)
------------------------------------------)-------------
 Network                                  |
                           Step 4         |
 .-------.        .--------.     .--------+--------.
 |User #1+--+     |  AAA   |     | SDN Controller  |
 '-------'  |     | Server +-----+      PDP        |
            |     '----+---'     '--------+--------'
            |          |                  |
            |          |           +------+--------+  Step 5
   Step 2   |          | Step 3    |               |
            |          |           |               |
            |        .-+-----------+---------------+-------------.
            +--------+                                           |
                     | .----------------------. .--------------. |
 .-------.           | | Network Access Server| |Firewall, etc.| |
 |User #2+-----------+ |       (NAS)          | '--------------' |
 '-------'           | '----------------------'                  |
                     |                      PEP                  |
                     '-------------------------------------------'</artwork>
          </artset>
        </figure>
        <t indent="0" pn="section-4.1-5">In reference to <xref target="arch" format="default" sectionFormat="of" derivedContent="Figure 1"/>, the following typical flow is experienced:</t>
        <dl indent="3" newline="false" spacing="normal" pn="section-4.1-6">
          <dt pn="section-4.1-6.1">Step 1:</dt>
          <dd pn="section-4.1-6.2">
            <t indent="0" pn="section-4.1-6.2.1">Administrators (or a service orchestrator) configure an SDN
controller with network-level ACLs using the YANG module defined
in <xref target="sec-UCL" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. An example is provided in <xref target="controller-ucl" format="default" sectionFormat="of" derivedContent="Appendix A.1"/>.</t>
          </dd>
          <dt pn="section-4.1-6.3">Step 2:</dt>
          <dd pn="section-4.1-6.4">
            <t indent="0" pn="section-4.1-6.4.1">When a user first logs onto the network, they are
   required to be authenticated (e.g., using a username and password)
   at the NAS.</t>
          </dd>
          <dt pn="section-4.1-6.5">Step 3:</dt>
          <dd pn="section-4.1-6.6">
            <t indent="0" pn="section-4.1-6.6.1">The authentication request is then relayed to the AAA server
   using a protocol such as RADIUS <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>. It is assumed that the
   AAA server has been appropriately configured to store user credentials,
   e.g., username, password, group information, and other user attributes.
   This document does not restrict what authentication method is used. Administrators
   may refer to, e.g., <xref section="7.4" sectionFormat="of" target="I-D.ietf-radext-deprecating-radius" format="default" derivedLink="https://datatracker.ietf.org/doc/html/draft-ietf-radext-deprecating-radius-10#section-7.4" derivedContent="RADIUS-DEPRECATE"/>
   for authentication method recommendations.</t>
            <t indent="0" pn="section-4.1-6.6.2">If the authentication request succeeds, the user is placed in a
    user group with the identifier returned to the NAS
    as the authentication result (see <xref target="sec-radius" format="default" sectionFormat="of" derivedContent="Section 6"/>).
    If the authentication fails, the user is not assigned any user
    group, which also means that the user has no access (i.e., an Access-Reject is returned) or the user
    is assigned a special group with very limited access permissions
    for the network (as a function of the local policy). ACLs are
    enforced so that flows from the user's IP address are discarded
    (or rate-limited) by the network.</t>
          </dd>
          <dt pn="section-4.1-6.7"/>
          <dd pn="section-4.1-6.8">
            <t indent="0" pn="section-4.1-6.8.1">In some implementations, the AAA server can be integrated with the SDN controller.</t>
          </dd>
          <dt pn="section-4.1-6.9">Step 4:</dt>
          <dd pn="section-4.1-6.10">
            <t indent="0" pn="section-4.1-6.10.1">Either the AAA server or the NAS notifies the SDN controller
   of the mapping between the user group ID and related common packet
   header attributes (e.g., the 5-tuple). The exact details of how such notification is performed are out of scope of this specification.</t>
          </dd>
          <dt pn="section-4.1-6.11">Step 5:</dt>
          <dd pn="section-4.1-6.12">
            <t indent="0" pn="section-4.1-6.12.1">Either group-based access control policies or access control policies
   based on packet header fields are maintained on relevant PEPs under
   the SDN controller's management.
   Both types of ACL policy may exist on
   the PEP. Appendices <xref target="PEP-ucl" format="counter" sectionFormat="of" derivedContent="A.2"/> and <xref target="PEP-acl" format="counter" sectionFormat="of" derivedContent="A.3"/> elaborate on each case.</t>
          </dd>
        </dl>
        <t indent="0" pn="section-4.1-7">A similar flow applies to policy management based on other endpoint group types, such as device or application groups,
except that the mapping between the group ID and related common packet
header attributes (e.g., 5-tuple) may be maintained on the SDN controller based on an inventory or an application registry. Particularly, the use of RADIUS exchanges is not required in such cases (<xref target="sec-radius" format="default" sectionFormat="of" derivedContent="Section 6"/>).</t>
        <t indent="0" pn="section-4.1-8"><xref target="implement-considerations" format="default" sectionFormat="of" derivedContent="Section 8"/> provides additional operational considerations.</t>
      </section>
      <section anchor="endpoint-group" numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-endpoint-group">Endpoint Group</name>
        <section anchor="sec-ug" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.1">
          <name slugifiedName="name-user-group">User Group</name>
          <t indent="0" pn="section-4.2.1-1">A user group is determined by a set of predefined policy criteria
   (e.g., source IP address, geolocation data, time of day, or device certificate).
   It uses an identifier (user group ID) to represent the collective identity of
   a group of users. Users may be moved to different user groups if there is a change in their
   composite attributes, environment, and/or local enterprise policy.</t>
          <t indent="0" pn="section-4.2.1-2">A user is authenticated, classified at the AAA server, and
   assigned to a user group.  A user's group membership may change as
   aspects of the user change.  For example, if the user group
   membership is determined solely by the source IP address, then a
   given user's group ID will change when the user is assigned a new
   IP address that falls outside of the range of addresses of the
   previous user group.</t>
          <t indent="0" pn="section-4.2.1-3">This document does not make any assumption about how user groups are
   defined.  Such considerations are deployment-specific and are out of
   scope.  However, and for illustration purposes, <xref target="ug-example" format="default" sectionFormat="of" derivedContent="Table 1"/> shows
   an example of how user group definitions may be characterized. User
   groups may share several common criteria.  That is, user group
   criteria are not mutually exclusive.  For example, the policy
   criteria of the user groups R&amp;D Regular and R&amp;D BYOD may share the same
   set of users that belong to the R&amp;D organization but differ only in
   the type of clients (corporate-issued clients vs. users' personal
   clients).  Likewise, the same user may be assigned to different user
   groups depending on the time of day or the type of day (e.g.,
   weekdays versus weekends), etc.</t>
          <table anchor="ug-example" align="center" pn="table-1">
            <name slugifiedName="name-user-group-examples">User Group Examples</name>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Group Name</th>
                <th align="left" colspan="1" rowspan="1">Group ID</th>
                <th align="left" colspan="1" rowspan="1">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">R&amp;D Regular</td>
                <td align="left" colspan="1" rowspan="1">foo-10</td>
                <td align="left" colspan="1" rowspan="1">R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">R&amp;D BYOD</td>
                <td align="left" colspan="1" rowspan="1">foo-11</td>
                <td align="left" colspan="1" rowspan="1">Personal devices of R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">Sales</td>
                <td align="left" colspan="1" rowspan="1">foo-20</td>
                <td align="left" colspan="1" rowspan="1">Sales employees</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">VIP</td>
                <td align="left" colspan="1" rowspan="1">foo-30</td>
                <td align="left" colspan="1" rowspan="1">VIP employees</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-dg" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.2">
          <name slugifiedName="name-device-group">Device Group</name>
          <t indent="0" pn="section-4.2.2-1">A device group ID is an identifier that represents the collective
   identity of a group of enterprise devices.
   <xref target="dg-example" format="default" sectionFormat="of" derivedContent="Table 2"/> shows an example
   of how device group definitions may be characterized.</t>
          <table anchor="dg-example" align="center" pn="table-2">
            <name slugifiedName="name-device-group-examples">Device Group Examples</name>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Group Name</th>
                <th align="left" colspan="1" rowspan="1">Group ID</th>
                <th align="left" colspan="1" rowspan="1">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">Workflow</td>
                <td align="left" colspan="1" rowspan="1">bar-40</td>
                <td align="left" colspan="1" rowspan="1">Workflow resource servers</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">R&amp;D Resource</td>
                <td align="left" colspan="1" rowspan="1">bar-50</td>
                <td align="left" colspan="1" rowspan="1">R&amp;D resource servers</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">Printer Resource</td>
                <td align="left" colspan="1" rowspan="1">bar-60</td>
                <td align="left" colspan="1" rowspan="1">Printer resources</td>
              </tr>
            </tbody>
          </table>
          <t indent="0" pn="section-4.2.2-3">Matching abstract device group IDs instead of specified addresses in
   ACL policies helps shield the consequences of address changes (e.g.,
   back-end VM-based server migration).</t>
        </section>
        <section anchor="sec-ag" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.3">
          <name slugifiedName="name-application-group">Application Group</name>
          <t indent="0" pn="section-4.2.3-1">An application group is a collection of applications that share common access control policies.
   A device may run multiple applications, and different policies might need to be
   applied to the applications and device. A single application may need to run on
   multiple devices/VMs/containers; the abstraction of an application group eases the
   process of application migration. For example, the policy does not depend on the transport coordinates (i.e., 5-tuple).
   <xref target="ag-example" format="default" sectionFormat="of" derivedContent="Table 3"/> shows an example of how application group definitions may be characterized.</t>
          <table anchor="ag-example" align="center" pn="table-3">
            <name slugifiedName="name-application-group-examples">Application Group Examples</name>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Group Name</th>
                <th align="left" colspan="1" rowspan="1">Group ID</th>
                <th align="left" colspan="1" rowspan="1">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">Audio/Video Streaming</td>
                <td align="left" colspan="1" rowspan="1">baz-70</td>
                <td align="left" colspan="1" rowspan="1">Audio/Video conferencing application</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">Instant Messaging</td>
                <td align="left" colspan="1" rowspan="1">baz-80</td>
                <td align="left" colspan="1" rowspan="1">Messaging application</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">Document Collaboration</td>
                <td align="left" colspan="1" rowspan="1">baz-90</td>
                <td align="left" colspan="1" rowspan="1">Real-time document editing application</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="relations-between-different-endpoint-groups" numbered="true" removeInRFC="false" toc="include" pn="section-4.3">
        <name slugifiedName="name-relations-between-different">Relations Between Different Endpoint Groups</name>
        <t indent="0" pn="section-4.3-1">Policy enforcement can be targeted to different endpoint groups in different scenarios.
  For example, when a user connects to the network and accesses an application hosted on one or multiple devices, access policies may be applied to different user groups.
  In some cases, applications and devices may operate and run without requiring any user interventions,
  or they may require user authentication, but access rules do not differentiate between different users.
  This enables policies to be applied to the application or device group.
  A device group can be used when there is only one single application running on the device
  or different applications running but with the same access control rules.
  If there is an application running on different devices/VMs/containers, it is simpler
  to apply a single policy to the application group.</t>
      </section>
    </section>
    <section anchor="the-ucl-extension-to-the-acl-module" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-the-ucl-extension-to-the-ac">The UCL Extension to the ACL Module</name>
      <section anchor="module-overview" numbered="true" removeInRFC="false" toc="include" pn="section-5.1">
        <name slugifiedName="name-module-overview">Module Overview</name>
        <t indent="0" pn="section-5.1-1">This module specifies an extension to the "ietf-access-control-list" module <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/>. This extension adds
   endpoint groups so that an endpoint group identifier can be matched upon, and it also
   enables access control policy activation based on date and time conditions.</t>
        <t indent="0" pn="section-5.1-2"><xref target="ucl-tree" format="default" sectionFormat="of" derivedContent="Figure 2"/> provides the tree structure of the "ietf-ucl-acl" module.</t>
        <figure anchor="ucl-tree" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-tree-structure-of-the-ietf-">Tree Structure of the "ietf-ucl-acl" Module</name>
          <sourcecode type="yangtree" markers="false" pn="section-5.1-3.1">
module: ietf-ucl-acl

  augment /acl:acls:
    +--rw endpoint-groups {ucl:group}?
       +--rw endpoint-group* [group-id]
          +--rw group-id      string
          +--rw group-type?   identityref
  augment /acl:acls/acl:acl/acl:aces/acl:ace/acl:matches:
    +--rw endpoint-group {ucl:match-on-group}?
       +--rw source-group-id?        group-id-reference
       +--rw destination-group-id?   group-id-reference
  augment /acl:acls/acl:acl/acl:aces/acl:ace:
    +--rw effective-schedule {ucl:schedule}?
       +--rw (schedule-type)?
          +--:(period)
          |  +--rw period
          |     +--rw period-description?     string
          |     +--rw period-start?           yang:date-and-time
          |     +--rw time-zone-identifier?   sys:timezone-name
          |     +--rw (period-type)?
          |        +--:(explicit)
          |        |  +--rw period-end?       yang:date-and-time
          |        +--:(duration)
          |           +--rw duration?         duration
          +--:(recurrence)
             +--rw recurrence {schedule:icalendar-recurrence}?
                +--rw recurrence-first
                |  +--rw start-time?   yang:date-and-time
                |  +--rw duration?     duration
                +--rw time-zone-identifier?     sys:timezone-name
                +--rw (recurrence-end)?
                |  +--:(until)
                |  |  +--rw until?              yang:date-and-time
                |  +--:(count)
                |     +--rw count?              uint32
                +--rw recurrence-description?   string
                +--rw frequency?                identityref
                +--rw interval?                 uint32
                +--rw period* [period-start]
                |  +--rw period-description?     string
                |  +--rw period-start            yang:date-and-time
                |  +--rw time-zone-identifier?   sys:timezone-name
                |  +--rw (period-type)?
                |     +--:(explicit)
                |     |  +--rw period-end?       yang:date-and-time
                |     +--:(duration)
                |        +--rw duration?         duration
                +--rw bysecond*                 uint32
                +--rw byminute*                 uint32
                +--rw byhour*                   uint32
                +--rw byday* [weekday]
                |  +--rw direction*   int32
                |  +--rw weekday      schedule:weekday
                +--rw bymonthday*               int32
                +--rw byyearday*                int32
                +--rw byyearweek*               int32
                +--rw byyearmonth*              uint32
                +--rw bysetpos*                 int32
                +--rw workweek-start?           schedule:weekday
                +--rw exception-dates*          yang:date-and-time</sourcecode>
        </figure>
        <t indent="0" pn="section-5.1-4">The first part of the "ietf-ucl-acl" module augments the "acls" container in the
   "ietf-access-control-list" module <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/> with an "endpoint-groups" container
   that includes an "endpoint-group" list, where each entry has a "group-id" that uniquely
   identifies the endpoint group and a "group-type" parameter to specify the endpoint group type.</t>
        <t indent="3" pn="section-5.1-5">"group-id" is defined as a string rather than an unsigned integer (e.g., uint32) to accommodate deployments that require some identification hierarchy within a domain. Such a hierarchy is meant to ease coordination within an administrative domain. There might be cases where a domain needs to tag packets with the group they belong to. The tagging does not need to mirror exactly the "group ID" used to populate the policy. How the "group-id" string is mapped to the tagging or field in the packet header in an encapsulation scenario is outside the scope of this document. Augmentation may be considered in the future to cover encapsulation considerations.</t>
        <t indent="0" pn="section-5.1-6">The second part of the "ietf-ucl-acl" module augments the "matches" container in the
   "ietf-access-control-list" module <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/> so that a source and/or destination endpoint group ID
   can be referenced as the match criteria.</t>
        <t indent="0" pn="section-5.1-7">The third part of the module augments the "ace" list in the "ietf-access-control-list"
   module <xref target="RFC8519" format="default" sectionFormat="of" derivedContent="RFC8519"/> with date- and time-specific parameters to allow an ACE to be
   activated based on a date/time condition. Two types of time ranges ("period" and "recurrence") are defined,
   which reuse the "period-of-time" and "icalendar-recurrence" groupings, respectively, defined in the "ietf-schedule"
   YANG module <xref target="RFC9922" format="default" sectionFormat="of" derivedContent="RFC9922"/>.</t>
      </section>
      <section anchor="sec-UCL" numbered="true" removeInRFC="false" toc="include" pn="section-5.2">
        <name slugifiedName="name-the-ietf-ucl-acl-yang-modul">The "ietf-ucl-acl" YANG Module</name>
        <t indent="0" pn="section-5.2-1">This module imports types and groupings defined in the "ietf-schedule" module
   <xref target="RFC9922" format="default" sectionFormat="of" derivedContent="RFC9922"/>. It also augments the "ietf-access-control-list" module (<xref section="4.1" sectionFormat="of" target="RFC8519" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8519#section-4.1" derivedContent="RFC8519"/>).</t>
        <sourcecode name="ietf-ucl-acl@2026-10-07.yang" type="yang" markers="true" pn="section-5.2-2">
module ietf-ucl-acl {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ucl-acl";
  prefix ucl;

  import ietf-access-control-list {
    prefix acl;
    reference
      "RFC 8519: YANG Data Model for Network Access
                 Control Lists (ACLs)";
  }
  import ietf-schedule {
    prefix schedule;
    reference
      "RFC 9922: A Common YANG Data Model for Scheduling";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:  https://datatracker.ietf.org/wg/opsawg
     WG List: OPSAWG &lt;mailto:opsawg@ietf.org&gt;

     Editor:   Qiufang Ma
               &lt;mailto:maqiufang1@huawei.com&gt;
     Author:   Qin Wu
               &lt;mailto:bill.wu@huawei.com&gt;
     Editor:   Mohamed Boucadair
               &lt;mailto:mohamed.boucadair@orange.com&gt;
     Author:   Daniel King
               &lt;mailto:d.king@lancaster.ac.uk&gt;";
  description
    "The User-group-based Control List (UCL) YANG module augments
     the IETF Access Control Lists (ACLs) module.  UCL is meant
     to ensure consistent enforcement of ACL policies based on
     the group identity.

     Copyright (c) 2026 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).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC 10065; see
     the RFC itself for full legal notices.";

  revision 2026-10-07 {
    description
      "Initial revision.";
    reference
      "RFC 10065: A YANG Data Model and RADIUS Extension for
                  Policy-Based Network Access Control";
  }

  feature schedule {
    description
      "Indicates support of schedule-based Access Control
       Entries (ACEs).";
  }

  feature match-on-group {
    description
      "Indicates support of matching on endpoint groups.";
  }

  feature group {
    if-feature "ucl:match-on-group";
    description
      "Indicates support of group-based ACLs.";
  }

  feature mixed-ipv4-group {
    if-feature "acl:match-on-ipv4 and ucl:match-on-group";
    description
      "IPv4 and group ACL combinations supported.";
  }

  feature mixed-ipv6-group {
    if-feature "acl:match-on-ipv6 and ucl:match-on-group";
    description
      "IPv6 and group ACL combinations supported.";
  }

  feature mixed-ipv4-ipv6-group {
    if-feature "acl:match-on-ipv4 and acl:match-on-ipv6 and "
             + "ucl:match-on-group";
    description
      "IPv4, IPv6, and group ACL combinations supported.";
  }

  feature mixed-eth-group {
    if-feature "acl:match-on-eth and ucl:match-on-group";
    description
      "Ethernet and group ACL combinations supported.";
  }

  feature mixed-eth-ipv4-group {
    if-feature "acl:match-on-eth and acl:match-on-ipv4 and "
             + "ucl:match-on-group";
    description
      "Ethernet, IPv4, and group ACL combinations supported.";
  }

  feature mixed-eth-ipv6-group {
    if-feature "acl:match-on-eth and acl:match-on-ipv6 and "
             + "ucl:match-on-group";
    description
      "Ethernet, IPv6, and group ACL combinations supported.";
  }

  feature mixed-eth-ipv4-ipv6-group {
    if-feature "acl:match-on-eth and acl:match-on-ipv4 and "
             + "acl:match-on-ipv6 and ucl:match-on-group";
    description
      "Ethernet, IPv4, IPv6, and group ACL combinations supported.";
  }

  identity group-acl-type {
    if-feature "group";
    base acl:acl-base;
    description
      "An ACL that matches based on an endpoint group identifier,
       which can represent the collective identity of a group of
       authenticated users, end devices, or applications.  An
       endpoint group identifier may be carried in the outer/inner
       packet header (e.g., via Network Virtualization over Layer 3
       (NVO3) encapsulation) or may not correspond to any field in
       the packet header.  Matching on Layer 4 header fields may
       also exist in the ACEs.";
  }

  identity mixed-ipv4-group-type {
    if-feature "mixed-ipv4-group";
    base acl:ipv4-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv4 header and endpoint group identifiers, which can
       represent the collective identity of a group of authenticated
       users, end devices, or applications.  Matching on Layer 4
       header fields may also exist in the ACEs.";
  }

  identity mixed-ipv6-group-type {
    if-feature "mixed-ipv6-group";
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv6 header and endpoint group identifiers, which can
       represent the collective identity of a group of authenticated
       users, end devices, or applications.  Matching on Layer 4
       header fields may also exist in the ACEs.";
  }

  identity mixed-ipv4-ipv6-group-type {
    if-feature "mixed-ipv4-ipv6-group";
    base acl:ipv4-acl-type;
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv4 header, IPv6 header, and endpoint group
       identifiers, which can represent the collective identity of
       a group of authenticated users, end devices, or applications.
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }

  identity mixed-eth-group-type {
    if-feature "mixed-eth-group";
    base acl:eth-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header and endpoint group identifiers,
       which can represent the collective identity of a group of
       authenticated users, end devices, or applications.  Matching
       on Layer 4 header fields may also exist in the ACEs.";
  }

  identity mixed-eth-ipv4-group-type {
    if-feature "mixed-eth-ipv4-group";
    base acl:eth-acl-type;
    base acl:ipv4-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv4 header, and endpoint group
       identifiers, which can represent the collective identity of
       a group of authenticated users, end devices, or applications.
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }

  identity mixed-eth-ipv6-group-type {
    if-feature "mixed-eth-ipv6-group";
    base acl:eth-acl-type;
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv6 header, and endpoint group
       identifiers, which can represent the collective identity of
       a group of authenticated users, end devices, or applications.
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }

  identity mixed-eth-ipv4-ipv6-group-type {
    if-feature "mixed-eth-ipv4-ipv6-group";
    base acl:eth-acl-type;
    base acl:ipv4-acl-type;
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv4 header, IPv6 header, and
       endpoint group identifiers, which can represent the collective
       identity of a group of authenticated users, end devices, or
       applications.  Matching on Layer 4 header fields may also
       exist in the ACEs.";
  }

  identity endpoint-group-type {
    description
      "Identity for the type of endpoint group.";
  }

  identity user-group {
    base ucl:endpoint-group-type;
    description
      "Indicates user endpoint group type.";
  }

  identity device-group {
    base ucl:endpoint-group-type;
    description
      "Indicates device endpoint group type.";
  }

  identity application-group {
    base ucl:endpoint-group-type;
    description
      "Indicates application endpoint group type.";
  }

  typedef group-id-reference {
    type leafref {
      path "/acl:acls/ucl:endpoint-groups"
         + "/ucl:endpoint-group/ucl:group-id";
    }
    description
      "Defines a reference to a group identifier.";
  }

  augment "/acl:acls" {
    if-feature "ucl:group";
    description
      "Adds a container for endpoint group definition.";
    container endpoint-groups {
      description
        "Defines a container for the endpoint group list.";
      list endpoint-group {
        key "group-id";
        description
          "Definition of the endpoint group list.";
        leaf group-id {
          type string {
            length "1..64";
          }
          description
            "The endpoint group identifier that uniquely identifies
             an endpoint group.";
        }
        leaf group-type {
          type identityref {
            base endpoint-group-type;
          }
          description
            "Specifies the type of the endpoint group (e.g., user,
             device, or application).  When not configured, the
             group is considered a generic or untyped endpoint
             group.";
        }
      }
    }
  }

  augment "/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches" {
    if-feature "ucl:match-on-group";
    description
      "Specifies how a source and/or destination endpoint group
       ID can be referenced as the match criteria in the ACEs.";
    container endpoint-group {
      when "derived-from-or-self(/acl:acls/acl:acl/acl:type, "
         + "'ucl:group-acl-type')";
      description
        "Adds new match criteria based on the group identifier
         associated with the packet's source and/or
         destination endpoint.

         Note that this container is only valid when the ACL
         type is equal to or derived from 'group-acl-type',
         which depends on the 'group' feature.  That is,
         implementations advertising 'match-on-group' need to
         also support the 'group' feature to ensure the
         validity of this container.";
      leaf source-group-id {
        type group-id-reference;
        description
          "The matched source endpoint group identifier.";
      }
      leaf destination-group-id {
        type group-id-reference;
        description
          "The matched destination endpoint group identifier.";
      }
    }
  }

  augment "/acl:acls/acl:acl/acl:aces/acl:ace" {
    if-feature "ucl:schedule";
    description
      "Adds schedule parameters to allow the ACE to take effect
       based on date and time.";
    container effective-schedule {
      description
        "Defines when the access control entry rules
         are applied based on date and time conditions.
         If it is not configured, the ACE is immediately
         and always applied.";
      choice schedule-type {
        description
          "Choice based on the type of the time range.";
        container period {
          description
            "The ACE is applied based on a precise period of
             time.";
          uses schedule:period-of-time;
        }
        container recurrence {
          if-feature "schedule:icalendar-recurrence";
          description
            "The ACE is applied based on a recurrence rule.";
          uses schedule:icalendar-recurrence;
        }
      }
    }
  }
}</sourcecode>
      </section>
    </section>
    <section anchor="sec-radius" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-user-access-group-id-radius">User-Access-Group-ID RADIUS Attribute</name>
      <t indent="0" pn="section-6-1">This section defines the User-Access-Group-ID RADIUS attribute, which is designed for user-centric access control scenarios where network access is triggered by user authentication and used to indicate the user group ID to be used by the NAS.
For other endpoint group types, such as device or application groups, the identifiers are typically preprovisioned
on the SDN controller based on an inventory or an application registry.</t>
      <t indent="0" pn="section-6-2">The definition of the attribute
follows the guidelines in <xref section="2.7.1" sectionFormat="of" target="RFC6929" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6929#section-2.7.1" derivedContent="RFC6929"/>. When
the User-Access-Group-ID RADIUS attribute is present in the RADIUS
Access-Accept, the system applies the related access control to the
user after the user authenticates.</t>
      <t indent="0" pn="section-6-3">The User-Access-Group-ID RADIUS attribute is of type "string" as defined in
<xref section="3.5" sectionFormat="of" target="RFC8044" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8044#section-3.5" derivedContent="RFC8044"/>.</t>
      <t indent="0" pn="section-6-4">The User-Access-Group-ID RADIUS attribute <bcp14>MAY</bcp14> appear in a RADIUS
Access-Accept packet.  It <bcp14>MAY</bcp14> also appear in a RADIUS Access-Request packet
as a hint to the RADIUS server to indicate a preference.  However,
the server is not required to honor such a preference. If more than
one instance of the User-Access-Group-ID RADIUS attribute appears in a RADIUS
Access-Accept packet, it means that the user is a member of many groups.</t>
      <t indent="0" pn="section-6-5">The User-Access-Group-ID RADIUS attribute <bcp14>MAY</bcp14> appear in a RADIUS CoA-Request
packet.</t>
      <t indent="0" pn="section-6-6">The User-Access-Group-ID RADIUS attribute <bcp14>MAY</bcp14> appear in a RADIUS Accounting-Request
packet. Specifically, this may be used by a NAS to acknowledge that the attribute
was received in the RADIUS Access-Accept and the NAS is enforcing that policy.</t>
      <t indent="0" pn="section-6-7">The User-Access-Group-ID RADIUS attribute <bcp14>MUST NOT</bcp14> appear in any other
RADIUS packet.</t>
      <t indent="0" pn="section-6-8">The User-Access-Group-ID RADIUS attribute is structured as follows:</t>
      <dl newline="false" indent="3" spacing="normal" pn="section-6-9">
        <dt pn="section-6-9.1">Type:</dt>
        <dd pn="section-6-9.2">
          <t indent="0" pn="section-6-9.2.1">241.12</t>
        </dd>
        <dt pn="section-6-9.3">Length:</dt>
        <dd pn="section-6-9.4">
          <t indent="0" pn="section-6-9.4.1">This field indicates the total length, in octets, of all fields of
   this attribute, including the Type, Length, Extended-Type, and
   Value. The Length <bcp14>MUST</bcp14> at least 4 octets and <bcp14>MUST NOT</bcp14> be more than 67 octets. The maximum length is 67 octets to accommodate the maximum group ID of 64 octets, plus one octet each for Type, Length, and Extended-Type.</t>
        </dd>
        <dt pn="section-6-9.5">Data Type:</dt>
        <dd pn="section-6-9.6">
          <t indent="0" pn="section-6-9.6.1">string (<xref section="3.5" sectionFormat="of" target="RFC8044" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8044#section-3.5" derivedContent="RFC8044"/>).</t>
        </dd>
        <dt pn="section-6-9.7">Value:</dt>
        <dd pn="section-6-9.8">
          <t indent="0" pn="section-6-9.8.1">This field contains the user group ID.</t>
        </dd>
      </dl>
    </section>
    <section anchor="radius-attributes" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-table-of-radius-attributes">Table of RADIUS Attributes</name>
      <t indent="0" pn="section-7-1"><xref target="rad-att" format="default" sectionFormat="of" derivedContent="Table 4"/> provides a guide that indicates which types of RADIUS packets
   may contain a User-Access-Group-ID RADIUS attribute and in what
   quantity.</t>
      <table anchor="rad-att" align="center" pn="table-4">
        <name slugifiedName="name-table-of-attributes">Table of Attributes</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Access-Request</th>
            <th align="left" colspan="1" rowspan="1">Access-Accept</th>
            <th align="left" colspan="1" rowspan="1">Access-Reject</th>
            <th align="left" colspan="1" rowspan="1">Access-Challenge</th>
            <th align="left" colspan="1" rowspan="1">Attribute</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">0+</td>
            <td align="left" colspan="1" rowspan="1">0+</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">User-Access-Group-ID</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Accounting-Request</td>
            <td align="left" colspan="1" rowspan="1">CoA-Request</td>
            <td align="left" colspan="1" rowspan="1">CoA-ACK</td>
            <td align="left" colspan="1" rowspan="1">CoA-NACK</td>
            <td align="left" colspan="1" rowspan="1">Attribute</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">0+</td>
            <td align="left" colspan="1" rowspan="1">0+</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">User-Access-Group-ID</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-7-3">Notation for <xref target="rad-att" format="default" sectionFormat="of" derivedContent="Table 4"/>:</t>
      <dl indent="3" newline="false" spacing="normal" pn="section-7-4">
        <dt pn="section-7-4.1">0</dt>
        <dd pn="section-7-4.2">
          <t indent="0" pn="section-7-4.2.1">This attribute <bcp14>MUST NOT</bcp14> be present in the packet.</t>
        </dd>
        <dt pn="section-7-4.3">0+</dt>
        <dd pn="section-7-4.4">
          <t indent="0" pn="section-7-4.4.1">Zero or more instances of this attribute <bcp14>MAY</bcp14> be present in the packet.</t>
        </dd>
      </dl>
    </section>
    <section anchor="implement-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <section anchor="deployment-options" numbered="true" removeInRFC="false" toc="include" pn="section-8.1">
        <name slugifiedName="name-deployment-options">Deployment Options</name>
        <t indent="0" pn="section-8.1-1">The UCL data model can be implemented in different ways.</t>
        <t indent="0" pn="section-8.1-2">In some cases, the UCL data model is implemented at the network/administrative domain
   level, where an SDN controller maintains the dynamic mapping from an endpoint
   group ID to IP/transport fields (e.g., the 5-tuple) and programs the PEPs with
   IP-address-based or 5-tuple-based ACLs. In such cases, PEPs do not require implementing
   specific logic (including hardware) compared to the enforcement of conventional ACLs.</t>
        <t indent="0" pn="section-8.1-3">It is possible for the UCL data model to be implemented at the device level.
   While it eliminates the need for an SDN controller to interact frequently
   with the PEPs for reasons like the user's context of network connection change
   or VM/application migration, dedicated hardware/software support might be needed
   for PEPs to understand the endpoint group identifier. In scenarios where the NAS
   behaves as the PEP that acquires the source and/or destination endpoint group
   ID from the AAA server, ACL policy enforcement based on the group ID without
   being encapsulated into packet headers might affect the forwarding performance.
   Implementations need to evaluate the operational trade-off (flexibility brought
   to the network vs. the complexity of implementation) carefully. Such an assessment
   is out of scope for this document.</t>
      </section>
      <section anchor="hardwaresoftware-implications" numbered="true" removeInRFC="false" toc="include" pn="section-8.2">
        <name slugifiedName="name-hardware-software-implicati">Hardware/Software Implications</name>
        <t indent="0" pn="section-8.2-1">Some devices may not have built-in capabilities to enforce group-based match policies.
   Hardware or software upgrades may be required to support such features by the involved PEPs.</t>
      </section>
      <section anchor="mapping-consistency" numbered="true" removeInRFC="false" toc="include" pn="section-8.3">
        <name slugifiedName="name-mapping-consistency">Mapping Consistency</name>
        <t indent="0" pn="section-8.3-1">This specification requires that an adequate setup is put in place to map a group ID to packet
   fields, typically managed by a controller. Special care should be taken
   to ensure that such mapping is appropriately enforced when distinct
   mechanisms (RADIUS, etc.) are supported in the network.</t>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <section anchor="yang" numbered="true" removeInRFC="false" toc="include" pn="section-9.1">
        <name slugifiedName="name-yang">YANG</name>
        <t indent="0" pn="section-9.1-1">This section is modeled after the template described in <xref section="3.7.1" sectionFormat="of" target="RFC9907" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9907#section-3.7.1" derivedContent="RFC9907"/>.</t>
        <t indent="0" pn="section-9.1-2">The "ietf-ucl-acl" YANG module defines a data model
   that is designed to be accessed via YANG-based management protocols, such
   as the Network Configuration Protocol (NETCONF) <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> and RESTCONF <xref target="RFC8040" format="default" sectionFormat="of" derivedContent="RFC8040"/>. These YANG-based management
   protocols (1) have to use a secure transport layer (e.g., Secure Shell (SSH) <xref target="RFC4252" format="default" sectionFormat="of" derivedContent="RFC4252"/>, TLS <xref target="RFC9846" format="default" sectionFormat="of" derivedContent="RFC9846"/>, and
   QUIC <xref target="RFC9000" format="default" sectionFormat="of" derivedContent="RFC9000"/>) and (2) have to use mutual authentication.</t>
        <t indent="0" pn="section-9.1-3">The Network Configuration Access Control Model (NACM) <xref target="RFC8341" format="default" sectionFormat="of" derivedContent="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 indent="0" pn="section-9.1-4">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).  All writable data nodes are likely to be 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.  The following subtrees and data nodes
   have particular sensitivities/vulnerabilities:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.1-5">
          <li pn="section-9.1-5.1">
            <t indent="0" pn="section-9.1-5.1.1">/acl:acls/ucl:endpoint-groups/ucl:endpoint-group:</t>
            <t indent="0" pn="section-9.1-5.1.2">This list specifies all the endpoint group entries. Unauthorized write access to this
list can allow intruders to modify the entries so as to forge an endpoint
group that does not exist or maliciously delete an existing endpoint group,
which could be used to craft an attack.</t>
          </li>
          <li pn="section-9.1-5.2">
            <t indent="0" pn="section-9.1-5.2.1">/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches/ucl:endpoint-group:</t>
            <t indent="0" pn="section-9.1-5.2.2">This subtree specifies a source and/or destination endpoint group ID as match criteria in the
ACEs. Unauthorized write access to this data node may allow intruders to
modify the group ID so as to permit access that should not be
permitted, or deny access that should be permitted.</t>
          </li>
          <li pn="section-9.1-5.3">
            <t indent="0" pn="section-9.1-5.3.1">/acl:acls/acl:acl/acl:aces/acl:ace/ucl:effective-schedule:</t>
            <t indent="0" pn="section-9.1-5.3.2">It specifies the scheduling of ACLs. Unauthorized write access to this data node may allow intruders to
alter it. This may lead to service disruption or unavailability. Strict access control is needed for write operations on this subtree to ensure that only authorized users can modify it.</t>
          </li>
        </ul>
        <t indent="0" pn="section-9.1-6">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. Specifically, the following
   subtrees and data nodes have particular sensitivities/
   vulnerabilities:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.1-7">
          <li pn="section-9.1-7.1">
            <t indent="0" pn="section-9.1-7.1.1">/acl:acls/acl:acl/acl:aces/acl:ace/ucl:effective-schedule:</t>
            <t indent="0" pn="section-9.1-7.1.2">It specifies when the access control entry rules are applied. 
Unauthorized read access of the list will allow an attacker to determine
which rules are applied, to better craft an attack.</t>
          </li>
        </ul>
        <t indent="0" pn="section-9.1-8">
This YANG module uses groupings from other YANG modules that define nodes that may be 
considered sensitive or vulnerable in network environments. Refer to the Security 
Considerations of <xref target="RFC9922" format="default" sectionFormat="of" derivedContent="RFC9922"/> for information as to which nodes may be considered
sensitive or vulnerable in network environments.  
</t>
      </section>
      <section anchor="radius" numbered="true" removeInRFC="false" toc="include" pn="section-9.2">
        <name slugifiedName="name-radius">RADIUS</name>
        <t indent="0" pn="section-9.2-1">RADIUS-related security considerations are discussed in <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>.
   An effort to deprecate insecure practices in RADIUS is provided in <xref target="I-D.ietf-radext-deprecating-radius" format="default" sectionFormat="of" derivedContent="RADIUS-DEPRECATE"/>.</t>
        <t indent="0" pn="section-9.2-2">This document targets deployments where a trusted relationship is in
   place between the RADIUS client and server with communication
   optionally secured by IPsec or Transport Layer Security (TLS)
   <xref target="RFC6614" format="default" sectionFormat="of" derivedContent="RFC6614"/> <xref target="I-D.ietf-radext-radiusdtls-bis" format="default" sectionFormat="of" derivedContent="RadSec"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-10">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="yang-1" numbered="true" removeInRFC="false" toc="include" pn="section-10.1">
        <name slugifiedName="name-yang-2">YANG</name>
        <t indent="0" pn="section-10.1-1">IANA has assigned the following URI in the "ns" registry within the "IETF XML Registry" group <xref target="RFC3688" format="default" sectionFormat="of" derivedContent="RFC3688"/>:</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.1-2">
          <dt pn="section-10.1-2.1">URI:</dt>
          <dd pn="section-10.1-2.2">urn:ietf:params:xml:ns:yang:ietf-ucl-acl</dd>
          <dt pn="section-10.1-2.3">Registrant Contact:</dt>
          <dd pn="section-10.1-2.4">The IESG</dd>
          <dt pn="section-10.1-2.5">XML:</dt>
          <dd pn="section-10.1-2.6">N/A; the requested URI is an XML namespace.</dd>
        </dl>
        <t indent="0" pn="section-10.1-3">IANA has registered the following YANG module in the "YANG Module Names"
   registry <xref target="RFC6020" format="default" sectionFormat="of" derivedContent="RFC6020"/> within the "YANG Parameters" registry group:</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.1-4">
          <dt pn="section-10.1-4.1">Name:</dt>
          <dd pn="section-10.1-4.2">ietf-ucl-acl</dd>
          <dt pn="section-10.1-4.3">Maintained by IANA?</dt>
          <dd pn="section-10.1-4.4">N</dd>
          <dt pn="section-10.1-4.5">Namespace:</dt>
          <dd pn="section-10.1-4.6">urn:ietf:params:xml:ns:yang:ietf-ucl-acl</dd>
          <dt pn="section-10.1-4.7">Prefix:</dt>
          <dd pn="section-10.1-4.8">ucl</dd>
          <dt pn="section-10.1-4.9">Reference:</dt>
          <dd pn="section-10.1-4.10">RFC 10065</dd>
        </dl>
      </section>
      <section anchor="radius-1" numbered="true" removeInRFC="false" toc="include" pn="section-10.2">
        <name slugifiedName="name-radius-2">RADIUS</name>
        <t indent="0" pn="section-10.2-1">IANA has assigned the following attribute type in the
   "RADIUS Attribute Types" registry within the "RADIUS Types" registry group <xref target="RADIUS-Types" format="default" sectionFormat="of" derivedContent="RADIUS-Types"/>:</t>
        <table anchor="rad-reg" align="center" pn="table-5">
          <name slugifiedName="name-radius-attribute">RADIUS Attribute</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Data Type</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">241.12</td>
              <td align="left" colspan="1" rowspan="1">User-Access-Group-ID</td>
              <td align="left" colspan="1" rowspan="1">string</td>
              <td align="left" colspan="1" rowspan="1">RFC 10065</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-radext-deprecating-radius" to="RADIUS-DEPRECATE"/>
    <displayreference target="I-D.ietf-radext-radiusdtls-bis" to="RadSec"/>
    <displayreference target="I-D.smith-vxlan-group-policy" to="VXLAN"/>
    <displayreference target="I-D.you-i2nsf-user-group-based-policy" to="SECURITY-POLICY"/>
    <displayreference target="I-D.yizhou-anima-ip-to-access-control-groups" to="ID-MAPPING"/>
    <references anchor="sec-combined-references" pn="section-11">
      <name slugifiedName="name-references">References</name>
      <references anchor="sec-normative-references" pn="section-11.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC2865" target="https://www.rfc-editor.org/info/rfc2865" quoteTitle="true" derivedAnchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t indent="0">This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688" quoteTitle="true" derivedAnchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t indent="0">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" target="https://www.rfc-editor.org/info/rfc6020" quoteTitle="true" derivedAnchor="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 indent="0">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>
        <reference anchor="RFC6929" target="https://www.rfc-editor.org/info/rfc6929" quoteTitle="true" derivedAnchor="RFC6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <date month="April" year="2013"/>
            <abstract>
              <t indent="0">The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space. In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data. This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
        <reference anchor="RFC8044" target="https://www.rfc-editor.org/info/rfc8044" quoteTitle="true" derivedAnchor="RFC8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="January" year="2017"/>
            <abstract>
              <t indent="0">RADIUS specifications have used data types for two decades without defining them as managed entities. During this time, RADIUS implementations have named the data types and have used them in attribute definitions. This document updates the specifications to better follow established practice. We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865. We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute. Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice. This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8341" target="https://www.rfc-editor.org/info/rfc8341" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">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="RFC8519" target="https://www.rfc-editor.org/info/rfc8519" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC9922" target="https://www.rfc-editor.org/info/rfc9922" quoteTitle="true" derivedAnchor="RFC9922">
          <front>
            <title>A Common YANG Data Model for Scheduling</title>
            <author fullname="Q. Ma" initials="Q." role="editor" surname="Ma"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. King" initials="D." surname="King"/>
            <date month="March" year="2026"/>
            <abstract>
              <t indent="0">This document defines common types and groupings that are meant to be used for scheduling purposes, such as events, policies, services, or resources based on date and time. For the sake of better modularity, the YANG module includes a set of recurrence-related groupings with varying levels of representation (i.e., from basic to advanced) to accommodate a variety of requirements. It also defines groupings for validating requested schedules and reporting scheduling statuses.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9922"/>
          <seriesInfo name="DOI" value="10.17487/RFC9922"/>
        </reference>
      </references>
      <references anchor="sec-informative-references" pn="section-11.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.yizhou-anima-ip-to-access-control-groups" target="https://datatracker.ietf.org/doc/html/draft-yizhou-anima-ip-to-access-control-groups-02" quoteTitle="true" derivedAnchor="ID-MAPPING">
          <front>
            <title>Autonomic IP Address To Access Control Group ID Mapping</title>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author fullname="Li Shen" initials="L." surname="Shen">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author fullname="Yujing Zhou" initials="Y." surname="Zhou">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <date day="15" month="November" year="2021"/>
            <abstract>
              <t indent="0">This document defines the autonomic technical Objectives for IP address/prefix to access control group IDs mapping information. The Objectives defined can be used in Generic Autonomic Signaling Protocol (GRASP) to make the policy enforcement point receive IP address and its tied access control groups information directly from the access authentication points and facilitate the group based policy enforcement.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-yizhou-anima-ip-to-access-control-groups-02"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-radext-deprecating-radius" target="https://datatracker.ietf.org/doc/html/draft-ietf-radext-deprecating-radius-10" quoteTitle="true" derivedAnchor="RADIUS-DEPRECATE">
          <front>
            <title>Deprecating Insecure Practices in RADIUS</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization showOnFrontPage="true">InkBridge Networks</organization>
            </author>
            <date day="3" month="July" year="2026"/>
            <abstract>
              <t indent="0">RADIUS crypto-agility was first mandated as future work by RFC 6421. The outcome of that work was the publication of RADIUS over TLS (RFC 6614) and RADIUS over DTLS (RFC 7360) as experimental documents. Those transport protocols have been in wide-spread use for many years in a wide range of networks, and have recently been standardized in [I-D.ietf-radext-radiusdtls-bis]. TLS has proven to be a useful replacment for UDP (RFC 2865) and TCP (RFC 6613) transports. With that knowledge, the continued use of insecure transports for RADIUS has serious and negative implications for privacy and security. The publication of the "BlastRADIUS" exploit has also shown that RADIUS security needs to be updated. It is no longer acceptable for RADIUS to rely on MD5 for security. It is no longer acceptable to send device or location information in clear text across the wider Internet. This document therefore deprecates many insecure practices in RADIUS, and mandates support for secure TLS-based transport layers. Related security issues with RADIUS are discussed, and recommendations are made for practices which increase both security and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-10"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RADIUS-Types" target="https://www.iana.org/assignments/radius-types" quoteTitle="true" derivedAnchor="RADIUS-Types">
          <front>
            <title>RADIUS Types</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-radext-radiusdtls-bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-radext-radiusdtls-bis-18" quoteTitle="true" derivedAnchor="RadSec">
          <front>
            <title>RadSec: RADIUS over Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author initials="J." surname="Rieckers" fullname="Jan-Frederik Rieckers">
              <organization showOnFrontPage="true">Deutsches Forschungsnetz | German National Research and Education Network</organization>
            </author>
            <author initials="M." surname="Cullen" fullname="Margaret Cullen" role="editor">
              <organization showOnFrontPage="true">Painless Security</organization>
            </author>
            <author initials="S." surname="Winter" fullname="Stefan Winter">
              <organization showOnFrontPage="true">Fondation Restena | Restena Foundation</organization>
            </author>
            <date month="September" day="30" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-18"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC2475" target="https://www.rfc-editor.org/info/rfc2475" quoteTitle="true" derivedAnchor="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t indent="0">This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC2753" target="https://www.rfc-editor.org/info/rfc2753" quoteTitle="true" derivedAnchor="RFC2753">
          <front>
            <title>A Framework for Policy-based Admission Control</title>
            <author fullname="R. Yavatkar" initials="R." surname="Yavatkar"/>
            <author fullname="D. Pendarakis" initials="D." surname="Pendarakis"/>
            <author fullname="R. Guerin" initials="R." surname="Guerin"/>
            <date month="January" year="2000"/>
            <abstract>
              <t indent="0">This document is concerned with specifying a framework for providing policy-based control over admission control decisions. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2753"/>
          <seriesInfo name="DOI" value="10.17487/RFC2753"/>
        </reference>
        <reference anchor="RFC3022" target="https://www.rfc-editor.org/info/rfc3022" quoteTitle="true" derivedAnchor="RFC3022">
          <front>
            <title>Traditional IP Network Address Translator (Traditional NAT)</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="K. Egevang" initials="K." surname="Egevang"/>
            <date month="January" year="2001"/>
            <abstract>
              <t indent="0">The NAT operation described in this document extends address translation introduced in RFC 1631 and includes a new type of network address and TCP/UDP port translation. In addition, this document corrects the Checksum adjustment algorithm published in RFC 1631 and attempts to discuss NAT operation and limitations in detail. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3022"/>
          <seriesInfo name="DOI" value="10.17487/RFC3022"/>
        </reference>
        <reference anchor="RFC3198" target="https://www.rfc-editor.org/info/rfc3198" quoteTitle="true" derivedAnchor="RFC3198">
          <front>
            <title>Terminology for Policy-Based Management</title>
            <author fullname="A. Westerinen" initials="A." surname="Westerinen"/>
            <author fullname="J. Schnizlein" initials="J." surname="Schnizlein"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="M. Scherling" initials="M." surname="Scherling"/>
            <author fullname="B. Quinn" initials="B." surname="Quinn"/>
            <author fullname="S. Herzog" initials="S." surname="Herzog"/>
            <author fullname="A. Huynh" initials="A." surname="Huynh"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="J. Perry" initials="J." surname="Perry"/>
            <author fullname="S. Waldbusser" initials="S." surname="Waldbusser"/>
            <date month="November" year="2001"/>
            <abstract>
              <t indent="0">This document is a glossary of policy-related terms. It provides abbreviations, explanations, and recommendations for use of these terms. The intent is to improve the comprehensibility and consistency of writing that deals with network policy, particularly Internet Standards documents (ISDs). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3198"/>
          <seriesInfo name="DOI" value="10.17487/RFC3198"/>
        </reference>
        <reference anchor="RFC3539" target="https://www.rfc-editor.org/info/rfc3539" quoteTitle="true" derivedAnchor="RFC3539">
          <front>
            <title>Authentication, Authorization and Accounting (AAA) Transport Profile</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Wood" initials="J." surname="Wood"/>
            <date month="June" year="2003"/>
            <abstract>
              <t indent="0">This document discusses transport issues that arise within protocols for Authentication, Authorization and Accounting (AAA). It also provides recommendations on the use of transport by AAA protocols. This includes usage of standards-track RFCs as well as experimental proposals. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3539"/>
          <seriesInfo name="DOI" value="10.17487/RFC3539"/>
        </reference>
        <reference anchor="RFC4252" target="https://www.rfc-editor.org/info/rfc4252" quoteTitle="true" derivedAnchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t indent="0">The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC6614" target="https://www.rfc-editor.org/info/rfc6614" quoteTitle="true" derivedAnchor="RFC6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <author fullname="S. Venaas" initials="S." surname="Venaas"/>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <date month="May" year="2012"/>
            <abstract>
              <t indent="0">This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="RFC7149" target="https://www.rfc-editor.org/info/rfc7149" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">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" target="https://www.rfc-editor.org/info/rfc7426" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC7542" target="https://www.rfc-editor.org/info/rfc7542" quoteTitle="true" derivedAnchor="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t indent="0">In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </reference>
        <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8340" target="https://www.rfc-editor.org/info/rfc8340" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8981" target="https://www.rfc-editor.org/info/rfc8981" quoteTitle="true" derivedAnchor="RFC8981">
          <front>
            <title>Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="R. Draves" initials="R." surname="Draves"/>
            <date month="February" year="2021"/>
            <abstract>
              <t indent="0">This document describes an extension to IPv6 Stateless Address Autoconfiguration that causes hosts to generate temporary addresses with randomized interface identifiers for each prefix advertised with autoconfiguration enabled. Changing addresses over time limits the window of time during which eavesdroppers and other information collectors may trivially perform address-based network-activity correlation when the same address is employed for multiple transactions by the same host. Additionally, it reduces the window of exposure of a host as being accessible via an address that becomes revealed as a result of active communication. This document obsoletes RFC 4941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8981"/>
          <seriesInfo name="DOI" value="10.17487/RFC8981"/>
        </reference>
        <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000" quoteTitle="true" derivedAnchor="RFC9000">
          <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 indent="0">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>
        <reference anchor="RFC9638" target="https://www.rfc-editor.org/info/rfc9638" quoteTitle="true" derivedAnchor="RFC9638">
          <front>
            <title>Network Virtualization over Layer 3 (NVO3) Encapsulation Considerations</title>
            <author fullname="S. Boutros" initials="S." surname="Boutros"/>
            <author fullname="D. Eastlake 3rd" initials="D." role="editor" surname="Eastlake 3rd"/>
            <date month="September" year="2024"/>
            <abstract>
              <t indent="0">The IETF Network Virtualization Overlays (NVO3) Working Group developed considerations for a common encapsulation that addresses various network virtualization overlay technical concerns. This document provides a record, for the benefit of the IETF community, of the considerations arrived at by the NVO3 Working Group starting from the output of the NVO3 encapsulation Design Team. These considerations may be helpful with future deliberations by working groups over the choice of encapsulation formats.</t>
              <t indent="0">There are implications of having different encapsulations in real environments consisting of both software and hardware implementations and within and spanning multiple data centers. For example, Operations, Administration, and Maintenance (OAM) functions such as path MTU discovery become challenging with multiple encapsulations along the data path.</t>
              <t indent="0">Based on these considerations, the NVO3 Working Group determined that Generic Network Virtualization Encapsulation (Geneve) with a few modifications is the common encapsulation. This document provides more details, particularly in Section 7.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9638"/>
          <seriesInfo name="DOI" value="10.17487/RFC9638"/>
        </reference>
        <reference anchor="RFC9797" target="https://www.rfc-editor.org/info/rfc9797" quoteTitle="true" derivedAnchor="RFC9797">
          <front>
            <title>Randomized and Changing Media Access Control (MAC) Addresses: Context, Network Impacts, and Use Cases</title>
            <author fullname="J. Henry" initials="J." surname="Henry"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <date month="June" year="2025"/>
            <abstract>
              <t indent="0">To limit the privacy issues created by the association between a device, its traffic, its location, and its user in IEEE 802 networks, client vendors and client OS vendors have started implementing Media Access Control (MAC) address randomization. This technology is particularly important in Wi-Fi networks (defined in IEEE 802.11) due to the over-the-air medium and device mobility. When such randomization happens, some in-network states may break, which may affect network connectivity and user experience. At the same time, devices may continue using other stable identifiers, defeating the purpose of MAC address randomization.</t>
              <t indent="0">This document lists various network environments and a range of network services that may be affected by such randomization. This document then examines settings where the user experience may be affected by in-network state disruption. Last, this document examines some existing frameworks that maintain user privacy while preserving user quality of experience and network operation efficiency.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9797"/>
          <seriesInfo name="DOI" value="10.17487/RFC9797"/>
        </reference>
        <reference anchor="RFC9846" target="https://www.rfc-editor.org/info/rfc9846" quoteTitle="true" derivedAnchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t indent="0">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 indent="0">This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC9899" target="https://www.rfc-editor.org/info/rfc9899" quoteTitle="true" derivedAnchor="RFC9899">
          <front>
            <title>Extensions to the YANG Data Model for Access Control Lists (ACLs)</title>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="December" year="2025"/>
            <abstract>
              <t indent="0">RFC 8519 defines a YANG data model for Access Control Lists (ACLs). This document specifies a set of extensions that fix many of the limitations of the ACL model as initially defined in RFC 8519. Specifically, it introduces augmentations to the ACL base model to enhance its functionality and applicability.</t>
              <t indent="0">This document also creates initial versions of IANA-maintained modules for ICMP types and IPv6 extension headers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9899"/>
          <seriesInfo name="DOI" value="10.17487/RFC9899"/>
        </reference>
        <reference anchor="RFC9907" target="https://www.rfc-editor.org/info/rfc9907" quoteTitle="true" derivedAnchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t indent="0">This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained 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.</t>
              <t indent="0">This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
        <reference anchor="I-D.you-i2nsf-user-group-based-policy" target="https://datatracker.ietf.org/doc/html/draft-you-i2nsf-user-group-based-policy-02" quoteTitle="true" derivedAnchor="SECURITY-POLICY">
          <front>
            <title>User-group-based Security Policy for Service Layer</title>
            <author fullname="Jianjie You" initials="J." surname="You">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author fullname="Myo Zarny" initials="M." surname="Zarny">
              <organization showOnFrontPage="true">Goldman Sachs</organization>
            </author>
            <author fullname="Christian Jacquenet" initials="C." surname="Jacquenet">
              <organization showOnFrontPage="true">France Telecom</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization showOnFrontPage="true">France Telecom</organization>
            </author>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author fullname="John Strassner" initials="J." surname="Strassner">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author fullname="Sumandra Majee" initials="S." surname="Majee">
              <organization showOnFrontPage="true">F5 Networks</organization>
            </author>
            <date day="8" month="July" year="2016"/>
            <abstract>
              <t indent="0">This draft defines the User-group Aware Policy Control (UAPC) framework, which facilitates consistent enforcement of security policies based on user group identity. Policies are used to control security policy enforcement using a policy server and a security controller. Northbound APIs are also discussed.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-you-i2nsf-user-group-based-policy-02"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.smith-vxlan-group-policy" target="https://datatracker.ietf.org/doc/html/draft-smith-vxlan-group-policy-05" quoteTitle="true" derivedAnchor="VXLAN">
          <front>
            <title>VXLAN Group Policy Option</title>
            <author fullname="Michael Smith" initials="M." surname="Smith">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="Larry Kreeger" initials="L." surname="Kreeger">
              <organization showOnFrontPage="true">Arrcus, Inc.</organization>
            </author>
            <date day="22" month="October" year="2018"/>
            <abstract>
              <t indent="0">This document defines a backward compatible extension to Virtual eXtensible Local Area Network (VXLAN) that allows a Tenant System Interface (TSI) Group Identifier to be carried for the purposes of policy enforcement.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-smith-vxlan-group-policy-05"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="examples-usage" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-usage-examples">Usage Examples</name>
      <section anchor="controller-ucl" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.1">
        <name slugifiedName="name-configuring-the-controller-">Configuring the Controller Using the Group-Based ACL</name>
        <t indent="0" pn="section-appendix.a.1-1">Let's consider an organization that would like to manage the access of R&amp;D
   employees who bring personally owned devices (BYOD) into the workplace.</t>
        <t indent="0" pn="section-appendix.a.1-2">The access requirements are as follows:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-appendix.a.1-3">
          <li pn="section-appendix.a.1-3.1">
            <t indent="0" pn="section-appendix.a.1-3.1.1">Permit traffic from R&amp;D employees' personal devices, destined to R&amp;D employees'
devices, every work day from 8:00:00 to 18:00:00 UTC, starting on January 1, 2026.</t>
          </li>
          <li pn="section-appendix.a.1-3.2">
            <t indent="0" pn="section-appendix.a.1-3.2.1">Deny traffic from R&amp;D employees' personal devices, destined to finance servers
located in the enterprise data center (DC) network, starting at 8:30:00 on January 20,
2026, with an offset of -08:00 from UTC (Pacific Standard Time), and ending
at 18:00:00 in Pacific Standard Time on December 31, 2026.</t>
          </li>
        </ul>
        <t indent="0" pn="section-appendix.a.1-4">The example shown in <xref target="ex-controller-ucl" format="default" sectionFormat="of" derivedContent="Figure 3"/> illustrates the configuration of an SDN controller using the group-based ACL:</t>
        <figure anchor="ex-controller-ucl" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-example-of-ucl-configuratio">Example of UCL Configuration on the SDN Controller</name>
          <sourcecode type="json" markers="false" pn="section-appendix.a.1-5.1">
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&amp;D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&amp;D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "finance server",
          "group-type": "ietf-ucl-acl:device-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-group-acl",
        "type": "ietf-ucl-acl:group-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&amp;D BYOD",
                  "destination-group-id": "R&amp;D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&amp;D BYOD",
                  "destination-group-id": "finance server"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}</sourcecode>
        </figure>
      </section>
      <section anchor="PEP-ucl" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.2">
        <name slugifiedName="name-configuring-a-pep-using-the">Configuring a PEP Using the Group-Based ACL</name>
        <t indent="0" pn="section-appendix.a.2-1">This section illustrates an example of configuring a PEP using
   the group-based ACL.</t>
        <t indent="0" pn="section-appendix.a.2-2">The PEP that enforces a group-based ACL may acquire group IDs
   from the AAA server if working as a NAS authenticating both the
   source endpoint and destination endpoint users. Another case for
   a PEP enforcing a group-based ACL is to obtain the group ID of
   the source endpoint directly from a packet field
   <xref target="I-D.smith-vxlan-group-policy" format="default" sectionFormat="of" derivedContent="VXLAN"/>.</t>
        <t indent="0" pn="section-appendix.a.2-3">Assume the mapping between a device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-ucl" format="default" sectionFormat="of" derivedContent="Figure 4"/>
   shows the ACL configuration delivered from the controller to the PEP. This
   example is consistent with the example presented in <xref target="controller-ucl" format="default" sectionFormat="of" derivedContent="Appendix A.1"/>.</t>
        <t indent="0" pn="section-appendix.a.2-4">The examples in this section do not intend to be exhaustive. In particular, explicit
   IP addresses ("destination-ipv4-network" or "destination-ipv6-network") are provided only for one single rule to illustrate
   how the mapping between a group ID and IP addresses is translated into an ACL rule entry.</t>
        <figure anchor="ex-PEP-ucl" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-example-of-pep-configuratio">Example of PEP Configuration Using a Group-Based ACL</name>
          <sourcecode type="json" markers="false" pn="section-appendix.a.2-5.1">
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&amp;D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&amp;D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-ucl-ipv4",
        "type": "ietf-ucl-acl:mixed-ipv4-group-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&amp;D BYOD",
                  "destination-group-id": "R&amp;D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&amp;D BYOD"
                },
                "ipv4": {
                  "destination-ipv4-network": "203.0.113.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}</sourcecode>
        </figure>
        <t indent="0" pn="section-appendix.a.2-6"><xref target="ex-PEP-ucl-ipv6" format="default" sectionFormat="of" derivedContent="Figure 5"/> shows an example of the same policy but with a destination IPv6 prefix.</t>
        <figure anchor="ex-PEP-ucl-ipv6" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-example-of-pep-configuration">Example of PEP Configuration Using a Group-Based ACL (IPv6)</name>
          <sourcecode type="json" markers="false" pn="section-appendix.a.2-7.1">
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&amp;D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&amp;D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-ucl-ipv6",
        "type": "ietf-ucl-acl:mixed-ipv6-group-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&amp;D BYOD",
                  "destination-group-id": "R&amp;D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&amp;D BYOD"
                },
                "ipv6": {
                  "destination-ipv6-network": "2001:db8:1234::/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}</sourcecode>
        </figure>
      </section>
      <section anchor="PEP-acl" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.3">
        <name slugifiedName="name-configuring-a-pep-using-an-">Configuring a PEP Using an Address-Based ACL</name>
        <t indent="0" pn="section-appendix.a.3-1">This section describes an example of configuring a PEP using
   an IP-address-based ACL. IP-address-based access control policies could
   be applied to a PEP that may not understand the group information (e.g., a firewall).</t>
        <t indent="0" pn="section-appendix.a.3-2">Assume an employee in the R&amp;D department accesses the network
   wirelessly from a non-corporate laptop.
   The SDN controller associates the user group to which the employee
   belongs with the user's address according to steps 1 to 4 in <xref target="overview" format="default" sectionFormat="of" derivedContent="Section 4.1"/>.</t>
        <t indent="0" pn="section-appendix.a.3-3">Assume the mapping between a device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-acl" format="default" sectionFormat="of" derivedContent="Figure 6"/>
   shows an IPv4-address-based ACL configuration delivered from
   the controller to the PEP. This example is consistent with the example
   presented in <xref target="controller-ucl" format="default" sectionFormat="of" derivedContent="Appendix A.1"/>.</t>
        <figure anchor="ex-PEP-acl" align="left" suppress-title="false" pn="figure-6">
          <name slugifiedName="name-example-of-pep-configuration-">Example of PEP Configuration Using an Address-Based ACL</name>
          <sourcecode type="json" markers="false" pn="section-appendix.a.3-4.1">
{
  "ietf-access-control-list:acls": {
    "acl": [
      {
        "name": "sample-acl-ipv4",
        "type": "ietf-access-control-list:ipv4-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ipv4": {
                  "destination-ipv4-network": "192.168.2.1/24",
                  "source-ipv4-network": "192.168.1.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ipv4": {
                  "destination-ipv4-network": "203.0.113.1/24",
                  "source-ipv4-network": "192.168.1.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}</sourcecode>
        </figure>
        <t indent="0" pn="section-appendix.a.3-5"><xref target="ex-PEP-acl-ipv6" format="default" sectionFormat="of" derivedContent="Figure 7"/> shows an example of the same policy but with IPv6 prefixes.</t>
        <figure anchor="ex-PEP-acl-ipv6" align="left" suppress-title="false" pn="figure-7">
          <name slugifiedName="name-example-of-pep-configuration-u">Example of PEP Configuration Using an Address-Based ACL (IPv6)</name>
          <sourcecode type="json" markers="false" pn="section-appendix.a.3-6.1">
{
  "ietf-access-control-list:acls": {
    "acl": [
      {
        "name": "sample-acl-ipv6",
        "type": "ietf-access-control-list:ipv6-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ipv6": {
                  "destination-ipv6-network": "2001:db8:0:2::/64",
                  "source-ipv6-network": "2001:db8:0:1::/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ipv6": {
                  "destination-ipv6-network": "2001:db8:1234::/64",
                  "source-ipv6-network": "2001:db8:0:1::/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}</sourcecode>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">This work has benefited from the discussions of user-group-based
   security policies over the years.  In particular, <xref target="I-D.you-i2nsf-user-group-based-policy" format="default" sectionFormat="of" derivedContent="SECURITY-POLICY"/>
   and <xref target="I-D.yizhou-anima-ip-to-access-control-groups" format="default" sectionFormat="of" derivedContent="ID-MAPPING"/> provide mechanisms to
   establish a mapping between the IP address/prefix of users and access
   control group IDs. The authors would like to thank <contact fullname="Jianjie You"/>, <contact fullname="Myo Zarny"/>, <contact fullname="Christian Jacquenet"/>, and <contact fullname="Yizhou Li"/> for their early contributions to these works.</t>
      <t indent="0" pn="section-appendix.b-2">Thanks to <contact fullname="Joe Clarke"/>, <contact fullname="Bill Fenner"/>, <contact fullname="Benoît Claise"/>, <contact fullname="Rob Wilton"/>, <contact fullname="David Somers-Harris"/>,
   <contact fullname="Alan DeKok"/>, <contact fullname="Heikki Vatiainen"/>, <contact fullname="Wen Xiang"/>, <contact fullname="Wei Wang"/>, <contact fullname="Hongwei Li"/>, and <contact fullname="Jensen Zhang"/> for
   their review and comments.</t>
      <t indent="0" pn="section-appendix.b-3">Thanks to <contact fullname="Dhruv Dhody"/> for the OPSDIR review, <contact fullname="Alexander Pelov"/> for the INTDIR review, <contact fullname="Valery Smyslov"/> for the SECDIR review, and <contact fullname="Acee Lindem"/> for the YANGDOCTORS review.</t>
      <t indent="0" pn="section-appendix.b-4">Thanks to <contact fullname="Mahesh Jethanandani"/> for the AD review.</t>
      <t indent="0" pn="section-appendix.b-5">Thanks to <contact fullname="Christopher Inacio"/>, <contact fullname="Andy Newton"/>, <contact fullname="Charles Eckel"/>, <contact fullname="Éric Vyncke"/>, <contact fullname="Deb Cooley"/>, <contact fullname="Gorry Fairhurst"/>, <contact fullname="Gunter Van de Velde"/>, <contact fullname="Jim Guichard"/>, <contact fullname="Ketan Talaulikar"/>, and <contact fullname="Mike Bishop"/> for their IESG reviews.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Qiufang Ma" role="editor">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>101 Software Avenue, Yuhua District</street>
            <city>Jiangsu</city>
            <code>210012</code>
            <country>China</country>
          </postal>
          <email>maqiufang1@huawei.com</email>
        </address>
      </author>
      <author fullname="Qin Wu">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>101 Software Avenue, Yuhua District</street>
            <city>Jiangsu</city>
            <code>210012</code>
            <country>China</country>
          </postal>
          <email>bill.wu@huawei.com</email>
        </address>
      </author>
      <author fullname="Mohamed Boucadair" role="editor">
        <organization showOnFrontPage="true">Orange</organization>
        <address>
          <postal>
            <city>Rennes</city>
            <code>35000</code>
            <country>France</country>
          </postal>
          <email>mohamed.boucadair@orange.com</email>
        </address>
      </author>
      <author fullname="Daniel King">
        <organization showOnFrontPage="true">Lancaster University</organization>
        <address>
          <postal>
            <country>United Kingdom</country>
          </postal>
          <email>d.king@lancaster.ac.uk</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
