<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ucl-acl-12" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="A Policy-based Network Access Control">A YANG Data Model and RADIUS Extension for Policy-Based Network Access Control</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ucl-acl-12"/>
    <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="February" day="03"/>
    <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. Additionally, the YANG data model defined in the document also extends ACLs (Access Control Lists) 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 IP/MAC addresses
   to enforce policy-based network access control. Moreover, the document defines a Remote Authentication Dial-in
   User Service (RADIUS) attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Operations and Management Area Working Group Working Group mailing list (opsawg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/policy-based-network-acl"/>.</t>
    </note>
  </front>
  <middle>
    <?line 77?>

<section anchor="intro">
      <name>Introduction</name>
      <t>With the increased adoption of remote access technologies (e.g.,
   Virtual Private Networks (VPNs) and Bring Your Own Device (BYOD)
   policies), enterprises adopted more flexibility related to how, where,
   and when employees work and collaborate.  However, more flexibility
   comes with increased risks.  Enabling office flexibility (e.g.,
   mobility across many access locations) introduces a set of challenges
   for large-scale enterprises compared to conventional network access management approaches.
   Examples of such challenges are listed below:</t>
      <ul spacing="normal">
        <li>
          <t>Endpoints do not have stable IP addresses.  For example, Wireless
LAN (WLAN) and VPN clients, as well as back-end Virtual Machine
(VM)-based servers, can move; their IP addresses could change as a
result.  This means that relying on IP/transport fields (e.g., the
5-tuple) is inadequate to ensure consistent and efficient security
policy enforcement.  IP address-based policies may not be flexible
enough to accommodate endpoints with volatile IP addresses.</t>
        </li>
        <li>
          <t>With the massive adoption of teleworking, there is a need to
apply different security policies to the same set of endpoints under
different circumstances (e.g., prevent 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="I-D.ietf-netmod-acl-extensions"/>. To
   allow for all  ACL applications, the YANG module for policy-based network
   ACL defined in <xref target="sec-UCL"/> does not limit how it can be used.</t>
      <t>Specifically in scenarios where network access is triggered by user authentication, this document also defines a mechanism to establish a mapping between (1) the
   user group identifier (ID) and (2) common IP packet header fields and other
   encapsulating packet data (e.g., MAC address) to execute the policy-based access control.
   Additionally, the document defines a Remote Authentication Dial-in
   User Service (RADIUS) <xref target="RFC2865"/> attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information (<xref target="sec-radius"/>).</t>
      <t>Although the document cites MAC addresses as an example in some sections, the
   document does not make assumptions about which identifiers are used to trigger ACLs.
   These examples should not be considered as recommendations. Readers should be
   aware that MAC-based ACLs can be bypassed by flushing out the MAC address.
   Other implications related to the change of MAC addresses are discussed in
   <xref target="RFC9797"/>.</t>
      <t>The document does not specify how to map the policy group identifiers
   to dedicated fields, Group-Based Policy (GBP) discussed in <xref section="6.2.3" sectionFormat="of" target="RFC9638"/>
   provides an example of how that may be achieved.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
        <t>This document contains placeholder values that need to be replaced with finalized
   values at the time of publication.  This note summarizes all of the
   substitutions that are needed.  No other RFC Editor instructions are specified
   elsewhere in this document.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this document</t>
          </li>
          <li>
            <t>SSSS --&gt; the assigned RFC number for <xref target="I-D.ietf-netmod-schedule-yang"/></t>
          </li>
          <li>
            <t>2026-01-12 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The meanings of the symbols in tree diagrams are defined in
   <xref target="RFC8340"/>.</t>
      <t>The document uses the following term defined in <xref target="RFC3198"/>:</t>
      <ul spacing="normal">
        <li>
          <t>policy</t>
        </li>
      </ul>
      <t>The document uses the following terms defined in <xref target="RFC8519"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Access Control Entry (ACE)</t>
        </li>
        <li>
          <t>Access Control List (ACL)</t>
        </li>
      </ul>
      <t>The following definitions are used throughout this document:</t>
      <ul spacing="normal">
        <li>
          <dl>
            <dt>Endpoint:</dt>
            <dd>
              <t>Refers to an entity which could be an end-user, host device, or application that actually connects to a network.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <dt>Endpoint group:</dt>
            <dd>
              <t>Refers to a group of endpoints that share common access control policies.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <dt>User group:</dt>
            <dd>
              <t>A group of end-users who will be assigned the same network access policy. An end-user is defined as a person. Refer to <xref target="sec-ug"/> for more details.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <dt>device group:</dt>
            <dd>
              <t>A collection of host devices that share a common access control policies. A host device provides compute, memory, storage, and networking capabilities and connects to a network. Host devices may be servers, Internet of Things (IoT) devices, etc. Refer to <xref target="sec-dg"/> for more details.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <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>
          </dl>
        </li>
        <li>
          <dl>
            <dt>Endpoint group identifier:</dt>
            <dd>
              <t>An identifier used to represent the collective identity of
   an endpoint group. An endpoint group may include a user group, device group, or application group.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <dt>User group based Control List (UCL) data model:</dt>
            <dd>
              <t>A YANG data model for policy-based network access
control that specifies an extension to the "ietf-access-control-list" module <xref target="RFC8519"/>.
It allows policy enforcement based on a group identifier, which can be used
both at the network device level and at the network/administrative domain level.</t>
            </dd>
          </dl>
        </li>
      </ul>
    </section>
    <section anchor="sample-usage">
      <name>Sample Usage</name>
      <t>Access to some networks (e.g., enterprise networks) requires
   recognizing the endpoints' identities no matter how, where, and when they
   connect to the network resources.  Then, the network maps the
   (connecting) endpoints to their access authorization rights.  Such rights
   are defined 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 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="I-D.ietf-netmod-acl-extensions"/>.</t>
      <t>Different policies may need to be applied in different contextual situations.
   For example, companies may restrict (or grant) employees access to specific
   internal or external resources during work hours,
   while another policy is adopted during off-hours and weekends.  A
   network administrator may also require 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., IP/MAC address).
An SDN controller also behaves as a Policy Decision Point (PDP) <xref target="RFC3198"/>
and pushes the required access control policies to relevant Policy
Enforcement Points (PEPs) <xref target="RFC3198"/>.  A PDP is also known as
"policy server" <xref target="RFC2753"/>.  </t>
            <t>
An SDN controller may interact with an Authentication,
Authorization, and Accounting (AAA) <xref target="RFC3539"/> server or a Network Access Server (NAS) <xref target="RFC7542"/>.</t>
          </li>
          <li>
            <t>A Network Access Server (NAS) entity which handles authentication
requests.  The NAS interacts with an AAA server to complete user
authentication using protocols like RADIUS <xref target="RFC2865"/>. When access is granted, the AAA
server provides the group identifier (group ID) to which the user
belongs when the user first logs onto the network. A new RADIUS attribute
is defined in <xref target="sec-radius"/> for this purpose.</t>
          </li>
          <li>
            <t>The AAA server provides a collection of authentication, authorization,
and accounting functions. The AAA server is responsible for centralized user
information management. The AAA server is preconfigured with user
credentials (e.g., username and password), possible group identities
and related user attributes (users may be divided into different
groups based on different user attributes).</t>
          </li>
          <li>
            <t>The Policy Enforcement Point (PEP) is the central entity
which is responsible for enforcing appropriate access control
policies. A first deployment scenario assumes that
the SDN controller maps the group ID to the related common packet
header and delivers IP/MAC address based ACL policies to the
required PEPs.  Another deployment scenario may require that PEPs map incoming packets to their
associated source and/or destination endpoint-group IDs, and acts upon
the endpoint-group ID-based ACL policies (e.g., a group identifier may be carried in packet headers such as discussed in
<xref section="6.2.3" sectionFormat="of" target="RFC9638"/>).  </t>
            <t>
Multiple PEPs may be involved in a network.  </t>
            <t>
A PEP exposes a YANG-based interface (e.g., NETCONF <xref target="RFC6241"/>) to an SDN controller.</t>
          </li>
        </ul>
        <t><xref target="arch"/> provides the overall architecture and procedure for
   policy-based access control management.</t>
        <figure anchor="arch">
          <name>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="416" width="536" viewBox="0 0 536 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 16,144 L 16,176" fill="none" stroke="black"/>
                <path d="M 16,320 L 16,352" fill="none" stroke="black"/>
                <path d="M 80,144 L 80,176" fill="none" stroke="black"/>
                <path d="M 80,320 L 80,352" fill="none" stroke="black"/>
                <path d="M 104,160 L 104,288" fill="none" stroke="black"/>
                <path d="M 152,144 L 152,192" fill="none" stroke="black"/>
                <path d="M 176,272 L 176,384" fill="none" stroke="black"/>
                <path d="M 192,192 L 192,272" fill="none" stroke="black"/>
                <path d="M 192,304 L 192,352" fill="none" stroke="black"/>
                <path d="M 224,144 L 224,192" fill="none" stroke="black"/>
                <path d="M 272,144 L 272,192" fill="none" stroke="black"/>
                <path d="M 288,32 L 288,64" fill="none" stroke="black"/>
                <path d="M 288,224 L 288,272" fill="none" stroke="black"/>
                <path d="M 344,64 L 344,88" fill="none" stroke="black"/>
                <path d="M 344,104 L 344,144" fill="none" stroke="black"/>
                <path d="M 344,192 L 344,224" fill="none" stroke="black"/>
                <path d="M 376,304 L 376,352" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,64" fill="none" stroke="black"/>
                <path d="M 392,304 L 392,336" fill="none" stroke="black"/>
                <path d="M 416,144 L 416,192" fill="none" stroke="black"/>
                <path d="M 416,224 L 416,272" fill="none" stroke="black"/>
                <path d="M 512,304 L 512,336" fill="none" stroke="black"/>
                <path d="M 528,272 L 528,384" fill="none" stroke="black"/>
                <path d="M 288,32 L 392,32" fill="none" stroke="black"/>
                <path d="M 288,64 L 392,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 448,96" fill="none" stroke="black"/>
                <path d="M 16,144 L 80,144" fill="none" stroke="black"/>
                <path d="M 152,144 L 224,144" fill="none" stroke="black"/>
                <path d="M 272,144 L 416,144" fill="none" stroke="black"/>
                <path d="M 80,160 L 104,160" fill="none" stroke="black"/>
                <path d="M 16,176 L 80,176" fill="none" stroke="black"/>
                <path d="M 224,176 L 272,176" fill="none" stroke="black"/>
                <path d="M 152,192 L 224,192" fill="none" stroke="black"/>
                <path d="M 272,192 L 416,192" fill="none" stroke="black"/>
                <path d="M 288,224 L 416,224" fill="none" stroke="black"/>
                <path d="M 176,272 L 528,272" fill="none" stroke="black"/>
                <path d="M 104,288 L 176,288" fill="none" stroke="black"/>
                <path d="M 192,304 L 376,304" fill="none" stroke="black"/>
                <path d="M 392,304 L 512,304" fill="none" stroke="black"/>
                <path d="M 16,320 L 80,320" fill="none" stroke="black"/>
                <path d="M 80,336 L 176,336" fill="none" stroke="black"/>
                <path d="M 392,336 L 512,336" fill="none" stroke="black"/>
                <path d="M 16,352 L 80,352" fill="none" stroke="black"/>
                <path d="M 192,352 L 376,352" fill="none" stroke="black"/>
                <path d="M 176,384 L 528,384" fill="none" stroke="black"/>
                <path class="jump" d="M 344,104 C 350,104 350,88 344,88" fill="none" stroke="black"/>
                <g class="text">
                  <text x="340" y="52">Orchestrator</text>
                  <text x="40" y="84">Service</text>
                  <text x="376" y="84">(Step</text>
                  <text x="412" y="84">1)</text>
                  <text x="40" y="116">Network</text>
                  <text x="236" y="132">Step</text>
                  <text x="264" y="132">4</text>
                  <text x="36" y="164">User</text>
                  <text x="68" y="164">#1</text>
                  <text x="184" y="164">AAA</text>
                  <text x="296" y="164">SDN</text>
                  <text x="356" y="164">Controller</text>
                  <text x="188" y="180">Server</text>
                  <text x="336" y="180">PDP</text>
                  <text x="452" y="228">Step</text>
                  <text x="480" y="228">5</text>
                  <text x="44" y="244">Step</text>
                  <text x="72" y="244">2</text>
                  <text x="220" y="244">Step</text>
                  <text x="248" y="244">3</text>
                  <text x="232" y="324">Network</text>
                  <text x="292" y="324">Access</text>
                  <text x="348" y="324">Server</text>
                  <text x="432" y="324">Firewall,</text>
                  <text x="492" y="324">etc.</text>
                  <text x="36" y="340">User</text>
                  <text x="68" y="340">#2</text>
                  <text x="272" y="340">(NAS)</text>
                  <text x="368" y="372">PEP</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                                         .------------.
                                         |Orchestrator|
                                         '------+-----'
       Service                                  | (Step 1)
      ------------------------------------------)-------------
       Network                                  |
                                 Step 4         |
       .-------.        .--------.     .--------+--------.
       |User #1+--+     |  AAA   |     | SDN Controller  |
       '-------'  |     | Server +-----+      PDP        |
                  |     '----+---'     '--------+--------'
                  |          |                  |
                  |          |           +------+--------+  Step 5
         Step 2   |          | Step 3    |               |
                  |          |           |               |
                  |        .-+-----------+---------------+-------------.
                  +--------+                                           |
                           | .----------------------. .--------------. |
       .-------.           | | Network Access Server| |Firewall, etc.| |
       |User #2+-----------+ |       (NAS)          | '--------------' |
       '-------'           | '----------------------'                  |
                           |                      PEP                  |
                           '-------------------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>In reference to <xref target="arch"/>, the following typical flow is experienced:</t>
        <dl>
          <dt>Step 1:</dt>
          <dd>
            <t>Administrators (or a service orchestrator) configure an SDN
