<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.5 (Ruby 2.7.0) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-opsawg-ucl-acl-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="A Policy-based Network Access Control">A YANG Data Model and RADIUS Extension for Policy-based Network Access Control</title>

    <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="2024" month="February" day="02"/>

    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>ACL</keyword> <keyword>Policy-based</keyword> <keyword>BYOD</keyword> <keyword>Access control</keyword>

    <abstract>


<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 RADIUS attribute that is used to
   communicate the user group identifier as part of identification and
   authorization information.</t>



    </abstract>



  </front>

  <middle>


<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>

<t><list style="symbols">
  <t>Endpoints do not have a stable IP address.  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>
  <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>
</list></t>

<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="I-D.ietf-nvo3-encap"/>).</t>

<t>The YANG data models in this document conform 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>

<t><list style="symbols">
  <t>XXXX --&gt; the assigned RFC number for this draft</t>
  <t>2023-01-19 --&gt; the actual date of the publication of this document</t>
</list></t>

</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>

<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>

<t><list style="symbols">
  <t>policy</t>
</list></t>

<t>The document uses the following definitions and acronyms defined in <xref target="RFC8519"/>:</t>

<t><list style="symbols">
  <t>Access Control Entry (ACE)</t>
  <t>Access Control List (ACL)</t>
</list></t>

<t>The following definitions and acronyms are used throughout this document:</t>

<t><list style="symbols">
  <t>    <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>
  </t>
  <t>    <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>
  </t>
</list></t>

</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>

<t><list style="symbols">
  <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>
  <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"/>.  <vspace blankLines='1'/>
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>
  <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>
  <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>
  <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="I-D.ietf-nvo3-encap"/>). More details are provided in <xref target="implement-considerations"/>.  <vspace blankLines='1'/>
Multiple PEPs may be involved in a network.  <vspace blankLines='1'/>
A PEP exposes a NETCONF interface <xref target="RFC6241"/> to an SDN controller.</t>
</list></t>

<t><xref target="arch"/> provides the overall architecture and procedure for policy-
   based access control management.</t>

<figure title="An Architecture for Group-based Policy Management" anchor="arch"><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.3" sectionFormat="of" target="I-D.dekok-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>

<texttable title="User Group Example" anchor="ug-example">
      <ttcol align='left'>Group Name</ttcol>
      <ttcol align='left'>Group ID</ttcol>
      <ttcol align='left'>Group Description</ttcol>
      <c>R&amp;D</c>
      <c>foo-10</c>
      <c>R&amp;D employees</c>
      <c>R&amp;D BYOD</c>
      <c>foo-11</c>
      <c>Personal devices of R&amp;D employees</c>
      <c>Sales</c>
      <c>foo-20</c>
      <c>Sales employees</c>
      <c>VIP</c>
      <c>foo-30</c>
      <c>VIP employees</c>
</texttable>

</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 serve 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>

<texttable title="Device-Group Example" anchor="dg-example">
      <ttcol align='left'>Group Name</ttcol>
      <ttcol align='left'>Group ID</ttcol>
      <ttcol align='left'>Group Description</ttcol>
      <c>Workflow</c>
      <c>bar-40</c>
      <c>Workflow  resource servers</c>
      <c>R&amp;D Resource</c>
      <c>bar-50</c>
      <c>R&amp;D resource servers</c>
      <c>Printer Resource</c>
      <c>bar-60</c>
      <c>Printer resources</c>
</texttable>

<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>

<texttable title="Application-Group Example" anchor="ag-example">
      <ttcol align='left'>Group Name</ttcol>
      <ttcol align='left'>Group ID</ttcol>
      <ttcol align='left'>Group Description</ttcol>
      <c>Audio/Video Streaming</c>
      <c>baz-70</c>
      <c>Audio/Video conferecing application</c>
      <c>Instant messaging</c>
      <c>baz-80</c>
      <c>Messaging application</c>
      <c>document collaboration</c>
      <c>baz-90</c>
      <c>Real-time document editing application</c>
</texttable>

