<?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.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-ucl-acl-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.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-07"/>
    <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="2025" month="March" day="20"/>
    <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 consistent and efficient enforcement of
   network access control policies based on group identity.  Moreover, 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.</t>
      <t>In addition, 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 users under
different circumstances (e.g., prevent relaying attacks against a
local attachment point to the enterprise network).  For example,
network access might be granted based upon criteria such as users'
access location, source network reputation, users' role, time-of-
day, type of network device used (e.g., corporate issued device
versus personal device), device's security posture, etc.  This
means that the network needs to recognize the users' identity and their
current context, and map the users to their correct access
entitlement to the network.</t>
        </li>
      </ul>
      <t>This document defines a YANG data model (<xref target="sec-UCL"/>) for policy-based network access control,
   which extends the IETF Access Control Lists (ACLs) module defined in <xref target="RFC8519"/>.
   This module can be used to ensure consistent enforcement of ACL policies
   based on the group identity.</t>
      <t>The ACL concept has been generalized to be device-nonspecific, and can be
   defined at network/administrative domain level <xref target="I-D.ietf-netmod-acl-extensions"/>. To
   allow for all applications of ACLs, the YANG module for policy-based network
   ACL defined in <xref target="sec-UCL"/> does not limit how it can be used.</t>
      <t>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.</t>
      <t>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="I-D.ietf-madinas-use-cases"/>.</t>
      <t>The document does not specify how to map the policy group identifiers
   to dedicated fields (e.g.,  Group Based Policy (GBP) discussed in <xref section="6.2.3" sectionFormat="of" target="RFC9638"/>).</t>
      <t>The YANG data model in this document conforms to the Network
   Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</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>2025-03-11 --&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 definition in <xref target="RFC3198"/>:</t>
      <ul spacing="normal">
        <li>
          <t>policy</t>
        </li>
      </ul>
      <t>The document uses the following definitions and acronyms 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 and acronyms are used throughout this document:</t>
      <ul spacing="normal">
        <li>
          <dl>
            <dt>User group based Control List (UCL) model:</dt>
            <dd>
              <t>A YANG data model for policy-based network access
control that specifies an extension to the "ietf-access-control-list" model <xref target="RFC8519"/>.
It allows policy enforcement based on the group identity, which can be used
both at the network device level and at the network/administrative domain level.</t>
            </dd>
          </dl>
        </li>
        <li>
          <dl>
            <dt>Endpoint:</dt>
            <dd>
              <t>refers to an end-user, host device, or application that actually connects to a network.
An end-user is defined as a person. A host device provides compute, memory,
storage and networking capabilities and connects to the network without any user intervention. Host devices refer to servers, IoTs and other devices owned
by the enterprise. An application is a software program used for a specific service.</t>
            </dd>
          </dl>
        </li>
      </ul>
    </section>
    <section anchor="sample-usage">
      <name>Sample Usage</name>
      <t>Access to some networks (e.g., enterprise networks) requires to
   recognize the users' identities no matter how, where, and when they
   connect to the network resources.  Then, the network maps the
   (connecting) users to their access authorization rights.  Such rights
   are defined following local policies.  As discussed in <xref target="intro"/>,
   because (1) there is a large number of users and (2) a user may have different
   source IP addresses in different network segments,
   deploying a network access control policy for each IP address or
   network segment is a heavy workload.  An alternate approach is to
   configure endpoint groups to classify users and enterprise devices
   and associate ACLs with endpoint groups so that endpoints in each
   group can share a group of ACL rules.  This approach greatly reduces
   the workload of the administrators and optimizes the ACL resources.</t>
      <t>The network ACLs can be provisioned on devices using specific
   mechanisms, such as <xref target="RFC8519"/> or <xref target="I-D.ietf-netmod-acl-extensions"/>.</t>
      <t>Different policies may need to be applied in different contextual situations.
   For example, companies may restrict (or grant) employees access to specific
   internal or external resources during work hours,
   while another policy is adopted during off-hours and weekends.  A
   network administrator may also require to enforce traffic shaping
   (<xref section="2.3.3.3" sectionFormat="of" target="RFC2475"/>) and policing (
   <xref section="2.3.3.4" sectionFormat="of" target="RFC2475"/>) during peak hours in order not to affect other data
   services.</t>
    </section>
    <section anchor="policy-based-network-access-control">
      <name>Policy-based Network Access Control</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>The architecture of a system that provides real-time and consistent
   enforcement of access control policies is shown in <xref target="arch"/>. This architecture
   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., user name 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"/>). More details are provided in <xref target="implement-considerations"/>.  </t>
            <t>
