ietf/RFC YANG Modules

iana-crypt-hash.yang

This module contains the 'crypt-hash' typedef. This data type is supported internally by the server. Passwords configured using this data type are stored as hash values. The plain-text passwords are never stored if this data type is used.

ietf-datastores.yang

This module contains the datastore-ref typedef. This data type is supported internally by the server. The --with-nmda CLI parameter must be set to true for this module to be used in the server.

ietf-inet-types.yang

This module contains the standard YANG Internet address types. These types are available for commonly used management object types. A YANG module author should check this module first, before creating any new data types with the YANG typedef statement.

There are no accessible objects in this module, so there are no SIL callback functions. The YANG data-types are supported within the YumaPro engine core modules, such as ncx/val.c and ncx/xml_wr.c.

ietf-interfaces.yang

This module contains the YumaPro interfaces table, which is just a skeleton configuration list, plus some basic interface counters. This module is intended to provide an example for embedded developers to replace this module with their own interfaces table. The YumaPro table uses information in some files found in Unix systems which support the /proc/net/dev system file.

The file libyuma-interfaces/src/yuma-interfaces.c contains the SIL callback functions for this module.

Use WITH_YUMA_INTERFACES=1 or EVERYTHING=1 make flags in order to build the libyuma-interfaces directory and install the SIL code for the yuma-interfaces YANG module. Refer to YumaPro README for build instructions.

  • Source Document: RFC 8343

  • GitHub File: ietf-interfaces@2018-02-20.yang

  • YANG Tree:

    module: ietf-interfaces
      +--rw interfaces
      |  +--rw interface* [name]
      |     +--rw name                        string
      |     +--rw description?                string
      |     +--rw type                        identityref
      |     +--rw enabled?                    boolean
      |     +--rw link-up-down-trap-enable?   enumeration {if-mib}?
      |     +--ro admin-status                enumeration {if-mib}?
      |     +--ro oper-status                 enumeration
      |     +--ro last-change?                yang:date-and-time
      |     +--ro if-index                    int32 {if-mib}?
      |     +--ro phys-address?               yang:phys-address
      |     +--ro higher-layer-if*            interface-ref
      |     +--ro lower-layer-if*             interface-ref
      |     +--ro speed?                      yang:gauge64
      |     +--ro statistics
      |        +--ro discontinuity-time    yang:date-and-time
      |        +--ro in-octets?            yang:counter64
      |        +--ro in-unicast-pkts?      yang:counter64
      |        +--ro in-broadcast-pkts?    yang:counter64
      |        +--ro in-multicast-pkts?    yang:counter64
      |        +--ro in-discards?          yang:counter32
      |        +--ro in-errors?            yang:counter32
      |        +--ro in-unknown-protos?    yang:counter32
      |        +--ro out-octets?           yang:counter64
      |        +--ro out-unicast-pkts?     yang:counter64
      |        +--ro out-broadcast-pkts?   yang:counter64
      |        +--ro out-multicast-pkts?   yang:counter64
      |        +--ro out-discards?         yang:counter32
      |        +--ro out-errors?           yang:counter32
      x--ro interfaces-state
         x--ro interface* [name]
            x--ro name               string
            x--ro type               identityref
            x--ro admin-status       enumeration {if-mib}?
            x--ro oper-status        enumeration
            x--ro last-change?       yang:date-and-time
            x--ro if-index           int32 {if-mib}?
            x--ro phys-address?      yang:phys-address
            x--ro higher-layer-if*   interface-state-ref
            x--ro lower-layer-if*    interface-state-ref
            x--ro speed?             yang:gauge64
            x--ro statistics
               x--ro discontinuity-time    yang:date-and-time
               x--ro in-octets?            yang:counter64
               x--ro in-unicast-pkts?      yang:counter64
               x--ro in-broadcast-pkts?    yang:counter64
               x--ro in-multicast-pkts?    yang:counter64
               x--ro in-discards?          yang:counter32
               x--ro in-errors?            yang:counter32
               x--ro in-unknown-protos?    yang:counter32
               x--ro out-octets?           yang:counter64
               x--ro out-unicast-pkts?     yang:counter64
               x--ro out-broadcast-pkts?   yang:counter64
               x--ro out-multicast-pkts?   yang:counter64
               x--ro out-discards?         yang:counter32
               x--ro out-errors?           yang:counter32
    
  • History:

    • Initial release train: 18.10

ietf-origin.yang

This module contains the origin typedef. This data type is supported internally by the server. The --with-nmda CLI parameter must be set to true for this module to be used in the server.

ietf-netconf.yang

The standard NETCONF module is used to access the NETCONF operations. and is defined in RFC 6536.

The module yuma-netconf.yang is actually used in the server instead, even though this module is advertised to clients.

The agt/agt_ncx.c file contains the SIL callback functions for this module.

  • Source Document: RFC 6241

  • GitHub File: ietf-netconf@2011-06-01.yang

  • YANG Tree:

    module: ietf-netconf
    
      rpcs:
        +---x get-config
        |  +---w input
        |  |  +---w source
        |  |  |  +---w (config-source)
        |  |  |     +--:(candidate)
        |  |  |     |  +---w candidate?   empty {candidate}?
        |  |  |     +--:(running)
        |  |  |     |  +---w running?     empty
        |  |  |     +--:(startup)
        |  |  |        +---w startup?     empty {startup}?
        |  |  +---w filter?   <anyxml>
        |  +--ro output
        |     +--ro data?   <anyxml>
        +---x edit-config
        |  +---w input
        |     +---w target
        |     |  +---w (config-target)
        |     |     +--:(candidate)
        |     |     |  +---w candidate?   empty {candidate}?
        |     |     +--:(running)
        |     |        +---w running?     empty {writable-running}?
        |     +---w default-operation?   enumeration
        |     +---w test-option?         enumeration {validate}?
        |     +---w error-option?        enumeration
        |     +---w (edit-content)
        |        +--:(config)
        |        |  +---w config?        <anyxml>
        |        +--:(url)
        |           +---w url?           inet:uri {url}?
        +---x copy-config
        |  +---w input
        |     +---w target
        |     |  +---w (config-target)
        |     |     +--:(candidate)
        |     |     |  +---w candidate?   empty {candidate}?
        |     |     +--:(running)
        |     |     |  +---w running?     empty {writable-running}?
        |     |     +--:(startup)
        |     |     |  +---w startup?     empty {startup}?
        |     |     +--:(url)
        |     |        +---w url?         inet:uri {url}?
        |     +---w source
        |        +---w (config-source)
        |           +--:(candidate)
        |           |  +---w candidate?   empty {candidate}?
        |           +--:(running)
        |           |  +---w running?     empty
        |           +--:(startup)
        |           |  +---w startup?     empty {startup}?
        |           +--:(url)
        |           |  +---w url?         inet:uri {url}?
        |           +--:(config)
        |              +---w config?      <anyxml>
        +---x delete-config
        |  +---w input
        |     +---w target
        |        +---w (config-target)
        |           +--:(startup)
        |           |  +---w startup?   empty {startup}?
        |           +--:(url)
        |              +---w url?       inet:uri {url}?
        +---x lock
        |  +---w input
        |     +---w target
        |        +---w (config-target)
        |           +--:(candidate)
        |           |  +---w candidate?   empty {candidate}?
        |           +--:(running)
        |           |  +---w running?     empty
        |           +--:(startup)
        |              +---w startup?     empty {startup}?
        +---x unlock
        |  +---w input
        |     +---w target
        |        +---w (config-target)
        |           +--:(candidate)
        |           |  +---w candidate?   empty {candidate}?
        |           +--:(running)
        |           |  +---w running?     empty
        |           +--:(startup)
        |              +---w startup?     empty {startup}?
        +---x get
        |  +---w input
        |  |  +---w filter?   <anyxml>
        |  +--ro output
        |     +--ro data?   <anyxml>
        +---x close-session
        +---x kill-session
        |  +---w input
        |     +---w session-id    session-id-type
        +---x commit {candidate}?
        |  +---w input
        |     +---w confirmed?         empty {confirmed-commit}?
        |     +---w confirm-timeout?   uint32 {confirmed-commit}?
        |     +---w persist?           string {confirmed-commit}?
        |     +---w persist-id?        string {confirmed-commit}?
        +---x discard-changes {candidate}?
        +---x cancel-commit {confirmed-commit}?
        |  +---w input
        |     +---w persist-id?   string
        +---x validate {validate}?
           +---w input
              +---w source
                 +---w (config-source)
                    +--:(candidate)
                    |  +---w candidate?   empty {candidate}?
                    +--:(running)
                    |  +---w running?     empty
                    +--:(startup)
                    |  +---w startup?     empty {startup}?
                    +--:(url)
                    |  +---w url?         inet:uri {url}?
                    +--:(config)
                       +---w config?      <anyxml>
    
  • History:

    • Initial release train: 12.09

