<?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-ma-opsawg-schedule-yang-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="schedule YANG">A YANG Data Model for Scheduling</title>

    <author fullname="Qiufang Ma">
      <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">
      <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="2023" month="October" day="18"/>

    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>calendaring</keyword> <keyword>scheduling</keyword> <keyword>YANG</keyword> <keyword>groupings</keyword>

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



    </abstract>



  </front>

  <middle>


<section anchor="intro"><name>Introduction</name>

<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.</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>YYYY --&gt; the assigned RFC number for <xref target="I-D.ietf-netmod-rfc6991-bis"/></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"/>.
Also, this document uses the YANG terminology defined in <xref section="3" sectionFormat="of" target="RFC7950"/>.</t>

</section>
<section anchor="modules-overview"><name>Modules Overview</name>

<section anchor="the-schedule-yang-module"><name>The Schedule YANG Module</name>

<t>This module defines two groupings "period" and "recurrence", which conform to
   the definition of the "period of time" and "recurrence rule" formats defined in
   <xref target="RFC5545"/>. Other formats may be considered in future revisions.</t>

<t><xref target="schedule-tree"/> provides an overview of the tree structure of the "ietf-
   schedule" module in terms of its groupings.</t>

<figure title="Schedule Tree Structure" anchor="schedule-tree"><artwork align="center"><![CDATA[
module: ietf-schedule

  grouping period:
    +-- period-of-time
       +-- period-start?            yang:date-and-time
       +-- (period-type)?
          +--:(period-explicit)
          |  +-- period-end?        yang:date-and-time
          +--:(period-duration)
             +-- period-duration?   duration
  grouping recurrence:
    +-- recurrence
       +-- freq           enumeration
       +-- (recurrence-bound)?
       |  +--:(until)
       |  |  +-- until?   union
       |  +--:(count)
       |     +-- count?   uint32
       +-- interval?      uint32
       +-- bysecond*      uint32
       +-- byminute*      uint32
       +-- byhour*        uint32
       +-- byday* [weekday]
       |  +-- direction*   int32
       |  +-- weekday?     schedule:weekday
       +-- bymonthday*    int32
       +-- byyearday*     int32
       +-- byyearweek*    int32
       +-- byyearmonth*   uint32
       +-- bysetpos*      int32
       +-- wkst?          schedule:weekday
]]></artwork></figure>

<t>The "period-of-time" allows a time period to be represented using either a start ("period-start")
   and end date and time ("period-end"), or a start ("period-start") and a positive time duration ("period-duration").</t>

<t>The "recurrence" indicates the scheduling recurrence of an event. The
   repetition can be scoped by a specified end time or by a count of occurences,
   and the frequency identifies the type of recurrence rule. For example, a "daily"
   frequency value specifies repeating events based on an interval of a day or more.
   The interval represents at which intervals the recurrence rule repeats. For example,
   within a daily recurrence rule, an interval value of "8" means every eight days.</t>

<t>An array of the "bysecond" (or "byminut", "byhour") specifies a list of seconds within a minute (or minutes within an hour, hours of the day).</t>

<t>The parameter "byday" specifies a list of days of
   the week, with an optional direction which indicates the nth occurrence of a specific day within
   the "monthly" or "yearly" frequency. For example, within a "monthly" rule,
   the "weekday" with a value of "monday" and the "direction" with a value of "-1"
   represents the last Monday of the month.</t>