Multiple PEPs may be involved in a network.  </t>
            <t>
A PEP exposes a NETCONF interface <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 Architecture for Group-based Policy Management</name>
          <artwork 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>
        </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, he/she is
required to be authenticated (e.g., using user name 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., user name, 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 the identity of which is returned to the network access server
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; 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, 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).</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>
      </section>
      <section anchor="endpoint-group">
        <name>Endpoint Group</name>
        <section anchor="user-group">
          <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 moves to 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="device-group">
          <name>Device Group</name>
          <t>The device group ID is an identifier that represents the collective
   identity of a group of enterprise end devices.  An enterprise device
   could be a server that hosts applications or software that deliver
   services to enterprise users.  It could also be an enterprise IoT
   device that serves a limited purpose, e.g., a printer that allows
   users to scan, print and send emails. <xref target="dg-example"/> shows an example
   of how device group definitions may be characterized.</t>
          <table anchor="dg-example">
            <name>Device Group Example</name>
            <thead>
              <tr>
                <th align="left">Group Name</th>
                <th align="left">Group ID</th>
                <th align="left">Group Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Workflow</td>
                <td align="left">bar-40</td>
                <td align="left">Workflow  resource servers</td>
              </tr>
              <tr>
                <td align="left">R&amp;D Resource</td>
                <td align="left">bar-50</td>
                <td align="left">R&amp;D resource servers</td>
              </tr>
              <tr>
                <td align="left">Printer Resource</td>
                <td align="left">bar-60</td>
                <td align="left">Printer resources</td>
              </tr>
            </tbody>
          </table>
          <t>Users accessing an enterprise device should be strictly controlled.
   Matching abstract device group ID instead of specified addresses in
   ACL polices helps shield the consequences of address change (e.g.,
   back-end VM-based server migration).</t>
        </section>
        <section anchor="application-group">
          <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>
    <section anchor="modules-overview">
      <name>Modules Overview</name>
      <section anchor="the-ucl-extension-to-the-acl-model">
        <name>The UCL Extension to the ACL Model</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 {uacl: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 {uacl: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 {uacl:schedule}?
       +--rw (schedule-type)?
          +--:(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) {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 data model augments the "acl" list in the
   "ietf-access-control-list" model <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 data model augments the "matches" container in the IETF
   ACL model <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 data model augments the "ace" list in the "ietf-access-control-list"
   model <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. Note that the data model augments the definition of
   "recurrence" grouping with a "duration" data node to specify the duration of
   time for each occurrence the policy activation is triggered.</t>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <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 target="RFC8519"/>.</t>
        <sourcecode markers="true" name="ietf-ucl-acl@2025-03-11.yang"><![CDATA[
module ietf-ucl-acl {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ucl-acl";
  prefix uacl;

  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
    "This 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) 2025 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).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC
     itself for full legal notices.";

  revision 2025-03-11 {
    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 "uacl:match-on-group";
    description
      "Indicates support of group-based ACLs.";
  }
  
  feature mixed-ipv4-group {
    if-feature "acl:match-on-ipv4 and uacl:match-on-group";
    description
      "IPv4 and group ACL combinations supported.";
  }
  
  feature mixed-ipv6-group {
    if-feature "acl:match-on-ipv6 and uacl: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 "
             + "uacl:match-on-group";
    description
      "IPv4, IPv6, and group ACL combinations supported.";
  }
  
  feature mixed-eth-group {
    if-feature "acl:match-on-eth and uacl: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 "
             + "uacl: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 "
             + "uacl: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 uacl:match-on-group";
    description
      "Eth, IPv4, IPv6, and group ACL combinations supported.";   
  }

  identity group-acl-type {
    if-feature "group";
    base acl:acl-base;
    description
      "An Access Control List (ACL) that matches based on an endpoint
       group identity, which can represent the collective identity of
       a group of authenticated users, end devices, or applications.
       An endpoint group identity may be carried in the outer/inner 
       packet header (e.g., via NVO3 encapsulation), may also not 
       correspond to any field in the packet header. Matching on 
       Layer 4 header fields may also exist in the Access Control 
       Entries (ACEs).";
  }
  
  identity mixed-ipv4-group-type {
    if-feature "mixed-ipv4-group";
    base acl:ipv4-acl-type;
    base uacl: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 uacl: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 uacl: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 uacl: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 uacl: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 uacl: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 uacl: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 uacl:endpoint-group-type;
    description
      "Identity for the user endpoint group.";
  }
  
  identity device-group {
    base uacl:endpoint-group-type;
    description
      "Identity for the device endpoint group.";
  }
  
  identity application-group {
    base uacl:endpoint-group-type;
    description
      "Identity for the application endpoint group.";
  }
  
  typedef group-id-reference {
    type leafref {
      path "/acl:acls/uacl:endpoint-groups"
         + "/uacl:endpoint-group/uacl:group-id";
    }
    description
      "Defines a reference to a group identifier.";
  }

  augment "/acl:acls" {
    if-feature "uacl: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 "uacl: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, "
         + "'uacl: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 "uacl:schedule";
    description
      "Adds schedule parameters to allow the ACE to take effect  
       based on date and time.";
    container effective-schedule {
      description
        "Defines when the access control entry rules 
         are in effect based on date and time condition.

         If it is not configured, the access control entry
         is immediately and always in effect.";
      choice schedule-type {
        description
          "Choice based on the type of the time range.";
        case period {
          description
            "The ACE takes effect based on a precise period of 
             time.";        
            uses schedule:period-of-time;
        }
        case recurrence {
          if-feature "schedule:icalendar-recurrence";
          description
            "The ACE takes effect based on a recurrence rule.";
          uses schedule:icalendar-recurrence;          
        }
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec-radius">
      <name>User Access Control Group ID RADIUS Attribute</name>
      <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"/>.  This attribute
is used to indicate the user group ID to be used by the NAS.  When
the User-Access-Group-ID RADIUS attribute is present in the RADIUS
Access-Accept, the system applies the related access control to the
users after it authenticates.</t>
      <t>The User-Access-Group-ID Attribute is of type "string" as defined in
<xref section="3.5" sectionFormat="of" target="RFC8044"/>.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MAY</bcp14> appear in a RADIUS
Access-Accept packet.  It <bcp14>MAY</bcp14> also appear in a RADIUS Access-Request packet
as a hint to the RADIUS server to indicate a preference.  However,
the server is not required to honor such a preference. If more than
one instance of the User-Access-Group-ID Attribute appears in a RADIUS
Access-Accept packet, this means that the user is a member of many groups.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MAY</bcp14> appear in a RADIUS CoA-Request
packet.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MAY</bcp14> appear in a RADIUS Accounting-Request
packet. Specifically, this may be used by a NAS to acknowledge that the attribute
was received in the RADIUS Access-Request and the NAS is enforcing that policy.</t>
      <t>The User-Access-Group-ID Attribute <bcp14>MUST NOT</bcp14> appear in any other
RADIUS packet.</t>
      <t>The User-Access-Group-ID Attribute is structured as follows:</t>
      <dl newline="true">
        <dt>Type</dt>
        <dd>
          <t>TBA1</t>
        </dd>
        <dt>Length</dt>
        <dd>
          <t>This field indicates the total length, in octets, of all fields of
   this attribute, including the Type, Length, Extended-Type, and the
   "Value".</t>
        </dd>
        <dt/>
        <dd>
          <t>The Length <bcp14>MUST</bcp14> be at most 67 octets.</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">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>Implementation Considerations</name>
      <t>The UCL model can be implemented in different ways.</t>
      <t>In some cases, the UCL 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 model to be implemented at the network device level.
   While it eliminates the need for an SDN controller to interact frequently
   with the PEPs for reasons like the user's context of network connection change
   or VM/application migration, dedicated hardware/software support might be needed
   for PEPs to understand the endpoint group identifier. In scenarios where the NAS
   behaves as the PEP which acquires the source and/or destination endpoint group
   ID from the AAA server, ACL policy enforcement based on the group identity without
   being encapsulated into packet headers might affect the forwarding performance.
   Implementations need to evaluate the operational tradeoff (flexibility brought
   to the network vs. the complexity of implementation) carefully. Such assessment
   is out of scope of this document.</t>
    </section>
    <section anchor="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 protocols have to
   use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
   QUIC <xref target="RFC9000"/>) and 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).  These data nodes may be considered 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.
   Specifically, the following subtrees and data nodes have particular
   sensitivities/vulnerabilities:</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>/acl:acls/uacl:endpoint-groups/uacl: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/uacl:endpoint-group:</dt>
              <dd>
                <t>This subtree specifies a source and/or endpoint group index as match criteria in the
ACEs. Unauthorized write access to this data node may allow intruders to
modify the group identity so as to permit access that should not be
permitted, or deny access that should be permitted.</t>
              </dd>
            </dl>
            <t>
Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments.  It is thus
important to control read access (e.g., via get, get-config, or
notification) to these data nodes. Specifically, the following
subtrees and data nodes have particular sensitivities/
vulnerabilities:</t>
          </li>
          <li>
            <dl>
              <dt>/acl:acls/acl:acl/acl:aces/acl:ace/uacl:effective-schedule:</dt>
              <dd>
                <t>This subtree specifies when the access control entry rules are in effect. An
unauthorized read access of the list will allow the attacker to determine
which rules are in effect, to better craft an attack.</t>
              </dd>
            </dl>
          </li>
        </ul>
      </section>
      <section anchor="radius">
        <name>RADIUS</name>
        <t>RADIUS-related security considerations are discussed in <xref target="RFC2865"/>.</t>
        <t>This document targets deployments where a trusted relationship is in
   place between the RADIUS client and server with communication
   optionally secured by IPsec or Transport Layer Security (TLS)
   <xref target="RFC6614"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="yang-1">
        <name>YANG</name>
        <t>This document registers the following URIs in the "IETF XML Registry" <xref target="RFC3688"/>.</t>
        <artwork><![CDATA[
        URI: urn:ietf:params:xml:ns:yang:ietf-ucl-acl
        Registrant Contact: The IESG.
        XML: N/A, the requested URI is an XML namespace.
]]></artwork>
        <t>This document registers the following YANG modules in the "YANG Module Names"
   registry <xref target="RFC6020"/>.</t>
        <artwork><![CDATA[
        name:               ietf-ucl-acl
        prefix:             uacl
        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="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </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="16" month="March" year="2025"/>
            <abstract>
              <t>   This document defines a common schedule YANG module which is designed
   to be applicable for scheduling purposes such as event, policy,
   services, or resources based on date and time.  For the sake of
   better modularity, the 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-05"/>
        </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="http://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="27" month="February" year="2025"/>
            <abstract>
              <t>   RFC 8519 defines a YANG data model for Access Control Lists (ACLs).
   This document discusses 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-15"/>
        </reference>
        <reference anchor="I-D.ietf-madinas-use-cases">
          <front>
            <title>Randomized and Changing MAC Address: Context, Network Impacts, and Use Cases</title>
            <author fullname="Jerome Henry" initials="J." surname="Henry">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Yiu Lee" initials="Y." surname="Lee">
              <organization>Comcast</organization>
            </author>
            <date day="20" month="December" year="2024"/>
            <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 and client Operating System vendors have started
   implementing MAC address randomization.  This technology is
   particularly important in Wi-Fi [IEEE_802.11] networks 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 MAC address
   randomization purposes.

   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 two existing frameworks to maintain user privacy while
   preserving user quality of experience and network operation
   efficiency.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-madinas-use-cases-19"/>
        </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="26" month="November" year="2024"/>
            <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 recent 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.  We also discuss related security issues with RADIUS, and
   give recommendations for practices which increase both security and
   privacy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-05"/>
        </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="14" month="January" year="2025"/>
            <abstract>
              <t>   This memo provides guidelines for authors and reviewers of
   specifications containing YANG modules, 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.  The document also updates RFC 6020 by
   clarifying how modules and their revisions are handled by IANA.

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

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


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

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

<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, 2025.</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,
2025 with an offset of -08:00 from UTC (Pacific Standard Time) and ending
at 18:00:00 in Pacific Standard Time on December 31, 2025.</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>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

<?xml version="1.0" encoding="utf-8"?>
<acls xmlns="urn:ietf:params:xml:ns:yang:ietf-access-control-list"
      xmlns:uacl="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
    <endpoint-groups
      xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
      <endpoint-group>
        <group-id>R&amp;D</group-id>
        <group-type>user-group</group-type>
      </endpoint-group>
      <endpoint-group>
        <group-id>R&amp;D BYOD</group-id>
        <group-type>user-group</group-type>
      </endpoint-group>
      <endpoint-group>
        <group-id>finance server</group-id>
        <group-type>device-group</group-type>
      </endpoint-group>
    </endpoint-groups>
    <acl>
    <name>sample-group-acl</name>
    <type>uacl:group-acl-type</type>
    <aces>
      <ace>
        <name>rule1</name>
        <matches>
          <endpoint-group
            xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
            <source-group-id>R&amp;D BYOD</source-group-id>
            <destination-group-id>R&amp;D</destination-group-id>
          </endpoint-group>
        </matches>
        <actions>
          <forwarding>accept</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                             ucl-acl"
          xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule">
          <recurrence-first>
            <start-time>2025-01-01T08:00:00Z</start-time>
            <duration>PT10:00:00</duration>
          </recurrence-first>
          <frequency>schedule:daily</frequency>
          <byday>
            <weekday>monday</weekday>
          </byday>
          <byday>
            <weekday>tuesday</weekday>
          </byday>
          <byday>
            <weekday>wednesday</weekday>
          </byday>
          <byday>
            <weekday>thursday</weekday>
          </byday>
          <byday>
            <weekday>friday</weekday>
          </byday>
        </effective-schedule>
      </ace>
      <ace>
        <name>rule2</name>
        <matches>
          <endpoint-group
            xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
            <source-group-id>R&amp;D BYOD</source-group-id>
            <destination-group-id>finance server</destination-group-\
                                                                  id>
          </endpoint-group>
        </matches>
        <actions>
          <forwarding>reject</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                            ucl-acl">
          <period-start>2025-01-20T08:30:00-08:00</period-start>
          <period-end>2025-12-31T18:00:00-08:00</period-end>
        </effective-schedule>
      </ace>
    </aces>
  </acl>
</acls>
]]></artwork>
        </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"/>. This example does not intend to be exhaustive.</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>
        <figure anchor="ex-PEP-ucl">
          <name>Example of PEP Configuration</name>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

<?xml version="1.0" encoding="utf-8"?>

<acls xmlns="urn:ietf:params:xml:ns:yang:ietf-access-control-list"
      xmlns:uacl="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
  <endpoint-groups
      xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
    <endpoint-group>
      <group-id>R&amp;D</group-id>
      <group-type>user-group</group-type>
    </endpoint-group>
    <endpoint-group>
      <group-id>R&amp;D BYOD</group-id>
      <group-type>user-group</group-type>
    </endpoint-group>
  </endpoint-groups>
  <acl>
    <name>sample-ucl-ipv4</name>
    <type>uacl:mixed-ipv4-group-type</type>
    <aces>
      <ace>
        <name>rule1</name>
        <matches>
          <endpoint-group
            xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
            <source-group-id>R&amp;D BYOD</source-group-id>
            <destination-group-id>R&amp;D</destination-group-id>
          </endpoint-group>
        </matches>
        <actions>
          <forwarding>accept</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                             ucl-acl"
          xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule">
          <recurrence-first>
            <start-time>2025-01-01T08:00:00Z</start-time>
            <duration>PT10:00:00</duration>
          </recurrence-first>
          <frequency>schedule:daily</frequency>
          <byday>
            <weekday>monday</weekday>
          </byday>
          <byday>
            <weekday>tuesday</weekday>
          </byday>
          <byday>
            <weekday>wednesday</weekday>
          </byday>
          <byday>
            <weekday>thursday</weekday>
          </byday>
          <byday>
            <weekday>friday</weekday>
          </byday>
        </effective-schedule>
      </ace>
      <ace>
        <name>rule2</name>
        <matches>
          <endpoint-group
            xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
            <source-group-id>R&amp;D BYOD</source-group-id>
          </endpoint-group>
          <ipv4>
            <destination-ipv4-network>203.0.113.1/24</destination-\
                                                        ipv4-network>
          </ipv4>
        </matches>
        <actions>
          <forwarding>reject</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                            ucl-acl">
          <period-start>2025-01-20T08:30:00-08:00</period-start>
          <period-end>2025-12-31T18:00:00-08:00</period-end>
        </effective-schedule>
      </ace>
    </aces>
  </acl>
</acls>
]]></artwork>
        </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>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

<?xml version="1.0" encoding="utf-8"?>

<acls xmlns="urn:ietf:params:xml:ns:yang:ietf-access-control-list"
      xmlns:uacl="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
  <endpoint-groups
      xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
    <endpoint-group>
      <group-id>R&amp;D</group-id>
      <group-type>user-group</group-type>
    </endpoint-group>
    <endpoint-group>
      <group-id>R&amp;D BYOD</group-id>
      <group-type>user-group</group-type>
    </endpoint-group>
  </endpoint-groups>
  <acl>
    <name>sample-ucl-ipv6</name>
    <type>uacl:mixed-ipv6-group-type</type>
    <aces>
      <ace>
        <name>rule1</name>
        <matches>
          <endpoint-group
            xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
            <source-group-id>R&amp;D BYOD</source-group-id>
            <destination-group-id>R&amp;D</destination-group-id>
          </endpoint-group>
        </matches>
        <actions>
          <forwarding>accept</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                             ucl-acl"
          xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule">
          <recurrence-first>
            <start-time>2025-01-01T08:00:00Z</start-time>
            <duration>PT10:00:00</duration>
          </recurrence-first>
          <frequency>schedule:daily</frequency>
          <byday>
            <weekday>monday</weekday>
          </byday>
          <byday>
            <weekday>tuesday</weekday>
          </byday>
          <byday>
            <weekday>wednesday</weekday>
          </byday>
          <byday>
            <weekday>thursday</weekday>
          </byday>
          <byday>
            <weekday>friday</weekday>
          </byday>
        </effective-schedule>
      </ace>
      <ace>
        <name>rule2</name>
        <matches>
          <endpoint-group
            xmlns="urn:ietf:params:xml:ns:yang:ietf-ucl-acl">
            <source-group-id>R&amp;D BYOD</source-group-id>
          </endpoint-group>
          <ipv4>
            <destination-ipv6-network>2001:db8:1234::/64</\
                                            destination-ipv6-network>
          </ipv4>
        </matches>
        <actions>
          <forwarding>reject</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                            ucl-acl">
          <period-start>2025-01-20T08:30:00-08:00</period-start>
          <period-end>2025-12-31T18:00:00-08:00</period-end>
        </effective-schedule>
      </ace>
    </aces>
  </acl>
</acls>
]]></artwork>
        </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>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

<?xml version="1.0" encoding="utf-8"?>
<acls xmlns="urn:ietf:params:xml:ns:yang:ietf-access-control-list">
  <acl>
    <name>sample-acl-ipv4</name>
    <type>ipv4-acl-type</type>
    <aces>
      <ace>
        <name>rule1</name>
        <matches>
          <ipv4>
            <destination-ipv4-network>192.168.2.1/24</destination-\
                                                        ipv4-network>
            <source-ipv4-network>192.168.1.1/24</source-ipv4-network>
          </ipv4>
        </matches>
        <actions>
          <forwarding>accept</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                             ucl-acl"
          xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule">
          <recurrence-first>
            <start-time>2025-01-01T08:00:00Z</start-time>
            <duration>PT10:00:00</duration>
          </recurrence-first>
          <frequency>schedule:daily</frequency>
          <byday>
            <weekday>monday</weekday>
          </byday>
          <byday>
            <weekday>tuesday</weekday>
          </byday>
          <byday>
            <weekday>wednesday</weekday>
          </byday>
          <byday>
            <weekday>thursday</weekday>
          </byday>
          <byday>
            <weekday>friday</weekday>
          </byday>
        </effective-schedule>        
      </ace>
      <ace>
        <name>rule2</name>
        <matches>
          <ipv4>
            <destination-ipv4-network>203.0.113.1/24</destination-\
                                                        ipv4-network>
            <source-ipv4-network>192.168.1.1/24</source-ipv4-network>
          </ipv4>
        </matches>
        <actions>
          <forwarding>reject</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                            ucl-acl">
          <period-start>2025-01-20T08:30:00-08:00</period-start>
          <period-end>2025-12-31T18:00:00-08:00</period-end>
        </effective-schedule>      
      </ace>
    </aces>
  </acl>
</acls>
]]></artwork>
        </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>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

<?xml version="1.0" encoding="utf-8"?>
<acls xmlns="urn:ietf:params:xml:ns:yang:ietf-access-control-list">
  <acl>
    <name>sample-acl-ipv6</name>
    <type>ipv6-acl-type</type>
    <aces>
      <ace>
        <name>rule1</name>
        <matches>
          <ipv6>
            <destination-ipv6-network>2001:db8::1/64</destination-\
                                                        ipv6-network>
            <source-ipv6-network>2001:db8::2:1/64</source-ipv6-\
                                                             network>
          </ipv6>
        </matches>
        <actions>
          <forwarding>accept</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                             ucl-acl"
          xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule">
          <recurrence-first>
            <start-time>2025-01-01T08:00:00Z</start-time>
            <duration>PT10:00:00</duration>
          </recurrence-first>
          <frequency>schedule:daily</frequency>
          <byday>
            <weekday>monday</weekday>
          </byday>
          <byday>
            <weekday>tuesday</weekday>
          </byday>
          <byday>
            <weekday>wednesday</weekday>
          </byday>
          <byday>
            <weekday>thursday</weekday>
          </byday>
          <byday>
            <weekday>friday</weekday>
          </byday>
        </effective-schedule>
      </ace>
      <ace>
        <name>rule2</name>
        <matches>
          <ipv6>
            <destination-ipv6-network>2001:db8:1234::/64</\
                                            destination-ipv6-network>
            <source-ipv6-network>2001:db8::2:1/64</source-ipv6-\
                                                             network>
          </ipv4>
        </matches>
        <actions>
          <forwarding>reject</forwarding>
        </actions>
        <effective-schedule xmlns="urn:ietf:params:xml:ns:yang:ietf-\
                                                            ucl-acl">
          <period-start>2025-01-20T08:30:00-08:00</period-start>
          <period-end>2025-12-31T18:00:00-08:00</period-end>
        </effective-schedule>
      </ace>
    </aces>      
    </aces>
  </acl>
</acls>
]]></artwork>
        </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"/> provide 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 draft on modern network access
   control mechanisms for material that assisted in thinking about this document.</t>
      <t>The authors would like to thank Joe Clarke, Bill Fenner, Benoit
   Claise, Rob Wilton, David Somers-Harris, Alan Dekok, and Heikki Vatiainen for their valuable comments
   and great input to this work.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1963rbRpLofz5FH/r71uKEpC6WFUdxnFEsJdGsb2vZyWYv