controller with network-level ACLs using the YANG module defined
in <xref target="sec-UCL"/>. An example is provided in <xref target="controller-ucl"/>.</t>
          </dd>
          <dt>Step 2:</dt>
          <dd>
            <t>When a user first logs onto the network, they are
required to be authenticated (e.g., using username and password)
at the NAS.</t>
          </dd>
          <dt>Step 3:</dt>
          <dd>
            <t>The authentication request is then relayed to the AAA server
using a protocol such as RADIUS <xref target="RFC2865"/>. It is assumed that the
AAA server has been appropriately configured to store user credentials,
e.g., username, password, group information, and other user attributes.
This document does not restrict what authentication method is used. Administrators
may refer to, e.g., <xref section="7.4" sectionFormat="of" target="I-D.ietf-radext-deprecating-radius"/>
for authentication method recommendations.
If the authentication request succeeds, the user is placed in a
user group with the identifier returned to the NAS
as the authentication result (see <xref target="sec-radius"/>).
If the authentication fails, the user is not assigned any user
group, which also means that the user has no access (i.e., 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.
In some implementations, the AAA server can be integrated with an SDN controller.</t>
          </dd>
          <dt>Step 4:</dt>
          <dd>
            <t>Either the AAA server or the NAS notifies an SDN controller
of the mapping between the user group ID and related common packet
header attributes (e.g., IP/MAC address). The exact details of how such notification is performed are out scope of this specification.</t>
          </dd>
          <dt>Step 5:</dt>
          <dd>
            <t>Either group or IP/MAC address-based access control policies
are maintained on relevant PEPs under the SDN controller's management.
Whether the PEP enforces the group or IP/MAC address-based ACL is
implementation specific. Both types of ACL policy may exist on
the PEP. <xref target="PEP-ucl"/> and <xref target="PEP-acl"/> elaborate on each case.</t>
          </dd>
        </dl>
        <t>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., IP/MAC address) 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 Example</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">R&amp;D</td>
                <td align="left">foo-10</td>
                <td align="left">R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left">R&amp;D BYOD</td>
                <td align="left">foo-11</td>
                <td align="left">Personal devices of R&amp;D employees</td>
              </tr>
              <tr>
                <td align="left">Sales</td>
                <td align="left">foo-20</td>
                <td align="left">Sales employees</td>
              </tr>
              <tr>
                <td align="left">VIP</td>
                <td align="left">foo-30</td>
                <td align="left">VIP employees</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-dg">
          <name>Device Group</name>
          <t>The device group ID is an identifier that represents the collective
   identity of a group of enterprise end-devices.  An enterprise device
   could be a server that hosts applications or software that deliver
   services to enterprise users.  It could also be an enterprise IoT
   device that serves a limited purpose, e.g., a printer that allows
   users to scan and print. <xref target="dg-example"/> shows an example
   of how device group definitions may be characterized.</t>
          <table anchor="dg-example">
            <name>Device Group Example</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Workflow</td>
                <td align="left">bar-40</td>
                <td align="left">Workflow  resource servers</td>
              </tr>
              <tr>
                <td align="left">R&amp;D Resource</td>
                <td align="left">bar-50</td>
                <td align="left">R&amp;D resource servers</td>
              </tr>
              <tr>
                <td align="left">Printer Resource</td>
                <td align="left">bar-60</td>
                <td align="left">Printer resources</td>
              </tr>
            </tbody>
          </table>
          <t>Users accessing an enterprise device should be strictly controlled.
   Matching abstract device group ID instead of specified addresses in
   ACL polices helps shield the consequences of address change (e.g.,
   back-end VM-based server migration).</t>
        </section>
        <section anchor="sec-ag">
          <name>Application Group</name>
          <t>An application group is a collection of applications that share a common access control policies.
   A device may run multiple applications, and different policies might need to be
   applied to the applications and device. A single application may need to run on
   multiple devices/VMs/containers, the abstraction of application group eases the
   process of application migration. For example, the policy does not depend on the transport coordinates (i.e., 5-tuple).
   <xref target="ag-example"/> shows an example of how application group definitions may be characterized.</t>
          <table anchor="ag-example">
            <name>Application Group Example</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Audio/Video Streaming</td>
                <td align="left">baz-70</td>
                <td align="left">Audio/Video conferencing application</td>
              </tr>
              <tr>
                <td align="left">Instant Messaging</td>
                <td align="left">baz-80</td>
                <td align="left">Messaging application</td>
              </tr>
              <tr>
                <td align="left">document Collaboration</td>
                <td align="left">baz-90</td>
                <td align="left">Real-time document editing application</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="relations-between-different-endpoint-groups">
        <name>Relations Between Different Endpoint Groups</name>
        <t>Policies enforcement can be targeted to different endpoint groups in different scenarios.
  For example, when a user connects to the network and accesses an application hosted on one or multiple devices, access policies may be applied to different user groups.
  In some cases, applications and devices may operate and run without requiring any user interventions,
  or 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="I-D.ietf-netmod-schedule-yang"/>, respectively.</t>
      </section>
      <section anchor="sec-UCL">
        <name>The "ietf-ucl-acl" YANG Module</name>
        <t>This module imports types and groupings defined in the "ietf-schedule" module
   <xref target="I-D.ietf-netmod-schedule-yang"/>. It also augments the "ietf-access-control-list" module (<xref section="4.1" sectionFormat="of" target="RFC8519"/>).</t>
        <sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "ietf-ucl-acl@2026-01-12.yang"