<t>An array of the "bymonthday" (or byyearday", "byyearweek", or "byyearmonth") specifies a list of
   days of the month (or days of the year, weeks of the year, or months of the year).</t>

<t>The "bysetpos" conveys a list of values that corresponds to the nth occurrence
   within the set of recurrence instances to be specified. For example, in a "monthly"
   recurrence rule, the "byday" data node specifies every Monday of the week, the
   "bysetpos" with value of "-1" represents the last Monday of the month.
   Not setting the "bysetpos" data node represents every Monday of the month.</t>

<t>The "wkst" data node specifies the day on which the week starts. This is
   significant when a "weekly" recurrence rule has an interval greater than 1, and
   a "byday" data node is specified. This is also significant when in a "yearly" rule
   and a "byyearweek" is specified. The default value is "monday".</t>

</section>
<section anchor="examples"><name>Examples</name>

<t>The following subsections provide some examples to illustrate the use of the period and recurrence formats defined as
   YANG groupings. Only the message body is provided with JSON used for encoding <xref target="RFC7951"/>.</t>

<section anchor="period-of-time"><name>Period of Time</name>

<t>The example of a period that starts at 08:00:00 UTC, on January 1, 2023 and ends at 18:00:00 UTC
   on December 31, 2025 is encoded as follows:</t>

<figure><artwork><![CDATA[
{
  "period-of-time": {
    "period-start": "2023-01-01T08:00:00Z",
    "period-end": "2025-12-01T18:00:00Z"
  }
}
]]></artwork></figure>

<t>An example of a period that starts at 08:00:00 UTC, on January 1, 2023 and lasts 15 days and
   5 hours and 20 minutes is encoded as follows:</t>

<figure><artwork><![CDATA[
{
  "period-of-time": {
    "period-start": "2023-01-01T08:00:00Z",
    "period-duration": "P15DT05:20:00"
  }
}
]]></artwork></figure>

<t>Now, consider the example of a period that starts at 08:00:00 UTC, on January 1, 2023 and lasts 20 weeks:</t>

<figure><artwork><![CDATA[
{
  "period-of-time": {
    "period-start": "2023-01-01T08:00:00Z",
    "period-duration": "P20W"
  }
}
]]></artwork></figure>

</section>
<section anchor="recurrence-rule"><name>Recurrence Rule</name>

<t>The following snippet can be used to indicate a daily recurrent in December:</t>

<figure><artwork><![CDATA[
{
  "recurrence": {
    "freq": "daily",
    "byyearmonth": [12]
  }
}
]]></artwork></figure>

<t>The following snippet can be used to indicate 10 occurrences that occur every last Saturday of the month:</t>

<figure><artwork><![CDATA[
{
  "recurrence": {
    "freq": "monthly",
    "count": 10,
    "byday": [
      {
        "direction": [-1],
        "weekday": "saturday"
      }
    ]
  }
}
]]></artwork></figure>

<t>The following indicates the example of a recurrence that occurs on the last workday of the month until December 25, 2023:</t>

<figure><artwork><![CDATA[
{
  "recurrence": {
    "freq": "monthly",
    "until": "2023-12-25",
    "byday": [
      { "weekday": "monday" },
      { "weekday": "tuesday" },
      { "weekday": "wednesday" },
      { "weekday": "thursday" },
      { "weekday": "friday" }
    ],
    "bysetpos": [-1]
  }
}
]]></artwork></figure>

<t>The following depicts the example of a recurrence that occurs every other week on Tuesday and Sunday, the week starts from Monday:</t>

<figure><artwork><![CDATA[
{
  "recurrence": {
    "freq": "weekly",
    "interval": 2,
    "byday": [
      { "weekday": "tuesday" },
      { "weekday": "sunday" }
    ],
    "wkst": "monday"
  }
}
]]></artwork></figure>

</section>
</section>
</section>
<section anchor="sec-schedule"><name>The "ietf-schedule" YANG Module</name>

<t>This module imports types defined in <xref target="I-D.ietf-netmod-rfc6991-bis"/>.</t>

<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-schedule@2023-01-19.yang"
module ietf-schedule {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-schedule";
  prefix schedule;

  import ietf-yang-types {
    prefix yang;
    revision-date 2023-01-23;
    reference
      "RFC YYYY: Common YANG Data Types";
  }

  organization
    "IETF OPSAWG Working Group";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/opsawg/>
     WG List: <mailto:opsawg@ietf.org>";
  description
    "This YANG module defines two groupings for iCalendar (Internet
     Calendaring and Scheduling Core Object Specification) data
     types: period of time and recurrence rule, for representing and
     exchanging calendaring and scheduling information. The YANG
     module complies with Sections 3.3.9 and 3.3.10 of RFC 5545. 

     Copyright (c) 2023 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";
  }

  typedef weekday {
    type enumeration {
      enum sunday {
        value 0;
        description
          "Sunday of the week.";
      }
      enum monday {
        value 1;
        description
          "Monday of the week.";
      }
      enum tuesday {
        value 2;
        description
          "Tuesday of the week.";
      }
      enum wednesday {
        value 3;
        description
          "Wednesday of the week.";
      }
      enum thursday {
        value 4;
        description
          "Thursday of the week.";
      }
      enum friday {
        value 5;
        description
          "Friday of the week.";
      }
      enum saturday {
        value 6;
        description
          "Saturday of the week.";
      }
    }
    description
      "Seven days of the week.";
  }
  
  typedef duration {
    type string {
      pattern '((\+)?|\-)P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])'
            + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W';
    }
    description
      "Duration of the time. The format can represent nominal 
       durations (weeks designated by 'W' and days designated by 'D') 
       and accurate durations (hours:minutes:seconds follows the 
       designator 'T').
           
       Note that this value type doesn't support the 'Y' and 'M' 
       designators to specify durations in terms of years and months. 
       
       Negative durations are typically used to schedule an alarm to
       trigger before an associated time.";
    reference 
      "RFC 5545: Internet Calendaring and Scheduling Core Object 
                 Specification (iCalendar), Sections 3.3.6 and 
                 3.8.6.3";    
  }
  
  grouping period {
    description
      "This grouping is defined for period of time property.";
    reference 
      "RFC 5545: Internet Calendaring and Scheduling Core Object 
                 Specification (iCalendar), Section 3.3.9";      
    container period-of-time {
      description
        "This container is defined to identify period values that
         contain a precise period of time.";
      leaf period-start {
        type yang:date-and-time;
        description
          "Period start time.";
      }
      choice period-type {
        description
          "Indicates the type of the time period. Two types are
            supported.";
        case period-explicit {
          description
            "A period of time is identified by its start and its
             end. 'period-start' indicates the period start.";
          leaf period-end {
            type yang:date-and-time;
            description
              "Period end time.";
          }
        }
        case period-duration {
          description
            "A period of time is defined by a start and a
             positive duration of time.";
          leaf period-duration {
            type duration {
              pattern 'P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])'
                    + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W';
            }
            description
              "A positive duration of the time. This value is 
               equivalent to the format of duration type except that 
               the value cannot be negative.";
          }
        }
      }
    }
  }

  grouping recurrence {
    description
      "This grouping is defined to identify properties that contain a 
       recurrence rule.";
    reference 
      "RFC 5545: Internet Calendaring and Scheduling Core Object 
       Specification (iCalendar), Section 3.3.10";        
    container recurrence {
      description
        "Recurrence rule definition.";
      leaf freq {
        type enumeration {
          enum secondly {
            value 1;
            description
              "Repeating events based on an interval of a second
               or more.";
          }
          enum minutely {
            value 2;
            description
              "Repeating events based on an interval of a minute
               or more.";
          }
          enum hourly {
            value 3;
            description
              "Repeating events based on an interval of an hour
               or more.";
          }
          enum daily {
            value 4;
            description
              "Repeating events based on an interval of a day or
               more.";
          }
          enum weekly {
            value 5;
            description
              "Repeating events based on an interval of a week or
               more.";
          }
          enum monthly {
            value 6;
            description
              "Repeating events based on an interval of a month or
               more.";
          }
          enum yearly {
            value 7;
            description
              "Repeating events based on an interval of a year or
               more.";
          }
        }
        mandatory true;
        description
          "This parameter is defined to identify the type of
           recurrence rule.";
      }
      choice recurrence-bound {
        description
          "Modes to bound the recurrence rule. If no choice is
           indicated, the recurrence rule is considered to repeat
           forever.";
        case until {
          description
            "This case defines a way that bounds the recurrence
             rule in an inclusive manner.";
          leaf until {
            type union {
              type yang:date-no-zone;
              type yang:date-and-time;
            }
            description
              "This parameter specifies a date-no-zone or
               date-time value to bounds the recurrence. The 
               specified value becomes the last instance of the
               recurrence.";
          }
        }
        case count {
          description
            "This case defines the number of occurrences at which
             to range-bound the recurrence.";
          leaf count {
            type uint32;
            description
              "The positive number of occurrences at which to
               range-bound the recurrence.";
          }
        }
      }
      leaf interval {
        type uint32;
        default "1";
        description
          "A positive integer representing at which intervals the
           recurrence rule repeats. The default value is '1', 
           meaning every second for a secondly rule, every minute
           for a minutely rule, every hour for an hourly rule, every
           day for a daily rule, every week for a weekly rule, every
           month for a monthly rule, and every year for a yearly 
           rule.";
      }
      leaf-list bysecond {
        type uint32 {
          range "0..60";
        }
        description
          "A list of seconds within a minute.";
      }
      leaf-list byminute {
        type uint32 {
          range "0..59";
        }
        description
          "A list of minutes within an hour.";
      }
      leaf-list byhour {
        type uint32 {
          range "0..23";
        }
        description
          "Specify a list of hours of the day.";
      }
      list byday {
        key "weekday";
        description
          "Specify a list of days of the week.";
        leaf-list direction {
          when '(enum-value(../../freq) = 6) or ' +
            '(enum-value(../../freq) = 7) and not(../../byyearweek)';
          type int32 {
            range "-53..-1|1..53";
          }
          description
            "When specified, it indicates the nth occurrence of a
             specific day within the MONTHLY or YEARLY 'RRULE'. For
             example, within a MONTHLY rule, +1 monday represents the
             first monday within the month, whereas -1 monday
             represents the last monday of the month.";
        }
        leaf weekday {
          type schedule:weekday;
          description
            "Corresponding to seven days of the week.";
        }
      }
      
      leaf-list bymonthday {
        type int32 {
          range "-31..-1|1..31";
        }
        description
          "Specifies a list of days of the month.";
      }
      leaf-list byyearday {
        type int32 {
          range "-366..-1|1..366";
        }
        description
          "Specifies a list of days of the year.";
      }
      leaf-list byyearweek {
        when 'enum-value(../freq)=7';
        type int32 {
          range "-53..-1|1..53";
        }
        description
          "Specifies a list of weeks of the year.";
      }
      leaf-list byyearmonth {
        type uint32 {
          range "1..12";
        }
        description
          "Specifies a list of months of the year.";
      }
      leaf-list bysetpos {
        type int32 {
          range "-366..-1|1..366";
        }
        description
          "Specifies a list of values that corresponds to the nth
           occurrence within the set of recurrence instances
           specified by the rule. It must only be used in conjunction
           with another by the rule part.";
      }
      leaf wkst {
        type schedule:weekday;
        default "monday";
        description
          "Specifies the day on which the workweek starts.";
      }
    }
  }
}

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

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The "ietf-schedule" YANG module 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>The "ietf-schedule" module defines a set of types and
   groupings.  These nodes are intended to be reused by other YANG
   modules.  The module by itself does not expose any data nodes that
   are writable, data nodes that contain read-only state, or RPCs.  As
   such, there are no additional security issues related to the "ietf-
   schedule" module that need to be considered.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="the-ietf-xml-registry"><name>The "IETF XML" Registry</name>

