Junos chassis configuration module
Version: 2019-01-01
module junos-es-conf-chassis { yang-version 1; namespace "http://yang.juniper.net/junos-es/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-es-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 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"; } container config-button { description "Config button behavior settings"; leaf no-rescue { type empty; description "Don't reset to rescue configuration"; } leaf no-clear { type empty; description "Don't reset to factory-default configuration"; } } // container config-button 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 container icmp { description "ICMP protocol"; uses apply-advanced; leaf per-iff-rate-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "50 .. 500"; } } default "50"; description "Configure icmp per iff rate limit value in the range 50-500"; } } // container icmp container icmp6 { description "ICMP version 6 protocol"; uses apply-advanced; leaf per-iff-rate-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "50 .. 500"; } } default "50"; description "Configure icmp6 per iff rate limit value in the range 50-500"; } } // 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 pseudowire-service { presence "enable pseudowire-service"; description "Pseudowire L3 termination device configuration"; uses chassis-pw-type; } // container pseudowire-service 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 leaf disable-power-management { type empty; description "Disable Power Management in this chassis"; } leaf dedicated-ukern-cpu { junos:must "(!("chassis realtime-ukern-thread"))"; junos:must-message "dedicated-ukern-cpu and realtime-ukern-thread are mutually exclusive"; type empty; description "Run Microkernel on a dedicated CPU core"; } leaf realtime-ukern-thread { junos:must "(!("chassis dedicated-ukern-cpu"))"; junos:must-message "dedicated-ukern-cpu and realtime-ukern-thread are mutually exclusive"; type empty; description "Run Microkernel on a realtime CPU thread"; } 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 ioc-npc-connectivity { description "Connectivity between IOC and NPC"; uses apply-advanced; list ioc { key "name"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "IOC-FPC slot number"; } uses apply-advanced; container npc { description "NPC-FPC slot number"; choice npc-slot-choice { leaf none { type empty; description "IOC not connected to any NPC"; } leaf npc-slot { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "NPC-FPC slot number"; } } // choice npc-slot-choice } // container npc } // list ioc } // container ioc-npc-connectivity container pem { description "Power supply (PEM) parameters"; uses chassis_pem_type; } // container pem 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 onbox-av-load-flavor { type enumeration { enum "heavy" { value 0; description "Allocates additional resources for improved performance"; } } description "Select onbox anti-virus traffic load flavor"; } 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"; } container resource-watch { description "Chassis routing engine resource watch configuration"; uses apply-advanced; leaf resource-watch-enable { type empty; description "Enable resource watch"; } leaf cpu-statistics { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 604800"; } } units "seconds"; description "Set statistics collection, 0 disable"; } leaf junos-statistics { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 604800"; } } units "seconds"; description "Set statistics collection, 0 disable"; } leaf orange-zone-enable { type empty; description "Enable orange zone"; } leaf orange-zone-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 99"; } } description "Set orange zone value (CPU idle %), default 20"; } leaf red-zone-enable { type empty; description "Enable red zone"; } leaf red-zone-cpu-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 99"; } } description "Set red zone value (CPU idle %), default 10"; } leaf red-zone-jkl-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 99"; } } description "Set red zone value (Junos load %), default 50"; } leaf red-zone-snmp-enable { type empty; description "Enable red zone snmp"; } } // container resource-watch 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 container pem { description "Power supply (PEM) parameters"; uses chassis_pem_type; } // container pem 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; 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"; } 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 error { presence "enable error"; description "Error level configuration for all FPC"; uses chassis_fpc_error_type; } // container error 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 container cluster { description "Chassis cluster configuration"; uses apply-advanced; container traceoptions { description "Set chassis cluster 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 list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "cli" { value 0; description "Trace CLI events"; } enum "configuration" { value 1; description "Trace configuration events"; } enum "eventlib" { value 2; description "Trace event library events"; } enum "fsm" { value 3; description "Trace finite state machine events"; } enum "heartbeat" { value 4; description "Trace JSRPD heartbeats"; } enum "interface" { value 5; description "Trace interface related events"; } enum "routing-socket" { value 6; description "Trace routing socket events"; } enum "uspipc" { value 7; description "Trace USP IPC events"; } enum "init" { value 8; description "Trace initialization events"; } enum "socket" { value 9; description "Trace socket events"; } enum "snmp" { value 10; description "Trace snmp events"; } enum "ip-monitoring" { value 11; description "Trace IP monitoring events"; } enum "hw-monitoring" { value 12; description "Trace HW monitoring events"; } enum "fabric-monitoring" { value 13; description "Trace fabric monitoring events"; } enum "health-monitoring" { value 14; description "Trace health monitoring events"; } enum "schedule-monitoring" { value 15; description "Trace schedule monitoring events"; } enum "heartbeat-tlv" { value 16; description "Trace TLV based heart-beat"; } enum "ha-peer" { value 17; description "Trace HA peer related info"; } enum "srg" { value 18; description "Trace HA srg related info"; } enum "all" { value 19; description "Trace all events"; } } } } // list flag leaf level { type enumeration { enum "emergency" { value 0; description "Match emergency conditions"; } enum "alert" { value 1; description "Match alert conditions"; } enum "critical" { value 2; description "Match critical conditions"; } enum "error" { value 3; description "Match error conditions"; } enum "warning" { value 4; description "Match warning messages"; } enum "notice" { value 5; description "Match notice level messages"; } enum "info" { value 6; description "Match informational messages"; } enum "debug" { value 7; description "Match debug messages"; } enum "all" { value 8; description "Match all levels"; } } default "info"; description "Set level of tracing"; } } // container traceoptions leaf control-link-recovery { type empty; description "Enable automatic control link recovery"; } leaf health-monitoring { type empty; description "Enable ha health monitoring"; } leaf reth-count { type union { type string { pattern "<.*>|$.*"; } type uint16; } description "Number of redundant ethernet interfaces"; } container control-interface { description "Disable/enable HA control-link interface"; uses apply-advanced; list node { key "name"; ordered-by user; description "Set node specific parameters"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1"; } } description "Node identifier"; } leaf disable { type empty; description "Disable HA control interface"; } } // list node } // container control-interface list control-ports { key "fpc port"; ordered-by user; description "Enable specific chassis cluster control ports"; leaf fpc { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "FPC slot number"; } leaf port { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 2"; } } description "Port number"; } } // list control-ports leaf heartbeat-interval { type union { type string { pattern "<.*>|$.*"; } type uint32; } units "milliseconds"; default "1000"; description "Interval between successive heartbeats"; } leaf heartbeat-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32; } default "3"; description "Number of consecutive missed heartbeats to indicate device failure"; } container network-management { description "Define parameters for network management"; uses apply-advanced; leaf cluster-master { type empty; description "Enable in-band management on cluster-master"; } } // container network-management list node { key "name"; ordered-by user; status deprecated; description "Set the list of nodes in the cluster"; leaf name { type enumeration { enum "0" { value 0; description "Node identifier 0"; } enum "1" { value 1; description "Node identifier 1"; } } description "Node identifier"; } uses apply-advanced; } // list node list redundancy-group { key "name"; ordered-by user; description "Set redundancy-group parameters"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint8; } description "Redundancy-group number"; } uses apply-advanced; list node { key "name"; ordered-by user; description "Set node specific parameters"; leaf name { type enumeration { enum "0" { value 0; description "Node identifier 0"; } enum "1" { value 1; description "Node identifier 1"; } } description "Node identifier"; } leaf priority { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 254"; } } description "Priority of the node in the redundancy-group"; } } // list node container preempt { presence "enable preempt"; description "Allow preemption of primaryship based on priority"; uses apply-advanced; leaf delay { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 21600"; } } units "seconds"; description "Time to wait before taking over mastership"; } leaf limit { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 50"; } } description "Max number of preemptive failovers allowed"; } leaf period { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 1400"; } } units "seconds"; description "Time period during which the limit is applied"; } } // container preempt leaf gratuitous-arp-count { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 16"; } } description "Number of gratuitous ARPs to send on an active interface after failover"; } leaf hold-down-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 1800"; } } units "seconds"; description "RG failover interval. RG0(300-1800) RG1+(0-1800)"; } list interface-monitor { key "name"; ordered-by user; description "Define interfaces to monitor"; leaf name { junos:must "("interfaces $$")"; junos:must-message "Interface must be defined before configuring monitoring"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Name of the interface to monitor"; } leaf weight { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 255"; } } description "Weight assigned to this interface that influences failover"; } } // list interface-monitor container ip-monitoring { description "Define parameters for IP monitoring feature"; uses apply-advanced; leaf global-weight { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 255"; } } default "255"; description "Define global weight for IP monitoring"; } leaf global-threshold { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 255"; } } default "0"; description "Define global threshold for IP monitoring"; } leaf retry-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } default "1"; description "Define the time interval in seconds between retries."; } leaf retry-count { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "5 .. 15"; } } default "5"; description "Number of retries needed to declare reachablity failure"; } container family { description "Define protocol family"; uses apply-advanced; container inet { description "Define IPv4 related parameters"; uses apply-advanced; list address { key "name"; description "Define IP address related parameters"; uses ip-monitoring-address-type; } // list address } // container inet } // container family } // container ip-monitoring } // list redundancy-group container configuration-synchronize { description "Cluster configuration action"; uses apply-advanced; leaf no-secondary-bootup-auto { type empty; description "Disable auto configuration synchronize on secondary bootup"; } } // container configuration-synchronize leaf use-actual-mac-on-physical-interfaces { type empty; description "Use Hypervisor provided MAC for physical interfaces on virtual platforms"; } leaf use-active-child-mac-on-reth { type empty; description "Copy Child's physical MAC on RETH parent's current MAC"; } } // container cluster container high-availability { presence "enable high-availability"; description "Enable High Availability mode"; uses apply-advanced; container local-id { description "Local Identifier"; leaf id { junos:must "(!("chassis high-availability peer-id $$"))"; junos:must-message "high-availability local-id must be different with peer-id"; junos:must "("chassis high-availability peer-id")"; junos:must-message "high-availability peer-id must be defined"; type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 10"; } } description "Local identifier number"; } leaf local-ip { type jt:ipaddr; description "Local IPv4/IPv6 address"; } } // container local-id list peer-id { key "name"; ordered-by user; description "Peer related information"; leaf name { junos:must "(!("chassis high-availability local-id $$"))"; junos:must-message "high-availability local-id must be different with peer-id"; junos:must "("chassis high-availability local-id")"; junos:must-message "high-availability local-id must be defined"; type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 10"; } } description "Peer Identifier"; } uses apply-advanced; leaf desc { type string { length "1 .. 255"; } description "Peer Description"; } leaf peer-ip { type jt:ipaddr; description "Peer IPv4/IPv6 address"; } leaf interface { junos:must "(!(("protocols l2-learning global-mode switching" && "interfaces $$ family ethernet-switching")))"; junos:must-message "Referenced interface must not be ethernet-switching interface of switching mode"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } leaf routing-instance { junos:must "("routing-instances $$ instance-type virtual-router")"; junos:must-message "'instance-type' for the referenced routing-instance must be configured as virtual-router"; junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance to locate the peer route"; } leaf vpn-profile { junos:must "("security ipsec vpn $$ ha-link-encryption")"; junos:must-message "Referenced vpn object must have ha-link-encryption flag defined"; junos:must "("security ipsec vpn $$")"; junos:must-message "Referenced vpn object must be defined under [edit security ipsec vpn]"; type string { length "1 .. 255"; } description "VPN Profile name for HA link Encryption"; } container liveness-detection { presence "enable liveness-detection"; description "Bidirectional Forwarding Detection options for the peer"; uses apply-advanced; leaf version { type enumeration { enum "0" { value 0; description "BFD version 0 (deprecated)"; } enum "1" { value 1; description "BFD version 1"; } enum "automatic" { value 2; description "Choose BFD version automatically"; } } default "automatic"; description "BFD protocol version number"; } leaf minimum-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255000"; } } units "milliseconds"; description "Minimum transmit and receive interval"; } leaf minimum-transmit-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255000"; } } units "milliseconds"; status deprecated; description "Minimum transmit interval"; } leaf minimum-receive-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255000"; } } units "milliseconds"; description "Minimum receive interval"; } leaf multiplier { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } default "3"; description "Detection time multiplier"; } choice adaptation-choice { leaf no-adaptation { type empty; description "Disable adaptation"; } } // choice adaptation-choice container transmit-interval { description "Transmit-interval options"; uses apply-advanced; leaf minimum-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255000"; } } units "milliseconds"; description "Minimum transmit interval"; } leaf threshold { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "milliseconds"; description "High transmit interval triggering a trap"; } } // container transmit-interval container detection-time { description "Detection-time options"; uses apply-advanced; leaf threshold { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "milliseconds"; description "High detection-time triggering a trap"; } } // container detection-time } // container liveness-detection } // list peer-id container traceoptions { description "Set chassis l3-ha 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 list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "cli" { value 0; description "Trace CLI events"; } enum "configuration" { value 1; description "Trace configuration events"; } enum "eventlib" { value 2; description "Trace event library events"; } enum "fsm" { value 3; description "Trace finite state machine events"; } enum "heartbeat" { value 4; description "Trace JSRPD heartbeats"; } enum "interface" { value 5; description "Trace interface related events"; } enum "routing-socket" { value 6; description "Trace routing socket events"; } enum "uspipc" { value 7; description "Trace USP IPC events"; } enum "init" { value 8; description "Trace initialization events"; } enum "socket" { value 9; description "Trace socket events"; } enum "snmp" { value 10; description "Trace snmp events"; } enum "ip-monitoring" { value 11; description "Trace IP monitoring events"; } enum "hw-monitoring" { value 12; description "Trace HW monitoring events"; } enum "fabric-monitoring" { value 13; description "Trace fabric monitoring events"; } enum "health-monitoring" { value 14; description "Trace health monitoring events"; } enum "schedule-monitoring" { value 15; description "Trace schedule monitoring events"; } enum "heartbeat-tlv" { value 16; description "Trace TLV based heart-beat"; } enum "ha-peer" { value 17; description "Trace HA peer related info"; } enum "srg" { value 18; description "Trace HA srg related info"; } enum "all" { value 19; description "Trace all events"; } } } } // list flag leaf level { type enumeration { enum "emergency" { value 0; description "Match emergency conditions"; } enum "alert" { value 1; description "Match alert conditions"; } enum "critical" { value 2; description "Match critical conditions"; } enum "error" { value 3; description "Match error conditions"; } enum "warning" { value 4; description "Match warning messages"; } enum "notice" { value 5; description "Match notice level messages"; } enum "info" { value 6; description "Match informational messages"; } enum "debug" { value 7; description "Match debug messages"; } enum "all" { value 8; description "Match all levels"; } } default "info"; description "Set level of tracing"; } } // container traceoptions list services-redundancy-group { key "name"; ordered-by user; description "Define the services level failover domain"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 256"; } } description "Services redundancy group identifier"; } uses apply-advanced; list shutdown-on-failure { key "name"; ordered-by user; description "Interfaces to be shut down in case of internal failures"; leaf name { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Name of the interface"; } uses apply-advanced; } // list shutdown-on-failure container peer-id { presence "enable peer-id"; description "Peer related information"; uses apply-advanced; leaf id { junos:must "("chassis high-availability peer-id $$")"; junos:must-message "above peer-id should be configured at chassis high-availability stanza"; junos:must "("chassis high-availability peer-id")"; junos:must-message "high-availability peer-id must be defined"; type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 10"; } } description "Peer Identifier"; } } // container peer-id container floating-ip { description "Designated floating IP for activeness probe"; uses apply-advanced; leaf ip-address { type jt:ipv4addr; description "IPv4 address"; } } // container floating-ip container activeness-probe { description "The probe destination IP for activeness determination"; uses apply-advanced; container dest-ip { description "Destination IPV4 address"; uses apply-advanced; leaf ip-address { type jt:ipv4addr; description "Destination IPV4 address"; } leaf routing-instance { junos:must "("routing-instances $$ instance-type virtual-router")"; junos:must-message "'instance-type' for the referenced routing-instance must be configured as virtual-router"; junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance"; } } // container dest-ip } // container activeness-probe container monitor { description "Configure the BFD and IP monitoring"; uses apply-advanced; list ip { key "name"; ordered-by user; description "Destination IPV4 address for monitoring"; leaf name { type jt:ipv4addr; description "Destination IPV4 address"; } uses apply-advanced; leaf routing-instance { junos:must "("routing-instances $$ instance-type virtual-router")"; junos:must-message "'instance-type' for the referenced routing-instance must be configured as virtual-router"; junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance to locate the destination route"; } } // list ip list bfd-liveliness { key "name"; ordered-by user; description "Configure BFD monitoring"; leaf name { type jt:ipv4addr; description "Destination IPV4 address for BFD monitoring"; } uses apply-advanced; leaf src-ip { type jt:ipv4addr; description "Source IPV4 address for BFD monitoring"; } leaf routing-instance { junos:must "("routing-instances $$ instance-type virtual-router")"; junos:must-message "'instance-type' for the referenced routing-instance must be configured as virtual-router"; junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance to locate the route"; } leaf session-type { type enumeration { enum "singlehop" { junos:must "(".. interface")"; junos:must-message "Interface should be mentioned for singlehop bfd monitoring sessions"; value 0; description "Single hop"; } enum "multihop" { value 1; description "Multihop"; } } description "BFD Mon Session Type"; } leaf interface { junos:must "("interfaces $$-IFL family inet")"; junos:must-message "Family inet must be defined on this logical interface"; junos:must "(!(".. session-type multihop"))"; junos:must-message "Interface name not allowed for multihop bfd monitoring sessions"; junos:must "(!(("protocols l2-learning global-mode switching" && "interfaces $$ family ethernet-switching")))"; junos:must-message "Referenced interface must not be ethernet-switching interface of switching mode"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Name of the interface for single-hop sessions"; } } // list bfd-liveliness } // container monitor container active-signal-route { description "Configure the active signal route"; uses apply-advanced; leaf ip-address { type jt:ipv4addr; description "Active IPv4 address"; } leaf routing-instance { junos:must "("routing-instances $$ instance-type virtual-router")"; junos:must-message "'instance-type' for the referenced routing-instance must be configured as virtual-router"; junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance to install the active signal route"; } } // container active-signal-route container backup-signal-route { description "Configure the backup signal route"; uses apply-advanced; leaf ip-address { type jt:ipv4addr; description "Backup IPv4 address"; } leaf routing-instance { junos:must "("routing-instances $$ instance-type virtual-router")"; junos:must-message "'instance-type' for the referenced routing-instance must be configured as virtual-router"; junos:must "(("routing-instances $$" || any "tenants <*> routing-instances $$"))"; junos:must-message "referenced routing-instance must be defined"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance to install the backup signal route"; } } // container backup-signal-route leaf process-packet-on-backup { type empty; description "Enable PFE to process packets on backup node"; } leaf activeness-priority { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 254"; } } description "Activeness Priority of the node for this SRG"; } } // list services-redundancy-group } // container high-availability list node { key "name"; description "Set node specific parameters"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1"; } } description "Node identifier"; } 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 } // list node } // 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_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 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 l2-chan-err-ethernet { description "L2 channel error ethernet alarms"; uses chassis_alarm_l2_chan_err_type; } // container l2-chan-err-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 leaf pem-absence { type enumeration { enum "ignore" { value 0; description "Ignore the power supply module absence alarm"; } } description "Power supply module absence"; } } // 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_l2_chan_err_type { uses apply-advanced; leaf l2-channel-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 "Received L2 channel error"; } leaf l2-channel-error-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4294967295"; } } description "L2 channel error threshold - 50,000 as default"; } } // grouping chassis_alarm_l2_chan_err_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_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 degraded { presence "enable degraded"; description "Degraded fabric configuration"; uses apply-advanced; leaf action-fpc-restart-disable { type empty; description "Limit degraded fabric actions to Plane restart only"; } } // container degraded 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_error_type { description "Chassis Fpc Error level"; uses apply-advanced; container fatal { description "FPC Fatal errors (default threshold = 1)"; uses chassis_fpc_error_level_major_fatal; } // container fatal container major { description "FPC Major Level errors (default threshold = 1)"; uses chassis_fpc_error_level_major_fatal; } // container major container minor { description "FPC Minor Level errors (default threshold = 10)"; uses chassis_fpc_error_level_minor; } // container minor } // grouping chassis_fpc_error_type grouping chassis_fpc_error_level_major_fatal { uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1024"; } } description "Error count at which to take the action"; } list action { key "name"; ordered-by user; description "Configure the action for this level"; leaf name { type enumeration { enum "reset" { junos:must "(!(".. .. action offline"))"; junos:must-message "'reset' and 'offline' cannot be both configured"; value 0; description "Reset FPC"; } enum "offline" { junos:must "(!(".. .. action reset"))"; junos:must-message "'offline' and 'reset' cannot be both configured"; value 1; description "Offline FPC"; } enum "alarm" { value 2; description "Raise FPC alarm"; } enum "get-state" { value 3; description "Retreive FPC state for debugging"; } enum "log" { value 4; description "Log occurence to system log file"; } enum "disable-pfe" { value 5; description "Disable PFE interfaces on FPC"; } enum "reset-pfe" { junos:must "(!(".. .. action offline-pfe"))"; junos:must-message "'reset-pfe' and 'offline-pfe' cannot be both configured"; junos:must "(!(".. .. action disable-pfe"))"; junos:must-message "'reset-pfe' and 'disable-pfe' cannot be both configured"; value 6; description "Reset PFE on FPC"; } enum "offline-pic" { value 7; description "Offline PICs associated with PFE on FPC"; } enum "trap" { value 8; description "Raise FPC trap"; } } } uses apply-advanced; } // list action } // grouping chassis_fpc_error_level_major_fatal grouping chassis_fpc_error_level_minor { uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1024"; } } description "Error count at which to take the action"; } list action { key "name"; ordered-by user; description "Configure the action for this level"; leaf name { type enumeration { enum "reset" { junos:must "(!(".. .. action offline"))"; junos:must-message "'reset' and 'offline' cannot be both configured"; value 0; description "Reset FPC"; } enum "offline" { junos:must "(!(".. .. action reset"))"; junos:must-message "'offline' and 'reset' cannot be both configured"; value 1; description "Offline FPC"; } enum "alarm" { value 2; description "Raise FPC alarm"; } enum "get-state" { value 3; description "Retreive FPC state for debugging"; } enum "log" { value 4; description "Log occurence to system log file"; } enum "disable-pfe" { value 5; description "Disable PFE interfaces on FPC"; } enum "reset-pfe" { junos:must "(!(".. .. action offline-pfe"))"; junos:must-message "'reset-pfe' and 'offline-pfe' cannot be both configured"; junos:must "(!(".. .. action disable-pfe"))"; junos:must-message "'reset-pfe' and 'disable-pfe' cannot be both configured"; value 6; description "Reset PFE on FPC"; } enum "offline-pic" { value 7; description "Offline PICs associated with PFE on FPC"; } enum "trap" { value 8; description "Raise FPC trap"; } } } uses apply-advanced; } // list action } // grouping chassis_fpc_error_level_minor 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"; } 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 services-offload { type empty; status deprecated; description "Enable services offload on fpc"; } leaf cfp-to-et { type empty; description "Enable ET interface and remove CFP client"; } leaf np-cache { type empty; status deprecated; description "Enable NP cache and services offload on fpc"; } leaf np-cache-disable { type empty; description "Disable NP cache and services offload on fpc"; } leaf offline { type empty; description "Keep FPC offline"; } leaf offline-on-fabric-bandwidth-reduction { type empty; description "Bring FPC offline when running with reduced fabric bandwidth"; } container fabric { presence "enable fabric"; uses apply-advanced; leaf blackhole-action { type enumeration { enum "log-only" { value 0; description "Log the detected blackhole condition"; } enum "offline" { value 1; description "Offline the FPC"; } enum "restart" { value 2; description "Restart the FPC"; } enum "restart-then-offline" { value 3; description "Restart the FPC and offline in subsequent action. "; } } description "Action taken upon fabric plane blackhole involving the FPC"; } container bandwidth-degradation { description "Take FPC recovery action when FPC running with reduced fabric bandwidth"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 99"; } } description "The percentage of PFE bandwidth degradation to trigger action"; } leaf no-fabric-switchover { type empty; description "Do not perform switchover to spare CB"; } leaf action { type enumeration { enum "log-only" { value 0; description "Log the bandwidth degradation only"; } enum "offline" { value 1; description "Offline the FPC, default action"; } enum "restart" { value 2; description "Restart the FPC"; } enum "restart-then-offline" { value 3; description "Restart the FPC and offline in subsequent action"; } } description "Type of action to trigger"; } } // container bandwidth-degradation } // container fabric 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"; 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 error { description "Error level configuration for FPC"; uses chassis_fpc_error_type; } // container error } // grouping chassis_fpc_type grouping chassis_pem_type { uses apply-advanced; leaf minimum { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Minimum number of power supplies required for normal operation"; } leaf input-current { type enumeration { enum "40" { junos:must "((!("chassis pem feeds") || "chassis pem feeds 6"))"; junos:must-message "Must configured with 6 feeds"; value 0; description "40 Amps in each Feed"; } enum "60" { value 1; description "60 Amps in each Feed"; } } default "60"; description "Input current (Amps) in each feed "; } } // grouping chassis_pem_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"; } 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 queue-buffer-size { type enumeration { enum "small" { value 0; description "Use small buffer size"; } } description "Set the buffer size of output queue"; } 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"; } container services-offload { presence "enable services-offload"; description "Enable services offload"; uses apply-advanced; leaf per-session-statistics { junos:must "(!(".. packet-copy"))"; junos:must-message "packet-copy and per-session-statistics options are mutual exclusive"; type empty; description "Keep per session statistics in NP"; } leaf low-latency { type empty; description "Bypass Traffic Management stage to achieve low latency"; } } // container services-offload 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, 4 wire mode"; } enum "2-port-atm" { value 1; description "Two port ATM, 2 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 container ethernet { description "J-series Ethernet PIM mode configuration"; uses apply-advanced; leaf pic-mode { type enumeration { enum "switching" { value 0; description "Switched mode of operation"; } enum "routing" { value 1; description "Routing mode of operation"; } enum "enhanced-switching" { junos:must "(unique "chassis fpc <*> pic <*> ethernet pic-mode enhanced-switching")"; junos:must-message "Enhanced-switching can be configured only on single PIM"; value 2; description "Enhanced switching mode of operation"; } } default "routing"; description "PIC mode"; } } // container ethernet leaf tunnel-queuing { type empty; description "Enable queueing for GRE/IPIP tunnels"; } 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"; 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 leaf ingress-policer-overhead { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } units "bytes"; description "Number of policer overhead bytes in ingress"; } } // 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_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 control-interface { presence "enable control-interface"; description "Configure recovery method and pause frame for control interface"; uses apply-advanced; leaf recovery-method { type enumeration { enum "disable-recovery" { value 0; description "Don't enable recovery"; } enum "socket" { value 1; description "Recovery by using socket"; } enum "counter" { value 2; description "Recovery by using BCM-Counters"; } } description "Select the recovery method"; } leaf pause-frame { type empty; description "Enable or disable Pause frame generation"; } } // container control-interface container bios { description "Routing Engine BIOS"; uses apply-advanced; leaf no-auto-upgrade { type empty; description "Disable routing-engine BIOS auto-upgrade"; } leaf uninterrupt { type empty; description "Set routing-engine BIOS uninterruptable"; } } // container bios 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 container usb-wwan { description "Enable WWAN (3G) access on the USB port"; uses apply-advanced; leaf port { type enumeration { enum "0" { value 0; description "Select port 0 to enable WWAN access"; } enum "1" { value 1; description "Select port 1 to enable WWAN access"; } } description "Select the port"; } } // container usb-wwan } // 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 leaf failover { type empty; description "Redundancy group 0 failover on disk failure"; } } // grouping chassis_re_on_disk_failure 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 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 ip-monitoring-address-type { description "Define IP address related parameters"; leaf name { type jt:ipv4addr; description "Define IPv4 address to be monitored"; } uses apply-advanced; leaf weight { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 255"; } } description "Define weight for this IP address"; } list interface { key "name"; max-elements 1; ordered-by user; description "Logical interface through which to monitor this IP address"; leaf name { junos:must "("interfaces $$-IFL family inet")"; junos:must-message "Family inet must be defined on this logical interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Logical interface name"; } uses apply-advanced; leaf secondary-ip-address { type jt:ipv4addr; description "Define source address for monitoring packets on secondary link"; } } // list interface } // grouping ip-monitoring-address-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 } // module junos-es-conf-chassis
© 2023 YumaWorks, Inc. All rights reserved.