ietf-netconf-acm.yang

The standard NETCONF Access Control module is used to control which YANG content each group of users can access from the server.

This YANG module is used by default, is the 'ietf' ACM mode is selected, which is the default ACM mode in YumaPro. It will not be present if the server is using an external ACM instead of NACM.

The agt/agt_acm_ietf.c file contains the SIL callback functions for this module.

  • Source Document: RFC 8341

  • GitHub File: ietf-netconf-acm@2018-02-14.yang

  • YANG Tree:

    module: ietf-netconf-acm
      +--rw nacm
         +--rw enable-nacm?              boolean
         +--rw read-default?             action-type
         +--rw write-default?            action-type
         +--rw exec-default?             action-type
         +--rw enable-external-groups?   boolean
         +--ro denied-operations         yang:zero-based-counter32
         +--ro denied-data-writes        yang:zero-based-counter32
         +--ro denied-notifications      yang:zero-based-counter32
         +--rw groups
         |  +--rw group* [name]
         |     +--rw name         group-name-type
         |     +--rw user-name*   user-name-type
         +--rw rule-list* [name]
            +--rw name     string
            +--rw group*   union
            +--rw rule* [name]
               +--rw name                       string
               +--rw module-name?               union
               +--rw (rule-type)?
               |  +--:(protocol-operation)
               |  |  +--rw rpc-name?            union
               |  +--:(notification)
               |  |  +--rw notification-name?   union
               |  +--:(data-node)
               |     +--rw path                 node-instance-identifier
               +--rw access-operations?         union
               +--rw action                     action-type
               +--rw comment?                   string
    
  • History:

    • Initial release train: 12.09

ietf-netconf-monitoring.yang

The standard NETCONF Monitoring module is used to examine the capabilities, current state, and statistics related to the NETCONF server. The entire module is supported, and is defined in RFC 6022.

This module is also used to retrieve the actual YANG or YIN files (or URLs for them) that the server is using. Clients can use the <get-schema> RPC operation to retrieve the YANG or YIN files listed in the /netconf-state/schemas subtree.

A client will normally check the <hello> message from the server for module capabilities, and use its own local copy of a server YANG module, if it can. If not, then the <get-schema> function can be used to retrieve the YANG module.

The agt/agt_state.c file contains the SIL callback functions for this module.

  • Source Document: RFC 6022

  • GitHub File: ietf-netconf-monitoring@2010-10-04.yang

  • YANG Tree:

    module: ietf-netconf-monitoring
      +--ro netconf-state
         +--ro capabilities
         |  +--ro capability*   inet:uri
         +--ro datastores
         |  +--ro datastore* [name]
         |     +--ro name     netconf-datastore-type
         |     +--ro locks!
         |        +--ro (lock-type)?
         |           +--:(global-lock)
         |           |  +--ro global-lock
         |           |     +--ro locked-by-session    uint32
         |           |     +--ro locked-time          yang:date-and-time
         |           +--:(partial-lock)
         |              +--ro partial-lock* [lock-id]
         |                 +--ro lock-id              uint32
         |                 +--ro locked-by-session    uint32
         |                 +--ro locked-time          yang:date-and-time
         |                 +--ro select*              yang:xpath1.0
         |                 +--ro locked-node*         instance-identifier
         +--ro schemas
         |  +--ro schema* [identifier version format]
         |     +--ro identifier    string
         |     +--ro version       string
         |     +--ro format        identityref
         |     +--ro namespace     inet:uri
         |     +--ro location*     union
         +--ro sessions
         |  +--ro session* [session-id]
         |     +--ro session-id           uint32
         |     +--ro transport            identityref
         |     +--ro username             string
         |     +--ro source-host?         inet:host
         |     +--ro login-time           yang:date-and-time
         |     +--ro in-rpcs?             yang:zero-based-counter32
         |     +--ro in-bad-rpcs?         yang:zero-based-counter32
         |     +--ro out-rpc-errors?      yang:zero-based-counter32
         |     +--ro out-notifications?   yang:zero-based-counter32
         +--ro statistics
            +--ro netconf-start-time?   yang:date-and-time
            +--ro in-bad-hellos?        yang:zero-based-counter32
            +--ro in-sessions?          yang:zero-based-counter32
            +--ro dropped-sessions?     yang:zero-based-counter32
            +--ro in-rpcs?              yang:zero-based-counter32
            +--ro in-bad-rpcs?          yang:zero-based-counter32
            +--ro out-rpc-errors?       yang:zero-based-counter32
            +--ro out-notifications?    yang:zero-based-counter32
    
      rpcs:
        +---x get-schema
           +---w input
           |  +---w identifier    string
           |  +---w version?      string
           |  +---w format?       identityref
           +--ro output
              +--ro data?   <anyxml>
    
  • History:

    • Initial release train: 12.09

ietf-netconf-nmda.yang

The standard NETCONF operations for NMDA module is used to implement the <get-data> operation. The --with-nmda CLI parameter must be set to true for this module to be used in the server.

