Skip to main content

IETF Last Call Review of draft-ietf-netconf-yp-transport-capabilities-07
review-ietf-netconf-yp-transport-capabilities-07-tsvart-lc-black-2026-09-04-00

Request Review of draft-ietf-netconf-yp-transport-capabilities
Requested revision No specific revision (document currently at 07)
Type IETF Last Call Review
Team Transport Area Review Team (tsvart)
Deadline 2026-09-08
Requested 2026-08-25
Authors Qin Wu , Qiufang Ma , Alex Huang Feng , Thomas Graf
I-D last updated 2026-09-10 (Latest revision 2026-08-17)
Completed reviews Yangdoctors Early review of -01 by Jan Lindblad (diff)
Opsdir Early review of -03 by Xiao Min (diff)
Yangdoctors IETF Last Call review of -05 by Jan Lindblad (diff)
Opsdir IETF Last Call review of -05 by Xiao Min (diff)
Tsvart IETF Last Call review of -05 by Tommy Pauly (diff)
Secdir IETF Last Call review of -06 by Christian Huitema (diff)
Genart IETF Last Call review of -07 by Susan Hares
Secdir IETF Last Call review of -07 by Christian Huitema
Tsvart IETF Last Call review of -07 by David L. Black
Assignment Reviewer David L. Black
State Completed
Request IETF Last Call review on draft-ietf-netconf-yp-transport-capabilities by Transport Area Review Team Assigned
Posted at https://mailarchive.ietf.org/arch/msg/tsv-art/uTq9gafP2O9OGBMJfVGWqFUyoPw
Reviewed revision 07
Result Almost ready
Completed 2026-09-04
review-ietf-netconf-yp-transport-capabilities-07-tsvart-lc-black-2026-09-04-00
This document has been reviewed as part of the transport area review team's
ongoing effort to review key IETF documents. These comments were written
primarily for the transport area directors, but are copied to the document's
authors and WG to allow them to address any issues raised and also to the IETF
discussion list for information.

When done at the time of IETF Last Call, the authors should consider this
review as part of the last-call comments they receive. Please always CC
tsv-art@ietf.org if you reply to or forward this review.

The authors do not appear to have revised the draft to respond to Tommy Pauly's
review of the -05 version, so I'm incorporating that review by reference:
(https://datatracker.ietf.org/doc/review-ietf-netconf-yp-transport-capabilities-05-tsvart-lc-pauly-2025-10-09/).

Like Tommy, I want to preface my review by making it clear that I'm not a YANG expert.
However, I do understand enough about YANG to attempt to answer some of Tommy's questions:

Q1: "Are there concrete and finite definitions of the values that can go in these fields?"
    and the obvious follow-up: "If so, where are the definitions and the registry for them?"
Q2: What is the process for expanding the list of possible values?

Let the adventure begin :-) ...

(1) In this transport-capabilities draft under:

        augment "/sysc:system-capabilities"
                + "/notc:subscription-capabilities" {

    we find:

        key "transport-protocol";
        description
           "Indicates supported YANG notifications transport protocol
           for Subscribed Notifications [RFC8639] and YANG-Push
           [RFC8641]. Defines the supported transports, security
           protocols and supported notification encodings.";
        leaf transport-protocol {
          type identityref {
            base sn:transport;
          }

(2) So, we have an identityref in the sn namespace - that namespace is
        is defined by an import element that points over to RFC 8639:

  import ietf-subscribed-notifications {
    prefix sn;
    reference
      "RFC 8639: Subscription to YANG Notifications";
  }

(3) Over in RFC 8639, "transport" is in the subscriptions container,
	as indicated by this portion of the tree diagram:

     +--rw subscriptions
        +--rw subscription* [id]
           +--rw id
           |       subscription-id
           ...
           +--rw transport?                                 transport
           |       {configured}?
	   ...

	and sure enough, here's the YANG definition for "transport"
        under grouping subscription-policy:

     leaf transport {
      if-feature "configured";
      type transport;
      description
        "For a configured subscription, this leaf specifies the
         transport used to deliver messages destined for all
         receivers of that subscription.";
    }

	that "transport" definition uses this typedef:

  typedef transport {
    type identityref {
      base transport;
    }
    description
      "Specifies the transport used to send notification messages
       to a receiver.";
  }

(4) That's nice, but what are the allowed identityrefs for "transport"?
        RFC 8639 doesn't say, and neither does this draft.

        But ... looking at this draft's examples, there appear to be two
        identityrefs that are allowed:

  xmlns:hnt="urn:ietf:params:xml:ns:yang:ietf-https-notif-transport"
  ...
  xmlns:unt="urn:ietf:params:xml:ns:yang:ietf-udp-notif-transport">
  ...
            <transport-protocol>hnt:https</transport-protocol>
            ...
            <transport-protocol>unt:udp-notif</transport-protocol>

(5) Returning to the YANG, for UDP, we need to find udp-notif in
        the ietf-udp-notif-transport module.

	That module is defined over in draft-ietf-netconf-udp-notif-26,
        where we find:

  identity udp-notif {
    base sn:transport;
    base sn:configurable-encoding;
    description
      "UDP-Notif is used as transport for notification messages
      and state change notifications.";
  }

	which matches unt:udp-notif in the example excerpted at step (4),
	completing this journey (whew!).

The journey appears to lead to the following answers to the initial questions:

Q1: Are there concrete and finite definitions of the values that can go in these fields?
    If so, where are the definitions and the registry for them?
A1: Yes, there are concrete and finite definitions. They are found by locating the YANG
    *-Notif modules that define a *-notif identity that is based on sn:transport.
    Two of the internet drafts referenced by this draft define such modules.

Q2: What is the process for expanding the list of possible values?
A2: For a transport protocol foo, define a foo-notif module that contains
        a foo-notif identity that is based on sn:transport.

The journey took a good 30 minutes of this reviewer's time.  The authors should
add an explanatory paragraph or two to section 1 and/or section 2 of the draft to
provide explanation sufficient to reduce this 30 minute journey to a 30 second
read for a reader who has some YANG familiarity, but is not a YANG expert.

In addition, the authors should reread Tommy's review and respond to all of his
questions and concerns.  That review has been incorporated by reference into this
review, hence its contents should be considered as IETF Last Call comments on -07.

I concur with Tommy's observation that "transport protocol" is overly broad, and
suggest "notification transport protocol" as a replacement.  Likewise "security
protocol" would be better replaced by "notification security protocol"

Tommy also asked ...

Q3: Since you have "security transports" as an orthogonal concept to the
"transport protocols", how do you capture the ways those protocols compose
and interact?

An initial investigation of this question turned up what appears to be an
omission in this draft. That omission stems from the statement in
draft-ietf-netconf-https-notif-16 that the HTTPS notification transport is
only supported over HTTP/1.1 and HTTP/2.  For HTTP/3, that https-notif draft
explains:

   Since there is no support for configuring the minimum required parameters
   to enable notifications over HTTP/3 [RFC9114], support for it is considered
   out of scope of this document at this time.

This transport-capabilities draft defines security protocol identities only for
DTLS 1.2 and DTLS 1.3, both of which do not work with either HTTP/1.1 or HTTP/2.

The authors need to start by defining security protocol identities for TLS 1.2
and TLS 1.3 for use with the HTTPS notification transport, which will enable 
Q3 to be addressed.