P0CyKWENAhwAlMyxvc9ynuU82alrX0BQomJnxruftTuxBKC7q6urq+vWVYPB
oFOndWYPTffI/Hb07CdznNSJeVpMbGaSfGJeHh2fvj4zJ29rm1dpkZtpUZoX
RZaOl4NRUtmJeWbrq6J8Y47GY1tV5nGR12WRdTvJaFTaS+p4o+/HSW3Pi3J5
aKp60ulMinGezACwSZlM60Fq6+mgmFfJ1flgMc4GCfxv5+tOtRjN0goBq5dz
+Pj05NWPnXwxG9nysDOBHg874yKvAPZFdWjqcmE7ANK9TlLaBEB7PrdlUkPr
iib7NMmTczuzed3tIIznZbGY42cvzo5+/anbeWOX8Hhy2DEDc/T4Cf4TTg3/
/uG358f0mmc35tl1OsmivihKbNkx8DNdZBlP71/SxTTJz2FselGU50me/o2A
OjQ/L5Irm9IL6AW+tpO0Lkp6UNWltfWh2d3ZNWfFtL6COZmjS5svbN/8trhY
JOY4hY/ScU3fj9MacPuXFAarFvwEVvnQ7O3u7OzuyYMFgAtfPb5Ic4bHzpI0
OzSz5K8M5+6fLwim4biYtU0mN78urp/I3xXuUZplw6vFtUA/LS7g34n5oViM
k0mSli3wPy9heNu+EAzgS5vntgrgu3d/Z2cnBu9H6GVsI7zy2MORjv3ngkZq
h/QYIIJ9+c9pft4C4xPoPKlqW5rXeXppywrgiseH5zVMFNtPsH8Px2T4Bh7+
OdMuhsl4uHjT6eRFOYPuL2EfddJ8GvxlhDUMXsHGqw6pMyO8RJgGveEXjvz5
Z6C/NOfQPT16dtSVzpLyHAnloq7nh9vbV1dXQyCCZAgtthPY8+c57tRqu0wm
6aIa1H402vhmmmSV7XQGg4FJRkBQCRAUvn91kVYG2MsCm5uJnaawcCZh9jdB
9jcj9oecbh5yrlw4V0J7u0OYpe3dN1cX6fjCzMviMp1Y2vYV0DD2j3zFTqfp
OMW/LOJwTCzGFFPsIu5Ue+SBU+iKhwbGS8zIQPc5YHk5NEC3pS1gnfumXjOj
mR1fAHKrmakLY6Ej+NLCXk5zAE1JsZjK0/kcSMCMAB5rc2i9qICUwlGnKTzA
+SSmsgi/OX2x/fTosUkmkxKAZ/TjUDzL67CnEx3Skpzm2EeKNNAnaFom89LO
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
jWOkg72ok0x0yz5VABzXtkYvzpQKd4u5TK6yRBy0HxSnw65ekYj/RLqiiNQJ
KAf8WDCNvXR/wYr33aFCZqUN4xDzoWHEM6zOwdcCjRSZxMhXP09Rkreu4Uxc
NJqGW0GDs5au8HyubNg8+SpJ5wJH3wBQEGZzSfggwlWiVOEqOEXLLtU/yRC7
1NFvoIK+VBakbrH9XzHUmyPa3zdI+X3ML4x/T5Hg5v3jC1hPi3e36Od9QGz0
d+e92XH1OfiL6AG8brw1RtOitU5Del3d8tQ0YCzu76PH/wxwwi/P8Lf4pw1e
Y1ZADv72AAegXwsrXluW9dWUSa8oGxDeOHCEgMmSnhVyKXJKZVIdUfD23GFq
a0gcnkdQnVYnDTi2QNPhpv9mywLN23Sq6GFSuYD3JOKza7q7Y07jhM2P44Ss
7+6sLXvkrjS+dtcqNa+3NmnWckV9ZKiFJOjiL923ZZHGd0O6jO9ikyLi2CfX
emjPJB6ViCTT8hJESapRoXnAKRN6GIcXynenL7Z9LjPhdxLFhr1pKjMtrYRV
s3UkysWtVzZ8ht5taRNUqBwSWhaSyRrQQk0nRShjkISiyMEe3YXOrDiH/255
fnuRlBPMPdnj4rilvxncuCgDaJIa4wnXypA1IlXUFZJTk6lfJ5Z71y9VVA+e
WPmvVC4X5E+LWSp9YVO6GE2FC1YWjiQyqRcp2U5qvhLvbmATmrB1aRO6lkPl
EZVn3620hjDOVUHTEqh4+ZiSFGKP0MUvT7dbU9/1YTIT8TIpYrdddk+N9nf3
yHFCHOaEcBGAMBHKyI77dNJmcQxs7kQIcg9br6OLDIJ9BmVEZf5aqWCsJdQv
7MYmQVrrY60EEOfYDvK0h0RzzUUqvZDEcHJFVo3u1CqCjZptjDWpJIw9wkCA
1gmXHi6pTAeK0ARoXFbAXam3l3CCq3pWzIVLAT3XWDGjmE7N1jSzb9NRmiGQ
I4AZBqXzNq5FgemI2QWJI70VJ3ac1r6HIa8Wb/ksNSMBZsqsdE/yzXm+6NJ6
aR4Z75nW6o1ZLl/exWs8/l5uJZTKV3RthjttWku2/hqz73KOBTQtjLQ+jZd4
vo5LiMht3HI6frC/8/UodRXs1t0YjkrlVHwLXO5JO4GFUkb4PMwjtVfBnxjm
i/3IFRhfeyAoaIpcD/sCitYKeFymVere0TWmk7PwDYhvO5z5z1Y26Ioq3HNt
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
tctGhVgadv4/qC/rdFXwAAA=

-->

</rfc>
