<?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.30 (Ruby 3.4.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ucl-acl-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-11"/>
    <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="January" day="12"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>ACL</keyword>
    <keyword>Policy-based</keyword>
    <keyword>BYOD</keyword>
    <keyword>Access control</keyword>
    <abstract>
      <?line 64?>

<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.</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 IP/MAC addresses
   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 77?>

<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 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.  This means that relying on IP/transport fields (e.g., the
5-tuple) is inadequate to ensure consistent and efficient security
policy enforcement.  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 relaying 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.</t>
      <t>The ACL concept has been generalized to be device-nonspecific, and can be
   defined at network/administrative domain level <xref target="I-D.ietf-netmod-acl-extensions"/>. 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 flushing out 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 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>SSSS --&gt; the assigned RFC number for <xref target="I-D.ietf-netmod-schedule-yang"/></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 term defined in <xref target="RFC3198"/>:</t>
      <ul spacing="normal">
        <li>
          <t>policy</t>
        </li>
      </ul>
      <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>
      <ul spacing="normal">
        <li>
          <dl>
            <dt>Endpoint:</dt>
            <dd>
              <t>Refers to an entity which could be an end-user, host device, or application that actually connects to a network.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <dt>Endpoint group:</dt>
            <dd>
              <t>Refers to a group of endpoints that share a common access control policies.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <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>
          </dl>
        </li>
      </ul>
      <artwork><![CDATA[
* device group:
: A collection of host devices that share a common access control policies. A host device provides compute, memory, storage, and networking capabilities and connects to a network. Host devices may be servers, Internet of Things (IoT) devices, etc. Refer to {{sec-dg}} for more details.

* Application group:
: A collection of applications that share a common access control policies. An application is a software program used for a specific service. Refer to {{sec-ag}} for more details.
]]></artwork>
      <ul spacing="normal">
        <li>
          <dl>
            <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>
          </dl>
        </li>
        <li>
          <dl>
            <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>
          </dl>
        </li>
      </ul>
    </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 following 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 is a heavy workload.  An alternate approach is to
   configure endpoint groups to classify users, enterprise devices and applications
   and associate ACLs with endpoint groups so that endpoints in each
   group can share a group of ACL rules.  This approach greatly reduces
   the workload 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="I-D.ietf-netmod-acl-extensions"/>.</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 enforcing 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 not to 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 architecture example 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., IP/MAC address).
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 Network Access Server (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. 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 IP/MAC address 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>A Sample 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="416" width="536" viewBox="0 0 536 416" 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.
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., return an Access-Reject); 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.
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., IP/MAC address). The exact details of how such notification is made are out the scope of this specification.</t>
          </dd>
          <dt>Step 5:</dt>
          <dd>
            <t>Either group or IP/MAC address based access control policies
