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 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
    

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>
    

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
    

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>
    

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}?
    

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
    

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
    

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
    

ietf-restconf.yang

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.

  • 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
    

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 the 22.10T release train

  • Source Document: draft-ietf-core-sid-18.txt

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

  • YANG Tree:

    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
    

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_YUMA_INTERFACES=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 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
    

ietf-subscribed-notifications.yang

This module contains notification subscription management features.

The --bundle=yang-push parameter must be used for this module to be present in the server.

  • Added in release 20.10-0

  • 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
    

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
    

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
    

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.

The --bundle=yang-push parameter must be used for this module to be present in the server.

  • Added in release 20.10-0

  • Source Document: RFC 8641

  • GitHub File: ietf-yang-push@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
    

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
    

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
    

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