huawei-syslog

System log.

  • Version: 2021-05-26

    huawei-syslog@2021-05-26


    
      module huawei-syslog {
    
        yang-version 1;
    
        namespace
          "urn:huawei:yang:huawei-syslog";
    
        prefix syslog;
    
        import ietf-inet-types {
          prefix inet;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-network-instance {
          prefix ni;
        }
        import huawei-ssl {
          prefix ssl;
        }
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-pub-type {
          prefix pub-type;
        }
    
        organization
          "Huawei Technologies Co., Ltd.";
    
        contact
          "Huawei Industrial Base
         Bantian, Longgang
         Shenzhen 518129
         People's Republic of China
         Website: http://www.huawei.com
         Email: support@huawei.com";
    
        description "System log.";
    
        revision "2021-05-26" {
          description
            "Add ssl-policy-name node.";
          reference
            "Huawei private.";
    
        }
    
        revision "2021-03-17" {
          description
            "Add collect-log-process and collect-log.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-07-21" {
          description "Add character-set node.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-07-10" {
          description "Add container and rpc.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-06-02" {
          description
            "Modify information of leafs.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-05-22" {
          description
            "Add the brief format of syslog host.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-02-24" {
          description "Add the syslog node.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-02-19" {
          description
            "Add the name and activated of syslog host.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-02-11" {
          description
            "Add the severity mask and facility mask of syslog host.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-01-20" {
          description "Add syslogserver.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-09-24" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "log";
    
        typedef loghost-facility {
          type enumeration {
            enum "local0" {
              value 16;
              description "Log server local 0.";
            }
            enum "local1" {
              value 17;
              description "Log server local 1.";
            }
            enum "local2" {
              value 18;
              description "Log server local 2.";
            }
            enum "local3" {
              value 19;
              description "Log server local 3.";
            }
            enum "local4" {
              value 20;
              description "Log server local 4.";
            }
            enum "local5" {
              value 21;
              description "Log server local 5.";
            }
            enum "local6" {
              value 22;
              description "Log server local 6.";
            }
            enum "local7" {
              value 23;
              description "Log server local 7.";
            }
          }
          description
            "The type of log host facility.";
        }
    
        typedef log-level {
          type enumeration {
            enum "emergencies" {
              value 0;
              description
                "The log host level is emergencies.";
            }
            enum "alert" {
              value 1;
              description
                "The log host level is alert.";
            }
            enum "critical" {
              value 2;
              description
                "The log host level is critical.";
            }
            enum "error" {
              value 3;
              description
                "The log host level is error.";
            }
            enum "warning" {
              value 4;
              description
                "The log host level is warning.";
            }
            enum "notification" {
              value 5;
              description
                "The log host level is notification.";
            }
            enum "informational" {
              value 6;
              description
                "The log host level is informational.";
            }
            enum "debugging" {
              value 7;
              description
                "The log host level is debugging.";
            }
          }
          description "The type of log level.";
        }
    
        typedef log-type {
          type enumeration {
            enum "eventlog" {
              value 2;
              description "The event log.";
            }
            enum "operlog" {
              value 1;
              description "The operation log.";
            }
            enum "alarmlog" {
              value 5;
              description "The alarm log.";
            }
            enum "diaglog" {
              value 4;
              description "The diagnose log.";
            }
            enum "notificationlog" {
              value 10;
              description
                "The notification Log.";
            }
            enum "maintainlog" {
              value 11;
              description "The maintain Log.";
            }
            enum "servicelog" {
              value 18;
              description "The service log.";
            }
          }
          description "The log type.";
        }
    
        typedef address-family-type {
          type enumeration {
            enum "ipv4" {
              value 1;
              description
                "The address type is IPv4.";
            }
            enum "ipv6" {
              value 2;
              description
                "The address type is IPv6.";
            }
          }
          description "The type of IP address.";
        }
    
        typedef timestamp {
          type enumeration {
            enum "date-boot" {
              value 11;
              description
                "Time elapsed since the system started. It is a relative time period.";
            }
            enum "date-second" {
              value 12;
              description
                "Date format with second precision.";
            }
            enum "date-tenthsecond" {
              value 13;
              description
                "Date format with tenth-second precision.";
            }
            enum "date-millisecond" {
              value 14;
              description
                "Date format with millisecond precision.";
            }
            enum "shortdate-second" {
              value 15;
              description
                "Short date format second precision.";
            }
            enum "shortdate-tenthsecond" {
              value 16;
              description
                "Short date format with tenth-second precision.";
            }
            enum "shortdate-millisecond" {
              value 17;
              description
                "Short date format with millisecond precision.";
            }
            enum "formatdate-second" {
              value 18;
              description
                "Format date format with second precision.";
            }
            enum "formatdate-tenthsecond" {
              value 19;
              description
                "Format date format with tenth-second precision.";
            }
            enum "formatdate-millisecond" {
              value 20;
              description
                "Format date format with millisecond precision.";
            }
          }
          description "The type of time stamp.";
        }
    
        typedef timestamp-format {
          type enumeration {
            enum "UTC" {
              value 0;
              description "UTC format.";
            }
            enum "localtime" {
              value 1;
              description "Local time format.";
            }
          }
          description "The time stamp format.";
        }
    
        typedef version-format {
          type enumeration {
            enum "rfc3164" {
              value 0;
              description "RFC3164.";
            }
            enum "rfc5424" {
              value 1;
              description "RFC5424.";
            }
          }
          description "The version format.";
        }
    
        typedef terminal-type {
          type enumeration {
            enum "CONSOLE" {
              value 1;
              description "Console access.";
            }
            enum "AUX" {
              value 2;
              description "Aux access.";
            }
            enum "TELNET" {
              value 3;
              description "Telnet access.";
            }
            enum "SSH" {
              value 4;
              description "SSH access.";
            }
            enum "MODEM" {
              value 5;
              description "Modem access.";
            }
            enum "FTP" {
              value 6;
              description "FTP access.";
            }
            enum "SWITCHLR" {
              value 7;
              description "SWITCHLR access.";
            }
            enum "SNMP" {
              value 8;
              description "SNMP access.";
            }
            enum "OPS" {
              value 9;
              description "OPS access.";
            }
            enum "EMS" {
              value 10;
              description "EMS access.";
            }
            enum "TM" {
              value 11;
              description "TM access.";
            }
            enum "LCT" {
              value 12;
              description "LCT access.";
            }
            enum "TL1" {
              value 13;
              description "TL1 access.";
            }
          }
          description "The terminal type.";
        }
    
        typedef logfile-type {
          type enumeration {
            enum "log" {
              value 1;
              description "Log logfile.";
            }
            enum "security" {
              value 3;
              description "Security logfile.";
            }
            enum "operation" {
              value 4;
              description "Operation logfile.";
            }
            enum "debug" {
              value 6;
              description "Debug logfile.";
            }
          }
          description "The type of log.";
        }
    
        typedef report-channel-type {
          type enumeration {
            enum "IETF" {
              value 0;
              description
                "Using an IETF channel to send alarm.";
            }
            enum "ITUT" {
              value 1;
              description
                "Using an ITU-T channel to send alarm.";
            }
          }
          description
            "The type of report channel.";
        }
    
        typedef transport-mode-type {
          type enumeration {
            enum "udp" {
              value 2;
              description "UDP transport mode.";
            }
            enum "tcp" {
              value 1;
              description "TCP transport mode.";
            }
          }
          description
            "The type of transport mode.";
        }
    
        typedef language-type {
          type enumeration {
            enum "english" {
              value 0;
              description "English mode.";
            }
            enum "chinese" {
              value 1;
              description "Chinese mode.";
            }
          }
          description "The type of language.";
        }
    
        typedef switch-type {
          type enumeration {
            enum "on" {
              value 0;
              description "On mode.";
            }
            enum "off" {
              value 1;
              description "Off mode.";
            }
          }
          description "The type of switch.";
        }
    
        typedef hostname-type {
          type enumeration {
            enum "sysname" {
              value 0;
              description "Sysname.";
            }
            enum "esn" {
              value 1;
              description "Esn.";
            }
            enum "user-defined" {
              value 2;
              description "User-defined.";
            }
          }
          description "The type of hostname.";
        }
    
        typedef save-log-type {
          type enumeration {
            enum "log" {
              value 0;
              description "Common logs.";
            }
            enum "diaglog" {
              value 1;
              description "Diagnoseic logs.";
            }
          }
          description "The saved log type.";
        }
    
        typedef prefix-file-type {
          type enumeration {
            enum "debug" {
              value 6;
              description "Debug logfile.";
            }
          }
          description "The type of log.";
        }
    
        typedef character-set {
          type enumeration {
            enum "UTF-8" {
              value 1;
              description
                "Character set is UTF-8.";
            }
            enum "ISO8859-1" {
              value 2;
              description
                "Character set is ISO8859-1.";
            }
            enum "GBK" {
              value 3;
              description
                "Character set is GBK.";
            }
          }
          description
            "The character set of syslog.";
        }
    
        typedef log-operation-state {
          type enumeration {
            enum "not-started" {
              value 1;
              description
                "The operation is not started.";
            }
            enum "collecting" {
              value 2;
              description
                "The log is collecting.";
            }
            enum "transfering" {
              value 3;
              description
                "The log is transferring.";
            }
            enum "finished" {
              value 4;
              description
                "The operation is finished.";
            }
            enum "device-full" {
              value 5;
              description
                "The disk space of the device is full.";
            }
            enum "collect-error" {
              value 6;
              description
                "The log fails to be collected.";
            }
            enum "transfer-error" {
              value 7;
              description
                "The log fails to be transferred.";
            }
          }
          description "Operation state.";
        }
    
        typedef report-log-type {
          type enumeration {
            enum "eventlog" {
              value 1;
              description "The event log.";
            }
            enum "operlog" {
              value 2;
              description "The operation log.";
            }
            enum "alarmlog" {
              value 5;
              description "The alarm log.";
            }
            enum "securitylog" {
              value 100;
              description "The security log.";
            }
          }
          description
            "Types of logs that can be reported through telemetry.";
        }
    
        container syslog {
          description "System log.";
          container servers {
            description
              "List of syslog servers.";
            list server {
              key "ip-type ipaddress is-default-vpn vrf-name";
              max-elements 8;
              description
                "Configure attributes of log server.";
              leaf ip-type {
                type address-family-type;
                description
                  "Log server address type, IPv4 or IPv6.";
              }
    
              leaf ipaddress {
                type inet:ip-address-no-zone;
                description
                  "Log server address, IPv4 or IPv6 type.";
              }
    
              leaf is-default-vpn {
                type boolean;
                description
                  "Enable/disable the default VPN.";
              }
    
              leaf vrf-name {
                type leafref {
                  path "/ni:network-instance/ni:instances/ni:instance/ni:name";
                }
                must
                  "not(../is-default-vpn='true') or (../is-default-vpn='true' and ../vrf-name='_public_')";
                description
                  "VPN name on a log server.";
              }
    
              leaf host-name {
                type string {
                  length "1..31";
                }
                mandatory true;
                description
                  "Configure host name of log server.";
              }
    
              leaf is-activated {
                type boolean;
                default "false";
                description
                  "Enable/disable the log host.";
              }
    
              leaf level {
                ext:support-filter "true";
                type log-level;
                default "debugging";
                description
                  "Level of logs saved on a log server.";
              }
    
              leaf port {
                ext:dynamic-default;
                ext:support-filter "true";
                type uint32 {
                  range "1..65535";
                }
                description
                  "Number of a port recving logs.";
              }
    
              leaf facility {
                ext:support-filter "true";
                type loghost-facility;
                default "local7";
                description "Log record tool.";
              }
    
              leaf channel-id {
                ext:support-filter "true";
                type leafref {
                  path "/syslog:syslog/syslog:info-center-channels/syslog:info-center-channel/syslog:channel-id";
                }
                default "2";
                description "Channel number.";
              }
    
              leaf channel-name {
                type string {
                  length "1..30";
                }
                default "loghost";
                config false;
                description "Channel name.";
              }
    
              leaf timestamp {
                ext:support-filter "true";
                type timestamp-format;
                default "UTC";
                description
                  "Log server timestamp.";
              }
    
              leaf transport-mode {
                ext:support-filter "true";
                type transport-mode-type;
                default "udp";
                description "Transport mode.";
              }
    
              leaf ssl-policy-name {
                type leafref {
                  path "/ssl:ssl/ssl:ssl-policys/ssl:ssl-policy/ssl:policy-name";
                }
                must "../transport-mode='tcp'";
                description "SSL policy name.";
              }
    
              leaf source-ip {
                ext:support-filter "true";
                type inet:ip-address-no-zone;
                description
                  "Syslog source IP address.";
              }
    
              leaf dns-identifier-name {
                type string {
                  length "1..255";
                }
                must
                  "../transport-mode='tcp' and ../ssl-policy-name";
                description
                  "DNS Identifier Name.";
              }
    
              leaf is-brief-format {
                type boolean;
                default "false";
                description
                  "Enable/disable syslog Brief Format.";
              }
    
              leaf is-security-only {
                type boolean;
                must
                  "../is-security-only='false' or (../is-security-only='true' and ../ssl-policy-name)";
                default "false";
                description
                  "Enable/disable security log server.";
              }
    
              leaf facility-mask {
                type bits {
                  bit local0 {
                    position 0;
                    description
                      "The bit can be used to configure local0 facility.";
                  }
                  bit local1 {
                    position 1;
                    description
                      "The bit can be used to configure local1 facility.";
                  }
                  bit local2 {
                    position 2;
                    description
                      "The bit can be used to configure local2 facility.";
                  }
                  bit local3 {
                    position 3;
                    description
                      "The bit can be used to configure local3 facility.";
                  }
                  bit local4 {
                    position 4;
                    description
                      "The bit can be used to configure local4 facility.";
                  }
                  bit local5 {
                    position 5;
                    description
                      "The bit can be used to configure local5 facility.";
                  }
                  bit local6 {
                    position 6;
                    description
                      "The bit can be used to configure local6 facility.";
                  }
                  bit local7 {
                    position 7;
                    description
                      "The bit can be used to configure local7 facility.";
                  }
                }
                default
                  "local0 local1 local2 local3 local4 local5 local6 local7";
                description
                  "Configure facility of the syslog host.";
              }
    
              leaf severity-mask {
                type bits {
                  bit emergency {
                    position 0;
                    description
                      "The bit can be used to configure emergency severity.";
                  }
                  bit alert {
                    position 1;
                    description
                      "The bit can be used to configure alert severity.";
                  }
                  bit critical {
                    position 2;
                    description
                      "The bit can be used to configure critical severity.";
                  }
                  bit error {
                    position 3;
                    description
                      "The bit can be used to configure error severity.";
                  }
                  bit warning {
                    position 4;
                    description
                      "The bit can be used to configure warning severity.";
                  }
                  bit notice {
                    position 5;
                    description
                      "The bit can be used to configure notice severity.";
                  }
                  bit informational {
                    position 6;
                    description
                      "The bit can be used to configure informational severity.";
                  }
                  bit debug {
                    position 7;
                    description
                      "The bit can be used to configure debug severity.";
                  }
                }
                default
                  "emergency alert critical error warning notice informational debug";
                description
                  "Configure severity of logs received by the syslog host.";
              }
            }  // list server
          }  // container servers
    
          container global-parameter {
            description
              "Configure global parameter.";
            leaf info-center-enable {
              type boolean;
              default "true";
              description
                "Enable/disable the info-center function.";
            }
    
            leaf buffer-size {
              type int32 {
                range "0..102400";
              }
              default "512";
              description
                "Size of a log buffer, the maximum value is configured by the PAF.";
            }
    
            leaf suppress-enable {
              type boolean;
              default "true";
              description
                "Enable/disable suppression function of duplicate logs.";
            }
    
            leaf log-timestamp {
              type timestamp;
              default "date-second";
              description
                "Timestamp format of log information.";
            }
    
            leaf trap-timestamp {
              type timestamp;
              default "date-second";
              description
                "Timestamp format of alarm information.";
            }
    
            leaf debug-timestamp {
              type timestamp;
              default "date-millisecond";
              description
                "Timestamp type of debugging information.";
            }
    
            leaf interface-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              description
                "Name of a log host interface sending logs.";
            }
    
            leaf logbuffer-enable {
              type boolean;
              default "true";
              description
                "Enable/disable log buffer to output information.";
            }
    
            leaf trapbuffer-enable {
              type boolean;
              default "true";
              description
                "Enable/disable trap buffer to output information.";
            }
    
            leaf trapbuffer-size {
              type int32 {
                range "0..1024";
              }
              default "256";
              description
                "Size of a trap buffer.";
            }
    
            leaf packet-priority {
              type int32 {
                range "0..7";
              }
              default "0";
              description
                "Set the priority of the syslog packet.";
            }
    
            leaf source-port {
              type uint32 {
                range "1025..65535";
              }
              default "38514";
              description "Port of the loghost.";
            }
    
            leaf log-none-timezone {
              type boolean;
              default "false";
              description
                "Enable/disable log Timestamp Without Timezone.";
            }
    
            leaf trap-none-timezone {
              type boolean;
              default "false";
              description
                "Enable/disable trap Timestamp Without Timezone.";
            }
    
            leaf debug-none-timezone {
              type boolean;
              default "false";
              description
                "Enable/disable debug Timestamp Without Timezone.";
            }
    
            leaf delay-suppress-enable {
              type boolean;
              default "true";
              description
                "Enable/disable event delay suppress is enabled.";
            }
    
            leaf event-logging-all {
              type boolean;
              default "false";
              description
                "Enable/disable logging flag of global event.";
            }
    
            leaf character-set {
              type character-set;
              default "UTF-8";
              description
                "This leaf means the character set when sending log to syslog host.";
            }
          }  // container global-parameter
    
          container info-center-channels {
            description "List of Channel.";
            list info-center-channel {
              ext:generated-by "system";
              ext:operation-exclude "create";
              key "channel-id";
              max-elements 10;
              description
                "Configure info center channel.";
              leaf channel-id {
                type uint32 {
                  range "0..9";
                }
                description
                  "Number for channel.";
              }
    
              leaf channel-default-name {
                type string {
                  length "1..30";
                }
                config false;
                description
                  "Info-center channel default name.";
              }
    
              leaf channel-name {
                ext:dynamic-default;
                type string {
                  length "1..30";
                  pattern '[a-zA-Z][a-zA-Z0-9]*';
                }
                description "Channel name.";
              }
            }  // list info-center-channel
          }  // container info-center-channels
    
          container info-center-sources {
            description
              "List of rules in channel for outputting information.";
            list info-center-source {
              ext:generated-by "system" {
                ext:can-be-deleted;
              }
              key "module-name channel-id";
              description
                "Configure rule in channel for outputting information.";
              leaf module-name {
                ext:case-sensitivity "lower-only";
                type string {
                  length "1..31";
                  pattern '[^A-Z]*';
                }
                description
                  "Module name of the rule.";
              }
    
              leaf channel-id {
                type leafref {
                  path "/syslog:syslog/syslog:info-center-channels/syslog:info-center-channel/syslog:channel-id";
                }
                description
                  "Number of a channel.";
              }
    
              leaf channel-name {
                type string {
                  length "1..30";
                }
                config false;
                description "Name of a channel.";
              }
    
              leaf enable-log {
                ext:dynamic-default;
                type boolean;
                description
                  "Enable/disable the log output function.";
              }
    
              leaf enable-log-level {
                ext:dynamic-default;
                type log-level;
                description
                  "Log level permitted to output.";
              }
    
              leaf enable-trap {
                ext:dynamic-default;
                type boolean;
                description
                  "Enable/disable the alarm output function.";
              }
    
              leaf enable-trap-level {
                type log-level;
                default "debugging";
                description
                  "Trap level permitted to output.";
              }
    
              leaf enable-debug {
                ext:dynamic-default;
                type boolean;
                description
                  "Enable/disable the debug output function.";
              }
    
              leaf enable-debug-level {
                type log-level;
                default "debugging";
                description
                  "Debug level permitted to output.";
              }
            }  // list info-center-source
          }  // container info-center-sources
    
          container log-switch-list {
            description
              "Configure the log switch.";
            list log-switch {
              ext:generated-by "system";
              ext:operation-exclude "create";
              key "feature-name log-name";
              max-elements 65535;
              description
                "Configure log switch.";
              leaf feature-name {
                type string {
                  length "1..31";
                }
                description
                  "Feature name of a log.";
              }
    
              leaf log-name {
                type string {
                  length "1..63";
                }
                description "Log name.";
              }
    
              leaf log-level {
                ext:dynamic-default;
                type log-level;
                description "Log level.";
              }
    
              leaf security-log-flag {
                type boolean;
                config false;
                description
                  "Enable/disable flag of security log.";
              }
    
              leaf log-type {
                type log-type;
                config false;
                description "Log Type.";
              }
            }  // list log-switch
          }  // container log-switch-list
    
          container info-center-filters {
            description
              "List of info-center filter.";
            list info-center-filter {
              key "feature-name filter-log-name";
              max-elements 65535;
              description
                "Configure filter item.";
              leaf feature-name {
                type leafref {
                  path "/syslog:syslog/syslog:log-switch-list/syslog:log-switch/syslog:feature-name";
                }
                description
                  "Feature name of the filtered log.";
              }
    
              leaf filter-log-name {
                type leafref {
                  path "/syslog:syslog/syslog:log-switch-list/syslog:log-switch/syslog:log-name";
                }
                description
                  "Name of the filtered log.";
              }
            }  // list info-center-filter
          }  // container info-center-filters
    
          container domain-servers {
            description
              "List of domain syslog servers.";
            list domain-server {
              key "server-domain is-default-vpn vrf-name";
              max-elements 8;
              description
                "Configure the domain log server that receives logs.";
              leaf server-domain {
                type string {
                  length "1..255";
                }
                description
                  "Log server domain address.";
              }
    
              leaf is-default-vpn {
                type boolean;
                description
                  "Enable/disable the default VPN.";
              }
    
              leaf vrf-name {
                type leafref {
                  path "/ni:network-instance/ni:instances/ni:instance/ni:name";
                }
                must
                  "not(../is-default-vpn='true') or (../is-default-vpn='true' and ../vrf-name='_public_')";
                description
                  "VPN name on a log server.";
              }
    
              leaf level {
                type log-level;
                default "debugging";
                description
                  "Level of logs saved on a log server.";
              }
    
              leaf server-port {
                type uint32 {
                  range "1..65535";
                }
                default "514";
                description
                  "Number of a port recving logs.";
              }
    
              leaf facility {
                type loghost-facility;
                default "local7";
                description "Log record tool.";
              }
    
              leaf channel-id {
                type leafref {
                  path "/syslog:syslog/syslog:info-center-channels/syslog:info-center-channel/syslog:channel-id";
                }
                default "2";
                description "Channel number.";
              }
    
              leaf channel-name {
                type string {
                  length "1..30";
                }
                default "loghost";
                config false;
                description "Channel name.";
              }
    
              leaf timestamp {
                type timestamp-format;
                default "UTC";
                description
                  "Log server timestamp.";
              }
    
              leaf transport-mode {
                type transport-mode-type;
                default "udp";
                description "Transport mode.";
              }
    
              leaf ssl-policy-name {
                type leafref {
                  path "/ssl:ssl/ssl:ssl-policys/ssl:ssl-policy/ssl:policy-name";
                }
                must "../transport-mode='tcp'";
                description "SSL policy name.";
              }
    
              leaf source-ip {
                ext:support-filter "true";
                type inet:ipv4-address-no-zone;
                description
                  "Syslog source IP address.";
              }
    
              leaf is-brief-format {
                type boolean;
                default "false";
                description
                  "Enable/disable Syslog Brief Format.";
              }
    
              leaf is-security-only {
                type boolean;
                must
                  "../is-security-only='false' or (../is-security-only='true' and ../ssl-policy-name)";
                default "false";
                description
                  "Enable/disable Syslog support security log.";
              }
    
              leaf dns-identifier-name {
                type string {
                  length "1..255";
                }
                must
                  "../transport-mode='tcp' and ../ssl-policy-name";
                description
                  "DNS Identifier Name.";
              }
            }  // list domain-server
          }  // container domain-servers
    
          container logfiles {
            description "List of log file info.";
            list logfile {
              ext:generated-by "system";
              ext:operation-exclude "create|delete";
              key "logfile-type";
              max-elements 4;
              description
                "Specify Log file info.";
              leaf logfile-type {
                type logfile-type;
                description "Log file type.";
              }
    
              leaf max-file-num {
                ext:dynamic-default;
                type uint32 {
                  range "1..500";
                }
                must
                  "(../logfile-type='debug' and (../max-file-num>=1 and ../max-file-num<=50)) or (../logfile-type!='debug' and (../max-file-num>=3 and ../max-file-num<=500))";
                description
                  "Maximum number of log files of the same type.";
              }
    
              leaf max-file-size {
                ext:dynamic-default;
                type uint32 {
                  range "1..32";
                }
                units "MB";
                must
                  "(../logfile-type='debug' and ../max-file-size='8') or ((../logfile-type='security' or ../logfile-type='operation') and (../max-file-size>=1 and ../max-file-size<=4))or (../logfile-type='log' and (../max-file-size='4' or ../max-file-size='8' or ../max-file-size='16' or ../max-file-size='32'))";
                description
                  "Maximum size (in MB) of a log file. The value range for log files is [4, 8, 16, 32], for security files is [1~4], and for operation files is [1~4].";
              }
            }  // list logfile
          }  // container logfiles
    
          container direction-channels {
            description
              "List of mappings of output directions and channels of the information center.";
            list direction-channel {
              ext:generated-by "system";
              ext:operation-exclude "create";
              key "output-direction";
              max-elements 7;
              description
                "Specify the relation of direction and channel.";
              leaf output-direction {
                type string {
                  length "1..30";
                }
                description
                  "Direction of information output.";
              }
    
              leaf default-channel-id {
                type uint32 {
                  range "0..9";
                }
                config false;
                description
                  "Number of the default channel.";
              }
    
              leaf channel-id {
                ext:dynamic-default;
                type leafref {
                  path "/syslog:syslog/syslog:info-center-channels/syslog:info-center-channel/syslog:channel-id";
                }
                description
                  "Number of a configured channel.";
              }
    
              leaf channel-name {
                type string {
                  length "1..30";
                }
                config false;
                description
                  "Name of a configured channel.";
              }
            }  // list direction-channel
          }  // container direction-channels
    
          container info-center-statistics {
            config false;
            description
              "List of info-center statistics.";
            list info-center-statistic {
              key "module-name";
              description
                "Statistics of info-center item.";
              leaf module-name {
                type string {
                  length "1..31";
                }
                description
                  "Module name of the log.";
              }
    
              leaf receive-log {
                type uint32;
                description
                  "Number of received logs.";
              }
    
              leaf drop-log {
                type uint32;
                description
                  "Number of dropped logs.";
              }
    
              leaf receive-diaglog {
                type uint32;
                description
                  "Number of received diagnostic logs.";
              }
    
              leaf drop-diaglog {
                type uint32;
                description
                  "Number of dropped diagnostic logs.";
              }
    
              leaf receive-eventtrap {
                type uint32;
                description
                  "Number of received event traps.";
              }
    
              leaf drop-eventtrap {
                type uint32;
                description
                  "Number of dropped event traps.";
              }
    
              leaf receive-debug {
                type uint32;
                description
                  "Number of received debugging logs.";
              }
    
              leaf drop-debug {
                type uint32;
                description
                  "Number of dropped debugging logs.";
              }
            }  // list info-center-statistic
          }  // container info-center-statistics
    
          container info-center-buffers {
            config false;
            description
              "List of the buffer statistics.";
            list info-center-buffer {
              key "buffer-name";
              max-elements 2;
              description
                "Display buffer statistics.";
              leaf buffer-name {
                type string {
                  length "1..31";
                }
                description "Buffer name.";
              }
    
              leaf enable-flag {
                type boolean;
                default "true";
                description
                  "Enable/disable Buffer enable state.";
              }
    
              leaf max-buffer-size {
                type uint32 {
                  range "1..10240";
                }
                units "Byte";
                description
                  "Maximum buffer size.";
              }
    
              leaf cur-buffer-size {
                type uint32 {
                  range "1..10240";
                }
                units "Byte";
                description
                  "Configured buffer size.";
              }
    
              leaf current-message {
                type uint32;
                description
                  "Number of existing messages in the buffer.";
              }
    
              leaf dropped-message {
                type uint32;
                description
                  "Number of dropped messages in the buffer.";
              }
    
              leaf overwrite-message {
                type uint32;
                description
                  "Number of overwritten messages in the buffer.";
              }
    
              leaf channel-id {
                type uint32 {
                  range "0..9";
                }
                default "0";
                description
                  "ID of channel bind to the buffer.";
              }
    
              leaf channel-name {
                type string {
                  length "1..30";
                }
                description
                  "Name of channel bind to the buffer.";
              }
            }  // list info-center-buffer
          }  // container info-center-buffers
    
          container modules {
            config false;
            description
              "List of module name information.";
            list module {
              key "module-name";
              description
                "Operational data of module name information item.";
              leaf module-name {
                type string {
                  length "1..31";
                }
                description "Module name.";
              }
            }  // list module
          }  // container modules
    
          container logbuffers {
            config false;
            description "List of of log buffer.";
            list logbuffer {
              key "sequence";
              description
                "Statistics of log buffer item.";
              leaf sequence {
                type int32 {
                  range "1..102400";
                }
                description
                  "Sequence number of a queried log.";
              }
    
              leaf starttime {
                ext:support-filter "true";
                type yang:date-and-time;
                description
                  "Query start time. The valid value range is after 1970-01-01.";
              }
    
              leaf endtime {
                ext:support-filter "true";
                type yang:date-and-time;
                description
                  "Query end time. The valid value range is after 1970-01-01.";
              }
    
              leaf level {
                ext:support-filter "true";
                type log-level;
                description
                  "Level of queried logs.";
              }
    
              leaf log-content {
                type string {
                  length "0..1200";
                }
                description
                  "Content of queried logs.";
              }
            }  // list logbuffer
          }  // container logbuffers
    
          container trapbuffers {
            config false;
            description
              "List of trap buffer table.";
            list trapbuffer {
              key "sequence";
              description
                "Statistics of trap buffer item.";
              leaf sequence {
                type int32 {
                  range "1..1024";
                }
                description
                  "Sequence number of a queried trap.";
              }
    
              leaf trap-content {
                type string {
                  length "0..1200";
                }
                description
                  "Content of query trap.";
              }
            }  // list trapbuffer
          }  // container trapbuffers
    
          container securitybuffers {
            config false;
            description
              "List of security of a log buffer.";
            list securitybuffer {
              key "sequence";
              description
                "Operational data of the security of a log buffer item.";
              leaf sequence {
                type int32 {
                  range "1..102400";
                }
                description
                  "Sequence number of a queried log.";
              }
    
              leaf starttime {
                ext:support-filter "true";
                type yang:date-and-time;
                description
                  "Query start time. The valid value range is after 1970-01-01.";
              }
    
              leaf endtime {
                ext:support-filter "true";
                type yang:date-and-time;
                description
                  "Query end time. The valid value range is after 1970-01-01.";
              }
    
              leaf level {
                ext:support-filter "true";
                type log-level;
                description
                  "Level of queried logs.";
              }
    
              leaf log-content {
                type string {
                  length "0..1200";
                }
                description
                  "Content of queried logs.";
              }
            }  // list securitybuffer
          }  // container securitybuffers
    
          container logfile-prefixs {
            description
              "List of log file prefix.";
            list logfile-prefix {
              key "type name";
              max-elements 1;
              description
                "Specify Log file prefixs.";
              leaf type {
                type prefix-file-type;
                description "Log file type.";
              }
    
              leaf name {
                type string {
                  length "1..16";
                  pattern '[a-zA-Z0-9]*';
                }
                description "File name.";
              }
            }  // list logfile-prefix
          }  // container logfile-prefixs
    
          container collect-log-process {
            config false;
            description
              "Operational data of diagnostic information collecting progress.";
            leaf state {
              type log-operation-state;
              description "Operation result.";
            }
    
            leaf operate-progress {
              type pub-type:percent;
              description "Operation progress.";
            }
          }  // container collect-log-process
    
          container log-storage-time {
            description
              "Configure log storage time.";
            leaf storage-time {
              type uint32 {
                range "180..1095";
              }
              units "d";
              description "Log storage time.";
            }
          }  // container log-storage-time
    
          container loginfos {
            config false;
            description "List of of logs.";
            list loginfo {
              key "feature-name log-type";
              description
                "Operational data of log.";
              leaf feature-name {
                type leafref {
                  path "/syslog:syslog/syslog:log-switch-list/syslog:log-switch/syslog:feature-name";
                }
                description
                  "Feature name of log.";
              }
    
              leaf log-type {
                type report-log-type;
                description "Log type.";
              }
    
              leaf sequence {
                type uint32 {
                  range "1..4294967295";
                }
                description
                  "Sequence number of log.";
              }
    
              leaf log-id {
                type uint32 {
                  range "1..4294967295";
                }
                description "Log index.";
              }
    
              leaf log-content {
                type string {
                  length "0..8447";
                }
                description
                  "Content of queried logs.";
              }
            }  // list loginfo
          }  // container loginfos
        }  // container syslog
    
        rpc save-logfile {
          description "Save logs to file.";
          input {
            leaf log-type {
              type save-log-type;
              mandatory true;
              description "Log type.";
            }
          }
        }  // rpc save-logfile
    
        rpc collect-log {
          description
            "Collect diagnostic information and upload log file.";
          input {
            choice server-type {
              mandatory true;
              description
                "Type of the protocol for uploading the log file.";
              case http {
                description "HTTP protocol.";
                leaf http-url {
                  type string {
                    length "1..255";
                  }
                  description
                    "The URL of the remote HTTP server.";
                }
              }  // case http
            }  // choice server-type
    
            leaf vpn-instance {
              type string {
                length "1..31";
              }
              description
                "VPN instance name of the remote HTTP server.";
            }
    
            leaf user-name {
              type string {
                length "1..127";
              }
              description
                "Specifies the authentication user name for file transfer.";
            }
    
            leaf password {
              type pub-type:password-extend;
              description
                "Specifies the authentication password for file transfer.";
            }
    
            leaf ssl-policy-name {
              type leafref {
                path "/ssl:ssl/ssl:ssl-policys/ssl:ssl-policy/ssl:policy-name";
              }
              must "../http-url";
              description "SSL policy name.";
            }
          }
        }  // rpc collect-log
      }  // module huawei-syslog
    

© 2023 YumaWorks, Inc. All rights reserved.