The agt/ietf-netconf-nmda.c file contains the SIL callback functions for this module.

  • Source Document: RFC 8527

  • GitHub File: ietf-netconf-nmda@2019-01-07.yang

  • YANG Tree:

    module: ietf-netconf-nmda
    
      augment /nc:lock/nc:input/nc:target/nc:config-target:
        +-- datastore?   ds:datastore-ref
      augment /nc:unlock/nc:input/nc:target/nc:config-target:
        +-- datastore?   ds:datastore-ref
      augment /nc:validate/nc:input/nc:source/nc:config-source:
        +-- datastore?   ds:datastore-ref
    
      rpcs:
        +---x get-data
        |  +---w input
        |  |  +---w datastore                      ds:datastore-ref
        |  |  +---w (filter-spec)?
        |  |  |  +--:(subtree-filter)
        |  |  |  |  +---w subtree-filter?          <anydata>
        |  |  |  +--:(xpath-filter)
        |  |  |     +---w xpath-filter?            yang:xpath1.0 {nc:xpath}?
        |  |  +---w config-filter?                 boolean
        |  |  +---w (origin-filters)? {origin}?
        |  |  |  +--:(origin-filter)
        |  |  |  |  +---w origin-filter*           or:origin-ref
        |  |  |  +--:(negated-origin-filter)
        |  |  |     +---w negated-origin-filter*   or:origin-ref
        |  |  +---w max-depth?                     union
        |  |  +---w with-origin?                   empty {origin}?
        |  |  +---w with-defaults?                 with-defaults-mode {with-defaults}?
        |  +--ro output
        |     +--ro data?   <anydata>
        +---x edit-data
           +---w input
              +---w datastore            ds:datastore-ref
              +---w default-operation?   enumeration
              +---w (edit-content)
                 +--:(config)
                 |  +---w config?        <anydata>
                 +--:(url)
                    +---w url?           inet:uri {nc:url}?
    
  • History:

    • Initial release train: 19.10

ietf-netconf-notifications.yang

The standard NETCONF Base Notifications module is used to report common NETCONF server events in the standard NETCONF notification stream. The entire module is supported, and is defined in RFC 6470.

The agt/agt_sys.c contains the SIL callback functions for this module.

  • Source Document: RFC 6470

  • GitHub File: ietf-netconf-notifications@2012-02-06.yang

  • YANG Tree:

    module: ietf-netconf-notifications
    
      notifications:
        +---n netconf-config-change
        |  +--ro changed-by
        |  |  +--ro (server-or-user)
        |  |     +--:(server)
        |  |     |  +--ro server?        empty
        |  |     +--:(by-user)
        |  |        +--ro username       string
        |  |        +--ro session-id     nc:session-id-or-zero-type
        |  |        +--ro source-host?   inet:ip-address
        |  +--ro datastore?    enumeration
        |  +--ro edit* []
        |     +--ro target?      instance-identifier
        |     +--ro operation?   nc:edit-operation-type
        +---n netconf-capability-change
        |  +--ro changed-by
        |  |  +--ro (server-or-user)
        |  |     +--:(server)
        |  |     |  +--ro server?        empty
        |  |     +--:(by-user)
        |  |        +--ro username       string
        |  |        +--ro session-id     nc:session-id-or-zero-type
        |  |        +--ro source-host?   inet:ip-address
        |  +--ro added-capability*      inet:uri
        |  +--ro deleted-capability*    inet:uri
        |  +--ro modified-capability*   inet:uri
        +---n netconf-session-start
        |  +--ro username       string
        |  +--ro session-id     nc:session-id-or-zero-type
        |  +--ro source-host?   inet:ip-address
        +---n netconf-session-end
        |  +--ro username              string
        |  +--ro session-id            nc:session-id-or-zero-type
        |  +--ro source-host?          inet:ip-address
        |  +--ro killed-by?            nc:session-id-type
        |  +--ro termination-reason    enumeration
        +---n netconf-confirmed-commit
           +--ro username         string
           +--ro session-id       nc:session-id-or-zero-type
           +--ro source-host?     inet:ip-address
           +--ro confirm-event    enumeration
           +--ro timeout?         uint32
    
  • History:

    • Initial release train: 12.09

ietf-netconf-partial-lock.yang

The standard NETCONF Partial Lock module is used to lock subtrees within the <running> datastore, using the <partial-lock> and <partial-unlock> operations.

The agt/agt_plock.c file contains the SIL callback functions for this module.

  • Source Document: RFC 5717

  • GitHub File: ietf-netconf-partial-lock@2009-10-19.yang

  • YANG Tree:

    module: ietf-netconf-partial-lock
    
      rpcs:
        +---x partial-lock
        |  +---w input
        |  |  +---w select*   yang:xpath1.0
        |  +--ro output
        |     +--ro lock-id        lock-id-type
        |     +--ro locked-node*   instance-identifier
        +---x partial-unlock
           +---w input
              +---w lock-id    lock-id-type
    
  • History:

    • Initial release train: 12.09

ietf-netconf-with-defaults.yang

The standard <with-defaults> extension to some NETCONF operations is defined in this module. The entire module is supported, and defined in RFC 6243.

This parameter is added to the following NETCONF operations:

It allows the client to control how 'default leafs' are returned by the server. The YumaPro server can be configured to use any of the default handling styles (report-all, trim, or explicit). The filtering of default nodes is handled automatically by the server support functions in agt/agt_util.c, and the XML write functions in ncx/xml_wr.c.

The --default-style CLI parameter is used in the server to pick the desired basic mode, as defined in the RFC.

  • Source Document: RFC 6243

  • GitHub File: ietf-netconf-with-defaults@2011-06-01.yang

  • YANG Tree:

    module: ietf-netconf-with-defaults
    
      augment /nc:get-config/nc:input:
        +---w with-defaults?   with-defaults-mode
      augment /nc:get/nc:input:
        +---w with-defaults?   with-defaults-mode
      augment /nc:copy-config/nc:input:
        +---w with-defaults?   with-defaults-mode
    
  • History:

    • Initial release train: 12.09

ietf-notification-capabilities.yang

Defines the /system-capabilities/notification-capabilities container.

The following leafs are implemented:

  • max-nodes-per-update: The value '10000' is returned. There is no actual conformace required for this object. The size of updates is not required for YANG Push. The maximum size of the update is usually determined by the filter.

  • periodic-notifications-supported: Both 'config-changes' and 'state-changes' are set

  • minimum-update-period: Derived from the --push-min-period C:LI parameter.

  • on-change-supported: Both 'config-changes' and 'state-changes' are set

  • minimum-dampening-period: Derived from the --push-min-dampening C:LI parameter.

  • supported-excluded-change-type: 'all'

This module is loaded if the --bundle=yang-push parameter is used to start the server, and the --with-notifications=true parameter is also used.

  • Source Document: RFC 9196

  • GitHub File: ietf-notification-capabilities@2022-02-17.yang

  • YANG Tree:

    module: ietf-notification-capabilities
    
      augment /sysc:system-capabilities:
        +--ro subscription-capabilities
           +--ro max-nodes-per-update?               uint32
           +--ro periodic-notifications-supported?   notification-support
           +--ro (update-period)?
           |  +--:(minimum-update-period)
           |  |  +--ro minimum-update-period?        uint32
           |  +--:(supported-update-period)
           |     +--ro supported-update-period*      uint32
           +--ro on-change-supported?                notification-support {yp:on-change}?
           +--ro minimum-dampening-period?           uint32 {yp:on-change}?
           +--ro supported-excluded-change-type*     union {yp:on-change}?
      augment /sysc:system-capabilities/sysc:datastore-capabilities/sysc:per-node-capabilities:
        +--ro subscription-capabilities
           +--ro max-nodes-per-update?               uint32
           +--ro periodic-notifications-supported?   notification-support
           +--ro (update-period)?
           |  +--:(minimum-update-period)
           |  |  +--ro minimum-update-period?        uint32
           |  +--:(supported-update-period)
           |     +--ro supported-update-period*      uint32
           +--ro on-change-supported?                notification-support {yp:on-change}?
           +--ro minimum-dampening-period?           uint32 {yp:on-change}?
           +--ro supported-excluded-change-type*     union {yp:on-change}?
    
  • History:

    • Initial release train: 23.10T

  • Example:

system-capabilities {
  subscription-capabilities {
    max-nodes-per-update 10000
    periodic-notifications-supported "config-changes state-changes"
    minimum-update-period 100
    on-change-supported "config-changes state-changes"
    minimum-dampening-period 100
    supported-excluded-change-type all
  }
}

ietf-restconf.yang

This module is loaded if the --with-restconf=true CLI parameter is used.

The standard YANG extension “yang-data” is defined in this module. It is fully supported with the server, and has the same effect as the ncx:abstract extension. The module ncx/yang_data.c contains the code supporting this YANG extension.

The rc:yang-api yang-data struct is implemented for the RESTCONF protocol interface.

The rc:yang-errors yang-data struct is implemented for RESTCONF error responses

  • Source Document: RFC 8040

  • GitHub File: ietf-restconf@2017-01-26.yang

  • YANG Tree:

    module: ietf-restconf
    
      grouping errors
        +-- errors
           +-- error* []
              +-- error-type       enumeration
              +-- error-tag        string
              +-- error-app-tag?   string
              +-- error-path?      instance-identifier
              +-- error-message?   string
              +-- error-info?      <anyxml>
      grouping restconf
        +-- restconf
           +-- data
           +-- operations
           +--ro yang-library-version    string
    
  • History:

    • Initial release train: 15.10

ietf-restconf-monitoring.yang

This module contains monitoring information for the RESTCONF protocol. Contains a list of protocol capability URIs and description of stream content.

The file libietf-restmonitoring/src/ietf-restconf-monitoring.c contains the SIL callback functions for this module.

Use WITH_RESTCONF=1 or EVERYTHING=1 make flags in order to build the libietf-restmonitoring directory and install the SIL code for the ietf-restconf-monitoring YANG module. Refer to YumaPro README for build instructions.

This module contains the /restconf-state subtree. It is fully supported and provides information about the RESTCONF capabilities and notification streams. The separate library libietf-restmonitoring contains the SIL callbacks for this module.

  • Source Document: RFC 8040

  • GitHub File: ietf-restconf-monitoring@2017-01-26.yang

  • YANG Tree:

    module: ietf-restconf-monitoring
      +--ro restconf-state
         +--ro capabilities
         |  +--ro capability*   inet:uri
         +--ro streams
            +--ro stream* [name]
               +--ro name                        string
               +--ro description?                string
               +--ro replay-support?             boolean
               +--ro replay-log-creation-time?   yang:date-and-time
               +--ro access* [encoding]
                  +--ro encoding    string
                  +--ro location    inet:uri
    
  • History:

    • Initial release train: 15.10

  • Example

restconf-state {
  capabilities {
    capability urn:ietf:params:restconf:capability:depth:1.0
    capability urn:ietf:params:restconf:capability:with-defaults:1.0
    capability urn:ietf:params:restconf:capability:defaults:1.0?basic-mode=explicit
    capability urn:ietf:params:restconf:capability:fields:1.0
    capability urn:ietf:params:restconf:capability:replay:1.0
    capability urn:ietf:params:restconf:capability:filter:1.0
    capability urn:ietf:params:restconf:capability:yang-patch:1.0
  }
  streams {
    stream  NETCONF {
      name NETCONF
      description 'default NETCONF event stream'
      replay-support true
      replay-log-creation-time 2024-10-05T18:00:25Z
      access  xml {
        encoding xml
        location http://localhost/restconf/streams/NETCONF
      }
    }
    stream  RESTCONF {
      name RESTCONF
      description 'default RESTCONF event stream'
      replay-support true
      replay-log-creation-time 2024-10-05T18:00:25Z
      access  xml {
        encoding xml
        location http://localhost/restconf/stream
      }
    }
  }
}

ietf-sid-file.yang

This standard YANG module supports YANG to SID mappings. It is fully supported within the server for loading SID values into the server.

  • The WITH_YANG_CBOR=1 make flag must be used for this module to be present.

  • The --with-yang-cbor CLI parameter must be set to 'true' for this module to be present.

  • This module is only available in YumaPro 23.10T and higher

Note

  • The '2021-11-16' version is implemented, not the latest '2023-10-27' version.

  • The module will not be updated until the RFC version is published.

  • The implemented module can be installed from sources or the 'yumapro-sdk' package, and found in the /usr/share/yumapro/modules/ietf/DRAFT directory.

  • The source document and Github links are for the latest version.

  • Source Document: draft-ietf-core-sid-23.txt (Latest)

  • GitHub File: ietf-sid-file@2021-11-16.yang (Latest)

  • YANG Tree: (Implemented)

    module: ietf-sid-file
    
      structure sid-file:
        +-- module-name            yang:yang-identifier
        +-- module-revision?       revision-identifier
        +-- sid-file-version?      sid-file-version-identifier
        +-- description?           string
        +-- dependency-revision* [module-name]
        |  +-- module-name        yang:yang-identifier
        |  +-- module-revision    revision-identifier
        +-- assignment-range* [entry-point]
        |  +-- entry-point    sid
        |  +-- size           uint64
        +-- item* [namespace identifier]
           +-- namespace     enumeration
           +-- identifier    union
           +-- sid           sid
    
  • History:

    • Initial release train: 22.10T

    • Module present but not supported in 23.10

    • Module present and pre-release support in 24.10

ietf-subscribed-notifications.yang

This module contains notification subscription management features.

This module is not loaded if the --with-notifications=false parameter is used. Otherwise, this module is loaded if either of the following conditions is true:

The dynamic subscription feature is fully implemented and the 'on-change' capability is supported. The yumaworks-yangpush-dev.yang module contains the deviations for this module.

  • Source Document: RFC 8639

  • GitHub File: ietf-subscribed-notifications@2019-09-09.yang

  • YANG Tree:

    module: ietf-subscribed-notifications
      +--ro streams
      |  +--ro stream* [name]
      |     +--ro name                        string
      |     +--ro description?                string
      |     +--ro replay-support?             empty {replay}?
      |     +--ro replay-log-creation-time    yang:date-and-time {replay}?
      |     +--ro replay-log-aged-time?       yang:date-and-time {replay}?
      +--rw filters
      |  +--rw stream-filter* [name]
      |     +--rw name                           string
      |     +--rw (filter-spec)?
      |        +--:(stream-subtree-filter)
      |        |  +--rw stream-subtree-filter?   <anydata> {subtree}?
      |        +--:(stream-xpath-filter)
      |           +--rw stream-xpath-filter?     yang:xpath1.0 {xpath}?
      +--rw subscriptions
         +--rw subscription* [id]
            +--rw id                                         subscription-id
            +--rw (target)
            |  +--:(stream)
            |     +--rw (stream-filter)?
            |     |  +--:(by-reference)
            |     |  |  +--rw stream-filter-name             stream-filter-ref
            |     |  +--:(within-subscription)
            |     |     +--rw (filter-spec)?
            |     |        +--:(stream-subtree-filter)
            |     |        |  +--rw stream-subtree-filter?   <anydata> {subtree}?
            |     |        +--:(stream-xpath-filter)
            |     |           +--rw stream-xpath-filter?     yang:xpath1.0 {xpath}?
            |     +--rw stream                               stream-ref
            |     +--ro replay-start-time?                   yang:date-and-time {replay}?
            |     +--rw configured-replay?                   empty {configured,replay}?
            +--rw stop-time?                                 yang:date-and-time
            +--rw dscp?                                      inet:dscp {dscp}?
            +--rw weighting?                                 uint8 {qos}?
            +--rw dependency?                                subscription-id {qos}?
            +--rw transport?                                 transport {configured}?
            +--rw encoding?                                  encoding
            +--rw purpose?                                   string {configured}?
            +--rw (notification-message-origin)? {configured}?
            |  +--:(interface-originated)
            |  |  +--rw source-interface?                    if:interface-ref {interface-designation}?
            |  +--:(address-originated)
            |     +--rw source-vrf?                          -> /ni:network-instances/network-instance/name {supports-vrf}?
            |     +--rw source-address?                      inet:ip-address-no-zone
            +--ro configured-subscription-state?             enumeration {configured}?
            +--rw receivers
               +--rw receiver* [name]
                  +--rw name                      string
                  +--ro sent-event-records?       yang:zero-based-counter64
                  +--ro excluded-event-records?   yang:zero-based-counter64
                  +--ro state                     enumeration
                  +---x reset {configured}?
                     +--ro output
                        +--ro time    yang:date-and-time
    
      rpcs:
        +---x establish-subscription
        |  +---w input
        |  |  +---w (target)
        |  |  |  +--:(stream)
        |  |  |     +---w (stream-filter)?
        |  |  |     |  +--:(by-reference)
        |  |  |     |  |  +---w stream-filter-name             stream-filter-ref
        |  |  |     |  +--:(within-subscription)
        |  |  |     |     +---w (filter-spec)?
        |  |  |     |        +--:(stream-subtree-filter)
        |  |  |     |        |  +---w stream-subtree-filter?   <anydata> {subtree}?
        |  |  |     |        +--:(stream-xpath-filter)
        |  |  |     |           +---w stream-xpath-filter?     yang:xpath1.0 {xpath}?
        |  |  |     +---w stream                               stream-ref
        |  |  |     +---w replay-start-time?                   yang:date-and-time {replay}?
        |  |  +---w stop-time?                                 yang:date-and-time
        |  |  +---w dscp?                                      inet:dscp {dscp}?
        |  |  +---w weighting?                                 uint8 {qos}?
        |  |  +---w dependency?                                subscription-id {qos}?
        |  |  +---w encoding?                                  encoding
        |  +--ro output
        |     +--ro id                            subscription-id
        |     +--ro replay-start-time-revision?   yang:date-and-time {replay}?
        +---x modify-subscription
        |  +---w input
        |     +---w id                                         subscription-id
        |     +---w (target)
        |     |  +--:(stream)
        |     |     +---w (stream-filter)?
        |     |        +--:(by-reference)
        |     |        |  +---w stream-filter-name             stream-filter-ref
        |     |        +--:(within-subscription)
        |     |           +---w (filter-spec)?
        |     |              +--:(stream-subtree-filter)
        |     |              |  +---w stream-subtree-filter?   <anydata> {subtree}?
        |     |              +--:(stream-xpath-filter)
        |     |                 +---w stream-xpath-filter?     yang:xpath1.0 {xpath}?
        |     +---w stop-time?                                 yang:date-and-time
        +---x delete-subscription
        |  +---w input
        |     +---w id    subscription-id
        +---x kill-subscription
           +---w input
              +---w id    subscription-id
    
      notifications:
        +---n replay-completed {replay}?
        |  +--ro id    subscription-id
        +---n subscription-completed {configured}?
        |  +--ro id    subscription-id
        +---n subscription-modified
        |  +--ro id                                         subscription-id
        |  +--ro (target)
        |  |  +--:(stream)
        |  |     +--ro (stream-filter)?
        |  |     |  +--:(by-reference)
        |  |     |  |  +--ro stream-filter-name             stream-filter-ref
        |  |     |  +--:(within-subscription)
        |  |     |     +--ro (filter-spec)?
        |  |     |        +--:(stream-subtree-filter)
        |  |     |        |  +--ro stream-subtree-filter?   <anydata> {subtree}?
        |  |     |        +--:(stream-xpath-filter)
        |  |     |           +--ro stream-xpath-filter?     yang:xpath1.0 {xpath}?
        |  |     +--ro stream                               stream-ref
        |  |     +--ro replay-start-time?                   yang:date-and-time {replay}?
        |  +--ro stop-time?                                 yang:date-and-time
        |  +--ro dscp?                                      inet:dscp {dscp}?
        |  +--ro weighting?                                 uint8 {qos}?
        |  +--ro dependency?                                subscription-id {qos}?
        |  +--ro transport?                                 transport {configured}?
        |  +--ro encoding?                                  encoding
        |  +--ro purpose?                                   string {configured}?
        +---n subscription-resumed
        |  +--ro id    subscription-id
        +---n subscription-started {configured}?
        |  +--ro id                                         subscription-id
        |  +--ro (target)
        |  |  +--:(stream)
        |  |     +--ro (stream-filter)?
        |  |     |  +--:(by-reference)
        |  |     |  |  +--ro stream-filter-name             stream-filter-ref
        |  |     |  +--:(within-subscription)
        |  |     |     +--ro (filter-spec)?
        |  |     |        +--:(stream-subtree-filter)
        |  |     |        |  +--ro stream-subtree-filter?   <anydata> {subtree}?
        |  |     |        +--:(stream-xpath-filter)
        |  |     |           +--ro stream-xpath-filter?     yang:xpath1.0 {xpath}?
        |  |     +--ro stream                               stream-ref
        |  |     +--ro replay-start-time?                   yang:date-and-time {replay}?
        |  |     +--ro replay-previous-event-time?          yang:date-and-time {replay}?
        |  +--ro stop-time?                                 yang:date-and-time
        |  +--ro dscp?                                      inet:dscp {dscp}?
        |  +--ro weighting?                                 uint8 {qos}?
        |  +--ro dependency?                                subscription-id {qos}?
        |  +--ro transport?                                 transport {configured}?
        |  +--ro encoding?                                  encoding
        |  +--ro purpose?                                   string {configured}?
        +---n subscription-suspended
        |  +--ro id        subscription-id
        |  +--ro reason    identityref
        +---n subscription-terminated
           +--ro id        subscription-id
           +--ro reason    identityref
    
  • History:

    • Initial release train: 20.10

    • 24.10 release train: Loaded by default even without YANG Push

ietf-system.yang

The ietf-system.yang module defines a YANG data model for configuring and identifying common system properties within a device containing a NETCONF server. It provides configuration and monitoring capabilities for system identification, time management, user authentication, DNS-resolver configuration, and system control operations.

This module is used to configure system properties in devices managed by NETCONF.

The features provided by this module are fixed and cannot be changed.

Supported Configurations:

  • Hostname

  • Clock

  • Contact: Not supported

  • Location: Not supported

  • NTP: Not supported

  • DNS Resolver: Not supported

  • Radius: Not supported

  • Authentication: Not supported

Supported RPC:

  • set-current-datetime

  • system-restart

  • system-shutdown

Supported Read-Only Data:

  • system-state:

    • platform

    • clock

