[netmod] AD review of draft-ietf-netmod-schedule-yang-05
Mahesh Jethanandani <mjethanandani@gmail.com> Thu, 15 May 2025 00:13 UTC
Return-Path: <mjethanandani@gmail.com>
X-Original-To: netmod@mail2.ietf.org
Delivered-To: netmod@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id F2D3428B26D5; Wed, 14 May 2025 17:13:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jV730X4l2au1; Wed, 14 May 2025 17:13:15 -0700 (PDT)
Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id EC1C928B26CE; Wed, 14 May 2025 17:13:12 -0700 (PDT)
Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-74294fa4bb5so588888b3a.1; Wed, 14 May 2025 17:13:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747267991; x=1747872791; darn=ietf.org; h=to:cc:date:message-id:subject:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=3AAJzvjGU74/hF0zZiSTHtdRUND90VveB7BsWdigyp8=; b=gGDgXPqsmfEWt2lMvrXhFbtZPZQubPExiLwOG3+mDudnR3Ag6ZqHiy5d6pv96mjy8T Z/D5b4yF6C+CBXZa/BPy2qIfacmXimOd6AjGd5cZ7xBqJNQr0EfKmnG2jp2nByShRo39 rBRCfWu0NYzi2NUbhGORx6hk9+UFNC34XnZRF2ZHRLMgZlhrwZIO4d6npNNmvvCPsLOz LPSQicGI3mjOP2LvyCe0jbFv3Dl9oOOurwYLD9W7PRDoc/o2f4xxQL8Lq8X/PDFJdxg2 LyNb0yGXAliH81g7RBnoUkG+TIGCeQ49OV3p+4otjgIkwRvLx0nICN+Wn6BB8ZjU+C4u HEMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747267991; x=1747872791; h=to:cc:date:message-id:subject:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=3AAJzvjGU74/hF0zZiSTHtdRUND90VveB7BsWdigyp8=; b=BkZqnj2Hcb6h5BkKUiv7YNbPUkfGbhoYXo+344NSu6TppvZtIgkqxPkWqGlOQaZYxA o+N3QD4pqSdcuZqHOllNDa1Vtd1WbSu7CP5zkIRNyeje/P7A64WzOrA+pfBDjfgGsacM H9pLIOWGvfT3ywKvButgtOSA8dgKlSTgOAe4U2KM43D+VsBgu4K1XbYW7L3AOu9gzfHN aMOxxI63WhJVuF8t/DyzvYeof8xC64tPXj3NS/XGFE6PGjw4BXoMiwUyFBcRAwu/c2k0 BWn6kJ+K/ba58A6CKeLNiOl6J5po00nmvMtC2TNLYuAwAWCVKiWdid1Qxej0cy8PHCa5 aiHw==
X-Gm-Message-State: AOJu0YzHnK3l4ZKql0nDKUKv4Bd7aa77TEQI8QHyLg6iCuGCtee+vr+t vZa/7mCkTHZV/3Ahc9qaIs5jHYD2FxBvt6dlGULp4uyEim/NKAkdFzS2Mw==
X-Gm-Gg: ASbGncv2Yw5AuvRkGelq/ZY8p0rzPPx2omHChhvNTEvFXdD6Jccs3enPy2uKqhYXmwM gNf6i2oT3BUIL1F9kZb775SlmmUZzUh6ui/jzkZyEWRyv7voEV5exKFvZphdxtn/DCW6YJsULFB JPQRdbzXbc5f7J4Nlb1cMatKB+2QaDKFQKjccsDKvEgnP5at0yVtAJB+JIT4B3xuqfLfkIlf1x9 BkKiN5PzLzBI4qCKAL6x8U9DWVG2rH0EYLQtPWObf/fJCNkP6lr9rPVOW/dJiuIM7emhktLb98H pCmYE69Fw+2R1dXUlep+YLCKhqIJNLuBtW9xgKWZW4i+ovD3eOhDyTfkMKULnu4qQIMjMuhzEfx ++P5WjEZTxpfz5fQAIPNh9UzrPkSvTrHb0SY=
X-Google-Smtp-Source: AGHT+IE05OPriS8mtzdLn+KXiwzvQnDbmKs4tbnCDfkQF5HfNL/7MitdV2+/qv55MkNDhyUhsUY3jg==
X-Received: by 2002:a05:6a00:854:b0:736:6202:3530 with SMTP id d2e1a72fcca58-7428936aba5mr6825996b3a.22.1747267990778; Wed, 14 May 2025 17:13:10 -0700 (PDT)
Received: from smtpclient.apple (c-69-181-169-15.hsd1.ca.comcast.net. [69.181.169.15]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74237761069sm10135589b3a.76.2025.05.14.17.13.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 May 2025 17:13:10 -0700 (PDT)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4995DD19-17F6-45C8-9010-FD172D70B9F2"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\))
Message-Id: <6B6D6FCD-9FD8-464A-B2B0-72978EC129CA@gmail.com>
Date: Wed, 14 May 2025 17:13:08 -0700
To: draft-ietf-netmod-schedule-yang@ietf.org
X-Mailer: Apple Mail (2.3654.120.0.1.15)
Message-ID-Hash: 3W4END7HHKYFZ3XEPQL2LEVFRIVKMXQY
X-Message-ID-Hash: 3W4END7HHKYFZ3XEPQL2LEVFRIVKMXQY
X-MailFrom: mjethanandani@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-netmod.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: NETMOD Group <netmod@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [netmod] AD review of draft-ietf-netmod-schedule-yang-05
List-Id: NETMOD WG list <netmod.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/eC9SEDOxuY8vaQRTHIdCzCtyf6k>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Owner: <mailto:netmod-owner@ietf.org>
List-Post: <mailto:netmod@ietf.org>
List-Subscribe: <mailto:netmod-join@ietf.org>
List-Unsubscribe: <mailto:netmod-leave@ietf.org>
I would like to thank the authors for working on this document. I think it is a much-needed piece of work. I will also note that the several set of examples the authors have provided as part of the document have been truly helpful. Thank you!
I want to call out the review done by Reshad from a YANG doctor's perspective. Thanks for combing through the details.
Here are some of my comments on the document. Hope they go towards improving the document further.
"Abstract", paragraph 0
> This document defines a common schedule YANG module which is designed
> to be applicable for scheduling purposes such as event, policy,
> services, or resources based on date and time. For the sake of
> better modularity, the module includes a set of recurrence related
> groupings with varying levels of representation (i.e., from basic to
> advanced) to accommodate a variety of requirements. It also defines
> groupings for validating requested schedules and reporting scheduling
> status.
The document defines common types and groupings for scheduling purposes. It is defining these groupings to be used in some other context, such as events, policy, services, etc. In other words, it is not defining a "scheduling" module per se, as the abstract asserts. Can that be made explicit by saying something like?
"This document defines common types and groupings that are meant to be used for scheduling purposes by events, policy, or resources based on date and time."
Section 1, paragraph 0
> This document defines a common schedule YANG module ("ietf-schedule")
> that can be used in several scheduling contexts, e.g., (but not
> limited to) [I-D.ietf-opsawg-ucl-acl],
> [I-D.ietf-opsawg-scheduling-oam-tests], and
> [I-D.ietf-tvr-schedule-yang]. The module includes a set of reusable
> groupings which are designed to be applicable for scheduling purposes
> such as event, policy, services or resources based on date and time.
> It also defines groupings for validating requested schedules and
> reporting scheduling status.
I am not an expert on the use of "date and time" in implementations and how operators use them, but this model does raise the question of whether the document should use one definition of 'date-and-time' along with offsets rather than allow the definition of local time and timezone. Having support for the latter means any use of 'date-and-time' in the model has to check whether a timezone has been specified or not, except when it is within "recurrence-utc". It would also greatly simplify the number of groupings by getting rid of *-with-time-zone groupings. Finally, RFC 9557 says this for Local Time.
Because the daylight saving rules for local time zones are so
convoluted and can change based on local law at unpredictable times,
true interoperability is best achieved by using Coordinated Universal
Time (UTC). This specification does not cater to local time zone
rules.
Section 3.3.1, paragraph 3
> grouping period-of-time:
> ...
> grouping recurrence-basic:
> ...
> grouping recurrence-utc:
> ...
> grouping recurrence-with-time-zone:
> ...
> grouping recurrence-utc-with-periods:
> ...
> grouping recurrence-time-zone-with-periods:
> ...
> grouping icalendar-recurrence:
> ...
> grouping schedule-status:
> ...
> grouping schedule-status-with-name:
> ...
Is there a way to not show the groupings that are not being discussed in this section, or are discussed elsewhere? If other groupings need to be referenced, a reference to the section would probably be better.
Section 3.3.1, paragraph 5
> The "time-zone-identifier" parameter, if provided, specifies the time
> zone reference [RFC7317] of the local date and time values. This
> parameter MUST be specified if any of the date and time values are in
> the format of local time. It MUST NOT be applied to date and time
> values which are specified in the format of UTC or time zone offset
> to UTC.
If this is a MUST, why is the parameter not marked mandatory? And because of that, it shows up as optional in the tree diagram.
I also note that I read the thread on GitHub about providing a default and mandatory statement. I wish the discussion had been had on the mailing list and not in GitHub, lest somebody else had comments. I do agree with Qiufang that the default statement and mandatory statement should be provided where applicable. I also note that Reshad brought up a similar point in his YANG doctors' review. If the grouping is reused in multiple places, those definitions for default or mandatory can be refined for the local purpose. Putting them in a description statement does not make it normative. Further, is it not that configured values override default values, and not the other way around?
Section 3.3.1, paragraph 5
> 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 schedule can be started to execute by a system and takes
> precedence over similar attributes that are provided at the schedule
> instance itself.
Looking at this definition and the example in A.1, it is not entirely clear what the difference between 'validity' and 'max-allowed-end' is, other than the fact that one is a 'discard-action' and the other is a 'warning'. Is it that one is allowed to be scheduled but ignored when the validity is not true, while in the other case it is not even scheduled?
Section 3.3.2, paragraph 1
> The "period-of-time" grouping (Figure 2) represents a time period
> using 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 ("duration"). For the first format, the
> start of the period MUST be no later 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 forever
> or as a one-shot schedule. 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 also considered as a one-shot
> schedule.
If no end date and time or a duration is specified, how does one distinguish between it being a last forever schedule or a one-shot schedule?
Section 3.3.4, paragraph 5
> The "duration" parameter specifies, in units of seconds, the time
> period of the first occurrence. Unless specified otherwise (e.g.,
> described in the "description" statement), the "duration" also
> applies to subsequent recurrence instances. When unspecified, each
> occurrence is considered as immediate completion or hard to compute
> an exact duration.
Two comments. A description statement is hardly a place to specify how the parameter should be treated. Can we make it normative that duration applies to subsequent recurrence instances?
Also, the last statement is not clear to me. Did you mean to say that if duration is unspecified, it is hard to compute the exact duration and therefore is treated as immediate completion?
The same comment applies to the grouping 'recurrence-with-time-zone'.
Section 3.3.4, paragraph 5
> The repetition can be scoped by a specified end time or by a count of
> occurrences, indicated by the "recurrence-end" choice. The value of
> the "count" node MUST be greater than 1, the "start-time-utc" value
> always counts as the first occurrence.
Can the model carry a must statement to enforce the count value greater than 1? The same comment applies to other groupings where 'count' parameter is used.
"Appendix A.", paragraph 0
> This section provides some examples to illustrate the use of the
> period and recurrence formats defined in Section 6. The following
> modules are used for illustration purposes:
It would help to explain what each example is doing in this section.
-------------------------------------------------------------------------------
NIT
-------------------------------------------------------------------------------
All comments below are about very minor potential issues that you may choose to
address in some way - or ignore - as you see fit. Some were flagged by
automated tools (via https://github.com/larseggert/ietf-reviewtool) so there
will likely be some false positives. There is no need to let me know what you
did with these suggestions.
Section 3.3.9, paragraph 0
> The "schedule-status" and "schedule-status-with-name" groupings
> (Figure 9) define common parameters for scheduling management/status
> exposure. The "schedule-status-with-name" grouping has the same
> structure as "schedule-status" but with an additional parameter to
> identify a schedule "schedule-id". Both structures are defined in
> the module to allow for better modularity and flexibility.
Would it better to call the grouping "schedule-status-with-id"?
"A.1.", paragraph 0
> Figure 10 illustrates the example of a requested schedule that needs
> to start no earlier than 08:00 AM, January 1, 2025 and end no later
> than 8:00 PM, January 31, 2025 (Beijing time). Schedule requests
> that fail to meet the requirements are ignored by the system as
> indicates by "discard-action".
s/indicates/indicated/
Section 1.1, paragraph 5
> on. Frequency: Characterizes the type of a recurrence rule. Values are taken
> ^^^^^^^^^
If "type" is a classification term, "a" is not necessary. Use "type of". (The
phrases "kind of" and "sort of" are informal if they mean "to some extent".).
Section 2, paragraph 9
> * "schedule-type": Indicates the type of a schedule. The following types are
> ^^^^^^^^^
If "type" is a classification term, "a" is not necessary. Use "type of". (The
phrases "kind of" and "sort of" are informal if they mean "to some extent".).
Section 3.3.1, paragraph 7
> ng'. Is it that one is allowed to scheduled but ignored when the validity is
> ^^^^^^^^^
The verb after "to" should be in the base form as part of the to-infinitive. A
verb can take many forms, but the base form is always used in the
to-infinitive.
"I", paragraph 2
> rmat, the start of the period MUST be no later the end of the period. If neit
> ^^
Did you mean "not"?
Section 9, paragraph 15
> ription "Example of a module defining an scheduled based backup operation.";
> ^^
Use "a" instead of "an" if the following word doesn't start with a vowel sound,
e.g. "a sentence", "a university".
Section 9, paragraph 18
> specification, only applies when schedule:basic-recurrence feaure is suppor
> ^^^^^^^^
The conjunction "when" requires the past participle "scheduled". Or did you
mean "you schedule"?
Section 9, paragraph 20
> specification, only applies when schedule:icalendar-recurrence feaure is su
> ^^^^^^^^
The conjunction "when" requires the past participle "scheduled". Or did you
mean "you schedule”?
Thanks
Mahesh Jethanandani
mjethanandani@gmail.com
- [netmod] AD review of draft-ietf-netmod-schedule-… Mahesh Jethanandani
- [netmod] Re: AD review of draft-ietf-netmod-sched… maqiufang (A)
- [netmod] Re: AD review of draft-ietf-netmod-sched… Kent Watsen
- [netmod] Re: AD review of draft-ietf-netmod-sched… maqiufang (A)
- [netmod] Re: AD review of draft-ietf-netmod-sched… Kent Watsen
- [netmod] Re: AD review of draft-ietf-netmod-sched… mohamed.boucadair