</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" model <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 title="UCL Extension" anchor="ucl-tree"><artwork align="center"><![CDATA[
module: ietf-ucl-acl

  augment /acl:acls:
    +--rw endpoint-groups
       +--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 {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
       +--rw (schedule-type)?
          +--:(period)
          |  +--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-supported}?
             +--rw recurrence-first
             |  +--rw date-time-start?        union
             |  +--rw time-zone-identifier?   sys:timezone-name
             |  +--rw duration?               duration
             +--rw frequency?                identityref
             +--rw interval?                 uint32
             +--rw (recurrence-bound)?
             |  +--:(until)
             |  |  +--rw until?              union
             |  +--:(count)
             |     +--rw count?              uint32
             +--rw (date-times-choice)?
             |  +--:(date-time)
             |  |  +--rw date-times*         yang:date-and-time
             |  +--:(date)
             |  |  +--rw dates*              yang:date-no-zone
             |  +--:(period-timeticks)
             |  |  +--rw period-timeticks* [period-start]
             |  |     +--rw period-start    yang:timeticks
             |  |     +--rw period-end?     yang:timeticks
             |  +--:(period)
             |     +--rw period* [period-start]
             |        +--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*          union
]]></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 a "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 uint 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.ma-opsawg-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" YANG
   module in <xref target="I-D.ma-opsawg-schedule-yang"/>. It also augments the "ietf-access-control-list" module defined in <xref target="RFC8519"/>.</t>

<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-ucl-acl@2023-01-19.yang"
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 XXXX: A Policy-based Network Access Control";
  }

  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) 2024 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 2023-01-19 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A Policy-based Network Access Control";
  }

  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.";
  }
  
  feature match-on-group {
    description
      "The implementation supports 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.";   
  }
  
  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" {
    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" {
    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')";
      if-feature "match-on-group";
      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" {
    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-supported";
          description
            "The ACE takes effect based on a recurrence rule.";
          uses schedule:icalendar-recurrence;          
        }
      }
    }
  }
}

<CODE ENDS>
]]></artwork></figure>

</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>

<figure><artwork><![CDATA[
   Type
     TBA1

   Length
     This field indicates the total length, in octets, of all fields of
     this attribute, including the Type, Length, Extended-Type, and the
     "Value". The Length MUST be at most 67 octets.

   Data Type
     string ({{Section 3.5 of RFC8044}})

   Value
      This field contains the user group ID.
]]></artwork></figure>

</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>

<texttable title="Table of Attributes" anchor="rad-att">
      <ttcol align='left'>Access-Request</ttcol>
      <ttcol align='left'>Access-Accept</ttcol>
      <ttcol align='left'>Access-Reject</ttcol>
      <ttcol align='left'>Challenge</ttcol>
      <ttcol align='left'>Attribute</ttcol>
      <c>0+</c>
      <c>0+</c>
      <c>0</c>
      <c>0</c>
      <c>User-Access-Group-ID</c>
      <c>Accounting-Request</c>
      <c>CoA-Request</c>
      <c>CoA-ACK</c>
      <c>CoA-NACK</c>
      <c>Attribute</c>
      <c>0+</c>
      <c>0+</c>
      <c>0</c>
      <c>0</c>
      <c>User-Access-Group-ID</c>
</texttable>

<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 scenrios 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>The YANG modules specified in this document defines schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</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 the "ietf-ucl-acl" YANG module that are
   writable, creatable, and deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations to these data nodes
   could have a negative effect on network and security operations. These are the
   subtrees and data nodes and their sensitivity/vulnerability:</t>

<t><list style="symbols">
  <t>    <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>
  </t>
  <t>    <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>
</list></t>

<t>Some of the readable data nodes in the "ietf-ucl-acl" 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. These are the subtrees and data
  nodes and their sensitivity/vulnerability:</t>

<t><list style="symbols">
  <t>    <dl>
      <dt>/acl:acls/acl:acl/acl:aces/acl:ace/uacl:time-range:</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>
  </t>
</list></t>

</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>

<figure><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></figure>

<t>This document registers the following YANG modules in the "YANG Module Names"
   registry <xref target="RFC6020"/>.</t>

<figure><artwork><![CDATA[
        name:               ietf-ucl-acl
        namespace:          urn:ietf:params:xml:ns:yang:ietf-ucl-acl
        prefix:             uacl
        maintained by IANA: N
        reference:          RFC XXXX
]]></artwork></figure>

