<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ucl-acl-15" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="A Policy-based Network Access Control">A YANG Data Model and RADIUS Extension for Policy-Based Network Access Control</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ucl-acl-15"/>
    <author fullname="Qiufang Ma" role="editor">
      <organization>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>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>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>Lancaster University</organization>
      <address>
        <postal>
          <country>United Kingdom</country>
        </postal>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </author>
    <date year="2026" month="April" day="02"/>
    <area>Operations and Management</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>
      <?line 74?>

<t>This document defines a YANG data model for policy-based network access
   control, which provides 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>Specifically in scenarios where network access is triggered by user authentication, this document defines a mechanism to ease 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, the 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>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Operations and Management Area Working Group Working Group mailing list (opsawg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/policy-based-network-acl"/>.</t>
    </note>
  </front>
  <middle>
    <?line 87?>

<section anchor="intro">
      <name>Introduction</name>
      <t>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">
        <li>
          <t>Endpoints do not have stable and unique IP addresses.  For example, Wireless
LAN (WLAN) and VPN clients, as well as back-end Virtual Machine
(VM)-based servers, can move; their IP addresses could change as a
result. Furthermore, mechanisms such as IPv6 temporary addresses <xref target="RFC8981"/>, and Network Address Port Translation (NAPT) <xref target="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>
          <t>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 users'
access location, source network reputation, users' role, time-of-
day, type of network device used (e.g., corporate-issued device
versus personal device), device's security posture, etc. This
means that the network needs to recognize the endpoints' identity and their
current context, and map the endpoints to their correct access
grant to the network.</t>
        </li>
      </ul>
      <t>This document defines a YANG data model (<xref target="sec-UCL"/>) for policy-based network access control,
   which extends the IETF Access Control Lists (ACLs) module defined in <xref target="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>The ACL concept has been generalized to be device-nonspecific, and can be
   defined at network/administrative domain level <xref target="RFC9899"/>. To
   allow for all  ACL applications, the YANG module for policy-based network
   ACL defined in <xref target="sec-UCL"/> does not limit how it can be used.</t>
      <t>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., MAC address) to execute the policy-based access control.
   Additionally, the document defines a Remote Authentication Dial-in
   User Service (RADIUS) <xref target="RFC2865"/> attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information (<xref target="sec-radius"/>).</t>
      <t>Although the document cites MAC addresses as an example in some sections, the
   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"/>.</t>
      <t>The 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"/>,
   provides an example of how that may be achieved.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
        <t>This document contains placeholder values that need to be replaced with finalized
   values at the time of publication.  This note summarizes all of the
   substitutions that are needed.  No other RFC Editor instructions are specified
   elsewhere in this document.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this document</t>
          </li>
          <li>
            <t>2026-01-12 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The meanings of the symbols in tree diagrams are defined in
   <xref target="RFC8340"/>.</t>
      <t>The document uses the following terms defined in <xref target="RFC8519"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Access Control Entry (ACE)</t>
        </li>
        <li>
          <t>Access Control List (ACL)</t>
        </li>
      </ul>
      <t>The following definitions are used throughout this document:</t>
      <dl>
        <dt>Enterprise device:</dt>
        <dd>
          <t>A device that falls under the access control domain of
   centrally managed authority (enterprise administrator, typically).
   An enterprise device provides compute, memory, storage, and networking capabilities and connects to a network.</t>
        </dd>
        <dt/>
        <dd>
          <t>An enterprise device could be a server that hosts applications or software that deliver 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), etc.</t>
        </dd>
        <dt/>
        <dd>
          <t>While a personal device (BYOD) is not a physical asset of the enterprise, it is subject to the enterprise' access control policies when accessing the enterprise resources controlled by the centrally managed authority.</t>
        </dd>
        <dt>Endpoint:</dt>
        <dd>
          <t>Refers to an entity which could be an end-user, enterprise device, or application that actually connects to a network.</t>
        </dd>
        <dt>Endpoint group:</dt>
        <dd>
          <t>Refers to a group of endpoints that share common access control policies.</t>
        </dd>
        <dt>User group:</dt>
        <dd>
          <t>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"/> for more details.</t>
        </dd>
        <dt>device group:</dt>
        <dd>
          <t>A collection of enterprise devices that share a common access control policies. Refer to <xref target="sec-dg"/> for more details.</t>
        </dd>
        <dt>Application group:</dt>
        <dd>
          <t>A collection of applications that share a common access control policies. An application is a software program used for a specific service. Refer to <xref target="sec-ag"/> for more details.</t>
        </dd>
        <dt>Endpoint group identifier:</dt>
        <dd>
          <t>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>User group based Control List (UCL) data model:</dt>
        <dd>
          <t>A YANG data model for policy-based network access
