| rfc9922.original.xml | rfc9922.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | |||
| <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4. | <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 2.5. | |||
| 4) --> | 9) --> | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| -ietf-netmod-schedule-yang-10" category="std" consensus="true" submissionType="I | -ietf-netmod-schedule-yang-rfceditor-latest" category="std" consensus="true" sub | |||
| ETF" tocInclude="true" sortRefs="true" symRefs="true" version="3"> | missionType="IETF" xml:lang="en" number="9922" tocInclude="true" sortRefs="true" | |||
| <!-- xml2rfc v2v3 conversion 3.30.0 --> | symRefs="true" version="3"> | |||
| <!-- xml2rfc v2v3 conversion 3.31.0 --> | ||||
| <link href="https://datatracker.ietf.org/doc/draft-ietf-netmod-schedule-yang-r | ||||
| fceditor-latest" rel="prev"/> | ||||
| <front> | <front> | |||
| <title abbrev="Common Schedule YANG">A Common YANG Data Model for Scheduling | <title abbrev="YANG Scheduling">A Common YANG Data Model for Scheduling</tit | |||
| </title> | le> | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-schedule-yang-10" | <seriesInfo name="RFC" value="9922"/> | |||
| /> | ||||
| <author fullname="Qiufang Ma" role="editor"> | <author fullname="Qiufang Ma" role="editor"> | |||
| <organization>Huawei</organization> | <organization>Huawei</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>101 Software Avenue, Yuhua District</street> | <street>101 Software Avenue, Yuhua District</street> | |||
| <city>Jiangsu</city> | <city>Jiangsu</city> | |||
| <code>210012</code> | <code>210012</code> | |||
| <country>China</country> | <country>China</country> | |||
| </postal> | </postal> | |||
| <email>maqiufang1@huawei.com</email> | <email>maqiufang1@huawei.com</email> | |||
| skipping to change at line 59 ¶ | skipping to change at line 60 ¶ | |||
| </author> | </author> | |||
| <author fullname="Daniel King"> | <author fullname="Daniel King"> | |||
| <organization>Lancaster University</organization> | <organization>Lancaster University</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>United Kingdom</country> | <country>United Kingdom</country> | |||
| </postal> | </postal> | |||
| <email>d.king@lancaster.ac.uk</email> | <email>d.king@lancaster.ac.uk</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2025" month="August" day="07"/> | <date year="2026" month="February"/> | |||
| <area>Operations and Management</area> | <area>OPS</area> | |||
| <workgroup>netmod</workgroup> | <workgroup>netmod</workgroup> | |||
| <keyword>calendaring</keyword> | <keyword>calendaring</keyword> | |||
| <keyword>scheduling</keyword> | <keyword>scheduling</keyword> | |||
| <keyword>YANG</keyword> | <keyword>YANG</keyword> | |||
| <keyword>groupings</keyword> | <keyword>groupings</keyword> | |||
| <abstract> | <abstract> | |||
| <?line 57?> | <?line 95?> | |||
| <!-- [rfced] FYI - We will do the following when we convert the file to RFCXML: | ||||
| - compact the spacing of the definition lists in Sections 8.1 and 8.2 | ||||
| --> | ||||
| <!--[rfced] Note that we have updated the short title, which appears in the | ||||
| running header in the PDF output, as follows. Please let us know of any | ||||
| objections. | ||||
| Original: | ||||
| Common Schedule YANG | ||||
| Current: | ||||
| YANG Scheduling | ||||
| --> | ||||
| <t>This document defines common types and groupings that are meant to be used | <t>This document defines common types and groupings that are meant to be used | |||
| for scheduling purposes such as event, policy, services, or resources based o n | for scheduling purposes, such as events, policies, services, or resources bas ed on | |||
| date and time. For the sake of better modularity, the YANG module includes a | date and time. For the sake of better modularity, the YANG module includes a | |||
| set of recurrence-related groupings with varying levels of representation | set of recurrence-related groupings with varying levels of representation | |||
| (i.e., from basic to advanced) to accommodate a variety of requirements. | (i.e., from basic to advanced) to accommodate a variety of requirements. | |||
| It also defines groupings for validating requested schedules and reporting sc heduling status.</t> | It also defines groupings for validating requested schedules and reporting sc heduling statuses.</t> | |||
| </abstract> | </abstract> | |||
| <note removeInRFC="true"> | ||||
| <name>Discussion Venues</name> | ||||
| <t>This note is to be removed before publishing as an RFC.</t> | ||||
| <t>Discussion of this document takes place on the | ||||
| Network Modeling (NETMOD) Working Group mailing list (netmod@ietf.org), | ||||
| which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ | ||||
| netmod/"/>.</t> | ||||
| <t>Source for this draft and an issue tracker can be found at | ||||
| <eref target="https://github.com/netmod-wg/schedule-yang"/>.</t> | ||||
| </note> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <?line 66?> | <?line 120?> | |||
| <section anchor="intro"> | <section anchor="intro"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>This document defines a common schedule YANG module ("ietf-schedule") t hat can | <t>This document defines a common schedule YANG module ("ietf-schedule") t hat can | |||
| be used in several scheduling contexts, e.g., (but not limited to) | be used in several scheduling contexts, e.g., (but not limited to) | |||
| <xref target="I-D.ietf-opsawg-ucl-acl"/>, <xref target="I-D.ietf-opsawg-scheduli ng-oam-tests"/>, | <xref target="I-D.ietf-opsawg-ucl-acl"/>, <xref target="I-D.ietf-opsawg-scheduli ng-oam-tests"/>, | |||
| and <xref target="I-D.ietf-tvr-schedule-yang"/>. The module includes a set of re | and <xref target="I-D.ietf-tvr-schedule-yang"/>. The module includes a set of re | |||
| usable groupings which | usable groupings that | |||
| are designed to be applicable for scheduling purposes such as event, policy, | are designed to be applicable for scheduling purposes, such as events, policies, | |||
| services or resources based on date and time. It also defines groupings for vali | services, or resources based on date and time. It also defines groupings for val | |||
| dating | idating | |||
| requested schedules and reporting scheduling status.</t> | requested schedules and reporting scheduling statuses.</t> | |||
| <t>This document does not make any assumption about the nature of actions that are | <t>This document does not make any assumption about the nature of actions that are | |||
| triggered by the schedules. Detection and resolution of any schedule conflicts | triggered by the schedules. Detection and resolution of any schedule conflicts | |||
| are beyond the scope of this document.</t> | are beyond the scope of this document.</t> | |||
| <t><xref target="sec-mib"/> discusses the relationship with the Management | <!--[rfced] To avoid awkward hyphenation, may we update this sentence to r | |||
| Information Base (MIB) | ead as | |||
| "objects managed by MIB"? | ||||
| Original: | ||||
| Section 5 discusses the relationship with the Management Information | ||||
| Base (MIB) managed objects for scheduling management operations | ||||
| defined in [RFC3231]. | ||||
| Perhaps: | ||||
| Section 5 discusses the relationship with the objects managed by | ||||
| Management Information Base (MIB) for scheduling management operations | ||||
| defined in [RFC3231]. | ||||
| --> | ||||
| <t><xref target="sec-mib"/> discusses the relationship with the Management Infor | ||||
| mation Base (MIB) | ||||
| managed objects for scheduling management operations defined in <xref target="RF C3231"/>.</t> | managed objects for scheduling management operations defined in <xref target="RF C3231"/>.</t> | |||
| <t><xref target="usage"/> describes a set of examples to illustrate the us e of the common schedule groupings (<xref target="sec-grp"/>). | <t><xref target="usage"/> describes a set of examples to illustrate the us e of the common schedule groupings (<xref target="sec-grp"/>). | |||
| <xref target="sec-ext"/> provides sample modules to exemplify how future modules can use the extensibility | <xref target="sec-ext"/> provides sample modules to exemplify how future modules can use the extensibility | |||
| provisions in the "ietf-schedule" module (<xref target="sec-schedule"/>). Also, <xref target="ex-framework"/> provides | provisions in the "ietf-schedule" module (<xref target="sec-schedule"/>). Also, <xref target="ex-framework"/> provides | |||
| an example of using the "ietf-schedule" module for scheduled use of a resources framework (e.g., <xref target="RFC8413"/>).</t> | an example of using the "ietf-schedule" module for scheduled use of a resources framework (e.g., <xref target="RFC8413"/>).</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 public | ||||
| ation.</t> | ||||
| <t>This document contains placeholder values that need to be replaced wi | ||||
| th finalized | ||||
| values at the time of publication. This note summarizes all of the | ||||
| substitutions that are needed. No other RFC Editor instructions are specifie | ||||
| d | ||||
| elsewhere in this document.</t> | ||||
| <t>Please apply the following replacements:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>XXXX --> the assigned RFC number for this draft</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>2025-05-30 --> the actual date of the publication of this docu | ||||
| ment</t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="conventions-and-definitions"> | <section anchor="conventions-and-definitions"> | |||
| <name>Conventions and Definitions</name> | <name>Conventions and Definitions</name> | |||
| <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 >REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | <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>RECO MMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECO MMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be i nterpreted as | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be i nterpreted as | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they | |||
| appear in all capitals, as shown here.</t> | appear in all capitals, as shown here.</t> | |||
| <?line -18?> | <?line -18?> | |||
| <t>The meanings of the symbols in tree diagrams are defined in | <t>The meanings of the symbols in tree diagrams are defined in | |||
| <xref target="RFC8340"/>.</t> | <xref target="RFC8340"/>.</t> | |||
| <t>This document uses the YANG terminology defined in <xref section="3" se ctionFormat="of" target="RFC7950"/>.</t> | <t>This document uses the YANG terminology defined in <xref section="3" se ctionFormat="of" target="RFC7950"/>.</t> | |||
| <t>The document makes use of the following terms:</t> | <t>This document makes use of the following terms:</t> | |||
| <dl> | <dl> | |||
| <dt>Recurrence rule:</dt> | <dt>Recurrence rule:</dt> | |||
| <dd> | <dd> | |||
| <t>Refers to a rule or repeating pattern for recurring events. See als o <xref section="3.8.5.3" sectionFormat="of" target="RFC5545"/> for a comprehens ive iCalendar recurrence rule specification.</t> | <t>Refers to a rule or repeating pattern for recurring events. See als o <xref section="3.8.5.3" sectionFormat="of" target="RFC5545"/> for a comprehens ive iCalendar recurrence rule specification.</t> | |||
| </dd> | </dd> | |||
| <dt>Recurrence instance (or Recurrence, for short):</dt> | <dt>Recurrence instance (or Recurrence, for short):</dt> | |||
| <dd> | <dd> | |||
| <t>Refers to an instance that matches a recurrence rule.</t> | <t>Refers to an instance that matches a recurrence rule.</t> | |||
| </dd> | </dd> | |||
| <dt>Recurrence set:</dt> | <dt>Recurrence set:</dt> | |||
| <dd> | <dd> | |||
| <t>Refers to a set of recurrence instances.</t> | <t>Refers to a set of recurrence instances.</t> | |||
| </dd> | </dd> | |||
| <dt>Frequency:</dt> | <dt>Frequency:</dt> | |||
| <dd> | <dd> | |||
| <t>Characterizes the type of a recurrence rule. Values are taken from "FREQ" rule in <xref section="3.3.10" sectionFormat="of" target="RFC5545"/>.</t> | <t>Characterizes the type of a recurrence rule. Values are taken from the "FREQ" rule in <xref section="3.3.10" sectionFormat="of" target="RFC5545"/>. </t> | |||
| </dd> | </dd> | |||
| <dt/> | <dt/> | |||
| <dd> | <dd> | |||
| <t>For example, repeating events based on an interval of a second or m ore are | <t>For example, repeating events based on an interval of a second or m ore are | |||
| classified as recurrence with a frequency value of "SECONDLY". Frequency values defined as identities | classified as recurrence with a frequency value of "SECONDLY". Frequency values defined as identities | |||
| in the YANG module are used in lowercase.</t> | in the YANG module are used in lowercase.</t> | |||
| </dd> | </dd> | |||
| <dt>iCalendar:</dt> | <dt>iCalendar:</dt> | |||
| <dd> | <dd> | |||
| <t>Refers to Internet Calendaring per <xref target="RFC5545"/>.</t> | <t>Refers to Internet Calendaring per <xref target="RFC5545"/>.</t> | |||
| </dd> | </dd> | |||
| <dt>Interval:</dt> | <dt>Interval:</dt> | |||
| <dd> | <dd> | |||
| <t>Refers to an integer that specifies interval at which a recurrence rule repeats. Values are taken from "INTERVAL" rule in <xref section="3.3.10" se ctionFormat="of" target="RFC5545"/>.</t> | <t>Refers to an integer that specifies the interval at which a recurre nce rule repeats. Values are taken from the "INTERVAL" rule in <xref section="3. 3.10" sectionFormat="of" target="RFC5545"/>.</t> | |||
| </dd> | </dd> | |||
| <dt/> | <dt/> | |||
| <dd> | <dd> | |||
| <t>For example, "1", means every second for a secondly rule, every min ute for a minutely rule, every hour for an hourly rule, etc.</t> | <t>For example, "1" means every second for a secondly rule, every minu te for a minutely rule, every hour for an hourly rule, etc.</t> | |||
| </dd> | </dd> | |||
| <dt>System:</dt> | <dt>System:</dt> | |||
| <dd> | <dd> | |||
| <t>Refers to an entity that hosts a schedule that is managed using the YANG module defined in this document.</t> | <t>Refers to an entity that hosts a schedule that is managed using the YANG module defined in this document.</t> | |||
| </dd> | </dd> | |||
| </dl> | </dl> | |||
| </section> | </section> | |||
| <section anchor="sec-overview"> | <section anchor="sec-overview"> | |||
| <name>Module Overview</name> | <name>Module Overview</name> | |||
| <section anchor="sec-features"> | <section anchor="sec-features"> | |||
| <name>Features</name> | <name>Features</name> | |||
| <t>The "ietf-schedule" data model defines the recurrence related groupin gs using | <t>The "ietf-schedule" data model defines the recurrence-related groupin gs using | |||
| a modular approach. To that aim, a variety of representations of recurrence | a modular approach. To that aim, a variety of representations of recurrence | |||
| groupings ranging from basic to advanced (iCalender-like) are defined. | groupings ranging from basic to advanced (iCalender-like) are defined. | |||
| To allow for different options, two features are defined in the data model:</ t> | To allow for different options, two features are defined in the data model:</ t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>"basic-recurrence"</t> | <t>"basic-recurrence"</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>"icalendar-recurrence"</t> | <t>"icalendar-recurrence"</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| <t>Refer to Sections <xref format="counter" target="sec-aug"/> and <xref format="counter" target="features"/> for the use of these features.</t> | <t>Refer to <xref target="sec-aug"/> and <xref target="features"/> for t he use of these features.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-types"> | <section anchor="sec-types"> | |||
| <name>Types and Identities</name> | <name>Types and Identities</name> | |||
| <t>The "ietf-schedule" module (<xref target="sec-schedule"/>) defines th e following identities:</t> | <t>The "ietf-schedule" module (<xref target="sec-schedule"/>) defines th e following identities:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>"schedule-type": Indicates the type of a schedule. The following types are defined so far: | <t>"schedule-type": Indicates the type of schedule. The following ty pes are defined so far: | |||
| </t> | </t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>one-shot: The schedule will trigger an action that has either the duration specified as 0 or the end time specified the same as start time, a nd then the schedule will disable itself (<xref section="3.3" sectionFormat="of" target="RFC3231"/>).</t> | <t>one-shot: The schedule will trigger an action that has either the duration specified as 0 or the end time specified as the same as the start time, and then the schedule will disable itself (<xref section="3.3" sectionForm at="of" target="RFC3231"/>).</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>period: The schedule is a period-based schedule consisting ei ther (1) a start and end or (2) a start and positive duration of time. If neithe r an end nor a duration is indicated, the period is considered to last forever.< /t> | <t>period: This type is used for a period-based schedule consist ing of either (1) a start and end or (2) a start and positive duration of time. If neither an end nor a duration is indicated, the period is considered to last forever.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>recurrence: This type is used for a recurrence-based schedule . A recurrence may be periodic (i.e., repeat over the same period, e.g., every f ive minutes) or not (i.e., repeat in a non-regular manner, e.g., every day at 8 and 9 AM).</t> | <t>recurrence: This type is used for a recurrence-based schedule . A recurrence may be periodic (i.e., repeat over the same period, e.g., every f ive minutes) or not (i.e., repeat in a non-regular manner, e.g., every day at 8 and 9 AM).</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>"frequency-type": Characterizes the repeating interval rule of a recurrence schedule (secondly, minutely, etc.).</t> | <t>"frequency-type": Characterizes the repeating interval rule of a recurrence schedule (secondly, minutely, etc.).</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| skipping to change at line 265 ¶ | skipping to change at line 270 ¶ | |||
| <t>"icalendar-recurrence" (<xref target="sec-ical-rec"/>)</t> | <t>"icalendar-recurrence" (<xref target="sec-ical-rec"/>)</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>"schedule-status", "schedule-status-with-time-zone", and "schedul e-status-with-name" (<xref target="sec-schedule-status"/>)</t> | <t>"schedule-status", "schedule-status-with-time-zone", and "schedul e-status-with-name" (<xref target="sec-schedule-status"/>)</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| <t>Examples are provided in <xref target="usage"/>.</t> | <t>Examples are provided in <xref target="usage"/>.</t> | |||
| <section anchor="sec-gen"> | <section anchor="sec-gen"> | |||
| <name>The "generic-schedule-params" Grouping</name> | <name>The "generic-schedule-params" Grouping</name> | |||
| <t>A system accepts and handles schedule requests, which may help furt her | <t>A system accepts and handles schedule requests, which may help furt her | |||
| automate the scheduling process of events, policy, services, or resources | automate the scheduling process of events, policies, services, or resources | |||
| based on date and time. The "generic-schedule-params" grouping (<xref target= "gsp-tree"/>) | based on date and time. The "generic-schedule-params" grouping (<xref target= "gsp-tree"/>) | |||
| specifies a set of configuration parameters that are used by a system for | specifies a set of configuration parameters that are used by a system for | |||
| validating requested schedules.</t> | validating requested schedules.</t> | |||
| <figure anchor="gsp-tree"> | <figure anchor="gsp-tree"> | |||
| <name>'generic-schedule-params' Tree Structure</name> | <name>'generic-schedule-params' Grouping Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping generic-schedule-params: | grouping generic-schedule-params: | |||
| +-- description? string | +-- description? string | |||
| +-- time-zone-identifier? sys:timezone-name | +-- time-zone-identifier? sys:timezone-name | |||
| +-- validity? yang:date-and-time | +-- validity? yang:date-and-time | |||
| +-- max-allowed-start? yang:date-and-time | +-- max-allowed-start? yang:date-and-time | |||
| +-- min-allowed-start? yang:date-and-time | +-- min-allowed-start? yang:date-and-time | |||
| +-- max-allowed-end? yang:date-and-time | +-- max-allowed-end? yang:date-and-time | |||
| +-- discard-action? identityref | +-- discard-action? identityref | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The "description" includes a description of the schedule. No constr aint is imposed | <t>The "description" parameter includes a description of the schedule. No constraint is imposed | |||
| on the structure nor the use of this parameter.</t> | on the structure nor the use of this parameter.</t> | |||
| <t>The "time-zone-identifier" parameter, if provided, specifies the | <t>The "time-zone-identifier" parameter, if provided, specifies the | |||
| time zone reference <xref target="RFC7317"/> of the local date and time value s. This parameter | time zone reference <xref target="RFC7317"/> of the local date and time value s. This parameter | |||
| <bcp14>MUST</bcp14> be specified if any of the date and time values are in th e format of local time. | <bcp14>MUST</bcp14> be specified if any of the date and time values are in th e format of local time. | |||
| It <bcp14>MUST NOT</bcp14> be applied to date and time values which are speci fied in the format | It <bcp14>MUST NOT</bcp14> be applied to date and time values that are specif ied in the format | |||
| of UTC or time zone offset to UTC.</t> | of UTC or time zone offset to UTC.</t> | |||
| <t>The "validity" parameter specifies the date and time after which a | <!--[rfced] Please clarify "to execute independent of when it | |||
| schedule | ends". Is the meaning that the validity parameter determines when a | |||
| schedule can be started and thus "executed independently from when it | ||||
| ends"? | ||||
| Original: | ||||
| It determines the latest time that a schedule can be started to | ||||
| execute independent of when it ends and takes precedence over | ||||
| similar attributes that are provided at the schedule instance | ||||
| itself. | ||||
| Perhaps: | ||||
| It determines the latest time that a schedule can be started and | ||||
| thus executed independently from when it ends, and it takes | ||||
| precedence over similar attributes that are provided at the | ||||
| schedule instance itself. | ||||
| --> | ||||
| <t>The "validity" parameter specifies the date and time after which a schedule | ||||
| will not be considered as valid. It determines the latest time that a schedul e | will not be considered as valid. It determines the latest time that a schedul e | |||
| can be started to execute independent of when it ends and takes precedence ov er | can be started to execute independent of when it ends, and it takes precedenc e over | |||
| similar attributes that are provided at the schedule instance itself. A reque sted | similar attributes that are provided at the schedule instance itself. A reque sted | |||
| schedule may still be accepted but any occurrences that start later than the configured value will not be executed.</t> | schedule may still be accepted, but any occurrences that start later than the configured value will not be executed.</t> | |||
| <t>The "max/min-allowed-start" parameters specify the maximum/minimum scheduled | <t>The "max/min-allowed-start" parameters specify the maximum/minimum scheduled | |||
| start date and time. A requested schedule will be rejected if the first | start date and time. A requested schedule will be rejected if the first | |||
| occurrence of the schedule starts later/earlier than the configured values.</ t> | occurrence of the schedule starts later/earlier than the configured values.</ t> | |||
| <t>The "max-allowed-end" parameter specifies the maximum allowed end t ime of | <t>The "max-allowed-end" parameter specifies the maximum allowed end t ime of | |||
| the last occurrence. A requested schedule will be rejected if the end time | the last occurrence. A requested schedule will be rejected if the end time | |||
| of last occurrence is later than the configured "max-allowed-end" value.</t> | of the last occurrence is later than the configured "max-allowed-end" value.< /t> | |||
| <t>The "discard-action" parameter specifies the action if a requested schedule | <t>The "discard-action" parameter specifies the action if a requested schedule | |||
| cannot be accepted for any reason and is discarded. Possible reasons include, | cannot be accepted for any reason and is discarded. Possible reasons include, | |||
| but are not limited to, the requested schedule failing to satisfy the guards in this grouping, | but are not limited to, the requested schedule failing to satisfy the guards in this grouping, | |||
| conflicting with existing schedules, or being out-of-date (e.g., the expected | conflicting with existing schedules, or being out-of-date (e.g., the expected | |||
| start is already passed).</t> | start has already passed).</t> | |||
| <!--[rfced] May we update this sentence to make the two items | ||||
| mentioned (i.e., "all schedules on a system" and "too short schedule | ||||
| requests") more parallel and thus easier to read? | ||||
| Original: | ||||
| These parameters apply to all schedules on a system and are meant to | ||||
| provide guards against stale configuration, too short schedule | ||||
| requests that would prevent validation by admins of some critical | ||||
| systems, etc. | ||||
| Perhaps: | ||||
| These parameters apply to all schedules on a system and are meant | ||||
| to provide guards against stale configuration, schedule requests | ||||
| that are too short and that would thus prevent validation by admins | ||||
| of some critical systems, etc. | ||||
| --> | ||||
| <t>*</t> | ||||
| <t>These parameters apply to all schedules on a system and are meant | <t>These parameters apply to all schedules on a system and are meant | |||
| to provide guards against stale configuration, too short schedule requests | to provide guards against stale configuration, too short schedule requests | |||
| that would prevent validation by admins of some critical systems, etc.</t> | that would prevent validation by admins of some critical systems, etc.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-period"> | <section anchor="sec-period"> | |||
| <name>The "period-of-time" Grouping</name> | <name>The "period-of-time" Grouping</name> | |||
| <t>The "period-of-time" grouping (<xref target="pt-tree"/>) represents a time period using | <t>The "period-of-time" grouping (<xref target="pt-tree"/>) represents a time period using | |||
| either a start date and time ("period-start") and end date and time ("period- end"), or a | either a start date and time ("period-start") and end date and time ("period- end") or a | |||
| start date and time ("period-start") and a non-negative time duration ("durat ion"). For the first | start date and time ("period-start") and a non-negative time duration ("durat ion"). For the first | |||
| format, the start of the period <bcp14>MUST</bcp14> be no later than the end of the period. If neither an end date and time ("period-end") | format, the start of the period <bcp14>MUST</bcp14> be no later than the end of the period. If neither an end date and time ("period-end") | |||
| nor a duration ("duration") is indicated, the period is considered to last fo rever. | nor a duration ("duration") is indicated, the period is considered to last fo rever. | |||
| If the duration ("duration") value is 0 or the end time ("period-end") is the same as the start time ("period-start"), the period | If the duration ("duration") value is 0 or the end time ("period-end") is the same as the start time ("period-start"), the period | |||
| is considered as a one-shot schedule. If no start date and time ("period-star t") | is considered as a one-shot schedule. If no start date and time ("period-star t") | |||
| is specified, the period is considered to start immediately.</t> | is specified, the period is considered to start immediately.</t> | |||
| <t>The "time-zone-identifier" parameter indicates the identifier for t he | <t>The "time-zone-identifier" parameter indicates the identifier for t he | |||
| time zone. This parameter <bcp14>MUST</bcp14> be specified if either the "per iod-start" or "period-end" | time zone. This parameter <bcp14>MUST</bcp14> be specified if either the "per iod-start" or "period-end" | |||
| value is reported in local time format. It <bcp14>MUST NOT</bcp14> be applied to date and time | value is reported in local time format. It <bcp14>MUST NOT</bcp14> be applied to date and time | |||
| values which are specified in the format of UTC or time zone offset to UTC.</ | values that are specified in the format of UTC or time zone offset to UTC.</t | |||
| t> | > | |||
| <t>The "period-description" includes a description of the period. No c | <t>The "period-description" parameter includes a description of the pe | |||
| onstraint is imposed | riod. No constraint is imposed | |||
| on the structure nor the use of this parameter.</t> | on the structure nor the use of this parameter.</t> | |||
| <figure anchor="pt-tree"> | <figure anchor="pt-tree"> | |||
| <name>'period-of-time' Grouping Tree Structure</name> | <name>'period-of-time' Grouping Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping period-of-time: | grouping period-of-time: | |||
| +-- period-description? string | +-- period-description? string | |||
| +-- period-start? yang:date-and-time | +-- period-start? yang:date-and-time | |||
| +-- time-zone-identifier? sys:timezone-name | +-- time-zone-identifier? sys:timezone-name | |||
| +-- (period-type)? | +-- (period-type)? | |||
| +--:(explicit) | +--:(explicit) | |||
| | +-- period-end? yang:date-and-time | | +-- period-end? yang:date-and-time | |||
| +--:(duration) | +--:(duration) | |||
| +-- duration? duration | +-- duration? duration | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="sec-rec"> | <section anchor="sec-rec"> | |||
| <name>The "recurrence-basic" Grouping</name> | <name>The "recurrence-basic" Grouping</name> | |||
| <t>The "recurrence-basic" grouping (<xref target="rec-grp-tree"/>) spe cifies a simple recurrence rule which starts immediately and repeats forever.</t > | <t>The "recurrence-basic" grouping (<xref target="rec-grp-tree"/>) spe cifies a simple recurrence rule that starts immediately and repeats forever.</t> | |||
| <figure anchor="rec-grp-tree"> | <figure anchor="rec-grp-tree"> | |||
| <name>'recurrence-basic' Grouping Tree Structure</name> | <name>'recurrence-basic' Grouping Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping recurrence-basic: | grouping recurrence-basic: | |||
| +-- recurrence-description? string | +-- recurrence-description? string | |||
| +-- frequency? identityref | +-- frequency? identityref | |||
| +-- interval? uint32 | +-- interval? uint32 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The frequency parameter ("frequency") identifies the type of a recu rrence rule. For example, | <t>The frequency parameter ("frequency") identifies the type of recurr ence rule. For example, | |||
| a "daily" frequency value specifies repeating events based on an interval of a day or more.</t> | a "daily" frequency value specifies repeating events based on an interval of a day or more.</t> | |||
| <t>Consistent with <xref section="3.3.10" sectionFormat="of" target="R FC5545"/>, the interval ("interval") represents at which interval the recurrence rule repeats. For example, | <t>Consistent with <xref section="3.3.10" sectionFormat="of" target="R FC5545"/>, the interval parameter ("interval") represents at which interval the recurrence rule repeats. For example, | |||
| within a "daily" recurrence rule, an interval value of "8" means every eight d ays.</t> | within a "daily" recurrence rule, an interval value of "8" means every eight d ays.</t> | |||
| <t>Note that per <xref section="4.13" sectionFormat="of" target="I-D.i | <!-- [rfced] We note that Section 4.13 of [I-D.ietf-netmod-rfc8407bis] | |||
| etf-netmod-rfc8407bis"/>, neither a "default" | mentions | |||
| "default" but doesn't mention "mandatory"; however, Section 4.14 | ||||
| mentions both "default" and "mandatory". Should the citations below be updated | ||||
| to point to Section 4.14 instead? | ||||
| Original (Section 3.3.3): | ||||
| Note that per Section 4.13 of [I-D.ietf-netmod-rfc8407bis], neither a | ||||
| "default" nor a "mandatory" substatement is defined here for both | ||||
| "frequency" and "interval" parameters because there are cases (e.g., | ||||
| profiling) where using these statements is problematic. | ||||
| Original (Section 3.3.8): | ||||
| Note that per Section 4.13 of [I-D.ietf-netmod-rfc8407bis], neither a | ||||
| "default" nor a "mandatory" substatement is defined here because there | ||||
| are cases (e.g., profiling) where using these statements is problematic. | ||||
| --> | ||||
| <t>Note that, per <xref section="4.13" sectionFormat="of" target="I-D.ietf-netmo | ||||
| d-rfc8407bis"/>, neither a "default" | ||||
| nor a "mandatory" substatement is defined here for both "frequency" and "inter val" | nor a "mandatory" substatement is defined here for both "frequency" and "inter val" | |||
| parameters because there are cases (e.g., profiling) where using these stateme nts is problematic. | parameters because there are cases (e.g., profiling) where using these stateme nts is problematic. | |||
| YANG modules using this grouping <bcp14>SHOULD</bcp14> refine these two nodes with either a | YANG modules using this grouping <bcp14>SHOULD</bcp14> refine these two nodes with either a | |||
| "mandatory" or a "default" statement, if they always need to be configured or have default values. | "mandatory" or a "default" statement if they always need to be configured or h ave default values. | |||
| This recommendation <bcp14>MAY</bcp14> be ignored in cases such as when this g rouping is used by another grouping.</t> | This recommendation <bcp14>MAY</bcp14> be ignored in cases such as when this g rouping is used by another grouping.</t> | |||
| <t>The "recurrence-description" includes a description of the period. No constraint is imposed | <t>The "recurrence-description" parameter includes a description of th e period. No constraint is imposed | |||
| on the structure nor the use of this parameter.</t> | on the structure nor the use of this parameter.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-rec-utc"> | <section anchor="sec-rec-utc"> | |||
| <name>The "recurrence-utc" Grouping</name> | <name>The "recurrence-utc" Grouping</name> | |||
| <t>The "recurrence-utc" grouping (<xref target="rec-utc-grp-tree"/>) u ses the "recurrence-basic" | <t>The "recurrence-utc" grouping (<xref target="rec-utc-grp-tree"/>) u ses the "recurrence-basic" | |||
| grouping (<xref target="sec-rec"/>) and specifies a simple recurrence rule in UTC format.</t> | grouping (<xref target="sec-rec"/>) and specifies a simple recurrence rule in UTC format.</t> | |||
| <figure anchor="rec-utc-grp-tree"> | <figure anchor="rec-utc-grp-tree"> | |||
| <name>'recurrence-utc' Grouping Tree Structure</name> | <name>'recurrence-utc' Grouping Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping recurrence-utc: | grouping recurrence-utc: | |||
| +-- recurrence-first | +-- recurrence-first | |||
| | +-- start-time-utc? yang:date-and-time | | +-- start-time-utc? yang:date-and-time | |||
| | +-- duration? uint32 | | +-- duration? uint32 | |||
| +-- (recurrence-end)? | +-- (recurrence-end)? | |||
| | +--:(until) | | +--:(until) | |||
| | | +-- utc-until? yang:date-and-time | | | +-- utc-until? yang:date-and-time | |||
| | +--:(count) | | +--:(count) | |||
| | +-- count? uint32 | | +-- count? uint32 | |||
| +-- recurrence-description? string | +-- recurrence-description? string | |||
| +-- frequency? identityref | +-- frequency? identityref | |||
| +-- interval? uint32 | +-- interval? uint32 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The "start-time-utc" indicates the start time in UTC format.</t> | <t>The "start-time-utc" parameter indicates the start time in UTC form at.</t> | |||
| <t>The "duration" parameter specifies, in units of seconds, the time p eriod of | <t>The "duration" parameter specifies, in units of seconds, the time p eriod of | |||
| the first occurrence. Unless specified otherwise (e.g., through additional | the first occurrence. Unless specified otherwise (e.g., through additional | |||
| augmented parameters), the "duration" also applies to subsequent recurrence | augmented parameters), the "duration" also applies to subsequent recurrence | |||
| instances. When unspecified, each occurrence is considered as | instances. When unspecified, each occurrence is considered as | |||
| immediate completion (e.g., execute an immediate command that is considered | immediate completion (e.g., execute an immediate command that is considered | |||
| to complete quickly) or hard to compute an exact duration (e.g., run a data | to complete quickly) or hard to compute an exact duration (e.g., run a data | |||
| analysis script whose execution time may depend on the data volume and | analysis script whose execution time may depend on the data volume and | |||
| computation resource availability). The behavior to follow when a task takes | computation resource availability). The behavior to follow when a task takes | |||
| more time than specified by the "duration" is out of scope. Such consideratio ns | more time than specified by the "duration" is out of scope. Such consideratio ns | |||
| belong to task management, not schedule management.</t> | belong to task management, not schedule management.</t> | |||
| <t>Note that the "interval" and "duration" cover two distinct properti es of a schedule event. | <t>Note that the "interval" and "duration" cover two distinct properti es of a schedule event. | |||
| The interval specifies when a schedule will occur, combined with the frequency p arameter; while the duration indicates how long | The interval specifies when a schedule will occur, combined with the frequency p arameter, while the duration indicates how long | |||
| an occurrence will last. This document allows the interval between occurrences t o be shorter than the duration of each occurrence (e.g., a recurring event is sc heduled to start every day for a duration of 2 days).</t> | an occurrence will last. This document allows the interval between occurrences t o be shorter than the duration of each occurrence (e.g., a recurring event is sc heduled to start every day for a duration of 2 days).</t> | |||
| <t>The repetition can be scoped by a specified end time or by a count of occurrences, | <t>The repetition can be scoped by a specified end time or by a count of occurrences, | |||
| indicated by the "recurrence-end" choice. The "count" value <bcp14>MUST</bcp14 > be greater than 1, the "start-time-utc" value always counts | indicated by the "recurrence-end" choice. The "count" value <bcp14>MUST</bcp14 > be greater than 1, and the "start-time-utc" value always counts | |||
| as the first occurrence.</t> | as the first occurrence.</t> | |||
| <t>The "recurrence-utc" grouping is designed to be reused in schedulin g contexts | <t>The "recurrence-utc" grouping is designed to be reused in schedulin g contexts | |||
| where machine readability is more desirable.</t> | where machine readability is more desirable.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-rec-tz"> | <section anchor="sec-rec-tz"> | |||
| <name>The "recurrence-with-time-zone" Grouping</name> | <name>The "recurrence-with-time-zone" Grouping</name> | |||
| <t>The "recurrence-with-time-zone" grouping (<xref target="rec-tz-grp- tree"/>) uses the | <t>The "recurrence-with-time-zone" grouping (<xref target="rec-tz-grp- tree"/>) uses the | |||
| "recurrence-basic" grouping (<xref target="sec-rec"/>) and specifies a simple recurrence rule with a time zone.</t> | "recurrence-basic" grouping (<xref target="sec-rec"/>) and specifies a simple recurrence rule with a time zone.</t> | |||
| <figure anchor="rec-tz-grp-tree"> | <figure anchor="rec-tz-grp-tree"> | |||
| <name>'recurrence-with-time-zone' Grouping Tree Structure</name> | <name>'recurrence-with-time-zone' Grouping Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping recurrence-with-time-zone: | grouping recurrence-with-time-zone: | |||
| +-- recurrence-first | +-- recurrence-first | |||
| | +-- start-time? yang:date-and-time | | +-- start-time? yang:date-and-time | |||
| | +-- duration? duration | | +-- duration? duration | |||
| +-- time-zone-identifier? sys:timezone-name | +-- time-zone-identifier? sys:timezone-name | |||
| +-- (recurrence-end)? | +-- (recurrence-end)? | |||
| | +--:(until) | | +--:(until) | |||
| | | +-- until? yang:date-and-time | | | +-- until? yang:date-and-time | |||
| | +--:(count) | | +--:(count) | |||
| | +-- count? uint32 | | +-- count? uint32 | |||
| +-- recurrence-description? string | +-- recurrence-description? string | |||
| +-- frequency? identityref | +-- frequency? identityref | |||
| +-- interval? uint32 | +-- interval? uint32 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The "recurrence-first" container includes "start-time" and "duratio n" parameters | <t>The "recurrence-first" container includes "start-time" and "duratio n" parameters | |||
| to specify the start time and period of the first occurrence. Unless specifie d otherwise (e.g., through additional | to specify the start time and period of the first occurrence. Unless specifie d otherwise (e.g., through additional | |||
| augmented parameters), the "duration" also applies to subsequent recurrence i nstances. When unspecified, each occurrence is considered as | augmented parameters), the "duration" also applies to subsequent recurrence i nstances. When unspecified, each occurrence is considered as | |||
| immediate completion (e.g., execute an immediate command that is considered | immediate completion (e.g., execute an immediate command that is considered | |||
| to complete quickly) or hard to compute an exact duration (e.g., run a data | to complete quickly) or hard to compute an exact duration (e.g., run a data | |||
| analysis script whose execution time may depend on the data volume and | analysis script whose execution time may depend on the data volume and | |||
| computation resource availability).</t> | computation resource availability).</t> | |||
| <t>The grouping also includes a | <t>The grouping also includes a | |||
| "time-zone-identifier" parameter which <bcp14>MUST</bcp14> be specified if ei ther the "start-time" or "until" | "time-zone-identifier" parameter, which <bcp14>MUST</bcp14> be specified if e ither the "start-time" or "until" | |||
| value is reported in local time format. It <bcp14>MUST NOT</bcp14> be applied to date and time | value is reported in local time format. It <bcp14>MUST NOT</bcp14> be applied to date and time | |||
| values which are specified in the format of UTC or time zone offset to UTC.</ t> | values that are specified in the format of UTC or time zone offset to UTC.</t > | |||
| <t>The repetition can be scoped by a specified end time or by a count of occurrences, | <t>The repetition can be scoped by a specified end time or by a count of occurrences, | |||
| indicated by the "recurrence-end" choice. The "count" value <bcp14>MUST</bcp14 > be greater than 1, the "start-time" value always counts | indicated by the "recurrence-end" choice. The "count" value <bcp14>MUST</bcp14 > be greater than 1, and the "start-time" value always counts | |||
| as the first occurrence.</t> | as the first occurrence.</t> | |||
| <t>The considerations discussed in <xref target="sec-rec-utc"/> for "i nterval" and "duration" are also applicable to "recurrence-with-time-zone".</t> | <t>The considerations discussed in <xref target="sec-rec-utc"/> for "i nterval" and "duration" are also applicable to "recurrence-with-time-zone".</t> | |||
| <t>Unlike the definition of "recurrence-utc" grouping (<xref target="s ec-rec-utc"/>), | <t>Unlike the definition of the "recurrence-utc" grouping (<xref targe t="sec-rec-utc"/>), | |||
| "recurrence-with-time-zone" is intended to promote human readability over | "recurrence-with-time-zone" is intended to promote human readability over | |||
| machine readability.</t> | machine readability.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-rec-utc-dt"> | <section anchor="sec-rec-utc-dt"> | |||
| <name>The "recurrence-utc-with-periods" Grouping</name> | <name>The "recurrence-utc-with-periods" Grouping</name> | |||
| <t>The "recurrence-utc-with-periods" grouping (<xref target="rec-utc-d t-grp-tree"/>) uses | <t>The "recurrence-utc-with-periods" grouping (<xref target="rec-utc-d t-grp-tree"/>) uses | |||
| the "recurrence-utc" grouping (<xref target="sec-rec-utc"/>) and adds a "peri od-timeticks" | the "recurrence-utc" grouping (<xref target="sec-rec-utc"/>) and adds a "peri od-timeticks" | |||
| list to define an aggregate set of repeating occurrences.</t> | list to define an aggregate set of repeating occurrences.</t> | |||
| <figure anchor="rec-utc-dt-grp-tree"> | <figure anchor="rec-utc-dt-grp-tree"> | |||
| <name>'recurrence-utc-with-periods' Grouping Tree Structure</name> | <name>'recurrence-utc-with-periods' Grouping Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping recurrence-utc-with-periods: | grouping recurrence-utc-with-periods: | |||
| +-- recurrence-first | +-- recurrence-first | |||
| | +-- start-time-utc? yang:date-and-time | | +-- start-time-utc? yang:date-and-time | |||
| | +-- duration? uint32 | | +-- duration? uint32 | |||
| +-- (recurrence-end)? | +-- (recurrence-end)? | |||
| | +--:(until) | | +--:(until) | |||
| | | +-- utc-until? yang:date-and-time | | | +-- utc-until? yang:date-and-time | |||
| | +--:(count) | | +--:(count) | |||
| | +-- count? uint32 | | +-- count? uint32 | |||
| +-- recurrence-description? string | +-- recurrence-description? string | |||
| +-- frequency? identityref | +-- frequency? identityref | |||
| +-- interval? uint32 | +-- interval? uint32 | |||
| +-- period-timeticks* [period-start] | +-- period-timeticks* [period-start] | |||
| +-- period-start yang:timeticks | +-- period-start yang:timeticks | |||
| +-- period-end? yang:timeticks | +-- period-end? yang:timeticks | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The recurrence instances are specified by the union of occurrences | <!--[rfced] For conciseness, may we shorten "the value indicated by th | |||
| defined | e value | |||
| by both the recurrence rule and "period-timeticks" list. This list uses | of the..." in the sentence below as follows? | |||
| Original: | ||||
| The value of the "period-start" instance MUST | ||||
| NOT exceed the value indicated by the value of "frequency" instance... | ||||
| Perhaps: | ||||
| The value of the "period-start" instance MUST | ||||
| NOT exceed the value of the "frequency" instance... | ||||
| --> | ||||
| <t>The recurrence instances are specified by the union of occurrences defined | ||||
| by both the recurrence rule and "period-timeticks" list. This list uses the | ||||
| "yang:timeticks" type defined in <xref target="RFC6991"/>. Duplicate instances | "yang:timeticks" type defined in <xref target="RFC6991"/>. Duplicate instances | |||
| are ignored. The value of the "period-start" instance <bcp14>MUST NOT</bcp14> exceed the | are ignored. The value of the "period-start" instance <bcp14>MUST NOT</bcp14> exceed the | |||
| value indicated by the value of "frequency" instance, i.e., the timeticks | value indicated by the value of the "frequency" instance, i.e., the "timeticks " | |||
| value must not exceed 100 in a secondly recurrence rule, and it must not | value must not exceed 100 in a secondly recurrence rule, and it must not | |||
| exceed 6000 in a minutely recurrence rule, and so on.</t> | exceed 6000 in a minutely recurrence rule, and so on.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-rec-tz-dt"> | <section anchor="sec-rec-tz-dt"> | |||
| <name>The "recurrence-time-zone-with-periods" Grouping</name> | <name>The "recurrence-time-zone-with-periods" Grouping</name> | |||
| <t>The "recurrence-time-zone-with-periods" grouping (<xref target="rec -tz-dt-grp-tree"/>) uses | <t>The "recurrence-time-zone-with-periods" grouping (<xref target="rec -tz-dt-grp-tree"/>) uses | |||
| the "recurrence-with-time-zone" grouping (<xref target="sec-rec-tz"/>) and | the "recurrence-with-time-zone" grouping (<xref target="sec-rec-tz"/>) and | |||
| adds a "period" list to define an aggregate set of repeating occurrences.</t> | adds a "period" list to define an aggregate set of repeating occurrences.</t> | |||
| <figure anchor="rec-tz-dt-grp-tree"> | <figure anchor="rec-tz-dt-grp-tree"> | |||
| <name>'recurrence-time-zone-with-periods' Grouping Tree Structure</n ame> | <name>'recurrence-time-zone-with-periods' Grouping Tree Structure</n ame> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping recurrence-time-zone-with-periods: | grouping recurrence-time-zone-with-periods: | |||
| +-- recurrence-first | +-- recurrence-first | |||
| | +-- start-time? yang:date-and-time | | +-- start-time? yang:date-and-time | |||
| | +-- duration? duration | | +-- duration? duration | |||
| +-- time-zone-identifier? sys:timezone-name | +-- time-zone-identifier? sys:timezone-name | |||
| +-- (recurrence-end)? | +-- (recurrence-end)? | |||
| | +--:(until) | | +--:(until) | |||
| | | +-- until? yang:date-and-time | | | +-- until? yang:date-and-time | |||
| | +--:(count) | | +--:(count) | |||
| | +-- count? uint32 | | +-- count? uint32 | |||
| skipping to change at line 509 ¶ | skipping to change at line 578 ¶ | |||
| +-- interval? uint32 | +-- interval? uint32 | |||
| +-- period* [period-start] | +-- period* [period-start] | |||
| +-- period-description? string | +-- period-description? string | |||
| +-- period-start yang:date-and-time | +-- period-start yang:date-and-time | |||
| +-- time-zone-identifier? sys:timezone-name | +-- time-zone-identifier? sys:timezone-name | |||
| +-- (period-type)? | +-- (period-type)? | |||
| +--:(explicit) | +--:(explicit) | |||
| | +-- period-end? yang:date-and-time | | +-- period-end? yang:date-and-time | |||
| +--:(duration) | +--:(duration) | |||
| +-- duration? duration | +-- duration? duration | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The recurrence instances are specified by the union of occurrences defined | <t>The recurrence instances are specified by the union of occurrences defined | |||
| by both the recurrence rule and "period" list. Duplicate instances | by both the recurrence rule and "period" list. Duplicate instances | |||
| are ignored.</t> | are ignored.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-ical-rec"> | <section anchor="sec-ical-rec"> | |||
| <name>The "icalendar-recurrence" Grouping</name> | <name>The "icalendar-recurrence" Grouping</name> | |||
| <t>The "icalendar-recurrence" grouping (<xref target="ical-grp-tree"/> ) uses the | <t>The "icalendar-recurrence" grouping (<xref target="ical-grp-tree"/> ) uses the | |||
| "recurrence-time-zone-with-periods" grouping (<xref target="sec-rec-tz-dt"/>) and defines | "recurrence-time-zone-with-periods" grouping (<xref target="sec-rec-tz-dt"/>) and defines | |||
| more data nodes to enrich the definition of recurrence. The structure of the | more data nodes to enrich the definition of recurrence. The structure of the | |||
| "icalendar-recurrence" grouping refers to the definition of recurrence | "icalendar-recurrence" grouping refers to the definition of the recurrence | |||
| component defined in Sections <xref target="RFC5545" section="3.3.10" sectionF ormat="bare"/> and <xref target="RFC5545" section="3.8.5" sectionFormat="bare"/> of <xref target="RFC5545"/>.</t> | component defined in Sections <xref target="RFC5545" section="3.3.10" sectionF ormat="bare"/> and <xref target="RFC5545" section="3.8.5" sectionFormat="bare"/> of <xref target="RFC5545"/>.</t> | |||
| <figure anchor="ical-grp-tree"> | <figure anchor="ical-grp-tree"> | |||
| <name>'icalendar-recurrence' Grouping Tree Structure</name> | <name>'icalendar-recurrence' Grouping Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping icalendar-recurrence: | grouping icalendar-recurrence: | |||
| +-- recurrence-first | +-- recurrence-first | |||
| | +-- start-time? yang:date-and-time | | +-- start-time? yang:date-and-time | |||
| | +-- duration? duration | | +-- duration? duration | |||
| +-- time-zone-identifier? sys:timezone-name | +-- time-zone-identifier? sys:timezone-name | |||
| +-- (recurrence-end)? | +-- (recurrence-end)? | |||
| | +--:(until) | | +--:(until) | |||
| | | +-- until? yang:date-and-time | | | +-- until? yang:date-and-time | |||
| | +--:(count) | | +--:(count) | |||
| | +-- count? uint32 | | +-- count? uint32 | |||
| skipping to change at line 560 ¶ | skipping to change at line 629 ¶ | |||
| +-- byday* [weekday] | +-- byday* [weekday] | |||
| | +-- direction* int32 | | +-- direction* int32 | |||
| | +-- weekday schedule:weekday | | +-- weekday schedule:weekday | |||
| +-- bymonthday* int32 | +-- bymonthday* int32 | |||
| +-- byyearday* int32 | +-- byyearday* int32 | |||
| +-- byyearweek* int32 | +-- byyearweek* int32 | |||
| +-- byyearmonth* uint32 | +-- byyearmonth* uint32 | |||
| +-- bysetpos* int32 | +-- bysetpos* int32 | |||
| +-- workweek-start? schedule:weekday | +-- workweek-start? schedule:weekday | |||
| +-- exception-dates* yang:date-and-time | +-- exception-dates* yang:date-and-time | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>An array of the "bysecond" (or "byminute", "byhour") specifies a li | <t>An array of the "bysecond" (or "byminute" or "byhour") specifies a | |||
| st of | list of | |||
| seconds within a minute (or minutes within an hour, hours of the day). For | seconds within a minute (or minutes within an hour or hours of the day). For | |||
| example, within a "minutely" recurrence rule, the values of "byminute" node | example, within a "minutely" recurrence rule, the values of "byminute" node | |||
| "10" and "20" means the occurrences are generated at the 10th and 20th minute | "10" and "20" mean the occurrences are generated at the 10th and 20th minute | |||
| within an hour, reducing the number of recurrence instances from all minutes. </t> | within an hour, reducing the number of recurrence instances from all minutes. </t> | |||
| <t>The parameter "byday" specifies a list of days of the week, with an optional | <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 | direction that indicates the nth occurrence of a specific day within | |||
| the "monthly" or "yearly" frequency instance. Valid values of "direction" are | the "monthly" or "yearly" frequency instance. Valid values of "direction" are | |||
| 1 to 5 or -5 to -1 within a "monthly" recurrence rule; and 1 to 53 or -53 to -1 | 1 to 5 or -5 to -1 within a "monthly" recurrence rule and 1 to 53 or -53 to -1 | |||
| within a "yearly" recurrence rule. For example, within a "monthly" rule, | within a "yearly" recurrence rule. For example, within a "monthly" rule, | |||
| the "weekday" with a value of "monday" and the "direction" with a value of "- 1" | the "weekday" with a value of "monday" and the "direction" with a value of "- 1" | |||
| represents the last Monday of the month.</t> | represents the last Monday of the month.</t> | |||
| <t>An array of the "bymonthday" (or byyearday", "byyearweek", or "byye armonth") specifies a list of | <t>An array of the "bymonthday" (or byyearday", "byyearweek", or "byye armonth") specifies a list of | |||
| days of the month (or days of the year, weeks of the year, or months of the y ear). | days of the month (or days of the year, weeks of the year, or months of the y ear). | |||
| For example, within a "yearly" recurrence rule, the values of "byyearmonth" | For example, within a "yearly" recurrence rule, the values of "byyearmonth" | |||
| instance "1" and "2" means the occurrences are generated in January and Febru ary, | instances "1" and "2" mean the occurrences are generated in January and Febru ary, | |||
| increasing the "yearly" recurrence from every year to every January and Febru ary | increasing the "yearly" recurrence from every year to every January and Febru ary | |||
| of the year.</t> | of the year.</t> | |||
| <t>The "bysetpos" conveys a list of values that corresponds to the nth occurrence | <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 "mo nthly" | within the set of recurrence instances to be specified. For example, in a "mo nthly" | |||
| recurrence rule, the "byday" data node specifies every Monday of the week, th | recurrence rule, the "byday" data node specifies every Monday of the week, an | |||
| e | d the | |||
| "bysetpos" with value of "-1" represents the last Monday of the month. | "bysetpos" with a value of "-1" represents the last Monday of the month. | |||
| Not setting the "bysetpos" data node represents every Monday of the month.</t > | Not setting the "bysetpos" data node represents every Monday of the month.</t > | |||
| <t>The "workweek-start" data node specifies the day on which the week starts. This is | <t>The "workweek-start" data node specifies the day on which the week starts. This is | |||
| significant when a "weekly" recurrence rule has an interval greater than 1, a nd | significant when a "weekly" recurrence rule has an interval greater than 1, a nd | |||
| a "byday" data node is specified. This is also significant when in a "yearly" rule | a "byday" data node is specified. This is also significant when in a "yearly" rule | |||
| and a "byyearweek" is specified. Note that per <xref section="4.13" sectionFo rmat="of" target="I-D.ietf-netmod-rfc8407bis"/>, neither a "default" | and a "byyearweek" is specified. Note that, per <xref section="4.13" sectionF ormat="of" target="I-D.ietf-netmod-rfc8407bis"/>, neither a "default" | |||
| nor a "mandatory" substatement is defined here because there are cases (e.g., profiling) | nor a "mandatory" substatement is defined here because there are cases (e.g., profiling) | |||
| where using these statements is problematic. | where using these statements is problematic. | |||
| YANG modules using this grouping <bcp14>SHOULD</bcp14> refine the "workweek-s tart" node with either a | YANG modules using this grouping <bcp14>SHOULD</bcp14> refine the "workweek-s tart" node with either a | |||
| "mandatory" or a "default" statement, if it always needs to be configured or has a default value. | "mandatory" or a "default" statement if it always needs to be configured or h as a default value. | |||
| This <bcp14>MAY</bcp14> be ignored in cases such as when this grouping is use d by another grouping.</t> | This <bcp14>MAY</bcp14> be ignored in cases such as when this grouping is use d by another grouping.</t> | |||
| <t>The "exception-dates" data node specifies a list of exceptions for recurrence. The | <t>The "exception-dates" data node specifies a list of exceptions for recurrence. The | |||
| final recurrence set is generated by gathering all of the date and time value s | final recurrence set is generated by gathering all of the date and time value s | |||
| created by any of the specified recurrence rule and date-times, and then | created by any of the specified recurrence rules and date-times and then | |||
| excluding any start date and time values specified by "exception-dates" param eter.</t> | excluding any start date and time values specified by "exception-dates" param eter.</t> | |||
| </section> | </section> | |||
| <section anchor="sec-schedule-status"> | <section anchor="sec-schedule-status"> | |||
| <name>The "schedule-status", "schedule-status-with-time-zone", and "sc hedule-status-with-name" Groupings</name> | <name>The "schedule-status", "schedule-status-with-time-zone", and "sc hedule-status-with-name" Groupings</name> | |||
| <t>The "schedule-status", "schedule-status-with-time-zone", and "sched ule-status-with-name" groupings (<xref target="sche-status-tree"/>) define commo n parameters | <t>The "schedule-status", "schedule-status-with-time-zone", and "sched ule-status-with-name" groupings (<xref target="sche-status-tree"/>) define commo n parameters | |||
| for scheduling management/status exposure. The "schedule-status-with-time-zon e" grouping has the same | for scheduling management/status exposure. The "schedule-status-with-time-zon e" grouping has the same | |||
| structure as "schedule-status" but with an additional parameter to identify a time zone. Similarly, the "schedule-status-with-name" grouping has the same str ucture as "schedule-status" but with an additional parameter to identify a sched ule "schedule-name". These | structure as "schedule-status" but with an additional parameter to identify a time zone. Similarly, the "schedule-status-with-name" grouping has the same str ucture as "schedule-status" but with an additional parameter to identify a sched ule "schedule-name". These | |||
| structures are defined in the module to allow for better modularity and flexi bility.</t> | structures are defined in the module to allow for better modularity and flexi bility.</t> | |||
| <figure anchor="sche-status-tree"> | <!--[rfced] In the title of Figure 9, is the asterisk (*) in | |||
| "schedule-status-*" correct? We ask as we do not see this elsewhere in | ||||
| the document. | ||||
| Current: | ||||
| Figure 9: 'schedule-status-*' Groupings Tree Structure | ||||
| Perhaps: | ||||
| Figure 9: 'schedule-status' Groupings Tree Structure | ||||
| --> | ||||
| <figure anchor="sche-status-tree"> | ||||
| <name>'schedule-status-*' Groupings Tree Structure</name> | <name>'schedule-status-*' Groupings Tree Structure</name> | |||
| <artwork><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| grouping schedule-status: | grouping schedule-status: | |||
| +-- state? identityref | +-- state? identityref | |||
| +-- version? uint16 | +-- version? uint16 | |||
| +-- schedule-type? identityref | +-- schedule-type? identityref | |||
| +--ro local-time? yang:date-and-time | +--ro local-time? yang:date-and-time | |||
| +--ro last-update? yang:date-and-time | +--ro last-update? yang:date-and-time | |||
| +--ro counter? yang:counter32 | +--ro counter? yang:counter32 | |||
| +--ro last-occurrence? yang:date-and-time | +--ro last-occurrence? yang:date-and-time | |||
| +--ro upcoming-occurrence? yang:date-and-time | +--ro upcoming-occurrence? yang:date-and-time | |||
| +--ro last-failed-occurrence? yang:date-and-time | +--ro last-failed-occurrence? yang:date-and-time | |||
| skipping to change at line 642 ¶ | skipping to change at line 722 ¶ | |||
| +-- state? identityref | +-- state? identityref | |||
| +-- version? uint16 | +-- version? uint16 | |||
| +-- schedule-type? identityref | +-- schedule-type? identityref | |||
| +--ro local-time? yang:date-and-time | +--ro local-time? yang:date-and-time | |||
| +--ro last-update? yang:date-and-time | +--ro last-update? yang:date-and-time | |||
| +--ro counter? yang:counter32 | +--ro counter? yang:counter32 | |||
| +--ro last-occurrence? yang:date-and-time | +--ro last-occurrence? yang:date-and-time | |||
| +--ro upcoming-occurrence? yang:date-and-time | +--ro upcoming-occurrence? yang:date-and-time | |||
| +--ro last-failed-occurrence? yang:date-and-time | +--ro last-failed-occurrence? yang:date-and-time | |||
| +--ro failure-counter? yang:counter32 | +--ro failure-counter? yang:counter32 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The "schedule-name" parameter is useful to uniquely identify a sche dule in | <t>The "schedule-name" parameter is useful to uniquely identify a sche dule in | |||
| a network device or controller if multiple scheduling contexts exist.</t> | a network device or controller if multiple scheduling contexts exist.</t> | |||
| <t>The "state" parameter is defined to configure/expose the scheduling state, | <t>The "state" parameter is defined to configure/expose the scheduling state, | |||
| depending on the use of the grouping. For a recurrence-based schedule, it | depending on the use of the grouping. For a recurrence-based schedule, it | |||
| represents the state of the overall recurrence. The "identityref" type is use d for this | represents the state of the overall recurrence. The "identityref" type is use d for this | |||
| parameter to allow extensibility in future modules.</t> | parameter to allow extensibility in future modules.</t> | |||
| <t>The "version" parameter is used to track the current schedule versi on | <t>The "version" parameter is used to track the current schedule versi on | |||
| information. The version can be incremented by the entity that created the sc hedule. | information. The version can be incremented by the entity that created the sc hedule. | |||
| The "last-update" parameter identifies when the schedule was last modified. | The "last-update" parameter identifies when the schedule was last modified. | |||
| skipping to change at line 674 ¶ | skipping to change at line 754 ¶ | |||
| <t>The current groupings capture common parameters that are applicable | <t>The current groupings capture common parameters that are applicable | |||
| to typical scheduling contexts known so far. Future modules can define other | to typical scheduling contexts known so far. Future modules can define other | |||
| useful parameters as needed. For example, in a scheduling context with multip le | useful parameters as needed. For example, in a scheduling context with multip le | |||
| system sources to feed the schedules, the "source" and "precedence" parameter s | system sources to feed the schedules, the "source" and "precedence" parameter s | |||
| may be needed to reflect how schedules from different sources should be prior itized.</t> | may be needed to reflect how schedules from different sources should be prior itized.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="sec-aug"> | <section anchor="sec-aug"> | |||
| <name>Features Use and Augmentations</name> | <name>Features Use and Augmentations</name> | |||
| <t><xref target="features"/> provides an example about how the features defined in <xref target="sec-features"/> can be used. Implementations | <t><xref target="features"/> provides an example about how the features defined in <xref target="sec-features"/> can be used. Implementations | |||
| may support a basic recurrence rule or an advanced one as needed, by declarin g | may support a basic recurrence rule or an advanced one, as needed, by declari ng | |||
| different features. Whether only one or both features are supported is implem entation | different features. Whether only one or both features are supported is implem entation | |||
| specific and depends on the specific scheduling context.</t> | specific and depends on the specific scheduling context.</t> | |||
| <t>The common schedule groupings (<xref target="sec-grp"/>) can also be augmented to support specific needs. As an example, | <t>The common schedule groupings (<xref target="sec-grp"/>) can also be augmented to support specific needs. As an example, | |||
| <xref target="augments"/> demonstrates how additional parameters can be added to comply with specific schedule needs.</t> | <xref target="augments"/> demonstrates how additional parameters can be added to comply with specific schedule needs.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="some-usage-restrictions"> | <section anchor="some-usage-restrictions"> | |||
| <name>Some Usage Restrictions</name> | <name>Some Usage Restrictions</name> | |||
| <t>There are some restrictions that need to be followed when using groupin gs defined | <t>There are some restrictions that need to be followed when using groupin gs defined | |||
| in the "ietf-schedule" YANG module (<xref target="sec-grp"/>):</t> | in the "ietf-schedule" YANG module (<xref target="sec-grp"/>):</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>The instant in time represented by "period-start" <bcp14>MUST</bcp1 4> be before the | <t>The instant in time represented by "period-start" <bcp14>MUST</bcp1 4> be before the | |||
| "period-end" for "period-of-time" grouping (<xref target="sec-period"/>).</t> | "period-end" for the "period-of-time" grouping (<xref target="sec-period"/>).</t > | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The combination of the day, month, and year represented for date an d time | <t>The combination of the day, month, and year represented for date an d time | |||
| values <bcp14>MUST</bcp14> be valid. See <xref section="5.7" sectionFormat="of" target="RFC3339"/> for the maximum day | values <bcp14>MUST</bcp14> be valid. See <xref section="5.7" sectionFormat="of" target="RFC3339"/> for the maximum day | |||
| number based on the month and year.</t> | number based on the month and year.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>Unless deployed in contexts where time synchronization is not subje ct to leap second adjustments (e.g., <xref section="4.3" sectionFormat="of" targ et="I-D.ietf-ntp-ntpv5"/>), the second for date and time values <bcp14>SHOULD</b cp14> have the value "60" at the end of months in which a leap | <t>Unless deployed in contexts where time synchronization is not subje ct to leap second adjustments (e.g., <xref section="4.3" sectionFormat="of" targ et="I-D.ietf-ntp-ntpv5"/>), the second for date and time values <bcp14>SHOULD</b cp14> have the value "60" at the end of months in which a leap | |||
| second occurs.</t> | second occurs.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>Schedules received with a starting time in the past with respect to | <t>Schedules received with a starting time in the past with respect to | |||
| current time <bcp14>SHOULD</bcp14> be ignored. When a local policy is provided, an implementation <bcp14>MAY</bcp14> omit the past occurrences and | current time <bcp14>SHOULD</bcp14> be ignored. When a local policy is provided, an implementation <bcp14>MAY</bcp14> omit the past occurrences and | |||
| start immediately (e.g., for a period-based schedule) or starts from the | start immediately (e.g., for a period-based schedule) or start from the | |||
| date and time when the recurrence pattern is first satisfied from the current ti me (e.g., for a recurrence-based schedule).</t> | date and time when the recurrence pattern is first satisfied from the current ti me (e.g., for a recurrence-based schedule).</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| <section anchor="sec-mib"> | <section anchor="sec-mib"> | |||
| <name>Relationship to the DISMAN-SCHEDULE-MIB</name> | <name>Relationship to the DISMAN-SCHEDULE-MIB</name> | |||
| <t><xref target="RFC3231"/> specifies a Management Information Base (MIB) used to | <t><xref target="RFC3231"/> specifies a Management Information Base (MIB) used to | |||
| schedule management operations periodically or at specified dates and times.</t> | schedule management operations periodically or at specified dates and times.</t> | |||
| <t>Although no data nodes are defined in this document, <xref target="mapp ing"/> lists | <t>Although no data nodes are defined in this document, <xref target="mapp ing"/> lists | |||
| how the main objects in the DISMAN-SCHEDULE-MIB can be mapped to YANG | how the main objects in the DISMAN-SCHEDULE-MIB can be mapped to YANG | |||
| skipping to change at line 812 ¶ | skipping to change at line 892 ¶ | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left">schedTriggers</td> | <td align="left">schedTriggers</td> | |||
| <td align="left">counter/failure-counter</td> | <td align="left">counter/failure-counter</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| </section> | </section> | |||
| <section anchor="sec-schedule"> | <section anchor="sec-schedule"> | |||
| <name>The "ietf-schedule" YANG Module</name> | <name>The "ietf-schedule" YANG Module</name> | |||
| <t>This module imports types defined in <xref target="RFC6991"/> and <xref | <!--[rfced] FYI - As RFC 5545 is also cited within the "ietf-schedule" | |||
| target="RFC7317"/>.</t> | module, we've added it to the list of RFCs preceding the module. | |||
| <sourcecode markers="true" name="ietf-schedule@2025-05-30.yang"><![CDATA[ | ||||
| Original: | ||||
| This module imports types defined in [RFC6991] and [RFC7317]. | ||||
| Current: | ||||
| This module imports types defined in [RFC5545], [RFC6991], and [RFC7317]. | ||||
| --> | ||||
| <!--[rfced] FYI - We made the following update to the format in the | ||||
| "ietf-schedule" YANG module using the formatting option of pyang. | ||||
| Original: | ||||
| error-message | ||||
| "Frequency must be provided."; | ||||
| Current: | ||||
| error-message "Frequency must be provided."; | ||||
| --> | ||||
| <t>This module imports types defined in <xref target="RFC5545"/>, <xref target=" | ||||
| RFC6991"/>, and <xref target="RFC7317"/>.</t> | ||||
| <sourcecode type="yang" markers="true"><![CDATA[ | ||||
| file "ietf-schedule@2026-02-18.yang" | ||||
| module ietf-schedule { | module ietf-schedule { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-schedule"; | namespace "urn:ietf:params:xml:ns:yang:ietf-schedule"; | |||
| prefix schedule; | prefix schedule; | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| reference | reference | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
| } | } | |||
| import ietf-system { | import ietf-system { | |||
| prefix sys; | prefix sys; | |||
| reference | reference | |||
| "RFC 7317: A YANG Data Model for System Management"; | "RFC 7317: A YANG Data Model for System Management"; | |||
| } | } | |||
| organization | organization | |||
| "IETF NETMOD Working Group"; | "IETF NETMOD Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/netmod/> | "WG Web: <https://datatracker.ietf.org/wg/netmod/> | |||
| WG List: <mailto:netmod@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
| Editor: Qiufang Ma | Editor: Qiufang Ma | |||
| <mailto:maqiufang1@huawei.com | <mailto:maqiufang1@huawei.com> | |||
| Author: Qin Wu | Author: Qin Wu | |||
| <mailto:bill.wu@huawei.com> | <mailto:bill.wu@huawei.com> | |||
| Editor: Mohamed Boucadair | Editor: Mohamed Boucadair | |||
| <mailto:mohamed.boucadair@orange.com> | <mailto:mohamed.boucadair@orange.com> | |||
| Author: Daniel King | Author: Daniel King | |||
| <mailto:d.king@lancaster.ac.uk>"; | <mailto:d.king@lancaster.ac.uk>"; | |||
| description | description | |||
| "This YANG module defines a set of common types and groupings | "This YANG module defines a set of common types and groupings | |||
| which are applicable for scheduling purposes such as events, | that are applicable for scheduling purposes, such as events, | |||
| policy, services, or resources based on date and time. | policies, services, or resources based on date and time. | |||
| Copyright (c) 2025 IETF Trust and the persons identified | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| as authors of the code. All rights reserved. | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | ||||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | ||||
| they appear in all capitals, as shown here. | ||||
| Copyright (c) 2026 IETF Trust and the persons identified | ||||
| as authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with | Redistribution and use in source and binary forms, with | |||
| or without modification, is permitted pursuant to, and | or without modification, is permitted pursuant to, and | |||
| subject to the license terms contained in, the Revised | subject to the license terms contained in, the Revised | |||
| BSD License set forth in Section 4.c of the IETF Trust's | BSD License set forth in Section 4.c of the IETF Trust's | |||
| Legal Provisions Relating to IETF Documents | Legal Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| All revisions of IETF and IANA published modules can be found | This version of this YANG module is part of RFC 9922; see | |||
| at the YANG Parameters registry group | ||||
| (https://www.iana.org/assignments/yang-parameters). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices. | the RFC itself for full legal notices. | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | All revisions of IETF and IANA-maintained modules can be found | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | in the 'YANG Parameters' registry group | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | (https://www.iana.org/assignments/yang-parameters)."; | |||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | ||||
| they appear in all capitals, as shown here."; | ||||
| revision 2025-05-30 { | revision 2026-02-18 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A Common YANG Data Model for Scheduling"; | "RFC 9922: A Common YANG Data Model for Scheduling"; | |||
| } | } | |||
| feature basic-recurrence { | feature basic-recurrence { | |||
| description | description | |||
| "Indicates that the server supports configuring a basic | "Indicates that the server supports configuring a basic | |||
| scheduled recurrence."; | scheduled recurrence."; | |||
| } | } | |||
| feature icalendar-recurrence { | feature icalendar-recurrence { | |||
| description | description | |||
| "Indicates that the server supports configuring a comprehensive | "Indicates that the server supports configuring a comprehensive | |||
| scheduled iCalendar recurrence"; | scheduled iCalendar recurrence."; | |||
| reference | reference | |||
| "RFC 5545: Internet Calendaring and Scheduling Core Object | "RFC 5545: Internet Calendaring and Scheduling Core Object | |||
| Specification (iCalendar), | Specification (iCalendar), | |||
| Sections 3.3.10 and 3.8.5"; | Sections 3.3.10 and 3.8.5"; | |||
| } | } | |||
| typedef weekday { | typedef weekday { | |||
| type enumeration { | type enumeration { | |||
| enum sunday { | enum sunday { | |||
| value 0; | value 0; | |||
| skipping to change at line 944 ¶ | skipping to change at line 1046 ¶ | |||
| description | description | |||
| "Seven days of the week."; | "Seven days of the week."; | |||
| } | } | |||
| typedef duration { | typedef duration { | |||
| type string { | type string { | |||
| pattern '((\+)?|\-)P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])' | 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'; | + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W'; | |||
| } | } | |||
| description | description | |||
| "Duration of the time. The format can represent nominal | "Duration of the time. The format can represent nominal | |||
| durations (weeks designated by 'W' and days designated by 'D') | durations (weeks designated by 'W' and days designated by 'D') | |||
| and accurate durations (hours:minutes:seconds follows the | and accurate durations (hours:minutes:seconds follows the | |||
| designator 'T'). | designator 'T'). | |||
| Note that this value type doesn't support the 'Y' and 'M' | Note that this value type doesn't support the 'Y' and 'M' | |||
| designators to specify durations in terms of years and months. | designators to specify durations in terms of years and months. | |||
| Negative durations are typically used to schedule an alarm to | Negative durations are typically used to schedule an alarm to | |||
| trigger before an associated time."; | trigger before an associated time."; | |||
| reference | reference | |||
| skipping to change at line 968 ¶ | skipping to change at line 1070 ¶ | |||
| } | } | |||
| identity schedule-type { | identity schedule-type { | |||
| description | description | |||
| "Base identity for schedule type."; | "Base identity for schedule type."; | |||
| } | } | |||
| identity one-shot { | identity one-shot { | |||
| base schedule-type; | base schedule-type; | |||
| description | description | |||
| "Indicates a one-shot schedule. That is a schedule that | "Indicates a one-shot schedule. That is a schedule that | |||
| will trigger an action with the duration being specified as | will trigger an action with the duration being specified as | |||
| 0 or end time being specified the same as start time, | 0 or end time being specified as the same as the start time, | |||
| and then the schedule will disable itself."; | and then the schedule will disable itself."; | |||
| } | } | |||
| identity period { | identity period { | |||
| base schedule-type; | base schedule-type; | |||
| description | description | |||
| "Indicates a period-based schedule consisting of either a | "Indicates a period-based schedule consisting of either a | |||
| start and end or a start and positive duration of time. If | start and end or a start and positive duration of time. If | |||
| neither an end nor a duration is indicated, the period is | neither an end nor a duration is indicated, the period is | |||
| considered to last forever."; | considered to last forever."; | |||
| } | } | |||
| identity recurrence { | identity recurrence { | |||
| base schedule-type; | base schedule-type; | |||
| description | description | |||
| "Indicates a recurrence-based schedule."; | "Indicates a recurrence-based schedule."; | |||
| } | } | |||
| skipping to change at line 1123 ¶ | skipping to change at line 1225 ¶ | |||
| Such parameters are used as guards to prevent, e.g., stale | Such parameters are used as guards to prevent, e.g., stale | |||
| configuration."; | configuration."; | |||
| leaf description { | leaf description { | |||
| type string; | type string; | |||
| description | description | |||
| "Provides a description of the schedule."; | "Provides a description of the schedule."; | |||
| } | } | |||
| leaf time-zone-identifier { | leaf time-zone-identifier { | |||
| type sys:timezone-name; | type sys:timezone-name; | |||
| description | description | |||
| "Indicates the identifier for the time zone. This parameter | "Indicates the identifier for the time zone. This parameter | |||
| MUST be specified if any of the date and time values are | MUST be specified if any of the date and time values are | |||
| in the format of local time. It MUST NOT be applied to | in the format of local time. It MUST NOT be applied to | |||
| date and time values which are specified in the format of | date and time values that are specified in the format of | |||
| UTC or time zone offset to UTC."; | UTC or time zone offset to UTC."; | |||
| } | } | |||
| leaf validity { | leaf validity { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Specifies the date and time after which a schedule will not | "Specifies the date and time after which a schedule will not | |||
| be considered as valid. This parameter takes precedence | be considered as valid. This parameter takes precedence | |||
| over similar attributes that are provided at the schedule | over similar attributes that are provided at the schedule | |||
| instance itself."; | instance itself."; | |||
| } | } | |||
| leaf max-allowed-start { | leaf max-allowed-start { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Specifies the maximum scheduled start date and time. | "Specifies the maximum scheduled start date and time. | |||
| A requested schedule whose first instance occurs after | A requested schedule whose first instance occurs after | |||
| this value cannot be accepted by the entity. Specifically, | this value cannot be accepted by the entity. Specifically, | |||
| a requested schedule will be rejected if the first | a requested schedule will be rejected if the first | |||
| occurrence of that schedule exceeds 'max-allowed-start'."; | occurrence of that schedule exceeds 'max-allowed-start'."; | |||
| } | } | |||
| leaf min-allowed-start { | leaf min-allowed-start { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Specifies the minimum scheduled start date and time. | "Specifies the minimum scheduled start date and time. | |||
| A requested schedule whose first instance occurs before | A requested schedule whose first instance occurs before | |||
| this value cannot be accepted by the entity. Specifically, | this value cannot be accepted by the entity. Specifically, | |||
| a requested schedule will be rejected if the first | a requested schedule will be rejected if the first | |||
| occurrence of that schedule is scheduled before | occurrence of that schedule is scheduled before | |||
| 'min-allowed-start'."; | 'min-allowed-start'."; | |||
| } | } | |||
| leaf max-allowed-end { | leaf max-allowed-end { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "A requested schedule will be rejected if the end time of | "A requested schedule will be rejected if the end time of | |||
| the last occurrence exceeds 'max-allowed-end'."; | the last occurrence exceeds 'max-allowed-end'."; | |||
| } | } | |||
| leaf discard-action { | leaf discard-action { | |||
| type identityref { | type identityref { | |||
| base discard-action-type; | base discard-action-type; | |||
| } | } | |||
| description | description | |||
| "Specifies the behavior when a schedule is discarded for | "Specifies the behavior when a schedule is discarded for | |||
| any reason, e.g., failing to satisfy the guards in this | any reason, e.g., failing to satisfy the guards in this | |||
| grouping or it is received out-of-date."; | grouping or being received out-of-date."; | |||
| } | } | |||
| } | } | |||
| grouping period-of-time { | grouping period-of-time { | |||
| description | description | |||
| "This grouping is defined for period of time property."; | "This grouping is defined for the period of time property."; | |||
| reference | reference | |||
| "RFC 5545: Internet Calendaring and Scheduling Core Object | "RFC 5545: Internet Calendaring and Scheduling Core Object | |||
| Specification (iCalendar), Section 3.3.9"; | Specification (iCalendar), Section 3.3.9"; | |||
| leaf period-description { | leaf period-description { | |||
| type string; | type string; | |||
| description | description | |||
| "Provides a description of the period."; | "Provides a description of the period."; | |||
| } | } | |||
| leaf period-start { | leaf period-start { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Period start time."; | "Period start time."; | |||
| } | } | |||
| leaf time-zone-identifier { | leaf time-zone-identifier { | |||
| type sys:timezone-name; | type sys:timezone-name; | |||
| description | description | |||
| "Indicates the identifier for the time zone. This parameter | "Indicates the identifier for the time zone. This parameter | |||
| MUST be specified if either the 'period-start' or | MUST be specified if either the 'period-start' or | |||
| 'period-end' value is reported in local time format. | 'period-end' value is reported in local time format. | |||
| It MUST NOT be applied to date and time values which are | It MUST NOT be applied to date and time values that are | |||
| specified in the format of UTC or time zone offset | specified in the format of UTC or time zone offset | |||
| to UTC."; | to UTC."; | |||
| } | } | |||
| choice period-type { | choice period-type { | |||
| description | description | |||
| "Indicates the type of the time period. Two types are | "Indicates the type of the time period. Two types are | |||
| supported. If no choice is indicated, the period is | supported. If no choice is indicated, the period is | |||
| considered to last forever."; | considered to last forever."; | |||
| case explicit { | case explicit { | |||
| description | description | |||
| "A period of time is identified by its start and its end. | "A period of time is identified by its start and its end. | |||
| 'period-start' indicates the period start."; | 'period-start' indicates the period start."; | |||
| leaf period-end { | leaf period-end { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "A period of time is defined by a start and end time. | "A period of time is defined by a start and end time. | |||
| The start MUST be no later than the end. The period | The start MUST be no later than the end. The period | |||
| is considered as a one-shot schedule if the end time | is considered as a one-shot schedule if the end time | |||
| is the same as the start time."; | is the same as the start time."; | |||
| } | } | |||
| } | } | |||
| case duration { | case duration { | |||
| description | description | |||
| "A period of time is defined by a start and a non-negative | "A period of time is defined by a start and a non-negative | |||
| duration of time."; | duration of time."; | |||
| leaf duration { | leaf duration { | |||
| type duration { | type duration { | |||
| pattern 'P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])' | 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'; | + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W'; | |||
| } | } | |||
| description | description | |||
| "A non-negative duration of time. This value is | "A non-negative duration of time. This value is | |||
| equivalent to the format of duration type except that | equivalent to the format of 'duration' type except that | |||
| the value cannot be negative. The period is considered | the value cannot be negative. The period is considered | |||
| to be a one-shot schedule if the value is 0."; | to be a one-shot schedule if the value is 0."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping recurrence-basic { | grouping recurrence-basic { | |||
| description | description | |||
| "A simple definition of recurrence."; | "A simple definition of recurrence."; | |||
| leaf recurrence-description { | leaf recurrence-description { | |||
| skipping to change at line 1256 ¶ | skipping to change at line 1358 ¶ | |||
| base frequency-type; | base frequency-type; | |||
| } | } | |||
| description | description | |||
| "Specifies the frequency type of the recurrence rule."; | "Specifies the frequency type of the recurrence rule."; | |||
| } | } | |||
| leaf interval { | leaf interval { | |||
| type uint32 { | type uint32 { | |||
| range "1..max"; | range "1..max"; | |||
| } | } | |||
| must '../frequency' { | must '../frequency' { | |||
| error-message | error-message "Frequency must be provided."; | |||
| "Frequency must be provided."; | ||||
| } | } | |||
| description | description | |||
| "A positive integer representing interval at which the | "A positive integer representing the interval at which the | |||
| recurrence rule repeats. For example, within a 'daily' | recurrence rule repeats. For example, within a 'daily' | |||
| recurrence rule, a value of '8' means every eight days."; | recurrence rule, a value of '8' means every eight days."; | |||
| } | } | |||
| } | } | |||
| grouping recurrence-utc { | grouping recurrence-utc { | |||
| description | description | |||
| "A simple definition of recurrence with time specified in | "A simple definition of recurrence with time specified in | |||
| UTC format."; | UTC format."; | |||
| container recurrence-first { | container recurrence-first { | |||
| description | description | |||
| "Specifies the first instance of the recurrence. If | "Specifies the first instance of the recurrence. If | |||
| unspecified, the recurrence is considered to start from | unspecified, the recurrence is considered to start from | |||
| the date and time when the recurrence pattern is first | the date and time when the recurrence pattern is first | |||
| satisfied."; | satisfied."; | |||
| leaf start-time-utc { | leaf start-time-utc { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Defines the date and time of the first instance | "Defines the date and time of the first instance | |||
| in the recurrence set. A UTC format MUST be used."; | in the recurrence set. A UTC format MUST be used."; | |||
| } | } | |||
| leaf duration { | leaf duration { | |||
| type uint32; | type uint32; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "When specified, it indicates how long the first occurrence | "When specified, it indicates how long the first occurrence | |||
| lasts. Unless specified otherwise, it also applies to all | lasts. Unless specified otherwise, it also applies to all | |||
| the other instances in the recurrence set."; | the other instances in the recurrence set."; | |||
| } | } | |||
| } | } | |||
| choice recurrence-end { | choice recurrence-end { | |||
| description | description | |||
| "Modes to control the end of a recurrence rule. If no | "Modes to control the end of a recurrence rule. If no | |||
| choice is indicated, the recurrence rule is considered | choice is indicated, the recurrence rule is considered | |||
| to repeat forever."; | to repeat forever."; | |||
| case until { | case until { | |||
| description | description | |||
| "This case defines a way that limits the end of | "This case defines a way that limits the end of | |||
| a recurrence rule in an inclusive manner."; | a recurrence rule in an inclusive manner."; | |||
| leaf utc-until { | leaf utc-until { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "This parameter specifies a date and time value to | "This parameter specifies a date and time value to | |||
| skipping to change at line 1333 ¶ | skipping to change at line 1434 ¶ | |||
| } | } | |||
| uses recurrence-basic; | uses recurrence-basic; | |||
| } | } | |||
| grouping recurrence-with-time-zone { | grouping recurrence-with-time-zone { | |||
| description | description | |||
| "A simple definition of recurrence to specify a recurrence | "A simple definition of recurrence to specify a recurrence | |||
| rule with a time zone."; | rule with a time zone."; | |||
| container recurrence-first { | container recurrence-first { | |||
| description | description | |||
| "Specifies the first instance of the recurrence. If | "Specifies the first instance of the recurrence. If | |||
| unspecified, the recurrence is considered to start from | unspecified, the recurrence is considered to start from | |||
| the date and time when the recurrence pattern is first | the date and time when the recurrence pattern is first | |||
| satisfied."; | satisfied."; | |||
| leaf start-time { | leaf start-time { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Defines the date and time of the first instance | "Defines the date and time of the first instance | |||
| in the recurrence set."; | in the recurrence set."; | |||
| } | } | |||
| leaf duration { | leaf duration { | |||
| type duration; | type duration; | |||
| description | description | |||
| "When specified, it indicates how long the first | "When specified, it indicates how long the first | |||
| occurrence last. Unless specified otherwise, it also | occurrence lasts. Unless specified otherwise, it also | |||
| applies to all the other instances in the recurrence | applies to all the other instances in the recurrence | |||
| set."; | set."; | |||
| } | } | |||
| } | } | |||
| leaf time-zone-identifier { | leaf time-zone-identifier { | |||
| type sys:timezone-name; | type sys:timezone-name; | |||
| description | description | |||
| "Indicates the identifier for the time zone in a time | "Indicates the identifier for the time zone in a time | |||
| zone database. This parameter MUST be specified if either | zone database. This parameter MUST be specified if either | |||
| the 'start-time' or 'until' value is reported in local | the 'start-time' or 'until' value is reported in local | |||
| time format. It MUST NOT be applied to date and time | time format. It MUST NOT be applied to date and time | |||
| values which are specified in the format of UTC or time | values that are specified in the format of UTC or time | |||
| zone offset to UTC."; | zone offset to UTC."; | |||
| } | } | |||
| choice recurrence-end { | choice recurrence-end { | |||
| description | description | |||
| "Modes to terminate the recurrence rule. If no choice is | "Modes to terminate the recurrence rule. If no choice is | |||
| indicated, the recurrence rule is considered to repeat | indicated, the recurrence rule is considered to repeat | |||
| forever."; | forever."; | |||
| case until { | case until { | |||
| description | description | |||
| "The end of the recurrence rule is indicated by a specific | "The end of the recurrence rule is indicated by a specific | |||
| date-and-time value in an inclusive manner."; | date-and-time value in an inclusive manner."; | |||
| leaf until { | leaf until { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Specifies a date and time value to inclusively terminate | "Specifies a date and time value to inclusively terminate | |||
| the recurrence. Thats is, if the value specified by this | the recurrence. That is, if the value specified by | |||
| parameter is synchronized with the specified recurrence, | this parameter is synchronized with the specified | |||
| it becomes the last instance of the recurrence."; | recurrence, it becomes the last instance of the | |||
| recurrence."; | ||||
| } | } | |||
| } | } | |||
| case count { | case count { | |||
| description | description | |||
| "The end of the recurrence is indicated by the number | "The end of the recurrence is indicated by the number | |||
| of occurrences."; | of occurrences."; | |||
| leaf count { | leaf count { | |||
| type uint32 { | type uint32 { | |||
| range "1..max"; | range "1..max"; | |||
| } | } | |||
| skipping to change at line 1400 ¶ | skipping to change at line 1502 ¶ | |||
| terminate the recurrence."; | terminate the recurrence."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| uses recurrence-basic; | uses recurrence-basic; | |||
| } | } | |||
| grouping recurrence-utc-with-periods { | grouping recurrence-utc-with-periods { | |||
| description | description | |||
| "This grouping defines an aggregate set of repeating | "This grouping defines an aggregate set of repeating | |||
| occurrences with UTC time format. The recurrence instances | occurrences with UTC time format. The recurrence instances | |||
| are specified by the occurrences defined by both the | are specified by the occurrences defined by both the | |||
| recurrence rule and 'period-timeticks' list. Duplicate | recurrence rule and 'period-timeticks' list. Duplicate | |||
| instances are ignored."; | instances are ignored."; | |||
| uses recurrence-utc; | uses recurrence-utc; | |||
| list period-timeticks { | list period-timeticks { | |||
| key "period-start"; | key "period-start"; | |||
| description | description | |||
| "A list of periods with timeticks formats."; | "A list of periods with timeticks formats."; | |||
| leaf period-start { | leaf period-start { | |||
| type yang:timeticks; | type yang:timeticks; | |||
| must "(not(derived-from(../../frequency," | must "(not(derived-from(../../frequency," | |||
| + "'schedule:secondly')) or (current() < 100)) and " | + "'schedule:secondly')) or (current() < 100)) and " | |||
| skipping to change at line 1426 ¶ | skipping to change at line 1528 ¶ | |||
| + " or (current() < 360000)) and " | + " or (current() < 360000)) and " | |||
| + "(not(derived-from(../../frequency,'schedule:daily'))" | + "(not(derived-from(../../frequency,'schedule:daily'))" | |||
| + " or (current() < 8640000)) and " | + " or (current() < 8640000)) and " | |||
| + "(not(derived-from(../../frequency,'schedule:weekly'))" | + "(not(derived-from(../../frequency,'schedule:weekly'))" | |||
| + " or (current() < 60480000)) and " | + " or (current() < 60480000)) and " | |||
| + "(not(derived-from(../../frequency," | + "(not(derived-from(../../frequency," | |||
| + "'schedule:monthly')) or (current() < 267840000)) and " | + "'schedule:monthly')) or (current() < 267840000)) and " | |||
| + "(not(derived-from(../../frequency,'schedule:yearly'))" | + "(not(derived-from(../../frequency,'schedule:yearly'))" | |||
| + " or (current() < 3162240000))" { | + " or (current() < 3162240000))" { | |||
| error-message | error-message | |||
| "The period-start must not exceed the frequency | "The 'period-start' must not exceed the frequency | |||
| interval."; | interval."; | |||
| } | } | |||
| description | description | |||
| "Start time of the schedule within one recurrence. | "Start time of the schedule within one recurrence. | |||
| Given that the value is in timeticks format | Given that the value is in timeticks format | |||
| (i.e., 1/100 of a second), the values in the must | (i.e., 1/100 of a second), the values in the must | |||
| statement translate to: 100 = 1s (secondly), | statement translate to 100 = 1 s (secondly), | |||
| 6000 = 60 s = 1 min (minutely), and so on for all | 6000 = 60 s = 1 min (minutely), and so on for all | |||
| instances in the must statement invariant."; | instances in the must statement invariant."; | |||
| } | } | |||
| leaf period-end { | leaf period-end { | |||
| type yang:timeticks; | type yang:timeticks; | |||
| description | description | |||
| "End time of the schedule within one recurrence. | "End time of the schedule within one recurrence. | |||
| The period start MUST be no later than the period | The period start MUST be no later than the period | |||
| end."; | end."; | |||
| } | } | |||
| skipping to change at line 1507 ¶ | skipping to change at line 1609 ¶ | |||
| when "derived-from(../../frequency, 'schedule:monthly') or " | when "derived-from(../../frequency, 'schedule:monthly') or " | |||
| + "(derived-from(../../frequency, 'schedule:yearly') " | + "(derived-from(../../frequency, 'schedule:yearly') " | |||
| + " and not(../../byyearweek))"; | + " and not(../../byyearweek))"; | |||
| type int32 { | type int32 { | |||
| range "-53..-1|1..53"; | range "-53..-1|1..53"; | |||
| } | } | |||
| description | description | |||
| "When specified, it indicates the nth occurrence of a | "When specified, it indicates the nth occurrence of a | |||
| specific day within the monthly or yearly recurrence | specific day within the monthly or yearly recurrence | |||
| rule. For example, within a monthly rule, +1 monday | rule. For example, within a monthly rule, +1 monday | |||
| represents the first monday within the month, whereas | represents the first Monday within the month, whereas | |||
| -1 monday represents the last monday of the month."; | -1 monday represents the last Monday of the month."; | |||
| } | } | |||
| leaf weekday { | leaf weekday { | |||
| type schedule:weekday; | type schedule:weekday; | |||
| description | description | |||
| "Corresponds to seven days of the week."; | "Corresponds to seven days of the week."; | |||
| } | } | |||
| } | } | |||
| leaf-list bymonthday { | leaf-list bymonthday { | |||
| type int32 { | type int32 { | |||
| range "-31..-1|1..31"; | range "-31..-1|1..31"; | |||
| skipping to change at line 1553 ¶ | skipping to change at line 1655 ¶ | |||
| description | description | |||
| "Specifies a list of months of the year."; | "Specifies a list of months of the year."; | |||
| } | } | |||
| leaf-list bysetpos { | leaf-list bysetpos { | |||
| type int32 { | type int32 { | |||
| range "-366..-1|1..366"; | range "-366..-1|1..366"; | |||
| } | } | |||
| description | description | |||
| "Specifies a list of values that corresponds to the nth | "Specifies a list of values that corresponds to the nth | |||
| occurrence within the set of recurrence instances | occurrence within the set of recurrence instances | |||
| specified by the rule. It must only be used in conjunction | specified by the rule. It must only be used in conjunction | |||
| with another 'byxxx' (bysecond, byminute, etc.) rule | with another 'byxxx' (bysecond, byminute, etc.) rule | |||
| part ."; | part."; | |||
| } | } | |||
| leaf workweek-start { | leaf workweek-start { | |||
| type schedule:weekday; | type schedule:weekday; | |||
| description | description | |||
| "Specifies the day on which the workweek starts."; | "Specifies the day on which the workweek starts."; | |||
| } | } | |||
| leaf-list exception-dates { | leaf-list exception-dates { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "Defines a list of exceptions for recurrence."; | "Defines a list of exceptions for recurrence."; | |||
| skipping to change at line 1603 ¶ | skipping to change at line 1705 ¶ | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| config false; | config false; | |||
| description | description | |||
| "Reports the local time as used by the entity that | "Reports the local time as used by the entity that | |||
| hosts the schedule."; | hosts the schedule."; | |||
| } | } | |||
| leaf last-update { | leaf last-update { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| config false; | config false; | |||
| description | description | |||
| "Reports the timestamp that the schedule is last updated."; | "Reports the timestamp of when the schedule is last | |||
| updated."; | ||||
| } | } | |||
| leaf counter { | leaf counter { | |||
| when "derived-from-or-self(../schedule-type, " | when "derived-from-or-self(../schedule-type, " | |||
| + "'schedule:recurrence')"; | + "'schedule:recurrence')"; | |||
| type yang:counter32; | type yang:counter32; | |||
| config false; | config false; | |||
| description | description | |||
| "The number of occurrences while invoking the scheduled | "The number of occurrences while invoking the scheduled | |||
| action successfully. The count wraps around when it reaches | action successfully. The count wraps around when it reaches | |||
| the maximum value."; | the maximum value."; | |||
| } | } | |||
| leaf last-occurrence { | leaf last-occurrence { | |||
| when "derived-from-or-self(../schedule-type, " | when "derived-from-or-self(../schedule-type, " | |||
| + "'schedule:recurrence')"; | + "'schedule:recurrence')"; | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| config false; | config false; | |||
| description | description | |||
| "Indicates the timestamp of last occurrence."; | "Indicates the timestamp of last occurrence."; | |||
| } | } | |||
| skipping to change at line 1655 ¶ | skipping to change at line 1758 ¶ | |||
| config false; | config false; | |||
| description | description | |||
| "Counts the number of failures while invoking the scheduled | "Counts the number of failures while invoking the scheduled | |||
| action."; | action."; | |||
| } | } | |||
| } | } | |||
| grouping schedule-status-with-time-zone { | grouping schedule-status-with-time-zone { | |||
| description | description | |||
| "This grouping defines common properties of scheduling | "This grouping defines common properties of scheduling | |||
| status, including timezone"; | status, including timezone."; | |||
| leaf time-zone-identifier { | leaf time-zone-identifier { | |||
| type sys:timezone-name; | type sys:timezone-name; | |||
| config false; | config false; | |||
| description | description | |||
| "Indicates the identifier for the time zone in a time | "Indicates the identifier for the time zone in a time | |||
| zone database."; | zone database."; | |||
| } | } | |||
| uses schedule-status; | uses schedule-status; | |||
| } | } | |||
| skipping to change at line 1684 ¶ | skipping to change at line 1787 ¶ | |||
| schedule within a device, controller, network, etc. | schedule within a device, controller, network, etc. | |||
| The unicity scope depends on the implementation."; | The unicity scope depends on the implementation."; | |||
| } | } | |||
| uses schedule-status; | uses schedule-status; | |||
| } | } | |||
| } | } | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </section> | </section> | |||
| <section anchor="security-considerations"> | <section anchor="security-considerations"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>This section uses the template described in <xref section="3.7" section | <t>This section is modeled after the template described in <xref section=" | |||
| Format="of" target="I-D.ietf-netmod-rfc8407bis"/>.</t> | 3.7" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>.</t> | |||
| <t>The "ietf-schedule" YANG module specified in this document defines sche | <!--[rfced] *AD - Security Considerations Questions | |||
| ma for data | ||||
| a) FYI - We updated the Security Considerations section to | ||||
| match the template at | ||||
| <https://wiki.ietf.org/group/ops/yang-security-guidelines>. | ||||
| Please review and let us know if any further updates are | ||||
| needed. | ||||
| b) As the Writable nodes, Readable nodes, and RFC/action operations | ||||
| sections are not applicable to this document, do the following | ||||
| sentences need to be added accordingly (per the template)? | ||||
| - "There are no particularly sensitive writable data nodes." | ||||
| - "There are no particularly sensitive readable data nodes." | ||||
| - "There are no particularly sensitive RPC or action operations." | ||||
| c) We note that in the paragraph that relates to the "No data nodes" | ||||
| section, there is a sentence missing (i.e., from the template: "For | ||||
| example, reusing some of these groupings will expose privacy-related | ||||
| information (e.g., 'node-example')". Is that omission intentional or | ||||
| should it be added for clarity? | ||||
| From the template: | ||||
| Modules that use the groupings that are defined in this document | ||||
| should identify the corresponding security considerations. For | ||||
| example, reusing some of these groupings will expose | ||||
| privacy-related information (e.g., 'node-example'). | ||||
| Current text in the document: | ||||
| Modules that use the groupings that are defined in this document | ||||
| should identify the corresponding security considerations, for | ||||
| example: | ||||
| --> | ||||
| <t>The "ietf-schedule" YANG module defines a data model | ||||
| that is designed to be accessed via YANG-based management protocols, such | that is designed to be accessed via YANG-based management protocols, such | |||
| as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. Th ese YANG-based management protocols (1) have to use | as NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. T hese YANG-based management protocols (1) have to use | |||
| a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref targe t="RFC8446"/>, and QUIC <xref target="RFC9000"/>) | a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref targe t="RFC8446"/>, and QUIC <xref target="RFC9000"/>) | |||
| and (2) have to use mutual authentication.</t> | and (2) have to use mutual authentication.</t> | |||
| <t>The Network Configuration Access Control Model (NACM) <xref target="RFC 8341"/> | <t>The Network Configuration Access Control Model (NACM) <xref target="RFC 8341"/> | |||
| provides the means to restrict access for particular NETCONF or | provides the means to restrict access for particular NETCONF or | |||
| RESTCONF users to a preconfigured subset of all available NETCONF or | RESTCONF users to a preconfigured subset of all available NETCONF or | |||
| RESTCONF protocol operations and content.</t> | RESTCONF protocol operations and content.</t> | |||
| <t>The "ietf-schedule" module defines a set of types and | <t>The "ietf-schedule" module defines a set of identities, types, and | |||
| groupings. These nodes are intended to be reused by other YANG | groupings. These nodes are intended to be reused by other YANG | |||
| modules. The module by itself does not expose any data nodes that | modules. The module by itself does not expose any data nodes that | |||
| are writable, data nodes that contain read-only state, or RPCs. As | are writable, data nodes that contain read-only state, or RPCs. As | |||
| such, there are no additional security issues related to the "ietf-schedule" | such, there are no additional security issues related to the "ietf-schedule" | |||
| module that need to be considered.</t> | module that need to be considered.</t> | |||
| <t>Modules that use the groupings that are defined in this document | <t>Modules that use the groupings that are defined in this document | |||
| should identify the corresponding security considerations, e.g.,:</t> | should identify the corresponding security considerations, for example:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>Scheduling depends on reliable and accurate time synchronization. I naccurate date | <t>Scheduling depends on reliable and accurate time synchronization. I naccurate date | |||
| and time setting can lead to scheduling events being triggered at incorrect | and time setting can lead to scheduling events being triggered at incorrect | |||
| intervals, potentially causing system failures or security vulnerabilities.</t> | intervals, potentially causing system failures or security vulnerabilities.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>Recurring events may conceal abnormal behavior or security threats, which | <t>Recurring events may conceal abnormal behavior or security threats, which | |||
| may be drowned out by normal events, especially when they are triggered frequent ly.</t> | may be drowned out by normal events, especially when they are triggered frequent ly.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The absence of detailed logs and audit records of each occurrence t rigger time | <t>The absence of detailed logs and audit records of each occurrence t rigger time | |||
| and action results, and so on, may make security incidents difficult to trace.< /t> | and action results and therefore may make security incidents difficult to trace. </t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>Care must be taken when defining recurrences occurring very often a nd | <t>Care must be taken when defining recurrences occurring very often a nd | |||
| frequent that can be an additional source of attacks by keeping the system | frequent that can be an additional source of attacks by keeping the system | |||
| permanently busy with the management of scheduling.</t> | permanently busy with the management of scheduling.</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| <section anchor="iana-considerations"> | <section anchor="iana-considerations"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <section anchor="the-ietf-xml-registry"> | <section anchor="the-ietf-xml-registry"> | |||
| <name>The "IETF XML" Registry</name> | <name>The IETF XML Registry</name> | |||
| <t>This document registers the following URI in the "IETF XML Registry" | <t>This document has registered the following URI in the "IETF XML Regis | |||
| <xref target="RFC3688"/>.</t> | try" <xref target="RFC3688"/>.</t> | |||
| <artwork><![CDATA[ | <dl> | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-schedule | <dt>URI:</dt> | |||
| Registrant Contact: The IESG. | <dd> | |||
| XML: N/A, the requested URI is an XML namespace. | <t>urn:ietf:params:xml:ns:yang:ietf-schedule</t> | |||
| ]]></artwork> | </dd> | |||
| <dt>Registrant Contact:</dt> | ||||
| <dd> | ||||
| <t>The IESG.</t> | ||||
| </dd> | ||||
| <dt>XML:</dt> | ||||
| <dd> | ||||
| <t>N/A; the requested URI is an XML namespace.</t> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="the-yang-module-names-registry"> | <section anchor="the-yang-module-names-registry"> | |||
| <name>The "YANG Module Names" Registry</name> | <name>The YANG Module Names Registry</name> | |||
| <t>This document registers the following YANG module in the "YANG Module | <t>This document has registered the following YANG module in the "YANG M | |||
| Names" | odule Names" | |||
| registry <xref target="RFC6020"/>.</t> | registry <xref target="RFC6020"/>.</t> | |||
| <artwork><![CDATA[ | <dl> | |||
| name: ietf-schedule | <dt>Name:</dt> | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-schedule | <dd> | |||
| prefix: schedule | <t>ietf-schedule</t> | |||
| maintained by IANA? N | </dd> | |||
| reference: RFC XXXX | <dt>Maintained by IANA:</dt> | |||
| ]]></artwork> | <dd> | |||
| <t>N</t> | ||||
| </dd> | ||||
| <dt>Namespace:</dt> | ||||
| <dd> | ||||
| <t>urn:ietf:params:xml:ns:yang:ietf-schedule</t> | ||||
| </dd> | ||||
| <dt>Prefix:</dt> | ||||
| <dd> | ||||
| <t>schedule</t> | ||||
| </dd> | ||||
| <dt>Reference:</dt> | ||||
| <dd> | ||||
| <t>RFC 9922</t> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <displayreference target="I-D.ietf-netmod-eca-policy" to="NETMOD-ECA-POLICY" | ||||
| /> | ||||
| <displayreference target="I-D.ietf-netmod-rfc8407bis" to="YANG-GUIDE"/> | ||||
| <displayreference target="I-D.ietf-ntp-ntpv5" to="NTPv5"/> | ||||
| <displayreference target="I-D.ietf-opsawg-scheduling-oam-tests" to="YANG-OAM | ||||
| "/> | ||||
| <displayreference target="I-D.ietf-opsawg-ucl-acl" to="YANG-NAC"/> | ||||
| <displayreference target="I-D.ietf-tvr-schedule-yang" to="YANG-SCHEDULE"/> | ||||
| <displayreference target="I-D.liu-netmod-yang-schedule" to="YANG-CONFIG-SCHE | ||||
| DULE"/> | ||||
| <references anchor="sec-combined-references"> | <references anchor="sec-combined-references"> | |||
| <name>References</name> | <name>References</name> | |||
| <references anchor="sec-normative-references"> | <references anchor="sec-normative-references"> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="RFC3231"> | <reference anchor="W3C.XML1.0" target="https://www.w3.org/TR/2008/REC-xm | |||
| <front> | l-20081126/"> | |||
| <title>Definitions of Managed Objects for Scheduling Management Oper | ||||
| ations</title> | ||||
| <author fullname="D. Levi" initials="D." surname="Levi"/> | ||||
| <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwae | ||||
| lder"/> | ||||
| <date month="January" year="2002"/> | ||||
| <abstract> | ||||
| <t>This memo defines a portion of the Management Information Base | ||||
| (MIB) for use with network management protocols in the Internet community. In pa | ||||
| rticular, it describes a set of managed objects that are used to schedule manage | ||||
| ment operations periodically or at specified dates and times. [STANDARDS-TRACK]< | ||||
| /t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3231"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3231"/> | ||||
| </reference> | ||||
| <reference anchor="RFC2119"> | ||||
| <front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
| le> | ||||
| <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 sig | ||||
| nify the requirements in the specification. These words are often capitalized. T | ||||
| his document defines these words as they should be interpreted in IETF documents | ||||
| . This document specifies an Internet Best Current Practices for the Internet Co | ||||
| mmunity, and requests discussion and suggestions for improvements.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <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 protoco | ||||
| l 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"> | ||||
| <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 da | ||||
| ta, state data, Remote Procedure Calls, and notifications for network management | ||||
| protocols. This document describes the syntax and semantics of version 1.1 of t | ||||
| he 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 al | ||||
| so 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="RFC5545"> | ||||
| <front> | ||||
| <title>Internet Calendaring and Scheduling Core Object Specification | ||||
| (iCalendar)</title> | ||||
| <author fullname="B. Desruisseaux" initials="B." role="editor" surna | ||||
| me="Desruisseaux"/> | ||||
| <date month="September" year="2009"/> | ||||
| <abstract> | ||||
| <t>This document defines the iCalendar data format for representin | ||||
| g and exchanging calendaring and scheduling information such as events, to-dos, | ||||
| journal entries, and free/busy information, independent of any particular calend | ||||
| ar service or protocol. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5545"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5545"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7317"> | ||||
| <front> | ||||
| <title>A YANG Data Model for System Management</title> | ||||
| <author fullname="A. Bierman" initials="A." surname="Bierman"/> | ||||
| <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/> | ||||
| <date month="August" year="2014"/> | ||||
| <abstract> | ||||
| <t>This document defines a YANG data model for the configuration a | ||||
| nd identification of some common system properties within a device containing a | ||||
| Network Configuration Protocol (NETCONF) server. This document also includes dat | ||||
| a node definitions for system identification, time-of-day management, user manag | ||||
| ement, DNS resolver configuration, and some protocol operations for system manag | ||||
| ement.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7317"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7317"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6991"> | ||||
| <front> | ||||
| <title>Common YANG Data Types</title> | ||||
| <author fullname="J. Schoenwaelder" initials="J." role="editor" surn | ||||
| ame="Schoenwaelder"/> | ||||
| <date month="July" year="2013"/> | ||||
| <abstract> | ||||
| <t>This document introduces a collection of common data types to b | ||||
| e used with the YANG data modeling language. This document obsoletes RFC 6021.</ | ||||
| t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6991"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6991"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8341"> | ||||
| <front> | ||||
| <title>Network Configuration Access Control Model</title> | ||||
| <author fullname="A. Bierman" initials="A." surname="Bierman"/> | ||||
| <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/> | ||||
| <date month="March" year="2018"/> | ||||
| <abstract> | ||||
| <t>The standardization of network configuration interfaces for use | ||||
| with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requ | ||||
| ires a structured and secure operating environment that promotes human usability | ||||
| and multi-vendor interoperability. There is a need for standard mechanisms to r | ||||
| estrict NETCONF or RESTCONF protocol access for particular users to a preconfigu | ||||
| red subset of all available NETCONF or RESTCONF protocol operations and content. | ||||
| This document defines such an access control model.</t> | ||||
| <t>This document obsoletes RFC 6536.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="91"/> | ||||
| <seriesInfo name="RFC" value="8341"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8341"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3688"> | ||||
| <front> | ||||
| <title>The IETF XML Registry</title> | ||||
| <author fullname="M. Mealling" initials="M." surname="Mealling"/> | ||||
| <date month="January" year="2004"/> | ||||
| <abstract> | ||||
| <t>This document describes an IANA maintained registry for IETF st | ||||
| andards which use Extensible Markup Language (XML) related items such as Namespa | ||||
| ces, Document Type Declarations (DTDs), Schemas, and Resource Description Framew | ||||
| ork (RDF) Schemas.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="81"/> | ||||
| <seriesInfo name="RFC" value="3688"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3688"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6020"> | ||||
| <front> | ||||
| <title>YANG - A Data Modeling Language for the Network Configuration | ||||
| Protocol (NETCONF)</title> | ||||
| <author fullname="M. Bjorklund" initials="M." role="editor" surname= | ||||
| "Bjorklund"/> | ||||
| <date month="October" year="2010"/> | ||||
| <abstract> | ||||
| <t>YANG is a data modeling language used to model configuration an | ||||
| d state data manipulated by the Network Configuration Protocol (NETCONF), NETCON | ||||
| F remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6020"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6020"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references anchor="sec-informative-references"> | ||||
| <name>Informative References</name> | ||||
| <reference anchor="I-D.ietf-opsawg-ucl-acl"> | ||||
| <front> | ||||
| <title>A YANG Data Model and RADIUS Extension for Policy-based Netwo | ||||
| rk 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="Boucadai | ||||
| r"> | ||||
| <organization>Orange</organization> | ||||
| </author> | ||||
| <author fullname="Daniel King" initials="D." surname="King"> | ||||
| <organization>Lancaster University</organization> | ||||
| </author> | ||||
| <date day="20" month="March" year="2025"/> | ||||
| <abstract> | ||||
| <t> This document defines a YANG data model for policy-based net | ||||
| work | ||||
| 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. | ||||
| In addition, the document defines a Remote Authentication Dial-in | ||||
| User Service (RADIUS) attribute that is used to communicate the user | ||||
| group identifier as part of identification and authorization | ||||
| information. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ucl-acl-07" | ||||
| /> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-opsawg-scheduling-oam-tests"> | ||||
| <front> | ||||
| <title>A YANG Data Model for Network Diagnosis using Scheduled Seque | ||||
| nces of OAM Tests</title> | ||||
| <author fullname="Luis M. Contreras" initials="L. M." surname="Contr | ||||
| eras"> | ||||
| <organization>Telefonica</organization> | ||||
| </author> | ||||
| <author fullname="Victor Lopez" initials="V." surname="Lopez"> | ||||
| <organization>Nokia</organization> | ||||
| </author> | ||||
| <date day="7" month="July" year="2025"/> | ||||
| <abstract> | ||||
| <t> This document defines a YANG data model for network diagnosi | ||||
| s on- | ||||
| demand relying upon Operations, Administration, and Maintenance (OAM) | ||||
| tests. This document defines both 'oam-unitary-test' and 'oam-test- | ||||
| sequence' YANG modules to manage the lifecycle of network diagnosis | ||||
| procedures, primarily intended for use by an SDN controller or | ||||
| network orchestrator, rather than by individual network nodes. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-scheduling- | ||||
| oam-tests-01"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-tvr-schedule-yang"> | ||||
| <front> | ||||
| <title>YANG Data Model for Scheduled Attributes</title> | ||||
| <author fullname="Yingzhen Qu" initials="Y." surname="Qu"> | ||||
| <organization>Futurewei Technologies</organization> | ||||
| </author> | ||||
| <author fullname="Acee Lindem" initials="A." surname="Lindem"> | ||||
| <organization>Arrcus, Inc.</organization> | ||||
| </author> | ||||
| <author fullname="Eric Kinzie" initials="E." surname="Kinzie"> | ||||
| <organization>LabN Consulting, L.L.C.</organization> | ||||
| </author> | ||||
| <author fullname="Don Fedyk" initials="D." surname="Fedyk"> | ||||
| <organization>LabN Consulting, L.L.C.</organization> | ||||
| </author> | ||||
| <author fullname="Marc Blanchet" initials="M." surname="Blanchet"> | ||||
| <organization>Viagenie</organization> | ||||
| </author> | ||||
| <date day="4" month="July" year="2025"/> | ||||
| <abstract> | ||||
| <t> The YANG model in this document includes three modules, and | ||||
| can be | ||||
| used to manage network resources and topologies with scheduled | ||||
| attributes, such as predictable link loss and link connectivity as a | ||||
| function of time. The intent is to have this information be utilized | ||||
| by Time-Variant Routing systems. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-tvr-schedule-yang- | ||||
| 05"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8413"> | ||||
| <front> | ||||
| <title>Framework for Scheduled Use of Resources</title> | ||||
| <author fullname="Y. Zhuang" initials="Y." surname="Zhuang"/> | ||||
| <author fullname="Q. Wu" initials="Q." surname="Wu"/> | ||||
| <author fullname="H. Chen" initials="H." surname="Chen"/> | ||||
| <author fullname="A. Farrel" initials="A." surname="Farrel"/> | ||||
| <date month="July" year="2018"/> | ||||
| <abstract> | ||||
| <t>Time-Scheduled (TS) reservation of Traffic Engineering (TE) res | ||||
| ources can be used to provide resource booking for TE Label Switched Paths so as | ||||
| to better guarantee services for customers and to improve the efficiency of net | ||||
| work resource usage at any moment in time, including network usage that is plann | ||||
| ed for the future. This document provides a framework that describes and discuss | ||||
| es the architecture for supporting scheduled reservation of TE resources. This d | ||||
| ocument does not describe specific protocols or protocol extensions needed to re | ||||
| alize this service.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8413"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8413"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8340"> | ||||
| <front> | ||||
| <title>YANG Tree Diagrams</title> | ||||
| <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/> | ||||
| <author fullname="L. Berger" initials="L." role="editor" surname="Be | ||||
| rger"/> | ||||
| <date month="March" year="2018"/> | ||||
| <abstract> | ||||
| <t>This document captures the current syntax used in YANG module t | ||||
| ree diagrams. The purpose of this document is to provide a single location for t | ||||
| his definition. This syntax may be updated from time to time based on the evolut | ||||
| ion 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="I-D.ietf-netmod-rfc8407bis"> | ||||
| <front> | ||||
| <title>Guidelines for Authors and Reviewers of Documents Containing | ||||
| YANG Data Models</title> | ||||
| <author fullname="Andy Bierman" initials="A." surname="Bierman"> | ||||
| <organization>YumaWorks</organization> | ||||
| </author> | ||||
| <author fullname="Mohamed Boucadair" initials="M." surname="Boucadai | ||||
| r"> | ||||
| <organization>Orange</organization> | ||||
| </author> | ||||
| <author fullname="Qin Wu" initials="Q." surname="Wu"> | ||||
| <organization>Huawei</organization> | ||||
| </author> | ||||
| <date day="5" month="June" year="2025"/> | ||||
| <abstract> | ||||
| <t> This document provides guidelines for authors and reviewers | ||||
| of | ||||
| specifications containing YANG data models, including IANA-maintained | ||||
| modules. Recommendations and procedures are defined, which are | ||||
| intended to increase interoperability and usability of Network | ||||
| Configuration Protocol (NETCONF) and RESTCONF Protocol | ||||
| implementations that utilize YANG modules. This document obsoletes | ||||
| RFC 8407. | ||||
| Also, this document updates RFC 8126 by providing additional | ||||
| guidelines for writing the IANA considerations for RFCs that specify | ||||
| IANA-maintained modules. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis- | ||||
| 28"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3339"> | ||||
| <front> | ||||
| <title>Date and Time on the Internet: Timestamps</title> | ||||
| <author fullname="G. Klyne" initials="G." surname="Klyne"/> | ||||
| <author fullname="C. Newman" initials="C." surname="Newman"/> | ||||
| <date month="July" year="2002"/> | ||||
| <abstract> | ||||
| <t>This document defines a date and time format for use in Interne | ||||
| t protocols that is a profile of the ISO 8601 standard for representation of dat | ||||
| es and times using the Gregorian calendar.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3339"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3339"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-ntp-ntpv5"> | ||||
| <front> | ||||
| <title>Network Time Protocol Version 5</title> | ||||
| <author fullname="Miroslav Lichvar" initials="M." surname="Lichvar"> | ||||
| <organization>Red Hat</organization> | ||||
| </author> | ||||
| <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi"> | ||||
| <organization>Huawei</organization> | ||||
| </author> | ||||
| <date day="2" month="July" year="2025"/> | ||||
| <abstract> | ||||
| <t> The Network Time Protocol (NTP) is a widely deployed protoco | ||||
| l that | ||||
| allows hosts to obtain the current time of day from time servers. | ||||
| This document specifies version 5 of the protocol (NTPv5), which | ||||
| adopts a client-server model as its sole mode of operation. Legacy | ||||
| operational modes supported in earlier versions have been removed to | ||||
| improve protocol robustness and clarity. While this specification | ||||
| defines the protocol used for time distribution, it does not define | ||||
| the algorithms or heuristics employed by clients to determine or | ||||
| adjust their local time. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-ntp-ntpv5-05"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6241"> | ||||
| <front> | ||||
| <title>Network Configuration Protocol (NETCONF)</title> | ||||
| <author fullname="R. Enns" initials="R." role="editor" surname="Enns | ||||
| "/> | ||||
| <author fullname="M. Bjorklund" initials="M." role="editor" surname= | ||||
| "Bjorklund"/> | ||||
| <author fullname="J. Schoenwaelder" initials="J." role="editor" surn | ||||
| ame="Schoenwaelder"/> | ||||
| <author fullname="A. Bierman" initials="A." role="editor" surname="B | ||||
| ierman"/> | ||||
| <date month="June" year="2011"/> | ||||
| <abstract> | ||||
| <t>The Network Configuration Protocol (NETCONF) defined in this do | ||||
| cument provides mechanisms to install, manipulate, and delete the configuration | ||||
| of network devices. It uses an Extensible Markup Language (XML)-based data encod | ||||
| ing for the configuration data as well as the protocol messages. The NETCONF pro | ||||
| tocol operations are realized as remote procedure calls (RPCs). This document ob | ||||
| soletes RFC 4741. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6241"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6241"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8040"> | ||||
| <front> | ||||
| <title>RESTCONF Protocol</title> | ||||
| <author fullname="A. Bierman" initials="A." surname="Bierman"/> | ||||
| <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/> | ||||
| <author fullname="K. Watsen" initials="K." surname="Watsen"/> | ||||
| <date month="January" year="2017"/> | ||||
| <abstract> | ||||
| <t>This document describes an HTTP-based protocol that provides a | ||||
| programmatic interface for accessing data defined in YANG, using the datastore c | ||||
| oncepts defined in the Network Configuration Protocol (NETCONF).</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8040"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8040"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4252"> | ||||
| <front> | ||||
| <title>The Secure Shell (SSH) Authentication Protocol</title> | ||||
| <author fullname="T. Ylonen" initials="T." surname="Ylonen"/> | ||||
| <author fullname="C. Lonvick" initials="C." role="editor" surname="L | ||||
| onvick"/> | ||||
| <date month="January" year="2006"/> | ||||
| <abstract> | ||||
| <t>The Secure Shell Protocol (SSH) is a protocol for secure remote | ||||
| login and other secure network services over an insecure network. This document | ||||
| describes the SSH authentication protocol framework and public key, password, a | ||||
| nd host-based client authentication methods. Additional authentication methods a | ||||
| re described in separate documents. The SSH authentication protocol runs on top | ||||
| of the SSH transport layer protocol and provides a single authenticated tunnel f | ||||
| or the SSH connection protocol. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4252"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4252"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8446"> | ||||
| <front> | ||||
| <title>The Transport Layer Security (TLS) Protocol Version 1.3</titl | ||||
| e> | ||||
| <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 Secu | ||||
| rity (TLS) protocol. TLS allows client/server applications to communicate over t | ||||
| he Internet in a way that is designed to prevent eavesdropping, tampering, and m | ||||
| essage forgery.</t> | ||||
| <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 50 | ||||
| 77, 5246, and 6961. This document also specifies new requirements for TLS 1.2 im | ||||
| plementations.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8446"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8446"/> | ||||
| </reference> | ||||
| <reference anchor="RFC9000"> | ||||
| <front> | ||||
| <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title> | ||||
| <author fullname="J. Iyengar" initials="J." role="editor" surname="I | ||||
| yengar"/> | ||||
| <author fullname="M. Thomson" initials="M." role="editor" surname="T | ||||
| homson"/> | ||||
| <date month="May" year="2021"/> | ||||
| <abstract> | ||||
| <t>This document defines the core of the QUIC transport protocol. | ||||
| QUIC provides applications with flow-controlled streams for structured communica | ||||
| tion, low-latency connection establishment, and network path migration. QUIC inc | ||||
| ludes security measures that ensure confidentiality, integrity, and availability | ||||
| in a range of deployment circumstances. Accompanying documents describe the int | ||||
| egration of TLS for key negotiation, loss detection, and an exemplary congestion | ||||
| control algorithm.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9000"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9000"/> | ||||
| </reference> | ||||
| <reference anchor="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 configura | ||||
| tion data, state data, parameters of Remote Procedure Call (RPC) operations or a | ||||
| ctions, 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="RFC9657"> | ||||
| <front> | ||||
| <title>Time-Variant Routing (TVR) Use Cases</title> | ||||
| <author fullname="E. Birrane, III" initials="E." surname="Birrane, I | ||||
| II"/> | ||||
| <author fullname="N. Kuhn" initials="N." surname="Kuhn"/> | ||||
| <author fullname="Y. Qu" initials="Y." surname="Qu"/> | ||||
| <author fullname="R. Taylor" initials="R." surname="Taylor"/> | ||||
| <author fullname="L. Zhang" initials="L." surname="Zhang"/> | ||||
| <date month="October" year="2024"/> | ||||
| <abstract> | ||||
| <t>This document introduces use cases where Time-Variant Routing ( | ||||
| TVR) computations (i.e., routing computations that take into consideration time- | ||||
| based or scheduled changes to a network) could improve routing protocol converge | ||||
| nce and/or network performance.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9657"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9657"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-netmod-eca-policy"> | ||||
| <front> | ||||
| <title>A YANG Data model for ECA Policy Management</title> | ||||
| <author fullname="Qin Wu" initials="Q." surname="Wu"> | ||||
| <organization>Huawei</organization> | ||||
| </author> | ||||
| <author fullname="Igor Bryskin" initials="I." surname="Bryskin"> | ||||
| <organization>Individual</organization> | ||||
| </author> | ||||
| <author fullname="Henk Birkholz" initials="H." surname="Birkholz"> | ||||
| <organization>Fraunhofer SIT</organization> | ||||
| </author> | ||||
| <author fullname="Xufeng Liu" initials="X." surname="Liu"> | ||||
| <organization>Volta Networks</organization> | ||||
| </author> | ||||
| <author fullname="Benoît Claise" initials="B." surname="Claise"> | ||||
| <organization>Cisco</organization> | ||||
| </author> | ||||
| <date day="19" month="February" year="2021"/> | ||||
| <abstract> | ||||
| <t> This document defines a YANG data model for Event Condition | ||||
| Action | ||||
| (ECA) policy management. The ECA policy YANG module provides the | ||||
| ability to delegate some network management functions to the server | ||||
| (e.g., a NETCONF or RESTCONF server) which can take simple and | ||||
| instant action when a trigger condition on the managed objects is | ||||
| met. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-eca-policy- | ||||
| 01"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.liu-netmod-yang-schedule"> | ||||
| <front> | <front> | |||
| <title>A YANG Data Model for Configuration Scheduling</title> | <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title> | |||
| <author fullname="Xufeng Liu" initials="X." surname="Liu"> | <author initials="T." surname="Bray" fullname="Tim Bray" role="edito | |||
| <organization>Jabil</organization> | r"> | |||
| </author> | <organization/> | |||
| <author fullname="Igor Bryskin" initials="I." surname="Bryskin"> | ||||
| <organization>Huawei Technologies</organization> | ||||
| </author> | </author> | |||
| <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Bee | <author initials="J." surname="Paoli" fullname="Jean Paoli" role="ed | |||
| ram"> | itor"> | |||
| <organization>Juniper Networks</organization> | <organization/> | |||
| </author> | </author> | |||
| <author fullname="Tarek Saad" initials="T." surname="Saad"> | <author initials="C. M." surname="Sperberg-McQueen" fullname="C. M. | |||
| <organization>Cisco Systems Inc</organization> | Sperberg-McQueen" role="editor"> | |||
| <organization/> | ||||
| </author> | </author> | |||
| <author fullname="Himanshu Shah" initials="H." surname="Shah"> | <author initials="E." surname="Maler" fullname="Eve Maler" role="edi | |||
| <organization>Ciena</organization> | tor"> | |||
| <organization/> | ||||
| </author> | </author> | |||
| <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname=" | <author initials="F." surname="Yergeau" fullname="Francois Yergeau" | |||
| de Dios"> | role="editor"> | |||
| <organization>Telefonica</organization> | <organization/> | |||
| </author> | </author> | |||
| <date day="1" month="March" year="2018"/> | <date year="2008" month="November" day="26"/> | |||
| <abstract> | ||||
| <t> This document describes a data model for configuration sched | ||||
| uling. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | </front> | |||
| <seriesInfo name="Internet-Draft" value="draft-liu-netmod-yang-schedul e-05"/> | <refcontent>W3C Recommendation</refcontent> | |||
| </reference> | </reference> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
| 231.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
| 119.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 174.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 950.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 545.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 317.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 991.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 341.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
| 688.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 020.xml"/> | ||||
| </references> | ||||
| <references anchor="sec-informative-references"> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-netmod-eca-policy.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-netmod-rfc8407bis.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-ntp-ntpv5.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-opsawg-scheduling-oam-tests.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-opsawg-ucl-acl.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-tvr-schedule-yang.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| liu-netmod-yang-schedule.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 413.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 340.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
| 339.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 241.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 040.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 252.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 446.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 000.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 951.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 657.xml"/> | ||||
| </references> | </references> | |||
| </references> | </references> | |||
| <?line 1637?> | <?line 1834?> | |||
| <section anchor="usage"> | <section anchor="usage"> | |||
| <name>Examples of Scheduling Format Representation</name> | <name>Examples of Scheduling Format Representation</name> | |||
| <t>This section provides some examples to illustrate the use of the | <t>This section provides some examples to illustrate the use of the | |||
| period and recurrence formats defined in <xref target="sec-schedule"/>. The f ollowing | period and recurrence formats defined in <xref target="sec-schedule"/>. The f ollowing | |||
| modules are used for illustration purposes and make examples verifiable:</t> | modules are used for illustration purposes and make examples verifiable:</t> | |||
| <artwork><![CDATA[ | <!--[rfced] In Appendix A, should each example be listed in separate | |||
| sourcecode blocks? They are all currently contained within one block of | ||||
| sourcecode. | ||||
| --> | ||||
| <!-- [rfced] FYI, the YANG examples (example-sch-usage-1 - 8.yang and | ||||
| example-scheduled-backup.yang, example-scheduled-link-bandwidth.yang, | ||||
| and example-sch-capacity-res.yang) each give errors and warnings from | ||||
| pyang -ietf. Please confirm this is as expected. | ||||
| --> | ||||
| <sourcecode type="yang"><![CDATA[ | ||||
| module example-sch-usage-1 { | module example-sch-usage-1 { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "http://example.com/example-sch-usage-1"; | namespace "http://example.com/example-sch-usage-1"; | |||
| prefix "ex-schu-1"; | prefix "ex-schu-1"; | |||
| import ietf-schedule { | import ietf-schedule { | |||
| prefix "schedule"; | prefix "schedule"; | |||
| } | } | |||
| container generic-schedule-params { | container generic-schedule-params { | |||
| skipping to change at line 2359 ¶ | skipping to change at line 2114 ¶ | |||
| prefix "ex-schu-8"; | prefix "ex-schu-8"; | |||
| container icalendar-recurrence { | container icalendar-recurrence { | |||
| uses schedule:icalendar-recurrence { | uses schedule:icalendar-recurrence { | |||
| refine workweek-start { | refine workweek-start { | |||
| default monday; | default monday; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>For each example, only the message body is provided with | <t>For each example, only the message body is provided with | |||
| JSON used for encoding per the guidance in <xref target="RFC7951"/>.</t> | JSON, which is used for encoding per the guidance in <xref target="RFC7951"/> .</t> | |||
| <section anchor="the-generic-schedule-params-grouping"> | <section anchor="the-generic-schedule-params-grouping"> | |||
| <name>The "generic-schedule-params" Grouping</name> | <name>The "generic-schedule-params" Grouping</name> | |||
| <t><xref target="ex-0"/> illustrates the example of a requested schedule that needs to start no earlier than | <t><xref target="ex-0"/> illustrates the example of a requested schedule that needs to start no earlier than | |||
| 08:00 AM, January 1, 2025 and end no later than 8:00 PM, January 31, 2025 (Beiji ng time). | 08:00 AM, January 1, 2025 and end no later than 8:00 PM, January 31, 2025 (Beiji ng time). | |||
| Schedule requests that fail to meet the requirements are ignored by the system a s indicated by | Schedule requests that fail to meet the requirements are ignored by the system, as indicated by | |||
| "discard-action".</t> | "discard-action".</t> | |||
| <figure anchor="ex-0"> | <figure anchor="ex-0"> | |||
| <name>Generic Parameters with 'max-allowed-end' for Schedule Validatio n</name> | <name>Generic Parameters with 'max-allowed-end' for Schedule Validatio n</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-1:generic-schedule-params": { | "example-sch-usage-1:generic-schedule-params": { | |||
| "time-zone-identifier": "China/Beijing", | "time-zone-identifier": "China/Beijing", | |||
| "min-allowed-start": "2025-01-01T08:00:00", | "min-allowed-start": "2025-01-01T08:00:00", | |||
| "max-allowed-end": "2025-01-31T20:00:00", | "max-allowed-end": "2025-01-31T20:00:00", | |||
| "discard-action": "ietf-schedule:silently-discard" | "discard-action": "ietf-schedule:silently-discard" | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>To illustrate the difference between "max-allowed-end" and "validity" parameters, | <t>To illustrate the difference between "max-allowed-end" and "validity" parameters, | |||
| <xref target="ex-00"/> shows the example of a requested schedule that needs to s tart no earlier than | <xref target="ex-00"/> shows the example of a requested schedule that needs to s tart no earlier than | |||
| 08:00 AM, January 1, 2025 (Beijing time). Schedule requests that fail to meet th e | 08:00 AM, January 1, 2025 (Beijing time). Schedule requests that fail to meet th e | |||
| requirements are ignored by the system as indicated by "discard-action". The | requirements are ignored by the system, as indicated by "discard-action". The | |||
| requested schedule may end after 8:00 PM, January 31, 2025, but any occurrences that are generated | requested schedule may end after 8:00 PM, January 31, 2025, but any occurrences that are generated | |||
| after that time would not be considered as valid.</t> | after that time would not be considered as valid.</t> | |||
| <figure anchor="ex-00"> | <figure anchor="ex-00"> | |||
| <name>Generic Parameters with 'validity' for Schedule Validation</name > | <name>Generic Parameters with 'validity' for Schedule Validation</name > | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-1:generic-schedule-params": { | "example-sch-usage-1:generic-schedule-params": { | |||
| "time-zone-identifier": "China/Beijing", | "time-zone-identifier": "China/Beijing", | |||
| "validity": "2025-01-31T20:00:00", | "validity": "2025-01-31T20:00:00", | |||
| "min-allowed-start": "2025-01-01T08:00:00", | "min-allowed-start": "2025-01-01T08:00:00", | |||
| "discard-action": "ietf-schedule:silently-discard" | "discard-action": "ietf-schedule:silently-discard" | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-period-of-time-grouping"> | <section anchor="the-period-of-time-grouping"> | |||
| <name>The "period-of-time" Grouping</name> | <name>The "period-of-time" Grouping</name> | |||
| <t><xref target="ex-1"/> shows an example of a period that starts at 08: 00:00 UTC, on January 1, 2025 and ends at 18:00:00 UTC | <t><xref target="ex-1"/> shows an example of a period that starts at 08: 00:00 UTC on January 1, 2025 and ends at 18:00:00 UTC | |||
| on December 31, 2027.</t> | on December 31, 2027.</t> | |||
| <figure anchor="ex-1"> | <figure anchor="ex-1"> | |||
| <name>Simple Start/End Schedule</name> | <name>Simple Start/End Schedule</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-2:period-of-time": { | "example-sch-usage-2:period-of-time": { | |||
| "period-start": "2025-01-01T08:00:00Z", | "period-start": "2025-01-01T08:00:00Z", | |||
| "period-end": "2027-12-31T18:00:00Z" | "period-end": "2027-12-31T18:00:00Z" | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>An example of a period that starts at 08:00:00 UTC, on January 1, 202 5 and lasts 15 days and | <t>An example of a period that starts at 08:00:00 UTC on January 1, 2025 and lasts 15 days and | |||
| 5 hours and 20 minutes is encoded as shown in <xref target="ex-2"/>.</t> | 5 hours and 20 minutes is encoded as shown in <xref target="ex-2"/>.</t> | |||
| <figure anchor="ex-2"> | <figure anchor="ex-2"> | |||
| <name>Simple Schedule with Duration</name> | <name>Simple Schedule with Duration</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-2:period-of-time": { | "example-sch-usage-2:period-of-time": { | |||
| "period-start": "2025-01-01T08:00:00Z", | "period-start": "2025-01-01T08:00:00Z", | |||
| "duration": "P15DT05:20:00" | "duration": "P15DT05:20:00" | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>An example of a period that starts at 2:00 A.M. in Los Angeles on Nov ember 19, | <t>An example of a period that starts at 2:00 AM in Los Angeles on Novem ber 19, | |||
| 2025 and lasts 20 weeks is depicted in <xref target="ex-3"/>.</t> | 2025 and lasts 20 weeks is depicted in <xref target="ex-3"/>.</t> | |||
| <figure anchor="ex-3"> | <figure anchor="ex-3"> | |||
| <name>Simple Schedule with Time Zone Indication</name> | <name>Simple Schedule with Time Zone Indication</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-2:period-of-time": { | "example-sch-usage-2:period-of-time": { | |||
| "period-start": "2025-11-19T02:00:00", | "period-start": "2025-11-19T02:00:00", | |||
| "time-zone-identifier": "America/Los_Angeles", | "time-zone-identifier": "America/Los_Angeles", | |||
| "duration": "P20W" | "duration": "P20W" | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-recurrence-basic-grouping"> | <section anchor="the-recurrence-basic-grouping"> | |||
| <name>The "recurrence-basic" Grouping</name> | <name>The "recurrence-basic" Grouping</name> | |||
| <t><xref target="ex-6"/> indicates a recurrence of every 2 days which st arts immediately and repeats forever:</t> | <t><xref target="ex-4"/> indicates a recurrence of every 2 days, which s tarts immediately and repeats forever:</t> | |||
| <figure anchor="ex-4"> | <figure anchor="ex-4"> | |||
| <name>Simple Schedule with Recurrence</name> | <name>Simple Schedule with Recurrence</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-3:recurrence-basic": { | "example-sch-usage-3:recurrence-basic": { | |||
| "recurrence-description": "forever recurrence rule", | "recurrence-description": "forever recurrence rule", | |||
| "frequency": "ietf-schedule:daily", | "frequency": "ietf-schedule:daily", | |||
| "interval": 2 | "interval": 2 | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-recurrence-utc-grouping"> | <section anchor="the-recurrence-utc-grouping"> | |||
| <name>The "recurrence-utc" Grouping</name> | <name>The "recurrence-utc" Grouping</name> | |||
| <t><xref target="ex-5"/> indicates a recurrence from 8:00 AM to 9:00 AM every day, from | <t><xref target="ex-5"/> indicates a recurrence from 8:00 AM to 9:00 AM every day, from | |||
| December 1 to December 31, 2025 in UTC:</t> | December 1 to December 31, 2025 in UTC:</t> | |||
| <figure anchor="ex-5"> | <figure anchor="ex-5"> | |||
| <name>Simple Schedule with Recurrence in UTC</name> | <name>Simple Schedule with Recurrence in UTC</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-4:recurrence-utc": { | "example-sch-usage-4:recurrence-utc": { | |||
| "recurrence-first": { | "recurrence-first": { | |||
| "start-time-utc": "2025-12-01T08:00:00Z", | "start-time-utc": "2025-12-01T08:00:00Z", | |||
| "duration": 3600 | "duration": 3600 | |||
| }, | }, | |||
| "frequency": "ietf-schedule:daily", | "frequency": "ietf-schedule:daily", | |||
| "interval": 1, | "interval": 1, | |||
| "utc-until": "2025-12-31T23:59:59Z" | "utc-until": "2025-12-31T23:59:59Z" | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-recurrence-with-time-zone-grouping"> | <section anchor="the-recurrence-with-time-zone-grouping"> | |||
| <name>The "recurrence-with-time-zone" Grouping</name> | <name>The "recurrence-with-time-zone" Grouping</name> | |||
| <t><xref target="ex-6"/> indicates a recurrence of every 2 hours for 10 | <t><xref target="ex-6"/> indicates a recurrence of every 2 hours for 10 | |||
| occurrences, lasting | occurrences that | |||
| 10 minutes, and starting at 3 p.m. on December 1, 2025 in New York:</t> | lasts 10 minutes and starts at 3 PM on December 1, 2025 in New York:</t> | |||
| <figure anchor="ex-6"> | <figure anchor="ex-6"> | |||
| <name>Simple Schedule with Recurrence with Time Zone Indication</name> | <name>Simple Schedule with Recurrence with Time Zone Indication</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-5:recurrence-with-time-zone": { | "example-sch-usage-5:recurrence-with-time-zone": { | |||
| "recurrence-first": { | "recurrence-first": { | |||
| "start-time": "2025-12-01T15:00:00", | "start-time": "2025-12-01T15:00:00", | |||
| "duration": "PT00:10:00", | "duration": "PT00:10:00", | |||
| "time-zone-identifier": "America/New_York" | "time-zone-identifier": "America/New_York" | |||
| }, | }, | |||
| "frequency": "ietf-schedule:hourly", | "frequency": "ietf-schedule:hourly", | |||
| "interval": 2, | "interval": 2, | |||
| "count": 10 | "count": 10 | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-recurrence-utc-with-periods-grouping"> | <section anchor="the-recurrence-utc-with-periods-grouping"> | |||
| <name>The "recurrence-utc-with-periods" Grouping</name> | <name>The "recurrence-utc-with-periods" Grouping</name> | |||
| <t><xref target="ex-7"/> indicates a recurrence that occurs every two da ys starting at 9:00 AM | <t><xref target="ex-7"/> indicates a recurrence that occurs every two da ys starting at 9:00 AM | |||
| and 3:00 PM for a duration of 30 minutes and 40 minutes respectively, | and 3:00 PM for a duration of 30 minutes and 40 minutes, respectively, | |||
| from 2025-06-01 to 2025-06-30 in UTC:</t> | from 2025-06-01 to 2025-06-30 in UTC:</t> | |||
| <figure anchor="ex-7"> | <!--[rfced] We note that dates are formatted in different ways in | |||
| Appendix A. For example, "January 31, 2025" and "2025-06-01" are used | ||||
| in Appendices A.1 and A.6, respectively. If these instances should be | ||||
| consistent, please let us know which form you prefer. | ||||
| Original: | ||||
| Figure 10 illustrates the example of a requested schedule that needs | ||||
| to start no earlier than 08:00 AM, January 1, 2025 and end no later | ||||
| than 8:00 PM, January 31, 2025 (Beijing time). | ||||
| ... | ||||
| Figure 18 indicates a recurrence that occurs every two days starting | ||||
| at 9:00 AM and 3:00 PM for a duration of 30 minutes and 40 minutes | ||||
| respectively, from 2025-06-01 to 2025-06-30 in UTC: | ||||
| --> | ||||
| <figure anchor="ex-7"> | ||||
| <name>Example of Recurrence With Date Times</name> | <name>Example of Recurrence With Date Times</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-6:recurrence-utc-with-periods": { | "example-sch-usage-6:recurrence-utc-with-periods": { | |||
| "recurrence-first": { | "recurrence-first": { | |||
| "start-time-utc": "2025-06-01T09:00:00Z" | "start-time-utc": "2025-06-01T09:00:00Z" | |||
| }, | }, | |||
| "frequency": "ietf-schedule:daily", | "frequency": "ietf-schedule:daily", | |||
| "interval": 2, | "interval": 2, | |||
| "utc-until": "2025-06-30T23:59:59Z", | "utc-until": "2025-06-30T23:59:59Z", | |||
| "period-timeticks": [ | "period-timeticks": [ | |||
| { | { | |||
| "period-start": "3240000", | "period-start": "3240000", | |||
| "period-end": "3420000" | "period-end": "3420000" | |||
| }, | }, | |||
| { | { | |||
| "period-start": "5400000", | "period-start": "5400000", | |||
| "period-end": "5640000" | "period-end": "5640000" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-recurrence-time-zone-with-periods-grouping"> | <section anchor="the-recurrence-time-zone-with-periods-grouping"> | |||
| <name>The "recurrence-time-zone-with-periods" Grouping</name> | <name>The "recurrence-time-zone-with-periods" Grouping</name> | |||
| <t><xref target="ex-8"/> indicates a recurrence that occurs every | <t><xref target="ex-8"/> indicates a recurrence that occurs every | |||
| 30 minutes and lasts for 15 minutes from 9:00 AM to 5:00 PM and an extra two occurrences | 30 minutes and lasts for 15 minutes from 9:00 AM to 5:00 PM and two extra occ urrences | |||
| at 6:00 PM and 6:30 PM with each lasting for 20 minutes on 2025-12-01 (New Yo rk):</t> | at 6:00 PM and 6:30 PM with each lasting for 20 minutes on 2025-12-01 (New Yo rk):</t> | |||
| <figure anchor="ex-8"> | <figure anchor="ex-8"> | |||
| <name>Example of Advanced Recurrence Schedule</name> | <name>Example of Advanced Recurrence Schedule</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-7:recurrence-time-zone-with-periods": { | "example-sch-usage-7:recurrence-time-zone-with-periods": { | |||
| "recurrence-first": { | "recurrence-first": { | |||
| "start-time": "2025-12-01T09:00:00", | "start-time": "2025-12-01T09:00:00", | |||
| "duration": "PT00:15:00", | "duration": "PT00:15:00", | |||
| "time-zone-identifier": "America/New_York" | "time-zone-identifier": "America/New_York" | |||
| }, | }, | |||
| "frequency": "ietf-schedule:minutely", | "frequency": "ietf-schedule:minutely", | |||
| "interval": 30, | "interval": 30, | |||
| "until": "2025-12-01T17:00:00Z", | "until": "2025-12-01T17:00:00Z", | |||
| skipping to change at line 2564 ¶ | skipping to change at line 2334 ¶ | |||
| "period-start": "2025-12-01T18:00:00", | "period-start": "2025-12-01T18:00:00", | |||
| "duration": "PT00:20:00" | "duration": "PT00:20:00" | |||
| }, | }, | |||
| { | { | |||
| "period-start": "2025-12-01T18:30:00", | "period-start": "2025-12-01T18:30:00", | |||
| "duration": "PT00:20:00" | "duration": "PT00:20:00" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-icalendar-recurrence-grouping"> | <section anchor="the-icalendar-recurrence-grouping"> | |||
| <name>The "icalendar-recurrence" Grouping</name> | <name>The "icalendar-recurrence" Grouping</name> | |||
| <t><xref target="ex-9"/> indicates 10 occurrences that occur at | <t><xref target="ex-9"/> indicates 10 occurrences at | |||
| 8:00 AM (EST), every last Saturday of the month starting in January 2024:</t> | 8:00 AM (EST) every last Saturday of the month starting in January 2024:</t> | |||
| <figure anchor="ex-9"> | <figure anchor="ex-9"> | |||
| <name>Simple iCalendar Recurrence</name> | <name>Simple iCalendar Recurrence</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-8:icalendar-recurrence": { | "example-sch-usage-8:icalendar-recurrence": { | |||
| "recurrence-first": { | "recurrence-first": { | |||
| "start-time": "2024-01-27T08:00:00", | "start-time": "2024-01-27T08:00:00", | |||
| "time-zone-identifier": "America/New_York" | "time-zone-identifier": "America/New_York" | |||
| }, | }, | |||
| "frequency": "ietf-schedule:monthly", | "frequency": "ietf-schedule:monthly", | |||
| "count": 10, | "count": 10, | |||
| "byday": [ | "byday": [ | |||
| { | { | |||
| "direction": [ | "direction": [ | |||
| -1 | -1 | |||
| ], | ], | |||
| "weekday": "saturday" | "weekday": "saturday" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t><xref target="ex-10"/> is an example of a recurrence that occurs on t he last | <t><xref target="ex-10"/> is an example of a recurrence that occurs on t he last | |||
| workday of the month until December 25, 2025, from January 1, 2025:</t> | workday of the month until December 25, 2025, starting January 1, 2025:</t> | |||
| <figure anchor="ex-10"> | <figure anchor="ex-10"> | |||
| <name>Example of Advanced iCalendar Recurrence</name> | <name>Example of Advanced iCalendar Recurrence</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-8:icalendar-recurrence": { | "example-sch-usage-8:icalendar-recurrence": { | |||
| "recurrence-first": { | "recurrence-first": { | |||
| "start-time": "2025-01-01" | "start-time": "2025-01-01" | |||
| }, | }, | |||
| "frequency": "ietf-schedule:monthly", | "frequency": "ietf-schedule:monthly", | |||
| "until": "2025-12-25", | "until": "2025-12-25", | |||
| "byday": [ | "byday": [ | |||
| { | { | |||
| "weekday": "monday" | "weekday": "monday" | |||
| skipping to change at line 2628 ¶ | skipping to change at line 2398 ¶ | |||
| }, | }, | |||
| { | { | |||
| "weekday": "friday" | "weekday": "friday" | |||
| } | } | |||
| ], | ], | |||
| "bysetpos": [ | "bysetpos": [ | |||
| -1 | -1 | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t><xref target="ex-11"/> indicates a recurrence that occurs every 20 | <t><xref target="ex-11"/> indicates a recurrence that occurs every 20 | |||
| minutes from 9:00 AM to 4:40 PM (UTC), with the occurrence starting at 10:20 | minutes from 9:00 AM to 4:40 PM (UTC), with the exclusion of the | |||
| AM | occurrence starting at 10:20 AM on 2025-12-01:</t> | |||
| being excluded on 2025-12-01:</t> | ||||
| <figure anchor="ex-11"> | <figure anchor="ex-11"> | |||
| <name>Example of Advanced iCalendar Recurrence with Exceptions</name> | <name>Example of Advanced iCalendar Recurrence with Exceptions</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-8:icalendar-recurrence": { | "example-sch-usage-8:icalendar-recurrence": { | |||
| "recurrence-first": { | "recurrence-first": { | |||
| "start-time": "2025-12-01T09:00:00Z" | "start-time": "2025-12-01T09:00:00Z" | |||
| }, | }, | |||
| "until": "2025-12-01T16:40:00Z", | "until": "2025-12-01T16:40:00Z", | |||
| "frequency": "ietf-schedule:minutely", | "frequency": "ietf-schedule:minutely", | |||
| "byminute": [ | "byminute": [ | |||
| 0, | 0, | |||
| 20, | 20, | |||
| skipping to change at line 2663 ¶ | skipping to change at line 2433 ¶ | |||
| 13, | 13, | |||
| 14, | 14, | |||
| 15, | 15, | |||
| 16 | 16 | |||
| ], | ], | |||
| "exception-dates": [ | "exception-dates": [ | |||
| "2025-12-01T10:20:00Z" | "2025-12-01T10:20:00Z" | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="the-schedule-status-grouping"> | <section anchor="the-schedule-status-grouping"> | |||
| <name>The "schedule-status" Grouping</name> | <name>The "schedule-status" Grouping</name> | |||
| <t><xref target="ex-12"/> indicates the scheduled recurrence status of < xref target="ex-11"/> at the time | <t><xref target="ex-12"/> indicates the scheduled recurrence status of < xref target="ex-11"/> at the time | |||
| of 12:15 PM, 2025-12-01 (UTC):</t> | of 12:15 PM on 2025-12-01 (UTC):</t> | |||
| <figure anchor="ex-12"> | <figure anchor="ex-12"> | |||
| <name>Example of a Schedule Status</name> | <name>Example of a Schedule Status</name> | |||
| <artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| { | { | |||
| "example-sch-usage-1:schedule-status": { | "example-sch-usage-1:schedule-status": { | |||
| "state": "ietf-schedule:enabled", | "state": "ietf-schedule:enabled", | |||
| "version": 1, | "version": 1, | |||
| "schedule-type": "ietf-schedule:recurrence", | "schedule-type": "ietf-schedule:recurrence", | |||
| "counter": 9, | "counter": 9, | |||
| "last-occurrence": [ | "last-occurrence": [ | |||
| "2025-12-01T12:00:00Z" | "2025-12-01T12:00:00Z" | |||
| ], | ], | |||
| "upcoming-occurrence": [ | "upcoming-occurrence": [ | |||
| "2025-12-01T12:20:00Z" | "2025-12-01T12:20:00Z" | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>At the time of 12:15 PM, 2025-12-01 (UTC), the recurring event occurr | <t>At the time of 12:15 PM on 2025-12-01 (UTC), the recurring event occu | |||
| ed at | rred at | |||
| (note that occurrence at 10:20 AM is excluded): | (note that the occurrence at 10:20 AM is excluded): | |||
| 9:00, 9:20, 9:40, 10:00, 10:40, 11:00, 11:20, 11:40, 12:00. | 9:00, 9:20, 9:40, 10:00, 10:40, 11:00, 11:20, 11:40, and 12:00. | |||
| The last occurrence was at 12:00, the upcoming one is at 12:20.</t> | The last occurrence was at 12:00, and the upcoming one is at 12:20.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="sec-ext"> | <section anchor="sec-ext"> | |||
| <name>Examples of Using/Extending the "ietf-schedule" Module</name> | <name>Examples of Using/Extending the "ietf-schedule" Module</name> | |||
| <t>This non-normative section shows two examples for how the "ietf-schedul e" module | <t>This non-normative section shows two examples for how the "ietf-schedul e" module | |||
| can be used or extended for scheduled events or attributes based on date and time.</t> | can be used or extended for scheduled events or attributes based on date and time.</t> | |||
| <section anchor="features"> | <section anchor="features"> | |||
| <name>Example: Schedule Tasks to Execute Based on a Recurrence Rule</nam e> | <name>Example: Schedule Tasks to Execute Based on a Recurrence Rule</nam e> | |||
| <t>Scheduled tasks can be used to execute specific actions based on cert ain recurrence rules (e.g., | <t>Scheduled tasks can be used to execute specific actions based on cert ain recurrence rules (e.g., | |||
| every Friday at 8:00 AM). The following example module which "uses" the "ical | every Friday at 8:00 AM). The following example module, which "uses" the "ica | |||
| endar-recurrence" | lendar-recurrence" | |||
| grouping from "ietf-schedule" module shows how a scheduled task could be defi | grouping from the "ietf-schedule" module, shows how a scheduled task could be | |||
| ned | defined | |||
| with different features used for options.</t> | with different features used for options.</t> | |||
| <artwork><![CDATA[ | <sourcecode type="yang"><![CDATA[ | |||
| module example-scheduled-backup { | module example-scheduled-backup { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "http://example.com/example-scheduled-backup"; | namespace "http://example.com/example-scheduled-backup"; | |||
| prefix "ex-scback"; | prefix "ex-scback"; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-schedule { | import ietf-schedule { | |||
| prefix "schedule"; | prefix "schedule"; | |||
| } | } | |||
| organization | organization | |||
| "Example, Inc."; | "Example, Inc."; | |||
| contact | contact | |||
| "Support at example.com"; | "Support at example.com"; | |||
| description | description | |||
| "Example of a module defining a scheduled based backup | "Example of a module defining a scheduled-based backup | |||
| operation."; | operation."; | |||
| revision "2023-01-19" { | revision "2023-01-19" { | |||
| description | description | |||
| "Initial Version."; | "Initial version."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Scheduling."; | "RFC 9922: A YANG Data Model for Scheduling."; | |||
| } | } | |||
| container scheduled-backup-tasks { | container scheduled-backup-tasks { | |||
| description | description | |||
| "A container for backing up all current running configuration | "A container for backing up all current running configurations | |||
| on the device."; | on the device."; | |||
| list tasks { | list tasks { | |||
| key "task-id"; | key "task-id"; | |||
| description | description | |||
| "The list of backing up tasks on this device."; | "The list of backing up tasks on this device."; | |||
| leaf task-id { | leaf task-id { | |||
| type string; | type string; | |||
| description | description | |||
| "The task identifier that uniquely identifies a scheduled | "The task identifier that uniquely identifies a scheduled | |||
| backup task."; | backup task."; | |||
| } | } | |||
| choice local-or-remote { | choice local-or-remote { | |||
| description | description | |||
| "Specifies whether the configuration to be backed up is | "Specifies whether the configuration to be backed up is | |||
| local or remote."; | local or remote."; | |||
| case local { | case local { | |||
| description | description | |||
| "Configuration parameters for backing up of local | "Configuration parameters for the backing up of local | |||
| devices."; | devices."; | |||
| leaf local { | leaf local { | |||
| type empty; | type empty; | |||
| description | description | |||
| "The parameter specifies the configuration to be | "The parameter specifies the configuration to be | |||
| backed up is on the local device."; | backed up is on the local device."; | |||
| } | } | |||
| } | } | |||
| case remote { | case remote { | |||
| description | description | |||
| skipping to change at line 2781 ¶ | skipping to change at line 2551 ¶ | |||
| description | description | |||
| "The parameter specifies the remote device domain | "The parameter specifies the remote device domain | |||
| name."; | name."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container basic-recurrence-schedules { | container basic-recurrence-schedules { | |||
| if-feature schedule:basic-recurrence; | if-feature schedule:basic-recurrence; | |||
| description | description | |||
| "Basic recurrence schedule specification, only applies when | "Basic recurrence schedule specification, which only | |||
| schedule:basic-recurrence feature is supported."; | applies when the schedule:basic-recurrence feature | |||
| is supported."; | ||||
| leaf schedule-id { | leaf schedule-id { | |||
| type string; | type string; | |||
| description | description | |||
| "The schedule identifier for this recurrence rule."; | "The schedule identifier for this recurrence rule."; | |||
| } | } | |||
| uses schedule:recurrence-basic { | uses schedule:recurrence-basic { | |||
| refine frequency { | refine frequency { | |||
| mandatory true; | mandatory true; | |||
| } | } | |||
| refine interval { | refine interval { | |||
| default 1; | default 1; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container icalendar-recurrence-schedules { | container icalendar-recurrence-schedules { | |||
| if-feature schedule:icalendar-recurrence; | if-feature schedule:icalendar-recurrence; | |||
| description | description | |||
| "Basic recurrence schedule specification, only applies when | "Basic recurrence schedule specification, which only | |||
| schedule:icalendar-recurrence feature is supported."; | applies when the schedule:icalendar-recurrence feature | |||
| is supported."; | ||||
| leaf schedule-id { | leaf schedule-id { | |||
| type string; | type string; | |||
| description | description | |||
| "The schedule identifier for this recurrence rule."; | "The schedule identifier for this recurrence rule."; | |||
| } | } | |||
| uses schedule:icalendar-recurrence { | uses schedule:icalendar-recurrence { | |||
| refine workweek-start { | refine workweek-start { | |||
| default monday; | default monday; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| list schedule-set { | list schedule-set { | |||
| key "schedule-name"; | key "schedule-name"; | |||
| description | description | |||
| "The list of schedule status for the backup tasks."; | "Schedule status list for the backup tasks."; | |||
| uses schedule:schedule-status-with-name; | uses schedule:schedule-status-with-name; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </section> | </section> | |||
| <section anchor="augments"> | <section anchor="augments"> | |||
| <name>Example: Schedule Network Properties to Change Based on Date and T ime</name> | <name>Example: Schedule Network Properties to Change Based on Date and T ime</name> | |||
| <t>Network properties may change over a specific period of time or based on a | <t>Network properties may change over a specific period of time or based on a | |||
| recurrence rule, e.g., <xref target="RFC9657"/>. | recurrence rule, e.g., <xref target="RFC9657"/>. | |||
| The following example module which augments the "recurrence-utc-with-periods" | The following example module, which augments the "recurrence-utc-with-periods | |||
| grouping from "ietf-schedule" module shows how a scheduled attribute | " | |||
| grouping from the "ietf-schedule" module, shows how a scheduled attribute | ||||
| could be defined.</t> | could be defined.</t> | |||
| <artwork><![CDATA[ | <!--[rfced] The example module in Appendix B references RFC 8345 but | |||
| no corresponding reference entry exists. May we add RFC 8345 under the | ||||
| Informative References section and update the running text as follows? | ||||
| Original: | ||||
| The following example module which augments the | ||||
| "recurrence-utc-with-periods" grouping from "ietf-schedule" module | ||||
| shows how a scheduled attribute could be defined. | ||||
| Perhaps: | ||||
| The following example module, which augments the | ||||
| "recurrence-utc-with-periods" grouping from "ietf-schedule" module, | ||||
| shows how a scheduled attribute could be defined. Note that | ||||
| [RFC8345] and this document are referenced in the module. | ||||
| --> | ||||
| <sourcecode type="yang"><![CDATA[ | ||||
| module example-scheduled-link-bandwidth { | module example-scheduled-link-bandwidth { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "http://example.com/example-scheduled-link-bandwidth"; | namespace "http://example.com/example-scheduled-link-bandwidth"; | |||
| prefix "ex-scattr"; | prefix "ex-scattr"; | |||
| import ietf-network { | import ietf-network { | |||
| prefix "nw"; | prefix "nw"; | |||
| reference | reference | |||
| "RFC 8345: A YANG Data Model for Network Topologies"; | "RFC 8345: A YANG Data Model for Network Topologies"; | |||
| } | } | |||
| import ietf-schedule { | import ietf-schedule { | |||
| prefix "schedule"; | prefix "schedule"; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Scheduling"; | "RFC 9922: A YANG Data Model for Scheduling"; | |||
| } | } | |||
| organization | organization | |||
| "Example, Inc."; | "Example, Inc."; | |||
| contact | contact | |||
| "Support at example.com"; | "Support at example.com"; | |||
| description | description | |||
| "Example of a module defining a scheduled link bandwidth."; | "Example of a module defining a scheduled link bandwidth."; | |||
| revision "2023-01-19" { | revision "2023-01-19" { | |||
| description | description | |||
| "Initial Version."; | "Initial version."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Scheduling."; | "RFC 9922: A YANG Data Model for Scheduling"; | |||
| } | } | |||
| grouping link-bandwidth-grouping { | grouping link-bandwidth-grouping { | |||
| description | description | |||
| "Grouping of the link bandwidth definition."; | "Grouping of the link bandwidth definition."; | |||
| leaf scheduled-bandwidth { | leaf scheduled-bandwidth { | |||
| type uint64; | type uint64; | |||
| units "Kbps"; | units "Kbps"; | |||
| description | description | |||
| "Bandwidth values, expressed in kilobits per second."; | "Bandwidth values, expressed in kilobits per second."; | |||
| skipping to change at line 2900 ¶ | skipping to change at line 2688 ¶ | |||
| leaf destination-node { | leaf destination-node { | |||
| type nw:node-id; | type nw:node-id; | |||
| description | description | |||
| "Indicates the source node identifier."; | "Indicates the source node identifier."; | |||
| } | } | |||
| leaf default-bandwidth { | leaf default-bandwidth { | |||
| type uint64; | type uint64; | |||
| units "Kbps"; | units "Kbps"; | |||
| description | description | |||
| "Bandwidth value used for perdiods that don't match | "Bandwidth value used for periods that don't match | |||
| a schedule."; | a schedule."; | |||
| } | } | |||
| choice time-variant-type { | choice time-variant-type { | |||
| description | description | |||
| "Controls the schedule type."; | "Controls the schedule type."; | |||
| case period { | case period { | |||
| uses schedule:period-of-time; | uses schedule:period-of-time; | |||
| } | } | |||
| case recurrence { | case recurrence { | |||
| uses schedule:recurrence-utc-with-periods { | uses schedule:recurrence-utc-with-periods { | |||
| augment "period-timeticks" { | augment "period-timeticks" { | |||
| description | description | |||
| "Specifies the attributes inside each | "Specifies the attributes inside each | |||
| period-timeticks entry."; | 'period-timeticks' entry."; | |||
| uses link-bandwidth-grouping; | uses link-bandwidth-grouping; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t><xref target="ex-13"/> shows a configuration example of a link's band | <t><xref target="ex-13"/> shows a configuration example in XML <xref tar | |||
| width that is | get="W3C.XML1.0"/> of a link's bandwidth that is | |||
| scheduled between 2025-12-01 0:00 UTC to the end of 2025-12-31 with a daily | scheduled between 2025-12-01 0:00 UTC to the end of 2025-12-31 with a daily | |||
| schedule. In each day, the bandwidth value is scheduled to be 500 Kbps between | schedule. In each day, the bandwidth value is scheduled to be 500 Kbps between | |||
| 1:00 AM to 6:00 AM and 800 Kbps between 10:00 PM to 11:00 PM. The bandwidth | 1:00 AM to 6:00 AM and 800 Kbps between 10:00 PM to 11:00 PM. The bandwidth | |||
| value that is not covered by the period above is 1000 Kbps.</t> | value that is not covered by the period above is 1000 Kbps.</t> | |||
| <figure anchor="ex-13"> | <!--[rfced] FYI, a normative reference to the XML specification has | |||
| been added because this document contains XML. | ||||
| See the IESG statement on "Guidelines for the Use of Formal | ||||
| Languages in IETF Specifications" | ||||
| (https://ietf.org/blog/guidelines-use-formal-languages-ietf-specifications/) - | ||||
| specifically "The use of a language requires a reference to the | ||||
| specification for that language. This reference is normative, and | ||||
| needs to fulfil the usual requirements for normative references | ||||
| (Section 7 of RFC 2026)." Please review where the XML specification | ||||
| is cited and let us know if you prefer otherwise. | ||||
| Original: | ||||
| Figure 24 shows a configuration example of a link's bandwidth that is | ||||
| scheduled between 2025-12-01 0:00 UTC to the end of 2025-12-31 with a | ||||
| daily schedule. | ||||
| Current: | ||||
| Figure 24 shows a configuration example in XML [W3C.XML1.0] | ||||
| of a link's bandwidth that is scheduled between 2025-12-01 0:00 UTC | ||||
| to the end of 2025-12-31 with a daily schedule. | ||||
| Normative Reference Entry: | ||||
| [W3C.XML1.0] | ||||
| Bray, T., Ed., Paoli, J., Ed., Sperberg-McQueen, C.M., Ed., Maler, | ||||
| E., Ed., and F. Yergeau, Ed., "Extensible Markup Language (XML) | ||||
| 1.0 (Fifth Edition)", W3C Recommendation, 26 November 2008, | ||||
| <https://www.w3.org/TR/2008/REC-xml-20081126/>. | ||||
| --> | ||||
| <figure anchor="ex-13"> | ||||
| <name>Example of Scheduled Link's Bandwidth</name> | <name>Example of Scheduled Link's Bandwidth</name> | |||
| <artwork><![CDATA[ | <sourcecode type="xml"><![CDATA[ | |||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <link-attributes | <link-attributes | |||
| xmlns="http://example.com/example-scheduled-link-bandwidth" | xmlns="http://example.com/example-scheduled-link-bandwidth" | |||
| xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule"> | xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule"> | |||
| <link> | <link> | |||
| <source-node>ne1</source-node> | <source-node>ne1</source-node> | |||
| <destination-node>ne2</destination-node> | <destination-node>ne2</destination-node> | |||
| <default-bandwidth>1000</default-bandwidth> | <default-bandwidth>1000</default-bandwidth> | |||
| <recurrence-first> | <recurrence-first> | |||
| <utc-start-time>2025-12-01T01:00:00Z</utc-start-time> | <utc-start-time>2025-12-01T01:00:00Z</utc-start-time> | |||
| skipping to change at line 2958 ¶ | skipping to change at line 2775 ¶ | |||
| <period-end>2160000</period-end> | <period-end>2160000</period-end> | |||
| <scheduled-bandwidth>500</scheduled-bandwidth> | <scheduled-bandwidth>500</scheduled-bandwidth> | |||
| </period-timeticks> | </period-timeticks> | |||
| <period-timeticks> | <period-timeticks> | |||
| <period-start>7920000</period-start> | <period-start>7920000</period-start> | |||
| <period-end>8280000</period-end> | <period-end>8280000</period-end> | |||
| <scheduled-bandwidth>800</scheduled-bandwidth> | <scheduled-bandwidth>800</scheduled-bandwidth> | |||
| </period-timeticks> | </period-timeticks> | |||
| </link> | </link> | |||
| </link-attributes> | </link-attributes> | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="ex-framework"> | <section anchor="ex-framework"> | |||
| <name>Examples of Using "ietf-schedule" Module for Scheduled Use of Resour ces Framework</name> | <name>Examples of Using the "ietf-schedule" Module for Scheduled Use of Re sources Framework</name> | |||
| <t>This section exemplifies how the architecture for supporting scheduled | <t>This section exemplifies how the architecture for supporting scheduled | |||
| reservation of Traffic Engineering (TE) resources in <xref target="RFC8413"/> might leverage the "period-of-time" | reservation of Traffic Engineering (TE) resources in <xref target="RFC8413"/> might leverage the "period-of-time" | |||
| grouping defined in the "ietf-schedule" module to implement scheduled use of | grouping defined in the "ietf-schedule" module to implement scheduled use of | |||
| resources.</t> | resources.</t> | |||
| <t>The following example module shows how a scheduled link capacity reserv ation | <t>The following example module shows how a scheduled link capacity reserv ation | |||
| could be defined.</t> | could be defined.</t> | |||
| <artwork><![CDATA[ | <sourcecode type="yang"><![CDATA[ | |||
| module example-sch-capacity-res { | module example-sch-capacity-res { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "http://example.com/example-sch-capacity-res"; | namespace "http://example.com/example-sch-capacity-res"; | |||
| prefix "ex-schecaparev"; | prefix "ex-schecaparev"; | |||
| import ietf-network-topology { | import ietf-network-topology { | |||
| prefix "nt"; | prefix "nt"; | |||
| } | } | |||
| import ietf-schedule { | import ietf-schedule { | |||
| skipping to change at line 3001 ¶ | skipping to change at line 2818 ¶ | |||
| type nt:link-id; | type nt:link-id; | |||
| } | } | |||
| leaf reserved-capability { | leaf reserved-capability { | |||
| type uint64; | type uint64; | |||
| units "Mbps"; | units "Mbps"; | |||
| } | } | |||
| uses schedule:period-of-time; | uses schedule:period-of-time; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t><xref section="4" sectionFormat="of" target="RFC8413"/> defines the ref erence architecture for scheduled use | <t><xref section="4" sectionFormat="of" target="RFC8413"/> defines the ref erence architecture for scheduled use | |||
| of resources, the service requester sends a request to a Path Computation Ele | of resources. The service requester sends a request to a Path Computation Ele | |||
| ment (PCE) and includes the | ment (PCE) and includes the | |||
| parameters of the Label Switched Path (LSP) that the requester wishes to supp | parameters of the Label Switched Path (LSP) that the requester wishes to supp | |||
| ly, the configuration | ly. The configuration | |||
| example to provide the scheduled resource is shown in <xref target="ex-14"/>. </t> | example to provide the scheduled resource is shown in <xref target="ex-14"/>. </t> | |||
| <figure anchor="ex-14"> | <figure anchor="ex-14"> | |||
| <name>Example of Scheduled Link's Bandwidth Reservation</name> | <name>Example of Scheduled Link's Bandwidth Reservation</name> | |||
| <artwork><![CDATA[ | <sourcecode type="xml"><![CDATA[ | |||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <link-capability-reservations | <link-capability-reservations | |||
| xmlns="http://example.com/example-sch-capacity-res" | xmlns="http://example.com/example-sch-capacity-res" | |||
| xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule"> | xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule"> | |||
| <scheduled-link-capacity> | <scheduled-link-capacity> | |||
| <schedule-id>1</schedule-id> | <schedule-id>1</schedule-id> | |||
| <link-id>1-2-1</link-id> | <link-id>1-2-1</link-id> | |||
| <reserved-capability>500</reserved-capability> | <reserved-capability>500</reserved-capability> | |||
| <period-start>2025-03-10T08:00:00Z</period-start> | <period-start>2025-03-10T08:00:00Z</period-start> | |||
| <period-end>2025-03-10T09:00:00Z</period-end> | <period-end>2025-03-10T09:00:00Z</period-end> | |||
| skipping to change at line 3035 ¶ | skipping to change at line 2852 ¶ | |||
| <duration>PT09:00:00</duration> | <duration>PT09:00:00</duration> | |||
| </scheduled-link-capacity> | </scheduled-link-capacity> | |||
| <scheduled-link-capacity> | <scheduled-link-capacity> | |||
| <schedule-id>3</schedule-id> | <schedule-id>3</schedule-id> | |||
| <link-id>2-1-1</link-id> | <link-id>2-1-1</link-id> | |||
| <reserved-capability>500</reserved-capability> | <reserved-capability>500</reserved-capability> | |||
| <period-start>2025-04-01T09:00:00Z</period-start> | <period-start>2025-04-01T09:00:00Z</period-start> | |||
| <period-end>2025-04-01T23:59:59Z</period-end> | <period-end>2025-04-01T23:59:59Z</period-end> | |||
| </scheduled-link-capacity> | </scheduled-link-capacity> | |||
| </link-capability-reservations> | </link-capability-reservations> | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section numbered="false" anchor="acknowledgments"> | <section numbered="false" anchor="acknowledgments"> | |||
| <name>Acknowledgments</name> | <name>Acknowledgments</name> | |||
| <t>This work is derived from the <xref target="I-D.ietf-opsawg-ucl-acl"/>. | <t>This work is derived from <xref target="I-D.ietf-opsawg-ucl-acl"/>. The | |||
| There is a desire | re is a desire | |||
| from the OPSAWG to see this model be separately defined for wide use in sched | from the OPSAWG to see this module separately defined for wide use in schedul | |||
| uling context.</t> | ing context.</t> | |||
| <t>Thanks to Adrian Farrel, Wei Pan, Tianran Zhou, Joe Clarke, Steve Baill | <t>Thanks to <contact fullname="Adrian Farrel"/>, <contact fullname="Wei P | |||
| argeon, Dhruv Dhody, Robert Wilton, and Italo Busi | an"/>, <contact fullname="Tianran Zhou"/>, <contact fullname="Joe Clarke"/>, <co | |||
| ntact fullname="Steve Baillargeon"/>, <contact fullname="Dhruv Dhody"/>, <contac | ||||
| t fullname="Robert Wilton"/>, and <contact fullname="Italo Busi"/> | ||||
| for their valuable comments and inputs to this work.</t> | for their valuable comments and inputs to this work.</t> | |||
| <t>Many thanks to the authors of <xref target="I-D.ietf-tvr-schedule-yang" />, <xref target="I-D.ietf-opsawg-scheduling-oam-tests"/>, and <xref target="I-D .ietf-netmod-eca-policy"/> | <t>Many thanks to the authors of <xref target="I-D.ietf-tvr-schedule-yang" />, <xref target="I-D.ietf-opsawg-scheduling-oam-tests"/>, and <xref target="I-D .ietf-netmod-eca-policy"/> | |||
| for the constructive discussion during IETF#118.</t> | for the constructive discussion during IETF#118.</t> | |||
| <t>Other related efforts were explored in the past, e.g., <xref target="I- D.liu-netmod-yang-schedule"/>.</t> | <t>Other related efforts were explored in the past, e.g., <xref target="I- D.liu-netmod-yang-schedule"/>.</t> | |||
| <t>Thanks to Reshad Rahman for the great YANG Doctors review, Mahesh Jetha | <t>Thanks to <contact fullname="Reshad Rahman"/> for the great YANG Doctor | |||
| nandani for the AD review, Per Andersson for the OPSDIR review, | s review, <contact fullname="Mahesh Jethanandani"/> for the AD review, <contact | |||
| Peter Yee for genart review, and Acee Lindem for the rtgdir review.</t> | fullname="Per Andersson"/> for the OPSDIR review, | |||
| <t>Thanks to Éric Vyncke, Erik Kline, and Mike Bishop for the IESG review. | <contact fullname="Peter Yee"/> for the GENART review, and <contact fullname= | |||
| </t> | "Acee Lindem"/> for the RTGDIR review.</t> | |||
| </section> | <t>Thanks to <contact fullname="Éric Vyncke"/>, <contact fullname="Erik Kl | |||
| ine"/>, and <contact fullname="Mike Bishop"/> for the IESG review.</t> | ||||
| <!-- [rfced] Please review the language set for each instance of sourcecod | ||||
| e | ||||
| in the MD file to ensure correctness. If the current list of preferred | ||||
| values for languages | ||||
| (https://www.rfc-editor.org/rpc/wiki/doku.php?id=sourcecode-types) | ||||
| does not contain an applicable language, then feel free to let us know. | ||||
| Also, it is acceptable to leave the language not set. | ||||
| --> | ||||
| <!-- [rfced] RFC 6991 has been obsoleted by RFC 9911. May we replace RFC | ||||
| 6991 with RFC 9911? If yes, this will include updating the references in the | ||||
| YANG module. | ||||
| --> | ||||
| <!-- [rfced] Please review the "Inclusive Language" portion of the online | ||||
| Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
| and let us know if any changes are needed. Updates of this nature typically | ||||
| result in more precise language, which is helpful for readers. | ||||
| Note that our script did not flag any words in particular, but this should | ||||
| still be reviewed as a best practice. | ||||
| --> | ||||
| </section> | ||||
| </back> | </back> | |||
| <!-- ##markdown-source: | <!-- ##markdown-source: | |||
| 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 | |||
| ub/byZVltw35qhbNFIf3fFk2sJ/j2Ho2cV2LTr8scdKQj9EFkGIqLF+jwVFw | BLG7BnJpknziwx80UWzuzfU+EyW8+HPVEzVuL8AFFA3ZbMk17bn7I5rgF8rE | |||
| LWwYEQgXzBhpSHlLLfUScZavtNbSp9aJFuNEmMJslozTGF1Sq2ufGu08ZdNG | pwbB7kgXliKxpRKCLk1j9O6HU+yxRjDrUIuLyEenGIVFUknlGe6gG6UcUNAB | |||
| eXAcFdTXJMNqpOXwdaeFa2BjXceS4JQ4lkwdnimdUoh2sKpeaYWnLFUtb6VX | F5Zq0BHo0kF8bKQERjkq6+eICTKspvKqk2UMAIStxjZyFUlZvBwOw+3aGdq2 | |||
| Cti3MCvUTrlXo8K3Tl3uZozSJrjfhoxSe3lsM3OBJXd7O3ZdRkF/4ca34ozG | hRNeU/YygK+TWTXDFvivuUGkiRA8nvx0HNKA7uQk8xhviJlVs1daXjCD1HP1 | |||
| NwfrINdANqbVhnr60YHLMi5bIFIdqT2vO1J2pzw3k1NPjLkpUkBbmy5O14yE | jzQepeBpb8dRDsx4yfQLd6r2ud9Mt3KWQn5sbD7ZhHdnzLYKA+U956k6lGdB | |||
| aVqbWio1HXCeXEJXFFJTS2tbKhXsg9SiyfF/pBTA5h/nMq2LJmoxAhWliWe9 | oEM8qptXtj4Vmqw1V1dgaZ6qVH2TSVBVlVvpvtqqeJMV7J3LXxRKXOmQpF3x | |||
| hms2qMiHx9CR9cajJY+StLPd91Y4Jr5qrbztjcZRDa+2t8zi2MjQK+TDu3CN | hnHdlDpS9a7hcBIlJNfDHi5AAi4kJV5XEd4rK/u2kndpBGWGIOdHvEuJP0jL | |||
| GOfm2N9wr3VzRIASQJHz0rAH+6C7g47p7hj0QjA5/dgCs3K3iGrAAw0JaSD+ | lxaZSQEYxqTCVyXqqkS3UtHnq/s5rxmTNVoJoym6reChWYAIteUd0hfLPV7I | |||
| c8QnTag5kf64+CCeJYXucb2rfu26Oo4KDdAt/bNlJ0rAmzHCQYczauLehz1n | 1YeMnHcZsIJ4VrRmfHlOVmiyIbXxjtg4FiFupSLQZrWuzDLpNKmXSOlK7S2+ | |||
| VibOYr/rhAQk6cUlSsIbNoo49hH1RQ6CUNPcGQzp3M6EX8vdoGIy2t/ZfHie | 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 | |||
| jmpg58MHQCco8pbaKVlaGGAVxN1I7atdL6VJhZDlEYabiXM762zuH2xuRocv | KmXsOnUrqpGFwqkjOFaRpLIiV4uqkZKsadVx5Upl0WiU5bgDsWjk3Fv/refA | |||
| etEf46zGEs7DHheVVkkQ3asO1Py11XxbtV//Pkn/rg5INgadUwWGQCa+HPRK | Jbq0hWR52DQj+0EyqqZkyy2w2AG5Zt2pyZlyh7322q1zhYoHtX77hjxHa3iD | |||
| IDizJKm0WZUWZHY60fsqVEG8GbF7cbXTdXMCd5WZg1TQDeilbRph90AIpxs6 | LlqjLaSkVCf+1oU88+gaROYbfppjmZJYm3var+yyjW2Ff7qLz2OZ4lkiVcyS | |||
| xIG33aPLNIsfyOy6fL+320jejC257u4Q/ndGeIX/6fZubmS79fbwbGvTbe3N | giqXySt8XQFTYfFItF9keUtbtfOYK51RqV3WdAu7zDBlZ4k/YDUhrBZ9G40W | |||
| 7cDzrx349SK6NlF/OIi+QoqBhaimye+7P0jRBatKNJn8jXzNdh3fJPoLppYn | XYZv3EqsIpayqOYGwtiVvcPR3xPn0o6VEWQZp/RMsQ1m9cxbshh1UhoywGOG | |||
| I6MLLOSsYfWg84Otsug8qWAfZs1Z8n0ylT+/a9Vn6AlZI11jIeMvQdEehUYr | qjOXi+ei1XpRmwMypQtZ5oQ5Z8FedQZu7ePbVOES+1BjM7tlpdXY2wgtaqOP | |||
| UmjnbhTaWEWy7zqBWaGLCXcaZ55v3WG96LyuuNqCFSGiHaSmCAn3w2EzlN6E | nI1OlcCxh4fgEdt5qBSrUQn7X1WLE1RmXNKOms/fHykdlbpGwgwQmSp1y0sv | |||
| vKOSEDJUP+DLbh1NDov3wG132L3smeWbRkG/cLco7u7aTzZTB4hpAww1/WNh | m1AwInQ6BLCdyhbIme4NtyC1E/68TSLqRyajtqqlwqFfZqNsKktgYWdRgbXT | |||
| GZv8xY/AKeUpBhI9wWrWeOcbJVUb26bGQ6sxjgjNj5NRQufzQlUPlyz+lmcD | Tl6/egGnB1YyPhjsYYlW4nRnl/abw529HTg1CHDA4oohxGZ/S9YDzhDrNBhj | |||
| mjV3rkWFl+Y/1dqYu3zS8mF/uIWLPtQtA6sxVItxyjmM6BLmgxNzzSjpstvm | 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 | ||||
| AQA= | ||||
| --> | --> | |||
| </rfc> | </rfc> | |||
| End of changes. 220 change blocks. | ||||
| 1369 lines changed or deleted | 1193 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||