<t>This document registers the following URI in the "IETF XML Registry" <xref target="RFC3688"/>.</t>

<figure><artwork><![CDATA[
        URI: urn:ietf:params:xml:ns:yang:ietf-schedule
        Registrant Contact: The IESG.
        XML: N/A, the requested URI is an XML namespace.
]]></artwork></figure>

</section>
<section anchor="the-yang-module-names-registry"><name>The "YANG Module Names" Registry</name>

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

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

</section>
</section>


  </middle>

  <back>


    <references title='Normative References'>



<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='RFC7950' target='https://www.rfc-editor.org/info/rfc7950'>
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7950'/>
  <seriesInfo name='DOI' value='10.17487/RFC7950'/>
</reference>


<reference anchor='I-D.ietf-netmod-rfc6991-bis' target='https://datatracker.ietf.org/doc/html/draft-ietf-netmod-rfc6991-bis-15'>
   <front>
      <title>Common YANG Data Types</title>
      <author fullname='Jürgen Schönwälder' initials='J.' surname='Schönwälder'>
         <organization>Constructor University</organization>
      </author>
      <date day='23' month='January' year='2023'/>
      <abstract>
	 <t>   This document defines a collection of common data types to be used
   with the YANG data modeling language.  This version of the document
   adds several new type definitions and obsoletes RFC 6991.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-netmod-rfc6991-bis-15'/>
   