</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>

<texttable title="RADIUS Attribute" anchor="rad-reg">
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Data Type</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>TBA1</c>
      <c>User-Access-Group-ID</c>
      <c>string</c>
      <c>This-Document</c>
</texttable>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC8519' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='RFC2119' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/rfc6241'>
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname='R. Enns' initials='R.' role='editor' surname='Enns'/>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'/>
    <author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6241'/>
  <seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>


<reference anchor='I-D.ma-opsawg-schedule-yang' target='https://datatracker.ietf.org/doc/html/draft-ma-opsawg-schedule-yang-03'>
   <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='2' month='February' year='2024'/>
      <abstract>
	 <t>   This document defines a common schedule YANG module which is designed
   to be applicable for scheduling information such as event, policy,
   services, or resources based on date and time.  For the sake of
   better modularity, the module includes basic, intermediate, and
   advanced versions of schedule groupings.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ma-opsawg-schedule-yang-03'/>
   
</reference>

<reference anchor='RFC6929' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='RFC8040' target='https://www.rfc-editor.org/info/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='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'>
  <front>
    <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
    <author fullname='M. Wasserman' initials='M.' surname='Wasserman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6242'/>
  <seriesInfo name='DOI' value='10.17487/RFC6242'/>
</reference>

<reference anchor='RFC8446' target='https://www.rfc-editor.org/info/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='RFC8341' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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 title='Informative References'>

<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' target='https://datatracker.ietf.org/doc/html/draft-ietf-netmod-acl-extensions-06'>
   <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>Telefonica</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='30' month='January' year='2024'/>
      <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.

   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-06'/>
   
</reference>


<reference anchor='I-D.ietf-madinas-use-cases' target='https://datatracker.ietf.org/doc/html/draft-ietf-madinas-use-cases-07'>
   <front>
      <title>Randomized and Changing MAC Address Use Cases and Requirements</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='11' month='January' year='2024'/>
      <abstract>
	 <t>   To limit the privacy and security issues created by the association
   between a device, its traffic, its location and its user, client
   vendors have started implementing MAC address rotation.  When such
   rotation happens, some in-network states may break, which may affect
   network efficiency and the user experience.  At the same time,
   devices may continue sending other stable identifiers, defeating the
   MAC rotation purposes.  This document lists various network
   environments and a set of functional network services that may be
   affected by such rotation.  This document then examines settings
   where the user experience may be affected by in-network state
   disruption, and settings where other machine identifiers may help re-
   identify the user or recover the identity of the user, and locate the
   device and its associated user.  Last, this document examines
   solutions 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-07'/>
   
</reference>


<reference anchor='I-D.ietf-nvo3-encap' target='https://datatracker.ietf.org/doc/html/draft-ietf-nvo3-encap-11'>
   <front>
      <title>Network Virtualization Overlays (NVO3) Encapsulation Considerations</title>
      <author fullname='Sami Boutros' initials='S.' surname='Boutros'>
         <organization>Ciena Corporation</organization>
      </author>
      <author fullname='Donald E. Eastlake 3rd' initials='D. E.' surname='Eastlake'>
         <organization>Futurewei Technologies</organization>
      </author>
      <date day='29' month='November' year='2023'/>
      <abstract>
	 <t>   The IETF Network Virtualization Overlays (NVO3) Working Group Chairs
   and Routing Area Director chartered a design team to take forward the
   encapsulation discussion and see if there was potential to design a
   common encapsulation that addresses the various technical concerns.
   This document provides a record, for the benefit of the IETF
   community, of the considerations arrived at by the NVO3 encapsulation
   design team, which may be helpful with future deliberations by
   working groups over the choice of encapsulation formats.

   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, OAM
   functions such as path MTU discovery become challenging with multiple
   encapsulations along the data path.

   The design team recommended Geneve with a few modifications as the
   common encapsulation.  This document provides more details,
   particularly in Section 7.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-nvo3-encap-11'/>
   
</reference>