Note

  • This module is for instructional purposes only and is not supported as a production module at this time.

  • The server must be run with sudo when using this module.

  • The SIL code for implementation can be found in the libietf-system directory, while the linux instrumentation code is available in the libsystem-linux directory. And also yumaworks-system-dev.yang, this module contains deviation statements used by netconfd-pro to mark some nodes as 'not-supported'.

Use WITH_IETF_SYSTEM=1 make flags in order to build the libietf-system directory and install the SIL code for the ietf-system YANG module. Refer to YumaPro README for build instructions.

  • Source Document: RFC 7317

  • GitHub File: ietf-system@2014-08-06.yang

  • YANG Tree:

    module: ietf-system
      +--rw system
      |  +--rw contact?          string
      |  +--rw hostname?         inet:domain-name
      |  +--rw location?         string
      |  +--rw clock
      |  |  +--rw (timezone)?
      |  |     +--:(timezone-name) {timezone-name}?
      |  |     |  +--rw timezone-name?         timezone-name
      |  |     +--:(timezone-utc-offset)
      |  |        +--rw timezone-utc-offset?   int16
      |  +--rw ntp! {ntp}?
      |  |  +--rw enabled?   boolean
      |  |  +--rw server* [name]
      |  |     +--rw name                string
      |  |     +--rw (transport)
      |  |     |  +--:(udp)
      |  |     |     +--rw udp
      |  |     |        +--rw address    inet:host
      |  |     |        +--rw port?      inet:port-number {ntp-udp-port}?
      |  |     +--rw association-type?   enumeration
      |  |     +--rw iburst?             boolean
      |  |     +--rw prefer?             boolean
      |  +--rw dns-resolver
      |  |  +--rw search*    inet:domain-name
      |  |  +--rw server* [name]
      |  |  |  +--rw name                 string
      |  |  |  +--rw (transport)
      |  |  |     +--:(udp-and-tcp)
      |  |  |        +--rw udp-and-tcp
      |  |  |           +--rw address    inet:ip-address
      |  |  |           +--rw port?      inet:port-number {dns-udp-tcp-port}?
      |  |  +--rw options
      |  |     +--rw timeout?    uint8
      |  |     +--rw attempts?   uint8
      |  +--rw radius {radius}?
      |  |  +--rw server* [name]
      |  |  |  +--rw name                   string
      |  |  |  +--rw (transport)
      |  |  |  |  +--:(udp)
      |  |  |  |     +--rw udp
      |  |  |  |        +--rw address                inet:host
      |  |  |  |        +--rw authentication-port?   inet:port-number
      |  |  |  |        +--rw shared-secret          string
      |  |  |  +--rw authentication-type?   identityref
      |  |  +--rw options
      |  |     +--rw timeout?    uint8
      |  |     +--rw attempts?   uint8
      |  +--rw authentication {authentication}?
      |     +--rw user-authentication-order*   identityref
      |     +--rw user* [name] {local-users}?
      |        +--rw name              string
      |        +--rw password?         ianach:crypt-hash
      |        +--rw authorized-key* [name]
      |           +--rw name         string
      |           +--rw algorithm    string
      |           +--rw key-data     binary
      +--ro system-state
         +--ro platform
         |  +--ro os-name?      string
         |  +--ro os-release?   string
         |  +--ro os-version?   string
         |  +--ro machine?      string
         +--ro clock
            +--ro current-datetime?   yang:date-and-time
            +--ro boot-datetime?      yang:date-and-time
    
      rpcs:
        +---x set-current-datetime
        |  +---w input
        |     +---w current-datetime    yang:date-and-time
        +---x system-restart
        +---x system-shutdown
    
  • History:

    • Initial release train: 23.10T-8

ietf-system-capabilities.yang

Defines the /system-capabilities container.

This module is loaded if the --with-notifications=true parameter is used.

No objects except the top container are supported at this time.

  • Source Document: RFC 9196

  • GitHub File: ietf-system-capabilities@2022-02-17.yang

  • YANG Tree:

    module: ietf-system-capabilities
      +--ro system-capabilities
         +--ro datastore-capabilities* [datastore]
            +--ro datastore                -> /yanglib:yang-library/datastore/name
            +--ro per-node-capabilities* []
               +--ro (node-selection)?
                  +--:(node-selector)
                     +--ro node-selector?   nacm:node-instance-identifier
    
  • History:

    • Initial release train: 23.10T

ietf-x509-cert-to-name.yang

This module contains the 'cert-to-name' grouping that is used in the yumaworks-cert-usermap.yang module to configure client certificate to username mappings for NETCONF over TLS sessions.

The --with-yumaworks-cert-usermap and --with-netconf-tls parameters must be set to 'true' for this module to be present in the server.

  • Source Document: RFC 7407

  • GitHub File: ietf-x509-cert-to-name@2014-12-10.yang

  • YANG Tree:

    module: ietf-x509-cert-to-name
    
      grouping cert-to-name:
        +-- cert-to-name* [id]
           +-- id?            uint32
           +-- fingerprint    x509c2n:tls-fingerprint
           +-- map-type       identityref
           +-- name           string
    
  • History:

    • Initial release train: 21.10

Examples

The tls-fingerprint data type requires a very specific pattern and length. The full fingerprint must be provided.

There are several Hash Type Algorithms that are supported.

Registry value       First Octet
--------------       -----------
- md5(1)              01
- sha1(2)             02
- sha224(3)           03
- sha256(4)           04
- sha384(5)           05
- sha512(6)           06

The 'openssl' command can be used with different hash types to generate different fingerprints, depending on the hash type.

The most common hash type used is sha1(2).

SHA-1 Example

openssl x509 -noout -fingerprint -sha1 -inform pem -in client.crt
sha1 Fingerprint=08:29:DF:75:6C:FD:27:19:68:3E:8D:D4:ED:1E:96:98:49:EA:A9:86

YANG tls-fingerprint value:
02:08:29:DF:75:6C:FD:27:19:68:3E:8D:D4:ED:1E:96:98:49:EA:A9:86

SHA-224 Example

openssl x509 -noout -fingerprint -sha224 -inform pem -in client.crt
sha224 Fingerprint=7A:B5:61:85:06:0E:09:82:1D:E4:F6:1D:C9:3A:93:08:F3:85:29:0E:32:E7:67:6F:C5:6B:03:41

YANG tls-fingerprint value:
03:7A:B5:61:85:06:0E:09:82:1D:E4:F6:1D:C9:3A:93:08:F3:85:29:0E:32:E7:67:6F:C5:6B:03:41

SHA-512 Example

openssl x509 -noout -fingerprint -sha512 -inform pem -in client.crt
sha512 Fingerprint=A1:3A:98:0D:4E:E6:E5:54:B6:DF:48:CC:D9:E9:76:A8:37:8E:2E:D5:5F:01:5F:A1:C0:2C:35:98:06:6E:3F:E1:95:EF:90:32:AB:30:06:D4:09:CC:DA:1E:05:66:E0:13:CF:5F:CC:A9:B7:AE:3C:B6:95:E5:47:24:F4:F1:FC:E6

YANG tls-fingerprint value:
06:A1:3A:98:0D:4E:E6:E5:54:B6:DF:48:CC:D9:E9:76:A8:37:8E:2E:D5:5F:01:5F:A1:C0:2C:35:98:06:6E:3F:E1:95:EF:90:32:AB:30:06:D4:09:CC:DA:1E:05:66:E0:13:CF:5F:CC:A9:B7:AE:3C:B6:95:E5:47:24:F4:F1:FC:E6

