Skip to main content

YANG Modules Describing Capabilities for Systems and Datastore Update Notifications
RFC 9196

Document Type RFC - Proposed Standard (February 2022) Errata
Authors Balázs Lengyel , Alexander Clemm , Benoît Claise
Last updated 2022-12-06
RFC stream Internet Engineering Task Force (IETF)
Formats
Additional resources Mailing list discussion
IESG Responsible AD Robert Wilton
Send notices to (None)
RFC 9196
quot;, RFC 8792, DOI 10.17487/RFC8792, June 2020,
              <https://www.rfc-editor.org/info/rfc8792>.

Appendix A.  Instance Data Example #1

   The following examples use artwork folding [RFC8792] for better
   formatting.

   The following instance data example describes the notification
   capabilities of a hypothetical "acme-router".  The router implements
   the running and operational datastores.  Every change can be reported
   "on-change" from the running datastore, but only "config false" nodes
   and some "config false" data can be reported on-change from the
   operational datastore.  Interface statistics are not reported "on-
   change"; only two important counters are.  Datastore subscription
   capabilities are not reported "on-change", as they never change on
   the acme-router during runtime.

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

   <?xml version="1.0" encoding="UTF-8"?>
   <instance-data-set xmlns=\
       "urn:ietf:params:xml:ns:yang:ietf-yang-instance-data">
     <name>acme-router-notification-capabilities</name>
     <content-schema>
       <module>ietf-system-capabilities@2022-02-17</module>
       <module>ietf-notification-capabilities@2022-02-17</module>
     </content-schema>
     <description>Defines the notification capabilities of an
       acme-router. The router only has running and operational
       datastores. Every change can be reported on-change from the
       running datastore, but only "config false" nodes and some
       "config false" data can be reported on-change from the
       operational datastore. Statistics
       are not reported on-change except for two important counters,
       where a small dampening period is mandated.
     </description>
     <content-data>
       <system-capabilities \
        xmlns="urn:ietf:params:xml:ns:yang:ietf-system-capabilities" \
        xmlns:notc=\
          "urn:ietf:params:xml:ns:yang:ietf-notification-capabilities" \
        xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
        <notc:subscription-capabilities>
         <notc:minimum-update-period>500</notc:minimum-update-period>
         <notc:max-nodes-per-update>2000</notc:max-nodes-per-update>
         <notc:minimum-dampening-period>\
            100\
         </notc:minimum-dampening-period>
         <notc:periodic-notifications-supported>\
            config-changes state-changes\
         </notc:periodic-notifications-supported>
         <notc:on-change-supported>\
            config-changes state-changes\
         </notc:on-change-supported>
         <notc:supported-excluded-change-type>\
            all\
         </notc:supported-excluded-change-type>
        </notc:subscription-capabilities>
         <datastore-capabilities>
           <datastore>ds:operational</datastore>
           <per-node-capabilities>
             <node-selector>\
                 /if:interfaces/if:interface[if:name='lo']\
             </node-selector>
             <notc:subscription-capabilities>
               <notc:on-change-supported/>
               <notc:periodic-notifications-supported/>
             </notc:subscription-capabilities>
           </per-node-capabilities>
           <per-node-capabilities>
             <node-selector>\
                 /if:interfaces/if:interface/if:statistics/if:in-octets\
             </node-selector>
             <notc:subscription-capabilities>
               <notc:minimum-dampening-period>10
                 </notc:minimum-dampening-period>
               <notc:on-change-supported>\
                 state-changes\
               </notc:on-change-supported>
             </notc:subscription-capabilities>
           </per-node-capabilities>
           <per-node-capabilities>
             <node-selector>\
             /if:interfaces/if:interface/if:statistics/if:out-octets\
             </node-selector>
             <notc:subscription-capabilities>
               <notc:minimum-dampening-period>10
                 </notc:minimum-dampening-period>
               <notc:on-change-supported>\
                 state-changes\
               </notc:on-change-supported>
             </notc:subscription-capabilities>
           </per-node-capabilities>
           <per-node-capabilities>
             <node-selector>\
                 /if:interfaces/if:interface/if:statistics\
             </node-selector>
             <notc:subscription-capabilities>
               <notc:on-change-supported/>
             </notc:subscription-capabilities>
           </per-node-capabilities>
         </datastore-capabilities>
       </system-capabilities>
     </content-data>
   </instance-data-set>

     Figure 1: Notification Capabilities with Settings Specific to the
                                 Data Node