<reference anchor='RFC8340' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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.dekok-radext-deprecating-radius' target='https://datatracker.ietf.org/doc/html/draft-dekok-radext-deprecating-radius-05'>
   <front>
      <title>Deprecating Insecure Practices in RADIUS</title>
      <author fullname='Alan DeKok' initials='A.' surname='DeKok'>
         <organization>FreeRADIUS</organization>
      </author>
      <date day='23' month='October' year='2023'/>
      <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.

   This document formally deprecates using the User Datagram Protocol
   (UDP) and of the Transmission Control Protocol (TCP) as transport
   protocols for RADIUS.  These transports are permitted inside of
   secure networks, but their use in secure networks is still
   discouraged.  For all other environments, the use of secure
   transports such as IPsec or TLS is mandated.  We also discuss
   additional security issues with RADIUS deployments, and give
   recommendations for practices which increase security and privacy.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-dekok-radext-deprecating-radius-05'/>
   
</reference>

<reference anchor='RFC6614' target='https://www.rfc-editor.org/info/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' target='https://datatracker.ietf.org/doc/html/draft-smith-vxlan-group-policy-05'>
   <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' target='https://datatracker.ietf.org/doc/html/draft-you-i2nsf-user-group-based-policy-02'>
   <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' target='https://datatracker.ietf.org/doc/html/draft-yizhou-anima-ip-to-access-control-groups-02'>
   <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>


<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 restrict 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>

<t><list style="symbols">
  <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>
  <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>
</list></t>

<t>The example shown in <xref target="ex-controller-ucl"/> illustrates the configuration of an SDN controller
   using the group-based ACL:</t>

<figure title="Example of UCL Configuration" anchor="ex-controller-ucl"><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>
            <date-time-start>2025-01-01T08:00:00Z</date-time-start>
            <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 title="Example of PEP Configuration" anchor="ex-PEP-ucl"><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-group-acl</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>
            <date-time-start>2025-01-01T08:00:00Z</date-time-start>
            <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>

</section>
<section anchor="PEP-acl"><name>Configuring PEPs Using Address-based ACLs</name>

<t>The section illustrates 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 using IP address 192.0.2.10.
   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 title="Example of PEP Configuration" anchor="ex-PEP-acl"><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-group-acl</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>
            <date-time-start>2025-01-01T08:00:00Z</date-time-start>
            <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 title="Example of PEP Configuration (IPv6)" anchor="ex-PEP-acl-ipv6"><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>another-sample-but-with-ipv6</name>
    <type>ipv6-acl-type</type>
    <aces>
      <ace>
        <name>rule1</name>
        <matches>
          <ipv6>
            <destination-ipv6-network>2001:db8::/64</destination-\
                                                        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>
            <date-time-start>2025-01-01T08:00:00Z</date-time-start>
            <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>
    </aces>
  </acl>
</acls>

]]></artwork></figure>

</section>
</section>
<section anchor="changes-between-revisions"><name>Changes between Revisions</name>

<t>v02 - v03</t>

<t><list style="symbols">
  <t>List endpoint-groups definition under acls and examples update to reflect the latest module</t>
  <t>Add contact info in the UCL module</t>
</list></t>

<t>v01 - v02</t>

<t><list style="symbols">
  <t>Tree overview and examples update to reflect the latest schedule module</t>
  <t>Clarify why we define endpoint group ID as string</t>
  <t>Exclude the mapping of string to tagging mechanism from the document scope</t>
  <t>Add implementation considerations section to discuss the deployment scenarios and possible tradeoff</t>
  <t>Add application group, define endpoint group type as "identityref" in YANG data model</t>
  <t>Editorial changes, e.g., remove the NACL definition, fix long lines.</t>
</list></t>

<t>v00 - v01</t>

<t><list style="symbols">
  <t>Change the document title and add a reference to "policy"</t>
  <t>Split the definition of schedule YANG module into a seperate document</t>
  <t>Add reference to draft-dekok-radext-deprecating-radius for authentication method recommendations</t>
  <t>Change endpoint group-id as a string, and fix related examples accordingly</t>
  <t>Use typedef to ease leafref of the node</t>
  <t>Tweaks to the RADIUS section and add a restriction to the length based on comments from RADEXT</t>
  <t>Add IPv6 examples</t>
  <t>Editorial changes</t>
</list></t>