ietf-yang-library.yang

This module contains the YANG Module Library

  • NMDA version (/yang-library)

  • non-NMDA version (/modules-state)

It is fully supported and provides information about the YANG modules loaded on the server. The file libietf-yang-library/src/ietf-yang-library.c contains the SIL callback functions for this module.

The --with-nmda CLI parameter must be set to true for the NMDA version of this module to be used in the server.

Refer to the :yang-library capability section for more details.

  • Source Document: RFC 8525

  • GitHub File: ietf-yang-library@2019-01-04.yang

  • YANG Tree:

    module: ietf-yang-library
      +--ro yang-library
      |  +--ro module-set* [name]
      |  |  +--ro name                  string
      |  |  +--ro module* [name]
      |  |  |  +--ro name         yang:yang-identifier
      |  |  |  +--ro revision?    revision-identifier
      |  |  |  +--ro namespace    inet:uri
      |  |  |  +--ro location*    inet:uri
      |  |  |  +--ro submodule* [name]
      |  |  |  |  +--ro name        yang:yang-identifier
      |  |  |  |  +--ro revision?   revision-identifier
      |  |  |  |  +--ro location*   inet:uri
      |  |  |  +--ro feature*     yang:yang-identifier
      |  |  |  +--ro deviation*   -> ../../module/name
      |  |  +--ro import-only-module* [name revision]
      |  |     +--ro name         yang:yang-identifier
      |  |     +--ro revision     union
      |  |     +--ro namespace    inet:uri
      |  |     +--ro location*    inet:uri
      |  |     +--ro submodule* [name]
      |  |        +--ro name        yang:yang-identifier
      |  |        +--ro revision?   revision-identifier
      |  |        +--ro location*   inet:uri
      |  +--ro schema* [name]
      |  |  +--ro name          string
      |  |  +--ro module-set*   -> ../../module-set/name
      |  +--ro datastore* [name]
      |  |  +--ro name      ds:datastore-ref
      |  |  +--ro schema    -> ../../schema/name
      |  +--ro content-id    string
      x--ro modules-state
         x--ro module-set-id    string
         x--ro module* [name revision]
            x--ro name                yang:yang-identifier
            x--ro revision            union
            +--ro schema?             inet:uri
            x--ro namespace           inet:uri
            x--ro feature*            yang:yang-identifier
            x--ro deviation* [name revision]
            |  x--ro name        yang:yang-identifier
            |  x--ro revision    union
            x--ro conformance-type    enumeration
            x--ro submodule* [name revision]
               x--ro name        yang:yang-identifier
               x--ro revision    union
               +--ro schema?     inet:uri
    
      notifications:
        +---n yang-library-update
        |  +--ro content-id    -> /yang-library/content-id
        x---n yang-library-change
           x--ro module-set-id    -> /modules-state/module-set-id
    
  • History:

    • Initial release train: 14.08

ietf-yang-patch.yang

This module contains the YANG Patch Media Type, defined in RFC 8072. It is fully supported and provides the template for complex RESTCONF protocol edit requests. The DB-API protocol uses the yang-patch grouping as well. The file ncx/yang_patch.c contains basic support for this module.

The file agt/agt_yangpatch.c provides RESTCONF support for this module.

  • Source Document: RFC 8072

  • GitHub File: ietf-yang-patch@2017-02-22.yang

  • YANG Tree:

    module: ietf-yang-patch
    
      grouping yang-patch
        +-- yang-patch
           +-- patch-id    string
           +-- comment?    string
           +-- edit* [edit-id]
              +-- edit-id?     string
              +-- operation    enumeration
              +-- target       target-resource-offset
              +-- point?       target-resource-offset
              +-- where?       enumeration
              +-- value?       <anydata>
      grouping yang-patch-status
        +-- yang-patch-status
           +-- patch-id        string
           +-- (global-status)?
           |  +--:(global-errors)
           |  |  +-- errors
           |  |     +-- error* []
           |  |        +-- error-type       enumeration
           |  |        +-- error-tag        string
           |  |        +-- error-app-tag?   string
           |  |        +-- error-path?      instance-identifier
           |  |        +-- error-message?   string
           |  |        +-- error-info?      <anyxml>
           |  +--:(ok)
           |     +-- ok?       empty
           +-- edit-status
              +-- edit* [edit-id]
                 +-- edit-id?        string
                 +-- (edit-status-choice)?
                    +--:(ok)
                    |  +-- ok?       empty
                    +--:(errors)
                       +-- errors
                          +-- error* []
                             +-- error-type       enumeration
                             +-- error-tag        string
                             +-- error-app-tag?   string
                             +-- error-path?      instance-identifier
                             +-- error-message?   string
                             +-- error-info?      <anyxml>
    

ietf-yang-push.yang

This module contains the YANG Push feature APIs.

