<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ucl-acl-14" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="A Policy-based Network Access Control">A YANG Data Model and RADIUS Extension for Policy-Based Network Access Control</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ucl-acl-14"/>
    <author fullname="Qiufang Ma" role="editor">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Jiangsu</city>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>maqiufang1@huawei.com</email>
      </address>
    </author>
    <author fullname="Qin Wu">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Jiangsu</city>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>bill.wu@huawei.com</email>
      </address>
    </author>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <postal>
          <city>Rennes</city>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Daniel King">
      <organization>Lancaster University</organization>
      <address>
        <postal>
          <country>United Kingdom</country>
        </postal>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </author>
    <date year="2026" month="April" day="01"/>
    <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. This YANG data model extends Access Control Lists (ACLs) with date and time parameters to support schedule-aware policy enforcement.</t>
      <t>Specifically in scenarios where network access is triggered by user authentication, this document defines a mechanism to ease the maintenance
   of the mapping between a user group identifier and a set of packet header fields
   to enforce policy-based network access control. Moreover, the document defines a Remote Authentication Dial-in
   User Service (RADIUS) attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Operations and Management Area Working Group Working Group mailing list (opsawg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/policy-based-network-acl"/>.</t>
    </note>
  </front>
  <middle>
    <?line 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 and unique IP addresses.  For example, Wireless
LAN (WLAN) and VPN clients, as well as back-end Virtual Machine
(VM)-based servers, can move; their IP addresses could change as a
result. Furthermore, mechanisms such as IPv6 temporary addresses <xref target="RFC8981"/>, and Network Address Port Translation (NAPT) <xref target="RFC3022"/> may further contribute to address instability and non-uniqueness. This complicates the consistent and efficient access control policy enforcement relying on IP/transport fields (e.g., the
5-tuple). IP address-based policies may not be flexible
enough to accommodate endpoints with volatile IP addresses.</t>
        </li>
        <li>
          <t>With the massive adoption of teleworking, there is a need to
apply different security policies to the same set of endpoints under
different circumstances (e.g., prevent relay attacks against a
local attachment point to the enterprise network).  For example,
network access might be granted based upon criteria such as users'
access location, source network reputation, users' role, time-of-
day, type of network device used (e.g., corporate-issued device
versus personal device), device's security posture, etc. This
means that the network needs to recognize the endpoints' identity and their
current context, and map the endpoints to their correct access
grant to the network.</t>
        </li>
      </ul>
      <t>This document defines a YANG data model (<xref target="sec-UCL"/>) for policy-based network access control,
   which extends the IETF Access Control Lists (ACLs) module defined in <xref target="RFC8519"/>.
   This module can be used to ensure consistent enforcement of ACL policies
   based on the group identity. Additionally, the YANG data model defined in the document also extends ACLs with date and time parameters to support schedule-aware policy enforcement.</t>
      <t>The ACL concept has been generalized to be device-nonspecific, and can be
   defined at network/administrative domain level <xref target="RFC9899"/>. To
   allow for all  ACL applications, the YANG module for policy-based network
   ACL defined in <xref target="sec-UCL"/> does not limit how it can be used.</t>
      <t>Specifically in scenarios where network access is triggered by user authentication, this document also defines a mechanism to establish a mapping between (1) the
   user group identifier (ID) and (2) common IP packet header fields and other
   encapsulating packet data (e.g., MAC address) to execute the policy-based access control.
   Additionally, the document defines a Remote Authentication Dial-in
   User Service (RADIUS) <xref target="RFC2865"/> attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information (<xref target="sec-radius"/>).</t>
      <t>Although the document cites MAC addresses as an example in some sections, the
   document does not make assumptions about which identifiers are used to trigger ACLs.
   These examples should not be considered as recommendations. Readers should be
   aware that MAC-based ACLs can be bypassed by clearing the MAC address.
   Other implications related to the change of MAC addresses are discussed in
   <xref target="RFC9797"/>.</t>
      <t>The document does not specify how to map the policy group identifiers to
dedicated packet fields. Group-Based Policy (GBP), discussed in <xref section="6.2.3" sectionFormat="of" target="RFC9638"/>,
   provides an example of how that may be achieved.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
        <t>This document contains placeholder values that need to be replaced with finalized
   values at the time of publication.  This note summarizes all of the
   substitutions that are needed.  No other RFC Editor instructions are specified
   elsewhere in this document.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this document</t>
          </li>
          <li>
            <t>2026-01-12 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The meanings of the symbols in tree diagrams are defined in
   <xref target="RFC8340"/>.</t>
      <t>The document uses the following terms defined in <xref target="RFC8519"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Access Control Entry (ACE)</t>
        </li>
        <li>
          <t>Access Control List (ACL)</t>
        </li>
      </ul>
      <t>The following definitions are used throughout this document:</t>
      <dl>
        <dt>Enterprise device:</dt>
        <dd>
          <t>A device that falls under the access control domain of
   centrally managed authority (enterprise administrator, typically).
   An enterprise device provides compute, memory, storage, and networking capabilities and connects to a network.</t>
        </dd>
        <dt/>
        <dd>
          <t>An enterprise device could be a server that hosts applications or software that deliver services to enterprise users. It could also be an enterprise Internet of Things (IoT) device that serves a limited purpose (e.g., a printer that allows users to scan and print), etc.</t>
        </dd>
        <dt/>
        <dd>
          <t>While a personal device (BYOD) is not a physical asset of the enterprise, it is subject to the enterprise' access control policies when accessing the enterprise resources controlled by the centrally managed authority.</t>
        </dd>
        <dt>Endpoint:</dt>
        <dd>
          <t>Refers to an entity which could be an end-user, enterprise device, or application that actually connects to a network.</t>
        </dd>
        <dt>Endpoint group:</dt>
        <dd>
          <t>Refers to a group of endpoints that share common access control policies.</t>
        </dd>
        <dt>User group:</dt>
        <dd>
          <t>A group of end-users who will be assigned the same network access policy. An end-user is defined as a person. Refer to <xref target="sec-ug"/> for more details.</t>
        </dd>
        <dt>device group:</dt>
        <dd>
          <t>A collection of enterprise devices that share a common access control policies. Refer to <xref target="sec-dg"/> for more details.</t>
        </dd>
        <dt>Application group:</dt>
        <dd>
          <t>A collection of applications that share a common access control policies. An application is a software program used for a specific service. Refer to <xref target="sec-ag"/> for more details.</t>
        </dd>
        <dt>Endpoint group identifier:</dt>
        <dd>
          <t>An identifier used to represent the collective identity of
   an endpoint group. An endpoint group may include a user group, device group, or application group.</t>
        </dd>
        <dt>User group based Control List (UCL) data model:</dt>
        <dd>
          <t>A YANG data model for policy-based network access
control that specifies an extension to the "ietf-access-control-list" module <xref target="RFC8519"/>.
It allows policy enforcement based on a group identifier, which can be used
both at the network device level and at the network/administrative domain level.</t>
        </dd>
        <dt>Policy:</dt>
        <dd>
          <t>A set of rules to administer, manage, and control access to network resources <xref target="RFC3198"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sample-usage">
      <name>Sample Usage</name>
      <t>Access to some networks (e.g., enterprise networks) requires
   recognizing the endpoints' identities no matter how, where, and when they
   connect to the network resources.  Then, the network maps the
   (connecting) endpoints to their access authorization rights.  Such rights
   are defined using local policies.  As discussed in <xref target="intro"/>,
   because (1) there is a large number of connecting endpoints and (2) an endpoint may have different
   source IP addresses in different network segments,
   deploying a network access control policy for each IP address or
   network segment requires a high overhead. An alternate approach is to configure endpoint groups to classify users,
   enterprise devices, and applications, and to associate ACLs with endpoint
   groups so that endpoints in each group can share a group of ACL rules.
   This approach greatly reduces
   the overhead of the administrators and optimizes the ACL resources.</t>
      <t>The network ACLs can be provisioned on devices using specific
   mechanisms, such as <xref target="RFC8519"/> or <xref target="RFC9899"/>.</t>
      <t>Different policies may need to be applied in different contextual situations.
   For example, companies may restrict (or grant) employees access to specific
   internal or external resources during work hours,
   while another policy is adopted during off-hours and weekends.  A
   network administrator may also require traffic shaping
   (<xref section="2.3.3.3" sectionFormat="of" target="RFC2475"/>) and policing
   (<xref section="2.3.3.4" sectionFormat="of" target="RFC2475"/>) during peak hours in order to not affect other data
   services.</t>
    </section>
    <section anchor="policy-based-network-access-control">
      <name>Policy-based Network Access Control</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>An example architecture of a system that provides real-time and
   consistent enforcement of access control policies is shown in
   <xref target="arch"/>.  This architecture illustrates a user-centric flow, which
   includes the following functional entities and interfaces:</t>
        <ul spacing="normal">
          <li>
            <t>A service orchestrator which coordinates the overall service, including security policies. The service may be connectivity or any other access to resources that can be hosted and offered by a network.</t>
          </li>
          <li>
            <t>A Software-Defined Networking (SDN) <xref target="RFC7149"/> <xref target="RFC7426"/> controller which is responsible for maintaining endpoint-group based ACLs and mapping the endpoint group to the associated attributes information (e.g., packet header fields). An SDN controller also behaves as a Policy Decision Point (PDP) <xref target="RFC3198"/> and pushes the required access control policies to relevant Policy Enforcement Points (PEPs) <xref target="RFC3198"/>. A PDP is also known as "policy server" <xref target="RFC2753"/>.  </t>
            <t>
An SDN controller may interact with an Authentication, Authorization, and Accounting (AAA) <xref target="RFC3539"/> server or a Network Access Server (NAS) <xref target="RFC7542"/>.</t>
          </li>
          <li>
            <t>A NAS entity which handles authentication requests. The NAS interacts with an AAA server to complete user authentication using protocols like RADIUS <xref target="RFC2865"/>. When access is granted, the AAA server provides the group identifier (group ID) to which the user belongs when the user first logs onto the network.  </t>
            <t>
A new RADIUS attribute is defined in <xref target="sec-radius"/> for this purpose.</t>
          </li>
          <li>
            <t>The AAA server provides a collection of authentication, authorization, and accounting functions. The AAA server is responsible for centralized user information management. The AAA server is preconfigured with user credentials (e.g., username and password), possible group identities and related user attributes (users may be divided into different groups based on different user attributes).</t>
          </li>
          <li>
            <t>The Policy Enforcement Point (PEP) is the central entity which is responsible for enforcing appropriate access control policies. A first deployment scenario assumes that the SDN controller maps the group ID to the related common packet header and delivers packet header fields based ACL policies to the required PEPs. Another deployment scenario may require that PEPs map incoming packets to their associated source and/or destination endpoint-group IDs, and acts upon the endpoint-group ID-based ACL policies (e.g., a group identifier may be carried in packet headers such as discussed in <xref section="6.2.3" sectionFormat="of" target="RFC9638"/>).  </t>
            <t>
Multiple PEPs may be involved in a network.  </t>
            <t>
A PEP exposes a YANG-based interface (e.g., NETCONF <xref target="RFC6241"/>) to an SDN controller.</t>
          </li>
        </ul>
        <t><xref target="arch"/> provides the overall architecture and procedure for policy-based access control management.</t>
        <figure anchor="arch">
          <name>An Example Architecture for User Group-based Policy Management</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="536" viewBox="0 0 536 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 16,144 L 16,176" fill="none" stroke="black"/>
                <path d="M 16,320 L 16,352" fill="none" stroke="black"/>
                <path d="M 80,144 L 80,176" fill="none" stroke="black"/>
                <path d="M 80,320 L 80,352" fill="none" stroke="black"/>
                <path d="M 104,160 L 104,288" fill="none" stroke="black"/>
                <path d="M 152,144 L 152,192" fill="none" stroke="black"/>
                <path d="M 176,272 L 176,384" fill="none" stroke="black"/>
                <path d="M 192,192 L 192,272" fill="none" stroke="black"/>
                <path d="M 192,304 L 192,352" fill="none" stroke="black"/>
                <path d="M 224,144 L 224,192" fill="none" stroke="black"/>
                <path d="M 272,144 L 272,192" fill="none" stroke="black"/>
                <path d="M 288,32 L 288,64" fill="none" stroke="black"/>
                <path d="M 288,224 L 288,272" fill="none" stroke="black"/>
                <path d="M 344,64 L 344,88" fill="none" stroke="black"/>
                <path d="M 344,104 L 344,144" fill="none" stroke="black"/>
                <path d="M 344,192 L 344,224" fill="none" stroke="black"/>
                <path d="M 376,304 L 376,352" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,64" fill="none" stroke="black"/>
                <path d="M 392,304 L 392,336" fill="none" stroke="black"/>
                <path d="M 416,144 L 416,192" fill="none" stroke="black"/>
                <path d="M 416,224 L 416,272" fill="none" stroke="black"/>
                <path d="M 512,304 L 512,336" fill="none" stroke="black"/>
                <path d="M 528,272 L 528,384" fill="none" stroke="black"/>
                <path d="M 288,32 L 392,32" fill="none" stroke="black"/>
                <path d="M 288,64 L 392,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 448,96" fill="none" stroke="black"/>
                <path d="M 16,144 L 80,144" fill="none" stroke="black"/>
                <path d="M 152,144 L 224,144" fill="none" stroke="black"/>
                <path d="M 272,144 L 416,144" fill="none" stroke="black"/>
                <path d="M 80,160 L 104,160" fill="none" stroke="black"/>
                <path d="M 16,176 L 80,176" fill="none" stroke="black"/>
                <path d="M 224,176 L 272,176" fill="none" stroke="black"/>
                <path d="M 152,192 L 224,192" fill="none" stroke="black"/>
                <path d="M 272,192 L 416,192" fill="none" stroke="black"/>
                <path d="M 288,224 L 416,224" fill="none" stroke="black"/>
                <path d="M 176,272 L 528,272" fill="none" stroke="black"/>
                <path d="M 104,288 L 176,288" fill="none" stroke="black"/>
                <path d="M 192,304 L 376,304" fill="none" stroke="black"/>
                <path d="M 392,304 L 512,304" fill="none" stroke="black"/>
                <path d="M 16,320 L 80,320" fill="none" stroke="black"/>
                <path d="M 80,336 L 176,336" fill="none" stroke="black"/>
                <path d="M 392,336 L 512,336" fill="none" stroke="black"/>
                <path d="M 16,352 L 80,352" fill="none" stroke="black"/>
                <path d="M 192,352 L 376,352" fill="none" stroke="black"/>
                <path d="M 176,384 L 528,384" fill="none" stroke="black"/>
                <path class="jump" d="M 344,104 C 350,104 350,88 344,88" fill="none" stroke="black"/>
                <g class="text">
                  <text x="340" y="52">Orchestrator</text>
                  <text x="40" y="84">Service</text>
                  <text x="376" y="84">(Step</text>
                  <text x="412" y="84">1)</text>
                  <text x="40" y="116">Network</text>
                  <text x="236" y="132">Step</text>
                  <text x="264" y="132">4</text>
                  <text x="36" y="164">User</text>
                  <text x="68" y="164">#1</text>
                  <text x="184" y="164">AAA</text>
                  <text x="296" y="164">SDN</text>
                  <text x="356" y="164">Controller</text>
                  <text x="188" y="180">Server</text>
                  <text x="336" y="180">PDP</text>
                  <text x="452" y="228">Step</text>
                  <text x="480" y="228">5</text>
                  <text x="44" y="244">Step</text>
                  <text x="72" y="244">2</text>
                  <text x="220" y="244">Step</text>
                  <text x="248" y="244">3</text>
                  <text x="232" y="324">Network</text>
                  <text x="292" y="324">Access</text>
                  <text x="348" y="324">Server</text>
                  <text x="432" y="324">Firewall,</text>
                  <text x="492" y="324">etc.</text>
                  <text x="36" y="340">User</text>
                  <text x="68" y="340">#2</text>
                  <text x="272" y="340">(NAS)</text>
                  <text x="368" y="372">PEP</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                                   .------------.
                                   |Orchestrator|
                                   '------+-----'
 Service                                  | (Step 1)
------------------------------------------)-------------
 Network                                  |
                           Step 4         |
 .-------.        .--------.     .--------+--------.
 |User #1+--+     |  AAA   |     | SDN Controller  |
 '-------'  |     | Server +-----+      PDP        |
            |     '----+---'     '--------+--------'
            |          |                  |
            |          |           +------+--------+  Step 5
   Step 2   |          | Step 3    |               |
            |          |           |               |
            |        .-+-----------+---------------+-------------.
            +--------+                                           |
                     | .----------------------. .--------------. |
 .-------.           | | Network Access Server| |Firewall, etc.| |
 |User #2+-----------+ |       (NAS)          | '--------------' |
 '-------'           | '----------------------'                  |
                     |                      PEP                  |
                     '-------------------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>In reference to <xref target="arch"/>, the following typical flow is experienced:</t>
        <dl>
          <dt>Step 1:</dt>
          <dd>
            <t>Administrators (or a service orchestrator) configure an SDN