</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:
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
IjbVc09NziQe5FWcivrZo8qE48pU6DEwpSricjWjvgZVwHR7Xtk87OyCtIUX
0hnFU05Az+DHgmfup/NTnNamw6Fs3IBxh4nZ0MUYFubJlwKM1L7EyAM3TVGj
t9fwLa5mTSPJSeqhwd7MLZ0QAzlVMfaleXSWkmEGzs4+oMFPMBPz+YXLQ7nL
VQgLllxqk9LV30JhuGP5e1L3kLrF9n9GF2v2JP/QIOYPIQeJ3HvywI4+HF3B
qhoMoKKfDx6V0d9bH6JdWzCEvwgewOvG2yjSPG2t05Bevb0vsFJTj8/Yv4dH
/whwwi+v8Lfwpw3eKFoC2fvbAeyBvhZWjA+W9dUkTheUoAg9/S0hYPqmV7lc
Ik2piKslCi7JsIv/OWwKKo5FUBVZKz74LGH3C276L6bI8UKVThs9YUrraB4H
DHdFdw+i0/DC6yhMEPv+wcpCTI492dhGzTOuTZqVZlG3GWhlC4q+paBXFoBc
N6QXuS42KXKOfXLxifbM5kEBS7rMXIAUSkUzNC85ZWb3fb59mfD0bMclVxOu
Jx7T2JvmVtNiT1jVW0ei3OAaKuEyBu9IG69+5oDQUktmbUALNZ3kvuxBwosi
B3u0UZVpfgn/3XY89youJpgLs8ulewsXntsIUAE0SQ30mIt3yBqRWmvL3Klt
1a0Ty8qrlyqoV0++6z9TMV8QVQ2mzXRlVyk6mQopLC0cCWtSzVIS3FQcfG7D
oAlN2LowMYXDUPFG5dwPS61wjHNV0LRAK0YAU9ZEEtWK6KeXO625+HowmYn4
NShid2y2Ub2etcHcOCF2qUW4CECYCGWIx306aTNNevZ3IoSxyUDX1ZBwEUKw
S6/GqUxfCyeMtcL7ldnYwEhLfayFCcKU317aeJ9m1sQvaRwQw8nlYjWQQEsc
NgrKMdKkzDH2CAMBVidcF7mgsiEoWROgYZUDG9ZubuAcV40unwuTAnKusIBH
Pp1G29PUvEtGSYpAjgBmGJSO27A0BmZHZp8XHOmdeE2FXgFdjK4wGFyz0KwA
mLmz1C3J0euU37M9cB357rkWEg45LofQUjSr8lcvYqj0MoaS2BokCRfLF1oS
ZjERnpaLrjgHNlKBTd08UvMU/IlRH4oBV6vAK4eKXEk0K62ZF1TKg7HenJz7
L0DI2hVNHEtl3KL8oU2xxk0hmGIta0wR+pbD0gdWKESQJljEZdGv8r5dC2lG
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
kYeRaM/i+rOd4LuWDgCh3Hxvv/9o70JF9UZz/Oq+e4F+JQTibyBT0D/wwOX7
X5LiNfH/iSuHh24PwcVd5+OS0hvTXbyn6/Z9XVdLqzuzQykeCL7G4BXhY9sv
X8tJ36wmYActmoLTVJxLgK0r3/iW7fLsL7CUCgK7afEHwFLct5L+llxs0SnS
czrG56OcnTKwi2bIjN6ntvoiSCXWYUbekOzFP+WrRp66c72MlyaT0F1BPiJ/
uZbrBEl27bwi7LBcqyNduPmKdwI5+YiFEvNIl6DIX/Vv3qWx8hV2jPDq4fGq
2ZsjdFvJ9KrdvLuKYY2xqjRX1sT63Uaul1lxUzNss14oos35DaFRjxZoXhi9
NEXHmbG4JuOVgPTgLw0mSyd1VamQ7pO57iOH6rxoKKpSPBcdcxQ1oVuO+J7w
9MnQIhhISj8brnXT0dfih6a27ab+PPjvqu9+Um13hZq3gaa7qYq5QpvbcNwV
Gu5vGbxVkfyVamRrvtDP2uRnbXL9z2dt8rM2+Vmb/DtgcKv5E7xDtr+GG9Kp
ILcZsNEeDXYHe3uPBns7+wchY/z1zCQYIgA7hO2zuvl3qm6KFN6iZ6Kqc5ee
Sf7krGYOWSvw8oGJphk7TdPcpWhyDEBDjbWaptM93NXtYPlpW4FudOIh7zfs
ZySJ21wcAg5jw51QZWo4yKtfGrmAkxc+qRnk+gTnjrmN0zRQp3BOcl9pw/r+
4RgdY4AO6LJbXJ417IB2GHZwC92l8EY1QfSSykC+L+ZY+d1EaTyv8rnc0nlz
3/tqH/b//mBvd6DIbgQwxGWZjxN7G+gFkwEWWEkn7UjgZkxhMTev0Bs10iGx
uB17x2Ntp8rMoz387YDVqVwqxaur0N9U0YxDRROWh1PGNclpreqpqvsa7XND
1VNm819S+/x1yk6Q8fSvpN/c5zjF7bT35CluqP+E49RJEK1A7AkQbd982kP5
s4bzWcP5rOFs2Nlv1nD05afXdH6/msPvhtV91j8+pf7Br+6hhTSVkHhzJcSX
6ijhJhawVbnOUyXomgX2ikaOjupKMwH5Nz+UmJfdff82QtdfR+aK+QKrL7IX
TL6PkyeEtcpfT/4T5K8n65nSE48p7e4dTkZPDw93nnxKnvRkJTd58pu4yWfB
6bPg9Flw2rCzv4JpeHNrlx4am5w20TYeDl2yfEVHlJ6htFaLN1KGkpLt3Ozu
R33476OtrT9EXNWxmUTYSzFH5qWI2D65h2sIQz2nRI8USTBNNQ0BRmmVlYTS
UP/DyUSr/ZJVSm1MkhKDPkOY9gimfWpzgSFtapS5x7CWP3njH6VxgQGTt1fw
Py1EvZz7E50zONyDWp28w4wgoQkIcxNwQAjl57y8xF9nBlNhJOXM3fjbwBjK
ZGCR0KiS0AhgU2sjxtFxHJu4fWh4GuW2iCm5BSVM0RQjmqzBjuOn4uC42hWT
pkAcmHbHyy/cweWhwCdXXp0RQsVUsaQpp/7AGiVkUyzMDFZKUm3AmjrSQXvj
uwitciSKcIaUm91dWmhKqIXLQ72FeCNq59SeOJ8w83aHJaSOtD+HyUo9+CAt
oiWFsOY8he6XhsK+3YjSF2IvGGuC4Yn9ibnOrzG3o3mHf2DgP/ntSLpHzsES
WPOAKqqrHDvD4D9MTFnp5nNTDlcDU92SfxCTGEfkI/408tHuAGvKTBfS4dvS
2IzqmNcD3YA0d7rIlhiVKl9f3Jr4WsPoXZY/Jj8f6RwfJERJu4yzitlMJjy5
qpQAmOHxyT9feKgkYVXBludLZITcamhzz3Hd4PeHnO7ATL7pTOO0NB3P/4vi
Ya5i5G0ZrHjl+9rIzqENhe5n1hmCTf3Yh42m5GK7xGWo7QKzBw4oy5LLA9FT
T6ZFXveT/ayc9utGp9alCXtH9GmL5C9X0Ah4wywGJo5pMBriMPNal/DM8RKN
9oYliEcgNaMa0DREU/Ccy4wk5d1h1pLgMtPbBexILxiU20m2oj8lcfYfCeyR
vO5FLxd59C9xkS16QKEFRujHGAA1RhEDw6WXipbbetS/0FThJOFxKPZNitsC
MRYpZkz3SjpvjlLOf2QakWuYJPKaw9b8et2YgIDCiXH/AbkXXs6HJUR4qJ5S
ngIK208lUUZJxnBNF5Ox894I89M0c9JEEt0mgLQB+qfc0CF0bXrRdxg9/b3B
ksLwh8nyhLIowOukhNdv8lH0MxZqB955HANNULR9UfZ/xMrEwHKHaYzRVsCP
mEH8aJLr6yT6CfgLhndmmnAqAYRjch88IHSXKn1eYtYPmNq8rmzqAcTSYOv/
AyX2nQgQ5gAA

-->

</rfc>