</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='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='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='RFC5545' target='https://www.rfc-editor.org/info/rfc5545'>
  <front>
    <title>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>
    <author fullname='B. Desruisseaux' initials='B.' role='editor' surname='Desruisseaux'/>
    <date month='September' year='2009'/>
    <abstract>
      <t>This document defines the iCalendar data format for representing and exchanging calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, independent of any particular calendar service or protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5545'/>
  <seriesInfo name='DOI' value='10.17487/RFC5545'/>
</reference>

<reference anchor='RFC7951' target='https://www.rfc-editor.org/info/rfc7951'>
  <front>
    <title>JSON Encoding of Data Modeled with YANG</title>
    <author fullname='L. Lhotka' initials='L.' surname='Lhotka'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7951'/>
  <seriesInfo name='DOI' value='10.17487/RFC7951'/>
</reference>


<reference anchor='I-D.ietf-opsawg-ucl-acl' target='https://datatracker.ietf.org/doc/html/draft-ietf-opsawg-ucl-acl-00'>
   <front>
      <title>A Policy-based Network Access Control</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='26' month='September' year='2023'/>
      <abstract>
	 <t>   This document defines a YANG module 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.

   Also, the document defines a common schedule YANG module which is
   designed to be applicable for policy activation based on date and
   time conditions.

   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>
   <seriesInfo name='Internet-Draft' value='draft-ietf-opsawg-ucl-acl-00'/>
   
</reference>




    </references>


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

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>This work is derived from the <xref target="I-D.ietf-opsawg-ucl-acl"/>. There is a desire
   from the OPSAWG to see this model be separately defined for wide use in scheduling context.</t>

<t>Thanks to Adrian Farrel, Wei Pan, Tianran Zhou, and Joe Clarke
   for their valuable comments and inputs to this work.</t>

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