This module is loaded if the --bundle=yang-push parameter is used to start the server, and the --with-notifications=true parameter is also used.

  • Source Document: RFC 8641

  • GitHub File: ietf-yang-push@2019-09-09.yang

  • YANG Tree:

    module: ietf-yang-push
    
      augment /sn:establish-subscription/sn:input:
        +---w (update-trigger)?
           +--:(periodic)
           |  +---w periodic!
           |     +---w period         centiseconds
           |     +---w anchor-time?   yang:date-and-time
           +--:(on-change) {on-change}?
              +---w on-change!
                 +---w dampening-period?   centiseconds
                 +---w sync-on-start?      boolean
                 +---w excluded-change*    change-type
      augment /sn:establish-subscription/sn:input/sn:target:
        +--:(datastore)
           +-- datastore                               identityref
           +-- (selection-filter)?
              +--:(by-reference)
              |  +-- selection-filter-ref              selection-filter-ref
              +--:(within-subscription)
                 +-- (filter-spec)?
                    +--:(datastore-subtree-filter)
                    |  +-- datastore-subtree-filter?   <anydata> {sn:subtree}?
                    +--:(datastore-xpath-filter)
                       +-- datastore-xpath-filter?     yang:xpath1.0 {sn:xpath}?
      augment /sn:modify-subscription/sn:input:
        +---w (update-trigger)?
           +--:(periodic)
           |  +---w periodic!
           |     +---w period         centiseconds
           |     +---w anchor-time?   yang:date-and-time
           +--:(on-change) {on-change}?
              +---w on-change!
                 +---w dampening-period?   centiseconds
      augment /sn:modify-subscription/sn:input/sn:target:
        +--:(datastore)
           +-- datastore                               identityref
           +-- (selection-filter)?
              +--:(by-reference)
              |  +-- selection-filter-ref              selection-filter-ref
              +--:(within-subscription)
                 +-- (filter-spec)?
                    +--:(datastore-subtree-filter)
                    |  +-- datastore-subtree-filter?   <anydata> {sn:subtree}?
                    +--:(datastore-xpath-filter)
                       +-- datastore-xpath-filter?     yang:xpath1.0 {sn:xpath}?
      augment /sn:subscription-started:
        +--ro (update-trigger)?
           +--:(periodic)
           |  +--ro periodic!
           |     +--ro period         centiseconds
           |     +--ro anchor-time?   yang:date-and-time
           +--:(on-change) {on-change}?
              +--ro on-change!
                 +--ro dampening-period?   centiseconds
                 +--ro sync-on-start?      boolean
                 +--ro excluded-change*    change-type
      augment /sn:subscription-started/sn:target:
        +--:(datastore)
           +-- datastore                               identityref
           +-- (selection-filter)?
              +--:(by-reference)
              |  +-- selection-filter-ref              selection-filter-ref
              +--:(within-subscription)
                 +-- (filter-spec)?
                    +--:(datastore-subtree-filter)
                    |  +-- datastore-subtree-filter?   <anydata> {sn:subtree}?
                    +--:(datastore-xpath-filter)
                       +-- datastore-xpath-filter?     yang:xpath1.0 {sn:xpath}?
      augment /sn:subscription-modified:
        +--ro (update-trigger)?
           +--:(periodic)
           |  +--ro periodic!
           |     +--ro period         centiseconds
           |     +--ro anchor-time?   yang:date-and-time
           +--:(on-change) {on-change}?
              +--ro on-change!
                 +--ro dampening-period?   centiseconds
                 +--ro sync-on-start?      boolean
                 +--ro excluded-change*    change-type
      augment /sn:subscription-modified/sn:target:
        +--:(datastore)
           +-- datastore                               identityref
           +-- (selection-filter)?
              +--:(by-reference)
              |  +-- selection-filter-ref              selection-filter-ref
              +--:(within-subscription)
                 +-- (filter-spec)?
                    +--:(datastore-subtree-filter)
                    |  +-- datastore-subtree-filter?   <anydata> {sn:subtree}?
                    +--:(datastore-xpath-filter)
                       +-- datastore-xpath-filter?     yang:xpath1.0 {sn:xpath}?
      augment /sn:filters:
        +--rw selection-filter* [filter-id]
           +--rw filter-id                         string
           +--rw (filter-spec)?
              +--:(datastore-subtree-filter)
              |  +--rw datastore-subtree-filter?   <anydata> {sn:subtree}?
              +--:(datastore-xpath-filter)
                 +--rw datastore-xpath-filter?     yang:xpath1.0 {sn:xpath}?
      augment /sn:subscriptions/sn:subscription:
        +--rw (update-trigger)?
           +--:(periodic)
           |  +--rw periodic!
           |     +--rw period         centiseconds
           |     +--rw anchor-time?   yang:date-and-time
           +--:(on-change) {on-change}?
              +--rw on-change!
                 +--rw dampening-period?   centiseconds
                 +--rw sync-on-start?      boolean
                 +--rw excluded-change*    change-type
      augment /sn:subscriptions/sn:subscription/sn:target:
        +--:(datastore)
           +--rw datastore                               identityref
           +--rw (selection-filter)?
              +--:(by-reference)
              |  +--rw selection-filter-ref              selection-filter-ref
              +--:(within-subscription)
                 +--rw (filter-spec)?
                    +--:(datastore-subtree-filter)
                    |  +--rw datastore-subtree-filter?   <anydata> {sn:subtree}?
                    +--:(datastore-xpath-filter)
                       +--rw datastore-xpath-filter?     yang:xpath1.0 {sn:xpath}?
    
      rpcs:
        +---x resync-subscription {on-change}?
           +---w input
              +---w id    sn:subscription-id
    
      notifications:
        +---n push-update
        |  +--ro id?                   sn:subscription-id
        |  +--ro datastore-contents?   <anydata>
        |  +--ro incomplete-update?    empty
        +---n push-change-update {on-change}?
           +--ro id?                  sn:subscription-id
           +--ro datastore-changes
           |  +--ro yang-patch
           |     +--ro patch-id    string
           |     +--ro comment?    string
           |     +--ro edit* [edit-id]
           |        +--ro edit-id      string
           |        +--ro operation    enumeration
           |        +--ro target       target-resource-offset
           |        +--ro point?       target-resource-offset
           |        +--ro where?       enumeration
           |        +--ro value?       <anydata>
           +--ro incomplete-update?   empty
    
  • History:

    • Initial release train: 20.10

ietf-yang-schema-mount.yang

This module contains the YANG Schema Mount YANG definitions.

  • 'mount-point' extension: The server supports this extension to specify a mount point within a YANG module.

  • 'schema-mounts' container: monitoring information used by a client application to identify the mount points implemented by the server and configured to be used

The --with-schema-mount=true parameter must be used for this module to be present in the server.

  • Source Document: RFC 8528

  • GitHub File: ietf-yang-schema-mount@2019-01-14.yang

  • YANG Tree:

    module: ietf-yang-schema-mount
      +--ro schema-mounts
         +--ro namespace* [prefix]
         |  +--ro prefix    yang:yang-identifier
         |  +--ro uri?      inet:uri
         +--ro mount-point* [module label]
            +--ro module                 yang:yang-identifier
            +--ro label                  yang:yang-identifier
            +--ro config?                boolean
            +--ro (schema-ref)
               +--:(inline)
               |  +--ro inline!
               +--:(shared-schema)
                  +--ro shared-schema!
                     +--ro parent-reference*   yang:xpath1.0
    
  • History:

    • Initial release train: 22.10T

ietf-yang-structure-ext.yang

This module contains the sx:structure and sx:augment-structure YANG extensions.

ietf-yang-types.yang

This module contains the standard YANG general user data types. These types are available for commonly used derived types. A YANG module author should check this module first, before creating any new data types with the YANG typedef statement.

There are no accessible objects in this module, so there are no SIL callback functions. The YANG data-types are supported within the YumaPro engine core modules, such as ncx/val.c and ncx/xml_wr.c.

nc-notifications.yang

This module is based on the definition in RFC 5277, the NETCONF Notifications specification. It contains the <replayComplete> and <notificationComplete> notification event definitions.

The file agt/agt_not.c contains the SIL support code for this module.

  • Source Document: None: Based on RFC 5277

  • GitHub File: None

  • YANG Tree:

    module: nc-notifications
      +--ro netconf
         +--ro streams
            +--ro stream* [name]
               +--ro name                     ncEvent:streamNameType
               +--ro description              string
               +--ro replaySupport            boolean
               +--ro replayLogCreationTime?   yang:date-and-time
    
      notifications:
        +---n replayComplete
        +---n notificationComplete
    
  • History:

    • Initial release train: 12.09

notifications.yang

This module is based on the definition in RFC 5277, the NETCONF Notifications specification.

  • All of this RFC is supported in the server.

  • This module contains the <create-subscription> RPC operation.

  • The notification replay feature is controlled with the --eventlog-size configuration parameter.

  • The <create-subscription> operation is fully supported, including XPath and subtree filters.

  • The ietf-netconf-acm.yang module can be used to control what notification events a user is allowed to receive.

  • The <create-subscription> filter allows the client to select which notification events it wants to receive.

The file agt/agt_not.c contains the SIL callback functions for this modules.

  • Source Document: None: Based on RFC 5277

  • GitHub File: None

  • YANG Tree:

    module: notifications
      +--ro notification
         +--ro eventTime      yang:date-and-time
         +--ro sequence-id?   uint32
    
      rpcs:
        +---x create-subscription
           +---w input
              +---w stream?      streamNameType
              +---w filter?      <anyxml>
              +---w startTime?   yang:date-and-time
              +---w stopTime?    yang:date-and-time
    
  • History:

    • Initial release train: 12.09