control that specifies an extension to the "ietf-access-control-list" module <xref target="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>Policy:</dt>
        <dd>
          <t>A set of rules to administer, manage, and control access to network resources <xref target="RFC3198"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sample-usage">
      <name>Sample Usage</name>
      <t>Access to some networks (e.g., enterprise networks) requires
   recognizing the endpoints' identities no matter how, where, and 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"/>,
   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 the ACL resources.</t>
      <t>The network ACLs can be provisioned on devices using specific
   mechanisms, such as <xref target="RFC8519"/> or <xref target="RFC9899"/>.</t>
      <t>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"/>) and policing
   (<xref section="2.3.3.4" sectionFormat="of" target="RFC2475"/>) during peak hours in order to not affect other data
   services.</t>
    </section>
    <section anchor="policy-based-network-access-control">
      <name>Policy-based Network Access Control</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>An example architecture of a system that provides real-time and
   consistent enforcement of access control policies is shown in
   <xref target="arch"/>.  This architecture illustrates a user-centric flow, which
   includes the following functional entities and interfaces:</t>
        <ul spacing="normal">
          <li>
            <t>A service orchestrator which 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>
            <t>A Software-Defined Networking (SDN) <xref target="RFC7149"/> <xref target="RFC7426"/> controller which 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"/> and pushes the required access control policies to relevant Policy Enforcement Points (PEPs) <xref target="RFC3198"/>. A PDP is also known as "policy server" <xref target="RFC2753"/>.  </t>
            <t>
An SDN controller may interact with an Authentication, Authorization, and Accounting (AAA) <xref target="RFC3539"/> server or a Network Access Server (NAS) <xref target="RFC7542"/>.</t>
          </li>
          <li>
            <t>A NAS entity which handles authentication requests. The NAS interacts with an AAA server to complete user authentication using protocols like RADIUS <xref target="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>
A new RADIUS attribute is defined in <xref target="sec-radius"/> for this purpose.</t>
          </li>
          <li>
            <t>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>
            <t>The Policy Enforcement Point (PEP) is the central entity which 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 packet header fields based ACL policies 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 acts upon the endpoint-group ID-based ACL policies (e.g., a group identifier may be carried in packet headers such as discussed in <xref section="6.2.3" sectionFormat="of" target="RFC9638"/>).  </t>
            <t>
Multiple PEPs may be involved in a network.  </t>
            <t>
A PEP exposes a YANG-based interface (e.g., NETCONF <xref target="RFC6241"/>) to an SDN controller.</t>
          </li>
        </ul>
        <t><xref target="arch"/> provides the overall architecture and procedure for policy-based access control management.</t>
        <figure anchor="arch">
          <name>An Example Architecture for User Group-based Policy Management</name>
          <artset>
            <artwork type="svg" align="center"><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"><![CDATA[
                                   .------------.
                                   |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>In reference to <xref target="arch"/>, the following typical flow is experienced:</t>
        <dl>
          <dt>Step 1:</dt>
          <dd>
            <t>Administrators (or a service orchestrator) configure an SDN