controller with network-level ACLs using the YANG module defined
in <xref target="sec-UCL"/>. An example is provided in <xref target="controller-ucl"/>.</t>
          </dd>
          <dt>Step 2:</dt>
          <dd>
            <t>When a user first logs onto the network, they are
   required to be authenticated (e.g., using username and password)
   at the NAS.</t>
          </dd>
          <dt>Step 3:</dt>
          <dd>
            <t>The authentication request is then relayed to the AAA server
   using a protocol such as RADIUS <xref target="RFC2865"/>. It is assumed that the
   AAA server has been appropriately configured to store user credentials,
   e.g., username, password, group information, and other user attributes.
   This document does not restrict what authentication method is used. Administrators
   may refer to, e.g., <xref section="7.4" sectionFormat="of" target="I-D.ietf-radext-deprecating-radius"/>
   for authentication method recommendations.</t>
          </dd>
          <dt/>
          <dd>
            <t>If the authentication request succeeds, the user is placed in a
    user group with the identifier returned to the NAS
    as the authentication result (see <xref target="sec-radius"/>).
    If the authentication fails, the user is not assigned any user
    group, which also means that the user has no access (i.e., Access-Reject returned); or the user
    is assigned a special group with very limited access permissions
    for the network (as a function of the local policy). ACLs are
    enforced so that flows from that IP address are discarded
    (or rate-limited) by the network.</t>
          </dd>
          <dt/>
          <dd>
            <t>In some implementations, the AAA server can be integrated with an SDN controller.</t>
          </dd>
          <dt>Step 4:</dt>
          <dd>
            <t>Either the AAA server or the NAS notifies an SDN controller
   of the mapping between the user group ID and related common packet
   header attributes (e.g., the 5-tuple). The exact details of how such notification is performed are out scope of this specification.</t>
          </dd>
          <dt>Step 5:</dt>
          <dd>
            <t>Either group-based or packet header field-based access control policies
   are maintained on relevant PEPs under the SDN controller's management.
   Both types of ACL policy may exist on
   the PEP. <xref target="PEP-ucl"/> and <xref target="PEP-acl"/> elaborate on each case.</t>
          </dd>
        </dl>
        <t>A similar flow applies to policy management based on other endpoint group types, such as device or application groups,
