junos-ex-conf-chassis

Junos chassis configuration module

  • Version: 2019-01-01

    junos-ex-conf-chassis@2019-01-01


    
      module junos-ex-conf-chassis {
    
        yang-version 1;
    
        namespace
          "http://yang.juniper.net/junos-ex/conf/chassis";
    
        prefix jc-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-ex-conf-root {
          prefix jc;
          revision-date "2019-01-01";
        }
    
        organization "Juniper Networks, Inc.";
    
        contact "yang-support@juniper.net";
    
        description
          "Junos chassis configuration module";
    
        revision "2019-01-01" {
          description "Junos: 21.3R1.9";
        }
    
    
        augment /jc:configuration {
          uses chassis-group;
        }
    
        augment /jc:configuration/jc:groups {
          uses chassis-group;
        }
    
        grouping chassis-group {
          container chassis {
            description "Chassis configuration";
            uses chassis_type;
          }  // container chassis
        }  // grouping chassis-group
    
        grouping chassis_type {
          uses apply-advanced;
    
          container nssu {
            presence "enable nssu";
            description
              "Nonstop Software Upgrade settings";
            uses apply-advanced;
    
            list upgrade-group {
              key "name";
              ordered-by user;
              description
                "Nonstop Software Upgrade group";
              leaf name {
                type string {
                  length "1 .. 254";
                }
              }
    
              uses apply-advanced;
    
              leaf-list fpcs {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                max-elements 16;
                description
                  "FPCs associated with update-group";
              }
    
              list member {
                key "name";
                description
                  "Member of virtual chassis configuration";
                uses upgrade-group-fpcs;
              }  // list member
            }  // list upgrade-group
    
            leaf rcp-count {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 8";
                }
              }
              description "Parallel rcp count";
            }
    
            leaf lc-reboot-delay {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "0 .. 600";
                }
              }
              description
                "Delay between linecard reboot during NSSU";
            }
          }  // container nssu
    
          leaf no-power-budget {
            type empty;
            description
              "Disable Chassis Power Budget";
          }
    
          container psu {
            description
              "Power Supply Unit redundancy configuration";
            uses apply-advanced;
    
            container redundancy {
              description
                "PSU Redundancy settings";
              uses apply-advanced;
    
              leaf n-plus-n {
                type empty;
                description
                  "PSU redundancy: N+N configuration";
              }
            }  // container redundancy
          }  // container psu
    
          leaf craft-lockout {
            type empty;
            description
              "Disable craft interface input";
          }
    
          choice source-route-choice {
            leaf source-route {
              type empty;
              status deprecated;
              description
                "Enable IP source-route processing";
            }
            leaf no-source-route {
              type empty;
              status deprecated;
              description
                "Don't enable IP source-route processing";
            }
          }  // choice source-route-choice
    
          choice packet-scheduling-choice {
            leaf packet-scheduling {
              type empty;
              description
                "Enable DX2.0 packet scheduling";
            }
            leaf no-packet-scheduling {
              type empty;
              description
                "Don't enable DX2.0 packet scheduling";
            }
          }  // choice packet-scheduling-choice
    
          leaf vrf-mtu-check {
            type empty;
            description
              "Enable Internet Processor II-based MTU check";
          }
    
          container icmp {
            description "ICMP protocol";
            uses apply-advanced;
          }  // container icmp
    
          container icmp6 {
            description
              "ICMP version 6 protocol";
            uses apply-advanced;
          }  // container icmp6
    
          leaf maximum-ecmp {
            type enumeration {
              enum "16" {
                value 0;
                description
                  "Maximum 16 ECMP routes";
              }
              enum "32" {
                value 1;
                description
                  "Maximum 32 ECMP routes";
              }
              enum "64" {
                value 2;
                description
                  "Maximum 64 ECMP routes";
              }
              enum "96" {
                value 3;
                description
                  "Maximum 96 ECMP routes";
              }
              enum "128" {
                value 4;
                description
                  "Maximum 128 ECMP routes";
              }
              enum "160" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 5;
                description
                  "Maximum 160 ECMP routes";
              }
              enum "192" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 6;
                description
                  "Maximum 192 ECMP routes";
              }
              enum "224" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 7;
                description
                  "Maximum 224 ECMP routes";
              }
              enum "256" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 8;
                description
                  "Maximum 256 ECMP routes";
              }
              enum "288" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 9;
                description
                  "Maximum 288 ECMP routes";
              }
              enum "320" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 10;
                description
                  "Maximum 320 ECMP routes";
              }
              enum "352" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 11;
                description
                  "Maximum 352 ECMP routes";
              }
              enum "384" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 12;
                description
                  "Maximum 384 ECMP routes";
              }
              enum "416" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 13;
                description
                  "Maximum 416 ECMP routes";
              }
              enum "448" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 14;
                description
                  "Maximum 448 ECMP routes";
              }
              enum "480" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 15;
                description
                  "Maximum 480 ECMP routes";
              }
              enum "512" {
                junos:must "(!("system processes routing force-32-bit"))";
                junos:must-message "32-bit rpd doesn't support ecmp greater than 128";
                value 16;
                description
                  "Maximum 512 ECMP routes";
              }
            }
            description
              "Maximum ECMP limit for nexthops";
          }
    
          container redundancy {
            description "Redundancy settings";
            uses chassis_redundancy_type;
          }  // container redundancy
    
          container routing-engine {
            description
              "Routing Engine settings";
            uses chassis_routing_engine_type;
          }  // container routing-engine
    
          container aggregated-devices {
            description
              "Aggregated devices configuration";
            uses chassis_agg_dev_type;
          }  // container aggregated-devices
    
          list disk-partition {
            key "name";
            ordered-by user;
            description
              "Chassis disk monitor configuration";
            leaf name {
              type enumeration {
                enum "/var" {
                  value 0;
                  description
                    "Monitor /var partition";
                }
                enum "/config" {
                  value 1;
                  description
                    "Monitor /config partition";
                }
              }
              description
                "Choose disk partition to monitor";
            }
    
            uses apply-advanced;
    
            list level {
              key "name";
              ordered-by user;
              description "Threshold level";
              leaf name {
                type enumeration {
                  enum "high" {
                    value 0;
                    description
                      "Set high level of threshold";
                  }
                  enum "full" {
                    value 1;
                    description
                      "Set full level of threshold";
                  }
                }
              }
    
              uses apply-advanced;
    
              container free-space {
                description
                  "Enter threshold value & choose the metric";
                leaf thres-free {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type uint32 {
                      range "0 .. 100";
                    }
                  }
                  description
                    "Enter free space threshold value";
                }
    
                choice thres-metric {
                  leaf percent {
                    type empty;
                    description
                      "Free space threshold in %";
                  }
                  leaf mb {
                    type empty;
                    description
                      "Free space threshold in MB";
                  }
                }  // choice thres-metric
              }  // container free-space
            }  // list level
          }  // list disk-partition
    
          container container-devices {
            description
              "Container devices configuration";
            uses chassisd_agg_container_type;
          }  // container container-devices
    
          container pseudowire-service {
            presence "enable pseudowire-service";
            description
              "Pseudowire L3 termination device configuration";
            uses chassis-pw-type;
          }  // container pseudowire-service
    
          container provider-instance-devices {
            description
              "Provider instance devices configuration";
            uses chassisd_provider_instance_type;
          }  // container provider-instance-devices
    
          container fabric {
            description "Switch fabric settings";
            uses chassis_fabric_type;
          }  // container fabric
    
          list fpc {
            junos:must "((!(any ". <*> vpn-localization") || !("virtual-chassis")))";
            junos:must-message "vpn-localization cannot be configured on virtual-chassis";
            key "name";
            description
              "Flexible PIC Concentrator parameters";
            uses chassis_fpc_type;
          }  // list fpc
    
          container fpc-feb-connectivity {
            description
              "Connectivity between Flexible PIC Concentrators and Forwarding Engine Boards";
            uses apply-advanced;
    
            list fpc {
              key "name";
              leaf name {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description "FPC slot number";
              }
    
              uses apply-advanced;
    
              container feb {
                description "FEB slot number";
                choice feb-slot-choice {
                  leaf none {
                    type empty;
                    description
                      "FPC not connected to any FEB";
                  }
                  leaf feb-slot {
                    type union {
                      type string {
                        pattern "<.*>|$.*";
                      }
                      type uint32;
                    }
                    description
                      "FEB slot number";
                  }
                }  // choice feb-slot-choice
              }  // container feb
            }  // list fpc
          }  // container fpc-feb-connectivity
    
          container sib {
            description
              "Switch Interface Board parameters";
            uses chassis_sib_type;
          }  // container sib
    
          container tfeb {
            description
              "Taz Forwarding Engine Board parameters";
            uses chassis_feb_type;
          }  // container tfeb
    
          container alarm {
            description "Global alarm settings";
            uses chassis_alarm_type;
          }  // container alarm
    
          leaf slow-pfe-alarm {
            type empty;
            description
              "Enable slow (potential) PFE alarm";
          }
    
          leaf ambient-temperature {
            type enumeration {
              enum "55C" {
                value 0;
                description "55 degree celsius";
              }
              enum "40C" {
                value 1;
                description "40 degree celsius";
              }
              enum "25C" {
                value 2;
                description "25 degree celsius";
              }
              enum "32C" {
                value 3;
                description "32 degree celsius";
              }
            }
            description
              "Chassis ambient-temperature value in degree celsius";
          }
    
          leaf network-services {
            type enumeration {
              enum "ip" {
                value 0;
                description
                  "IP network services";
              }
              enum "ethernet" {
                junos:must "((!(any "interfaces <*> unit <*> family inet accounting source-class-usage") && (!(any "interfaces <*> unit <*> family inet accounting destination-class-usage") && (!(any "interfaces <*> unit <*> family inet6 accounting source-class-usage") && (!(any "interfaces <*> unit <*> family inet6 accounting destination-class-usage") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet accounting source-class-usage") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet accounting destination-class-usage") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet6 accounting source-class-usage") && !(any "logical-systems <*> interfaces <*> unit <*> family inet6 accounting destination-class-usage")))))))))";
                junos:must-message "Cannot configure 'accounting source-class-usage or destination-class-usage' under network-services ethernet";
                junos:must "((!("routing-options forwarding-table unicast-reverse-path") && (!(any "routing-instances <*> routing-options forwarding-table unicast-reverse-path") && (!(any "logical-systems <*> routing-options forwarding-table unicast-reverse-path") && !(any "logical-systems <*> routing-instances <*> routing-options forwarding-table unicast-reverse-path")))))";
                junos:must-message "Cannot configure 'unicast-reverse-path' under network-services ethernet";
                junos:must "((!(any "interfaces <*> unit <*> family inet rpf-check") && (!(any "interfaces <*> unit <*> family inet6 rpf-check") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet rpf-check") && !(any "logical-systems <*> interfaces <*> unit <*> family inet6 rpf-check")))))";
                junos:must-message "Cannot configure 'rpf-check' under network-services ethernet";
                junos:must "((!(any "policy-options policy-statement <*> then source-class") && (!(any "policy-options policy-statement <*> term <*> then source-class") && (!(any "policy-options policy-statement <*> then destination-class") && (!(any "policy-options policy-statement <*> term <*> then destination-class") && (!(any "policy-options policy-statement <*> from route-filter <*> <*>  source-class") && (!(any "policy-options policy-statement <*> term <*> from route-filter <*> <*>  source-class") && (!(any "policy-options policy-statement <*> from route-filter <*> <*> destination-class") && (!(any "policy-options policy-statement <*> term <*> from route-filter <*> <*>  destination-class") && (!(any "logical-systems <*> policy-options policy-statement <*> then source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> term <*> then source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> then destination-class") && (!(any "logical-systems <*> policy-options policy-statement <*> term <*> then destination-class") && (!(any "logical-systems <*> policy-options policy-statement <*> from route-filter <*> <*>  source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> term <*> from route-filter <*> <*>  source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> from route-filter <*> <*> destination-class") && !(any "logical-systems <*> policy-options policy-statement <*> term <*> from route-filter <*> <*>  destination-class")))))))))))))))))";
                junos:must-message "Cannot configure 'destination-class|source-class' under network-services ethernet";
                junos:must "((!("protocols bgp family inet any") && (!("protocols bgp family inet flow") && (!("protocols bgp family inet multicast") && (!(any "protocols bgp group <*> family inet any") && (!(any "protocols bgp group <*> family inet flow") && (!(any "protocols bgp group <*> family inet multicast") && (!(any "protocols bgp group <*> neighbor <*> family inet any") && (!(any "protocols bgp group <*> neighbor <*> family inet flow") && (!(any "protocols bgp group <*> neighbor <*> family inet multicast") && (!("protocols bgp family inet-vpn any") && (!("protocols bgp family inet-vpn flow") && (!("protocols bgp family inet-vpn multicast") && (!(any "protocols bgp group <*> family inet-vpn any") && (!(any "protocols bgp group <*> family inet-vpn flow") && (!(any "protocols bgp group <*> family inet-vpn multicast") && (!(any "protocols bgp group <*> neighbor <*> family inet-vpn any") && (!(any "protocols bgp group <*> neighbor <*> family inet-vpn flow") && (!(any "protocols bgp group <*> neighbor <*> family inet-vpn multicast") && (!("protocols bgp family inet6") && (!(any "protocols bgp group <*> family inet6") && (!(any "protocols bgp group <*> neighbor <*> family inet6") && (!("protocols bgp family inet6-vpn") && (!(any "protocols bgp group <*> family inet6-vpn") && (!(any "protocols bgp group <*> neighbor <*> family inet6-vpn") && (!("protocols bgp family inet-mvpn") && (!(any "protocols bgp group <*> family inet-mvpn") && (!(any "protocols bgp group <*> neighbor <*> family inet-mvpn") && (!("protocols bgp family inet6-mvpn") && (!(any "protocols bgp group <*> family inet6-mvpn") && (!(any "protocols bgp group <*> neighbor <*> family inet6-mvpn") && (!("protocols bgp family iso") && (!(any "protocols bgp group <*> family iso") && (!(any "protocols bgp group <*> neighbor <*> family iso") && (!("protocols bgp family iso-vpn") && (!(any "protocols bgp group <*> family iso-vpn") && (!(any "protocols bgp group <*> neighbor <*> family iso-vpn") && (!("protocols bgp family atmvpn") && (!(any "protocols bgp group <*> family atmvpn") && (!(any "protocols bgp group <*> neighbor <*> family atmvpn") && (!(any "logical-systems <*> protocols bgp family inet any") && (!(any "logical-systems <*> protocols bgp family inet flow") && (!(any "logical-systems <*> protocols bgp family inet multicast") && (!(any "logical-systems <*> protocols bgp group <*> family inet any") && (!(any "logical-systems <*> protocols bgp group <*> family inet flow") && (!(any "logical-systems <*> protocols bgp group <*> family inet multicast") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet any") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet flow") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet multicast") && (!(any "logical-systems <*> protocols bgp family inet-vpn any") && (!(any "logical-systems <*> protocols bgp family inet-vpn flow") && (!(any "logical-systems <*> protocols bgp family inet-vpn multicast") && (!(any "logical-systems <*> protocols bgp group <*> family inet-vpn any") && (!(any "logical-systems <*> protocols bgp group <*> family inet-vpn flow") && (!(any "logical-systems <*> protocols bgp group <*> family inet-vpn multicast") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet-vpn any") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet-vpn flow") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet-vpn multicast") && (!(any "logical-systems <*> protocols bgp family inet6") && (!(any "logical-systems <*> protocols bgp group <*> family inet6") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet6") && (!(any "logical-systems <*> protocols bgp family inet6-vpn") && (!(any "logical-systems <*> protocols bgp group <*> family inet6-vpn") && (!(any "protocols bgp group <*> neighbor <*> family inet6-vpn") && (!(any "logical-systems <*> protocols bgp family inet-mvpn") && (!(any "logical-systems <*> protocols bgp group <*> family inet-mvpn") && (!(any "protocols bgp group <*> neighbor <*> family inet-mvpn") && (!(any "logical-systems <*> protocols bgp family inet6-mvpn") && (!(any "logical-systems <*> protocols bgp group <*> family inet6-mvpn") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet6-mvpn") && (!(any "logical-systems <*> protocols bgp family iso") && (!(any "logical-systems <*> protocols bgp group <*> family iso") && (!(any "protocols bgp group <*> neighbor <*> family iso") && (!(any "logical-systems <*> protocols bgp family iso-vpn") && (!(any "logical-systems <*> protocols bgp group <*> family iso-vpn") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family iso-vpn") && (!(any "logical-systems <*> protocols bgp family atmvpn") && (!(any "logical-systems <*> protocols bgp group <*> family atmvpn") && !(any "protocols bgp group <*> neighbor <*> family atmvpn")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))";
                junos:must-message "Only BGP groups with 'family inet unicast, inet labeled-unicast, inet-vpn unicast, l2vpn and route-target' are supported under network-services ethernet";
                value 1;
                description
                  "Ethernet network services";
              }
              enum "enhanced-ip" {
                value 2;
                description
                  "Enhanced IP network services";
              }
              enum "enhanced-ethernet" {
                value 3;
                description
                  "Enhanced ethernet network services";
              }
              enum "enhanced-mode" {
                value 4;
                description
                  "Enhanced network services";
              }
              enum "lan" {
                value 5;
                description
                  "Ethernet LAN services";
              }
            }
            description
              "Chassis network services configuration";
          }
    
          container usb {
            description "USB control flags";
            uses apply-advanced;
    
            container storage {
              description "USB storage flags";
              uses apply-advanced;
    
              leaf disable {
                type empty;
                description
                  "Disable USB storage";
              }
            }  // container storage
          }  // container usb
    
          list lcc {
            key "name";
            description
              "Line-card chassis configuration";
            leaf name {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description "LCC number";
            }
    
            uses apply-advanced;
    
            list fpc {
              junos:must "((!(any ". <*> vpn-localization") || !("virtual-chassis")))";
              junos:must-message "vpn-localization cannot be configured on virtual-chassis";
              key "name";
              description
                "Flexible PIC Concentrator parameters";
              uses chassis_fpc_type;
            }  // list fpc
    
            choice state {
              leaf online-expected {
                type empty;
                description
                  "LCC is expected to be online";
              }
              leaf offline {
                type empty;
                description
                  "LCC is expected to be offline";
              }
            }  // choice state
          }  // list lcc
    
          container lcd {
            status deprecated;
            description "Chassis LCD";
            uses apply-advanced;
    
            list fpc {
              key "name";
              ordered-by user;
              leaf name {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description "FPC slot number";
              }
    
              choice menu-item {
                leaf maintenance-menu {
                  type empty;
                  description
                    "LCD maintenance menu";
                }
              }  // choice menu-item
    
              choice enable-disable {
                leaf disable {
                  type empty;
                  description
                    "Disable maintenance-menu";
                }
              }  // choice enable-disable
            }  // list fpc
    
            choice menu-item {
              leaf maintenance-menu {
                type empty;
                description
                  "LCD maintenance menu";
              }
            }  // choice menu-item
    
            choice enable-disable {
              leaf disable {
                type empty;
                description
                  "Disable maintenance-menu";
              }
            }  // choice enable-disable
          }  // container lcd
    
          container forwarding-options {
            description
              "Configure options to control packet forwarding";
            uses apply-advanced;
    
            choice uft_object {
              container l2-profile-one {
                presence "enable l2-profile-one";
                description
                  "MAC: 288K L3-host: 16K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l2-profile-one
              container l2-profile-two {
                presence "enable l2-profile-two";
                description
                  "MAC: 224K L3-host: 80K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l2-profile-two
              container l2-profile-three {
                presence
                  "enable l2-profile-three";
                description
                  "(default) MAC: 160K L3-host: 144K LPM: 16K, needs reboot for VC;restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l2-profile-three
              container l3-profile {
                presence "enable l3-profile";
                description
                  "MAC: 96K L3-host: 208K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l3-profile
              container lpm-profile {
                presence "enable lpm-profile";
                description
                  "MAC: 32K L3-host: 16K LPM: 128K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf prefix-65-127-disable {
                  type empty;
                  description
                    "Disable IPV6 prefixes with length > 64";
                }
    
                leaf unicast-in-lpm {
                  type empty;
                  description
                    "Install unicast host entries in LPM table";
                }
              }  // container lpm-profile
              container exact-match-profile {
                presence
                  "enable exact-match-profile";
                description
                  "MAC: 8K L3-host: 8K LPM: 16K EM: 64K, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container exact-match-profile
              container vxlan-gbp-profile {
                presence
                  "enable vxlan-gbp-profile";
                description
                  "MAC: 48K L3-host: 48K LPM: 16K EM:32K, needs reboot for VC; restarts PFE if standalone";
              }  // container vxlan-gbp-profile
              container custom-profile {
                description
                  "(Partition the shared banks, will automatically restart the PFE when configured)";
                uses apply-advanced;
    
                container l2-entries {
                  description
                    "Customize l2 entries needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type union {
                      type string {
                        pattern "<.*>|$.*";
                      }
                      type int32 {
                        range "0 .. 4";
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
                }  // container l2-entries
    
                container l3-entries {
                  description
                    "Customize l3 entries needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type union {
                      type string {
                        pattern "<.*>|$.*";
                      }
                      type int32 {
                        range "0 .. 4";
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
                }  // container l3-entries
    
                container exact-match-entries {
                  description
                    "Customize exact match entries needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type union {
                      type string {
                        pattern "<.*>|$.*";
                      }
                      type int32 {
                        range "0 .. 4";
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
                }  // container exact-match-entries
    
                container lpm-entries {
                  description
                    "Customize lpm banks needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type enumeration {
                      enum "0" {
                        value 0;
                      }
                      enum "2" {
                        value 1;
                      }
                      enum "4" {
                        value 2;
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
    
                  leaf prefix-65-127-disable {
                    type empty;
                    description
                      "Disable IPV6 prefixes with length > 64";
                  }
                }  // container lpm-entries
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container custom-profile
            }  // choice uft_object
          }  // container forwarding-options
    
          leaf loopback-firewall-optimization {
            type empty;
            description
              "Optimal TCAM use,restarts PFE(for IP rsrved multicast dest & IP ttl=0/1,config explicitly)";
          }
    
          leaf epacl-firewall-optimization {
            type empty;
            description
              "Maximizes Egress Port ACLs TCAM use and restarts PFE";
          }
    
          container lcd-menu {
            junos:must "(!("..  lcd"))";
            junos:must-message "Cannot mix 'lcd-menu' and 'lcd maintenance-menu' configurations";
            description "Chassis LCD menu";
            uses apply-advanced;
    
            list fpc {
              key "name";
              ordered-by user;
              leaf name {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description "FPC slot number";
              }
    
              uses apply-advanced;
    
              list menu-item {
                key "name";
                ordered-by user;
                description "LCD menu item";
                leaf name {
                  type string;
                  description "LCD menu name";
                }
    
                leaf disable {
                  type empty;
                  description "Disable LCD menu";
                }
              }  // list menu-item
            }  // list fpc
    
            list menu-item {
              key "name";
              ordered-by user;
              description "LCD menu item";
              leaf name {
                type string;
                description "LCD menu name";
              }
    
              leaf disable {
                type empty;
                description "Disable LCD menu";
              }
            }  // list menu-item
          }  // container lcd-menu
    
          leaf fru-poweron-sequence {
            type string {
              junos:posix-pattern "^[0-9 ]+$";
              junos:pattern-message "FRU in fru poweron sequence must be a number";
            }
            description
              "FRUs power on sequence like 0 1 2 3 ... within double quotes";
          }
    
          leaf auto-image-upgrade {
            type empty;
            description
              "Auto image upgrade using DHCP";
          }
    
          container multicast-loadbalance {
            presence
              "enable multicast-loadbalance";
            description
              "Multicast load balancing settings";
            uses chassis_ae_lb_type;
          }  // container multicast-loadbalance
    
          container oss-map {
            description
              "Translate Operation Supported System's requirements";
            uses apply-advanced;
    
            leaf model-name {
              type enumeration {
                enum "t640" {
                  value 0;
                  description
                    "Set to T640's model";
                }
                enum "t1600" {
                  value 1;
                  description
                    "Set to T1600's model";
                }
              }
              description
                "Override chassis model name for specific show/snmp output";
            }
          }  // container oss-map
    
          container jnu-management {
            description
              "JNU Management configuration";
            uses apply-advanced;
    
            leaf mode {
              type enumeration {
                enum "feature-rich" {
                  value 0;
                  description
                    "Feature Rich Mode";
                }
                enum "bng-control-plane" {
                  value 1;
                  description
                    "BNG control-plane mode";
                }
              }
              description "JNU Mode";
            }
    
            leaf satellite-name {
              type string;
              description "Satellite name";
            }
    
            leaf device-group {
              type string;
              description
                "Satellite device group";
            }
    
            list satellite {
              key "name";
              ordered-by user;
              description "List of satellites";
              leaf name {
                type string;
                description "Satellite name";
              }
    
              uses apply-advanced;
    
              leaf device-group {
                type string;
                description
                  "Satellite Device Group";
              }
    
              leaf model {
                type string;
                description "Satellite model";
              }
    
              leaf version {
                type string {
                  junos:posix-pattern "^[[:digit:]][[:alnum:]_.-]+$";
                  junos:pattern-message "Version should begin with a number";
                }
                description "Satellite version";
              }
            }  // list satellite
    
            leaf user {
              type string;
              description "Satellite User Name";
            }
    
            leaf controller {
              type string;
              description "Controller Name";
            }
    
            leaf authentication {
              type jt:unreadable;
              description
                "Authentication string";
            }
          }  // container jnu-management
    
          list satellite {
            key "name";
            ordered-by user;
            description
              "List of available satellite configurations";
            leaf name {
              type string;
              description "Satellite name";
            }
    
            uses apply-advanced;
          }  // list satellite
    
          container system-domains {
            presence "enable system-domains";
            description
              "Root and protected system domain configuration";
            uses apply-advanced;
    
            leaf root-domain-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 3";
                }
              }
              description
                "Root domain identifier";
            }
    
            list protected-system-domains {
              key "name";
              description
                "Protected system domain configuration";
              uses juniper-protected-system-domain;
            }  // list protected-system-domains
    
            container traceoptions {
              description
                "Protected system domain traceoptions";
              uses juniper-protected-system-domain-traceoptions;
            }  // container traceoptions
          }  // container system-domains
        }  // grouping chassis_type
    
        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 chassis-pw-type {
          uses apply-advanced;
    
          leaf device-count {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 18000";
              }
            }
            description
              "Number of pseudo-wire ps devices";
          }
        }  // grouping chassis-pw-type
    
        grouping chassis_ae_lb_type {
          uses apply-advanced;
    
          leaf disable {
            type empty;
            description
              "Disable Multicast load balancing";
          }
    
          leaf hash-mode {
            type enumeration {
              enum "crc-sgip" {
                value 0;
                description
                  "CRC of Source IP and Group IP";
              }
              enum "crc-gip" {
                value 1;
                description
                  "CRC of Group IP only";
              }
              enum "crc-sip" {
                value 2;
                description
                  "CRC of Source IP only";
              }
              enum "simple-sgip" {
                value 3;
                description
                  "Simple hash of Source IP and Group IP";
              }
              enum "simple-gip" {
                value 4;
                description
                  "Simple hash of Group IP";
              }
              enum "simple-sip" {
                value 5;
                description
                  "Simple hash of Source IP";
              }
              enum "balanced" {
                value 6;
                description
                  "Round-Robin balancing";
              }
            }
            description "PFE hash mode";
          }
        }  // grouping chassis_ae_lb_type
    
        grouping chassis_agg_dev_type {
          uses apply-advanced;
    
          container ethernet {
            description
              "Aggregated device options for Ethernet";
            uses chassisd_agg_enet_type;
          }  // container ethernet
    
          container sonet {
            description
              "Aggregated device options for SONET";
            uses chassisd_agg_pos_type;
          }  // container sonet
    
          leaf maximum-links {
            type union {
              type int32;
              type string {
                pattern "<.*>|$.*";
              }
            }
            description
              "Maximum links limit for aggregated devices (16, 32, or 64)";
          }
        }  // grouping chassis_agg_dev_type
    
        grouping chassis_alarm_type {
          uses apply-advanced;
    
          container management-ethernet {
            description
              "Management Ethernet alarms";
            uses chassis_alarm_ethernet_type;
          }  // container management-ethernet
    
          container otn-odu {
            description "OTN ODU alarms";
            uses chassis_alarm_otn_odu_type;
          }  // container otn-odu
    
          container otn-otu {
            description "OTN OTU alarms";
            uses chassis_alarm_otn_otu_type;
          }  // container otn-otu
    
          container sonet {
            description "SONET alarms";
            uses chassis_alarm_sonet_type;
          }  // container sonet
    
          container t3 {
            description "DS3 alarms";
            uses chassis_alarm_ds3_type;
          }  // container t3
    
          container ds1 {
            description "DS1 alarms";
            uses chassis_alarm_ds1_type;
          }  // container ds1
    
          container ethernet {
            description "Ethernet alarms";
            uses chassis_alarm_ethernet_type;
          }  // container ethernet
    
          container integrated-services {
            description
              "Integrated services alarms";
            uses chassis_alarm_integrated_services_type;
          }  // container integrated-services
    
          container services {
            description "Services PIC alarms";
            uses chassis_alarm_services_type;
          }  // container services
    
          container serial {
            description "Serial alarms";
            uses chassis_alarm_serial_type;
          }  // container serial
    
          container fibre-channel {
            description "Fibre Channel alarms";
            uses chassis_alarm_fibre-channel_type;
          }  // container fibre-channel
        }  // grouping chassis_alarm_type
    
        grouping chassis_alarm_ds1_type {
          uses apply-advanced;
    
          leaf ais {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Alarm indicator signal";
          }
    
          leaf ylw {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Yellow alarm";
          }
        }  // grouping chassis_alarm_ds1_type
    
        grouping chassis_alarm_ds3_type {
          uses apply-advanced;
    
          leaf ais {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Alarm indicator signal";
          }
    
          leaf exz {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Excessive zeros";
          }
    
          leaf ferf {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Far-end failure";
          }
    
          leaf idle {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Idle alarm";
          }
    
          leaf lcv {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Line code violation";
          }
    
          leaf lof {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Loss of frame";
          }
    
          leaf los {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Loss of signal";
          }
    
          leaf pll {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Phase-locked loop out of lock";
          }
    
          leaf ylw {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Yellow alarm";
          }
        }  // grouping chassis_alarm_ds3_type
    
        grouping chassis_alarm_ethernet_type {
          uses apply-advanced;
    
          leaf link-down {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Link has gone down";
          }
        }  // grouping chassis_alarm_ethernet_type
    
        grouping chassis_alarm_fibre-channel_type {
          uses apply-advanced;
    
          leaf link-down {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Link has gone down";
          }
        }  // grouping chassis_alarm_fibre-channel_type
    
        grouping chassis_alarm_integrated_services_type {
          uses apply-advanced;
    
          leaf failure {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Integrated Services failure";
          }
        }  // grouping chassis_alarm_integrated_services_type
    
        grouping chassis_alarm_otn_odu_type {
          uses apply-advanced;
    
          leaf odu-bdi {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "ODU backward-defect-indicator, ODU-BDI failure";
          }
    
          leaf odu-ttim {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "ODU trail-trace-identifier-mismatch, ODU-TTIM failure";
          }
    
          leaf odu-ptim {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "ODU payload-type-mismatch, ODU-PTIM failure";
          }
        }  // grouping chassis_alarm_otn_odu_type
    
        grouping chassis_alarm_otn_otu_type {
          uses apply-advanced;
    
          leaf oc-los {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Loss of signal, LOS failure";
          }
    
          leaf oc-lof {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Loss of framing, LOF failure";
          }
    
          leaf oc-lom {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Loss of multiframe, LOM failure";
          }
    
          leaf wavelength-lock {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Wavelength lock alarm";
          }
    
          leaf otu-bdi {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "OTU backward-defect-indicator, OTU-BDI failure";
          }
    
          leaf otu-iae {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "OTU incoming-alignment-error, OTU-IAE failure";
          }
    
          leaf otu-ttim {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "OTU trail-trace-identifier-mismatch, OTU-TTIM failure";
          }
    
          leaf otu-fec-excessive-errs {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "OTU fec-excessive-errors, OTU-FEC_EXE failure";
          }
        }  // grouping chassis_alarm_otn_otu_type
    
        grouping chassis_alarm_serial_type {
          uses apply-advanced;
    
          leaf loss-of-rx-clock {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "RX clock absent";
          }
    
          leaf loss-of-tx-clock {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "TX clock absent";
          }
    
          leaf dcd-absent {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "DCD signal absent";
          }
    
          leaf cts-absent {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "CTS signal absent";
          }
    
          leaf dsr-absent {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "DSR signal absent";
          }
    
          leaf tm-absent {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "TM signal absent";
          }
        }  // grouping chassis_alarm_serial_type
    
        grouping chassis_alarm_services_type {
          uses apply-advanced;
    
          leaf pic-reset {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Services PIC reset";
          }
    
          leaf pic-hold-reset {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Services PIC held in reset";
          }
    
          leaf linkdown {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Services PIC linkdown";
          }
    
          leaf rx-errors {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Services PIC excessive rx errors";
          }
    
          leaf tx-errors {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Services PIC excessive tx errors";
          }
    
          leaf sw-down {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Services PIC software problem";
          }
    
          leaf hw-down {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Services PIC hardware problem";
          }
        }  // grouping chassis_alarm_services_type
    
        grouping chassis_alarm_sonet_type {
          uses apply-advanced;
    
          leaf lol {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description "Loss of light";
          }
    
          leaf pll {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Phase locked loop out of lock";
          }
    
          leaf lof {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Loss of framing, LOF failure";
          }
    
          leaf los {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Loss of signal, LOS failure";
          }
    
          leaf ais-l {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Line alarm indication signal, AIS-L failure";
          }
    
          leaf ais-p {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Path alarm indication signal, AIS-P failure";
          }
    
          leaf lop-p {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Loss of pointer, LOP-P failure";
          }
    
          leaf ber-sd {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Signal Degrade (SD), bit error rate > 1E-6";
          }
    
          leaf ber-sf {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Signal Fail (SF), bit error rate > 1E-3";
          }
    
          leaf rfi-l {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Line remote failure indication, RFI-L, line FERF";
          }
    
          leaf rfi-p {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Path remote failure indication, RFI-P, STS path yellow";
          }
    
          leaf uneq-p {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "STS Path (C2) unequipped, UNEQ-P failure";
          }
    
          leaf locd {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "Loss of cell delineation (ATM only)";
          }
    
          leaf plm-p {
            type enumeration {
              enum "red" {
                value 0;
                description
                  "Assert red system alarm";
              }
              enum "yellow" {
                value 1;
                description
                  "Assert yellow system alarm";
              }
              enum "ignore" {
                value 2;
                description
                  "Do not assert any alarm signals";
              }
            }
            description
              "STS payload label (C2) mismatch, PLM-P failure";
          }
        }  // grouping chassis_alarm_sonet_type
    
        grouping chassis_fabric_type {
          uses apply-advanced;
    
          container event {
            description "Fabric events";
            uses apply-advanced;
    
            container link-failure {
              presence "enable link-failure";
              description "Fabric link failure";
              uses apply-advanced;
    
              container action {
                presence "enable action";
                description
                  "Fabric action to be taken";
                uses apply-advanced;
              }  // container action
            }  // container link-failure
          }  // container event
    
          container oam {
            description
              "Fabric OAM configuration";
            uses apply-advanced;
          }  // container oam
    
          container redundancy-mode {
            description "Fabric redundancy mode";
            uses apply-advanced;
    
            choice mode {
              leaf redundant {
                type empty;
                description
                  "Fabric is configured in redundant mode";
              }
              leaf increased-bandwidth {
                type empty;
                description
                  "Fabric is configured in increased bandwidth mode";
              }
            }  // choice mode
          }  // container redundancy-mode
        }  // grouping chassis_fabric_type
    
        grouping chassis_feb_type {
          uses apply-advanced;
    
          container sanity-poll {
            description
              "FPC register sanity poll";
            uses apply-advanced;
    
            leaf retry-count {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 30";
                }
              }
              default "10";
              description
                "Number of retries before reporting error";
            }
    
            container on-error {
              description
                "Actions to be taken if inconsistencies are detected";
              uses apply-advanced;
    
              leaf raise-alarm {
                type empty;
                description
                  "Raise emergency alarm";
              }
    
              leaf power {
                type enumeration {
                  enum "cycle" {
                    value 0;
                    description
                      "Write coredump and reboot FPC";
                  }
                  enum "off" {
                    value 1;
                    description
                      "Power down FPC indefinitely";
                  }
                }
                description
                  "Power cycle or power off FPC";
              }
    
              leaf write-coredump {
                type empty;
                description
                  "Write coredump and continue";
              }
            }  // container on-error
          }  // container sanity-poll
        }  // grouping chassis_feb_type
    
        grouping chassis_fpc_type {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description "FPC slot number";
          }
    
          uses apply-advanced;
    
          container auto-speed-detection {
            description
              "Disables auto-speed detection";
            uses apply-advanced;
    
            choice auto-speed-detections {
              leaf disable {
                type empty;
                description
                  "Disables automatic speed detection";
              }
            }  // choice auto-speed-detections
          }  // container auto-speed-detection
    
          container forwarding-options {
            description
              "Configure options to control packet forwarding";
            uses apply-advanced;
    
            choice uft_object {
              container l2-profile-one {
                presence "enable l2-profile-one";
                description
                  "MAC: 288K L3-host: 16K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l2-profile-one
              container l2-profile-two {
                presence "enable l2-profile-two";
                description
                  "MAC: 224K L3-host: 80K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l2-profile-two
              container l2-profile-three {
                presence
                  "enable l2-profile-three";
                description
                  "(default) MAC: 160K L3-host: 144K LPM: 16K, needs reboot for VC;restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l2-profile-three
              container l3-profile {
                presence "enable l3-profile";
                description
                  "MAC: 96K L3-host: 208K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container l3-profile
              container lpm-profile {
                presence "enable lpm-profile";
                description
                  "MAC: 32K L3-host: 16K LPM: 128K EM:0, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf prefix-65-127-disable {
                  type empty;
                  description
                    "Disable IPV6 prefixes with length > 64";
                }
    
                leaf unicast-in-lpm {
                  type empty;
                  description
                    "Install unicast host entries in LPM table";
                }
              }  // container lpm-profile
              container exact-match-profile {
                presence
                  "enable exact-match-profile";
                description
                  "MAC: 8K L3-host: 8K LPM: 16K EM: 64K, needs reboot for VC; restarts PFE if standalone";
                uses apply-advanced;
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container exact-match-profile
              container vxlan-gbp-profile {
                presence
                  "enable vxlan-gbp-profile";
                description
                  "MAC: 48K L3-host: 48K LPM: 16K EM:32K, needs reboot for VC; restarts PFE if standalone";
              }  // container vxlan-gbp-profile
              container custom-profile {
                description
                  "(Partition the shared banks, will automatically restart the PFE when configured)";
                uses apply-advanced;
    
                container l2-entries {
                  description
                    "Customize l2 entries needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type union {
                      type string {
                        pattern "<.*>|$.*";
                      }
                      type int32 {
                        range "0 .. 4";
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
                }  // container l2-entries
    
                container l3-entries {
                  description
                    "Customize l3 entries needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type union {
                      type string {
                        pattern "<.*>|$.*";
                      }
                      type int32 {
                        range "0 .. 4";
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
                }  // container l3-entries
    
                container exact-match-entries {
                  description
                    "Customize exact match entries needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type union {
                      type string {
                        pattern "<.*>|$.*";
                      }
                      type int32 {
                        range "0 .. 4";
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
                }  // container exact-match-entries
    
                container lpm-entries {
                  description
                    "Customize lpm banks needed";
                  uses apply-advanced;
    
                  leaf num-banks {
                    type enumeration {
                      enum "0" {
                        value 0;
                      }
                      enum "2" {
                        value 1;
                      }
                      enum "4" {
                        value 2;
                      }
                    }
                    default "0";
                    description
                      "Number of banks needed for entries of this type";
                  }
    
                  leaf prefix-65-127-disable {
                    type empty;
                    description
                      "Disable IPV6 prefixes with length > 64";
                  }
                }  // container lpm-entries
    
                leaf num-65-127-prefix {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type int32 {
                      range "0 .. 4";
                    }
                  }
                  default "1";
                  description
                    "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)";
                }
              }  // container custom-profile
            }  // choice uft_object
          }  // container forwarding-options
    
          list pic {
            key "name";
            description
              "Physical Interface Card number";
            uses chassis_pic_type;
          }  // list pic
    
          leaf power {
            type enumeration {
              enum "off" {
                value 0;
                description
                  "Do not provide power to FPCs";
              }
              enum "on" {
                value 1;
                description
                  "Provide power to FPCs";
              }
            }
            description "Power FPCs on or off";
          }
    
          leaf power-budget-priority {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description "FPC priority number";
          }
    
          choice mode {
            leaf disable-power {
              type empty;
              status deprecated;
              description
                "Do not provide power to the card";
            }
            leaf allow-sram-parity-errors {
              type empty;
              description
                "Do not power cycle FPC when SRAM parity errors occur";
            }
          }  // choice mode
    
          choice riot-mode {
            case case_1 {
            }  // case case_1
    
            case case_2 {
            }  // case case_2
          }  // choice riot-mode
    
          leaf cfp-to-et {
            type empty;
            description
              "Enable ET interface and remove CFP client";
          }
    
          leaf offline {
            type empty;
            description "Keep FPC offline";
          }
    
          list port-mirror-instance {
            key "name";
            max-elements 2;
            ordered-by user;
            leaf name {
              junos:must "(!("forwarding-options port-mirroring instance $$ input-parameters-instance"))";
              junos:must-message "Derived instance cannot be binded";
              junos:must "(((!("chassis network-services lan") && ("forwarding-options port-mirroring instance $$" || "forwarding-options analyzer $$")) || "chassis network-services lan"))";
              junos:must-message "Referenced port-mirroring instance does not exist";
              junos:must "(("forwarding-options port-mirroring instance $$" || "forwarding-options analyzer $$"))";
              junos:must-message "Referenced port-mirroring/analyzer instance does not exist";
              type string {
                length "1 .. 64";
              }
              description
                "Associate a port mirroring instance with the FPC";
            }
    
            uses apply-advanced;
          }  // list port-mirror-instance
    
          list sampling-instance {
            key "name";
            max-elements 1;
            ordered-by user;
            leaf name {
              junos:must "("forwarding-options sampling instance $$")";
              junos:must-message "Referenced sampling instance does not exist";
              type string {
                length "1 .. 64";
              }
              description
                "Associate a sampling instance with the FPC";
            }
    
            uses apply-advanced;
          }  // list sampling-instance
    
          container inline-services {
            uses apply-advanced;
    
            leaf report-zero-oif-gw-on-discard {
              type empty;
              description
                "Jflow reports value zero in OIF and GW when traffic is not forwarded";
            }
    
            leaf flex-flow-sizing {
              junos:must "(!((".. flow-table-size ipv4-flow-table-size" || (".. flow-table-size ipv6-flow-table-size" || (".. flow-table-size vpls-flow-table-size" || (".. flow-table-size bridge-flow-table-size" || ".. flow-table-size mpls-flow-table-size"))))))";
              junos:must-message "flex-flow-sizing and flow-table-size are mutually exclusive";
              type empty;
              description
                "No fixed size allocation of flow tables for proto families";
            }
    
            leaf use-extended-flow-memory {
              type empty;
              description
                "Use extended memory for flow records";
            }
    
            container flow-table-size {
              uses apply-advanced;
    
              leaf ipv4-flow-table-size {
                junos:must "(!(".. .. flex-flow-sizing"))";
                junos:must-message "flex-flow-sizing and flow-table-size are mutually exclusive";
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "1 .. 245";
                  }
                }
                description
                  "IPv4 flow table size in units of 256k";
              }
    
              leaf ipv6-flow-table-size {
                junos:must "(!(".. .. flex-flow-sizing"))";
                junos:must-message "flex-flow-sizing and flow-table-size are mutually exclusive";
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "1 .. 245";
                  }
                }
                description
                  "IPv6 flow table size in units of 256k";
              }
    
              leaf vpls-flow-table-size {
                junos:must "(!(".. .. flex-flow-sizing"))";
                junos:must-message "flex-flow-sizing and flow-table-size are mutually exclusive";
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "1 .. 245";
                  }
                }
                status deprecated;
                description
                  "VPLS flow table size in units of 256k";
              }
    
              leaf bridge-flow-table-size {
                junos:must "(!(".. .. flex-flow-sizing"))";
                junos:must-message "flex-flow-sizing and flow-table-size are mutually exclusive";
                junos:must "(!(".. vpls-flow-table-size"))";
                junos:must-message "Both vpls-flow-table-size and bridge-flow-table-size can not be configured/allowed";
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "1 .. 245";
                  }
                }
                description
                  "BRIDGE flow table size in units of 256k";
              }
    
              leaf ipv6-extended-attrib {
                type empty;
                description
                  "Enable extended flow attribute";
              }
    
              leaf mpls-flow-table-size {
                junos:must "(!(".. .. flex-flow-sizing"))";
                junos:must-message "flex-flow-sizing and flow-table-size are mutually exclusive";
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "1 .. 245";
                  }
                }
                description
                  "MPLS flow table size in units of 256k";
              }
            }  // container flow-table-size
          }  // container inline-services
    
          container inline-video-monitoring {
            uses apply-advanced;
    
            leaf maximum-flows-count {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "16 .. 8192";
                }
              }
              status deprecated;
              description
                "Maximum number of inline video monitoring flows per PFE instance.";
            }
    
            leaf flow-table-size {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "16 .. 8192";
                }
              }
              description
                "Size of flow table size per PFE instance";
            }
          }  // container inline-video-monitoring
    
          container slamon-services {
            description
              "SLA monitoring services";
            uses apply-advanced;
          }  // container slamon-services
    
          list pfe {
            key "name";
            description
              "Packet forwarding engine parameters";
            uses chassis_pfe_type;
          }  // list pfe
    
          container openflow {
            description "Openflow configuration";
            uses apply-advanced;
    
            leaf access-list-partition {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 100";
                }
              }
              units "percents";
              description
                "Space reserved for openflow access-list rules";
            }
          }  // container openflow
        }  // grouping chassis_fpc_type
    
        grouping chassis_pfe_type {
          description
            "PFE(Packet forwarding engine)";
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description
              "PFE(Packet forwarding engine) identifier";
          }
    
          uses apply-advanced;
    
          container forwarding-packages {
            description
              "Associated forwarding package configuration";
            uses apply-advanced;
    
            container mobility {
              description
                "Mobility related PFE configuration";
              uses apply-advanced;
    
              choice package-type {
                leaf user-plane {
                  type empty;
                  description
                    "User plane function";
                }
              }  // choice package-type
            }  // container mobility
          }  // container forwarding-packages
    
          leaf power {
            type enumeration {
              enum "off" {
                value 0;
                description "Power off PFE";
              }
              enum "on" {
                value 1;
                description "Power on PFE";
              }
            }
            description "Power PFEs on or off";
          }
    
          leaf tunnel-services {
            type empty;
            description
              "Tunnel services configuration";
          }
        }  // grouping chassis_pfe_type
    
        grouping chassis_pic_type {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description "PIC slot number";
          }
    
          uses apply-advanced;
    
          leaf pic-mode {
            type enumeration {
              enum "1G" {
                value 0;
                description "1GE mode";
              }
              enum "10G" {
                value 1;
                description "10GE mode";
              }
              enum "25G" {
                value 2;
                description "25GE mode";
              }
              enum "40G" {
                value 3;
                description "40GE mode";
              }
              enum "50G" {
                value 4;
                description "50GE mode";
              }
              enum "100G" {
                value 5;
                description "100GE mode";
              }
              enum "400G" {
                value 6;
                description "400GE mode";
              }
            }
            description "PIC mode configuration";
          }
    
          list tunnel-port {
            key "name";
            description "Tunnel port number";
            uses chassis_port_type;
          }  // list tunnel-port
    
          container tunnel-services {
            junos:must "(!(".. traffic-manager single-stream"))";
            junos:must-message "Cannot configure tunnel-services if single-stream is configured";
            presence "enable tunnel-services";
            description
              "Tunnel services configuration";
            uses apply-advanced;
    
            leaf bandwidth {
              type string;
              description
                "Amount of bandwidth reserved for tunnel service";
            }
    
            leaf tunnel-only {
              type empty;
              description
                "Support only tunnel traffic";
            }
    
            list tunnel-port {
              key "name";
              ordered-by user;
              description "Tunnel port number";
              leaf name {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description "Port number";
              }
    
              uses apply-advanced;
    
              leaf bandwidth {
                type string;
                description
                  "Amount of bandwidth reserved for tunnel service";
              }
            }  // list tunnel-port
          }  // container tunnel-services
    
          choice adaptive-or-monitoring {
            case case_1 {
            }  // case case_1
            container monitoring-services {
              description
                "Monitoring services configuration";
              uses apply-advanced;
    
              leaf application {
                type enumeration {
                  enum "dynamic-flow-capture" {
                    value 0;
                    description
                      "Dynamic flow capture mode";
                  }
                  enum "flow-collector" {
                    value 1;
                    description
                      "Flow collector mode";
                  }
                  enum "monitor" {
                    value 2;
                    description "Monitor mode";
                  }
                }
                description "Application mode";
              }
            }  // container monitoring-services
          }  // choice adaptive-or-monitoring
    
          leaf framing {
            type enumeration {
              enum "sonet" {
                value 0;
                description "SONET mode";
              }
              enum "sdh" {
                value 1;
                description "SDH mode";
              }
              enum "t3" {
                value 2;
                description "T3 mode";
              }
              enum "e3" {
                value 3;
                description "E3 mode";
              }
              enum "t1" {
                value 4;
                description "T1 mode";
              }
              enum "e1" {
                value 5;
                description "E1 mode";
              }
              enum "lan" {
                value 6;
                description "LAN mode";
              }
            }
            description "Framing mode";
          }
    
          leaf vtmapping {
            type enumeration {
              enum "klm" {
                value 0;
                description "KLM mode";
              }
              enum "itu-t" {
                value 1;
                description "ITU-T mode";
              }
            }
            description
              "Virtual tunnel mapping mode";
          }
    
          leaf no-concatenate {
            type empty;
            description
              "Do not concatenate channels";
          }
    
          leaf no-multi-rate {
            type empty;
            description
              "Disable multi-rate mode";
          }
    
          leaf speed {
            type enumeration {
              enum "1G" {
                value 0;
                description
                  "1GE-Gigabit Ethernet";
              }
            }
            description "Port speed";
          }
    
          leaf aggregate-ports {
            type empty;
            description
              "Aggregate multiple ports on a PIC as a single port";
          }
    
          leaf number-of-ports {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description
              "Number of physical ports to enable on PIC";
          }
    
          leaf power {
            type enumeration {
              enum "off" {
                value 0;
                description
                  "Do not provide power to PIC";
              }
            }
            description "Power off PIC";
          }
    
          leaf sparse-dlcis {
            type empty;
            description
              "Run in sparse data-link connection identifier mode";
          }
    
          container q-pic-large-buffer {
            presence "enable q-pic-large-buffer";
            description
              "Run in large delay buffer mode";
            uses apply-advanced;
    
            choice buffer-type {
              leaf small-scale {
                type empty;
                description
                  "Supports less number of interfaces";
              }
              leaf large-scale {
                type empty;
                description
                  "Supports large number of interfaces";
              }
            }  // choice buffer-type
          }  // container q-pic-large-buffer
    
          container red-buffer-occupancy {
            description
              "Computation type for RED buffer occupancy";
            uses apply-advanced;
    
            container weighted-averaged {
              presence
                "enable weighted-averaged";
              description
                "Weighted-average computation";
              uses apply-advanced;
    
              leaf instant-usage-weight-exponent {
                type union {
                  type uint8;
                  type string {
                    pattern "<.*>|$.*";
                  }
                }
                description
                  "Weight for instant buffer usage (negative exponent of 2)";
              }
            }  // container weighted-averaged
          }  // container red-buffer-occupancy
    
          container traffic-manager {
            description
              "Configure traffic manager attributes";
            uses apply-advanced;
    
            leaf ingress-shaping-overhead {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "-62 .. 192";
                }
              }
              units "bytes";
              description
                "Number of CoS shaping overhead bytes in ingress";
            }
    
            leaf egress-shaping-overhead {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "-62 .. 192";
                }
              }
              units "bytes";
              description
                "Number of CoS shaping overhead bytes in egress";
            }
    
            leaf mode {
              type enumeration {
                enum "egress-only" {
                  value 0;
                  description
                    "Egress traffic manager enabled, ingress traffic manager disabled";
                }
                enum "session-shaping" {
                  value 1;
                  description
                    "Enable egress session shaping";
                }
                enum "ingress-and-egress" {
                  value 2;
                  description
                    "Enable the ingress and egress traffic managers";
                }
              }
              description
                "Configure traffic manager mode";
            }
          }  // container traffic-manager
    
          container idle-cell-format {
            description
              "ATM idle cell configuration";
            uses apply-advanced;
    
            leaf itu-t {
              type empty;
              description
                "ITU-T idle cell header format";
            }
    
            leaf payload-pattern {
              type string;
              description
                "Payload pattern byte (0x00-0xff)";
            }
          }  // container idle-cell-format
    
          container atm-l2circuit-mode {
            description
              "Enable ATM Layer 2 circuit transport mode";
            uses apply-advanced;
    
            choice mode_choice {
              leaf aal5 {
                type empty;
                description
                  "ATM Layer 2 circuit AAL5 mode";
              }
              leaf cell {
                type empty;
                description
                  "ATM Layer 2 circuit cell mode";
              }
              container trunk {
                presence "enable trunk";
                description
                  "Set ATM Layer 2 circuit trunk mode";
                uses apply-advanced;
    
                choice trunk-mode {
                  container uni {
                    presence "enable uni";
                    description
                      "ATM Layer 2 circuit user-to-network interface trunk mode";
                    uses apply-advanced;
                  }  // container uni
                  container nni {
                    presence "enable nni";
                    description
                      "ATM Layer 2 circuit network-to-network interface trunk mode";
                    uses apply-advanced;
                  }  // container nni
                }  // choice trunk-mode
              }  // container trunk
            }  // choice mode_choice
          }  // container atm-l2circuit-mode
    
          leaf atm-cell-relay-accumulation {
            type empty;
            description
              "Enable ATM cell-relay accumulation mode";
          }
    
          leaf mlfr-uni-nni-bundles {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 255";
              }
            }
            description
              "Number of multilink Frame Relay UNI NNI (FRF.16) bundles to allocate on PIC";
          }
    
          leaf mlfr-uni-nni-bundles-inline {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 255";
              }
            }
            description
              "Number of inline multilink frame relay UNI NNI bundles";
          }
    
          container ct3 {
            description
              "CT3 NxDS0 PIC configuration";
            uses apply-advanced;
    
            list port {
              key "name";
              description "CT3 port";
              uses ct3_port_type;
            }  // list port
          }  // container ct3
    
          container ce1 {
            description
              "CE1 NxDS0 PIC configuration";
            uses apply-advanced;
    
            list e1 {
              key "name";
              description "E1 link";
              uses ce1_channel_type;
            }  // list e1
          }  // container ce1
    
          leaf max-queues-per-interface {
            type enumeration {
              enum "4" {
                value 0;
                description
                  "Maximum 4 queues per interface";
              }
              enum "8" {
                value 1;
                description
                  "Maximum 8 queues per interface";
              }
            }
            description
              "Maximum number of queues per interface on QOS-capable PIC";
          }
    
          container shdsl {
            description
              "SHDSL chassis configuration";
            uses apply-advanced;
    
            leaf pic-mode {
              type enumeration {
                enum "1-port-atm" {
                  value 0;
                  description
                    "Single port ATM, 8 wire mode";
                }
                enum "2-port-atm" {
                  value 1;
                  description
                    "Two port ATM, 4 wire mode";
                }
                enum "4-port-atm" {
                  value 2;
                  description
                    "Four port ATM, 2 wire mode";
                }
                enum "efm" {
                  value 3;
                  description
                    "Single port EFM, 2 wire mode";
                }
              }
              default "2-port-atm";
              description "PIC mode";
            }
          }  // container shdsl
    
          list port-mirror-instance {
            key "name";
            max-elements 2;
            ordered-by user;
            leaf name {
              junos:must "(!("forwarding-options port-mirroring instance $$ input-parameters-instance"))";
              junos:must-message "Derived instance cannot be binded";
              junos:must "(((!("chassis network-services lan") && ("forwarding-options port-mirroring instance $$" || "forwarding-options analyzer $$")) || "chassis network-services lan"))";
              junos:must-message "Referenced port-mirroring instance does not exist";
              junos:must "(("forwarding-options port-mirroring instance $$" || "forwarding-options analyzer $$"))";
              junos:must-message "Referenced port-mirroring/analyzer instance does not exist";
              type string {
                length "1 .. 64";
              }
              description
                "Associate a port mirroring instance with the PIC";
            }
    
            uses apply-advanced;
          }  // list port-mirror-instance
    
          list port {
            key "name";
            description "Port number";
            uses chassis_pic_port_framing;
          }  // list port
    
          container fibre-channel {
            description
              "Fibre channel configuration option";
            uses chassis_fibre_channel_type;
          }  // container fibre-channel
    
          list qsfp-port {
            key "name";
            description "Qsfp port to configure";
            leaf name {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 1";
                }
              }
              description
                "Port-group 0:'0-3' 1:'4-7'";
            }
    
            uses apply-advanced;
    
            leaf port-mode {
              type enumeration {
                enum "40g" {
                  value 0;
                  description "40G mode";
                }
                enum "10g" {
                  value 1;
                  description "10G mode";
                }
              }
              description
                "Select mode for port-group";
            }
          }  // list qsfp-port
    
          container sfpplus {
            description
              "Sfpplus configuration option";
            uses apply-advanced;
    
            leaf pic-mode {
              type enumeration {
                enum "1g" {
                  value 0;
                  description "1G SFP mode";
                }
                enum "10g" {
                  value 1;
                  description "10G SFP+ mode";
                }
              }
              description "PIC mode";
            }
          }  // container sfpplus
        }  // grouping chassis_pic_type
    
        grouping ce1_channel_type {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "0 .. 9";
              }
            }
            description "E1 link number";
          }
    
          uses apply-advanced;
    
          list channel-group {
            key "name";
            description "Define channel group";
            leaf name {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 23";
                }
              }
              description "Channel group number";
            }
    
            leaf timeslots {
              type string;
              description
                "DS0 timeslots (1..31); for example, 1-3,4,9,22-24 (no spaces)";
            }
          }  // list channel-group
        }  // grouping ce1_channel_type
    
        grouping chassis_fibre_channel_type {
          description
            "Fibre channel configuration option";
          uses apply-advanced;
    
          list port-range {
            key "port-range-low port-range-high";
            ordered-by user;
            description
              "Fibre channel port range";
            leaf port-range-low {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 47";
                }
              }
              description
                "Port range low number";
            }
    
            leaf port-range-high {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 47";
                }
              }
              description
                "Port range high number";
            }
    
            uses apply-advanced;
          }  // list port-range
        }  // grouping chassis_fibre_channel_type
    
        grouping chassis_pic_port_framing {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description "Port number";
          }
    
          uses apply-advanced;
    
          leaf framing {
            type enumeration {
              enum "sonet" {
                value 0;
                description "SONET mode";
              }
              enum "sdh" {
                value 1;
                description "SDH mode";
              }
              enum "t3" {
                value 2;
                description "T3 mode";
              }
              enum "e3" {
                value 3;
                description "E3 mode";
              }
              enum "t1" {
                value 4;
                description "T1 mode";
              }
              enum "e1" {
                value 5;
                description "E1 mode";
              }
            }
            description "Framing mode";
          }
    
          leaf number-of-sub-ports {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description
              "Number of subports per physical port";
          }
    
          leaf speed {
            junos:must "(!((".. .. pic-mode" || ".. .. number-of-ports")))";
            junos:must-message " speed config can neither co-exist with pic <> number-of-ports <> nor pic <> pic-mode config";
            type enumeration {
              enum "oc3-stm1" {
                value 0;
                description "OC3 or STM1";
              }
              enum "oc12-stm4" {
                value 1;
                description "OC12 or STM4";
              }
              enum "oc48-stm16" {
                value 2;
                description "OC48 or STM16";
              }
              enum "1G" {
                value 3;
                description
                  "1GE-Gigabit Ethernet";
              }
              enum "10g" {
                value 4;
                description
                  "Sets the interface mode to 10Gbps";
              }
              enum "25g" {
                value 5;
                description
                  "Sets the interface mode to 25Gbps";
              }
              enum "40g" {
                value 6;
                description
                  "Sets the interface mode to 40Gbps";
              }
              enum "100g" {
                value 7;
                description
                  "Sets the interface mode to 100Gbps";
              }
              enum "50g" {
                value 8;
                description
                  "Sets the interface mode to 50Gbps";
              }
              enum "200g" {
                value 9;
                description
                  "Sets the interface mode to 200 Gbps";
              }
              enum "400g" {
                value 10;
                description
                  "Sets the interface mode to 400Gbps";
              }
            }
            description "Port speed";
          }
    
          leaf channel-speed {
            type enumeration {
              enum "10g" {
                value 0;
                description
                  "Set the port speed to 10G. This will restart PFE on some platforms.";
              }
              enum "25g" {
                value 1;
                description
                  "Set the port speed to 25G.";
              }
              enum "50g" {
                value 2;
                description
                  "Set the port speed to 50G.";
              }
              enum
                "disable-auto-speed-detection" {
                value 3;
                description
                  "Disables automatic speed detection";
              }
            }
            description "Port channel speed";
          }
        }  // grouping chassis_pic_port_framing
    
        grouping chassis_port_type {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "0 .. 47";
              }
            }
            description
              "Port number for tunnel services";
          }
    
          uses apply-advanced;
    
          leaf tunnel-services {
            type empty;
            description
              "Tunnel services configuration";
          }
        }  // grouping chassis_port_type
    
        grouping chassis_redundancy_type {
          uses apply-advanced;
    
          list routing-engine {
            key "name";
            description
              "Redundancy options for Routing Engines";
            uses chassis_rdd_re_type;
          }  // list routing-engine
    
          container failover {
            description
              "Failover to other Routing Engine";
            uses chassis_rdd_failover_type;
          }  // container failover
    
          leaf keepalive-time {
            junos:must "(!("chassis redundancy graceful-switchover"))";
            junos:must-message "Graceful switchover configured, cannot change the default keepalive interval";
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "2 .. 10000";
              }
            }
            units "seconds";
            description
              "Time before Routing Engine failover";
          }
    
          container graceful-switchover {
            junos:must "(!((any "chassis fpc <*> pic <*> monitoring-services application" && "chassis redundancy graceful-switchover")))";
            junos:must-message "Graceful Switchover is not supported on monitoring-services application";
            presence
              "enable graceful-switchover";
            description
              "Enable graceful switchover on supported hardware";
            uses chassis_non_stop_forwarding_type;
          }  // container graceful-switchover
        }  // grouping chassis_redundancy_type
    
        grouping chassis_non_stop_forwarding_type {
          junos:must "((!("system inet6-backup-router") || "system inet6-backup-router destination"))";
          junos:must-message "Please define destination subnet with the inet6-backup-router configuration";
          junos:must "((!("system backup-router") || "system backup-router destination"))";
          junos:must-message "Please define destination subnet with the backup-router configuration";
          uses apply-advanced;
    
          container traceoptions {
            status deprecated;
            description
              "Graceful switchover trace options";
            uses apply-advanced;
    
            list flag {
              key "name";
              ordered-by user;
              description "Tracing parameters";
              leaf name {
                type enumeration {
                  enum "update" {
                    value 0;
                    description
                      "Trace state updates";
                  }
                  enum "all" {
                    value 1;
                    description
                      "Trace everything";
                  }
                }
              }
            }  // list flag
          }  // container traceoptions
        }  // grouping chassis_non_stop_forwarding_type
    
        grouping chassis_rdd_failover_type {
          uses apply-advanced;
    
          container category {
            presence "enable category";
            description "Failover category";
            uses chassis_rdd_fail_cat_type;
          }  // container category
    
          leaf on-loss-of-keepalives {
            type empty;
            description
              "Failover on loss of keepalives";
          }
    
          leaf on-re-to-fpc-stale {
            type empty;
            description
              "Failover on loss of communication between the re and fpc";
          }
    
          leaf on-disk-failure {
            junos:must "(("chassis redundancy failover on-loss-of-keepalives" || "chassis redundancy graceful-switchover"))";
            junos:must-message "Option on-loss-of-keepalives or graceful-switchover must be set";
            type empty;
            description
              "Failover on disk failure";
          }
    
          leaf not-on-disk-underperform {
            type empty;
            description
              "Prevent gstatd from initiating failovers in response to slow disks";
          }
    
          leaf disk-read-threshold {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1000 .. 10000";
              }
            }
            description
              "Read threshold (ms) on disk underperform monitoring";
          }
    
          leaf disk-write-threshold {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1000 .. 10000";
              }
            }
            description
              "Write threshold (ms) on disk underperform monitoring";
          }
    
          leaf on-loss-of-vm-host-connection {
            type empty;
            description
              "Failover on loss of vm host connection";
          }
        }  // grouping chassis_rdd_failover_type
    
        grouping chassis_rdd_fail_cat_type {
          uses apply-advanced;
    
          container component-failure {
            presence "enable component-failure";
            description
              "Failover due to component failure";
            uses chassis_rdd_fail_cat_sev_type;
          }  // container component-failure
    
          container software-failure {
            presence "enable software-failure";
            description
              "Failover due to software failure";
            uses chassis_rdd_fail_cat_sev_type;
          }  // container software-failure
    
          container power-failure {
            presence "enable power-failure";
            description
              "Failover due to power failure";
            uses chassis_rdd_fail_cat_sev_type;
          }  // container power-failure
    
          container clock-failure {
            presence "enable clock-failure";
            description
              "Failover due to clock failure";
            uses chassis_rdd_fail_cat_sev_type;
          }  // container clock-failure
    
          container link-failure {
            presence "enable link-failure";
            description
              "Failover due to link failure";
            uses chassis_rdd_fail_cat_sev_type;
          }  // container link-failure
    
          container degraded-health {
            presence "enable degraded-health";
            description
              "Failover due to degraded health";
            uses chassis_rdd_fail_cat_sev_type;
          }  // container degraded-health
        }  // grouping chassis_rdd_fail_cat_type
    
        grouping chassis_rdd_fail_cat_sev_type {
          uses apply-advanced;
    
          container critical {
            presence "enable critical";
            description "Critical severity";
            uses chassis_rdd_fail_cat_sev_act_type;
          }  // container critical
    
          container important {
            presence "enable important";
            description "Important severity";
            uses chassis_rdd_fail_cat_sev_act_type;
          }  // container important
        }  // grouping chassis_rdd_fail_cat_sev_type
    
        grouping chassis_rdd_fail_cat_sev_act_type {
          uses apply-advanced;
    
          leaf disable {
            type empty;
            description "Disable action";
          }
        }  // grouping chassis_rdd_fail_cat_sev_act_type
    
        grouping chassis_rdd_re_type {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "0 .. 1";
              }
            }
            description
              "Routing Engine slot number";
          }
    
          choice priority {
            leaf master {
              type empty;
              description
                "Master Routing Engine";
            }
            leaf backup {
              type empty;
              description
                "Backup Routing Engine";
            }
            leaf disabled {
              type empty;
              description
                "Routing Engine disabled";
            }
          }  // choice priority
        }  // grouping chassis_rdd_re_type
    
        grouping chassis_routing_engine_type {
          uses apply-advanced;
    
          container on-disk-failure {
            description
              "Action to take when Routing Engine disk fails";
            uses chassis_re_on_disk_failure;
          }  // container on-disk-failure
    
          container disk {
            description
              "Action to take for Routing Engine disk";
            uses apply-advanced;
    
            leaf write-threshold-rate {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 20";
                }
              }
              units "MBPS";
              default "4";
              description "Write threshold rate";
            }
    
            leaf write-threshold-duration {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "300 .. 2592000";
                }
              }
              units "seconds";
              default "1000";
              description
                "Write threshold duration";
            }
    
            leaf smart-check {
              type empty;
              description
                "Enable smart check command to disk";
            }
    
            list ssd-series {
              key "name";
              ordered-by user;
              description
                "Specify the ssd vendor series";
              leaf name {
                type string {
                  length "1 .. 40";
                }
                description "SSD series name";
              }
    
              uses apply-advanced;
    
              list id {
                key "name";
                max-elements 30;
                ordered-by user;
                description
                  "Attribute ids to monitor of this series type";
                leaf name {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type uint32 {
                      range "1 .. 255";
                    }
                  }
                  description
                    "SSD smart attribute id";
                }
    
                uses apply-advanced;
    
                leaf id-threshold {
                  type union {
                    type string {
                      pattern "<.*>|$.*";
                    }
                    type uint32 {
                      range "1 .. 4294967295";
                    }
                  }
                  description
                    "SSD smart attribute threshold";
                }
    
                leaf id-value {
                  type enumeration {
                    enum "raw" {
                      value 0;
                      description
                        "Raw value to be used for this smart id";
                    }
                    enum "norm" {
                      value 1;
                      description
                        "Normalised value to be used for this smart id";
                    }
                  }
                  description
                    "SSD attribute value";
                }
    
                leaf id-flag {
                  type enumeration {
                    enum "low" {
                      value 0;
                      description
                        "Check if value is less than smart threshold";
                    }
                    enum "high" {
                      value 1;
                      description
                        "Check if value is greater than smart threshold";
                    }
                  }
                  description
                    "SSD attribute flag";
                }
              }  // list id
            }  // list ssd-series
          }  // container disk
        }  // grouping chassis_routing_engine_type
    
        grouping chassis_re_on_disk_failure {
          choice reboot_or_halt {
            leaf reboot {
              type empty;
              status deprecated;
              description
                "Reboot on disk failure";
            }
            leaf disk-failure-action {
              type enumeration {
                enum "reboot" {
                  value 0;
                  description
                    "Reboot on disk failure";
                }
                enum "halt" {
                  value 1;
                  description
                    "Halt on disk failure";
                }
              }
            }
          }  // choice reboot_or_halt
        }  // grouping chassis_re_on_disk_failure
    
        grouping chassis_sib_type {
          uses apply-advanced;
        }  // grouping chassis_sib_type
    
        grouping chassisd_agg_container_type {
          uses apply-advanced;
    
          leaf device-count {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 128";
              }
            }
            description
              "Number of container devices";
          }
        }  // grouping chassisd_agg_container_type
    
        grouping chassisd_agg_enet_type {
          uses apply-advanced;
    
          leaf device-count {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description
              "Number of aggregated Ethernet devices";
          }
    
          container lacp {
            description
              "Global Link Aggregation Control Protocol configuration";
            uses apply-advanced;
    
            leaf system-priority {
              type string;
              description
                "Priority of the system (0 ... 65535)";
            }
    
            container link-protection {
              presence "enable link-protection";
              uses apply-advanced;
    
              leaf non-revertive {
                type empty;
                description
                  "Don't revert links when better priority link comes up";
              }
            }  // container link-protection
          }  // container lacp
        }  // grouping chassisd_agg_enet_type
    
        grouping chassisd_agg_pos_type {
          uses apply-advanced;
    
          leaf device-count {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 64";
              }
            }
            description
              "Number of aggregated SONET devices";
          }
        }  // grouping chassisd_agg_pos_type
    
        grouping chassisd_provider_instance_type {
          uses apply-advanced;
    
          leaf device-count {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 16";
              }
            }
            description
              "Number of provider instance port devices";
          }
        }  // grouping chassisd_provider_instance_type
    
        grouping ct3_port_type {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type int32 {
                range "0 .. 1";
              }
            }
            description
              "CT3  L2NG_PRODUCTSport number";
          }
    
          uses apply-advanced;
    
          list t1 {
            key "name";
            description "T1 link";
            uses ct3_channel_type;
          }  // list t1
        }  // grouping ct3_port_type
    
        grouping ct3_channel_type {
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type int32 {
                range "0 .. 27";
              }
            }
            description "T1 link number";
          }
    
          uses apply-advanced;
    
          list channel-group {
            key "name";
            description "Define channel group";
            leaf name {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 7";
                }
              }
              description "Channel group number";
            }
    
            leaf timeslots {
              type string;
              description
                "DS0 timeslots (1..24); for example, 1-3,4,9,22-24 (no spaces)";
            }
          }  // list channel-group
        }  // grouping ct3_channel_type
    
        grouping juniper-protected-system-domain {
          description
            "Protected system domain configuration";
          leaf name {
            type string {
              junos:posix-pattern "^psd([1-9]|[1-2][0-9]|[3][0-1])$";
              junos:pattern-message "Protected system domain name is a string consisting of 'psd' follows by the PSD ID (1-31), ex. psd2";
            }
            description
              "Name of protected system domain (psd[1-31], ex. psd2)";
          }
    
          uses apply-advanced;
    
          leaf description {
            type string;
            description
              "Description of protected system domain";
          }
    
          list lcc {
            key "name";
            leaf name {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description "Specific LCC";
            }
    
            uses apply-advanced;
    
            leaf-list fpcs {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description
                "FPC associated with protected system domain";
            }
          }  // list lcc
    
          leaf control-system-id {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 4";
              }
            }
            description
              "Control system identifier";
          }
    
          leaf-list control-slot-numbers {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "1 .. 12";
              }
            }
            max-elements 2;
            ordered-by user;
            description
              "Slots associated with protected system domain";
          }
    
          leaf control-plane-bandwidth-percent {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32 {
                range "0 .. 100";
              }
            }
            units "percent";
            description
              "Percentage of control plane bandwidth";
          }
        }  // grouping juniper-protected-system-domain
    
        grouping juniper-protected-system-domain-traceoptions {
          description
            "Protected system domain traceoptions";
          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
    
          leaf level {
            type enumeration {
              enum "error" {
                value 0;
                description
                  "Match error conditions";
              }
              enum "warning" {
                value 1;
                description
                  "Match warning messages";
              }
              enum "notice" {
                value 2;
                description
                  "Match conditions that should be handled specially";
              }
              enum "info" {
                value 3;
                description
                  "Match informational messages";
              }
              enum "verbose" {
                value 4;
                description
                  "Match verbose messages";
              }
              enum "all" {
                value 5;
                description "Match all levels";
              }
            }
            default "error";
            description
              "Level of debugging output";
          }
    
          list flag {
            key "name";
            ordered-by user;
            description "Tracing parameters";
            leaf name {
              type enumeration {
                enum "configuration" {
                  value 0;
                  description
                    "Trace configuration events";
                }
                enum "rtsock" {
                  value 1;
                  description
                    "Trace rtsock messages";
                }
                enum "ipc" {
                  value 2;
                  description
                    "Trace IPC messages";
                }
                enum "init" {
                  value 3;
                  description
                    "Trace intialization messages";
                }
                enum "psd" {
                  value 4;
                  description
                    "Trace psd messages";
                }
                enum "all" {
                  value 5;
                  description "Trace everything";
                }
              }
            }
          }  // list flag
        }  // grouping juniper-protected-system-domain-traceoptions
    
        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 upgrade-group-fpcs {
          description "Upgrade group fpcs";
          leaf name {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type int32;
            }
            description "Member identifier";
          }
    
          uses apply-advanced;
    
          leaf-list fpcs {
            type union {
              type string {
                pattern "<.*>|$.*";
              }
              type uint32;
            }
            description
              "FPCs to be upgraded as a group in this member";
          }
        }  // grouping upgrade-group-fpcs
      }  // module junos-ex-conf-chassis
    

© 2023 YumaWorks, Inc. All rights reserved.