controller with network-level ACLs using the YANG module defined
in <xref target="sec-UCL"/>. An example is provided in <xref target="controller-ucl"/>.</t>
          </dd>
          <dt>Step 2:</dt>
          <dd>
            <t>When a user first logs onto the network, they are
   required to be authenticated (e.g., using username and password)
   at the NAS.</t>
          </dd>
          <dt>Step 3:</dt>
          <dd>
            <t>The authentication request is then relayed to the AAA server
   using a protocol such as RADIUS <xref target="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"/>
   for authentication method recommendations.</t>
          </dd>
          <dt/>
          <dd>
            <t>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"/>).
    If the authentication fails, the user is not assigned any user
    group, which also means that the user has no access (i.e., Access-Reject 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 that IP address are discarded
    (or rate-limited) by the network.</t>
          </dd>
          <dt/>
          <dd>
            <t>In some implementations, the AAA server can be integrated with an SDN controller.</t>
          </dd>
          <dt>Step 4:</dt>
          <dd>
            <t>Either the AAA server or the NAS notifies an 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 scope of this specification.</t>
          </dd>
          <dt>Step 5:</dt>
          <dd>
            <t>Either group-based or packet header field-based access control policies
   are maintained on relevant PEPs under the SDN controller's management.
   Both types of ACL policy may exist on
   the PEP. <xref target="PEP-ucl"/> and <xref target="PEP-acl"/> elaborate on each case.</t>
          </dd>
        </dl>
        <t>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"/>).</t>
        <t><xref target="implement-considerations"/> provides additional operational considerations.</t>
      </section>
      <section anchor="endpoint-group">
        <name>Endpoint Group</name>
        <section anchor="sec-ug">
          <name>User Group</name>
          <t>The 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 their
   composite attributes, environment, and/or local enterprise policy change.</t>
          <t>A user is authenticated, and 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>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"/> 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 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, and differ only in
   the type of clients (firm-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">
            <name>User Group Examples</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">R&amp;D Regular</td>
                <td align="left">foo-10</td>
                <td align="left">R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left">R&amp;D BYOD</td>
                <td align="left">foo-11</td>
                <td align="left">Personal devices of R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left">Sales</td>
                <td align="left">foo-20</td>
                <td align="left">Sales employees</td>
              </tr>
              <tr>
                <td align="left">VIP</td>
                <td align="left">foo-30</td>
                <td align="left">VIP employees</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-dg">
          <name>Device Group</name>
          <t>The device group ID is an identifier that represents the collective
   identity of a group of enterprise devices.
   <xref target="dg-example"/> shows an example
   of how device group definitions may be characterized.</t>
          <table anchor="dg-example">
            <name>Device Group Example</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Workflow</td>
                <td align="left">bar-40</td>
                <td align="left">Workflow  resource servers</td>
              </tr>
              <tr>
                <td align="left">R&amp;D Resource</td>
                <td align="left">bar-50</td>
                <td align="left">R&amp;D resource servers</td>
              </tr>
              <tr>
                <td align="left">Printer Resource</td>
                <td align="left">bar-60</td>
                <td align="left">Printer resources</td>
              </tr>
            </tbody>
          </table>
          <t>Matching abstract device group ID instead of specified addresses in
   ACL polices helps shield the consequences of address change (e.g.,
   back-end VM-based server migration).</t>
        </section>
        <section anchor="sec-ag">
          <name>Application Group</name>
          <t>An application group is a collection of applications that share a 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 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"/> shows an example of how application group definitions may be characterized.</t>
          <table anchor="ag-example">
            <name>Application Group Examples</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Audio/Video Streaming</td>
                <td align="left">baz-70</td>
                <td align="left">Audio/Video conferencing application</td>
              </tr>
              <tr>
                <td align="left">Instant Messaging</td>
                <td align="left">baz-80</td>
                <td align="left">Messaging application</td>
              </tr>
              <tr>
                <td align="left">document Collaboration</td>
                <td align="left">baz-90</td>
                <td align="left">Real-time document editing application</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="relations-between-different-endpoint-groups">
        <name>Relations Between Different Endpoint Groups</name>
        <t>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">
      <name>The UCL Extension to the ACL Module</name>
      <section anchor="module-overview">
        <name>Module Overview</name>
        <t>This module specifies an extension to the "ietf-access-control-list" module <xref target="RFC8519"/>. This extension adds
   endpoint groups so that an endpoint group identifier can be matched upon, and also
   enable access control policy activation based on date and time conditions.</t>
        <t><xref target="ucl-tree"/> provides the tree structure of the "ietf-ucl-acl" module.</t>
        <figure anchor="ucl-tree">
          <name>UCL Extension</name>
          <artwork align="center"><![CDATA[
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
]]></artwork>
        </figure>
        <t>The first part of the "ietf-ucl-acl" module augments the "acl" list in the
   "ietf-access-control-list" module <xref target="RFC8519"/> with an "endpoint-groups" container
   having a list of "endpoint group" inside, each entry has a "group-id" that uniquely
   identifies the endpoint group and a "group-type" parameter to specify the endpoint group type.</t>
        <ul empty="true">
          <li>
            <t>"group-id" is defined as a string rather than unsigned integer (e.g., uint32) to accommodate deployments which 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 encapsulation scenario is outside the scope of this document. Augmentation may be considered in the future to cover encapsulation considerations.</t>
          </li>
        </ul>
        <t>The second part of the "ietf-ucl-acl" module augments the "matches" container in the
   "ietf-access-control-list" module <xref target="RFC8519"/> so that a source and/or destination endpoint group index
   can be referenced as the match criteria.</t>
        <t>The third part of the module augments the "ace" list in the "ietf-access-control-list"
   module <xref target="RFC8519"/> with date and time specific parameters to allow ACE to be
   activated based on a date/time condition. Two types of time range are defined,
   which reuse "recurrence" and "period" groupings defined in the "ietf-schedule"
   YANG module in <xref target="RFC9922"/>, respectively.</t>
      </section>
      <section anchor="sec-UCL">
        <name>The "ietf-ucl-acl" YANG Module</name>
        <t>This module imports types and groupings defined in the "ietf-schedule" module
   <xref target="RFC9922"/>. It also augments the "ietf-access-control-list" module (<xref section="4.1" sectionFormat="of" target="RFC8519"/>).</t>
        <sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "ietf-ucl-acl@2026-01-12.yang"
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 OPSWG Working Group";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/opsawg/>
     WG List: OPSAWG <mailto:opsawg@ietf.org>

     Editor:   Qiufang Ma
               <mailto:maqiufang1@huawei.com>
     Author:   Qin Wu
               <mailto:bill.wu@huawei.com>
     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>
     Author:   Daniel King
               <mailto:d.king@lancaster.ac.uk>";
  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 XXXX; see
     the RFC itself for full legal notices.";

  revision 2026-01-12 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: 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
      "Eth 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
      "Eth, 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
      "Eth, 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
      "Eth, 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 identity,
       which can represent the collective identity of a group of
       authenticated users, end-devices, or applications.
       An endpoint group identity 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 identities, 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 identities, 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
       identities, 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 identities,
       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 
       identities, 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 
       identities, 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 identities, 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 endpoint group type.";
        }
      }
    }
  }

  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 
       index 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 types.";
      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;          
        }
      }
    }
  }
}
<CODE ENDS>
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec-radius">
      <name>User Access Control Group ID RADIUS Attribute</name>
      <t>This section defines a 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 group or application group, the identifiers are typically pre-provisioned
