Skip to main content

An HTTPS-based Transport for YANG Notifications
draft-ietf-netconf-https-notif-15

Document Type Active Internet-Draft (netconf WG)
Authors Mahesh Jethanandani , Kent Watsen
Last updated 2024-03-20 (Latest revision 2024-02-01)
Replaces draft-mahesh-netconf-https-notif
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Proposed Standard
Formats
Yang Validation 0 errors, 2 warnings
Reviews
Additional resources Yang catalog entry for ietf-https-notif@2020-10-21.yang
Yang catalog entry for ietf-sub-notif-recv-list@2020-10-21.yang
Yang impact analysis for draft-ietf-netconf-https-notif
Mailing list discussion
Stream WG state Submitted to IESG for Publication
Document shepherd Qiufang Ma
Shepherd write-up Show Last changed 2022-08-26
IESG IESG state IESG Evaluation::AD Followup
Action Holder
Consensus boilerplate Yes
Telechat date (None)
Needs a YES. Has enough positions to pass.
Responsible AD Mahesh Jethanandani
Send notices to maqiufang1@huawei.com
IANA IANA review state Version Changed - Review Needed
IANA expert review state Expert Reviews OK
IANA expert review comments This is up to the usual standard for YANG documents. I note that in the example in A.1 we see the following: <map-type>x509c2n:san-any</map-type> in which the "x509c2n:" is a namespace prefix correctly declared above, and used in running text content of an XML element. In the general case this WILL NOT WORK and requires that software which processes text encoded this way has a special feature offered by some but not all XML parsers, namely, that it will make available to calling software the mapping between XML namespaces and their declared prefixes. This is generally not regarded as a best practice. I would like this to see this special requirement for processing software to be called out in the RFC text. However, multiple YANG specifications use this nonstandard idiom and have declined to call out the requirement, so, as I said, this is up to the normal YANG standard. If that's good enough for the editors, then I see no further issues with this draft.
draft-ietf-netconf-https-notif-15
lt;https://datatracker.ietf.org/doc/html/draft-ietf-netconf-
              tls-client-server-36>.

9.2.  Informative references

   [RFC8141]  Saint-Andre, P. and J. Klensin, "Uniform Resource Names
              (URNs)", RFC 8141, DOI 10.17487/RFC8141, April 2017,
              <https://www.rfc-editor.org/info/rfc8141>.

Appendix A.  Configuration Examples

   This non-normative section shows two examples for how the "ietf-
   https-notif-transport" module can be used to configure a publisher to
   send notifications to a receiver.

   In both examples, the publisher, being an HTTPS client, is configured
   to send notifications to a receiver.

A.1.  Using Subscribed Notifications (RFC 8639)

   This example shows how an RFC 8639 [RFC8639] based publisher can be
   configured to send notifications to a receiver.

   =============== NOTE: '\' line wrapping per RFC 8792 ================

   <?xml version="1.0" encoding="UTF-8"?>
   <subscriptions
       xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications\
   ">
     <receiver-instances
         xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notif-recei\

Jethanandani & Watsen     Expires 4 August 2024                [Page 24]
Internet-Draft        HTTPS Notification Transport         February 2024

   vers">
       <receiver-instance>
         <name>global-receiver-def</name>
         <https-receiver
             xmlns="urn:ietf:params:xml:ns:yang:ietf-https-notif-transp\
   ort"
             xmlns:x509c2n="urn:ietf:params:xml:ns:yang:ietf-x509-cert-\
   to-name">
           <tls>
             <tcp-client-parameters>
               <remote-address>receiver.example.com</remote-address>
               <remote-port>443</remote-port>
             </tcp-client-parameters>
             <tls-client-parameters>
               <server-authentication>
                 <ca-certs>
                   <local-definition>
                     <certificate>
                       <name>Server Cert Issuer #1</name>
                       <cert-data>base64encodedvalue==</cert-data>
                     </certificate>
                   </local-definition>
                 </ca-certs>
               </server-authentication>
             </tls-client-parameters>
             <http-client-parameters>
               <client-identity>
                 <basic>
                   <user-id>my-name</user-id>
                   <cleartext-password>my-password</cleartext-password>
                 </basic>
               </client-identity>
               <path
                   xmlns="urn:ietf:params:xml:ns:yang:ietf-https-notif-\
   transport">/some/path</path>
             </http-client-parameters>
           </tls>
           <receiver-identity>
             <cert-maps>
               <cert-to-name>
                 <id>1</id>
                 <fingerprint>11:0A:05:11:00</fingerprint>
                 <map-type>x509c2n:san-any</map-type>
               </cert-to-name>
             </cert-maps>
           </receiver-identity>
         </https-receiver>
       </receiver-instance>

