ietf-system-capabilities

This module specifies a structure to specify system capabilities for a server or a publisher. System capabilities may include c...

  • Version: 2022-02-17

    ietf-system-capabilities@2022-02-17


    
      module ietf-system-capabilities {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-system-capabilities";
    
        prefix sysc;
    
        import ietf-netconf-acm {
          prefix nacm;
          reference
            "RFC 8341: Network Configuration Access Control Model";
    
    
        }
        import ietf-yang-library {
          prefix yanglib;
          description
            "This module requires ietf-yang-library to be implemented.
    Revision 2019-01-04 or a revision derived from it
    is REQUIRED.";
          reference
            "RFC8525: YANG Library";
    
    
        }
    
        organization
          "IETF NETCONF (Network Configuration) Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
         WG List:  <mailto:netconf@ietf.org>
    
         Editor:   Balazs Lengyel
                   <mailto:balazs.lengyel@ericsson.com>";
    
        description
          "This module specifies a structure to specify system
         capabilities for a server or a publisher.  System capabilities
         may include capabilities of a NETCONF or RESTCONF server or a
         notification publisher.
    
         This module does not contain any specific capabilities; it only
         provides a structure where containers containing the actual
         capabilities are augmented in.
    
         Capability values can be specified at the system level, at the
         datastore level (by selecting all nodes in the datastore), or
         for specific data nodes of a specific datastore (and their
         contained subtrees).
         Capability values specified for a specific datastore or
         node-set override values specified on the system/publisher
         level.
    
         The same grouping MUST be used to define hierarchical
         capabilities supported both at the system level and at the
         datastore/data-node level.
    
         To find a capability value for a specific data node in a
         specific datastore, the user SHALL:
    
         1) search for a datastore-capabilities list entry for
         the specific datastore.  When stating a specific capability, the
         relative path for any specific capability must be the same
         under the system-capabilities container and under the
         per-node-capabilities list.
    
         2) If the datastore entry is found within that entry, process
         all per-node-capabilities entries in the order they appear in
         the list.  The first entry that specifies the specific
         capability and has a node-selector selecting the specific data
         node defines the capability value.
    
         3) If the capability value is not found above and the specific
         capability is specified under the system-capabilities container
         (outside the datastore-capabilities list), this value shall be
         used.
    
         4) If no values are found in the previous steps, the
         system/publisher is not capable of providing a value.  Possible
         reasons are that it is unknown, the capability is changing for
         some reason, there is no specified limit, etc.  In this case,
         the system's behavior is unspecified.
    
         The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
         'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
         'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
         are to be interpreted as described in BCP 14 (RFC 2119)
         (RFC 8174) when, and only when, they appear in all
         capitals, as shown here.
    
         Copyright (c) 2022 IETF Trust and the persons identified as
         authors of the code.  All rights reserved.
    
         Redistribution and use in source and binary forms, with or
         without modification, is permitted pursuant to, and subject to
         the license terms contained in, the Revised BSD License set
         forth in Section 4.c of the IETF Trust's Legal Provisions
         Relating to IETF Documents
         (https://trustee.ietf.org/license-info).
    
         This version of this YANG module is part of RFC 9196
         (https://www.rfc-editor.org/info/rfc9196); see the RFC itself
         for full legal notices.";
    
        revision "2022-02-17" {
          description "Initial version";
          reference
            "RFC 9196: YANG Modules Describing Capabilities for Systems
            and Datastore Update Notifications";
    
        }
    
    
        container system-capabilities {
          config false;
          description
            "System capabilities.
           Capability values specified here at the system level
           are valid for all datastores and are used when the
           capability is not specified at the datastore level
           or for specific data nodes.";
          list datastore-capabilities {
            key "datastore";
            description
              "Capabilities values per datastore.
    
             For non-NMDA servers/publishers, 'config false' data is
             considered as if it were part of the running datastore.";
            leaf datastore {
              type leafref {
                path "/yanglib:yang-library/yanglib:datastore/yanglib:name";
              }
              description
                "The datastore for which capabilities are defined.
               Only one specific datastore can be specified,
               e.g., ds:conventional must not be used, as it
               represents a set of configuration datastores.";
            }
    
            list per-node-capabilities {
              description
                "Each list entry specifies capabilities for the selected
               data nodes.  The same capabilities apply to the data nodes
               in the subtree below the selected nodes.
    
               The system SHALL order the entries according to their
               precedence. The order of the entries MUST NOT change
               unless the underlying capabilities also change.
    
               Note that the longest patch matching can be achieved
               by ordering more specific matches before less
               specific ones.";
              choice node-selection {
                description
                  "A method to select some or all nodes within a
                 datastore.";
                leaf node-selector {
                  type nacm:node-instance-identifier;
                  description
                    "Selects the data nodes for which capabilities are
                   specified. The special value '/' denotes all data
                   nodes in the datastore, consistent with the path
                   leaf node on page 41 of [RFC8341].";
                  reference
                    "RFC 8341: Network Configuration Access Control Model";
    
                }
              }  // choice node-selection
            }  // list per-node-capabilities
          }  // list datastore-capabilities
        }  // container system-capabilities
      }  // module ietf-system-capabilities
    

© 2023 YumaWorks, Inc. All rights reserved.