are maintained on relevant PEPs under the SDN controller's management.
Whether the PEP enforces the group or IP/MAC address based ACL is
implementation specific. 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>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., IP/MAC address) may be maintained on the SDN controller based on inventory or 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 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">R&amp;D</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 end devices.  An enterprise device
   could be a server that hosts applications or software that deliver
   services to enterprise users.  It could also be an enterprise IoT
   device that serves a limited purpose, e.g., a printer that allows
   users to scan, print and send emails. <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>Users accessing an enterprise device should be strictly controlled.
   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 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">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>Policies 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 access rules not differentiating 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="I-D.ietf-netmod-schedule-yang"/>, 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="I-D.ietf-netmod-schedule-yang"/>. 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 SSSS: A Common YANG Data Model for Scheduling";
  }

  organization
    "IETF OPSWG Working Group";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/opsawg/>
     WG List: <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 and 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 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 Access Control List (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 NVO3 encapsulation), may also not 
       correspond to any field in the packet header. Matching on 
       Layer 4 header fields may also exist in the Access Control 
       Entries (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
      "Identity for the user endpoint group.";
  }
  
  identity device-group {
    base ucl:endpoint-group-type;
    description
      "Identity for the device endpoint group.";
  }
  
  identity application-group {
    base ucl:endpoint-group-type;
    description
      "Identity for the application endpoint group.";
  }
  
  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 ID.";
      }
      leaf destination-group-id {
        type group-id-reference;
        description
          "The matched destination endpoint group ID.";
      }
    }
  }

  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 in effect based on date and time condition.

         If it is not configured, the access control entry
         is immediately and always in effect.";
      choice schedule-type {
        description
          "Choice based on the type of the time range.";
        container period {
          description
            "The ACE takes effect based on a precise period of 
             time.";        
            uses schedule:period-of-time;
        }
        container recurrence {
          if-feature "schedule:icalendar-recurrence";
          description
            "The ACE takes effect 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 inventory or 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 it 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 to implement
   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 of 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 packets
   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" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>.</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 NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management
   protocols (1) have to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, 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>
            <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>
          </li>
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/ucl:effective-schedule:</dt>
              <dd>
                <t>This subtree specifies when the access control entry rules are in effect. An
unauthorized read access of the list will allow the attacker to determine
which rules are in effect, 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"/>.</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"/>.</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 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="I-D.ietf-netmod-schedule-yang">
          <front>
            <title>A Common YANG Data Model for Scheduling</title>
            <author fullname="Qiufang Ma" initials="Q." surname="Ma">
              <organization>Huawei</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</organization>
            </author>
            <date day="7" month="August" year="2025"/>
            <abstract>
              <t>   This document defines common types and groupings that are meant to be
   used for scheduling purposes such as event, policy, 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 status.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-schedule-yang-10"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="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="I-D.ietf-netmod-acl-extensions">
          <front>
            <title>Extensions to the Access Control Lists (ACLs) YANG Model</title>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="3" month="April" 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.

   The document also defines IANA-maintained modules for ICMP types and
   IPv6 extension headers.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-acl-extensions-17"/>
        </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="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="6" month="November" year="2025"/>
            <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.  They have proven their utility as
   replacements for the previous 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-08"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="5" month="June" year="2025"/>
            <abstract>
              <t>   This document provides guidelines for authors and reviewers of
   specifications containing YANG data models, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF Protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
        </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="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="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.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 1109?>

<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 step 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.</t>
      <t>Jianjie You, Myo Zarny, Christian Jacquenet, Mohamed Boucadair, and
   Yizhou Li contributed to an earlier version of <xref target="I-D.you-i2nsf-user-group-based-policy"/>.
   We would like to thank the authors of that Internet-Draft on modern network access
   control mechanisms for material that assisted in thinking about this document.</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 and Alexander Pelov for INTDIR review.</t>
      <t>Thanks to Mahesh Jethanandani for the AD review.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1923YbR5LgO74iFzpnRLQBiKRo2mZ3202Lss0eXdgiZY97
zjwUgARRrUIVui6k2JL2W/YL9iN2f2zjmpdCgQR9mXbvEWfaAlCVmZGRkXHL
yIjRaNSr0zqzR6Z/bH48fvGtOUnqxDwvZjYzST4zr45PTl+fm6dva5tXaZGb
eVGasyJLpzejSVLZmXlh6+uifGOOp1NbVeZJkddlkfV7yWRS2ivqeKv3p0lt
L4vy5shU9azXmxXTPFkCYLMymdej1NbzUbGqkuvLUTPNRgn8b2+vVzWTZVoh
YPXNCl4+fXrxTS9vlhNbHvVm0ONRb1rkFcDeVEemLhvbA5Ae95LSJgDay5Ut
kxpaVzTZ50meXNqlzet+D2G8LItmha+dnR//8G2/98bewM+zo54ZmeMnz/Cf
cGr4/esfX57QY57dlGfX6yVNvShKbNkz8Ddvsoyn95e0mSf5JYxND4ryMsnT
fxBQR+a7Jrm2KT2AXuBtO0vroqQfqrq0tj4ye7t75ryY19cwJ3N8ZfPGDs2P
zaJJzEkKL6XTmt6fpjXg9s8pDFY1/Aus8pHZ39vd3duXHxoAF956skhzhscu
kzQ7Msvk7wzn3p8WBNN4Wiy7JpObH5rbJ/LfCvckzbLxdXMr0M+LBfw7M18X
zTSZJWnZAf/LEoa33QvBAL6yeW6rAL7Hn+7u7sbgfQO9TG2EVx57PNGx/1TQ
SN2QngBEsC//Pc0vO2B8Bp0nVW1L8zpPr2xZAVzx+PB7DRPF9jPs38MxG7+B
H/+UaRfjZDpu3vR6eVEuofsr2Ee9NJ8H34ywhtEFbLzqiDozwkuEadATfuDI
n/9G+qE9h/7p8YvjvnSWlJdIKIu6XlVHjx5dX1+PgQqSMTR5lMCmv8xxq1aP
ymSWNtWo9sPRzjfzJKtsrzcajUwyAYpKgKLw+cUirQzwlwabm5mdp7ByJmH+
N0P+tyT+h6xuFbKuXFhXQpu7R6il/T0014t0ujCrsrhKZ9CZRVxNiZWYYo5v
xm21IfefQgseARgsMR0DveSAzZsxQXy+stN0nk6TLLsxsMeqqc2TMi0qGNfC
9ml1DtOD/XN5CY9mZnJjmgqIApcA+5wSqoem3oCFpZ0uYEWqpakLYwEqeNMC
A0hzEAFKv8Vcfl2tgG7MBMa3NofWNFQ4hXmKYwNzTUxlERnm9OzR8+MnJpnN
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
H7FXfrca+QAA

-->

</rfc>
