junos-conf-multi-chassis

Junos multi-chassis configuration module

  • Version: 2019-01-01

    junos-conf-multi-chassis@2019-01-01


    
      module junos-conf-multi-chassis {
    
        yang-version 1;
    
        namespace
          "http://yang.juniper.net/junos/conf/multi-chassis";
    
        prefix jc-multi-chassis;
    
        import junos-common-ddl-extensions {
          prefix junos;
          revision-date "2019-01-01";
        }
        import junos-common-types {
          prefix jt;
          revision-date "2019-01-01";
        }
        import junos-conf-root {
          prefix jc;
          revision-date "2019-01-01";
        }
    
        organization "Juniper Networks, Inc.";
    
        contact "yang-support@juniper.net";
    
        description
          "Junos multi-chassis configuration module";
    
        revision "2019-01-01" {
          description "Junos: 21.3R1.9";
        }
    
    
        augment /jc:configuration {
          uses multi-chassis-group;
        }
    
        augment /jc:configuration/jc:groups {
          uses multi-chassis-group;
        }
    
        grouping multi-chassis-group {
          container multi-chassis {
            presence "enable multi-chassis";
            description
              "Multi-chassis configuration";
            uses apply-advanced;
    
            container mc-lag {
              presence "enable mc-lag";
              description
                "Multi-chassis Lag configuration";
              uses apply-advanced;
    
              container consistency-check {
                presence
                  "enable consistency-check";
                description
                  "Consistency Check properties";
                uses apply-advanced;
    
                leaf comparison-delay-time {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type uint32 {
                      range "5 .. 600";
                    }
                  }
                  units "seconds";
                  description
                    "Time after which local and remote config are compared";
                }
    
                container traceoptions {
                  description
                    "Trace options for MCLAG_CFGCHK";
                  uses apply-advanced;
    
                  leaf no-remote-trace {
                    junos:must "("system tracing")";
                    junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured";
                    type empty;
                    description
                      "Disable remote tracing";
                  }
    
                  container file {
                    description
                      "Trace file information";
                    leaf filename {
                      type string {
                        junos:posix-pattern "![/ %]";
                        junos:pattern-message "Must not contain '/', % or a space";
                        length "1 .. 1024";
                      }
                      description
                        "Name of file in which to write trace information";
                    }
    
                    leaf size {
                      type string;
                      description
                        "Maximum trace file size";
                    }
    
                    leaf files {
                      type union {
                        type string {
                          pattern "<.*>|$.*";
                        }
                        type uint32 {
                          range "2 .. 1000";
                        }
                      }
                      default "3";
                      description
                        "Maximum number of trace files";
                    }
    
                    choice world-readable-choice {
                      leaf world-readable {
                        type empty;
                        description
                          "Allow any user to read the log file";
                      }
                      leaf no-world-readable {
                        type empty;
                        description
                          "Don't allow any user to read the log file";
                      }
                    }  // choice world-readable-choice
    
                    leaf match {
                      type jt:regular-expression;
                      description
                        "Regular expression for lines to be logged";
                    }
                  }  // container file
    
                  list flag {
                    key "name";
                    ordered-by user;
                    description
                      "Trace flag information";
                    leaf name {
                      type enumeration {
                        enum "error" {
                          value 0;
                          description
                            "Trace all errors";
                        }
                        enum "event" {
                          value 1;
                          description
                            "Trace all events";
                        }
                        enum "packet" {
                          value 2;
                          description
                            "Trace all packets";
                        }
                        enum "pipe" {
                          value 3;
                          description
                            "Trace pipe messages";
                        }
                        enum "pipe-detail" {
                          value 4;
                          description
                            "Trace pipe messages in detail";
                        }
                        enum "all" {
                          value 5;
                          description
                            "Trace everything";
                        }
                      }
                    }
                  }  // list flag
                }  // container traceoptions
              }  // container consistency-check
            }  // container mc-lag
    
            list multi-chassis-protection {
              key "name";
              description
                "Inter-Chassis protection configuration";
              uses multi-chassis-protection-group;
            }  // list multi-chassis-protection
          }  // container multi-chassis
        }  // grouping multi-chassis-group
    
        grouping apply-advanced {
          description
            "Apply advanced configuration logic";
          leaf-list apply-groups {
            type string;
            ordered-by user;
            description
              "Groups from which to inherit configuration data";
          }
    
          leaf-list apply-groups-except {
            type string;
            ordered-by user;
            description
              "Don't inherit configuration data from these groups";
          }
    
          list apply-macro {
            key "name";
            ordered-by user;
            description
              "Macro and parameters for commit script expansion";
            uses apply-macro-type;
          }  // list apply-macro
        }  // grouping apply-advanced
    
        grouping apply-macro-type {
          description
            "Macro data for commit-script expansion";
          leaf name {
            type string;
            description
              "Name of the macro to be expanded";
          }
    
          list data {
            key "name";
            uses macro-data-type;
          }  // list data
        }  // grouping apply-macro-type
    
        grouping macro-data-type {
          leaf name {
            type string;
            description
              "Keyword part of the keyword-value pair";
          }
    
          leaf value {
            type string;
            description
              "Value part of the keyword-value pair";
          }
        }  // grouping macro-data-type
    
        grouping multi-chassis-protection-group {
          leaf name {
            junos:must "(("protocols iccp peer $$" || any "logical-systems <*> protocols iccp peer $$"))";
            junos:must-message "The peer ip must match with ones defined at <protocols iccp peer>";
            type jt:ipv4addr;
            description
              "IP address for this peer";
          }
    
          uses apply-advanced;
    
          leaf interface {
            type string {
              junos:posix-pattern "^((ge-)|(mge-)|(xe-)|(ae)|(xle-)|(et-)|(sxe-))";
              junos:pattern-message "Only ae, ge, mge, xe, xle, sxe and et inteface is supported";
              length "1 .. 40";
            }
            description
              "Inter-Chassis protection link";
          }
    
          leaf icl-down-delay {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type int32 {
                range "1 .. 6000";
              }
            }
            units "seconds";
            default "1";
            description
              "Time in seconds between ICL down and MCAEs moving to standby";
          }
        }  // grouping multi-chassis-protection-group
      }  // module junos-conf-multi-chassis
    

© 2023 YumaWorks, Inc. All rights reserved.