| 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 96?> | |||
| <!-- [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 | ||||
| --> | ||||
| <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 110?> | |||
| <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 Information Base (MIB) | <t><xref target="sec-mib"/> discusses the relationship with the Management Information 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> | |||
| <t>"schedule-status-*" refers to any of "schedule-status", "schedule-statu s-with-time-zone", and "schedule-status-with-name".</t> | ||||
| </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: This type is used for a schedule that triggers an a ction that has either the duration specified as 0 or the end time specified as t he same as the start time, and then the schedule will disable itself (<xref sect ion="3.3" sectionFormat="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 246 ¶ | |||
| <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 schedule | <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 and thus executed independently from when it ends, and it take s precedence 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 start is already passed).</t> | conflicting with existing schedules, or being out-of-date (e.g., the expected start has already passed).</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, schedule requests | |||
| that would prevent validation by admins of some critical systems, etc.</t> | that are too short and that would thus prevent validation by admins of some c | |||
| ritical 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 | <t>Note that, per <xref section="4.13" sectionFormat="of" target="I-D. | |||
| etf-netmod-rfc8407bis"/>, neither a "default" | ietf-netmod-rfc8407bis"/>, no "default" | |||
| nor a "mandatory" substatement is defined here for both "frequency" and "inter | substatement is defined here for both "frequency" and "interval" | |||
| val" | parameters because there are cases (e.g., profiling) where using these stateme | |||
| parameters because there are cases (e.g., profiling) where using these stateme | nts is problematic. No "mandatory" substatement is defined here for the same rea | |||
| nts is problematic. | son. | |||
| 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 defined | <t>The recurrence instances are specified by the union of occurrences defined | |||
| by both the recurrence rule and "period-timeticks" list. This list uses | 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="RFC9911"/>. 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 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 490 ¶ | |||
| +-- 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 541 ¶ | |||
| +-- 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 | and a "byyearweek" is specified. Note that, per <xref section="4.13" sectionF | |||
| rmat="of" target="I-D.ietf-netmod-rfc8407bis"/>, neither a "default" | ormat="of" target="I-D.ietf-netmod-rfc8407bis"/>, no "default" | |||
| nor a "mandatory" substatement is defined here because there are cases (e.g., | substatement is defined here because there are cases (e.g., profiling) | |||
| profiling) | where using these statements is problematic. No "mandatory" substatement is d | |||
| where using these statements is problematic. | efined here for the same reason. | |||
| 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"> | <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 623 ¶ | |||
| +-- 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 655 ¶ | |||
| <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 793 ¶ | |||
| </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 | <t>This module imports types defined in <xref target="RFC9911"/> and <xref | |||
| target="RFC7317"/>.</t> | target="RFC7317"/>.</t> | |||
| <sourcecode markers="true" name="ietf-schedule@2025-05-30.yang"><![CDATA[ | <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 9911: 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 926 ¶ | |||
| 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 950 ¶ | |||
| } | } | |||
| 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 1105 ¶ | |||
| 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 1238 ¶ | |||
| 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 1314 ¶ | |||
| } | } | |||
| 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 1382 ¶ | |||
| 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 1408 ¶ | |||
| + " 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 1489 ¶ | |||
| 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 1535 ¶ | |||
| 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 1585 ¶ | |||
| 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 1638 ¶ | |||
| 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 1667 ¶ | |||
| 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, | |||
| reuising the following groupings will expose privacy-related information:</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"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
| <front> | 231.xml"/> | |||
| <title>Definitions of Managed Objects for Scheduling Management Oper | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| ations</title> | 119.xml"/> | |||
| <author fullname="D. Levi" initials="D." surname="Levi"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwae | 174.xml"/> | |||
| lder"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
| <date month="January" year="2002"/> | 950.xml"/> | |||
| <abstract> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| <t>This memo defines a portion of the Management Information Base | 545.xml"/> | |||
| (MIB) for use with network management protocols in the Internet community. In pa | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
| rticular, it describes a set of managed objects that are used to schedule manage | 317.xml"/> | |||
| ment operations periodically or at specified dates and times. [STANDARDS-TRACK]< | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
| /t> | 911.xml"/> | |||
| </abstract> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| </front> | 341.xml"/> | |||
| <seriesInfo name="RFC" value="3231"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
| <seriesInfo name="DOI" value="10.17487/RFC3231"/> | 688.xml"/> | |||
| </reference> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| <reference anchor="RFC2119"> | 020.xml"/> | |||
| <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> | |||
| <references anchor="sec-informative-references"> | <references anchor="sec-informative-references"> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="I-D.ietf-opsawg-ucl-acl"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
| <front> | ietf-netmod-eca-policy.xml"/> | |||
| <title>A YANG Data Model and RADIUS Extension for Policy-based Netwo | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
| rk Access Control</title> | ietf-netmod-rfc8407bis.xml"/> | |||
| <author fullname="Qiufang Ma" initials="Q." surname="Ma"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
| <organization>Huawei</organization> | ietf-ntp-ntpv5.xml"/> | |||
| </author> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
| <author fullname="Qin Wu" initials="Q." surname="Wu"> | ietf-opsawg-scheduling-oam-tests.xml"/> | |||
| <organization>Huawei</organization> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
| </author> | ietf-opsawg-ucl-acl.xml"/> | |||
| <author fullname="Mohamed Boucadair" initials="M." surname="Boucadai | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
| r"> | ietf-tvr-schedule-yang.xml"/> | |||
| <organization>Orange</organization> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | |||
| </author> | liu-netmod-yang-schedule.xml"/> | |||
| <author fullname="Daniel King" initials="D." surname="King"> | <reference anchor="W3C.XML1.0" target="https://www.w3.org/TR/2008/REC-xm | |||
| <organization>Lancaster University</organization> | l-20081126/"> | |||
| </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.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"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 345.xml"/> | ||||
| </references> | </references> | |||
| </references> | </references> | |||
| <?line 1637?> | <?line 1715?> | |||
| <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[ | <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 1985 ¶ | |||
| 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"> | <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 2190 ¶ | |||
| "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 2254 ¶ | |||
| }, | }, | |||
| { | { | |||
| "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 2289 ¶ | |||
| 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 "2026-02-20" { | |||
| 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 2407 ¶ | |||
| 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 | " | |||
| could be defined.</t> | grouping from the "ietf-schedule" module, shows how a scheduled attribute | |||
| <artwork><![CDATA[ | could be defined. Note that <br/> | |||
| <xref target="RFC8345"/> and this document are referenced in the modul | ||||
| e.</t> | ||||
| <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 "2026-02-20" { | |||
| 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 2529 ¶ | |||
| 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"> | <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 2587 ¶ | |||
| <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 2630 ¶ | |||
| 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 2664 ¶ | |||
| <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> | |||
| <t>Thanks to <contact fullname="Éric Vyncke"/>, <contact fullname="Erik Kl | ||||
| ine"/>, and <contact fullname="Mike Bishop"/> for the IESG review.</t> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| <!-- ##markdown-source: | <!-- ##markdown-source: | |||
| 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 | |||
| /OOzNyfH+PvpHw6fP9e/dKTF6R9e/fj82Pxmvjx69eLFyctj/hieRs6jTvfF | QGCXCYKXlOMivbCpL/kYz69xx4DCQILUKGSADBBQ2CYlBPyDamhhnZd/WVx/ | |||
| 4U/wBqHqvnp99uzVy8Pn3QbCaXGYkkA/SApQflB+xGVHMSliZd8fvf4//3u4 | +bIxEGTA8YPZrov8Q4qkXtIUcgJopuRjAh+l09voKr8BnZX2VH0PR5zmxokT | |||
| Iyxtazh8BFuW/9gfPtyBP2A9Mx4tz2DV+E9A4U0HljGJkSSIrkbxPK1AnPVQ | 0SzSGeqnNGJJy4Vl4vcek9DMg+FQnyNo0SEQMx7t5GN/WoCIRqPNghJOskIG | |||
| LJbAdrIIKQEW/nd/Rcz87SB6fD6aD3eeyAOcsPNQ4cx5SDhrPml8zEgMPAoM | rrouEdULprA2BbAuuIqtc6UnidaZEQGbgG3Z3xluE6qAXR6hVM54/5Auj7Ws | |||
| o7HpPPcw7cJ7+JPzt8K79fDxtyA8kqg/3P/2SUf2PqvZxMeF7sqb2Xk+ZfYK | LfF4JBEYkRFakWXUPf3h7Lzb43+jV6/p97cnf/rhxduTY/z97A+HL1/qXzrS | |||
| NhkItPgC+BjvJSNi8HNhZ9s7myRlXE5SKxlIyhys7yzN8ml+cePKqVPhWNs4 | 4uwPr394eWx+Mz2PXp+enrw65s7waeR81OmeHv4I3yBUYOOev3j96vBll7Fu | |||
| Pi7qw0e7qrvE9IYqQWnLI7MvsWvckG+0yh0VwJEPOmh+TcDiIT2ZnrHSAzRB | n1o8JMybgNcnBYgy5ANx2VGkRgT53dGb//O/hztCmKPh8DEgnv/YHz7agT9Q | |||
| Gsk8Rt0+oz3K+jo+JX0J9IVTmDvpPhaMg/3B7kBDuru7swvkh5+TCgsEfImi | T+HZ8mx2K38C9m87wPOSuMBRYlBwxvF1WgFb6iGLK4F4sugKjjxg8zd/Qcz8 | |||
| 6goI+kg8AZYhwBAIN9Ic2IIaORdq9tE69Gie91jQXIIeteFNKjPfEHMERQLk | dBA9uRhfD3eeyge4YOdDhTPnQ8JZ85NGZ0Zi4KPANBqbzucepl14D390/lZ4 | |||
| UUlCyBnWHQgEv4+dhtmie0Y97Smpd9noBj87uozRukuYYRN/v5lr2ecOG/1F | tz588gxYQBL1h/vPQNtidYsVJzqNclzL2/lFPuNDAvYzsKX4EqixjFimKEaB | |||
| BAFudVjCjG2Z7lPYSV1GiEsFg+3BcNNF8ADGRLNMRHPPWkFeK6O9EkIAMhA/ | 3YUot3e2iFe4PLlWnIwEM+zvPM3yWX5563IbUQejbZwfN/XR493QcMjZS5ut | |||
| DA/IQ9TecrTgAATUEcHynSKnRomAjMACmeRYDCDKbFmMYU/dU9h2L4+f/9QF | GD0VxwYLq/NWa1BRQQYN2spTME9J7aHPWHoBUZBouY5RVcvoOLL6hZ+y8APt | |||
| E9F9bfQu6AzUCGDJVUo2vygotjGDeFAmC5BvUoBhjYuj6cVdl2c4mQyW5sg4 | HhZPQswCcrA/2B1oUHd3d3aB/rA76SNAwVfIcUDNT4/EbWPpdQxBeZ2M0ylI | |||
| liJQ+IT/Kfx0nsmkA+RRJaAQM3UoQVgaJMFTsjGaSydYLluX8NnLs5M3f0HG | Yhxx4ECdZiDh8Jd1GNF83mN+AWZNteEtKjN9SJSBPAC2UhIvcaZ1JwL+7WOn | |||
| fsdl7A5BRiD3IRuluFGLxfuJ/wB2jr33pAWwkLpKpAX/4bW4BNWL32f0u3ld | oYXqkVHcPic5naHFjb6PGI2JpEj/LluMmrliYe600Z/jWZ0w8VSwhRmrpsQb | |||
| jQBRpzdgo8waaKJFu2EsXeZg0SEAStOlp8DZlE5u9EJ7ZS2m5qsVX0XoAsVG | n8Nx6jJSXFIYbA+GWy6SBzAvatrCZXvWLvJ+GVWEkALQgZbBMAE3R0Gco1IO | |||
| r67Q+kquwSRG5TSXPz+RJhg9TciyKeXtRP78pFm1r4eO0bs6I++qMtDY6DAr | YKC4j6LxDFQE2AfiODbYJGtjAFNWjNpKTavrnsHZe3X88scuaP3u10aEwmAg | |||
| 2fA9EPTYYaycGqjsFHk8ugT7NBclK531fHeC7ZsoXV6B3ZkR0FWFGAp7LaJ1 | EYAvVyk5aUTW2Nop4kLpoEDCSTEG0AHJmmbcvXmBiwGLPToynsAIZLcwQYWf | |||
| ofWk6E/Td8mGLVfIUQFAxMjbaRnH6QTWiQ0dGhkk+3UeKdx4Qommb7CitLSo | zgtZdIBEqgR0G6YQIT/ZOI0o+ObmKkXtr0GwjOly4Va+eHV+8vbPyOXvuZ3d | |||
| S2D0DcRd9SJVLlvnJb4lAkHIhahhWT48xnWJa7DlI7b3H+tF+iSqnm00wS/q | YZc4Eemexa3aMz5a/Aewdhy8Jy2AndRVIi34D6/FFQhT/j6j383X1RjwdXYL | |||
| PSv70Zl2eD3TnEKWm3xh7WvdatY4S2+kouFECgtd7Y7AoboHwF3GKIcaTFy1 | eue8gS3au1tG1lWORmtsdBf6FNiS0rKMpLc32GJwvsLX1fo9K7P93wDKrOnJ | |||
| Y3+FJWgZeAvjIB0nyLMi+vkaWHDSB0FVHdCXegddg1kZiW2O243tdtlu6KJI | EvMboZT1+yGZ9lHZ7v89zxIlbYOt0KfQJZ0Bne0I4OsPqM4nN2BmoaqTy59g | |||
| SYmnxavZmjVaO7LVzUhwm4hnwnrN3rpZQkpdFRcVNWB9EN5ljh+AQQEbnVwn | bX0DjZ4npCeX8u1U/vyiRYav1UzQjz8nP75S+FmFXWDREuZwwFiZymihFHk8 | |||
| aVUm0wni1GJcimux8bwx0JMDvpvmY29qKbIKftNnMWT7Ecq0ZDnFE1wfbiB6 | vgKbJxfNPJ33fCPVtnhLl2XhcGYGdG/i7oRtYbCU+TwlRX+Wvk82bPlG5i8A | |||
| CUgEL2HRtL7lPp7nZYr+VIMMJCf2x0zA+OHOiG2NwYBCXqhbpsjceVnH7Kpk | EaOIIRKapFPYJFabaWbQMG7ySOHGE47s/NBYOSDM/SaKugRG30DcVV+kys3v | |||
| 4PAFATQm9wiQNQjBCmkW+aaZpNkFYlESWaQlSy1mvJZv050yWNg285nFN6jc | fInfEnEi5KyWxjVYhRFbjnpnWAa5ejf8or4f8L6ea//JC82hZI/JtdK+wa2a | |||
| MwDABcSbyYIlQuZnFo8bKVcd8/IJ4oC5fLmBiELfkNsJavbwOIPde0G8DJh0 | sbPfRiIbDqiWbigTp+oeAFeboAz0BIhqxWavJeIZdAvJIJencaHcX78Fxg9E | |||
| lhRuP2OAA9ruE3IfRYcveFFhR2hJr7ZEU7cxyoYWmqxJeuqOXvZ1Jbl6WkKx | f5VXB+xDogHTkvmscBHnEIvBh/gQa1COPJq/cGoSxuekZhtJ803i8FuRoDsR | |||
| 9NGj6n2IfrDmRmTvmLsVo/UkQ5IFDAnxwm/KUYW/o+1XXuJvPBQvnjCBG3Ko | i9f9mt1B8Kn6vYrRfQbt+JhW6FizjUxxwKVsy6dVmcymiG2LhSr+yZbZxkAv | |||
| kDJr+dIjpAIWanpcmhcS0FU6RoNUK4H+fP2Vl6mh9ysuxn3e4Qqrp1rxEFsX | HCRBmk/al83f91k82qZqmZaV+OpkwevDDcQTQYtwJiw110fux9d5maJv3iAH | |||
| KVWxS2CO8xzFATk10PMnzpKLJEsK9mtfxwXaKBHL9aQoUKFLSvRpbZC9x/OJ | KY7t/mmUyWDESidglSMQumWKiiXv/IQdYwwffkEwTcgIB3IH+VzhEpCXm9Wa | |||
| A75rnDrSDTpNR6NkXikyzkAzAFtf/IEosRl2lELEq81hZfSDFm7Mq9HXdW+c | 09G+YovvuKsGO86WbvP4Fo0PBgC4g/jOWN5FyBTNTnIj5RZi+TJFHLDkKTcQ | |||
| WktOzahp5qn5tj+P0QLraldbkkF30liYTz7pI4vQbfixaeYuXTrSDeFFsFVd | UeiBcAdBywM+zuBUXxKPA8GRJYU7zgTggLb7hNzH0eEp7y4cGq2EqFPTVL2M | |||
| OW3w72A7VJpp6P7PwP6dT6qf23rmrxjG0h+mP66C3+lB2r+ufnY+Dkp31R5f | HqRlOSu6njamd35dSdOelposEfWsjhBpnlUWLaJa6VGTDGkXMCRUDL8pdwj+ | |||
| urN3NmZdonPDe+TPVpwcwVZ4Otf1yUBa4Jg46InyvaJUFT+kGMbisSVi/IoJ | jrZpeYW/8VS8ecInbslsJ13b8t5GSAUsaPW8tC4kIDC7a1iq1lH99fo7L0tD | |||
| rZUuFH0q8gT6oO4PwZpHhVdInzWPS/gPDql3iGwaUK3YFkC+fZlM59GkLlDU | H0tcTPp84hVWzxydSLiB4qjAP69zFBMIDuo9yiS/TLKkYC/qTVxkdJSY7IsC | |||
| kLZYV/lMuYXt44YiB+5A7IGNsWWHb9hZ22nD4kmqfYIovSjnffROyNoZy0Zb | dc2kRM/JBtmjvJ444CnFpSPdoIduPE6uK0XGoAoUSVyK1wm1CIYdpROxc3Mp | |||
| ssgc0wslFqmPpCKNX3kRSaKd3+AnjKQJH90uPgqD9fif8NMxGm/UAjGrRV/3 | Hn2vhR6zc/SoPBgz1xJV83JaeWr69q9jtBC72qGTZDCcNBb+k09JW9Ft+GPT | |||
| ++J0J/3128j6wfNsObTFZoa+mW/DhApsD+Ad4Dt6hVSlvyBQgb87vcIPnjcd | zN26dKwbwhfBVnXltMG/g+08RcnuUv29bWTuxTCW/jT9SRXspydp71393ekc | |||
| IHL7gFwiV/3JLH7fJ/U6GfdJ5fh2+SdpdutPrFFgA367AmCu6DAzUjKsSCaM | lPqqPX7prv5nUAt9MpAWOCdOeqI8fCh6xdslhrv4BYkYv2FCa6ULRZ+KPIE+ | |||
| +Q8H0Vdq/SMKO/l9d61lDdaiM2x1Sh5h0MO7Ftu2VqVrH8dZz7VPTCs4L3NS | aPjDqCQlXEiflZMr+A9OqU+IHBpQudhEQb59lcyuo2ldoKjp8LVfPlfOR9u3 | |||
| o6oiBnWAtK0ZHreRQM1F11SDkW7mWATQXlPiwEASWviuadmL0olmDj2L2MVL | XeTAHYg9rHrZg8O1+bUXL1OdFETqZXndR/+J7J4xu7SpjewxvVSCkcZIKjIE | |||
| Tgoxfg70SsYSqCPsIHi4PXwIlonMYpqPlI9Z7TlxYYi6oEfEXskBem5r2ikf | 1J0WybSLW+zCaJryvd/iqxfYkf8JPxFeICAEHaMURy2gsxr1235fvLyk4j6L | |||
| lElvoX5oX4kZxuda2JrHpS0uB9HKuaqPMlklDXYp/onCgcQeglA/iX48OyIr | rB8Mk5BYAGxmSJ1ZOKyswPYA5wF+R18hgekeBDOwemdU+KFra8RyH7BMlKu7 | |||
| QSMjn0yQF0C/8MrCtto0FoZdnHpwxBNsodwkihSwOzImRLmwlGswRGgMOj4d | zOOPfdLAk0mftI9ny7uk2Z27WLPAWXy2AmCuFDErUuIMDDrags6ng+gbRQh8 | |||
| J+z6lK7RHC/ZRBFO5PSIetp5wrYA4yR5D5KrQqyOQRPNxmQKT0jpAfsFTQDm | 4f277lrLHqyZU3KOzc+qoh6j+t61WLm1PV1DMvbFkNVCe/S0+vMqJyWrKmJQ | |||
| 6hU5SMFIBxubKAD1a+KN6SwlK78CbnNeV4nFArXEkYMaY9YotyKbSKzYCy+k | FkgXm+PND4nbXFRSNS1pbo5JAe31lAMDU4gWLOB6UTrVrKPn+h9wDFKfsTvb | |||
| TlVDlBVg4wAebAULT9qJVEZK6sqgbOQgEsgnlcnRIrNq+JAdbjZeZf5jawGB | waSssGfj0fbwEZg2sopZDvzQPY/iexFlQs+Io5L79sLWy9OpMq/FOGuMQ2dO | |||
| uTxo8KSuzeN5OfkAB1qns3qGX+C/5sSO5kHweGLoMKRGXssciwRPZHk3EA2m | jDe+W8HWPC8df7kUVa5hfavGCmtwSH2WLUDsGQjz0+iH8yMyKTQu8ukU2QQM | |||
| RckkqOfqcw0epeRpP0jiAuh9wfRLd6o2H20nWZllJI2NoZxPiEUQ6QHhGShv | C19ZyFbHyN5916XjghFPsYVy7ShKwOHI5BDNw9K8wWShOegOb5Kw31aG5kA5 | |||
| OU/Voew2rzPkhO2r2pwGTdSap8v826cptkM6Cer6soNuq+5Hr/OyTM9JE8IW | HpgX5oyIStyFWDs4Elk6oCkmH0G4VbTyCWirGVLJ7JbtcooxSCs0FUoWVvBH | |||
| pZIGPVJWajl0dCJHemK7NPA3iVNSjGDrlqBElEKFF3WMJ3HKO6h0BxpB2XH4 | Rb5eMPTBTid6QF2cuGg6T8lTUAE7uqgrG8FaOsWVa1tpDynbVWwECNekQVVD | |||
| Gbmgk/fiN9BaB+lQ5wnZQHWFyj7RrFhKfEw+5/Vikka/xBSmM74BXJYgoDY0 | lCtgEgFaLGWsF+EVMFHOWIlomZUtIkQK+dYyue1irg6AsOPQxrPChLWhwH42 | |||
| tkEYWVtFTjrJ52bFbiCetPIICNMBWR22G4VzqHnFF3hoTPt7mri6F4CX53x8 | G1yra4sD3l6+lYTW6byeYw/811wi0UIIHk9iHYZ0zhtZZJHgJSEfDo7uKEom | |||
| 0VQ5mTbRC53XUzylJiVSq2AABSpo41nKLscyB4oG4Vyh7i7glcq3q9Vk3yLy | Sb1Wn4nwLCUvezOJCyD/Bcsv3aXanLadhGWVkTQ2VnY+JY5BpAiEaKC84zrV | |||
| tGOxjAzx+e1tRXNeKT3TuEBRSaC9Ja4V7VJVnpkQW4nW1TjMrja0B6ilGe6T | gHL6AgMic2zf2eZSaLHWWl0R0b5UMTbSadA4kFN1V/sgepOXHFHFLUolIHqk | |||
| DVr3uIVThbtkf0iWXFBMHjfU7qH1rvq1u2GC3TQPY4HaU+6AotKH0TxTpRNk | 29R8YNywhp4YOw0cTuOUNClgRSXoHKVQ4mUd49WicnEqDYNmUIYfBRGhOz35 | |||
| ub/byZVltw35qhbNFIf3fFk2sJ/j2Ho2cV2LTr8scdKQj9EFkGIqLF+jwVFw | KL4GraSQynWRkNFUV2gdEN2KacW3t9e8Z0zW6JeJZ7CeyS0gswShtaHRDQLK | |||
| LWwYEQgXzBhpSHlLLfUScZavtNbSp9aJFuNEmMJslozTGF1Sq2ufGu08ZdNG | Oi/Ikm/J1TebmQnpZkCrm4AxHTTUYUtT+IdaWHwZI+PA2WeJq6v1mqopk2Ws | |||
| eXAcFdTXJMNqpOXwdaeFa2BjXceS4JQ4lkwdnimdUoh2sKpeaYWnLFUtb6VX | 7jRzvq0RFoi+9byeCTe8LkgR1UocwIUq3gSONKmpZQ6EDiK8Qv1fAC6Vz1qr | |||
| Cti3MCvUTrlXo8K3Tl3uZozSJrjfhoxSe3lsM3OBJXd7O3ZdRkF/4ca34ozG | 2r5V5WnYYl0ZevTb26rqdaU0VeNeRVWCjpy4Z7S7Vnl3QtwmWlfzMBfb0F6k | |||
| NwfrINdANqbVhnr60YHLMi5bIFIdqT2vO1J2pzw3k1NPjLkpUkBbmy5O14yE | lmZ4dMhzErfwr/CI7FLJkksKEeWG2sO03lW/djdMdJbmbCx2e5ZfThiALFQp | |||
| aVqbWio1HXCeXEJXFFJTS2tbKhXsg9SiyfF/pBTA5h/nMq2LJmoxAhWliWe9 | Dlnun3/yhtltQ+6uRQvF6T13mA3s1/jGXkxdb6UzLsuhNOS29HYiXeS7bOyF | |||
| hms2qMiHx9CR9cajJY+StLPd91Y4Jr5qrbztjcZRDa+2t8zi2MjQK+TDu3CN | DSMC4YKJ51V7ZS0dFHGWr7TXMqbWnBbjhEdM5/Nkksbo1VpdRdVol0sx3UY5 | |||
| GOfm2N9wr3VzRIASQJHz0rAH+6C7g47p7hj0QjA5/dgCs3K3iGrAAw0JaSD+ | gRw91Vc3w7qm5UN2l4V7YGNdDDreIQ57UleDSvEUoh2sqnzqIZfrn3dSPgXq | |||
| c8QnTag5kf64+CCeJYXucb2rfu26Oo4KDdAt/bNlJ0rAmzHCQYczauLehz1n | exkh6sg8qAnSaue67M6Yt80VPAuZt/aG2QbrApvw7hbxusyCTsiNZ+Lhxm8O | |||
| VibOYr/rhAQk6cUlSsIbNoo49hH1RQ6CUNPcGQzp3M6EX8vdoGIy2t/ZfHie | 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 | |||
| jmpg58MHQCco8pbaKVlaGGAVxN1I7atdL6VJhZDlEYabiXM762zuH2xuRocv | wqZidQ0b8Bspdksl7f7b6UsgJa5HZ0ra6mKOmGqcy9Xxeybn0P7w9oVSi7qN | |||
| etEf46zGEs7DHheVVkkQ3asO1Py11XxbtV//Pkn/rg5INgadUwWGQCa+HPRK | wboi0Lb39vfJIoTWB1HnIFq5Dm2nI2NhjcMjrrZKIzDwZ9/DoDAjffRq8/Bb | |||
| IDizJKm0WZUWZHY60fsqVEG8GbF7cbXTdXMCd5WZg1TQDeilbRph90AIpxs6 | iTJUGQ8JOoqZRLB0IdyBQYBd3RdrL5f3xoRThVAw0hi9y/xPav8xdva2RluE | |||
| xIG33aPLNIsfyOy6fL+320jejC257u4Q/ndGeIX/6fZubmS79fbwbGvTbe3N | HWxxELk/sC4PIaem7iBQC+4ur147HmgcWueBM87qSNed3lCt3QMfombDtyqk | |||
| 7cDzrx349SK6NlF/OIi+QoqBhaimye+7P0jRBatKNJn8jXzNdh3fJPoLppYn | 0J1SlRDsdPr9fnQBJI4kecLCgA66xbufc2DqWxV9I49Uv6kxKtyqtawsfq0c | |||
| I6MLLOSsYfWg84Otsug8qWAfZs1Z8n0ylT+/a9Vn6AlZI11jIeMvQdEehUYr | kQGQqEHxxdhsViPNyMMfFHnm2ZVEgiKzsO7qJXgzcmo2O8WeQTc9d6xqo12Y | |||
| UmjnbhTaWEWy7zqBWaGLCXcaZ55v3WG96LyuuNqCFSGiHaSmCAn3w2EzlN6E | lNOoiunZCUgpC8tloJAdaUCBaaRTElEHdgFoISFphvP3CQP9Ibm+llR4RmfH | |||
| vKOSEDJUP+DLbh1NDov3wG132L3smeWbRkG/cLco7u7aTzZTB4hpAww1/WNh | weam9MbyupuBkcjVJIWUu8lH/KqmTzte4WW7trTp4VSJpp0xr8IX5wp33FoH | |||
| GZv8xY/AKeUpBhI9wWrWeOcbJVUb26bGQ6sxjgjNj5NRQufzQlUPlyz+lmcD | LW15VHvQ8OW7O1iLs6wdn6MHw+cohM/Rg6AzmAzUXXgzwnjxurcfbN3bQTra | |||
| mjV3rkWFl+Y/1dqYu3zS8mF/uIWLPtQtA6sxVItxyjmM6BLmgxNzzSjpstvm | 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 | /i+0ESVwz2Mgvl8ixEJ2UE0M1nmmCxC6UhgRMSsFVrYtnc+TCVZ5ByWYvZiU | |||
| lMpZASCUgvnl9PTIU2h0mhTPnFG0MaRTgqYrqYUpS4Q5kgN2gccpDYLg/J5a | 11plFTtYAfPbDc+JwX04szriSibwn5UrtGpnS5OJUw4W1U75VqDZKID5nYWY | |||
| X0UvJPsiiUl7HpQvSSXiEbnrUjd41tZud/miW6vIZ0uLmI7VuKqTcvXW18k4 | f6vnbsE3WKAhbO+2Y5sCdkQHQTXisfzKWwAb0NPJJDUfHmJDnyvvSgLZVXZg | |||
| u0376hJWc/XmkyJtUp+eO1+qt6YvBB2iz+HmIoa3lFqHt1GZt8gUbVMRdg52 | x7Oag/inR6z6G/jOzVxtTsYoxFxcSsd8Omxf3X+7hvKRzu5rQ4C6wPbB7mP4 | |||
| SNavgz670TMhjVbkp61qD5Gli67N4bbJe6pVPXaVgS9L0K7Q9/ThoJDdg2nb | X1Ak7K64r4LElu11nS6hnd5b6VyxWEBdYLjV0M5wLBEnRmZQMhTNOLdB4XMk | |||
| QvYWglzd/rdWelPRzZb+bWfTIw+00KxPHqmGQ/3JcKh/29K/bevfdvRvu/q3 | s0UCr5Kb6EcwfVehg912j9JdScIjh+Guwyh9vncOXw7d75exUljX/8B1dVel | |||
| PWcQ70q/NZozd5HKgqYgeQ5vS55MOCf61r8toL0gsKAzf8uhaPe2rp2NnUPN | I872FDr38hEFpSNhbQUIZm9VgrkrS/adVCEqetRORRxbx6XpmJyqm5y1DtoM | |||
| ABqzEeSOs4pLhnfDLdDu6CTI1k6RwJeQ5dAPWDMUSbH/TeKQO6P6hIZjASz3 | CmeuFBvBEZF0ttlI4Ew6TpWQbZfGdvSfParwi7ddmPuQUEa8ihWKPdhk5ELq | |||
| jXO/sPm9Rfy2KCXpLCTS9a4Oty3rlkP9iiYCl2/bO1hKF1sBuoiNu+CUkUas | Lxhmdfazt8hp91W8iOA633psKYdfxXNGrTyH1mzxHFdh1fmDoP1fBGbjgGpo | |||
| 6tAsy+I1sZN/60B6xX/GrI5hJk2btzE1WPyIjhSEE8EqR8TievDfLfrvDvyX | GNucmarbazQRzXd7Z0QNlK+qt3zMXRpywZi7nHFMj0n//hQ4Co/UUTgxKp11 | |||
| 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 | ||||
| --> | --> | |||
| </rfc> | </rfc> | |||
| End of changes. 220 change blocks. | ||||
| 1370 lines changed or deleted | 933 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||