except that the mapping between the group ID and related common packet
header attributes (e.g., 5-tuple) may be maintained on the SDN controller based on an inventory or an application registry. Particularly, the use of RADIUS exchanges is not required in such cases (<xref target="sec-radius"/>).</t>
        <t><xref target="implement-considerations"/> provides additional operational considerations.</t>
      </section>
      <section anchor="endpoint-group">
        <name>Endpoint Group</name>
        <section anchor="sec-ug">
          <name>User Group</name>
          <t>The user group is determined by a set of predefined policy criteria
   (e.g., source IP address, geolocation data, time of day, or device certificate).
   It uses an identifier (user group ID) to represent the collective identity of
   a group of users. Users may be moved to different user groups if their
   composite attributes, environment, and/or local enterprise policy change.</t>
          <t>A user is authenticated, and classified at the AAA server, and
   assigned to a user group.  A user's group membership may change as
   aspects of the user change.  For example, if the user group
   membership is determined solely by the source IP address, then a
   given user's group ID will change when the user is assigned a new
   IP address that falls outside of the range of addresses of the
   previous user group.</t>
          <t>This document does not make any assumption about how user groups are
   defined.  Such considerations are deployment specific and are out of
   scope.  However, and for illustration purposes, <xref target="ug-example"/> shows
   an example of how user group definitions may be characterized. User
   groups may share several common criteria.  That is, user group
   criteria are not mutually exclusive.  For example, the policy
   criteria of user groups R&amp;D Regular and R&amp;D BYOD may share the same
   set of users that belong to the R&amp;D organization, and differ only in
   the type of clients (firm-issued clients vs. users' personal
   clients).  Likewise, the same user may be assigned to different user
   groups depending on the time of day or the type of day (e.g.,
   weekdays versus weekends), etc.</t>
          <table anchor="ug-example">
            <name>User Group Examples</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">R&amp;D Regular</td>
                <td align="left">foo-10</td>
                <td align="left">R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left">R&amp;D BYOD</td>
                <td align="left">foo-11</td>
                <td align="left">Personal devices of R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left">Sales</td>
                <td align="left">foo-20</td>
                <td align="left">Sales employees</td>
              </tr>
              <tr>
                <td align="left">VIP</td>
                <td align="left">foo-30</td>
                <td align="left">VIP employees</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-dg">
          <name>Device Group</name>
          <t>The device group ID is an identifier that represents the collective
   identity of a group of enterprise devices.
   <xref target="dg-example"/> shows an example
   of how device group definitions may be characterized.</t>
          <table anchor="dg-example">
            <name>Device Group Example</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Workflow</td>
                <td align="left">bar-40</td>
                <td align="left">Workflow  resource servers</td>
              </tr>
              <tr>
                <td align="left">R&amp;D Resource</td>
                <td align="left">bar-50</td>
                <td align="left">R&amp;D resource servers</td>
              </tr>
              <tr>
                <td align="left">Printer Resource</td>
                <td align="left">bar-60</td>
                <td align="left">Printer resources</td>
              </tr>
            </tbody>
          </table>
          <t>Matching abstract device group ID instead of specified addresses in
   ACL polices helps shield the consequences of address change (e.g.,
   back-end VM-based server migration).</t>
        </section>
        <section anchor="sec-ag">
          <name>Application Group</name>
          <t>An application group is a collection of applications that share a common access control policies.
   A device may run multiple applications, and different policies might need to be
   applied to the applications and device. A single application may need to run on
   multiple devices/VMs/containers, the abstraction of application group eases the
   process of application migration. For example, the policy does not depend on the transport coordinates (i.e., 5-tuple).
   <xref target="ag-example"/> shows an example of how application group definitions may be characterized.</t>
          <table anchor="ag-example">
            <name>Application Group Examples</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Audio/Video Streaming</td>
                <td align="left">baz-70</td>
                <td align="left">Audio/Video conferencing application</td>
              </tr>
              <tr>
                <td align="left">Instant Messaging</td>
                <td align="left">baz-80</td>
                <td align="left">Messaging application</td>
              </tr>
              <tr>
                <td align="left">document Collaboration</td>
                <td align="left">baz-90</td>
                <td align="left">Real-time document editing application</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="relations-between-different-endpoint-groups">
        <name>Relations Between Different Endpoint Groups</name>
        <t>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 they may require user authentication but access rules do not differentiate between different users.
  This enables policies to be applied to the application or device group.
  A device group can be used when there is only one single application running on the device
  or different applications running but with the same access control rules.
  If there is an application running on different devices/VMs/containers, it is simpler
  to apply a single policy to the application group.</t>
      </section>
    </section>
    <section anchor="the-ucl-extension-to-the-acl-module">
      <name>The UCL Extension to the ACL Module</name>
      <section anchor="module-overview">
        <name>Module Overview</name>
        <t>This module specifies an extension to the "ietf-access-control-list" module <xref target="RFC8519"/>. This extension adds
   endpoint groups so that an endpoint group identifier can be matched upon, and also
   enable access control policy activation based on date and time conditions.</t>
        <t><xref target="ucl-tree"/> provides the tree structure of the "ietf-ucl-acl" module.</t>
        <figure anchor="ucl-tree">
          <name>UCL Extension</name>
          <artwork align="center"><![CDATA[
module: ietf-ucl-acl

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

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

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

     Editor:   Qiufang Ma
               <mailto:maqiufang1@huawei.com>
     Author:   Qin Wu
               <mailto:bill.wu@huawei.com>
     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>
     Author:   Daniel King
               <mailto:d.king@lancaster.ac.uk>";
  description
    "The User group-based Control List (UCL) YANG module augments
     the IETF Access Control Lists (ACLs) module 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 Access Control
       Entries (ACEs).";
  }

  feature match-on-group {
    description
      "Indicates support of matching on endpoint groups.";
  }
  
  feature group {
    if-feature "ucl:match-on-group";
    description
      "Indicates support of group-based ACLs.";
  }
  
  feature mixed-ipv4-group {
    if-feature "acl:match-on-ipv4 and ucl:match-on-group";
    description
      "IPv4 and group ACL combinations supported.";
  }
  
  feature mixed-ipv6-group {
    if-feature "acl:match-on-ipv6 and ucl:match-on-group";
    description
      "IPv6 and group ACL combinations supported.";
  }
  
  feature mixed-ipv4-ipv6-group {
    if-feature "acl:match-on-ipv4 and acl:match-on-ipv6 and "
             + "ucl:match-on-group";
    description
      "IPv4, IPv6, and group ACL combinations supported.";
  }
  
  feature mixed-eth-group {
    if-feature "acl:match-on-eth and ucl:match-on-group";
    description
      "Eth and group ACL combinations supported.";    
  }
  
  feature mixed-eth-ipv4-group {
    if-feature "acl:match-on-eth and acl:match-on-ipv4 and "
             + "ucl:match-on-group";
    description
      "Eth, IPv4, and group ACL combinations supported.";       
  }
  
  feature mixed-eth-ipv6-group {
    if-feature "acl:match-on-eth and acl:match-on-ipv6 and "
             + "ucl:match-on-group";
    description
      "Eth, IPv6, and group ACL combinations supported.";    
  }
  
  feature mixed-eth-ipv4-ipv6-group {
    if-feature "acl:match-on-eth and acl:match-on-ipv4 and "
             + "acl:match-on-ipv6 and ucl:match-on-group";
    description
      "Eth, IPv4, IPv6, and group ACL combinations supported.";   
  }

  identity group-acl-type {
    if-feature "group";
    base acl:acl-base;
    description
      "An ACL that matches based on an endpoint group identity,
       which can represent the collective identity of
       a group of authenticated users, end-devices, or applications.
       An endpoint group identity may be carried in the outer/inner 
       packet header (e.g., via NVO3 encapsulation), or may not 
       correspond to any field in the packet header. Matching on 
       Layer 4 header fields may also exist in the ACEs.";
  }
  
  identity mixed-ipv4-group-type {
    if-feature "mixed-ipv4-group";
    base acl:ipv4-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv4 header and endpoint group identities, which can
       represent the collective identity of a group of authenticated
       users, end-devices, or applications. Matching on Layer 4 
       header fields may also exist in the ACEs.";
  }
  
  identity mixed-ipv6-group-type {
    if-feature "mixed-ipv6-group";
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv6 header and endpoint group identities, which can
       represent the collective identity of a group of authenticated
       users, end-devices, or applications. Matching on Layer 4 
       header fields may also exist in the ACEs.";
  }
  
  identity mixed-ipv4-ipv6-group-type {
    if-feature "mixed-ipv4-ipv6-group";
    base acl:ipv4-acl-type;
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv4 header, IPv6 header, and endpoint group
       identities, which can represent the collective identity of a
       group of authenticated users, end-devices, or applications.
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }
  
  identity mixed-eth-group-type {
    if-feature "mixed-eth-group";
    base acl:eth-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header and endpoint group identities,
       which can represent the collective identity of a group of
       authenticated users, end-devices, or applications. Matching 
       on Layer 4 header fields may also exist in the ACEs.";
  }
  
  identity mixed-eth-ipv4-group-type {
    if-feature "mixed-eth-ipv4-group";
    base acl:eth-acl-type;
    base acl:ipv4-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv4 header, and endpoint group 
       identities, which can represent the collective identity of a 
       group of authenticated users, end-devices or applications. 
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }  
  
  identity mixed-eth-ipv6-group-type {
    if-feature "mixed-eth-ipv6-group";
    base acl:eth-acl-type;
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv6 header, and endpoint group 
       identities, which can represent the collective identity of 
       a group of authenticated users, end-devices or applications. 
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }  
  
  identity mixed-eth-ipv4-ipv6-group-type {
    if-feature "mixed-eth-ipv4-ipv6-group";
    base acl:eth-acl-type;
    base acl:ipv4-acl-type;    
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv4 header, IPv6 header, and endpoint 
       group identities, which can represent the collective identity 
       of a group of authenticated users, end-devices or 
       applications. Matching on Layer 4 header fields may also exist 
       in the ACEs.";
  }  
    
  identity endpoint-group-type {
    description
      "Identity for the type of endpoint group.";
  }
  
  identity user-group {
    base ucl:endpoint-group-type;
    description
      "Indicates user endpoint group type.";
  }
  
  identity device-group {
    base ucl:endpoint-group-type;
    description
      "Indicates device endpoint group type.";
  }
  
  identity application-group {
    base ucl:endpoint-group-type;
    description
      "Indicates application endpoint group type.";
  }
  
  typedef group-id-reference {
    type leafref {
      path "/acl:acls/ucl:endpoint-groups"
         + "/ucl:endpoint-group/ucl:group-id";
    }
    description
      "Defines a reference to a group identifier.";
  }

  augment "/acl:acls" {
    if-feature "ucl:group";
    description
      "Adds a container for endpoint group definition.";
    container endpoint-groups {
      description
        "Defines a container for the endpoint group list.";
      list endpoint-group {
        key "group-id";
        description
          "Definition of the endpoint group list.";
        leaf group-id {
          type string {
            length "1..64";
          }
          description
            "The endpoint group identifier that uniquely identifies
             an endpoint group.";
        }
        leaf group-type {
          type identityref {
            base endpoint-group-type;
          }
          description
            "Specifies the endpoint group type.";
        }
      }
    }
  }

  augment "/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches" {
    if-feature "ucl:match-on-group";
    description
      "Specifies how a source and/or destination endpoint group 
       index can be referenced as the match criteria in the ACEs.";
    container endpoint-group {
      when "derived-from-or-self(/acl:acls/acl:acl/acl:type, "
         + "'ucl:group-acl-type')";
      description
        "Adds new match types.";
      leaf source-group-id {
        type group-id-reference;
        description
          "The matched source endpoint group ID.";
      }
      leaf destination-group-id {
        type group-id-reference;
        description
          "The matched destination endpoint group identifier.";
      }
    }
  }

  augment "/acl:acls/acl:acl/acl:aces/acl:ace" {
    if-feature "ucl:schedule";
    description
      "Adds schedule parameters to allow the ACE to take effect  
       based on date and time.";
    container effective-schedule {
      description
        "Defines when the access control entry rules 
         are applied based on date and time condition.

         If it is not configured, the access control entry
         is immediately and always applied.";
      choice schedule-type {
        description
          "Choice based on the type of the time range.";
        container period {
          description
            "The ACE is applied based on a precise period of 
             time.";        
            uses schedule:period-of-time;
        }
        container recurrence {
          if-feature "schedule:icalendar-recurrence";
          description
            "The ACE is applied based on a recurrence rule.";
          uses schedule:icalendar-recurrence;          
        }
      }
    }
  }
}
<CODE ENDS>
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec-radius">
      <name>User Access Control Group ID RADIUS Attribute</name>
      <t>This section defines a User-Access-Group-ID RADIUS attribute which is designed for user-centric access control scenarios where network access is triggered by user authentication and used to indicate the user group ID to be used by the NAS.