Jethanandani & Watsen     Expires 4 August 2024                [Page 25]
Internet-Draft        HTTPS Notification Transport         February 2024

     </receiver-instances>
     <subscription>
       <id>6666</id>
       <transport xmlns:ph="urn:ietf:params:xml:ns:yang:ietf-https-noti\
   f-transport">ph:https</transport>
       <stream-subtree-filter>
         <some-subtree-filter/>
       </stream-subtree-filter>
       <stream>some-stream</stream>
       <receivers>
         <receiver>
           <name>subscription-specific-receiver-def</name>
           <receiver-instance-ref xmlns="urn:ietf:params:xml:ns:yang:ie\
   tf-subscribed-notif-receivers">global-receiver-def</receiver-instanc\
   e-ref>
         </receiver>
       </receivers>
     </subscription>
   </subscriptions>
   <truststore xmlns="urn:ietf:params:xml:ns:yang:ietf-truststore">
     <certificate-bags>
       <certificate-bag>
         <name>explicitly-trusted-server-ca-certs</name>
         <description>
           Trust anchors (i.e. CA certs) that are used to
           authenticate connections to receivers.  Receivers
           are authenticated if their certificate has a chain
           of trust to one of these CA certificates.
           certificates.
         </description>
         <certificate>
           <name>ca.example.com</name>
           <cert-data>base64encodedvalue==</cert-data>
         </certificate>
         <certificate>
           <name>Fred Flintstone</name>
           <cert-data>base64encodedvalue==</cert-data>
         </certificate>
       </certificate-bag>
     </certificate-bags>
   </truststore>

A.2.  Not Using Subscribed Notifications

   In the case that it is desired to use HTTPS-based notifications
   outside of Subscribed Notifications, an application-specific module
   would need to define the configuration for sending the notification.

Jethanandani & Watsen     Expires 4 August 2024                [Page 26]
Internet-Draft        HTTPS Notification Transport         February 2024

   Following is an example module.  Note that the module "uses" the
   "https-receiver-grouping" grouping from the "ietf-https-notif-
   transport" module.

   module example-custom-module {
     yang-version 1.1;
     namespace "http://example.com/example-custom-module";
     prefix "custom";

     import ietf-https-notif-transport {
       prefix "hnt";
       reference
         "RFC XXXX:
           An HTTPS-based Transport for Configured Subscriptions";
     }

     organization
       "Example, Inc.";

     contact
       "Support at example.com";

     description
       "Example of module not using Subscribed Notifications module.";

     revision "2024-02-01" {
       description
         "Initial Version.";
       reference
         "RFC XXXX: An HTTPS-based Transport for YANG Notifications.";
     }

     container example-module {
       description
         "Example of using HTTPS notif without having to
          implement Subscribed Notifications.";

       container https-receivers {
         description
           "A container of all HTTPS notif receivers.";
         list https-receiver {
          key "name";
           description
             "A list of HTTPS notif receivers.";
          leaf name {
            type string;
            description
              "A unique name for the https notif receiver.";

Jethanandani & Watsen     Expires 4 August 2024                [Page 27]
Internet-Draft        HTTPS Notification Transport         February 2024

          }
           uses hnt:https-receiver-grouping;
         }
       }
     }
   }

   Following is what the corresponding configuration looks like:

   <?xml version="1.0" encoding="UTF-8"?>
   <example-module xmlns="http://example.com/example-custom-module">
     <https-receivers>
       <https-receiver>
         <name>foo</name>
         <tls>
           <tcp-client-parameters>
             <remote-address>receiver.example.com</remote-address>
             <remote-port>443</remote-port>
           </tcp-client-parameters>
           <tls-client-parameters>
             <server-authentication>
               <ca-certs>
                 <local-definition>
                   <certificate>
                     <name>Server Cert Issuer #1</name>
                     <cert-data>base64encodedvalue==</cert-data>
                   </certificate>
                 </local-definition>
               </ca-certs>
             </server-authentication>
           </tls-client-parameters>
           <http-client-parameters>
             <client-identity>
               <basic>
                 <user-id>my-name</user-id>
                 <cleartext-password>my-password</cleartext-password>
               </basic>
             </client-identity>
             <path>/some/path</path>
           </http-client-parameters>
         </tls>
       </https-receiver>
     </https-receivers>
   </example-module>

Jethanandani & Watsen     Expires 4 August 2024                [Page 28]
Internet-Draft        HTTPS Notification Transport         February 2024

Acknowledgements

   The authors would like to thank for following for lively discussions
   on list and in the halls (ordered by first name): Eric Voit, Henning
   Rogge, Martin Bjorklund, Reshad Rahman, and Rob Wilton.

   In addition, the authors would also like to thank Quifang Ma for
   providing thoughtful comments as part of shepherd writeup.

Authors' Addresses

   Mahesh Jethanandani
   Kloud Services
   Email: mjethanandani@gmail.com

   Kent Watsen
   Watsen Networks
   Email: kent+ietf@watsen.net

Jethanandani & Watsen     Expires 4 August 2024                [Page 29]