Last Call Review of draft-ietf-netconf-restconf-client-server-38
review-ietf-netconf-restconf-client-server-38-opsdir-lc-lindblad-2024-08-28-00
| Request | Review of | draft-ietf-netconf-restconf-client-server-38 |
|---|---|---|
| Requested revision | 38 (document currently at 45) | |
| Type | IETF Last Call Review | |
| Team | Ops Directorate (opsdir) | |
| Deadline | 2024-08-30 | |
| Requested | 2024-08-15 | |
| Requested by | Mahesh Jethanandani | |
| Authors | Kent Watsen | |
| I-D last updated | 2026-06-04 (Latest revision 2025-12-04) | |
| Completed reviews |
Yangdoctors IETF Last Call review of -04
by Andy Bierman
(diff)
Secdir Telechat review of -40 by Daniel Migault (diff) Yangdoctors IETF Last Call review of -38 by Andy Bierman (diff) Opsdir IETF Last Call review of -38 by Jan Lindblad (diff) Tsvart IETF Last Call review of -38 by Joerg Ott (diff) Genart IETF Last Call review of -38 by Linda Dunbar (diff) |
|
| Comments |
This document was supposed to form part of a 9 document cluster. Seven of those 7 documents are needed for "stack" grouping that this document uses. Those "stack" grouping map roughly to the stacks in the OSI layer, with this document being part of the application layer. References to the "stack" groupings will be found in this and other referenced documents. |
|
| Assignment | Reviewer | Jan Lindblad |
| State | Completed | |
| Request | IETF Last Call review on draft-ietf-netconf-restconf-client-server by Ops Directorate Assigned | |
| Posted at | https://mailarchive.ietf.org/arch/msg/ops-dir/v5mwXv7e56vlC0_iE89xthWof48 | |
| Reviewed revision | 38 (document currently at 45) | |
| Result | Ready | |
| Completed | 2024-08-28 |
review-ietf-netconf-restconf-client-server-38-opsdir-lc-lindblad-2024-08-28-00
This is my review of OPSDIR draft-ietf-netconf-restconf-client-server-38.
I have reviewed this document as part of the Operational directorate's ongoing
effort to review all IETF documents being processed by the IESG. These
comments were written with the intent of improving the operational aspects of
the IETF drafts. Comments that are not addressed in last call may be included
in AD reviews during the IESG review. Document editors and WG chairs should
treat these comments just like any other last call comments.
First, a big thank you to Kent for pulling this work through to completion, and
building such a well-structured collection of documents. This has clearly been
a big effort executed with great precision over a long period.
I can only think of two minor remarks to make.
#1) Free floating groupings
The document defines a collection of server and client YANG groupings, and also
defines optional top level containers to hold instances of these groupings. The
top level containers are optional to allow additional flexibility:
* The reason for why "restconf-server-app-grouping" exists separate
from the protocol-accessible nodes definition is so as to enable
instances of restconf-server-app-grouping to be instantiated in
other locations, as may be needed or desired by some modules.
As always, there is a bit of tension between standards and flexibility,
however, as standards are essentially constraints on the infinite flexibility
of chaos. The document could perhaps do a little more to encourage implementers
to leverage the standard path for this restconf-server (and the same goes for
-client) YANG structure. There is an interoperability price to pay every time a
custom path is “needed or desired”.
#2) Future extensibility catch-22
These documents have been designed for future extensibility in an exemplary
way. In particular, the ietf-restconf-client module is prepared for the day
when HTTPS might not be relevant any more. When that happens, a server may
simply stop advertising the https-initiate feature.
feature https-initiate {
description
"The 'https-initiate' feature indicates that the RESTCONF
client supports initiating HTTPS connections to RESTCONF
servers. This feature exists as HTTPS might not be a
mandatory to implement transport in the future.";
reference
"RFC 8040: RESTCONF Protocol";
}
Further down the initiate container contains connection parameters that are
independent of the particular transport protocol used. Unfortunately, however,
the entire container initiate is predicated on the https-initiate feature.
container initiate {
if-feature "https-initiate";
presence
"Indicates that client-initiated connections have been
configured. This statement is present so the mandatory
descendant nodes do not imply that this node must be
configured.";
This means all these parameters for client-initiated connection are only valid
if HTTPS is supported after all. I think a separate feature for support for
client-initiated connections, regardless of protocol, would have been better
prepared for the future.
There is an analogous construct for container listen and features “http-listen
or https-listen”.