For other endpoint group types, such as device group or application group, the identifiers are typically pre-provisioned
on the SDN controller based on an inventory or an application registry.</t>
      <t>The User-Access-Group-ID RADIUS attribute is
defined with a globally unique name. The definition of the attribute
follows the guidelines in <xref section="2.7.1" sectionFormat="of" target="RFC6929"/>. When
the User-Access-Group-ID RADIUS attribute is present in the RADIUS
Access-Accept, the system applies the related access control to the
users after the user authenticates.</t>
      <t>The User-Access-Group-ID Attribute is of type "string" as defined in
<xref section="3.5" sectionFormat="of" target="RFC8044"/>.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MAY</bcp14> appear in a RADIUS
Access-Accept packet.  It <bcp14>MAY</bcp14> also appear in a RADIUS Access-Request packet
as a hint to the RADIUS server to indicate a preference.  However,
the server is not required to honor such a preference. If more than
one instance of the User-Access-Group-ID Attribute appears in a RADIUS
Access-Accept packet, this means that the user is a member of many groups.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MAY</bcp14> appear in a RADIUS CoA-Request
packet.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MAY</bcp14> appear in a RADIUS Accounting-Request
packet. Specifically, this may be used by a NAS to acknowledge that the attribute
was received in the RADIUS Access-Request and the NAS is enforcing that policy.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MUST NOT</bcp14> appear in any other
RADIUS packet.</t>
      <t>The User-Access-Group-ID Attribute is structured as follows:</t>
      <dl newline="true">
        <dt>Type</dt>
        <dd>
          <t>TBA1</t>
        </dd>
        <dt>Length</dt>
        <dd>
          <t>This field indicates the total length, in octets, of all fields of
   this attribute, including the Type, Length, Extended-Type, and the
   "Value".</t>
        </dd>
        <dt/>
        <dd>
          <t>The Length <bcp14>MUST</bcp14> be at most 67 octets. The maximum length is 67 octets to accommodate the maximum group ID of 64 octets plus one octet for Type, one octet for Length, and one octet for Extended-Length.</t>
        </dd>
        <dt>Data Type</dt>
        <dd>
          <t>string (<xref section="3.5" sectionFormat="of" target="RFC8044"/>)</t>
        </dd>
        <dt>Value</dt>
        <dd>
          <t>This field contains the user group ID.</t>
        </dd>
      </dl>
    </section>
    <section anchor="radius-attributes">
      <name>RADIUS Attributes</name>
      <t><xref target="rad-att"/> provides a guide as what type of RADIUS packets
   that may contain User-Access-Group-ID Attribute, and in what
   quantity.</t>
      <table anchor="rad-att">
        <name>Table of Attributes</name>
        <thead>
          <tr>
            <th align="left">Access-Request</th>
            <th align="left">Access-Accept</th>
            <th align="left">Access-Reject</th>
            <th align="left">Access-Challenge</th>
            <th align="left">Attribute</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0+</td>
            <td align="left">0+</td>
            <td align="left">0</td>
            <td align="left">0</td>
            <td align="left">User-Access-Group-ID</td>
          </tr>
          <tr>
            <td align="left">Accounting-Request</td>
            <td align="left">CoA-Request</td>
            <td align="left">CoA-ACK</td>
            <td align="left">CoA-NACK</td>
            <td align="left">Attribute</td>
          </tr>
          <tr>
            <td align="left">0+</td>
            <td align="left">0+</td>
            <td align="left">0</td>
            <td align="left">0</td>
            <td align="left">User-Access-Group-ID</td>
          </tr>
        </tbody>
      </table>
      <t>Notation for <xref target="rad-att"/>:</t>
      <dl>
        <dt>0</dt>
        <dd>
          <t>This attribute <bcp14>MUST NOT</bcp14> be present in packet.</t>
        </dd>
        <dt>0+</dt>
        <dd>
          <t>Zero or more instances of this attribute <bcp14>MAY</bcp14> be present in packet.</t>
        </dd>
      </dl>
    </section>
    <section anchor="implement-considerations">
      <name>Operational Considerations</name>
      <section anchor="deployment-options">
        <name>Deployment Options</name>
        <t>The UCL model can be implemented in different ways.</t>
        <t>In some cases, the UCL data model is implemented at the network/administrative domain
   level with an SDN controller maintaining the dynamical mapping from endpoint
   group ID to IP/transport fields (e.g., the 5-tuple) and programing the PEPs with
   IP address/5-tuple based ACLs. In such cases, PEPs do not require 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 for this document.</t>
      </section>
      <section anchor="hardwaresoftware-implications">
        <name>Hardware/Software Implications</name>
        <t>Some devices may not have built-in capabilities to enforce group-based match policies.
   Hardware or software upgrades may be required to support such feature by involved PEPs.</t>
      </section>
      <section anchor="mapping-consistency">
        <name>Mapping Consistency</name>
        <t>The specification requires that adequate setup is put in place to map a Group ID to 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 the Network Configuration Protocol (NETCONF) <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management
   protocols (1) have to use a secure transport layer (e.g., Secure Shell (SSH) <xref target="RFC4252"/>, TLS <xref target="I-D.ietf-tls-rfc8446bis"/>, and
   QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
        <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
        <t>There are a number of data nodes defined in this YANG module that are
   writable/creatable/deletable (i.e., "config true", which is the
   default).  All writable data nodes are likely to be sensitive or
   vulnerable in some network environments.  Write
   operations (e.g., edit-config) and delete operations to these data
   nodes without proper protection or authentication can have a negative
   effect on network operations.  The following subtrees and data nodes
   have particular sensitivities/vulnerabilities:</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>/acl:acls/ucl:endpoint-groups/ucl:endpoint-group:</dt>
              <dd>
                <t>This list specifies all the endpoint group entries. Unauthorized write access to this
list can allow intruders to modify the entries so as to forge an endpoint
group that does not exist or maliciously delete an existing endpoint group,
which could be used to craft an attack.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches/ucl:endpoint-group:</dt>
              <dd>
                <t>This subtree specifies a source and/or endpoint group index as match criteria in the
ACEs. Unauthorized write access to this data node may allow intruders to
modify the group identity so as to permit access that should not be
permitted, or deny access that should be permitted.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/ucl:effective-schedule:</dt>
              <dd>
                <t>It specifies the secheduling of ACLs. Unauthorized write access to this data node may allow intruders to
alter it. This may lead to service disruption or unavailability. Strict access control must be implemented for write operations on this subtree to ensure that only authorized users can modify it.</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>Some of the readable data nodes in this YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes. Specifically, the following
   subtrees and data nodes have particular sensitivities/
   vulnerabilities:</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/ucl:effective-schedule:</dt>
              <dd>
                <t>It specifies when the access control entry rules are applied. An
unauthorized read access of the list will allow the attacker to determine
which rules are applied, to better craft an attack.</t>
              </dd>
            </dl>
          </li>
        </ul>
      </section>
      <section anchor="radius">
        <name>RADIUS</name>
        <t>RADIUS-related security considerations are discussed in <xref target="RFC2865"/>.
   An effort to deprecating insecure practices in RADIUS is provided in <xref target="I-D.ietf-radext-deprecating-radius"/>.</t>
        <t>This document targets deployments where a trusted relationship is in
   place between the RADIUS client and server with communication
   optionally secured by IPsec or Transport Layer Security (TLS)
   <xref target="RFC6614"/><xref target="I-D.ietf-radext-radiusdtls-bis"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="yang-1">
        <name>YANG</name>
        <t>This document registers the following URIs in the "IETF XML Registry" <xref target="RFC3688"/>.</t>
        <artwork><![CDATA[
        URI: urn:ietf:params:xml:ns:yang:ietf-ucl-acl
        Registrant Contact: The IESG.
        XML: N/A, the requested URI is an XML namespace.
]]></artwork>
        <t>This document registers the following YANG modules in the "YANG Module Names"
   registry <xref target="RFC6020"/>.</t>
        <artwork><![CDATA[
        name:               ietf-ucl-acl
        prefix:             ucl
        namespace:          urn:ietf:params:xml:ns:yang:ietf-ucl-acl
        maintained by IANA? N
        reference:          RFC XXXX
]]></artwork>
      </section>
      <section anchor="radius-1">
        <name>RADIUS</name>
        <t>This document requests IANA to assign a new RADIUS attribute type in the 241-245 range from the IANA
   registry "Radius Attribute Types" <xref target="RADIUS-Types"/>:</t>
        <table anchor="rad-reg">
          <name>RADIUS Attribute</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Data Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBA1</td>
              <td align="left">User-Access-Group-ID</td>
              <td align="left">string</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8519">
          <front>
            <title>YANG Data Model for Network Access Control Lists (ACLs)</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="S. Agarwal" initials="S." surname="Agarwal"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <author fullname="D. Blair" initials="D." surname="Blair"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a data model for Access Control Lists (ACLs). An ACL is a user-ordered set of rules used to configure the forwarding behavior in a device. Each rule is used to find a match on a packet and define actions that will be performed on the packet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8519"/>
          <seriesInfo name="DOI" value="10.17487/RFC8519"/>
        </reference>
        <reference anchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9922">
          <front>
            <title>A Common YANG Data Model for Scheduling</title>
            <author fullname="Q. Ma" initials="Q." role="editor" surname="Ma"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. King" initials="D." surname="King"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document defines common types and groupings that are meant to be used for scheduling purposes, such as events, policies, services, or resources based on date and time. For the sake of better modularity, the YANG module includes a set of recurrence-related groupings with varying levels of representation (i.e., from basic to advanced) to accommodate a variety of requirements. It also defines groupings for validating requested schedules and reporting scheduling statuses.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9922"/>
          <seriesInfo name="DOI" value="10.17487/RFC9922"/>
        </reference>
        <reference anchor="RFC6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space. In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data. This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
        <reference anchor="RFC8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>RADIUS specifications have used data types for two decades without defining them as managed entities. During this time, RADIUS implementations have named the data types and have used them in attribute definitions. This document updates the specifications to better follow established practice. We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865. We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute. Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice. This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RADIUS-Types" target="https://www.iana.org/assignments/radius-types">
          <front>
            <title>RADIUS Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC8981">
          <front>
            <title>Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="R. Draves" initials="R." surname="Draves"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>This document describes an extension to IPv6 Stateless Address Autoconfiguration that causes hosts to generate temporary addresses with randomized interface identifiers for each prefix advertised with autoconfiguration enabled. Changing addresses over time limits the window of time during which eavesdroppers and other information collectors may trivially perform address-based network-activity correlation when the same address is employed for multiple transactions by the same host. Additionally, it reduces the window of exposure of a host as being accessible via an address that becomes revealed as a result of active communication. This document obsoletes RFC 4941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8981"/>
          <seriesInfo name="DOI" value="10.17487/RFC8981"/>
        </reference>
        <reference anchor="RFC3022">
          <front>
            <title>Traditional IP Network Address Translator (Traditional NAT)</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="K. Egevang" initials="K." surname="Egevang"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>The NAT operation described in this document extends address translation introduced in RFC 1631 and includes a new type of network address and TCP/UDP port translation. In addition, this document corrects the Checksum adjustment algorithm published in RFC 1631 and attempts to discuss NAT operation and limitations in detail. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3022"/>
          <seriesInfo name="DOI" value="10.17487/RFC3022"/>
        </reference>
        <reference anchor="RFC9899">
          <front>
            <title>Extensions to the YANG Data Model for Access Control Lists (ACLs)</title>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="S. Barguil" initials="S." surname="Barguil"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>RFC 8519 defines a YANG data model for Access Control Lists (ACLs). This document specifies a set of extensions that fix many of the limitations of the ACL model as initially defined in RFC 8519. Specifically, it introduces augmentations to the ACL base model to enhance its functionality and applicability.</t>
              <t>This document also creates initial versions of IANA-maintained modules for ICMP types and IPv6 extension headers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9899"/>
          <seriesInfo name="DOI" value="10.17487/RFC9899"/>
        </reference>
        <reference anchor="RFC9797">
          <front>
            <title>Randomized and Changing Media Access Control (MAC) Addresses: Context, Network Impacts, and Use Cases</title>
            <author fullname="J. Henry" initials="J." surname="Henry"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>To limit the privacy issues created by the association between a device, its traffic, its location, and its user in IEEE 802 networks, client vendors and client OS vendors have started implementing Media Access Control (MAC) address randomization. This technology is particularly important in Wi-Fi networks (defined in IEEE 802.11) due to the over-the-air medium and device mobility. When such randomization happens, some in-network states may break, which may affect network connectivity and user experience. At the same time, devices may continue using other stable identifiers, defeating the purpose of MAC address randomization.</t>
              <t>This document lists various network environments and a range of network services that may be affected by such randomization. This document then examines settings where the user experience may be affected by in-network state disruption. Last, this document examines some existing frameworks that maintain user privacy while preserving user quality of experience and network operation efficiency.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9797"/>
          <seriesInfo name="DOI" value="10.17487/RFC9797"/>
        </reference>
        <reference anchor="RFC9638">
          <front>
            <title>Network Virtualization over Layer 3 (NVO3) Encapsulation Considerations</title>
            <author fullname="S. Boutros" initials="S." surname="Boutros"/>
            <author fullname="D. Eastlake 3rd" initials="D." role="editor" surname="Eastlake 3rd"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>The IETF Network Virtualization Overlays (NVO3) Working Group developed considerations for a common encapsulation that addresses various network virtualization overlay technical concerns. This document provides a record, for the benefit of the IETF community, of the considerations arrived at by the NVO3 Working Group starting from the output of the NVO3 encapsulation Design Team. These considerations may be helpful with future deliberations by working groups over the choice of encapsulation formats.</t>
              <t>There are implications of having different encapsulations in real environments consisting of both software and hardware implementations and within and spanning multiple data centers. For example, Operations, Administration, and Maintenance (OAM) functions such as path MTU discovery become challenging with multiple encapsulations along the data path.</t>
              <t>Based on these considerations, the NVO3 Working Group determined that Generic Network Virtualization Encapsulation (Geneve) with a few modifications is the common encapsulation. This document provides more details, particularly in Section 7.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9638"/>
          <seriesInfo name="DOI" value="10.17487/RFC9638"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC3198">
          <front>
            <title>Terminology for Policy-Based Management</title>
            <author fullname="A. Westerinen" initials="A." surname="Westerinen"/>
            <author fullname="J. Schnizlein" initials="J." surname="Schnizlein"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="M. Scherling" initials="M." surname="Scherling"/>
            <author fullname="B. Quinn" initials="B." surname="Quinn"/>
            <author fullname="S. Herzog" initials="S." surname="Herzog"/>
            <author fullname="A. Huynh" initials="A." surname="Huynh"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="J. Perry" initials="J." surname="Perry"/>
            <author fullname="S. Waldbusser" initials="S." surname="Waldbusser"/>
            <date month="November" year="2001"/>
            <abstract>
              <t>This document is a glossary of policy-related terms. It provides abbreviations, explanations, and recommendations for use of these terms. The intent is to improve the comprehensibility and consistency of writing that deals with network policy, particularly Internet Standards documents (ISDs). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3198"/>
          <seriesInfo name="DOI" value="10.17487/RFC3198"/>
        </reference>
        <reference anchor="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC7149">
          <front>
            <title>Software-Defined Networking: A Perspective from within a Service Provider Environment</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Software-Defined Networking (SDN) has been one of the major buzz words of the networking industry for the past couple of years. And yet, no clear definition of what SDN actually covers has been broadly admitted so far. This document aims to clarify the SDN landscape by providing a perspective on requirements, issues, and other considerations about SDN, as seen from within a service provider environment.</t>
              <t>It is not meant to endlessly discuss what SDN truly means but rather to suggest a functional taxonomy of the techniques that can be used under an SDN umbrella and to elaborate on the various pending issues the combined activation of such techniques inevitably raises. As such, a definition of SDN is only mentioned for the sake of clarification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7149"/>
          <seriesInfo name="DOI" value="10.17487/RFC7149"/>
        </reference>
        <reference anchor="RFC7426">
          <front>
            <title>Software-Defined Networking (SDN): Layers and Architecture Terminology</title>
            <author fullname="E. Haleplidis" initials="E." role="editor" surname="Haleplidis"/>
            <author fullname="K. Pentikousis" initials="K." role="editor" surname="Pentikousis"/>
            <author fullname="S. Denazis" initials="S." surname="Denazis"/>
            <author fullname="J. Hadi Salim" initials="J." surname="Hadi Salim"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="O. Koufopavlou" initials="O." surname="Koufopavlou"/>
            <date month="January" year="2015"/>
            <abstract>
              <t>Software-Defined Networking (SDN) refers to a new approach for network programmability, that is, the capacity to initialize, control, change, and manage network behavior dynamically via open interfaces. SDN emphasizes the role of software in running networks through the introduction of an abstraction for the data forwarding plane and, by doing so, separates it from the control plane. This separation allows faster innovation cycles at both planes as experience has already shown. However, there is increasing confusion as to what exactly SDN is, what the layer structure is in an SDN architecture, and how layers interface with each other. This document, a product of the IRTF Software-Defined Networking Research Group (SDNRG), addresses these questions and provides a concise reference for the SDN research community based on relevant peer-reviewed literature, the RFC series, and relevant documents by other standards organizations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7426"/>
          <seriesInfo name="DOI" value="10.17487/RFC7426"/>
        </reference>
        <reference anchor="RFC2753">
          <front>
            <title>A Framework for Policy-based Admission Control</title>
            <author fullname="R. Yavatkar" initials="R." surname="Yavatkar"/>
            <author fullname="D. Pendarakis" initials="D." surname="Pendarakis"/>
            <author fullname="R. Guerin" initials="R." surname="Guerin"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This document is concerned with specifying a framework for providing policy-based control over admission control decisions. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2753"/>
          <seriesInfo name="DOI" value="10.17487/RFC2753"/>
        </reference>
        <reference anchor="RFC3539">
          <front>
            <title>Authentication, Authorization and Accounting (AAA) Transport Profile</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Wood" initials="J." surname="Wood"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document discusses transport issues that arise within protocols for Authentication, Authorization and Accounting (AAA). It also provides recommendations on the use of transport by AAA protocols. This includes usage of standards-track RFCs as well as experimental proposals. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3539"/>
          <seriesInfo name="DOI" value="10.17487/RFC3539"/>
        </reference>
        <reference anchor="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="I-D.ietf-radext-deprecating-radius">
          <front>
            <title>Deprecating Insecure Practices in RADIUS</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="15" month="March" year="2026"/>
            <abstract>
              <t>   RADIUS crypto-agility was first mandated as future work by RFC 6421.
   The outcome of that work was the publication of RADIUS over TLS (RFC
   6614) and RADIUS over DTLS (RFC 7360) as experimental documents.
   Those transport protocols have been in wide-spread use for many years
   in a wide range of networks, and have recently been standardized in
   [I-D.ietf-radext-radiusdtls-bis].  TLS has proven to be a useful
   replacment for UDP (RFC 2865) and TCP (RFC 6613) transports.  With
   that knowledge, the continued use of insecure transports for RADIUS
   has serious and negative implications for privacy and security.

   The publication of the "BlastRADIUS" exploit has also shown that
   RADIUS security needs to be updated.  It is no longer acceptable for
   RADIUS to rely on MD5 for security.  It is no longer acceptable to
   send device or location information in clear text across the wider
   Internet.  This document therefore deprecates many insecure practices
   in RADIUS, and mandates support for secure TLS-based transport
   layers.  Related security issues with RADIUS are discussed, and
   recommendations are made for practices which increase both security
   and privacy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-09"/>
        </reference>
        <reference anchor="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="I-D.ietf-tls-rfc8446bis">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <abstract>
              <t>   This document specifies version 1.3 of the Transport Layer Security
   (TLS) protocol.  TLS allows client/server applications to communicate
   over the Internet in a way that is designed to prevent eavesdropping,
   tampering, and message forgery.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <author fullname="S. Venaas" initials="S." surname="Venaas"/>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="I-D.ietf-radext-radiusdtls-bis">
          <front>
            <title>RadSec: RADIUS over Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Jan-Frederik Rieckers" initials="J." surname="Rieckers">
              <organization>Deutsches Forschungsnetz | German National Research and Education Network</organization>
            </author>
            <author fullname="Margaret Cullen" initials="M." surname="Cullen">
              <organization>Painless Security</organization>
            </author>
            <author fullname="Stefan Winter" initials="S." surname="Winter">
              <organization>Fondation Restena | Restena Foundation</organization>
            </author>
            <date day="23" month="February" year="2026"/>
            <abstract>
              <t>   This document defines transport profiles for running RADIUS over
   Transport Layer Security (TLS) and Datagram Transport Layer Security
   (DTLS), allowing the secure and reliable transport of RADIUS
   messages.  RADIUS/TLS and RADIUS/DTLS are collectively referred to as
   RadSec.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-15"/>
        </reference>
        <reference anchor="I-D.smith-vxlan-group-policy">
          <front>
            <title>VXLAN Group Policy Option</title>
            <author fullname="Michael Smith" initials="M." surname="Smith">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Larry Kreeger" initials="L." surname="Kreeger">
              <organization>Arrcus, Inc.</organization>
            </author>
            <date day="22" month="October" year="2018"/>
            <abstract>
              <t>   This document defines a backward compatible extension to Virtual
   eXtensible Local Area Network (VXLAN) that allows a Tenant System
   Interface (TSI) Group Identifier to be carried for the purposes of
   policy enforcement.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-smith-vxlan-group-policy-05"/>
        </reference>
        <reference anchor="I-D.you-i2nsf-user-group-based-policy">
          <front>
            <title>User-group-based Security Policy for Service Layer</title>
            <author fullname="Jianjie You" initials="J." surname="You">
              <organization>Huawei</organization>
            </author>
            <author fullname="Myo Zarny" initials="M." surname="Zarny">
              <organization>Goldman Sachs</organization>
            </author>
            <author fullname="Christian Jacquenet" initials="C." surname="Jacquenet">
              <organization>France Telecom</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>France Telecom</organization>
            </author>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization>Huawei</organization>
            </author>
            <author fullname="John Strassner" initials="J." surname="Strassner">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sumandra Majee" initials="S." surname="Majee">
              <organization>F5 Networks</organization>
            </author>
            <date day="8" month="July" year="2016"/>
            <abstract>
              <t>   This draft defines the User-group Aware Policy Control (UAPC)
   framework, which facilitates consistent enforcement of security
   policies based on user group identity.  Policies are used to control
   security policy enforcement using a policy server and a security
   controller.  Northbound APIs are also discussed.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-you-i2nsf-user-group-based-policy-02"/>
        </reference>
        <reference anchor="I-D.yizhou-anima-ip-to-access-control-groups">
          <front>
            <title>Autonomic IP Address To Access Control Group ID Mapping</title>
            <author fullname="Yizhou Li" initials="Y." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Li Shen" initials="L." surname="Shen">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Yujing Zhou" initials="Y." surname="Zhou">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="15" month="November" year="2021"/>
            <abstract>
              <t>   This document defines the autonomic technical Objectives for IP
   address/prefix to access control group IDs mapping information.  The
   Objectives defined can be used in Generic Autonomic Signaling
   Protocol (GRASP) to make the policy enforcement point receive IP
   address and its tied access control groups information directly from
   the access authentication points and facilitate the group based
   policy enforcement.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-yizhou-anima-ip-to-access-control-groups-02"/>
        </reference>
      </references>
    </references>
    <?line 1087?>

<section anchor="examples-usage">
      <name>Examples Usage</name>
      <section anchor="controller-ucl">
        <name>Configuring the Controller Using Group based ACL</name>
        <t>Let's consider an organization that would like to manage the access of R&amp;D
   employees that bring personally owned devices (BYOD) into the workplace.</t>
        <t>The access requirements are as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Permit traffic from R&amp;D BYOD of employees, destined to R&amp;D employees'
devices every work day from 8:00:00 to 18:00:00 UTC, starting in January 1st, 2026.</t>
          </li>
          <li>
            <t>Deny traffic from R&amp;D BYOD of employees, destined to finance servers
located in the enterprise DC network starting at 8:30:00 of January 20,
2026 with an offset of -08:00 from UTC (Pacific Standard Time) and ending
at 18:00:00 in Pacific Standard Time on December 31, 2026.</t>
          </li>
        </ul>
        <t>The example shown in <xref target="ex-controller-ucl"/> illustrates the configuration of an SDN controller
   using the group-based ACL:</t>
        <figure anchor="ex-controller-ucl">
          <name>Example of UCL Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "finance server",
          "group-type": "ietf-ucl-acl:device-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-group-acl",
        "type": "ietf-ucl-acl:group-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "R&D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "finance server"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="PEP-ucl">
        <name>Configuring a PEP Using Group-based ACL</name>
        <t>This section illustrates an example to configure a PEP  using
   the group-based ACL.</t>
        <t>The PEP which enforces group-based ACL may acquire group identities
   from the AAA server if working as a NAS authenticating both the
   source endpoint and the destination endpoint users. Another case for
   a PEP enforcing a group-based ACL is to obtain the group identity of
   the source endpoint directly from the packet field
   <xref target="I-D.smith-vxlan-group-policy"/>.</t>
        <t>Assume the mapping between device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-ucl"/>
   shows the ACL configuration delivered from the controller to the PEP. This
   example is consistent with the example presented in <xref target="controller-ucl"/>.</t>
        <t>The examples in this section do not intend to be exhaustive. In particular, explicit
   IP addresses ("destination-ipv4-network" or "destination-ipv6-network") are provided only for one single rule to illustrate
   how the mapping between a group ID and IP addresses is translated into an ACL rule entry.</t>
        <figure anchor="ex-PEP-ucl">
          <name>Example of PEP Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-ucl-ipv4",
        "type": "ietf-ucl-acl:mixed-ipv4-group-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "R&D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD"
                },
                "ipv4": {
                  "destination-ipv4-network": "203.0.113.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="ex-PEP-ucl-ipv6"/> shows an example of the same policy but with a destination IPv6 prefix.</t>
        <figure anchor="ex-PEP-ucl-ipv6">
          <name>Example of PEP Configuration (ipv6)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-ucl-ipv6",
        "type": "ietf-ucl-acl:mixed-ipv6-group-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "R&D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD"
                },
                "ipv6": {
                  "destination-ipv6-network": "2001:db8:1234::/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="PEP-acl">
        <name>Configuring PEPs Using Address-based ACLs</name>
        <t>The section describes an example of configuring a PEP using
   IP address based ACL. IP address based access control policies could
   be applied to the PEP that may not understand the group information (e.g., firewall).</t>
        <t>Assume an employee in the R&amp;D department accesses the network
   wirelessly from a non-corporate laptop.
   The SDN controller associates the user group to which the employee
   belongs with the user address according to steps 1 to 4 in <xref target="overview"/>.</t>
        <t>Assume the mapping between device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-acl"/>
   shows an IPv4 address based ACL configuration delivered from
   the controller to the PEP. This example is consistent with the example
   presented in <xref target="controller-ucl"/>.</t>
        <figure anchor="ex-PEP-acl">
          <name>Example of PEP Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "acl": [
      {
        "name": "sample-acl-ipv4",
        "type": "ietf-access-control-list:ipv4-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ipv4": {
                  "destination-ipv4-network": "192.168.2.1/24",
                  "source-ipv4-network": "192.168.1.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ipv4": {
                  "destination-ipv4-network": "203.0.113.1/24",
                  "source-ipv4-network": "192.168.1.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="ex-PEP-acl-ipv6"/> shows an example of the same policy but with a destination IPv6 prefix.</t>
        <figure anchor="ex-PEP-acl-ipv6">
          <name>Example of PEP Configuration (IPv6)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "acl": [
      {
        "name": "sample-acl-ipv6",
        "type": "ietf-access-control-list:ipv6-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ipv6": {
                  "destination-ipv6-network": "2001:db8::1/64",
                  "source-ipv6-network": "2001:db8::2:1/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ipv6": {
                  "destination-ipv6-network": "2001:db8:1234::/64",
                  "source-ipv6-network": "2001:db8::2:1/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work has benefited from the discussions of User-group-based
   Security Policy over the years.  In particular, <xref target="I-D.you-i2nsf-user-group-based-policy"/>
   and <xref target="I-D.yizhou-anima-ip-to-access-control-groups"/> provided mechanisms to
   establish a mapping between the IP address/prefix of users and access
   control group IDs. The authors would like to thank Jianjie You, Myo Zarny, Christian Jacquenet, and Yizhou Li for their early contributions to these works.</t>
      <t>Thanks to Joe Clarke, Bill Fenner, Benoît Claise, Rob Wilton, David Somers-Harris,
   Alan Dekok, Heikki Vatiainen, Wen Xiang, Wei Wang, Hongwei Li, and Jensen Zhang for
   their review and comments.</t>
      <t>Thanks to Dhruv Dhody for the OPSDIR review, Alexander Pelov for INTDIR review, Valery Smyslov for the SECDIR review, and Acee Lindem for the YANGDOCTORS review.</t>
      <t>Thanks to Mahesh Jethanandani for the AD review.</t>
      <t>Thanks to Christopher Inacio, Andy Newton, Charles Eckel, Éric Vyncke, Deb Cooley, Gorry Fairhurst, Gunter Van de Velde, Jim Guichard, and Ketan Talaulikar for the IESG review.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
oP8i1Rw7noMjCf4GD723WDxw19wTaVGtU+FGDw0sD93XALyHLY3qH28boPHu
V7UBvhI0PukYhO7XG9Ovj9sG3WrELRsNHUw+fK3fwz3hz2Xrvw2E9THcfN6Q
9QfDVnqjLj62K6Tw4HuQBNfAWPgA7yN2IdS3H8zeooV1WK/vhyEUD2u0uPnN
QctLd+Gi9Q8Z8bZdbIChHTDikp0PI/UA2S7f+vtjF+wJuQqijnxujPyXUMcR
U2M/Ysq7cQssnJZiAIrePP1jd0Kuv+5Np3OGCj7pRRPNZzMsCfr1EAE+9iaL
HpUdEEIaBCK0moJxzrxw1Blh8GLgiNvhw6AWw73n+StZJomrwpq2qFCKABzw
qQDZrJU9YPVjXEXzZjeDH8Y69D0opLVmRl+E19x4ePWZjCPe/zQZNkHuNAs4
rgXd3PZ+imhH4s9z6ruLkudptCvGJnCflT2gfgPWYwILddV2K0101JRvKLh4
P6e4S9c8emQNMavGtJpiZ9Qxa6FTq4VKV55RYCOjPY2XT5SNlYC+xjLLdcNS
MLceQnuhb3HSN6qZM0/6Lia3rtMb3liLuzexitYtek0n3yEqlxqMq6mJhh3W
KNrcQCCllg80+wK0U/q+Fm/i2eBkSOdtYAbq9+VgikeUEwoatpahdEinpq2A
1KNHgQLOxOndTgOwlBO8CdF3Nm0s0YOsVloasCeU1/aqodN8cw0sJnU0BGRo
6LJoHx4vZamdQmvVCO3lhu1wz/DkNwSWvKvmXB9db/jA3rKgk1e2u8gzU7sO
Qp0gKaaZ0Ud34qGGFWJJNHitKbrDTLD3e5XltqWMwvQuALB/HNifhy2g97UN
ZDGRBjqXlAmFt6z+GdsOObuMhW5OL7zjsDX6y8g1l7tbVmSPTu3hyoyOYmd5
Jp5f7zzJBPBG+dSctRIPpus4Am3PRJ5Y6wIoSsKnMWiYZIZ/l8Db4eLjRHNj
nhM7Mz6ghlHBiikxrNOYNmmtL0ENupRgve2RddiRzGHDfeRaYDoYvr7fILB6
pSNj+3reBHsnzrsNhywWhMakNJEJJmyY+CSD60IhYN2RKyEhoGe+Qus3W2kb
IWqOV0yMLyubPmrmnvxGm6ppjbcbWP4FG8Unrcbzy24P5/tEI9OFxoVYflgE
php39h0e0tPN/+A6z5qYn36PYQxZKu9ilzDCEHY+/MOylNaCv0f0XZsLvggY
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
wgIL9f8DiC66pCD8AAA=

-->

</rfc>
