Cisco-IOS-XE-ncch-cfg

This module contains a collection of YANG definitions for configuration of NETCONF server Call Home. Copyright (c) 2020 by Cisco...

  • Version: 2020-07-01

    Cisco-IOS-XE-ncch-cfg@2020-07-01


    
      module Cisco-IOS-XE-ncch-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XE-ncch-cfg";
    
        prefix ncch-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import cisco-semver {
          prefix cisco-semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
    
         Postal: 170 W Tasman Drive
         San Jose, CA 95134
    
         Tel: +1 1800 553-NETS
    
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG
         definitions for configuration of NETCONF server Call Home.
         Copyright (c) 2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2020-07-01" {
          description "Initial revision";
          reference
            "1.0.0";
    
        }
    
        cisco-semver:module-version "1.0.0";
    
        typedef ncch-address-type {
          type enumeration {
            enum "address-unspecified" {
              value 0;
              description
                "Indicates address has not been specified.";
            }
            enum "ip-address" {
              value 1;
              description
                "Indicates IP address.";
            }
            enum "domain-name" {
              value 2;
              description
                "Indicates Domain name.";
            }
          }
          description
            "Defines the supported address type.";
        }
    
        typedef ncch-transport {
          type enumeration {
            enum "transport-unspecified" {
              value 0;
              description
                "Indicates transport has not been specified.";
            }
            enum "ssh" {
              value 1;
              description
                "Indicates SSH-specific call-home transport
               configuration.";
            }
          }
          description
            "Defines the transports supported by NETCONF Call Home.";
        }
    
        typedef ncch-start-with {
          type enumeration {
            enum "first-listed" {
              value 0;
              description
                "Indicates that reconnection should start with
               the first endpoint listed.";
            }
            enum "last-connected" {
              value 1;
              description
                "Indicates that reconnection should start with
               the endpoint last connected to.  If no previous
               connection has ever been established, then the
               first endpoint configured is used.";
            }
            enum "random-selection" {
              value 2;
              description
                "Indicates that reconnection should start with
               a random endpoint.";
            }
          }
          description
            "Specifies which of the endpoints this NETCONF server
           should start with when trying to connect a NETCONF client.";
        }
    
        grouping ncch-ssh {
          description
            "Defines the SSH-specific call home transport
           configuration.";
          leaf tcpc-remote-port {
            type uint16;
            default "4334";
            description
              "The NETCONF server will attempt to connect
             to the IANA-assigned well-known port 4334
             if no value is specified.";
          }
    
          leaf tcpc-local-ipaddr {
            type inet:ip-address;
            default "0.0.0.0";
            description
              "Specifies the local IP address to bind to for when
             connecting to the remote peer.";
          }
    
          leaf tcpc-local-port {
            type uint16;
            default "0";
            description
              "The local IP port number to bind to for when connecting
             to the remote peer.  The port number '0', which is the
             default value, indicates that any available local port
             number may be used.";
          }
    
          leaf tcpc-local-vrf {
            type string;
            default "";
            description
              "Network instance name for the local VRF";
          }
    
          choice tcpc-remote-addr-type-choice {
            default "address-unspecified";
            description
              "Selects the address type of the remote peer to
             establish a connection with.";
            case address-unspecified {
              description
                "Indicates address has not been specified.";
              leaf tcpc-remote-addr-unset {
                type boolean;
                default "true";
                description
                  "Indicates address has not been specified.
                 Value will be passed as-is.";
              }
            }  // case address-unspecified
    
            case ip-address {
              description
                "The IP address of the remote peer to
               establish a connection with.";
              leaf tcpc-remote-ipaddr {
                type inet:ip-address;
                description
                  "Specifies the IP address of the remote peer to
                 establish a connection with.";
              }
            }  // case ip-address
          }  // choice tcpc-remote-addr-type-choice
        }  // grouping ncch-ssh
    
        grouping ncch-client-endpoint-cnfg {
          description
            "A list of endpoints that the NETCONF server
           will attempt to connect to in the specified
           sequence.  Defining more than one enables
           high-availability.";
          leaf name {
            type string;
            description
              "An arbitrary name for the endpoint.";
          }
    
          choice transport-choice {
            default "transport-unspecified";
            description
              "Selects between available transports.";
            case transport-unspecified {
              description
                "Indicates transport has not been specified.";
              leaf transport-unset {
                type boolean;
                default "true";
                description
                  "Indicates transport has not been specified.
                 Value will be passed as-is.";
              }
            }  // case transport-unspecified
    
            case ssh {
              description
                "Indicates SSH-specific call-home transport
               configuration.";
              container ssh {
                description
                  "Indicates SSH-specific call-home transport
                 configuration.";
                uses ncch-cfg:ncch-ssh;
              }  // container ssh
            }  // case ssh
          }  // choice transport-choice
        }  // grouping ncch-client-endpoint-cnfg
    
        grouping ncch-reconnect-strategy {
          description
            "Defines the reconnection strategy that directs how this NETCONF server
           reconnects to a NETCONF client, after discovering its connection
           to the client has dropped, even if due to a reboot.";
          leaf start-with {
            type ncch-start-with;
            default "first-listed";
            description
              "Specifies which of the NETCONF client's endpoints
             the NETCONF server should start with when trying
             to connect to the NETCONF client.";
          }
    
          leaf max-attempts {
            type uint8 {
              range "1 .. 255";
            }
            default "3";
            description
              "Specifies the number times the NETCONF server tries
             to connect to a specific endpoint before moving on
             to the next endpoint in the list (round robin).";
          }
        }  // grouping ncch-reconnect-strategy
    
        grouping ncch-client-cnfg {
          description
            "Configures a NETCONF client.";
          leaf name {
            type string;
            description
              "An arbitrary name for the remote NETCONF client.";
          }
    
          container ncch-client-endpoints {
            description
              "Configure a list of endpoints of the NETCONF client.";
            list ncch-client-endpoint {
              key "name";
              description
                "List of endpoints of the NETCONF client.";
              uses ncch-cfg:ncch-client-endpoint-cnfg;
            }  // list ncch-client-endpoint
          }  // container ncch-client-endpoints
    
          container reconnect-strategy {
            description
              "The reconnection strategy directs how a NETCONF server
             reconnects to a NETCONF client, after discovering its
             connection to the client has dropped, even if due to a
             reboot. The NETCONF server starts with the specified
             endpoint and tries to connect to it max-attempts times
             before trying the next endpoint in the list (round
             robin).";
            uses ncch-cfg:ncch-reconnect-strategy;
          }  // container reconnect-strategy
        }  // grouping ncch-client-cnfg
    
        container netconf-callhome-config {
          description
            "Configures NETCONF server Call Home behavior.";
          container ncch-clients {
            description
              "Configure a list of NETCONF clients the NETCONF server is to
             maintain simultaneous call-home connections with.";
            list ncch-client {
              key "name";
              description
                "List of NETCONF clients the NETCONF server is to
               maintain simultaneous call-home connections with.";
              uses ncch-cfg:ncch-client-cnfg;
            }  // list ncch-client
          }  // container ncch-clients
        }  // container netconf-callhome-config
      }  // module Cisco-IOS-XE-ncch-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.