module ietf-ucl-acl {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ucl-acl";
  prefix ucl;

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

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

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

     Copyright (c) 2026 IETF Trust and the persons identified
     as authors of the code. All rights reserved.

     Redistribution and use in source and binary forms, with
     or without modification, is permitted pursuant to, and
     subject to the license terms contained in, the Revised
     BSD License set forth in Section 4.c of the IETF Trust's
     Legal Provisions Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

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

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

  revision 2026-01-12 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Data Model and RADIUS Extension for
                 Policy-based Network Access Control";
  }

  feature schedule {
    description
      "Indicates support of schedule-based ACEs.";
  }

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

  identity group-acl-type {
    if-feature "group";
    base acl:acl-base;
    description
      "An Access Control List (ACL) that matches based on an endpoint
       group identity, which can represent the collective identity of
       a group of authenticated users, end-devices, or applications.
       An endpoint group identity may be carried in the outer/inner 
       packet header (e.g., via NVO3 encapsulation), or may not 
       correspond to any field in the packet header. Matching on 
       Layer 4 header fields may also exist in the Access Control 
       Entries (ACEs).";
  }
  
  identity mixed-ipv4-group-type {
    if-feature "mixed-ipv4-group";
    base acl:ipv4-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv4 header and endpoint group identities, which can
       represent the collective identity of a group of authenticated
       users, end-devices, or applications. Matching on Layer 4 
       header fields may also exist in the ACEs.";
  }
  
  identity mixed-ipv6-group-type {
    if-feature "mixed-ipv6-group";
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv6 header and endpoint group identities, which can
       represent the collective identity of a group of authenticated
       users, end-devices, or applications. Matching on Layer 4 
       header fields may also exist in the ACEs.";
  }
  
  identity mixed-ipv4-ipv6-group-type {
    if-feature "mixed-ipv4-ipv6-group";
    base acl:ipv4-acl-type;
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the IPv4 header, IPv6 header, and endpoint group
       identities, which can represent the collective identity of a
       group of authenticated users, end-devices, or applications.
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }
  
  identity mixed-eth-group-type {
    if-feature "mixed-eth-group";
    base acl:eth-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header and endpoint group identities,
       which can represent the collective identity of a group of
       authenticated users, end-devices, or applications. Matching 
       on Layer 4 header fields may also exist in the ACEs.";
  }
  
  identity mixed-eth-ipv4-group-type {
    if-feature "mixed-eth-ipv4-group";
    base acl:eth-acl-type;
    base acl:ipv4-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv4 header, and endpoint group 
       identities, which can represent the collective identity of a 
       group of authenticated users, end-devices or applications. 
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }  
  
  identity mixed-eth-ipv6-group-type {
    if-feature "mixed-eth-ipv6-group";
    base acl:eth-acl-type;
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv6 header, and endpoint group 
       identities, which can represent the collective identity of 
       a group of authenticated users, end-devices or applications. 
       Matching on Layer 4 header fields may also exist in the
       ACEs.";
  }  
  
  identity mixed-eth-ipv4-ipv6-group-type {
    if-feature "mixed-eth-ipv4-ipv6-group";
    base acl:eth-acl-type;
    base acl:ipv4-acl-type;    
    base acl:ipv6-acl-type;
    base ucl:group-acl-type;
    description
      "An ACL that contains a mix of entries that match on fields
       in the Ethernet header, IPv4 header, IPv6 header, and endpoint 
       group identities, which can represent the collective identity 
       of a group of authenticated users, end-devices or 
       applications. Matching on Layer 4 header fields may also exist 
       in the ACEs.";
  }  
    
  identity endpoint-group-type {
    description
      "Identity for the type of endpoint group.";
  }
  
  identity user-group {
    base ucl:endpoint-group-type;
    description
      "Identity for the user endpoint group type.";
  }
  
  identity device-group {
    base ucl:endpoint-group-type;
    description
      "Identity for the device endpoint group type.";
  }
  
  identity application-group {
    base ucl:endpoint-group-type;
    description
      "Identity for the 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 ID.";
      }
    }
  }

  augment "/acl:acls/acl:acl/acl:aces/acl:ace" {
    if-feature "ucl:schedule";
    description
      "Adds schedule parameters to allow the ACE to take effect  
       based on date and time.";
    container effective-schedule {
      description
        "Defines when the access control entry rules 
         are 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 NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management
   protocols (1) have to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
   QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
        <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
        <t>There are a number of data nodes defined in this YANG module that are
   writable/creatable/deletable (i.e., "config true", which is the
   default).  All writable data nodes are likely to be sensitive or
   vulnerable in some network environments.  Write
   operations (e.g., edit-config) and delete operations to these data
   nodes without proper protection or authentication can have a negative
   effect on network operations.  The following subtrees and data nodes
   have particular sensitivities/vulnerabilities:</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>/acl:acls/ucl:endpoint-groups/ucl:endpoint-group:</dt>
              <dd>
                <t>This list specifies all the endpoint group entries. Unauthorized write access to this
list can allow intruders to modify the entries so as to forge an endpoint
group that does not exist or maliciously delete an existing endpoint group,
which could be used to craft an attack.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches/ucl:endpoint-group:</dt>
              <dd>
                <t>This subtree specifies a source and/or endpoint group index as match criteria in the
ACEs. Unauthorized write access to this data node may allow intruders to
modify the group identity so as to permit access that should not be
permitted, or deny access that should be permitted.</t>
              </dd>
            </dl>
          </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 from the IANA
   registry "Radius Attribute Types" <xref target="RADIUS-Types"/>:</t>
        <table anchor="rad-reg">
          <name>RADIUS Attribute</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Data Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBA1</td>
              <td align="left">User-Access-Group-ID</td>
              <td align="left">string</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8519">
          <front>
            <title>YANG Data Model for Network Access Control Lists (ACLs)</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="S. Agarwal" initials="S." surname="Agarwal"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <author fullname="D. Blair" initials="D." surname="Blair"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a data model for Access Control Lists (ACLs). An ACL is a user-ordered set of rules used to configure the forwarding behavior in a device. Each rule is used to find a match on a packet and define actions that will be performed on the packet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8519"/>
          <seriesInfo name="DOI" value="10.17487/RFC8519"/>
        </reference>
        <reference anchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-schedule-yang">
          <front>
            <title>A Common YANG Data Model for Scheduling</title>
            <author fullname="Qiufang Ma" initials="Q." surname="Ma">
              <organization>Huawei</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</organization>
            </author>
            <date day="7" month="August" year="2025"/>
            <abstract>
              <t>   This document defines common types and groupings that are meant to be
   used for scheduling purposes such as event, policy, services, or
   resources based on date and time.  For the sake of better modularity,
   the YANG module includes a set of recurrence-related groupings with
   varying levels of representation (i.e., from basic to advanced) to
   accommodate a variety of requirements.  It also defines groupings for
   validating requested schedules and reporting scheduling status.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-schedule-yang-10"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space. In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data. This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
        <reference anchor="RFC8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>RADIUS specifications have used data types for two decades without defining them as managed entities. During this time, RADIUS implementations have named the data types and have used them in attribute definitions. This document updates the specifications to better follow established practice. We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865. We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute. Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice. This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RADIUS-Types" target="https://www.iana.org/assignments/radius-types">
          <front>
            <title>RADIUS Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-netmod-acl-extensions">
          <front>
            <title>Extensions to the Access Control Lists (ACLs) YANG Model</title>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="3" month="April" year="2025"/>
            <abstract>
              <t>   RFC 8519 defines a YANG data model for Access Control Lists (ACLs).
   This document specifies a set of extensions that fix many of the
   limitations of the ACL model as initially defined in RFC 8519.
   Specifically, it introduces augmentations to the ACL base model to
   enhance its functionality and applicability.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-acl-extensions-17"/>
        </reference>
        <reference anchor="RFC9797">
          <front>
            <title>Randomized and Changing Media Access Control (MAC) Addresses: Context, Network Impacts, and Use Cases</title>
            <author fullname="J. Henry" initials="J." surname="Henry"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>To limit the privacy issues created by the association between a device, its traffic, its location, and its user in IEEE 802 networks, client vendors and client OS vendors have started implementing Media Access Control (MAC) address randomization. This technology is particularly important in Wi-Fi networks (defined in IEEE 802.11) due to the over-the-air medium and device mobility. When such randomization happens, some in-network states may break, which may affect network connectivity and user experience. At the same time, devices may continue using other stable identifiers, defeating the purpose of MAC address randomization.</t>
              <t>This document lists various network environments and a range of network services that may be affected by such randomization. This document then examines settings where the user experience may be affected by in-network state disruption. Last, this document examines some existing frameworks that maintain user privacy while preserving user quality of experience and network operation efficiency.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9797"/>
          <seriesInfo name="DOI" value="10.17487/RFC9797"/>
        </reference>
        <reference anchor="RFC9638">
          <front>
            <title>Network Virtualization over Layer 3 (NVO3) Encapsulation Considerations</title>
            <author fullname="S. Boutros" initials="S." surname="Boutros"/>
            <author fullname="D. Eastlake 3rd" initials="D." role="editor" surname="Eastlake 3rd"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>The IETF Network Virtualization Overlays (NVO3) Working Group developed considerations for a common encapsulation that addresses various network virtualization overlay technical concerns. This document provides a record, for the benefit of the IETF community, of the considerations arrived at by the NVO3 Working Group starting from the output of the NVO3 encapsulation Design Team. These considerations may be helpful with future deliberations by working groups over the choice of encapsulation formats.</t>
              <t>There are implications of having different encapsulations in real environments consisting of both software and hardware implementations and within and spanning multiple data centers. For example, Operations, Administration, and Maintenance (OAM) functions such as path MTU discovery become challenging with multiple encapsulations along the data path.</t>
              <t>Based on these considerations, the NVO3 Working Group determined that Generic Network Virtualization Encapsulation (Geneve) with a few modifications is the common encapsulation. This document provides more details, particularly in Section 7.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9638"/>
          <seriesInfo name="DOI" value="10.17487/RFC9638"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC3198">
          <front>
            <title>Terminology for Policy-Based Management</title>
            <author fullname="A. Westerinen" initials="A." surname="Westerinen"/>
            <author fullname="J. Schnizlein" initials="J." surname="Schnizlein"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="M. Scherling" initials="M." surname="Scherling"/>
            <author fullname="B. Quinn" initials="B." surname="Quinn"/>
            <author fullname="S. Herzog" initials="S." surname="Herzog"/>
            <author fullname="A. Huynh" initials="A." surname="Huynh"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="J. Perry" initials="J." surname="Perry"/>
            <author fullname="S. Waldbusser" initials="S." surname="Waldbusser"/>
            <date month="November" year="2001"/>
            <abstract>
              <t>This document is a glossary of policy-related terms. It provides abbreviations, explanations, and recommendations for use of these terms. The intent is to improve the comprehensibility and consistency of writing that deals with network policy, particularly Internet Standards documents (ISDs). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3198"/>
          <seriesInfo name="DOI" value="10.17487/RFC3198"/>
        </reference>
        <reference anchor="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC7149">
          <front>
            <title>Software-Defined Networking: A Perspective from within a Service Provider Environment</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Software-Defined Networking (SDN) has been one of the major buzz words of the networking industry for the past couple of years. And yet, no clear definition of what SDN actually covers has been broadly admitted so far. This document aims to clarify the SDN landscape by providing a perspective on requirements, issues, and other considerations about SDN, as seen from within a service provider environment.</t>
              <t>It is not meant to endlessly discuss what SDN truly means but rather to suggest a functional taxonomy of the techniques that can be used under an SDN umbrella and to elaborate on the various pending issues the combined activation of such techniques inevitably raises. As such, a definition of SDN is only mentioned for the sake of clarification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7149"/>
          <seriesInfo name="DOI" value="10.17487/RFC7149"/>
        </reference>
        <reference anchor="RFC7426">
          <front>
            <title>Software-Defined Networking (SDN): Layers and Architecture Terminology</title>
            <author fullname="E. Haleplidis" initials="E." role="editor" surname="Haleplidis"/>
            <author fullname="K. Pentikousis" initials="K." role="editor" surname="Pentikousis"/>
            <author fullname="S. Denazis" initials="S." surname="Denazis"/>
            <author fullname="J. Hadi Salim" initials="J." surname="Hadi Salim"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="O. Koufopavlou" initials="O." surname="Koufopavlou"/>
            <date month="January" year="2015"/>
            <abstract>
              <t>Software-Defined Networking (SDN) refers to a new approach for network programmability, that is, the capacity to initialize, control, change, and manage network behavior dynamically via open interfaces. SDN emphasizes the role of software in running networks through the introduction of an abstraction for the data forwarding plane and, by doing so, separates it from the control plane. This separation allows faster innovation cycles at both planes as experience has already shown. However, there is increasing confusion as to what exactly SDN is, what the layer structure is in an SDN architecture, and how layers interface with each other. This document, a product of the IRTF Software-Defined Networking Research Group (SDNRG), addresses these questions and provides a concise reference for the SDN research community based on relevant peer-reviewed literature, the RFC series, and relevant documents by other standards organizations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7426"/>
          <seriesInfo name="DOI" value="10.17487/RFC7426"/>
        </reference>
        <reference anchor="RFC2753">
          <front>
            <title>A Framework for Policy-based Admission Control</title>
            <author fullname="R. Yavatkar" initials="R." surname="Yavatkar"/>
            <author fullname="D. Pendarakis" initials="D." surname="Pendarakis"/>
            <author fullname="R. Guerin" initials="R." surname="Guerin"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This document is concerned with specifying a framework for providing policy-based control over admission control decisions. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2753"/>
          <seriesInfo name="DOI" value="10.17487/RFC2753"/>
        </reference>
        <reference anchor="RFC3539">
          <front>
            <title>Authentication, Authorization and Accounting (AAA) Transport Profile</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Wood" initials="J." surname="Wood"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document discusses transport issues that arise within protocols for Authentication, Authorization and Accounting (AAA). It also provides recommendations on the use of transport by AAA protocols. This includes usage of standards-track RFCs as well as experimental proposals. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3539"/>
          <seriesInfo name="DOI" value="10.17487/RFC3539"/>
        </reference>
        <reference anchor="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </reference>
        <reference anchor="I-D.ietf-radext-deprecating-radius">
          <front>
            <title>Deprecating Insecure Practices in RADIUS</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="6" month="November" year="2025"/>
            <abstract>
              <t>   RADIUS crypto-agility was first mandated as future work by RFC 6421.
   The outcome of that work was the publication of RADIUS over TLS (RFC
   6614) and RADIUS over DTLS (RFC 7360) as experimental documents.
   Those transport protocols have been in wide-spread use for many years
   in a wide range of networks.  They have proven their utility as
   replacements for the previous UDP (RFC 2865) and TCP (RFC 6613)
   transports.  With that knowledge, the continued use of insecure
   transports for RADIUS has serious and negative implications for
   privacy and security.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <author fullname="S. Venaas" initials="S." surname="Venaas"/>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="I-D.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="19" month="January" 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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-12"/>
        </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 1113?>

<section anchor="examples-usage">
      <name>Examples Usage</name>
      <section anchor="controller-ucl">
        <name>Configuring the Controller Using Group based ACL</name>
        <t>Let's consider an organization that would like to manage the access of R&amp;D
   employees that bring personally owned devices (BYOD) into the workplace.</t>
        <t>The access requirements are as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Permit traffic from R&amp;D BYOD of employees, destined to R&amp;D employees'
devices every work day from 8:00:00 to 18:00:00 UTC, starting in January 1st, 2026.</t>
          </li>
          <li>
            <t>Deny traffic from R&amp;D BYOD of employees, destined to finance servers
located in the enterprise DC network starting at 8:30:00 of January 20,
2026 with an offset of -08:00 from UTC (Pacific Standard Time) and ending
at 18:00:00 in Pacific Standard Time on December 31, 2026.</t>
          </li>
        </ul>
        <t>The example shown in <xref target="ex-controller-ucl"/> illustrates the configuration of an SDN controller
   using the group-based ACL:</t>
        <figure anchor="ex-controller-ucl">
          <name>Example of UCL Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "finance server",
          "group-type": "ietf-ucl-acl:device-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-group-acl",
        "type": "ietf-ucl-acl:group-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "R&D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "finance server"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="PEP-ucl">
        <name>Configuring a PEP Using Group-based ACL</name>
        <t>This section illustrates an example to configure a PEP  using
   the group-based ACL.</t>
        <t>The PEP which enforces group-based ACL may acquire group identities
   from the AAA server if working as a NAS authenticating both the
   source endpoint and the destination endpoint users. Another case for
   a PEP enforcing a group-based ACL is to obtain the group identity of
   the source endpoint directly from the packet field
   <xref target="I-D.smith-vxlan-group-policy"/>.</t>
        <t>Assume the mapping between device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-ucl"/>
   shows the ACL configuration delivered from the controller to the PEP. This
   example is consistent with the example presented in <xref target="controller-ucl"/>.</t>
        <t>The examples in this section do not intend to be exhaustive. In particular, explicit
   IP addresses ("destination-ipv4-network" or "destination-ipv6-network") are provided only for one single rule to illustrate
   how the mapping between a group ID and IP addresses is translated into an ACL rule entry.</t>
        <figure anchor="ex-PEP-ucl">
          <name>Example of PEP Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-ucl-ipv4",
        "type": "ietf-ucl-acl:mixed-ipv4-group-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "R&D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD"
                },
                "ipv4": {
                  "destination-ipv4-network": "203.0.113.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="ex-PEP-ucl-ipv6"/> shows an example of the same policy but with a destination IPv6 prefix.</t>
        <figure anchor="ex-PEP-ucl-ipv6">
          <name>Example of PEP Configuration (ipv6)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "ietf-ucl-acl:endpoint-groups": {
      "endpoint-group": [
        {
          "group-id": "R&D",
          "group-type": "ietf-ucl-acl:user-group"
        },
        {
          "group-id": "R&D BYOD",
          "group-type": "ietf-ucl-acl:user-group"
        }
      ]
    },
    "acl": [
      {
        "name": "sample-ucl-ipv6",
        "type": "ietf-ucl-acl:mixed-ipv6-group-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD",
                  "destination-group-id": "R&D"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ietf-ucl-acl:endpoint-group": {
                  "source-group-id": "R&D BYOD"
                },
                "ipv6": {
                  "destination-ipv6-network": "2001:db8:1234::/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="PEP-acl">
        <name>Configuring PEPs Using Address-based ACLs</name>
        <t>The section describes an example of configuring a PEP using
   IP address based ACL. IP address based access control policies could
   be applied to the PEP that may not understand the group information,
   e.g., firewall.</t>
        <t>Assume an employee in the R&amp;D department accesses the network
   wirelessly from a non-corporate laptop.
   The SDN controller associates the user group to which the employee
   belongs with the user address according to step 1 to 4 in <xref target="overview"/>.</t>
        <t>Assume the mapping between device group ID and IP addresses is
   predefined or acquired via device authentication. <xref target="ex-PEP-acl"/>
   shows an IPv4 address based ACL configuration delivered from
   the controller to the PEP. This example is consistent with the example
   presented in <xref target="controller-ucl"/>.</t>
        <figure anchor="ex-PEP-acl">
          <name>Example of PEP Configuration</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "acl": [
      {
        "name": "sample-acl-ipv4",
        "type": "ietf-access-control-list:ipv4-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ipv4": {
                  "destination-ipv4-network": "192.168.2.1/24",
                  "source-ipv4-network": "192.168.1.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ipv4": {
                  "destination-ipv4-network": "203.0.113.1/24",
                  "source-ipv4-network": "192.168.1.1/24"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="ex-PEP-acl-ipv6"/> shows an example of the same policy but with a destination IPv6 prefix.</t>
        <figure anchor="ex-PEP-acl-ipv6">
          <name>Example of PEP Configuration (IPv6)</name>
          <sourcecode type="json"><![CDATA[
{
  "ietf-access-control-list:acls": {
    "acl": [
      {
        "name": "sample-acl-ipv6",
        "type": "ietf-access-control-list:ipv6-acl-type",
        "aces": {
          "ace": [
            {
              "name": "rule1",
              "matches": {
                "ipv6": {
                  "destination-ipv6-network": "2001:db8::1/64",
                  "source-ipv6-network": "2001:db8::2:1/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:accept"
              },
              "ietf-ucl-acl:effective-schedule": {
                "recurrence": {
                  "recurrence-first": {
                    "start-time": "2026-01-01T08:00:00Z",
                    "duration": "PT10:00:00"
                  },
                  "frequency": "ietf-schedule:daily",
                  "byday": [
                    {
                      "weekday": "monday"
                    },
                    {
                      "weekday": "tuesday"
                    },
                    {
                      "weekday": "wednesday"
                    },
                    {
                      "weekday": "thursday"
                    },
                    {
                      "weekday": "friday"
                    }
                  ]
                }
              }
            },
            {
              "name": "rule2",
              "matches": {
                "ipv6": {
                  "destination-ipv6-network": "2001:db8:1234::/64",
                  "source-ipv6-network": "2001:db8::2:1/64"
                }
              },
              "actions": {
                "forwarding": "ietf-access-control-list:reject"
              },
              "ietf-ucl-acl:effective-schedule": {
                "period": {
                  "period-start": "2026-01-20T08:30:00-08:00",
                  "period-end": "2026-12-31T18:00:00-08:00"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work has benefited from the discussions of User-group-based
   Security Policy over the years.  In particular, <xref target="I-D.you-i2nsf-user-group-based-policy"/>
   and <xref target="I-D.yizhou-anima-ip-to-access-control-groups"/> provided mechanisms to
   establish a mapping between the IP address/prefix of users and access
   control group IDs.</t>
      <t>Jianjie You, Myo Zarny, Christian Jacquenet, Mohamed Boucadair, and
   Yizhou Li contributed to an earlier version of <xref target="I-D.you-i2nsf-user-group-based-policy"/>.
   We would like to thank the authors of that Internet-Draft on modern network access
   control mechanisms for material that assisted in thinking about this document.</t>
      <t>Thanks to Joe Clarke, Bill Fenner, Benoît Claise, Rob Wilton, David Somers-Harris,
   Alan Dekok, Heikki Vatiainen, Wen Xiang, Wei Wang, Hongwei Li, and Jensen Zhang for
   their review and comments.</t>
      <t>Thanks to Dhruv Dhody for the OPSDIR review, 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>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1923YbR5LgO74iFzpnRLYBiKRo2mZ3202Rss0eXdgiZY97
zjwUgARRrUIVui6k2JL2W/YL9iN2f2zjmpdCgQRtedq9R5xpC0BVZkZGRkZG
RMZlOBz26rTO7KHpH5mfjl58Z06SOjHPi6nNTJJPzaujk9PX5+bp29rmVVrk
ZlaU5qzI0snN8ElS2al5YevronxjjiYTW1XmuMjrssj6vWQ8Lu0VdSzvj299
f5LU9rIobw5NVU97vWkxyZMFADYtk1k9TG09GxbLKrm+HDaTbJjA/3b3elUz
XqQVAlbfLOHl06cX3/byZjG25WFvCj0e9iZFXgHsTXVo6rKxPQDpcS8pbQKg
vVzaMqmhdUWTfZ7kyaVd2Lzu9xDGy7Jolvja2fnRj9/1e2/sDfw8PeyZoTk6
fob/hFPD709+enlCj3l2E55dr5c09bwosWXPwN+syTKe3l/SZpbklzA2PSjK
yyRP/0FAHZrvm+TapvQAeoG37TSti5J+qOrS2vrQ7O7smvNiVl/DnMzRlc0b
OzA/NfMmMScpvJROanp/ktaA2z+nMFjV8C+wyodmb3dnBzDJPzQALrx1PE9z
hscukjQ7NIvk7wzn7p/mBNNoUiy6JpObH5vbJ/LfCvc4zbLRdXMr0M+LOfw7
NU+KZpJMk7TsgP9lCcPb7oVgAF/ZPLdVAN/jz3d2dmLwvoVeJjbCK489GuvY
fypopG5ITwAi2Jf/nuaXHTA+g86TqraleZ2nV7asAK54fPi9holi+yn27+GY
jt7Aj3/KtItRMhk1b3q9vCgX0P0V7KNems+Cb0ZYw/ACNl51SJ0Z4SXCNOgJ
P3Dkz39D/dCeQ//06MVRXzpLyksklHldL6vDR4+ur69HQAXJCJo8SmDTX+a4
VatHZTJNm2pY++Fo55tZklW21xsOhyYZA0UlQFH4/GKeVgb4S4PNzdTOUlg5
kzD/myL/WxD/Q1a3DFlXLqwroc3dI9TS/h6Y63k6mZtlWVylU+jMIq4mxEpM
McM347bakPtPoQWPAAyWmI6BXnLA5s3IHE2B1AA5SZbdDEw9tytw8gymBjYf
PnYzg+kXxiLnnlbIryqzFTNd8ww2WrVtrtN6TjgjLlinC2uWSQkkB5RQmbow
VbNcFmVtqsncTpvMDhPatYyccLIjQvD50k7SWTpBkBGqamLzpEyLCtBkoV0L
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
QDaYhw4xbUT56HrDwatvOQp0v7TXsbSc429iwx5dR/6xeacUcYj+OHj7Xw79
4w/fxM07ehiS28rKaw4vtLw0+2+iF27FTquP1YmvnX6r5c8hkXCeASZxabdX
8fFeUI6hANl212MHDL3SmsPGaDjconCDzhEcuPRKa4QGmN3jvbvXsbV5V7Zu
2GxWsrZ9037cYtddbVlSTNqIuAtS3l9wuoRs47/Wr/zGLKm73f24UquPn091
7+/kTe49cwt7Cl/6uRxqZaAuJhW+ZO7Fp8IG45sKQ1pgddt/t5LE+AYU4aa2
926GQa2rje5sNk1ugP7EGH8L6U3Tku0/OEZ3l+5d6Y1/dbxYfl0/b5Av5wRO
/Hc7/Dc2KTsabdAK4bn/WARlq9kdKK5svSyq1bW5rRUq1Agg79mQrWyIT3aX
QDEN90I4escGcS61KqCrW22kAt3uJYsaE3t7auLItTK8CoYs/PfpCeo8khoW
e7ufXuQcqPotCb9vnGqIvc6TK3bdpNEAxH6sHWGqM7w3HbDTi6WEU3NyOeur
hNtnzarJUzgtsht/8UE6XhjqIxoXlyfoew2g77PZ+mj9m66m+DYoPF+Ho7cT
KDHvRwc19jECLDS53NyRixn6OIhnKFHcdjvdt78ZrsQrUG0b7M4W5/+cA99H
/+cbQjqFBXGOlRFfPSfBG5IuvXbFHpydEnvS9rnpzNlCfmPoh6V5s9nnhXMK
6qA+ZXSd+GAuZ3EQNKLNxl23sj8avE6WQGdaVRPwIi1LtnyR4Z8oVFXnvssj
tCyWmCU2TPyKKZ2ug/dptWR1Uoo6W3qrjQ5fSB5azYocp6jFLBw+I23hc/CS
wUb8D8iyEnnIuUSL5og3mjd0xzlMZdBZQ2o3ReRekaNWOOaKU5DR2Ho83u69
20V9DXbmz9/2zsyxQZCe84Ge2rd0y8jWD6evTtUtlwD0ngVuvoDaMp7uGm5m
I252y5zonmEdN4ttKc5lI06EzSmjj46fBnchbJdx+eUp4xJ29ig2ysA2uC68
1yA9ZB+WIOlPkJm8tOij1vfCdZ/TRLIE1mf0UqayVqJvnr8eWzTpMBaBc//d
kX5zQFGvbBbIbsQx7WKV4qhjscjx1RbGNKzY5NIF3ppUMnucxqbQSw9szroL
6hFnxAIqjUnkTiIP0pnsj3ZxeTx1bGvIIo7R+8Pxy5On5snT705fnH8NrCRr
oeRPPmXpCBv0e4qC4CXzrsdiwZDqUMGou6Pd38NvKM5XSwzi7DdlfohtDokA
q8O3i+wwrw5JmIjWANstYVelbw389HvEPaPbrJs2De8aJdgIv7ctUH1M2oo4
OFwpfYcOSnGQ1YpU1JlBn4D90ILQW51CsPTXW2DDVLOYm+2Y70C7gDznXoDQ
ZOheXFKLuutT4v+XZ+c/fke37nhO0JUPtSG2KcXW+viGHR+aP2jVLfSIxCvJ
N7YkyqTqW9eXj7gW36OvGV5ohmiAdlhPrC4O+fGftMXXEuCrGY9Nu+5d8Kdd
dNack/E4owX340rOdfSxWv/t6zYg3eXfuuC5pVbbCljtUm0d/XXXXPua1iRQ
yHld6PrA3VEN12b2Cxmh8ggGABkF0UHL+p51FICgFDte1OIO7lXewZ0VMnsv
O7kKD0ISx8XyhvLDma3JNiVEZjAvyqaqtSqHeJxVXjIWI2uiieecUyhW3wM5
Jcsk6xwyerx0m+qAr+yU6guOG/aCzClvA+eF1zPfjOG0LylPGyb1wvOTGxel
u98DXDkhdiBxBou0FkeeqmHcOQ9YSon9tyATH3pp5FivjDLXqvCC5wRf1b+y
V6lLXPjk/ASWmRug5x8ARjWjjGfrE8WAR99DWftn9pIqZ0k+s0puhdlZkF4/
EQlPGmzp9q+xG2v91heohxj65UL9CdtWO8eiaURogEes58f5qyu8EmL6chnW
ZkWjyBHXYaLfMy+SqIu7978MgFtbEZCOHi/YODjpyNYjSYXbSHbwVQqQAWOO
8N8Dvq3fQvhzWlc2mxH/xeKMJiP0YtgJ+qH16YhSdIQpvpn/t/c28mf0iEg8
Dkf9W04FBMpl7NygXOvqybVJPVZ3msxsQsJ86xTrnAVn569cORX0VVIJRuNP
nlaj1c7ju6V7DrFQ36kV4dwNZUwwWDhGOhvqz/3VSy5Zhk0BCXkzlX/oGn2R
vrXTYbq82h+uAyQJAcE3mUndB7wzacRDcK2axVhUGAc0MMVbQTzYGMSDnwPi
wUcAcf9+cO6LU0kX9P14p3x2T4oAlGPIz9XB4JdOy9bzzSZkyUh1P7w/lTYb
wIfv3wbj5kSsgHYvxy9DPEyI8L6/Md5lnDumtiFRrZvax6ApndrmJLXRkv3y
ya1bt1/OFoLVvO/E9VBxbuPMjzHNKkUMrM41hGVMxUPYnYB4+FoQj/L1dQKM
lIshk1QUyKcnk+IslobDjNWbRovhX+AWH6c3cHl9nYN8O224C17vSETuRlpN
E4Uwgfhry0dpjrY27SQ2NIqB+CpNzIsfXj6OLYDbBIoWkdQOqIAeZiLjILH8
5hZD5sg7TAN2tYdnyQ0Mvd+qx+USxHLgqnTXWkHtAktCUOIsFFS2Ix7tcdI6
wddRV/u9NqHRE6XO4JnzIWo9XEOKsCs4pajW/0kQQgmUKFPNOMpWSBQJCS06
YUEHCQxBMrVuekiRihyhaheb0OtaQtVONqHXaNF1sbWDjRY9kD7XrOnBhmt6
sHZND35Da3rwaU1bJ94Gm/XW1e3csb/BldfdPAjJYNBBB65pFzlsSAfxmfaL
zqIuctiADNxRdgc1ONH6djpwr7UpAB/8Rhb5Kd7P5v7IvX2La+P7Lq1bUydx
3Htp/ZpqH/db240WddPjOH53w+X9rZ3WraUfxBu+gxA+xiY3997lq5Tw8Xc5
0cNaktiI6cfv3o8kfjMsv4skbmP7H4MkfoYS8s8nic2FgY4GP5tf4KN/LeLZ
RIDo1GXvTUnuVFgvUa6hJEeAd0qUt1JSCxttUoqJKXYICymoyyiorWat1AWt
WmCdhxsVywjNNI4+OmBYb5dsg0DxZV1+YZ1ASP3yjw+GRJFtDEiwxr8CNGHQ
1l0g4Q9Tq+b+MERFQKJFzmwygwfyE9pH6rnp+8iVVZCrwJ72Gby6+sYjzxzS
qfCiD+vmeOJKgEfJRldzgQf3MRpg4+Hsr7koucOMdzSdcpS3umRxYvkIsT4U
WO+7/OsrgVXS8epQ0Uzj8TocIPG2W0cz7FXVjnVy/WLV3H4L2+tgUCjSMIvg
rWMbohAf7PUu6IsISDz9wt+xTX6JdLQ7Gh3sB30pHdwGobgRrI/fi/xQAyfU
qI+OSoYBHB+6ZhfwyGB+QRBEa5K0pddu53tM99yFSq7zhe0A/YPbVmu2xEbR
dOv2zaZ2cA86xdFv7o/oD7OpfbupU+Lq0bd+M7rFonDfPhyrcJpPh5j9cliU
Q7wa3+rGFWJ8YGIu93BV3nm47Valc7sTb8HSJzwH8rkL9jTSXSsaMaAvIr1V
zn3n7r6Y+8BWWYsW4k9PPBAfQmC6Qhw/MkS30MMqWD+HtNeRs/NjvP0kcM4D
Xd6mQnjsc/3GSrymcZTcHQ3cQaYdcZ6bHBsuYVvLM4q99Tne3iOe0pJIxPxd
ccquroWhcHSOJMc7D5+EebB2ZN8UGqWLhZ1KBmeOqL7GVFcCiF/hybyghDNh
BGtAa2tI6ZhbuemEkqrLwcXObgHD9Jhnl92Ii996BOFqp9UqGhMq20NJCLnH
QMmUzcIrr1+jh5SL0UWzSCBXMaOIlK4TysMfhnoGXYbEfmsEaHQQ/8yZBzAg
yY2iPuOpdYHwe//yrSfaB/Hwffri5PxrjtPpPWDXwtaV2HfCPtSp6EgTSYoj
tCQJ7fXIq6oSP7Spk8Wwz6EkeKa+hr4vl5TSVyECtHGMCUpuUZ3A1uZwOUUk
cqNVaRWTrpfp5aUW0+tKpyE+f3TRmIonj9eNlG9Kegx6UVJDUg54zGNyjwS0
otF2pKHlve8FMM6rKFn/YaPDZhgGRUh7HylbLK6Y3XB50qqn/uscEmUus2JM
0LGgSC7dI8n41haAfVEyLmogGYqbFNOq5VxTNyy0+YX3TT/4au8rrcLWq+8B
r1Fzg4g0/EpPWuI/y1oSFHJ1TJdxeO5LTbVITupFcd61ZFbbQJMO7RTVbbg9
CoFEBCGD7bOU32d60UCBnkfK49Hnzl1/Z3+fCiRsMMTzo59wYjYpudBSFxbk
Sp1z11EDiixYaeWztHM6e0l8nHBN4tw5tMrbvhyf21rE10WuCXKB0rr6km1R
XmJoPi9yzMfHMWBhB3CUUgF3jE3rYYaZlBI1Tdx5dQdyeIrVnZgZsINoVzZ7
ymHG+WTZBTG/cemDfv76AO89UjT3ZHV+SXe+ymO7V3OuSc8zzhiduvxIyu8S
Sv9OoX1YsTKz00vrseC39nWCbroTm155B5FuwlFnbirlqCmmuJxIUmvQ22bz
fX1+YV68vAgnrUVXezL4ffCHB5hmiyEVSfgVl1l5d2iuKGrlj/2dPh2mF7B3
8d9Dc/HkaJdeekaaufyI6FTvFXUUJUGqqJNMlPgBFQye1LbGO7MZCsNqn+Tb
NloUh+dBUJ0Wu7ogZeqZdEUev1NQw/hnwTT20v8hyRrbHylkVtowDjH9E7qy
w+ocfCHQMDdfJG/TRbNQiwOA4l5ox3vWwevu8IQZHexrg2XWVJyoC7/TEc+A
xr/pbKiUSPTEzY9fkVLZ6Pzsl0IMJlu3MM9takcYWVkpZ0FfEQS4VnNbDKok
BxHIQUNYpSgbOp9xSEhU1ERl6YgypYZ5wjXoZfQ7CHUg1Y+pW2z/dwwz4GiK
963d9j5macY/pygE9/14DpRnMU6P/94H+4K+996bnagO1nsT/QCPW0+N0TSb
ndORXle5EzUNeKD7fnT87+Y9fniBn+K/LniNWQE5+O4BDkC/FVYMZZd11sR7
F5TKCsNeHEFgyr0XhQTHzqjouyMO5iQ7THVSKnuVnVHVeSe+OA5G0+Gmf7Vl
Qd5zeADquVe5YIYkOhLWdPfAvAxy9B/Hqb3fPVib75+iJE982u+XpORULqAV
g/sXFIugFUm0p3a1elReR1oLK8y0V0s3GHYmfZH26/uR80ek/kedkd7YMdes
6i6EEtW5psuIGxBjqdaWVoGgYi6hz2aoFZyePfKpMoVni8cj9qaZMrWO5GXJ
ySjxGVX70Hginwf+kbQJymyPCDeuNsOAm0riP1eEtPDIwR5dWG9WXMJ/t/yZ
MU/KKeY13qbaAEnpQ8dbYVyAJklRmHDNL1koMl64arhqX28tFqtMHeslyhCt
Cp1FP84xtjStjcX0x740O4XNz1h9aa0aiZRS8VqS69ScMMHF5xOOsHVpEwoY
o/rOytEfskhv39JEVXHUIu4Ymk6pcLFH6OKH548606oOYDJTuZdUrD5yaaM1
HsRlGcAJsU8cwkUAwkSo4Avu3mmXbTq4nCEqaKm8IkRhn0EhdJm/FmKaEIXw
z5taj2mhT7SSUVzJISgDE1JMZDRqeQ9LqBzDyTXl1Q1Y6yC3qs4y1hK2AGKP
MBCglShY6vggw+PyG3FZJJdwwV7B+a5ySViNpMbKX8VsZrZmmX2bjtMMgRwD
zDAoncZx/lHMeM+X1jjSW/F6iKvmbKNvtMUwsBvNV4HpSivdkJxXgSOhMKWC
K73tcioQV/1e6ehc6Qhnp3faXJMI2WSYeBT5AC6+GTdpVg+BwQJyE5pVqmnK
aZ2iwCQ2mkcJlHXwKP15s7xEdDm1INTMlMaJO6mJbHzji/tSKWWa2HPhp8ca
Njq58QkfwsJLOoBoWjD032kRK1tzzuhlw6cYlk2jvBrJEgSt7wK2HMhVzJQH
gTGFywiJZhPUxGJNCCtA0O51mbrRFJ0LUUjoKyemxjnrKcGmvKC6nisNRkZl
DDQFDkyEsLDIXNJqAUcFy4Fcl2DbBFyDz0lfFRmO6nM08SHpxec0ZyzAGECf
jEBtcJyXwGbIfZ2xosbk/5ydBe2TYy3A6GXlL+IyeZKCoJxNvtzf+WKcVlqc
8WJNmoSoFmTFSSLkXHCibmjok+yznOB3SrECQb3noOyT1kXkotTYF3A7X/75
G1f+mWMgn56HT0Dw3+FEpyAIdQ+APfoxtna3eVshl664aMCElt8d+Rl5lciJ
f37+vQy1v/f5HqaWuHh2roPv7x/gLxID/JfXp8fy5KudnR2sV40Qb+3FI3JF
kZbR0uNeIzaP5RKBt0/LessxoVsgLz/f1mQgjxFHMlmfK1XMG4UvxCjWL2RV
S1dYyiGcI0odll0xAjbe++qSVTOWGiVUX/sqSTMSmdf044pfOo7NiTTowM5r
N/2S84kkJm/U+kJ0lhc4oSjZRiu4l/kKl7e5hi2F0DyagKDAn3DD0CdNeN7n
ycC6g/488JZqUaxhqKTJaix8gvHP2mMIDQKKAkh2I8ReYVguCao8+6smy2G2
40zizxf+8AlqNWF5iR/xppYEE48eIUDMGD5kWLclOzXMxIZv8sFWMXDYC8On
oezIwfAaB5ZAc/Kv2MxRpCcixSpGl4nW6JDLusJxrWDYkSTxcgVtgSQwGZjk
0HZ4wn6o64DaFFN0lj1SPMnZxsrU78yt3jQdvx0GSj/5fgS5lGEJOwQxcaIb
mdc55xnAHPW01u7SjnCrNfWoV6rKQVeb0FHZTGWDUMIATcvFvnlob6VnsNcu
7WqYmNwrUCUSzSsl9fdQicEzvGiq7EaXnDJC06Fz2ZqJOICLX54ecnoJMinh
oKALg7qGQ3S0gt9NXB7uQLgsfojzllzalVkJ8dPpq8DzIYeFuxfHE5v4/rUX
h3sLVqglybqF4iQPrnsuVUHoxLUZC1guFYTUj8PCW6stxta/eA+UE5pX7roF
1achUbN93aWIkSQdHxFhSYbiRVpLHnF8NcMiJSgjSuFpkIHKZqlMpcnlICDZ
e4SVGoITR+9bFpj6o6VH4mnEkAZ8rRA2r7TVktUoBX0wUz6rcHvKSqdyrpBs
rXXXYAJtRt51nKxkPyP9O2Dw9+Dup1IsuiE2wsmDJM2dy2uPeNXquT668hKv
KeA/cgAM5GAJa6Bux+yfp7R6AxAwappJN6++g1GHh9paZv0RKHsTn43AUwNr
kDPFNiHlhzjVyr/IXKmcn3dOYabIBghXNTDkpyvjDfi8r2uqq93mrQ+cNZlQ
wx+HevdYqcDfVXMvrSYNScuc5cyXBceOMI53hplhGFBX3hrthCzCLqm4zIQp
WqzRKyXZN6qU3VVtkAuEVK38j5xdkRPJSBFVnI9UYWRjHSt1YeVVAY6ryxEN
ykUhmXrw7qHJhb5ZKmIdH/Y7T5UUvdMz+II78cKJ7uwQ7pSqLZDVt9mOT2rE
we7+hw8dKOBpT+usGqomBItI2W3u1sscgvgKngv2hXLR61enlcsPR7lz/uP5
MywGSBf2fVnpxwdffkkjk9eG2q2h7aHZNJmaayV9J1SehvJ/8d3Q6dPz71ws
HkJxaF48OhoIYySjPKAWxpSqGginS+o2En+SjecdsFM//zDlHtb/YbdolwiI
cXGws7eziguE5NDEf53T5xxs8atN8NxNKXjl3jgO6vwiLQKtfGNeuKfuPjsY
QtP7qF9OzCfaOKXVqJgIUf+iBEhcZHTVMYKuoJxdD9tEWO2/IgIPrlLwXg29
WN8Je6LvdI/xni/QEOD3USUm9/feX81RkSN1P6dn0B4vTddduLzXezzqB+c8
1ORUwUUMAK4XMe17ObyF6Q2HQypjhttUCiJVMB4o/IRWVZ3VKn/sjcyvK5ce
zxvjzbsH3mRENa7lzrdmkzIxANwPYe49lkGuSdRjM3QhRofw5OICkKRKueqM
XM6zFKNnJYytuM6tLz20hfUlt9mIit2hWEFs1BsKtGIQG9aYH9Mh1brf/h2W
pUSpFhjCDC8PiE5cDUsMV1HQBmI8ZrUhqlz5kElb4UMPjxuCiup0UpdfHu7s
wP9j0139/PrieMD1D/ikMn9O8gZzr+1WINlg9iwVjU9QjL4viLM0J88QKQ8o
WloxEQu0amNasO/k2IloDiZYiy8PHxOwMI6Ct7cjKhWlrNN7pmI2E6PHcAdn
yHDCHM3WWcI3M+do9E/KqblIF3JHxBVPRaSuPW4Avs5WKPee2Am7nzzeDdFE
Hv5SIgyrsuV8ptu3wxYBf/AVeK0W3wztSWi3ad/A4ABNpZsmtCrDHjmUNKJ/
A3rtoRvl2rSkHFhyKL6WkSlxJSTm0HlktlJxw5P/dMw09Nr0IRuHwNb+7aQ/
WH1IWbMPW0P7eCvvov5hsNEYRIW/+kAxLW88XBjCFQwonzhFvwxPqdM9Yj0k
fTwRseeKSGvoPPYDKPqdo8e+/eHrKPoH66u/RQvbxkcEC4rduxEa6LFGYByu
tLyd2DobQJNWMMHaJXcNuhz+lRhX3v/Q+uXDyny4HuSa+fj7MYf57h2HTiDt
0VfHitGzoop1wxA4Qq9BYbsSzpr3ENmuEg7OR5Mn7uxe7AhT/GsnzhHrwrmw
3dnF7g6/vorwjmkzJrVci0OkU0CnSZrddK81FbxYIVn9654kNJNaCzjUosjx
U+ebnZBu1m0N0uGv0e+1nea/Ts/1vCl/lY5nZbq+245fV6uWrGzS6HsLtFv5
1d6/EL9qnTf/JNZVkr/ar8S6JNn8GkyGZY5CdrS3g+yIREIW87rx6msJuca7
e8PHuxcq4Enj+5Jb8M2Tahzsgb9jsIcrxLIiAGpFlqe+Yi/68kSXiv0PK9pS
Qi4mgZI0DJUkeOa1o/hOOhA2gzrBbODkK0PpmyVM7KBDyPRCrvd0kTv3qv0u
W67ZDWYlRQF20+HmYtIZ6Sw01Up8oMObMCxBWrCzEVlJW6GA6s/T6WIjpeKP
co4eQbcuTdDLU/ce0cnKZFKyzRdj8hLtuKFQn2G7AhNXWspu/HzF6YacJMT4
hQavCnTA+fDqbZYoH2B/H7X2HVUV6OHi7ssOEK7kbKtaOeV+PgvrkxPGl6XV
G1q8YZyISwkasqWH1qU3qy5KVkTbXGuagwaftZQWjCu5osgfN9fYf0x8pPi+
gpRuIcS0CjObO38yfSxulGoibetSK7qXvzJwgVHsuIcObLn6Pti38wR2BYBM
bl7eqj4wWrAM+40QuRWxa8oyIhprH3HafnrgnrKjiTP10t0IXqoEJXrLhrek
36w4/FzM4O01T25dbnaXCDy9Es5WQmOQmX70SWH8JQP9Iv0Ne0bauVN960x2
+UmLa7/9SYuL3vykxd0J6Sct7p4df9LiHL9andkqWvvE3td0vlaEoN36eLQz
2t19PNp9tLf/Sev7F9f6RHbuUPdQ41hR94yJRG4SIbEwHgndgeIm7hIgTmi5
QjNuag0SD9UfSh/HF66fJL5/usR3sLnEd/BJ4vsk8X2S+KJmnyS+Dog/SXy/
GYnvYEOJ7yCW+HZ2D6fjLw939x7vHx4+Ovgk9f1/IvVxDZ4NRD+zhW9udxj8
KWCV7f1HbN4LKpyJyT/xJn8bZILiOLO22DhZuU1wBn9vQvSuV6PVX1s+v67m
JIU1YD9jn6LN23x9rgW0w7bibzXigAJMKcgX+2E3azj57HWSZZERHOckHkcu
6Qls1qlFIy45q0lgm0Y1027DDq6huwyeqEEeHatz2AblskCLq8mSZV0sR4rO
Vgx0UlXFJHU+O0GeCpgp34eQ3VpgY2xgofKgiDnnLRKUYiIPjq9Fp/3aLs0u
ftpnQzeW775K7fVv4gogia8AkpzzVK+QzK2XAtj+jnuBDS8FZDZ33Av8PIVn
U6k+ucuO2zVUlJr8ny/Z/0w7xe5Xe6Pdgy9He2yn6OTKcqSua7r7TzVxfJLt
b5s2Y/KTbP9Jtqe/35Rs/3Esq/96HOuTeP4RxfNkc6NsKAH9Riyy9xRQ1psd
1wgoB78pAeWXqdWHu6hS37Hd1zTd48afRJRPIsonEaUb4k8iyq/As7wp8F+R
b30SVD6uoHIPOyIKF2xHNEcucTDFHkKfnLPHTv/YnyVZZfuBozDF3M2Tyoxt
DpJJHfpwStg7p3yYcdxo4B+LfbiI7jMWfYoryXt1g6meR6btXykurzdFM0z3
8gqooNWp833F3tGWpS3Sf8yhUZKniwTQMqyLNgXytbTPBzsNc39x5gzYgckY
KBUls7YdjeJzfWJIltNw2pJ+PFcDKHakNlC1ukmyxj+nSf631JqfimZgnt8U
5q9Jmd8MzPG8xOwwCUZZTvDYwuwRz4s5cJqpeVI0kwTOrNLlq/qJ5mqepTwO
hddKdW4DaM2waBBGVUq84OY45QyQthUci/m833BsLOVokKQMSQ2LV1OBuuEJ
JVMoKIEH/NJK/h9iJMD5jJLlUPKYTLJAVWTU0zxROft7jzEXUjs5H9EnwEXu
138urDkG+nljB+YJJon41mIRdPhi8+L//u8aH6YVPHxVjM2PaVZjtsiTBKiA
UoyU1fB7rKTO5ViPsgTDON8Ubwbme5u+eZOaH2ATYcQ4tPoRSOE/YKUu8WNq
fqRP3xf55TV8e5ZyJuA/27yC9/6KaSvVlRzwl2L+SzTbSgatBecZaU3mZF42
V/DfYurroL08Oz85fSWtBwAiaBdoKTdnNiuu6LXTFxfhKz8kGQb6ni9uKn0D
Ozp/ehy+hXAcTawFyKG7hXsNg/1PXh5fvHxVybttKJ8ncMjNYaZIHRgDm6eu
9dGJa/T/ADzCMvjL/AAA

-->

</rfc>