on the SDN controller based on an inventory or an application registry.</t>
      <t>The User-Access-Group-ID RADIUS attribute is
defined with a globally unique name. The definition of the attribute
follows the guidelines in <xref section="2.7.1" sectionFormat="of" target="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
users after the user authenticates.</t>
      <t>The User-Access-Group-ID Attribute is of type "string" as defined in
<xref section="3.5" sectionFormat="of" target="RFC8044"/>.</t>
      <t>The User-Access-Group-ID 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 Attribute appears in a RADIUS
Access-Accept packet, this means that the user is a member of many groups.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MAY</bcp14> appear in a RADIUS CoA-Request
packet.</t>
      <t>The User-Access-Group-ID 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-Request and the NAS is enforcing that policy.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MUST NOT</bcp14> appear in any other
RADIUS packet.</t>
      <t>The User-Access-Group-ID Attribute is structured as follows:</t>
      <dl newline="true">
        <dt>Type</dt>
        <dd>
          <t>TBA1</t>
        </dd>
        <dt>Length</dt>
        <dd>
          <t>This field indicates the total length, in octets, of all fields of
   this attribute, including the Type, Length, Extended-Type, and the
   "Value".</t>
        </dd>
        <dt/>
        <dd>
          <t>The Length <bcp14>MUST</bcp14> be at most 67 octets. The maximum length is 67 octets to accommodate the maximum group ID of 64 octets plus one octet for Type, one octet for Length, and one octet for Extended-Length.</t>
        </dd>
        <dt>Data Type</dt>
        <dd>
          <t>string (<xref section="3.5" sectionFormat="of" target="RFC8044"/>)</t>
        </dd>
        <dt>Value</dt>
        <dd>
          <t>This field contains the user group ID.</t>
        </dd>
      </dl>
    </section>
    <section anchor="radius-attributes">
      <name>RADIUS Attributes</name>
      <t><xref target="rad-att"/> provides a guide as what type of RADIUS packets
   that may contain User-Access-Group-ID Attribute, and in what
   quantity.</t>
      <table anchor="rad-att">
        <name>Table of Attributes</name>
        <thead>
          <tr>
            <th align="left">Access-Request</th>
            <th align="left">Access-Accept</th>
            <th align="left">Access-Reject</th>
            <th align="left">Access-Challenge</th>
            <th align="left">Attribute</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0+</td>
            <td align="left">0+</td>
            <td align="left">0</td>
            <td align="left">0</td>
            <td align="left">User-Access-Group-ID</td>
          </tr>
          <tr>
            <td align="left">Accounting-Request</td>
            <td align="left">CoA-Request</td>
            <td align="left">CoA-ACK</td>
            <td align="left">CoA-NACK</td>
            <td align="left">Attribute</td>
          </tr>
          <tr>
            <td align="left">0+</td>
            <td align="left">0+</td>
            <td align="left">0</td>
            <td align="left">0</td>
            <td align="left">User-Access-Group-ID</td>
          </tr>
        </tbody>
      </table>
      <t>Notation for <xref target="rad-att"/>:</t>
      <dl>
        <dt>0</dt>
        <dd>
          <t>This attribute <bcp14>MUST NOT</bcp14> be present in packet.</t>
        </dd>
        <dt>0+</dt>
        <dd>
          <t>Zero or more instances of this attribute <bcp14>MAY</bcp14> be present in packet.</t>
        </dd>
      </dl>
    </section>
    <section anchor="implement-considerations">
      <name>Operational Considerations</name>
      <section anchor="deployment-options">
        <name>Deployment Options</name>
        <t>The UCL model can be implemented in different ways.</t>
        <t>In some cases, the UCL data model is implemented at the network/administrative domain
   level with an SDN controller maintaining the dynamical mapping from endpoint
   group ID to IP/transport fields (e.g., the 5-tuple) and programing the PEPs with
   IP address/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>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 which acquires the source and/or destination endpoint group
   ID from the AAA server, ACL policy enforcement based on the group identity without
   being encapsulated into packet headers might affect the forwarding performance.
   Implementations need to evaluate the operational tradeoff (flexibility brought
   to the network vs. the complexity of implementation) carefully. Such assessment
   is out of scope for this document.</t>
      </section>
      <section anchor="hardwaresoftware-implications">
        <name>Hardware/Software Implications</name>
        <t>Some devices may not have built-in capabilities to enforce group-based match policies.
   Hardware or software upgrades may be required to support such feature by involved PEPs.</t>
      </section>
      <section anchor="mapping-consistency">
        <name>Mapping Consistency</name>
        <t>The specification requires that 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 network.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="yang">
        <name>YANG</name>
        <t>This section is modeled after the template described in <xref section="3.7.1" sectionFormat="of" target="RFC9907"/>.</t>
        <t>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"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management
   protocols (1) have to use a secure transport layer (e.g., Secure Shell (SSH) <xref target="RFC4252"/>, TLS <xref target="I-D.ietf-tls-rfc8446bis"/>, and
   QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
        <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
        <t>There are a number of data nodes defined in this YANG module that are
   writable/creatable/deletable (i.e., "config true", which is the
   default).  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">
          <li>
            <dl>
              <dt>/acl:acls/ucl:endpoint-groups/ucl:endpoint-group:</dt>
              <dd>
                <t>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>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches/ucl:endpoint-group:</dt>
              <dd>
                <t>This subtree specifies a source and/or endpoint group index as match criteria in the
ACEs. Unauthorized write access to this data node may allow intruders to
modify the group identity so as to permit access that should not be
permitted, or deny access that should be permitted.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/ucl:effective-schedule:</dt>
              <dd>
                <t>It specifies the secheduling 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 must be implemented for write operations on this subtree to ensure that only authorized users can modify it.</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>Some of the readable data nodes in this YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes. Specifically, the following
   subtrees and data nodes have particular sensitivities/
   vulnerabilities:</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/ucl:effective-schedule:</dt>
              <dd>
                <t>It specifies when the access control entry rules are applied. An
unauthorized read access of the list will allow the attacker to determine
which rules are applied, to better craft an attack.</t>
              </dd>
            </dl>
          </li>
        </ul>
      </section>
      <section anchor="radius">
        <name>RADIUS</name>
        <t>RADIUS-related security considerations are discussed in <xref target="RFC2865"/>.
   An effort to deprecating insecure practices in RADIUS is provided in <xref target="I-D.ietf-radext-deprecating-radius"/>.</t>
        <t>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"/><xref target="I-D.ietf-radext-radiusdtls-bis"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="yang-1">
        <name>YANG</name>
        <t>This document registers the following URIs in the "IETF XML Registry" <xref target="RFC3688"/>.</t>
        <artwork><![CDATA[
        URI: urn:ietf:params:xml:ns:yang:ietf-ucl-acl
        Registrant Contact: The IESG.
        XML: N/A, the requested URI is an XML namespace.
]]></artwork>
        <t>This document registers the following YANG modules in the "YANG Module Names"
   registry <xref target="RFC6020"/>.</t>
        <artwork><![CDATA[
        name:               ietf-ucl-acl
        prefix:             ucl
        namespace:          urn:ietf:params:xml:ns:yang:ietf-ucl-acl
        maintained by IANA? N
        reference:          RFC XXXX
]]></artwork>
      </section>
      <section anchor="radius-1">
        <name>RADIUS</name>
        <t>This document requests IANA to assign a new RADIUS attribute type in the 241-245 range from the IANA
   registry "Radius Attribute Types" <xref target="RADIUS-Types"/>:</t>
        <table anchor="rad-reg">
          <name>RADIUS Attribute</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Data Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBA1</td>
              <td align="left">User-Access-Group-ID</td>
              <td align="left">string</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8519">
          <front>
            <title>YANG Data Model for Network Access Control Lists (ACLs)</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="S. Agarwal" initials="S." surname="Agarwal"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <author fullname="D. Blair" initials="D." surname="Blair"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a data model for Access Control Lists (ACLs). An ACL is a user-ordered set of rules used to configure the forwarding behavior in a device. Each rule is used to find a match on a packet and define actions that will be performed on the packet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8519"/>
          <seriesInfo name="DOI" value="10.17487/RFC8519"/>
        </reference>
        <reference anchor="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>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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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>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>
        <reference anchor="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>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">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>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="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RADIUS-Types" target="https://www.iana.org/assignments/radius-types">
          <front>
            <title>RADIUS Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="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>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="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>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="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>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>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="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>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>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="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>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>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>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="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="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>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="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>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="RFC7149">
          <front>
            <title>Software-Defined Networking: A Perspective from within a Service Provider Environment</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Software-Defined Networking (SDN) has been one of the major buzz words of the networking industry for the past couple of years. And yet, no clear definition of what SDN actually covers has been broadly admitted so far. This document aims to clarify the SDN landscape by providing a perspective on requirements, issues, and other considerations about SDN, as seen from within a service provider environment.</t>
              <t>It is not meant to endlessly discuss what SDN truly means but rather to suggest a functional taxonomy of the techniques that can be used under an SDN umbrella and to elaborate on the various pending issues the combined activation of such techniques inevitably raises. As such, a definition of SDN is only mentioned for the sake of clarification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7149"/>
          <seriesInfo name="DOI" value="10.17487/RFC7149"/>
        </reference>
        <reference anchor="RFC7426">
          <front>
            <title>Software-Defined Networking (SDN): Layers and Architecture Terminology</title>
            <author fullname="E. Haleplidis" initials="E." role="editor" surname="Haleplidis"/>
            <author fullname="K. Pentikousis" initials="K." role="editor" surname="Pentikousis"/>
            <author fullname="S. Denazis" initials="S." surname="Denazis"/>
            <author fullname="J. Hadi Salim" initials="J." surname="Hadi Salim"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="O. Koufopavlou" initials="O." surname="Koufopavlou"/>
            <date month="January" year="2015"/>
            <abstract>
              <t>Software-Defined Networking (SDN) refers to a new approach for network programmability, that is, the capacity to initialize, control, change, and manage network behavior dynamically via open interfaces. SDN emphasizes the role of software in running networks through the introduction of an abstraction for the data forwarding plane and, by doing so, separates it from the control plane. This separation allows faster innovation cycles at both planes as experience has already shown. However, there is increasing confusion as to what exactly SDN is, what the layer structure is in an SDN architecture, and how layers interface with each other. This document, a product of the IRTF Software-Defined Networking Research Group (SDNRG), addresses these questions and provides a concise reference for the SDN research community based on relevant peer-reviewed literature, the RFC series, and relevant documents by other standards organizations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7426"/>
          <seriesInfo name="DOI" value="10.17487/RFC7426"/>
        </reference>
        <reference anchor="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>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="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>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="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>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="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="I-D.ietf-radext-deprecating-radius">
          <front>
            <title>Deprecating Insecure Practices in RADIUS</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="15" month="March" year="2026"/>
            <abstract>
              <t>   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-09"/>
        </reference>
        <reference anchor="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>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>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="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="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>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="I-D.ietf-tls-rfc8446bis">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <abstract>
              <t>   This document specifies version 1.3 of the Transport Layer Security
   (TLS) protocol.  TLS allows client/server applications to communicate
   over the Internet in a way that is designed to prevent eavesdropping,
   tampering, and message forgery.

   This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes
   RFCs 5077, 5246, 6961, 8422, and 8446.  This document also specifies
   new requirements for TLS 1.2 implementations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </reference>
        <reference anchor="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>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="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>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="I-D.ietf-radext-radiusdtls-bis">
          <front>
            <title>RadSec: RADIUS over Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Jan-Frederik Rieckers" initials="J." surname="Rieckers">
              <organization>Deutsches Forschungsnetz | German National Research and Education Network</organization>
            </author>
            <author fullname="Margaret Cullen" initials="M." surname="Cullen">
              <organization>Painless Security</organization>
            </author>
            <author fullname="Stefan Winter" initials="S." surname="Winter">
              <organization>Fondation Restena | Restena Foundation</organization>
            </author>
            <date day="23" month="February" year="2026"/>
            <abstract>
              <t>   This document defines transport profiles for running RADIUS over
   Transport Layer Security (TLS) and Datagram Transport Layer Security
   (DTLS), allowing the secure and reliable transport of RADIUS
   messages.  RADIUS/TLS and RADIUS/DTLS are collectively referred to as
   RadSec.

   This document obsoletes RFC6614 and RFC7360, which specified
   experimental versions of RADIUS over TLS and DTLS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-15"/>
        </reference>
        <reference anchor="I-D.smith-vxlan-group-policy">
          <front>
            <title>VXLAN Group Policy Option</title>
            <author fullname="Michael Smith" initials="M." surname="Smith">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Larry Kreeger" initials="L." surname="Kreeger">
              <organization>Arrcus, Inc.</organization>
            </author>
            <date day="22" month="October" year="2018"/>
            <abstract>
              <t>   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"/>
        </reference>
        <reference anchor="I-D.you-i2nsf-user-group-based-policy">
          <front>
            <title>User-group-based Security Policy for Service Layer</title>
            <author fullname="Jianjie You" initials="J." surname="You">
              <organization>Huawei</organization>
            </author>
            <author fullname="Myo Zarny" initials="M." surname="Zarny">
              <organization>Goldman Sachs</organization>
            </author>
            <author fullname="Christian Jacquenet" initials="C." surname="Jacquenet">
              <organization>France Telecom</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>France Telecom</organization>
            </author>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization>Huawei</organization>
            </author>
            <author fullname="John Strassner" initials="J." surname="Strassner">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sumandra Majee" initials="S." surname="Majee">
              <organization>F5 Networks</organization>
            </author>
            <date day="8" month="July" year="2016"/>
            <abstract>
              <t>   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"/>
        </reference>
        <reference anchor="I-D.yizhou-anima-ip-to-access-control-groups">
          <front>
            <title>Autonomic IP Address To Access Control Group ID Mapping</title>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Li Shen" initials="L." surname="Shen">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Yujing Zhou" initials="Y." surname="Zhou">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="15" month="November" year="2021"/>
            <abstract>
              <t>   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"/>
        </reference>
      </references>
    </references>
    <?line 1098?>

<section anchor="examples-usage">
      <name>Examples Usage</name>
      <section anchor="controller-ucl">
        <name>Configuring the Controller Using Group based ACL</name>
        <t>Let's consider an organization that would like to manage the access of R&amp;D
   employees that bring personally owned devices (BYOD) into the workplace.</t>
        <t>The access requirements are as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Permit traffic from R&amp;D BYOD of employees, destined to R&amp;D employees'
devices every work day from 8:00:00 to 18:00:00 UTC, starting in January 1st, 2026.</t>
          </li>
          <li>
            <t>Deny traffic from R&amp;D BYOD of employees, destined to finance servers
located in the enterprise DC network starting at 8:30:00 of 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>The example shown in <xref target="ex-controller-ucl"/> illustrates the configuration of an SDN controller
   using the group-based ACL:</t>
        <figure anchor="ex-controller-ucl">
          <name>Example of UCL Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&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&D BYOD",
                  "destination-group-id": "R&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&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">
        <name>Configuring a PEP Using Group-based ACL</name>
        <t>This section illustrates an example to configure a PEP  using
   the group-based ACL.</t>
        <t>The PEP which enforces group-based ACL may acquire group identities
   from the AAA server if working as a NAS authenticating both the
   source endpoint and the destination endpoint users. Another case for
   a PEP enforcing a group-based ACL is to obtain the group identity of
   the source endpoint directly from the packet field
   <xref target="I-D.smith-vxlan-group-policy"/>.</t>
        <t>Assume the mapping between device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-ucl"/>
   shows the ACL configuration delivered from the controller to the PEP. This
   example is consistent with the example presented in <xref target="controller-ucl"/>.</t>
        <t>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">
          <name>Example of PEP Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&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&D BYOD",
                  "destination-group-id": "R&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&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><xref target="ex-PEP-ucl-ipv6"/> shows an example of the same policy but with a destination IPv6 prefix.</t>
        <figure anchor="ex-PEP-ucl-ipv6">
          <name>Example of PEP Configuration (ipv6)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&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&D BYOD",
                  "destination-group-id": "R&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&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">
        <name>Configuring PEPs Using Address-based ACLs</name>
        <t>The section describes an example of configuring a PEP using
   IP address based ACL. IP address based access control policies could
   be applied to the PEP that may not understand the group information (e.g., firewall).</t>
        <t>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 address according to steps 1 to 4 in <xref target="overview"/>.</t>
        <t>Assume the mapping between device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-acl"/>
   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"/>.</t>
        <figure anchor="ex-PEP-acl">
          <name>Example of PEP Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "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><xref target="ex-PEP-acl-ipv6"/> shows an example of the same policy but with a destination IPv6 prefix.</t>
        <figure anchor="ex-PEP-acl-ipv6">
          <name>Example of PEP Configuration (IPv6)</name>
          <sourcecode type="json"><![CDATA[
{
  "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::1/64",
                  "source-ipv6-network": "2001:db8::2: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::2: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">
      <name>Acknowledgments</name>
      <t>This work has benefited from the discussions of User-group-based
   Security Policy over the years.  In particular, <xref target="I-D.you-i2nsf-user-group-based-policy"/>
   and <xref target="I-D.yizhou-anima-ip-to-access-control-groups"/> provided mechanisms to
   establish a mapping between the IP address/prefix of users and access
   control group IDs. The authors would like to thank Jianjie You, Myo Zarny, Christian Jacquenet, and Yizhou Li for their early contributions to these works.</t>
      <t>Thanks to Joe Clarke, Bill Fenner, Benoît Claise, Rob Wilton, David Somers-Harris,
   Alan Dekok, Heikki Vatiainen, Wen Xiang, Wei Wang, Hongwei Li, and Jensen Zhang for
   their review and comments.</t>
      <t>Thanks to Dhruv Dhody for the OPSDIR review, Alexander Pelov for INTDIR review, Valery Smyslov for the SECDIR review, and Acee Lindem for the YANGDOCTORS review.</t>
      <t>Thanks to Mahesh Jethanandani for the AD review.</t>
      <t>Thanks to Christopher Inacio, Andy Newton, Charles Eckel, Éric Vyncke, Deb Cooley, Gorry Fairhurst, Gunter Van de Velde, Jim Guichard, Ketan Talaulikar, and Mike Bishop for the IESG review.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
yVZ2Api9wE7h/wEHR9nL9fwAAA==

-->

</rfc>
