rfc9922v4.txt   rfc9922.txt 
skipping to change at line 1448 skipping to change at line 1448
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-or-self(../../frequency,"
+ "'schedule:secondly')) or (current() < 100)) and " + "'schedule:secondly')) or (current() < 100)) and "
+ "(not(derived-from(../../frequency," + "(not(derived-from-or-self(../../frequency,"
+ "'schedule:minutely')) or (current() < 6000)) and " + "'schedule:minutely')) or (current() < 6000)) and "
+ "(not(derived-from(../../frequency,'schedule:hourly'))" + "(not(derived-from-or-self(../../frequency,"
+ " or (current() < 360000)) and " + "'schedule:hourly')) or (current() < 360000)) and "
+ "(not(derived-from(../../frequency,'schedule:daily'))" + "(not(derived-from-or-self(../../frequency,"
+ " or (current() < 8640000)) and " + "'schedule:daily')) or (current() < 8640000)) and "
+ "(not(derived-from(../../frequency,'schedule:weekly'))" + "(not(derived-from-or-self(../../frequency,"
+ " or (current() < 60480000)) and " + "'schedule:weekly')) or (current() < 60480000)) and "
+ "(not(derived-from(../../frequency," + "(not(derived-from-or-self(../../frequency,"
+ "'schedule:monthly')) or (current() < 267840000)) and " + "'schedule:monthly')) or (current() < 267840000)) and "
+ "(not(derived-from(../../frequency,'schedule:yearly'))" + "(not(derived-from-or-self(../../frequency,"
+ " or (current() < 3162240000))" { + "'schedule:yearly')) 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 = 1 s (secondly), statement translate to 100 = 1 s (secondly),
skipping to change at line 1534 skipping to change at line 1534
range "0..23"; range "0..23";
} }
description description
"Specifies a list of hours of the day."; "Specifies a list of hours of the day.";
} }
list byday { list byday {
key "weekday"; key "weekday";
description description
"Specifies a list of days of the week."; "Specifies a list of days of the week.";
leaf-list direction { leaf-list direction {
when "derived-from(../../frequency, 'schedule:monthly') or " when "derived-from-or-self(../../frequency, "
+ "(derived-from(../../frequency, 'schedule:yearly') " + "'schedule:monthly') or "
+ " and not(../../byyearweek))"; + "(derived-from-or-self(../../frequency,"
+ "'schedule:yearly') 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.";
skipping to change at line 1569 skipping to change at line 1570
"Specifies a list of days of the month."; "Specifies a list of days of the month.";
} }
leaf-list byyearday { leaf-list byyearday {
type int32 { type int32 {
range "-366..-1|1..366"; range "-366..-1|1..366";
} }
description description
"Specifies a list of days of the year."; "Specifies a list of days of the year.";
} }
leaf-list byyearweek { leaf-list byyearweek {
when "derived-from(../frequency, 'schedule:yearly')"; when "derived-from-or-self(../frequency, 'schedule:yearly')";
type int32 { type int32 {
range "-53..-1|1..53"; range "-53..-1|1..53";
} }
description description
"Specifies a list of weeks of the year."; "Specifies a list of weeks of the year.";
} }
leaf-list byyearmonth { leaf-list byyearmonth {
type uint32 { type uint32 {
range "1..12"; range "1..12";
} }
skipping to change at line 2354 skipping to change at line 2355
A.5. The "recurrence-with-time-zone" Grouping A.5. The "recurrence-with-time-zone" Grouping
Figure 17 indicates a recurrence of every 2 hours for 10 occurrences Figure 17 indicates a recurrence of every 2 hours for 10 occurrences
that lasts 10 minutes and starts at 3 PM on December 1, 2025 in New that lasts 10 minutes and starts at 3 PM on December 1, 2025 in New
York: York:
{ {
"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
} }
} }
Figure 17: Simple Schedule with Recurrence with Time Zone Indication Figure 17: Simple Schedule with Recurrence with Time Zone Indication
A.6. The "recurrence-utc-with-periods" Grouping A.6. The "recurrence-utc-with-periods" Grouping
skipping to change at line 2381 skipping to change at line 2382
{ {
"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
} }
] ]
} }
} }
Figure 18: Example of Recurrence With Date Times Figure 18: Example of Recurrence With Date Times
A.7. The "recurrence-time-zone-with-periods" Grouping A.7. The "recurrence-time-zone-with-periods" Grouping
Figure 19 indicates a recurrence that occurs every 30 minutes and Figure 19 indicates a recurrence that occurs every 30 minutes and
lasts for 15 minutes from 9:00 AM to 5:00 PM and two extra lasts for 15 minutes from 9:00 AM to 5:00 PM and two extra
occurrences at 6:00 PM and 6:30 PM with each lasting for 20 minutes occurrences at 6:00 PM and 6:30 PM with each lasting for 20 minutes
on 2025-12-01 (New York): on 2025-12-01 (New York):
{ {
"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",
"period": [ "period": [
{ {
"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",
skipping to change at line 2434 skipping to change at line 2435
Figure 19: Example of Advanced Recurrence Schedule Figure 19: Example of Advanced Recurrence Schedule
A.8. The "icalendar-recurrence" Grouping A.8. The "icalendar-recurrence" Grouping
Figure 20 indicates 10 occurrences at 8:00 AM (EST) every last Figure 20 indicates 10 occurrences at 8:00 AM (EST) every last
Saturday of the month starting in January 2024: Saturday of the month starting in January 2024:
{ {
"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"
} }
] ]
skipping to change at line 2459 skipping to change at line 2460
Figure 20: Simple iCalendar Recurrence Figure 20: Simple iCalendar Recurrence
Figure 21 is an example of a recurrence that occurs on the last Figure 21 is an example of a recurrence that occurs on the last
workday of the month until December 25, 2025, starting January 1, workday of the month until December 25, 2025, starting January 1,
2025: 2025:
{ {
"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-01T00:00:00"
}, },
"frequency": "ietf-schedule:monthly", "frequency": "ietf-schedule:monthly",
"until": "2025-12-25", "until": "2025-12-25T23:59:59",
"byday": [ "byday": [
{ {
"weekday": "monday" "weekday": "monday"
}, },
{ {
"weekday": "tuesday" "weekday": "tuesday"
}, },
{ {
"weekday": "wednesday" "weekday": "wednesday"
}, },
skipping to change at line 2533 skipping to change at line 2534
Figure 23 indicates the scheduled recurrence status of Figure 22 at Figure 23 indicates the scheduled recurrence status of Figure 22 at
the time of 12:15 PM on 2025-12-01 (UTC): the time of 12:15 PM on 2025-12-01 (UTC):
{ {
"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": "2025-12-01T12:20:00Z"
],
"upcoming-occurrence": [
"2025-12-01T12:20:00Z"
]
} }
} }
Figure 23: Example of a Schedule Status Figure 23: Example of a Schedule Status
At the time of 12:15 PM on 2025-12-01 (UTC), the recurring event At the time of 12:15 PM on 2025-12-01 (UTC), the recurring event
occurred at (note that the occurrence at 10:20 AM is excluded): 9:00, occurred at (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, and 12:00. The last 9:20, 9:40, 10:00, 10:40, 11:00, 11:20, 11:40, and 12:00. The last
occurrence was at 12:00, and the upcoming one is at 12:20. occurrence was at 12:00, and the upcoming one is at 12:20.
skipping to change at line 2801 skipping to change at line 2798
<?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> <start-time-utc>2025-12-01T01:00:00Z</start-time-utc>
</recurrence-first> </recurrence-first>
<frequency>schedule:daily</frequency> <frequency>schedule:daily</frequency>
<utc-until>2025-12-31T23:59:59Z</utc-until> <utc-until>2025-12-31T23:59:59Z</utc-until>
<period-timeticks> <period-timeticks>
<period-start>360000</period-start> <period-start>360000</period-start>
<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>
 End of changes. 18 change blocks. 
34 lines changed or deleted 31 lines changed or added

This html diff was produced by rfcdiff 1.48.