Appendix B.  Instance Data Example #2

   The following examples use artwork folding [RFC8792] for better
   formatting.

   The following instance data example describes the notification
   capabilities of a hypothetical "acme-switch".  The switch implements
   the running, candidate, and operational datastores.  Every change can
   be reported "on-change" from the running datastore, nothing can be
   reported on-change from the candidate datastore, and all "config
   false" data can be reported on-change from the operational datastore.
   "Periodic" subscriptions are supported for running and operational
   but not for candidate datastores.

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

   <?xml version="1.0" encoding="UTF-8"?>
   <instance-data-set xmlns=\
       "urn:ietf:params:xml:ns:yang:ietf-yang-instance-data">
     <name>acme-switch-notification-capabilities</name>
     <content-schema>
       <module>ietf-system-capabilities@2022-02-17</module>
       <module>ietf-notification-capabilities@2022-02-17</module>
     </content-schema>
     <description>Notification capabilities of acme-switch.
       Acme-switch implements the running, candidate, and operational
       datastores. Every change can be reported on-change from the
       running datastore, nothing from the candidate datastore and
       all "config false" data from the operational datastore. Periodic
       subscriptions are supported for running and operational, but not
       for candidate datastore.
     </description>
     <content-data>
       <system-capabilities \
        xmlns="urn:ietf:params:xml:ns:yang:ietf-system-capabilities" \
        xmlns:notc=\
          "urn:ietf:params:xml:ns:yang:ietf-notification-capabilities" \
        xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
        <notc:subscription-capabilities>
         <notc:minimum-update-period>500</notc:minimum-update-period>
         <notc:max-nodes-per-update>2000</notc:max-nodes-per-update>
         <notc:minimum-dampening-period>\
           100\
         </notc:minimum-dampening-period>
         <notc:periodic-notifications-supported>\
           config-changes state-changes\
         </notc:periodic-notifications-supported>
        </notc:subscription-capabilities>
        <datastore-capabilities>
          <datastore>ds:operational</datastore>
          <per-node-capabilities>
            <node-selector>/</node-selector>
            <notc:subscription-capabilities>
              <notc:on-change-supported>\
                state-changes\
              </notc:on-change-supported>
            </notc:subscription-capabilities>
          </per-node-capabilities>
        </datastore-capabilities>
        <datastore-capabilities>
          <datastore>ds:candidate</datastore>
          <per-node-capabilities>
            <node-selector>/</node-selector>
            <notc:subscription-capabilities>
              <notc:on-change-supported/>
              <notc:periodic-notifications-supported/>
            </notc:subscription-capabilities>
          </per-node-capabilities>
        </datastore-capabilities>
        <datastore-capabilities>
         <datastore>ds:running</datastore>
          <per-node-capabilities>
            <node-selector>/</node-selector>
            <notc:subscription-capabilities>
              <notc:on-change-supported>\
                config-changes\
              </notc:on-change-supported>
            </notc:subscription-capabilities>
          </per-node-capabilities>
        </datastore-capabilities>
       </system-capabilities>
     </content-data>
   </instance-data-set>

     Figure 2: Notification Capabilities with Datastore-Level Settings

Acknowledgments

   For their valuable comments, discussions, and feedback, we wish to
   acknowledge Andy Bierman, Juergen Schoenwaelder, Rob Wilton, Kent
   Watsen, Eric Voit, Joe Clarke, Martin Bjorklund, Ladislav Lhotka, Qin
   Wu, Mahesh Jethanandani, Ran Tao, Reshad Rahman, and other members of
   the Netmod Working Group.

Authors' Addresses

   Balazs Lengyel
   Ericsson
   Budapest
   Magyar Tudosok korutja 11
   1117
   Hungary
   Email: balazs.lengyel@ericsson.com

   Alexander Clemm
   Futurewei
   2330 Central Expressway
   Santa Clara, CA 95050
   United States of America
   Email: ludwig@clemm.org

   Benoit Claise
   Huawei
   George's Court Townsend Street
   Dublin 2
   Ireland
   Email: benoit.claise@huawei.com