Junos chassis configuration module
Version: 2019-01-01
module junos-qfx-conf-chassis { yang-version 1; namespace "http://yang.juniper.net/junos-qfx/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-qfx-conf-root { prefix jc; revision-date "2019-01-01"; } organization "Juniper Networks, Inc."; contact "yang-support@juniper.net"; description "Junos chassis configuration module"; revision "2019-01-01" { description "Junos: 21.3R1.9"; } augment /jc:configuration { uses chassis-group; } augment /jc:configuration/jc:groups { uses chassis-group; } grouping chassis-group { container chassis { description "Chassis configuration"; uses chassis_type; } // container chassis } // grouping chassis-group grouping chassis_type { uses apply-advanced; container nssu { presence "enable nssu"; description "Nonstop Software Upgrade settings"; uses apply-advanced; list upgrade-group { key "name"; ordered-by user; description "Nonstop Software Upgrade group"; leaf name { type string { length "1 .. 254"; } } uses apply-advanced; leaf-list fpcs { type union { type string { pattern "<.*>|$.*"; } type uint32; } max-elements 16; description "FPCs associated with update-group"; } } // list upgrade-group leaf rcp-count { type union { type string { pattern "<.*>|$.*"; } type int32 { range "1 .. 8"; } } description "Parallel rcp count"; } leaf lc-reboot-delay { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 600"; } } description "Delay between linecard reboot during NSSU"; } } // container nssu leaf no-power-budget { type empty; description "Disable Chassis Power Budget"; } container psu { description "Power Supply Unit redundancy configuration"; uses apply-advanced; container redundancy { description "PSU Redundancy settings"; uses apply-advanced; leaf n-plus-n { type empty; description "PSU redundancy: N+N configuration"; } } // container redundancy } // container psu leaf fpc-resync { type empty; description "Send and receive Nchip cells for newly onlined FPC"; } leaf craft-lockout { type empty; description "Disable craft interface input"; } choice source-route-choice { leaf source-route { type empty; status deprecated; description "Enable IP source-route processing"; } leaf no-source-route { type empty; status deprecated; description "Don't enable IP source-route processing"; } } // choice source-route-choice choice packet-scheduling-choice { leaf packet-scheduling { type empty; description "Enable DX2.0 packet scheduling"; } leaf no-packet-scheduling { type empty; description "Don't enable DX2.0 packet scheduling"; } } // choice packet-scheduling-choice container icmp { description "ICMP protocol"; uses apply-advanced; } // container icmp container icmp6 { description "ICMP version 6 protocol"; uses apply-advanced; } // container icmp6 leaf maximum-ecmp { type enumeration { enum "16" { value 0; description "Maximum 16 ECMP routes"; } enum "32" { value 1; description "Maximum 32 ECMP routes"; } enum "64" { value 2; description "Maximum 64 ECMP routes"; } enum "96" { value 3; description "Maximum 96 ECMP routes"; } enum "128" { value 4; description "Maximum 128 ECMP routes"; } enum "160" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 5; description "Maximum 160 ECMP routes"; } enum "192" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 6; description "Maximum 192 ECMP routes"; } enum "224" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 7; description "Maximum 224 ECMP routes"; } enum "256" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 8; description "Maximum 256 ECMP routes"; } enum "288" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 9; description "Maximum 288 ECMP routes"; } enum "320" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 10; description "Maximum 320 ECMP routes"; } enum "352" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 11; description "Maximum 352 ECMP routes"; } enum "384" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 12; description "Maximum 384 ECMP routes"; } enum "416" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 13; description "Maximum 416 ECMP routes"; } enum "448" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 14; description "Maximum 448 ECMP routes"; } enum "480" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 15; description "Maximum 480 ECMP routes"; } enum "512" { junos:must "(!("system processes routing force-32-bit"))"; junos:must-message "32-bit rpd doesn't support ecmp greater than 128"; value 16; description "Maximum 512 ECMP routes"; } } description "Maximum ECMP limit for nexthops"; } container redundancy { description "Redundancy settings"; uses chassis_redundancy_type; } // container redundancy container routing-engine { description "Routing Engine settings"; uses chassis_routing_engine_type; } // container routing-engine container aggregated-devices { description "Aggregated devices configuration"; uses chassis_agg_dev_type; } // container aggregated-devices list disk-partition { key "name"; ordered-by user; description "Chassis disk monitor configuration"; leaf name { type enumeration { enum "/var" { value 0; description "Monitor /var partition"; } enum "/config" { value 1; description "Monitor /config partition"; } } description "Choose disk partition to monitor"; } uses apply-advanced; list level { key "name"; ordered-by user; description "Threshold level"; leaf name { type enumeration { enum "high" { value 0; description "Set high level of threshold"; } enum "full" { value 1; description "Set full level of threshold"; } } } uses apply-advanced; container free-space { description "Enter threshold value & choose the metric"; leaf thres-free { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } description "Enter free space threshold value"; } choice thres-metric { leaf percent { type empty; description "Free space threshold in %"; } leaf mb { type empty; description "Free space threshold in MB"; } } // choice thres-metric } // container free-space } // list level } // list disk-partition container container-devices { description "Container devices configuration"; uses chassisd_agg_container_type; } // container container-devices container pseudowire-service { presence "enable pseudowire-service"; description "Pseudowire L3 termination device configuration"; uses chassis-pw-type; } // container pseudowire-service container redundancy-group { description "Redundancy group configuration"; uses chassisd-redundancy-group-type; } // container redundancy-group 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-fm { type empty; description "Disable Fabric Manager"; } 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 pem { description "Power supply (PEM) parameters"; uses chassis_pem_type; } // container pem container sib { description "Switch Interface Board parameters"; uses chassis_sib_type; } // container sib container feb { description "Forwarding Engine Board parameters"; uses chassis_feb_type; } // container feb 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 fpc-ifl-ae-statistics { type empty; description "Enable fpc ifl ae child statistics"; } leaf ambient-temperature { type enumeration { enum "55C" { value 0; description "55 degree celsius"; } enum "40C" { value 1; description "40 degree celsius"; } enum "25C" { value 2; description "25 degree celsius"; } enum "32C" { value 3; description "32 degree celsius"; } } description "Chassis ambient-temperature value in degree celsius"; } leaf network-services { type enumeration { enum "ip" { value 0; description "IP network services"; } enum "ethernet" { junos:must "((!(any "interfaces <*> unit <*> family inet accounting source-class-usage") && (!(any "interfaces <*> unit <*> family inet accounting destination-class-usage") && (!(any "interfaces <*> unit <*> family inet6 accounting source-class-usage") && (!(any "interfaces <*> unit <*> family inet6 accounting destination-class-usage") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet accounting source-class-usage") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet accounting destination-class-usage") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet6 accounting source-class-usage") && !(any "logical-systems <*> interfaces <*> unit <*> family inet6 accounting destination-class-usage")))))))))"; junos:must-message "Cannot configure 'accounting source-class-usage or destination-class-usage' under network-services ethernet"; junos:must "((!("routing-options forwarding-table unicast-reverse-path") && (!(any "routing-instances <*> routing-options forwarding-table unicast-reverse-path") && (!(any "logical-systems <*> routing-options forwarding-table unicast-reverse-path") && !(any "logical-systems <*> routing-instances <*> routing-options forwarding-table unicast-reverse-path")))))"; junos:must-message "Cannot configure 'unicast-reverse-path' under network-services ethernet"; junos:must "((!(any "interfaces <*> unit <*> family inet rpf-check") && (!(any "interfaces <*> unit <*> family inet6 rpf-check") && (!(any "logical-systems <*> interfaces <*> unit <*> family inet rpf-check") && !(any "logical-systems <*> interfaces <*> unit <*> family inet6 rpf-check")))))"; junos:must-message "Cannot configure 'rpf-check' under network-services ethernet"; junos:must "((!(any "policy-options policy-statement <*> then source-class") && (!(any "policy-options policy-statement <*> term <*> then source-class") && (!(any "policy-options policy-statement <*> then destination-class") && (!(any "policy-options policy-statement <*> term <*> then destination-class") && (!(any "policy-options policy-statement <*> from route-filter <*> <*> source-class") && (!(any "policy-options policy-statement <*> term <*> from route-filter <*> <*> source-class") && (!(any "policy-options policy-statement <*> from route-filter <*> <*> destination-class") && (!(any "policy-options policy-statement <*> term <*> from route-filter <*> <*> destination-class") && (!(any "logical-systems <*> policy-options policy-statement <*> then source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> term <*> then source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> then destination-class") && (!(any "logical-systems <*> policy-options policy-statement <*> term <*> then destination-class") && (!(any "logical-systems <*> policy-options policy-statement <*> from route-filter <*> <*> source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> term <*> from route-filter <*> <*> source-class") && (!(any "logical-systems <*> policy-options policy-statement <*> from route-filter <*> <*> destination-class") && !(any "logical-systems <*> policy-options policy-statement <*> term <*> from route-filter <*> <*> destination-class")))))))))))))))))"; junos:must-message "Cannot configure 'destination-class|source-class' under network-services ethernet"; junos:must "((!("protocols bgp family inet any") && (!("protocols bgp family inet flow") && (!("protocols bgp family inet multicast") && (!(any "protocols bgp group <*> family inet any") && (!(any "protocols bgp group <*> family inet flow") && (!(any "protocols bgp group <*> family inet multicast") && (!(any "protocols bgp group <*> neighbor <*> family inet any") && (!(any "protocols bgp group <*> neighbor <*> family inet flow") && (!(any "protocols bgp group <*> neighbor <*> family inet multicast") && (!("protocols bgp family inet-vpn any") && (!("protocols bgp family inet-vpn flow") && (!("protocols bgp family inet-vpn multicast") && (!(any "protocols bgp group <*> family inet-vpn any") && (!(any "protocols bgp group <*> family inet-vpn flow") && (!(any "protocols bgp group <*> family inet-vpn multicast") && (!(any "protocols bgp group <*> neighbor <*> family inet-vpn any") && (!(any "protocols bgp group <*> neighbor <*> family inet-vpn flow") && (!(any "protocols bgp group <*> neighbor <*> family inet-vpn multicast") && (!("protocols bgp family inet6") && (!(any "protocols bgp group <*> family inet6") && (!(any "protocols bgp group <*> neighbor <*> family inet6") && (!("protocols bgp family inet6-vpn") && (!(any "protocols bgp group <*> family inet6-vpn") && (!(any "protocols bgp group <*> neighbor <*> family inet6-vpn") && (!("protocols bgp family inet-mvpn") && (!(any "protocols bgp group <*> family inet-mvpn") && (!(any "protocols bgp group <*> neighbor <*> family inet-mvpn") && (!("protocols bgp family inet6-mvpn") && (!(any "protocols bgp group <*> family inet6-mvpn") && (!(any "protocols bgp group <*> neighbor <*> family inet6-mvpn") && (!("protocols bgp family iso") && (!(any "protocols bgp group <*> family iso") && (!(any "protocols bgp group <*> neighbor <*> family iso") && (!("protocols bgp family iso-vpn") && (!(any "protocols bgp group <*> family iso-vpn") && (!(any "protocols bgp group <*> neighbor <*> family iso-vpn") && (!("protocols bgp family atmvpn") && (!(any "protocols bgp group <*> family atmvpn") && (!(any "protocols bgp group <*> neighbor <*> family atmvpn") && (!(any "logical-systems <*> protocols bgp family inet any") && (!(any "logical-systems <*> protocols bgp family inet flow") && (!(any "logical-systems <*> protocols bgp family inet multicast") && (!(any "logical-systems <*> protocols bgp group <*> family inet any") && (!(any "logical-systems <*> protocols bgp group <*> family inet flow") && (!(any "logical-systems <*> protocols bgp group <*> family inet multicast") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet any") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet flow") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet multicast") && (!(any "logical-systems <*> protocols bgp family inet-vpn any") && (!(any "logical-systems <*> protocols bgp family inet-vpn flow") && (!(any "logical-systems <*> protocols bgp family inet-vpn multicast") && (!(any "logical-systems <*> protocols bgp group <*> family inet-vpn any") && (!(any "logical-systems <*> protocols bgp group <*> family inet-vpn flow") && (!(any "logical-systems <*> protocols bgp group <*> family inet-vpn multicast") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet-vpn any") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet-vpn flow") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet-vpn multicast") && (!(any "logical-systems <*> protocols bgp family inet6") && (!(any "logical-systems <*> protocols bgp group <*> family inet6") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet6") && (!(any "logical-systems <*> protocols bgp family inet6-vpn") && (!(any "logical-systems <*> protocols bgp group <*> family inet6-vpn") && (!(any "protocols bgp group <*> neighbor <*> family inet6-vpn") && (!(any "logical-systems <*> protocols bgp family inet-mvpn") && (!(any "logical-systems <*> protocols bgp group <*> family inet-mvpn") && (!(any "protocols bgp group <*> neighbor <*> family inet-mvpn") && (!(any "logical-systems <*> protocols bgp family inet6-mvpn") && (!(any "logical-systems <*> protocols bgp group <*> family inet6-mvpn") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family inet6-mvpn") && (!(any "logical-systems <*> protocols bgp family iso") && (!(any "logical-systems <*> protocols bgp group <*> family iso") && (!(any "protocols bgp group <*> neighbor <*> family iso") && (!(any "logical-systems <*> protocols bgp family iso-vpn") && (!(any "logical-systems <*> protocols bgp group <*> family iso-vpn") && (!(any "logical-systems <*> protocols bgp group <*> neighbor <*> family iso-vpn") && (!(any "logical-systems <*> protocols bgp family atmvpn") && (!(any "logical-systems <*> protocols bgp group <*> family atmvpn") && !(any "protocols bgp group <*> neighbor <*> family atmvpn")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"; junos:must-message "Only BGP groups with 'family inet unicast, inet labeled-unicast, inet-vpn unicast, l2vpn and route-target' are supported under network-services ethernet"; value 1; description "Ethernet network services"; } enum "enhanced-ip" { value 2; description "Enhanced IP network services"; } enum "enhanced-ethernet" { value 3; description "Enhanced ethernet network services"; } enum "enhanced-mode" { value 4; description "Enhanced network services"; } enum "lan" { value 5; description "Ethernet LAN services"; } } description "Chassis network services configuration"; } container alarm-port { description "Craft-interface parameters"; uses chassis_alarm_port_op_type; } // container alarm-port 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 container serdes { presence "enable serdes"; description "Serdes test mode for link training"; uses apply-advanced; leaf test-mode { type string; description "Serdes test mode"; } } // container serdes 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 synchronization { description "Clock synchronization options"; uses apply-advanced; leaf switchover-mode { type enumeration { enum "non-revertive" { value 0; description "System uses current source as long as it is valid"; } enum "revertive" { value 1; description "Automatically switch to higher priority valid source"; } } default "revertive"; description "Should system revert to higher priority valid source"; } leaf switching-mode { type enumeration { enum "non-revertive" { value 0; description "System uses current source as long as it is valid"; } enum "revertive" { value 1; description "Automatically switch to higher priority valid source"; } } default "non-revertive"; description "Should system revert to higher priority valid source"; } leaf network-option { type enumeration { enum "option-1" { value 0; description "Option 1 (EEC1) synchronization networking"; } enum "option-2" { value 1; description "Option 2 (EEC2) synchronization networking"; } } description "EEC synchronization networking type"; } leaf selection-mode { type enumeration { enum "configured-quality" { value 0; description "Use source's configured ESMC quality"; } enum "received-quality" { junos:must "("chassis synchronization quality-mode-enable")"; junos:must-message "Cannot configure received-quality without quality-mode-enable"; value 1; description "Use source's received ESMC quality"; } } default "configured-quality"; description "Selection mode for incoming ESMC quality"; } leaf clock-mode { type enumeration { enum "free-run" { junos:must "(!("protocols ptp"))"; junos:must-message "Cannot configure free-running clock when ptp is configured"; value 0; description "Use the free-running local oscillator"; } enum "auto-select" { value 1; description "Select best clock source"; } } description "Synchronous Ethernet Clock selection mode"; } leaf quality-mode-enable { type empty; description "Enable Synchronous Ethernet ESMC Quality mode"; } leaf max-transmit-quality-level { type enumeration { enum "ePRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 0; description "Time quality of enhanced primary reference time clock"; } enum "PRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 1; description "Time quality of primary reference time clock"; } enum "ePRC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 2; description "Time quality of enhanced primary reference clock"; } enum "eEEC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 3; description "Time quality of enhanced ethernet equipment clock"; } enum "prc" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 4; description "Timing quality of a primary reference clock (option-1 only)"; } enum "ssu-a" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 5; description "Timing quality of a type I or IV slave clock (option-1 only)"; } enum "ssu-b" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 6; description "Timing quality of a type VI slave clock (option-1 only)"; } enum "sec" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 7; description "Timing quality of SDH equipment clock (option-1 only)"; } enum "prs" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 8; description "Clock traceable to primary reference source (option-2 only)"; } enum "stu" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 9; description "Clock traceable to unknown quality (option-2 only)"; } enum "st2" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 10; description "Clock traceable to stratum 2 (option-2 only)"; } enum "tnc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 11; description "Clock traceable to transit node clock (option-2 only)"; } enum "st3e" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 12; description "Clock traceable to stratum 3E (option-2 only)"; } } description "Maximum transmit quality level"; } leaf enable-extended-ql-tlv { type empty; description "Enable enhanced ESMC QL support"; } leaf global-wait-to-restore { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 12"; } } units "min"; description "Global Port signal up state time before opening for ESMC"; } leaf minimum-quality { type enumeration { enum "prc" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 0; description "Timing quality of a primary reference clock (option-1 only)"; } enum "ssu-a" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 1; description "Timing quality of a type I or IV slave clock (option-1 only)"; } enum "ssu-b" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 2; description "Timing quality of a type VI slave clock (option-1 only)"; } enum "sec" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 3; description "Timing quality of SDH equipment clock (option-1 only)"; } enum "prs" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 4; description "Clock traceable to primary reference source (option-2 only)"; } enum "st2" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 5; description "Clock traceable to stratum 2 (option-2 only)"; } enum "tnc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 6; description "Clock traceable to transit node clock (option-2 only)"; } enum "st3e" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 7; description "Clock traceable to stratum 3E (option-2 only)"; } enum "st3" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 8; description "Clock traceable to stratum 3 (option-2 only)"; } enum "st4" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 9; description "Clock traceable to stratum 4 free-run (option-2 only)"; } enum "smc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 10; description "Clock traceable to self-timed SONET (option-2 only)"; } enum "stu" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 11; description "Clock traceable to unknown quality (option-2 only)"; } } description "Minimum quality threshold"; } leaf loop-prevention { type enumeration { enum "master-side" { value 0; description "Master side loop prevention"; } } description "Clock loop prevention"; } list port { key "name"; description "Clock synchronization ports"; leaf name { type enumeration { enum "auxiliary" { value 0; description "Auxiliary port"; } enum "gnss" { junos:must "(!("chassis synchronization source"))"; junos:must-message "must not configure SYNCE source along with port gnss"; junos:must "("protocols ptp")"; junos:must-message "must configure protocols ptp"; value 1; description "Global Navigation Satellite System - GPS or GLONASS port"; } enum "time-of-day" { value 2; description "Time of Day(TOD) port"; } } } uses apply-advanced; container client { presence "enable client"; description "Port client receiving external signals"; uses apply-advanced; container time-of-day-format { description "Time-of-day format as received on this port"; uses apply-advanced; choice format { leaf ascii { type string { length "1 .. 80"; } description "ASCII Time-of-day message format string"; } leaf nmea-custom-format { type empty; description "Customized NMEA format used when interfacing with GRU GPS Receiver Unit"; } leaf no-protocol { type empty; description "Used when interfacing with GRU GPS Receiver Unit to process PPS with no Time Of Day"; } } // choice format } // container time-of-day-format leaf cable-length-compensation { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Antenna cable length compensation in nanoseconds"; } leaf cable-delay-compensation { type union { type string { pattern "<.*>|$.*"; } type int32 { range "-100000000 .. 100000000"; } } description "GPS Receiver Unit to Router delay compensation in nanoseconds"; } leaf antenna-voltage { type enumeration { enum "3.3" { value 0; description "3.3 units"; } enum "5" { value 1; description "5 units"; } } description "Configure antenna voltage"; } leaf alarm-filter { type union { type string { pattern "<.*>|$.*"; } type int32 { range "1 .. 60"; } } default "36"; description "Set alarm filter window"; } leaf constellation { type enumeration { enum "gps" { value 0; description "Global Positioning Satellite(GPS) for clock recovery"; } enum "glonass" { value 1; description "Global Navigation Satellite System(GLONASS) constellation"; } enum "gps-and-glonass" { value 2; description "All constellations"; } enum "beidou" { value 3; description "BEIDOU for clock recovery constellations"; } enum "gps-beidou" { value 4; description "GPS and BEIDOU for clock recovery"; } enum "gps-beidou-qzss" { value 5; description "GPS ,BEIDOU and qzss for clock recovery"; } enum "galileo" { value 6; description "GALILEO for clock recovery"; } enum "gps-galileo" { value 7; description "GPS and GALILEO for clock recovery"; } enum "gps-qzss" { value 8; description "GPS and QZSS for clock recovery"; } enum "gps-glonass-qzss" { value 9; description "GPS,GLONASS and QZSS for clock recovery"; } enum "gps-galileo-qzss" { value 10; description "GPS , GALILEO and QZSS for clock recovery"; } } description "Configure constellation of satellites to use"; } leaf anti-jamming { type empty; description "Enable anti-jamming feature"; } leaf pps-loopback { type empty; description "Enable 1PPS loopback mode"; } leaf dump-gpsstats { type empty; description "Enable dumping gnss data"; } } // container client } // list port list interfaces { key "name"; description "Interface(s) with upstream clock source"; leaf name { type enumeration { enum "external" { value 0; description "External clock interface"; } enum "external-0/0" { junos:must "("chassis synchronization interfaces external-0/0 signal-type")"; junos:must-message "Must configure 'chassis synchronization interfaces external-0/0 signal-type'"; value 1; description "External clock interface on SCB-0"; } enum "external-0/1" { junos:must "("chassis synchronization interfaces external-0/1 signal-type")"; junos:must-message "Must configure 'chassis synchronization interfaces external-0/1 signal-type'"; value 2; description "External clock interface on SCB-0"; } enum "external-1/0" { junos:must "("chassis synchronization interfaces external-1/0 signal-type")"; junos:must-message "Must configure 'chassis synchronization interfaces external-1/0 signal-type'"; value 3; description "External clock interface on SCB-1"; } enum "external-1/1" { junos:must "("chassis synchronization interfaces external-1/1 signal-type")"; junos:must-message "Must configure 'chassis synchronization interfaces external-1/1 signal-type'"; value 4; description "External clock interface on SCB-1"; } enum "external-a" { value 5; description "External-A clock interface"; } enum "external-b" { value 6; description "External-B clock interface"; } enum "external-0" { value 7; description "External-0 clock interface"; } enum "external-1" { value 8; description "External-1 clock interface"; } enum "external-2" { value 9; description "External-2 clock interface"; } enum "bits" { value 10; description "External BITS interface configuration"; } enum "bits-a" { value 11; description "External BITS interface A configuration"; } enum "bits-b" { value 12; description "External BITS interface B configuration"; } enum "gps-0" { value 13; description "External GPS interface A configuration"; } enum "gps-1" { value 14; description "External GPS interface B configuration"; } } } uses apply-advanced; leaf signal-type { type enumeration { enum "1mhz" { value 0; description "1 MHz clock signal"; } enum "5mhz" { value 1; description "5 MHz clock signal"; } enum "10mhz" { value 2; description "10 MHz clock signal"; } enum "2048khz" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 3; description "E1 unframed 2048Khz G.703 signal"; } enum "e1" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 4; description "E1-coded 2048 KHz signal on 120 ohm balanced line"; } enum "t1" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 5; description "T1-coded 1.544 MHz signal on 100 ohm balanced line"; } enum "cc-8k" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 6; description "Composite Clock 64kHz+8kHz"; } enum "cc-8k-400" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 7; description "Composite Clock 64kHz+8kHz+400Hz"; } enum "6312k" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 8; description "Japanese Standard 6312kHz"; } } description "Frequency for provided reference clocks"; } leaf pulse-per-second-enable { junos:must "((".. signal-type $$={1mhz}" || (".. signal-type $$={5mhz}" || ".. signal-type $$={10mhz}")))"; junos:must-message "Must configure signal-type to 1/5/10 MHz"; type empty; description "Enable pulse-per-second (PPS) receive on the interface"; } container e1-options { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; description "E1 interface-specific options"; uses apply-advanced; leaf line-encoding { type enumeration { enum "ami" { value 0; description "Automatic mark inversion"; } enum "hdb3" { value 1; description "High-density bipolar 3 code"; } } default "hdb3"; description "Line encoding"; } leaf framing { type enumeration { enum "g704" { value 0; description "G.704 framing format for E1 interfaces"; } enum "g704-no-crc4" { value 1; description "G.704 framing without CRC4 for E1 interfaces"; } } default "g704"; description "Framing mode"; } leaf sabit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 8"; } } default "4"; description "The sabit used for exchanging SSM quality"; } } // container e1-options container t1-options { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; description "T1 interface-specific options"; uses apply-advanced; leaf line-encoding { type enumeration { enum "ami" { value 0; description "Automatic mark inversion"; } enum "b8zs" { value 1; description "8-bit zero suppression"; } } default "b8zs"; description "Line encoding"; } leaf framing { type enumeration { enum "esf" { value 0; description "Extended Super Frame"; } enum "sf" { value 1; description "Super Frame"; } } default "esf"; description "Framing mode"; } } // container t1-options } // list interfaces container source { junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; junos:must "(!(("chassis synchronization primary" || "chassis synchronization secondary")))"; junos:must-message "primary or secondary cannot be configured with source"; description "ESMC source(s) related"; uses apply-advanced; container virtual-port { junos:must "("protocols ptp profile-type $$={g.8275.1}")"; junos:must-message "Must configure ptp profile type g.8275.1"; junos:must "("protocols ptp virtual-port")"; junos:must-message "Must configure protocols ptp virtual-port"; presence "enable virtual-port"; description "Virtual port"; uses apply-advanced; leaf priority { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 5"; } } description "User priority for this clock"; } leaf request { type enumeration { enum "lockout" { value 0; description "Opt out of clock selection"; } enum "force-switch" { value 1; description "Switch to this interface as primary clock source"; } } description "Clock selection request criterion"; } leaf wait-to-restore { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 12"; } } units "min"; description "Port signal up state time before opening for ESMC"; } leaf quality-level { type enumeration { enum "ePRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 0; description "Time quality of enhanced primary reference time clock"; } enum "PRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 1; description "Time quality of primary reference time clock"; } enum "ePRC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 2; description "Time quality of enhanced primary reference clock"; } enum "eEEC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 3; description "Time quality of enhanced ethernet equipment clock"; } enum "prc" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 4; description "Timing quality of a primary reference clock (option-1 only)"; } enum "ssu-a" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 5; description "Timing quality of a type I or IV slave clock (option-1 only)"; } enum "ssu-b" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 6; description "Timing quality of a type VI slave clock (option-1 only)"; } enum "sec" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 7; description "Timing quality of SDH equipment clock (option-1 only)"; } enum "prs" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 8; description "Clock traceable to primary reference source (option-2 only)"; } enum "st2" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 9; description "Clock traceable to stratum 2 (option-2 only)"; } enum "tnc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 10; description "Clock traceable to transit node clock (option-2 only)"; } enum "st3e" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 11; description "Clock traceable to stratum 3E (option-2 only)"; } enum "st3" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 12; description "Clock traceable to stratum 3 (option-2 only)"; } enum "st4" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 13; description "Clock traceable to stratum 4 free-run (option-2 only)"; } enum "smc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 14; description "Clock traceable to self-timed SONET (option-2 only)"; } enum "stu" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 15; description "Clock traceable to unknown quality (option-2 only)"; } } description "ESMC Clock EEC level"; } } // container virtual-port list interfaces { key "name"; description "Interface(s) with upstream clock source"; leaf name { type string; } uses apply-advanced; leaf priority { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 5"; } } description "User priority for this clock"; } leaf request { type enumeration { enum "lockout" { value 0; description "Opt out of clock selection"; } enum "force-switch" { value 1; description "Switch to this interface as primary clock source"; } } description "Clock selection request criterion"; } leaf wait-to-restore { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 12"; } } units "min"; description "Port signal up state time before opening for ESMC"; } leaf no-ssm-support { type empty; description "No SSM support available for this interface"; } leaf hold-off-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "300 .. 1800"; } } units "milliseconds"; description "Port signal down state time before closing for ESMC"; } leaf aggregated-ether { junos:must "("interfaces $$-IFL")"; junos:must-message "System AE interface should be configured"; type string; description "Aggregated sources group name"; } leaf quality-level { type enumeration { enum "ePRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 0; description "Time quality of enhanced primary reference time clock"; } enum "PRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 1; description "Time quality of primary reference time clock"; } enum "ePRC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 2; description "Time quality of enhanced primary reference clock"; } enum "eEEC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 3; description "Time quality of enhanced ethernet equipment clock"; } enum "prc" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 4; description "Timing quality of a primary reference clock (option-1 only)"; } enum "ssu-a" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 5; description "Timing quality of a type I or IV slave clock (option-1 only)"; } enum "ssu-b" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 6; description "Timing quality of a type VI slave clock (option-1 only)"; } enum "sec" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 7; description "Timing quality of SDH equipment clock (option-1 only)"; } enum "prs" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 8; description "Clock traceable to primary reference source (option-2 only)"; } enum "st2" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 9; description "Clock traceable to stratum 2 (option-2 only)"; } enum "tnc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 10; description "Clock traceable to transit node clock (option-2 only)"; } enum "st3e" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 11; description "Clock traceable to stratum 3E (option-2 only)"; } enum "st3" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 12; description "Clock traceable to stratum 3 (option-2 only)"; } enum "st4" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 13; description "Clock traceable to stratum 4 free-run (option-2 only)"; } enum "smc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 14; description "Clock traceable to self-timed SONET (option-2 only)"; } enum "stu" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 15; description "Clock traceable to unknown quality (option-2 only)"; } } description "ESMC Clock EEC level"; } } // list interfaces } // container source container esmc-transmit { junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; junos:must "(!(("chassis synchronization primary" || "chassis synchronization secondary")))"; junos:must-message "primary or secondary cannot be configured with esmc-transmit"; description "ESMC transmit parameters"; uses apply-advanced; list interfaces { key "name"; ordered-by user; description "Interface(s) on which to permit ESMC transmit messages"; leaf name { type string; } uses apply-advanced; container squelch { junos:must "(!(("protocols ptp profile-type $$={g.8275.2}" && !("protocols ptp slave hybrid"))))"; junos:must-message "Must not configure squelch when using PTS mode i.e. g.8275.2 profile in non-hybrid mode"; presence "enable squelch"; description "Squelch a interface"; uses apply-advanced; leaf method { type enumeration { enum "ais" { value 0; description "Send AIS"; } enum "ql-dnu" { value 1; description "Send DNU Quality level out"; } enum "rai" { value 2; description "Method RAI"; } enum "shut" { value 3; description "Shutdown"; } } description "Type of Squelch to be done"; } leaf quality-level { type enumeration { enum "ePRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 0; description "Time quality of enhanced primary reference time clock"; } enum "PRTC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 1; description "Time quality of primary reference time clock"; } enum "ePRC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 2; description "Time quality of enhanced primary reference clock"; } enum "eEEC" { junos:must "("chassis synchronization enable-extended-ql-tlv")"; junos:must-message "Must configure 'chassis synchronization enable-extended-ql-tlv'"; junos:must "("chassis synchronization network-option")"; junos:must-message "Must configure 'chassis synchronization network-option'"; value 3; description "Time quality of enhanced ethernet equipment clock"; } enum "prc" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 4; description "Timing quality of a primary reference clock (option-1 only)"; } enum "ssu-a" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 5; description "Timing quality of a type I or IV slave clock (option-1 only)"; } enum "ssu-b" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 6; description "Timing quality of a type VI slave clock (option-1 only)"; } enum "sec" { junos:must "("chassis synchronization network-option option-1")"; junos:must-message "Must configure 'chassis synchronization network-option option-1'"; value 7; description "Timing quality of SDH equipment clock (option-1 only)"; } enum "prs" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 8; description "Clock traceable to primary reference source (option-2 only)"; } enum "st2" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 9; description "Clock traceable to stratum 2 (option-2 only)"; } enum "tnc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 10; description "Clock traceable to transit node clock (option-2 only)"; } enum "st3e" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 11; description "Clock traceable to stratum 3E (option-2 only)"; } enum "st3" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 12; description "Clock traceable to stratum 3 (option-2 only)"; } enum "st4" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 13; description "Clock traceable to stratum 4 free-run (option-2 only)"; } enum "smc" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 14; description "Clock traceable to self-timed SONET (option-2 only)"; } enum "stu" { junos:must "("chassis synchronization network-option option-2")"; junos:must-message "Must configure 'chassis synchronization network-option option-2'"; value 15; description "Clock traceable to unknown quality (option-2 only)"; } } description "ESMC Quality level below which output is squelched"; } } // container squelch } // list interfaces } // container esmc-transmit container hold-interval { description "Hold interval"; uses apply-advanced; leaf switchover { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "30 .. 60"; } } units "sec"; default "30"; description "Switchover wait time after clock recovery"; } leaf configuration-change { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "15 .. 60"; } } units "sec"; default "15"; description "Clock select wait time after change in config"; } leaf restart { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 180"; } } units "sec"; default "120"; description "Clock select wait time after reboot"; } } // container hold-interval leaf signal-type { type enumeration { enum "e1" { value 0; description "E1-coded 2048 Khz signal on 120 ohm balanced line"; } enum "t1" { value 1; description "T1-coded 1.544 Mhz signal on 100 ohm balanced line"; } enum "cc-8k" { value 2; description "Composite Clock 64kHz+8kHz"; } enum "cc-8k-400" { value 3; description "Composite Clock 64kHz+8kHz+400Hz"; } enum "6312k" { value 4; description "Japanese Standard 6312kHz"; } } default "t1"; description "Frequency for provided reference clocks"; } leaf primary { junos:must "((!("chassis synchronization source") || "chassis synchronization esmc-transmit"))"; junos:must-message "source or esmc-transmit cannot be configured with primary"; type enumeration { enum "external-a" { value 0; description "Use external-a as a primary source"; } enum "external-b" { value 1; description "Use external-b as a primary source"; } enum "bits-a" { value 2; description "Use bits-a as a primary source"; } enum "bits-b" { value 3; description "Use bits-b as a primary source"; } enum "gps-0" { junos:must "(!("chassis synchronization secondary gps-0"))"; junos:must-message "not allowed when gps-0 is already configured"; value 4; description "Use gps-0 as a primary source"; } enum "gps-1" { junos:must "(!("chassis synchronization secondary gps-1"))"; junos:must-message "not allowed when gps-1 is already configured"; value 5; description "Use gps-1 as a primary source"; } enum "fpc-0" { junos:must "(("chassis fpc 0 pic 0 recovered-clock" || "chassis fpc 0 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 6; description "Use fpc-0 as a primary source"; } enum "fpc-1" { junos:must "(("chassis fpc 1 pic 0 recovered-clock" || "chassis fpc 1 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 7; description "Use fpc-1 as a primary source"; } enum "fpc-2" { junos:must "(("chassis fpc 2 pic 0 recovered-clock" || "chassis fpc 2 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 8; description "Use fpc-2 as a primary source"; } enum "fpc-3" { junos:must "(("chassis fpc 3 pic 0 recovered-clock" || "chassis fpc 3 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 9; description "Use fpc-3 as a primary source"; } enum "fpc-4" { junos:must "(("chassis fpc 4 pic 0 recovered-clock" || "chassis fpc 4 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 10; description "Use fpc-4 as a primary source"; } enum "fpc-5" { junos:must "(("chassis fpc 5 pic 0 recovered-clock" || "chassis fpc 5 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 11; description "Use fpc-5 as a primary source"; } enum "fpc-6" { junos:must "(("chassis fpc 6 pic 0 recovered-clock" || "chassis fpc 6 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 12; description "Use fpc-6 as a primary source"; } enum "fpc-7" { junos:must "(("chassis fpc 7 pic 0 recovered-clock" || "chassis fpc 7 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 13; description "Use fpc-7 as a primary source"; } enum "fpc-8" { junos:must "(("chassis fpc 8 pic 0 recovered-clock" || "chassis fpc 8 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 14; description "Use fpc-8 as a primary source"; } enum "fpc-9" { junos:must "(("chassis fpc 9 pic 0 recovered-clock" || "chassis fpc 9 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 15; description "Use fpc-9 as a primary source"; } enum "fpc-10" { junos:must "(("chassis fpc 10 pic 0 recovered-clock" || "chassis fpc 10 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 16; description "Use fpc-10 as a primary source"; } enum "fpc-11" { junos:must "(("chassis fpc 11 pic 0 recovered-clock" || "chassis fpc 11 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 17; description "Use fpc-11 as a primary source"; } enum "fpc-12" { junos:must "(("chassis fpc 12 pic 0 recovered-clock" || "chassis fpc 12 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 18; description "Use fpc-12 as a primary source"; } enum "fpc-13" { junos:must "(("chassis fpc 13 pic 0 recovered-clock" || "chassis fpc 13 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 19; description "Use fpc-13 as a primary source"; } enum "fpc-14" { junos:must "(("chassis fpc 14 pic 0 recovered-clock" || "chassis fpc 14 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 20; description "Use fpc-14 as a primary source"; } enum "fpc-15" { junos:must "(("chassis fpc 15 pic 0 recovered-clock" || "chassis fpc 15 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; value 21; description "Use fpc-15 as a primary source"; } } description "Best choice synchronization reference source list"; } leaf secondary { junos:must "((!("chassis synchronization source") || "chassis synchronization esmc-transmit"))"; junos:must-message "source or esmc-transmit cannot be configured with secondary"; type enumeration { enum "external-a" { junos:must "(!("chassis synchronization primary external-a"))"; junos:must-message "external-a can be either primary or secondary"; value 0; description "Use external-a as a secondary source"; } enum "external-b" { junos:must "(!("chassis synchronization primary external-b"))"; junos:must-message "external-b can be either primary or secondary"; value 1; description "Use external-b as a secondary source"; } enum "bits-a" { junos:must "(!("chassis synchronization primary bits-a"))"; junos:must-message "bits-a can be either primary or secondary"; value 2; description "Use bits-a as a secondary source"; } enum "bits-b" { junos:must "(!("chassis synchronization primary bits-b"))"; junos:must-message "bits-b can be either primary or secondary"; value 3; description "Use bits-b as a secondary source"; } enum "gps-0" { junos:must "(!("chassis synchronization primary gps-0"))"; junos:must-message "gps-0 can be either primary or secondary"; value 4; description "Use gps-0 as a secondary source"; } enum "gps-1" { junos:must "(!("chassis synchronization primary gps-1"))"; junos:must-message "gps-1 can be either primary or secondary"; value 5; description "Use gps-1 as a secondary source"; } enum "fpc-0" { junos:must "(("chassis fpc 0 pic 0 recovered-clock" || "chassis fpc 0 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-0"))"; junos:must-message "fpc-0 can be either primary or secondary"; value 6; description "Use fpc-0 as a secondary source"; } enum "fpc-1" { junos:must "(("chassis fpc 1 pic 0 recovered-clock" || "chassis fpc 1 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-1"))"; junos:must-message "fpc-1 can be either primary or secondary"; value 7; description "Use fpc-1 as a secondary source"; } enum "fpc-2" { junos:must "(("chassis fpc 2 pic 0 recovered-clock" || "chassis fpc 2 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-2"))"; junos:must-message "fpc-2 can be either primary or secondary"; value 8; description "Use fpc-2 as a secondary source"; } enum "fpc-3" { junos:must "(("chassis fpc 3 pic 0 recovered-clock" || "chassis fpc 3 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-3"))"; junos:must-message "fpc-3 can be either primary or secondary"; value 9; description "Use fpc-3 as a secondary source"; } enum "fpc-4" { junos:must "(("chassis fpc 4 pic 0 recovered-clock" || "chassis fpc 4 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-4"))"; junos:must-message "fpc-4 can be either primary or secondary"; value 10; description "Use fpc-4 as a secondary source"; } enum "fpc-5" { junos:must "(("chassis fpc 5 pic 0 recovered-clock" || "chassis fpc 5 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-5"))"; junos:must-message "fpc-5 can be either primary or secondary"; value 11; description "Use fpc-5 as a secondary source"; } enum "fpc-6" { junos:must "(("chassis fpc 6 pic 0 recovered-clock" || "chassis fpc 6 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-6"))"; junos:must-message "fpc-6 can be either primary or secondary"; value 12; description "Use fpc-6 as a secondary source"; } enum "fpc-7" { junos:must "(("chassis fpc 7 pic 0 recovered-clock" || "chassis fpc 7 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-7"))"; junos:must-message "fpc-7 can be either primary or secondary"; value 13; description "Use fpc-7 as a secondary source"; } enum "fpc-8" { junos:must "(("chassis fpc 8 pic 0 recovered-clock" || "chassis fpc 8 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-8"))"; junos:must-message "fpc-8 can be either primary or secondary"; value 14; description "Use fpc-8 as a secondary source"; } enum "fpc-9" { junos:must "(("chassis fpc 9 pic 0 recovered-clock" || "chassis fpc 9 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-9"))"; junos:must-message "fpc-9 can be either primary or secondary"; value 15; description "Use fpc-9 as a secondary source"; } enum "fpc-10" { junos:must "(("chassis fpc 10 pic 0 recovered-clock" || "chassis fpc 10 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-10"))"; junos:must-message "fpc-10 can be either primary or secondary"; value 16; description "Use fpc-10 as a secondary source"; } enum "fpc-11" { junos:must "(("chassis fpc 11 pic 0 recovered-clock" || "chassis fpc 11 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-11"))"; junos:must-message "fpc-11 can be either primary or secondary"; value 17; description "Use fpc-11 as a secondary source"; } enum "fpc-12" { junos:must "(("chassis fpc 12 pic 0 recovered-clock" || "chassis fpc 12 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-12"))"; junos:must-message "fpc-12 can be either primary or secondary"; value 18; description "Use fpc-12 as a secondary source"; } enum "fpc-13" { junos:must "(("chassis fpc 13 pic 0 recovered-clock" || "chassis fpc 13 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-13"))"; junos:must-message "fpc-13 can be either primary or secondary"; value 19; description "Use fpc-13 as a secondary source"; } enum "fpc-14" { junos:must "(("chassis fpc 14 pic 0 recovered-clock" || "chassis fpc 14 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-14"))"; junos:must-message "fpc-14 can be either primary or secondary"; value 20; description "Use fpc-14 as a secondary source"; } enum "fpc-15" { junos:must "(("chassis fpc 15 pic 0 recovered-clock" || "chassis fpc 15 pic 1 recovered-clock"))"; junos:must-message "Must configure recovered-clock for this fpc"; junos:must "(!("chassis synchronization primary fpc-15"))"; junos:must-message "fpc-15 can be either primary or secondary"; value 21; description "Use fpc-15 as a secondary source"; } } description "Alternative choice synchronization reference source list"; } } // container synchronization 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 { junos:must "(!(".. unicast-in-lpm"))"; junos:must-message "Cannot set both unicast-in-lpm and prefix-65-127-disable at the same time"; 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 { junos:must "(!(".. unicast-in-lpm"))"; junos:must-message "Cannot set both unicast-in-lpm and prefix-65-127-disable at the same time"; 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"; } container psm { description "Power supply module"; uses apply-advanced; } // container psm 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 leaf auto-satellite-conversion { type empty; description "Enable remote conversion to satellite device-mode"; } container satellite-management { junos:must "(!("chassis aggregated-devices disable-lag-enhanced"))"; junos:must-message "To configure chassis satellite-management, chassis aggregated-devices disable-lag-enhanced must not be set"; presence "enable satellite-management"; description "Satellite management configuration"; uses apply-advanced; container designated-event-forwarding { presence "enable designated-event-forwarding"; description "Designated event forwarding"; } // container designated-event-forwarding container traceoptions { description "Global satelite discovery and provisioning trace options"; 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 "parse" { value 0; description "Trace configuration parsing"; } enum "config-internal" { value 1; description "Trace configuration internals"; } enum "normal" { value 2; description "Trace normal events"; } enum "general" { value 3; description "Trace general events"; } enum "state" { value 4; description "Trace state transitions"; } enum "task" { value 5; description "Trace SDPD task processing"; } enum "timer" { value 6; description "Trace SDPD task timer processing"; } enum "krt" { value 7; description "Trace communication over routing socket"; } enum "lldp" { value 8; description "Trace LLDP events"; } enum "provision" { value 9; description "Trace provisioning events"; } enum "extended-port" { value 10; description "Trace extended-port events"; } enum "multi-chassis" { value 11; description "Trace multi-chassis events"; } enum "upgrade-group" { value 12; description "Trace sw-update events"; } enum "device" { value 13; description "Trace device FSM events"; } enum "tcp" { value 14; description "Trace TCP events"; } enum "interface" { value 15; description "Trace interface events"; } enum "cluster" { value 16; description "Trace cluster events"; } enum "all" { value 17; description "Trace everything"; } } } leaf disable { type empty; description "Disable this trace flag"; } } // list flag } // container traceoptions leaf cluster-policy { junos:must "("policy-options satellite-policies candidate-uplink-port-policy $$")"; junos:must-message "Satellite cluster-policy not defined"; type string; description "Cluster policy"; } list cluster { key "name"; description "Configure a satellite device cluster"; leaf name { type string { length "1 .. 16"; } description "Satellite cluster name"; } uses apply-advanced; leaf cluster-id { junos:must "(unique "chassis satellite-management cluster <*> cluster-id $$")"; junos:must-message "Cluster-id has to be unique among all provisioned clusters"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 32"; } } description "Satellite cluster identifier"; } leaf-list cascade-ports { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Cascade ports"; } leaf cluster-policy { junos:must "("policy-options satellite-policies candidate-uplink-port-policy $$")"; junos:must-message "Satellite cluster-policy not defined"; type string; description "Candidate uplink policy"; } list fpc { key "name"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "65 .. 254"; } } description "Satellite slot identifier"; } uses apply-advanced; leaf alias { junos:must "(unique "chassis satellite-management cluster <*> fpc <*> alias $$")"; junos:must-message "alias has to be unique among all provisioned satellite-devices"; junos:must "(unique "chassis satellite-management fpc <*> alias $$")"; junos:must-message "alias has to be unique among all provisioned satellite-devices"; type string { length "1 .. 16"; } description "Satellite alias"; } leaf description { type string { length "1 .. 64"; } description "Satellite description"; } leaf member-id { junos:must "(unique ".. .. fpc <*> member-id $$")"; junos:must-message "Member-id has to be unique among all members in a cluster"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 62"; } } description "Satellite member id"; } leaf system-id { junos:must "(unique "chassis satellite-management cluster <*> fpc <*> system-id $$")"; junos:must-message "System-id has to be unique among all provisioned satellite-devices"; junos:must "(unique "chassis satellite-management fpc <*> system-id $$")"; junos:must-message "System-id has to be unique among all provisioned satellite-devices"; type jt:mac-addr; description "Satellite system id"; } leaf cluster-policy { junos:must "("policy-options satellite-policies candidate-uplink-port-policy $$")"; junos:must-message "Satellite Cluster policy not defined"; type string; description "Candidate uplink policy"; } } // list fpc } // list cluster list fpc { key "name"; description "FPC identifier for a satellite device"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "65 .. 254"; } } description "Satellite slot identifier"; } uses apply-advanced; leaf serial-number { junos:must "(unique "chassis satellite-management fpc <*> serial-number $$")"; junos:must-message "serial-number has to be unique among all provisioned satellite-devices"; type string { length "1 .. 16"; } description "Satellite serial number"; } leaf system-id { junos:must "(unique "chassis satellite-management fpc <*> system-id $$")"; junos:must-message "System-id has to be unique among all provisioned satellite-devices"; type jt:mac-addr; description "Satellite system id"; } leaf target-mode { type empty; description "Enable target mode forwarding for extended-ports"; } leaf alias { junos:must "(unique "chassis satellite-management fpc <*> alias $$")"; junos:must-message "alias has to be unique among all provisioned satellite-devices"; type string { length "1 .. 16"; } description "Satellite alias"; } leaf description { type string { length "1 .. 64"; } description "Satellite description"; } container management-address { presence "enable management-address"; description "Satellite Management Interface IP"; uses apply-advanced; leaf address { junos:must "(unique "chassis satellite-management fpc <*> management-address address $$")"; junos:must-message "management interface IP address has to be unique among all provisioned satellite-devices"; type jt:ipv4prefix; description "Satellite Management Interface IP address"; } leaf gateway { type jt:ipv4addr; description "Satellite Management Interface Gateway IP address"; } } // container management-address leaf-list cascade-ports { type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "Cascade ports"; } leaf extended-ports-template { junos:must "("policy-options satellite-policies extended-ports-template $$")"; junos:must-message "Extended ports template not defined"; type string; description "Extended ports template"; } choice ufd_type { container uplink-failure-detection { presence "enable uplink-failure-detection"; description "Enable uplink-failure-detection"; uses apply-advanced; leaf candidate-uplink-policy { junos:must "("policy-options satellite-policies candidate-uplink-port-policy $$")"; junos:must-message "Candidate-uplink-port-policy not defined"; type string; description "Candidate uplink policy"; } } // container uplink-failure-detection } // choice ufd_type leaf environment-monitoring-policy { junos:must "("policy-options satellite-policies environment-monitoring-policy $$")"; junos:must-message "Environment monitoring policy not defined"; type string; description "Environment monitoring policy"; } choice forwarding-policy-type { container forwarding-policy { presence "enable forwarding-policy"; description "Enable a forwarding policy"; uses apply-advanced; leaf forwarding-policy-alias { junos:must "("policy-options satellite-policies forwarding-policy $$")"; junos:must-message "forwarding-policy not defined"; type string; description "Define forwarding policy alias"; } } // container forwarding-policy } // choice forwarding-policy-type } // list fpc leaf extended-ports-policy { junos:must "("policy-options satellite-policies extended-ports-policy $$")"; junos:must-message "Extended ports policy not defined"; type string; description "Extended ports policy"; } choice ufd_type { container uplink-failure-detection { presence "enable uplink-failure-detection"; description "Enable uplink-failure-detection"; uses apply-advanced; leaf candidate-uplink-policy { junos:must "("policy-options satellite-policies candidate-uplink-port-policy $$")"; junos:must-message "Candidate-uplink-port-policy not defined"; type string; description "Candidate uplink policy"; } } // container uplink-failure-detection } // choice ufd_type 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 container environment-monitoring-policy { presence "enable environment-monitoring-policy"; description "Environment monitoring policy"; uses apply-advanced; leaf policy-name { junos:must "("policy-options satellite-policies environment-monitoring-policy $$")"; junos:must-message "Environment monitoring policy not defined"; type string; description "Default environment monitoring policy"; } } // container environment-monitoring-policy choice forwarding-policy-type { container forwarding-policy { presence "enable forwarding-policy"; description "Enable a forwarding policy"; uses apply-advanced; leaf forwarding-policy-alias { junos:must "("policy-options satellite-policies forwarding-policy $$")"; junos:must-message "forwarding-policy not defined"; type string; description "Define forwarding policy alias"; } } // container forwarding-policy } // choice forwarding-policy-type container redundancy-groups { description "Redundancy groups configuration"; uses apply-advanced; leaf chassis-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4"; } } description "Chassis identifier"; } list rg-group { key "name"; ordered-by user; description "Redundancy groups"; uses redundancy-group-type; } // list rg-group } // container redundancy-groups container upgrade-groups { description "Upgrade group configuration"; uses apply-advanced; list upgrade-group { key "name"; description "Upgrade group"; uses upgrade-group-type; } // list upgrade-group } // container upgrade-groups container auto-satellite-conversion { description "Enable automatic satellite conversion"; uses apply-advanced; leaf-list satellite { type string { length "1 .. 100"; } ordered-by user; description "Satellite slot-id or range or all"; } } // container auto-satellite-conversion container single-home { description "Devices are connected to local aggregation device only"; uses apply-advanced; leaf-list satellite { type string { length "1 .. 100"; } ordered-by user; description "Satellite slot-id or range or all"; } } // container single-home leaf aging-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 60000"; } } units "minutes"; description "Aging-timer"; } leaf block-console-access { type empty; description "Block console access"; } container firewall { description "Define a firewall configuration"; uses apply-advanced; container family { description "Protocol family"; container bridge { description "Protocol family BRIDGE for firewall filter"; uses apply-advanced; list filter { key "name"; ordered-by user; uses satellite-bridge-filter; } // list filter } // container bridge container ethernet-switching { description "Protocol family Ethernet Switching for firewall filter"; uses apply-advanced; list filter { key "name"; ordered-by user; description "Define an Ethernet Switching firewall filter"; uses satellite-bridge-filter; } // list filter } // container ethernet-switching } // container family } // container firewall } // container satellite-management container periodic { description "Chassisd periodic options"; uses apply-advanced; leaf ch-power-check-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 60"; } } units "seconds"; default "0"; description "Chassis power check interval, 0=default"; } leaf re-check-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 60"; } } units "seconds"; default "0"; description "Chassis RE check interval, 0=default"; } } // container periodic container thermal-health-check { presence "enable thermal-health-check"; description "Enable Thermal Health check of the chassis"; uses apply-advanced; container fet-failure-check { presence "enable fet-failure-check"; uses apply-advanced; leaf action-onfail { type enumeration { enum "none" { value 0; description "No action when Oring FET detected"; } enum "auto-shutdown" { value 1; description "Shutdown when Oring FET detected"; } } default "none"; description "Set the action when Oring FET detected"; } } // container fet-failure-check } // container thermal-health-check container mode { presence "enable mode"; description "Bringup FRU in Standalone mode"; uses apply-advanced; container standalone { presence "enable standalone"; description "Bringup FRU in standalone mode1"; uses apply-advanced; list fpc { key "name"; leaf name { type string { length "1 .. 4"; } description "FPC slot number"; } uses apply-advanced; container loopback { description "Loopback Configuration for Mode & Type"; uses apply-advanced; leaf wan { type enumeration { enum "serdes" { value 0; description "Serdes type loopback"; } enum "retimer" { value 1; description "Retimer type loopback"; } } default "serdes"; } leaf fabric { type enumeration { enum "serdes" { value 0; description "Serdes type loopback"; } enum "retimer" { value 1; description "Retimer type loopback"; } } default "serdes"; } } // container loopback } // list fpc list fabric-card { key "name"; ordered-by user; description "Fabric Card Loopback setting"; uses chassis_fabric_card_type; } // list fabric-card } // container standalone } // container mode container system-domains { presence "enable system-domains"; description "Root and protected system domain configuration"; uses apply-advanced; leaf root-domain-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 3"; } } description "Root domain identifier"; } list protected-system-domains { key "name"; description "Protected system domain configuration"; uses juniper-protected-system-domain; } // list protected-system-domains container traceoptions { description "Protected system domain traceoptions"; uses juniper-protected-system-domain-traceoptions; } // container traceoptions } // container system-domains } // grouping chassis_type grouping apply-advanced { description "Apply advanced configuration logic"; leaf-list apply-groups { type string; ordered-by user; description "Groups from which to inherit configuration data"; } leaf-list apply-groups-except { type string; ordered-by user; description "Don't inherit configuration data from these groups"; } list apply-macro { key "name"; ordered-by user; description "Macro and parameters for commit script expansion"; uses apply-macro-type; } // list apply-macro } // grouping apply-advanced grouping apply-macro-type { description "Macro data for commit-script expansion"; leaf name { type string; description "Name of the macro to be expanded"; } list data { key "name"; uses macro-data-type; } // list data } // grouping apply-macro-type grouping chassis-pw-type { uses apply-advanced; leaf device-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 18000"; } } description "Number of pseudo-wire ps devices"; } } // grouping chassis-pw-type grouping chassis_agg_dev_type { uses apply-advanced; leaf ae-20 { type empty; status deprecated; description "Run AE over Container nexthops Infrastructure"; } 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_port_op_type { uses apply-advanced; container input { description "Input alarm port"; uses apply-advanced; list port { key "name"; ordered-by user; description "Input Port"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 3"; } } description "Alarm port ID"; } uses apply-advanced; leaf active { type enumeration { enum "low" { value 0; description "Active signal of alarm IO port to low(default)"; } enum "high" { value 1; description "Active signal of alarm IO port to high"; } } description "Active signal of alarm IO input port"; } leaf admin-state { type enumeration { enum "disabled" { value 0; description "Administrative state of alarm IO port to disable(default)"; } enum "enabled" { value 1; description "Administrative state of alarm IO port to enabled"; } } description "Administrative state of alarm IO input port"; } container description { description "Alarm description of alarm IO input port"; uses apply-advanced; leaf descr { type string; description "Description to be used for alarm IO output port"; } } // container description leaf severity { type enumeration { enum "critical" { value 0; description "Alarm severity of alarm IO input port to ciritical(default)"; } enum "major" { value 1; description "Alarm severity of alarm IO input port to major"; } enum "minor" { value 2; description "Alarm severity of alarm IO input port to minor"; } enum "warning" { value 3; description "Alarm severity of alarm IO input port to warning"; } } description "Set alarm severity of alarm IO input port"; } } // list port } // container input container output { description "Output alarm port"; uses apply-advanced; list port { key "name"; ordered-by user; description "Output port"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1"; } } description "Alarm IO output port ID"; } uses apply-advanced; leaf admin-state { type enumeration { enum "disabled" { value 0; description "Administrative state of alarm IO port to disable(default)"; } enum "enabled" { value 1; description "Administrative state of alarm IO port to enabled"; } } description "Administrative state of alarm IO output port"; } container description { description "Alarm description of alarm IO output port"; uses apply-advanced; leaf descr { type string; description "Description to be used for alarm IO output port"; } } // container description } // list port } // container output } // grouping chassis_alarm_port_op_type grouping chassis_alarm_type { uses apply-advanced; container management-ethernet { description "Management Ethernet alarms"; uses chassis_alarm_ethernet_type; } // container management-ethernet container otn-odu { description "OTN ODU alarms"; uses chassis_alarm_otn_odu_type; } // container otn-odu container otn-otu { description "OTN OTU alarms"; uses chassis_alarm_otn_otu_type; } // container otn-otu container sonet { description "SONET alarms"; uses chassis_alarm_sonet_type; } // container sonet container t3 { description "DS3 alarms"; uses chassis_alarm_ds3_type; } // container t3 container ds1 { description "DS1 alarms"; uses chassis_alarm_ds1_type; } // container ds1 container ethernet { description "Ethernet alarms"; uses chassis_alarm_ethernet_type; } // container ethernet container integrated-services { description "Integrated services alarms"; uses chassis_alarm_integrated_services_type; } // container integrated-services container services { description "Services PIC alarms"; uses chassis_alarm_services_type; } // container services container serial { description "Serial alarms"; uses chassis_alarm_serial_type; } // container serial container fibre-channel { description "Fibre Channel alarms"; uses chassis_alarm_fibre-channel_type; } // container fibre-channel } // grouping chassis_alarm_type grouping chassis_alarm_ds1_type { uses apply-advanced; leaf ais { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Alarm indicator signal"; } leaf ylw { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Yellow alarm"; } } // grouping chassis_alarm_ds1_type grouping chassis_alarm_ds3_type { uses apply-advanced; leaf ais { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Alarm indicator signal"; } leaf exz { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Excessive zeros"; } leaf ferf { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Far-end failure"; } leaf idle { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Idle alarm"; } leaf lcv { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Line code violation"; } leaf lof { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of frame"; } leaf los { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of signal"; } leaf pll { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Phase-locked loop out of lock"; } leaf ylw { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Yellow alarm"; } } // grouping chassis_alarm_ds3_type grouping chassis_alarm_ethernet_type { uses apply-advanced; leaf link-down { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Link has gone down"; } } // grouping chassis_alarm_ethernet_type grouping chassis_alarm_fibre-channel_type { uses apply-advanced; leaf link-down { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Link has gone down"; } } // grouping chassis_alarm_fibre-channel_type grouping chassis_alarm_integrated_services_type { uses apply-advanced; leaf failure { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Integrated Services failure"; } } // grouping chassis_alarm_integrated_services_type grouping chassis_alarm_otn_odu_type { uses apply-advanced; leaf odu-bdi { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "ODU backward-defect-indicator, ODU-BDI failure"; } leaf odu-ttim { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "ODU trail-trace-identifier-mismatch, ODU-TTIM failure"; } leaf odu-ptim { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "ODU payload-type-mismatch, ODU-PTIM failure"; } } // grouping chassis_alarm_otn_odu_type grouping chassis_alarm_otn_otu_type { uses apply-advanced; leaf oc-los { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of signal, LOS failure"; } leaf oc-lof { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of framing, LOF failure"; } leaf oc-lom { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of multiframe, LOM failure"; } leaf wavelength-lock { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Wavelength lock alarm"; } leaf otu-bdi { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "OTU backward-defect-indicator, OTU-BDI failure"; } leaf otu-iae { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "OTU incoming-alignment-error, OTU-IAE failure"; } leaf otu-ttim { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "OTU trail-trace-identifier-mismatch, OTU-TTIM failure"; } leaf otu-fec-excessive-errs { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "OTU fec-excessive-errors, OTU-FEC_EXE failure"; } } // grouping chassis_alarm_otn_otu_type grouping chassis_alarm_serial_type { uses apply-advanced; leaf loss-of-rx-clock { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "RX clock absent"; } leaf loss-of-tx-clock { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "TX clock absent"; } leaf dcd-absent { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "DCD signal absent"; } leaf cts-absent { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "CTS signal absent"; } leaf dsr-absent { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "DSR signal absent"; } leaf tm-absent { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "TM signal absent"; } } // grouping chassis_alarm_serial_type grouping chassis_alarm_services_type { uses apply-advanced; leaf pic-reset { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Services PIC reset"; } leaf pic-hold-reset { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Services PIC held in reset"; } leaf linkdown { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Services PIC linkdown"; } leaf rx-errors { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Services PIC excessive rx errors"; } leaf tx-errors { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Services PIC excessive tx errors"; } leaf sw-down { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Services PIC software problem"; } leaf hw-down { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Services PIC hardware problem"; } } // grouping chassis_alarm_services_type grouping chassis_alarm_sonet_type { uses apply-advanced; leaf lol { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of light"; } leaf pll { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Phase locked loop out of lock"; } leaf lof { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of framing, LOF failure"; } leaf los { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of signal, LOS failure"; } leaf ais-l { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Line alarm indication signal, AIS-L failure"; } leaf ais-p { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Path alarm indication signal, AIS-P failure"; } leaf lop-p { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of pointer, LOP-P failure"; } leaf ber-sd { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Signal Degrade (SD), bit error rate > 1E-6"; } leaf ber-sf { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Signal Fail (SF), bit error rate > 1E-3"; } leaf rfi-l { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Line remote failure indication, RFI-L, line FERF"; } leaf rfi-p { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Path remote failure indication, RFI-P, STS path yellow"; } leaf uneq-p { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "STS Path (C2) unequipped, UNEQ-P failure"; } leaf locd { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "Loss of cell delineation (ATM only)"; } leaf plm-p { type enumeration { enum "red" { value 0; description "Assert red system alarm"; } enum "yellow" { value 1; description "Assert yellow system alarm"; } enum "ignore" { value 2; description "Do not assert any alarm signals"; } } description "STS payload label (C2) mismatch, PLM-P failure"; } } // grouping chassis_alarm_sonet_type grouping chassis_fabric_card_type { leaf name { type string { length "1 .. 5"; } description "Fabric Card slot number"; } uses apply-advanced; container loopback { description "Loopback Configuration for Mode & Type"; uses apply-advanced; leaf serdes { type empty; description "Fabric Card serdes setting"; } leaf retimer { type empty; description "Fabric card retimer setting"; } } // container loopback } // grouping chassis_fabric_card_type grouping chassis_fabric_type { uses apply-advanced; leaf upgrade-mode { type enumeration { enum "default" { value 0; description "Fabric upgrade"; } enum "t4000" { junos:must "(!(any "class-of-service schedulers <*> drop-profile-map loss-priority <*> protocol non-tcp drop-profile <*>"))"; junos:must-message "protocol based classification not allowed, only 'any' protocol config allowed"; junos:must "(!(any "class-of-service schedulers <*> drop-profile-map loss-priority <*> protocol tcp drop-profile <*>"))"; junos:must-message "protocol based classification not allowed, only 'any' protocol config allowed"; value 1; description "T4000 Fabric upgrade"; } enum "3d-fabric" { junos:must "(!(any "class-of-service schedulers <*> drop-profile-map loss-priority <*> protocol non-tcp drop-profile <*>"))"; junos:must-message "protocol based classification not allowed, only 'any' protocol config allowed"; junos:must "(!(any "class-of-service schedulers <*> drop-profile-map loss-priority <*> protocol tcp drop-profile <*>"))"; junos:must-message "protocol based classification not allowed, only 'any' protocol config allowed"; value 2; description "TXP-3D Fabric upgrade"; } } description "Enable online switch fabric upgrade"; } 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; leaf detection-disable { type empty; description "Disable fabric OAM"; } } // 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"; } leaf degraded-fpc-bad-plane-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 18"; } } default "4"; description "No of bad planes to declare a FPC degraded"; } leaf degraded-fabric-detection-enable { type empty; description "Enable degraded FPC detection"; } } // 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 list slot { key "name"; ordered-by user; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "FEB slot number"; } 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 leaf power { type enumeration { enum "off" { value 0; description "Do not provide power to FEBs"; } enum "on" { value 1; description "Provide power to FEBs"; } } description "Power FEBs on or off"; } choice mode { } // choice mode leaf port-mirror-instance { 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 FEB"; } leaf sampling-instance { 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 FEB"; } leaf ucode-imem-remap { type empty; description "Remap the PIC microcode to IMEM on FEB"; } 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"; } } 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"; 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"; } } description "Maximum number of inline video monitoring flows per PFE instance"; } } // container inline-video-monitoring container openflow { description "Openflow configuration"; uses apply-advanced; leaf access-list-partition { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } units "percents"; description "Space reserved for openflow access-list rules"; } } // container openflow } // list slot } // 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 list override-cmerror { key "name"; max-elements 100; ordered-by user; description "Error configuration override"; uses chassis_fru_cmerror_override_type; } // list override-cmerror container scope { description "Error scope"; uses chassis_fpc_scope_type; } // container scope } // 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_scope_type { description "Chassis Fpc Error Scope"; uses apply-advanced; container board { description "Board level scope"; uses chassis_fpc_scope_category; } // container board container pfe { description "Forwarding engine scope "; uses chassis_fpc_scope_category; } // container pfe } // grouping chassis_fpc_scope_type grouping chassis_fpc_scope_category { description "Chassis Fpc Error Category"; uses apply-advanced; container category { description "FPC error category"; uses chassis_fpc_scope_category_type; } // container category } // grouping chassis_fpc_scope_category grouping chassis_fpc_scope_category_type { description "Chassis Fpc Category level"; uses apply-advanced; container functional { description "FPC functional category"; uses chassis_fpc_scope_category_error_type; } // container functional container memory { description "FPC memory category"; uses chassis_fpc_scope_category_error_type; } // container memory container io { description "FPC input-output category"; uses chassis_fpc_scope_category_error_type; } // container io container storage { description "FPC storage category"; uses chassis_fpc_scope_category_error_type; } // container storage container switch { description "FPC switch category"; uses chassis_fpc_scope_category_error_type; } // container switch container processing { description "FPC processing category"; uses chassis_fpc_scope_category_error_type; } // container processing } // grouping chassis_fpc_scope_category_type grouping chassis_fpc_scope_category_error_type { description "Chassis Fpc Error level"; uses apply-advanced; container fatal { description "FPC Fatal errors (default threshold = 1)"; uses chassis_fpc_error_level_type; } // container fatal container major { description "FPC Major Level errors (default threshold = 1)"; uses chassis_fpc_error_level_type; } // container major container minor { description "FPC Minor Level errors (default threshold = 10)"; uses chassis_fpc_error_level_type; } // container minor } // grouping chassis_fpc_scope_category_error_type grouping chassis_fpc_error_level_type { uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967295"; } } description "Error count at which to take the action (0 - valid for minor only)"; } list action { key "name"; ordered-by user; description "Configure the action for this level"; leaf name { type enumeration { enum "reset" { junos:must "(!(".. .. action disable-pfe"))"; junos:must-message "'reset' and 'disable-pfe' cannot be both configured"; junos:must "(!(".. .. action offline"))"; junos:must-message "'reset' and 'offline' cannot be both configured"; value 0; description "Reset FPC"; } enum "offline" { 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" { 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 trap"; } } } uses apply-advanced; } // list action } // grouping chassis_fpc_error_level_type grouping chassis_fpc_type { leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "FPC slot number"; } uses apply-advanced; container auto-speed-detection { description "Disables auto-speed detection"; uses apply-advanced; choice auto-speed-detections { leaf disable { type empty; description "Disables automatic speed detection"; } } // choice auto-speed-detections } // container auto-speed-detection container forwarding-options { description "Configure options to control packet forwarding"; uses apply-advanced; choice uft_object { container l2-profile-one { presence "enable l2-profile-one"; description "MAC: 288K L3-host: 16K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone"; uses apply-advanced; leaf num-65-127-prefix { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 4"; } } default "1"; description "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)"; } } // container l2-profile-one container l2-profile-two { presence "enable l2-profile-two"; description "MAC: 224K L3-host: 80K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone"; uses apply-advanced; leaf num-65-127-prefix { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 4"; } } default "1"; description "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)"; } } // container l2-profile-two container l2-profile-three { presence "enable l2-profile-three"; description "(default) MAC: 160K L3-host: 144K LPM: 16K, needs reboot for VC;restarts PFE if standalone"; uses apply-advanced; leaf num-65-127-prefix { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 4"; } } default "1"; description "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)"; } } // container l2-profile-three container l3-profile { presence "enable l3-profile"; description "MAC: 96K L3-host: 208K LPM: 16K EM:0, needs reboot for VC; restarts PFE if standalone"; uses apply-advanced; leaf num-65-127-prefix { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 4"; } } default "1"; description "IPV6 prefixes > 64, in multiples of 1K e.g 3 = 3x1K entries(default 1)"; } } // container l3-profile container lpm-profile { presence "enable lpm-profile"; description "MAC: 32K L3-host: 16K LPM: 128K EM:0, needs reboot for VC; restarts PFE if standalone"; uses apply-advanced; leaf prefix-65-127-disable { junos:must "(!(".. unicast-in-lpm"))"; junos:must-message "Cannot set both unicast-in-lpm and prefix-65-127-disable at the same time"; 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 { junos:must "(!(".. unicast-in-lpm"))"; junos:must-message "Cannot set both unicast-in-lpm and prefix-65-127-disable at the same time"; 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"; } container traffic-manager { description "Configure traffic-manager attributes"; uses apply-advanced; leaf buffer-monitor-enable { type empty; description "Enable port buffer monitoring"; } container queue-threshold { description "Set queue thresholds"; uses apply-advanced; container fabric-queue { description "Set fabric queue thresholds"; uses apply-advanced; list priority { key "name"; ordered-by user; description "Queue priority"; leaf name { type enumeration { enum "low" { value 0; description "Low fabric priority"; } enum "high" { value 1; description "High fabric priority"; } } description "Priority level"; } uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } description "Threshold percentage to be set"; } } // list priority } // container fabric-queue container wan-queue { description "Set wan queue thresholds"; uses apply-advanced; list priority { key "name"; ordered-by user; description "Queue Priority"; leaf name { type enumeration { enum "low" { value 0; description "Low wan priority"; } enum "medium-low" { value 1; description "Medium low wan priority"; } enum "medium-high" { value 2; description "Medium high wan priority"; } enum "high" { value 3; description "High wan priority"; } } description "Priority level"; } uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } description "Threshold percentage to be set"; } } // list priority } // container wan-queue } // container queue-threshold choice enhanced-priority-mode-choice { leaf enhanced-priority-mode { type empty; description "Enable enhanced priority mode"; } leaf no-enhanced-priority-mode { type empty; description "Don't enable enhanced priority mode"; } } // choice enhanced-priority-mode-choice leaf packet-timestamp { type enumeration { enum "enable" { value 0; description "Enables collecting CoS last packet enqueued timestamp"; } enum "disable" { value 1; description "Disables collecting CoS last packet enqueued timestamp"; } } default "disable"; description "Configure collecting CoS last packet enqueued timestamp"; } } // container traffic-manager leaf max-power { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Max power to be consumed by MPC"; } leaf power-budget-priority { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "FPC priority number"; } choice mode { leaf disable-power { type empty; status deprecated; description "Do not provide power to the card"; } leaf allow-sram-parity-errors { type empty; description "Do not power cycle FPC when SRAM parity errors occur"; } } // choice mode choice riot-mode { case case_1 { } // case case_1 case case_2 { } // case case_2 } // choice riot-mode leaf cfp-to-et { type empty; description "Enable ET interface and remove CFP client"; } leaf offline { type empty; description "Keep FPC offline"; } leaf license-mode { type enumeration { enum "r" { value 0; description "Set card to R mode"; } enum "ir" { value 1; description "Set card to IR mode"; } enum "lsr" { value 2; description "Set card to LSR mode"; } enum "ip" { value 3; description "Set card to full IP mode"; } } description "Configure license mode for PTX FPC3 and later cards"; } 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 leaf service-package { type enumeration { enum "bundle-rfc2544" { value 0; description "Service Package for RFC2544"; } enum "bundle-nat-ipsec" { value 1; description "Service Package for NAT and IPSEC"; } enum "bundle-ptp-enterprise-profile" { value 2; description "Service Package for PTP Enterprise Profile"; } } default "bundle-rfc2544"; description "Service package to be loaded on FPC"; } container error { description "Error level configuration for FPC"; uses chassis_fpc_error_type; } // container error list ether-type { key "name"; ordered-by user; description "Set Ethernet type on FPC"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "6 .. 27"; } } description "TCAM slot"; } uses apply-advanced; leaf etype { type string; description "Ether type"; } } // list ether-type container openflow { description "Openflow configuration"; uses apply-advanced; leaf access-list-partition { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } units "percents"; description "Space reserved for openflow access-list rules"; } leaf buffer-partition { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } units "percents"; description "Buffer space reserved for openflow traffic"; } } // container openflow } // grouping chassis_fpc_type grouping chassis_fru_cmerror_override_type { description "Chassis Fpc Error override"; leaf name { type string { junos:posix-pattern "^(/[^/ ]+/[0-9]+){4}/[^/ ]+$"; junos:pattern-message "Invalid error identifier format"; length "1 .. 255"; } description "Error identifier"; } uses apply-advanced; leaf state { type enumeration { enum "disable" { value 0; description "Disable error"; } } description "State"; } leaf severity { type enumeration { enum "minor" { value 0; description "Minor Severity"; } enum "major" { value 1; description "Major Severity"; } enum "fatal" { value 2; description "Fatal Severity"; } } description "Severity"; } container pfe { presence "enable pfe"; description "Apply to these pfe"; uses apply-advanced; leaf all { type empty; description "Apply to all pfe"; } } // container pfe } // grouping chassis_fru_cmerror_override_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"; } container tunnel-services { junos:must "(!(".. traffic-manager single-stream"))"; junos:must-message "Cannot configure tunnel-services if single-stream is configured"; presence "enable tunnel-services"; description "Tunnel services configuration"; uses apply-advanced; leaf bandwidth { type string; description "Amount of bandwidth reserved for tunnel service"; } leaf tunnel-only { type empty; description "Support only tunnel traffic"; } container priority { junos:must "(!(".. bandwidth"))"; junos:must-message "Priorities cannot be configured if bandwidth is specified under the tunnel-services hierarchy"; presence "enable priority"; description "Specify bandwidths with priorities"; uses apply-advanced; container high { presence "enable high"; description "High Priority"; uses apply-advanced; leaf bandwidth { type string; description "Amount of bandwidth reserved for tunnel service"; } } // container high container medium { presence "enable medium"; description "Medium Priority"; uses apply-advanced; leaf bandwidth { type string; description "Amount of bandwidth reserved for tunnel service"; } } // container medium container low { presence "enable low"; description "Low Priority"; uses apply-advanced; leaf bandwidth { type string; description "Amount of bandwidth reserved for tunnel service"; } } // container low } // container priority list tunnel-port { key "name"; ordered-by user; description "Tunnel port number"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port number"; } uses apply-advanced; leaf bandwidth { type string; description "Amount of bandwidth reserved for tunnel service"; } } // list tunnel-port } // container tunnel-services choice adaptive-or-monitoring { case case_1 { } // case case_1 container monitoring-services { description "Monitoring services configuration"; uses apply-advanced; leaf application { type enumeration { enum "dynamic-flow-capture" { value 0; description "Dynamic flow capture mode"; } enum "flow-collector" { value 1; description "Flow collector mode"; } enum "monitor" { value 2; description "Monitor mode"; } } description "Application mode"; } } // container monitoring-services } // choice adaptive-or-monitoring leaf framing { type enumeration { enum "sonet" { value 0; description "SONET mode"; } enum "sdh" { value 1; description "SDH mode"; } enum "t3" { value 2; description "T3 mode"; } enum "e3" { value 3; description "E3 mode"; } enum "t1" { value 4; description "T1 mode"; } enum "e1" { value 5; description "E1 mode"; } enum "lan" { value 6; description "LAN mode"; } } description "Framing mode"; } container recovered-clock { description "Select recovered clock for this port"; uses apply-advanced; leaf port { junos:must "(unique "chassis fpc ${fpc} pic <*> recovered-clock")"; junos:must-message "Recovered-clock can be configured only on single pic/port"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 47"; } } description "Port Number"; } leaf channel { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 3"; } } description "Channel Number"; } } // container recovered-clock 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 pic-type { type string { junos:posix-pattern "^([.]?1|[a-zA-Z][a-zA-Z0-9]*)([.]([a-zA-Z]|[0-9]+))*$"; junos:pattern-message "Must be an OID of the form 1.x.y.z... or objname[.x.y.z] where x, y, & z are either numbers or a single letter"; } description "OID of PIC type to be configured"; } container aggregated-devices { description "Aggregated devices configuration"; uses apply-advanced; container ima { description "Aggregated device options for Inverse Multiplexing for ATM"; uses apply-advanced; leaf device-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 42"; } } description "Number of IMA groups"; } } // container ima } // container aggregated-devices leaf sparse-dlcis { type empty; description "Run in sparse data-link connection identifier mode"; } container q-pic-large-buffer { presence "enable q-pic-large-buffer"; description "Run in large delay buffer mode"; uses apply-advanced; choice buffer-type { leaf small-scale { type empty; description "Supports less number of interfaces"; } leaf large-scale { type empty; description "Supports large number of interfaces"; } } // choice buffer-type } // container q-pic-large-buffer container red-buffer-occupancy { description "Computation type for RED buffer occupancy"; uses apply-advanced; container weighted-averaged { presence "enable weighted-averaged"; description "Weighted-average computation"; uses apply-advanced; leaf instant-usage-weight-exponent { type union { type uint8; type string { pattern "<.*>|$.*"; } } description "Weight for instant buffer usage (negative exponent of 2)"; } } // container weighted-averaged } // container red-buffer-occupancy container traffic-manager { description "Configure traffic manager attributes"; uses apply-advanced; leaf ingress-shaping-overhead { type union { type string { pattern "<.*>|$.*"; } type int32 { range "-62 .. 192"; } } units "bytes"; description "Number of CoS shaping overhead bytes in ingress"; } leaf egress-shaping-overhead { type union { type string { pattern "<.*>|$.*"; } type int32 { range "-62 .. 192"; } } units "bytes"; description "Number of CoS shaping overhead bytes in egress"; } leaf mode { type enumeration { enum "egress-only" { value 0; description "Egress traffic manager enabled, ingress traffic manager disabled"; } enum "session-shaping" { value 1; description "Enable egress session shaping"; } enum "ingress-and-egress" { value 2; description "Enable the ingress and egress traffic managers"; } } description "Configure traffic manager mode"; } } // container traffic-manager container idle-cell-format { description "ATM idle cell configuration"; uses apply-advanced; leaf itu-t { type empty; description "ITU-T idle cell header format"; } leaf payload-pattern { type string; description "Payload pattern byte (0x00-0xff)"; } } // container idle-cell-format container atm-l2circuit-mode { description "Enable ATM Layer 2 circuit transport mode"; uses apply-advanced; choice mode_choice { leaf aal5 { type empty; description "ATM Layer 2 circuit AAL5 mode"; } leaf cell { type empty; description "ATM Layer 2 circuit cell mode"; } container trunk { presence "enable trunk"; description "Set ATM Layer 2 circuit trunk mode"; uses apply-advanced; choice trunk-mode { container uni { presence "enable uni"; description "ATM Layer 2 circuit user-to-network interface trunk mode"; uses apply-advanced; } // container uni container nni { presence "enable nni"; description "ATM Layer 2 circuit network-to-network interface trunk mode"; uses apply-advanced; } // container nni } // choice trunk-mode } // container trunk } // choice mode_choice } // container atm-l2circuit-mode leaf atm-cell-relay-accumulation { type empty; description "Enable ATM cell-relay accumulation mode"; } leaf mlfr-uni-nni-bundles { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of multilink Frame Relay UNI NNI (FRF.16) bundles to allocate on PIC"; } leaf mlfr-uni-nni-bundles-inline { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of inline multilink frame relay UNI NNI bundles"; } container ct3 { description "CT3 NxDS0 PIC configuration"; uses apply-advanced; list port { key "name"; description "CT3 port"; uses ct3_port_type; } // list port } // container ct3 container ce1 { description "CE1 NxDS0 PIC configuration"; uses apply-advanced; list e1 { key "name"; description "E1 link"; uses ce1_channel_type; } // list e1 } // container ce1 container shdsl { description "SHDSL chassis configuration"; uses apply-advanced; leaf pic-mode { type enumeration { enum "1-port-atm" { value 0; description "Single port ATM, 8 wire mode"; } enum "2-port-atm" { value 1; description "Two port ATM, 4 wire mode"; } enum "4-port-atm" { value 2; description "Four port ATM, 2 wire mode"; } enum "efm" { value 3; description "Single port EFM, 2 wire mode"; } } default "2-port-atm"; description "PIC mode"; } } // container shdsl list port-mirror-instance { key "name"; max-elements 2; ordered-by user; leaf name { junos:must "(!("forwarding-options port-mirroring instance $$ input-parameters-instance"))"; junos:must-message "Derived instance cannot be binded"; junos:must "(((!("chassis network-services lan") && ("forwarding-options port-mirroring instance $$" || "forwarding-options analyzer $$")) || "chassis network-services lan"))"; junos:must-message "Referenced port-mirroring instance does not exist"; 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 list port-range { key "port-range-low port-range-high"; ordered-by user; description "Physical ports to channelize"; leaf port-range-low { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range low number"; } leaf port-range-high { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range high number"; } uses apply-advanced; leaf short-reach-mode { type enumeration { enum "disable" { value 0; description "Disable"; } enum "enable" { value 1; description "Enable"; } } description "Short reach mode (For ports 0..47)"; } leaf channel-speed { type enumeration { enum "10g" { value 0; description "Set the port speed to 10G. This will restart PFE"; } 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"; } } // list port-range container fibre-channel { description "Fibre channel configuration option"; uses chassis_fibre_channel_type; } // container fibre-channel container xe { description "Ports configurable in 10G mode"; uses apply-advanced; list port { key "port-number"; ordered-by user; description "Attribute port"; leaf port-number { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port number"; } uses apply-advanced; } // list port list port-range { key "port-range-low port-range-high"; ordered-by user; description "Attribute port range"; leaf port-range-low { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range low number"; } leaf port-range-high { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range high number"; } uses apply-advanced; } // list port-range } // container xe container xle { description "Ports configurable in 40G mode "; uses apply-advanced; list port { key "port-number"; ordered-by user; description "Attribute port"; leaf port-number { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port number"; } uses apply-advanced; } // list port list port-range { key "port-range-low port-range-high"; ordered-by user; description "Attribute port range"; leaf port-range-low { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range low number"; } leaf port-range-high { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range high number"; } uses apply-advanced; } // list port-range } // container xle container fte { description "Ports configurable in 40G HIGIG mode"; uses apply-advanced; list port { key "port-number"; ordered-by user; description "Attribute port"; leaf port-number { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port number"; } uses apply-advanced; } // list port list port-range { key "port-range-low port-range-high"; ordered-by user; description "Attribute port range"; leaf port-range-low { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range low number"; } leaf port-range-high { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Port range high number"; } uses apply-advanced; } // list port-range } // container fte leaf account-layer2-overhead { type empty; description "Account Layer2 overhead in egress and ingress IFD/IFL stats"; } leaf subscriber-aware-services { type empty; description "Enable subscriber aware services"; } leaf ptp-mode { type empty; description "Set hardware to run PTP BC applications."; } } // 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 { key "name"; ordered-by user; description "Fibre channel port"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 47"; } } description "Port number for fibre channel mode"; } uses apply-advanced; } // list port 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 short-reach-mode { type enumeration { enum "disable" { value 0; description "Disable"; } enum "enable" { value 1; description "Enable"; } } description "Short reach mode (For ports 0...47)"; } 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 unused { type empty; description "Keep the port unused."; } 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"; } container forwarding-mode { description "PIC packet distribution mode - Brooklyn interop mode"; uses apply-advanced; leaf sa-multicast { type empty; description "SA multicast mode - interop with 100G Brooklyn PIC"; } } // container forwarding-mode leaf no-mcast-replication { type empty; description "No multicast replication"; } } // 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; leaf disable { type empty; description "Disable better RE evaluation algorithm"; } container category { presence "enable category"; description "Failover category"; uses chassis_rdd_fail_cat_type; } // container category leaf on-loss-of-keepalives { type empty; description "Failover on loss of keepalives"; } leaf on-re-to-fpc-stale { type empty; description "Failover on loss of communication between the re and fpc"; } leaf on-disk-failure { junos:must "(("chassis redundancy failover on-loss-of-keepalives" || "chassis redundancy graceful-switchover"))"; junos:must-message "Option on-loss-of-keepalives or graceful-switchover must be set"; type empty; description "Failover on disk failure"; } leaf not-on-disk-underperform { type empty; description "Prevent gstatd from initiating failovers in response to slow disks"; } leaf disk-read-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 10000"; } } description "Read threshold (ms) on disk underperform monitoring"; } leaf disk-write-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1000 .. 10000"; } } description "Write threshold (ms) on disk underperform monitoring"; } leaf on-loss-of-vm-host-connection { type empty; description "Failover on loss of vm host connection"; } } // grouping chassis_rdd_failover_type grouping chassis_rdd_fail_cat_type { uses apply-advanced; container component-failure { presence "enable component-failure"; description "Failover due to component failure"; uses chassis_rdd_fail_cat_sev_type; } // container component-failure container software-failure { presence "enable software-failure"; description "Failover due to software failure"; uses chassis_rdd_fail_cat_sev_type; } // container software-failure container power-failure { presence "enable power-failure"; description "Failover due to power failure"; uses chassis_rdd_fail_cat_sev_type; } // container power-failure container clock-failure { presence "enable clock-failure"; description "Failover due to clock failure"; uses chassis_rdd_fail_cat_sev_type; } // container clock-failure container link-failure { presence "enable link-failure"; description "Failover due to link failure"; uses chassis_rdd_fail_cat_sev_type; } // container link-failure container degraded-health { presence "enable degraded-health"; description "Failover due to degraded health"; uses chassis_rdd_fail_cat_sev_type; } // container degraded-health } // grouping chassis_rdd_fail_cat_type grouping chassis_rdd_fail_cat_sev_type { uses apply-advanced; container critical { presence "enable critical"; description "Critical severity"; uses chassis_rdd_fail_cat_sev_act_type; } // container critical container important { presence "enable important"; description "Important severity"; uses chassis_rdd_fail_cat_sev_act_type; } // container important } // grouping chassis_rdd_fail_cat_sev_type grouping chassis_rdd_fail_cat_sev_act_type { uses apply-advanced; leaf disable { type empty; description "Disable action"; } } // grouping chassis_rdd_fail_cat_sev_act_type grouping chassis_rdd_re_type { leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 1"; } } description "Routing Engine slot number"; } choice priority { leaf master { type empty; description "Master Routing Engine"; } leaf backup { type empty; description "Backup Routing Engine"; } leaf disabled { type empty; description "Routing Engine disabled"; } } // choice priority } // grouping chassis_rdd_re_type grouping chassis_routing_engine_type { uses apply-advanced; container on-disk-failure { description "Action to take when Routing Engine disk fails"; uses chassis_re_on_disk_failure; } // container on-disk-failure container disk { description "Action to take for Routing Engine disk"; uses apply-advanced; leaf write-threshold-rate { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20"; } } units "MBPS"; default "4"; description "Write threshold rate"; } leaf write-threshold-duration { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "300 .. 2592000"; } } units "seconds"; default "1000"; description "Write threshold duration"; } leaf smart-check { type empty; description "Enable smart check command to disk"; } list ssd-series { key "name"; ordered-by user; description "Specify the ssd vendor series"; leaf name { type string { length "1 .. 40"; } description "SSD series name"; } uses apply-advanced; list id { key "name"; max-elements 30; ordered-by user; description "Attribute ids to monitor of this series type"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "SSD smart attribute id"; } uses apply-advanced; leaf id-threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4294967295"; } } description "SSD smart attribute threshold"; } leaf id-value { type enumeration { enum "raw" { value 0; description "Raw value to be used for this smart id"; } enum "norm" { value 1; description "Normalised value to be used for this smart id"; } } description "SSD attribute value"; } leaf id-flag { type enumeration { enum "low" { value 0; description "Check if value is less than smart threshold"; } enum "high" { value 1; description "Check if value is greater than smart threshold"; } } description "SSD attribute flag"; } } // list id } // list ssd-series } // container disk } // grouping chassis_routing_engine_type grouping chassis_re_on_disk_failure { choice reboot_or_halt { leaf reboot { type empty; status deprecated; description "Reboot on disk failure"; } leaf disk-failure-action { type enumeration { enum "reboot" { value 0; description "Reboot on disk failure"; } enum "halt" { value 1; description "Halt on disk failure"; } } } } // choice reboot_or_halt } // grouping chassis_re_on_disk_failure grouping chassis_sib_type { uses apply-advanced; list slot { key "name"; description "SIB slot number"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "SIB slot number"; } uses apply-advanced; } // list slot container power-off { description "Power off the SIB slot"; uses apply-advanced; list slot { key "name"; ordered-by user; description "SIB slot number to be powered off"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "SIB slot number to be offlined"; } uses apply-advanced; } // list slot } // container power-off } // grouping chassis_sib_type grouping chassisd-redundancy-group-type { uses apply-advanced; container interface-type { uses apply-advanced; container redundant-logical-tunnel { description "Redundant logical tunnel interface group"; uses apply-advanced; leaf device-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Number of devices"; } } // container redundant-logical-tunnel container redundant-virtual-tunnel { description "Redundant virtual tunnel interface group"; uses apply-advanced; leaf device-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 16"; } } description "Number of devices"; } } // container redundant-virtual-tunnel } // container interface-type } // grouping chassisd-redundancy-group-type grouping chassisd_agg_container_type { uses apply-advanced; leaf device-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 128"; } } description "Number of container devices"; } } // grouping chassisd_agg_container_type grouping chassisd_agg_enet_type { uses apply-advanced; leaf device-count { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Number of aggregated Ethernet devices"; } container lacp { description "Global Link Aggregation Control Protocol configuration"; uses apply-advanced; leaf system-priority { type string; description "Priority of the system (0 ... 65535)"; } container link-protection { presence "enable link-protection"; uses apply-advanced; leaf non-revertive { type empty; description "Don't revert links when better priority link comes up"; } } // container link-protection } // container lacp } // grouping chassisd_agg_enet_type grouping chassisd_agg_pos_type { uses apply-advanced; leaf device-count { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 64"; } } description "Number of aggregated SONET devices"; } } // grouping chassisd_agg_pos_type grouping ct3_port_type { leaf name { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 1"; } } description "CT3 L2NG_PRODUCTSport number"; } uses apply-advanced; list t1 { key "name"; description "T1 link"; uses ct3_channel_type; } // list t1 } // grouping ct3_port_type grouping ct3_channel_type { leaf name { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 27"; } } description "T1 link number"; } uses apply-advanced; list channel-group { key "name"; description "Define channel group"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 7"; } } description "Channel group number"; } leaf timeslots { type string; description "DS0 timeslots (1..24); for example, 1-3,4,9,22-24 (no spaces)"; } } // list channel-group } // grouping ct3_channel_type grouping juniper-protected-system-domain { description "Protected system domain configuration"; leaf name { type string { junos:posix-pattern "^psd([1-9]|[1-2][0-9]|[3][0-1])$"; junos:pattern-message "Protected system domain name is a string consisting of 'psd' follows by the PSD ID (1-31), ex. psd2"; } description "Name of protected system domain (psd[1-31], ex. psd2)"; } uses apply-advanced; leaf description { type string; description "Description of protected system domain"; } list lcc { key "name"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "Specific LCC"; } uses apply-advanced; leaf-list fpcs { type union { type string { pattern "<.*>|$.*"; } type uint32; } description "FPC associated with protected system domain"; } } // list lcc leaf control-system-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4"; } } description "Control system identifier"; } leaf-list control-slot-numbers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 12"; } } max-elements 2; ordered-by user; description "Slots associated with protected system domain"; } leaf control-plane-bandwidth-percent { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 100"; } } units "percent"; description "Percentage of control plane bandwidth"; } } // grouping juniper-protected-system-domain grouping juniper-protected-system-domain-traceoptions { description "Protected system domain traceoptions"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice leaf match { type jt:regular-expression; description "Regular expression for lines to be logged"; } } // container file leaf level { type enumeration { enum "error" { value 0; description "Match error conditions"; } enum "warning" { value 1; description "Match warning messages"; } enum "notice" { value 2; description "Match conditions that should be handled specially"; } enum "info" { value 3; description "Match informational messages"; } enum "verbose" { value 4; description "Match verbose messages"; } enum "all" { value 5; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "configuration" { value 0; description "Trace configuration events"; } enum "rtsock" { value 1; description "Trace rtsock messages"; } enum "ipc" { value 2; description "Trace IPC messages"; } enum "init" { value 3; description "Trace intialization messages"; } enum "psd" { value 4; description "Trace psd messages"; } enum "all" { value 5; description "Trace everything"; } } } } // list flag } // grouping juniper-protected-system-domain-traceoptions grouping macro-data-type { leaf name { type string; description "Keyword part of the keyword-value pair"; } leaf value { type string; description "Value part of the keyword-value pair"; } } // grouping macro-data-type grouping redundancy-group-type { description "Redundancy-group provisioning"; leaf name { type string { junos:posix-pattern "^[[:alpha:]][[:alnum:]_.-]+$"; junos:pattern-message "Must be a string of length at least 2 beginning with a letter and consisting of letters, numbers, periods, dashes, and underscores"; length "2 .. 64"; } description "Redundancy-group name"; } uses apply-advanced; leaf redundancy-group-id { junos:must "((!((any "protocols iccp peer <*> redundancy-group-id-list <*>" || any "logical-systems <*> protocols iccp peer <*> redundancy-group-id-list <*>")) || (any "protocols iccp peer <*> redundancy-group-id-list $$" || any "logical-systems <*> protocols iccp peer <*> redundancy-group-id-list $$")))"; junos:must-message "The redundancy group id must match with one defined at <protocols iccp peer redundancy-group-id-list> and must be less than 256"; junos:must "(unique "chassis satellite-management redundancy-groups <*> redundancy-group-id $$")"; junos:must-message "Redundancy-group-id has to be unique"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 255"; } } description "Redundancy Group ID"; } container protocol { description "Redundancy-group Protocol"; uses apply-advanced; container evpn { description "EVPN Redundancy Group"; uses apply-advanced; leaf-list peer-ip { junos:must "(!(any "chassis satellite-management redundancy-groups <*> peer-chassis-id <*>"))"; junos:must-message "peer-chassis-id configuration invalid for EVPN redundancy-group protocol"; type jt:ipv4addr; ordered-by user; description "Peer chassis IPs for EVPN Cluster"; } leaf local-ip { type jt:ipv4addr; description "Local chassis IP for EVPN Cluster"; } leaf routing-instance { type string; description "Name of routing instance for EVPN Cluster"; } } // container evpn } // container protocol list peer-chassis-id { key "name"; ordered-by user; description "Peer Chassis ID"; leaf name { junos:must "(unique "satellite-management redundancy-groups <*> peer-chassis-id $$")"; junos:must-message "Peer chassis ID must be unique"; junos:must "(!("chassis satellite-management redundancy-groups chassis-id $$"))"; junos:must-message "Peer chassis ID can't be same as local chassis ID"; type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4"; } } description "Peer chassis identifier"; } uses apply-advanced; leaf no-auto-vlan-provisioning { type empty; description "Disable auto VLAN provisioning on inter-chassis-link"; } leaf inter-chassis-link { junos:must "(((("interfaces $$ unit $$={0} family bridge interface-mode trunk" || "interfaces $$ unit $$={0} family ethernet-switching interface-mode trunk") && !(" .. no-auto-vlan-provisioning")) || " .. no-auto-vlan-provisioning"))"; junos:must-message "bridge or ethernet-switching family with unit 0 must be present for ICL trunk interface if auto-vlan-provisioning is enabled"; junos:must "("interfaces $$")"; junos:must-message "ICL interface must be defined in the [edit interfaces] hierarchy"; junos:must "(!("interfaces $$ cascade-port"))"; junos:must-message "ICL interface can't be provisioned as cascade-port"; type union { type jt:interface-device; type string { pattern "<.*>|$.*"; } } description "ICL interface name"; } leaf no-auto-iccp-provisioning { junos:must "(any "protocols iccp peer <*>")"; junos:must-message "ICCP configuration must be present if auto ICCP provisioning is disabled"; type empty; description "Disable auto ICCP provisioning"; } leaf session-establishment-hold-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "45 .. 600"; } } units "seconds"; description "Time within which connection must succeed with this peer"; } 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 leaf authentication-key { type string { length "1 .. 126"; } description "MD5 authentication key"; } container traceoptions { description "Trace options for ICCP"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice leaf match { type jt:regular-expression; description "Regular expression for lines to be logged"; } } // container file list flag { key "name"; ordered-by user; description "Trace flag information"; leaf name { type enumeration { enum "error" { value 0; description "Trace all errors"; } enum "event" { value 1; description "Trace all events"; } enum "packet" { value 2; description "Trace all packets"; } enum "pipe" { value 3; description "Trace pipe messages"; } enum "pipe-detail" { value 4; description "Trace pipe messages in detail"; } enum "all" { value 5; description "Trace everything"; } } } } // list flag } // container traceoptions } // list peer-chassis-id leaf-list satellite { type string { length "1 .. 100"; } ordered-by user; description "Satellite slot-id or range or all"; } leaf system-mac-address { type jt:mac-unicast; description "System MAC address"; } list cluster { key "name"; description "Cluster member of redundancy-group"; leaf name { junos:must "("chassis satellite-management cluster $$")"; junos:must-message "Cluster must be defined"; type string; description "Cluster name"; } uses apply-advanced; } // list cluster } // grouping redundancy-group-type grouping satellite-bridge-filter { leaf name { type string { junos:posix-pattern "!^((__.*)|(.{65,}))$"; junos:pattern-message "Must be a non-reserved string of 64 characters or less"; } description "Filter name"; } uses apply-advanced; list term { key "name"; ordered-by user; description "Define a firewall term"; leaf name { type string { junos:posix-pattern "!^((__.*)|(.{65,}))$"; junos:pattern-message "Must be a non-reserved string of 64 characters or less"; } description "Term name"; } uses apply-advanced; container from { description "Define match criteria"; uses apply-advanced; list source-mac-address { key "name"; ordered-by user; description "Match MAC source address"; uses firewall_mac_addr_object; } // list source-mac-address list destination-mac-address { key "name"; ordered-by user; description "Match MAC destination address"; uses firewall_mac_addr_object; } // list destination-mac-address list ip-source-address { key "name"; ordered-by user; description "Match IP source address"; uses firewall_addr_object; } // list ip-source-address list ip-destination-address { key "name"; ordered-by user; description "Match IP destination address"; uses firewall_addr_object; } // list ip-destination-address choice ip-protocol_choice { leaf-list ip-protocol { type string; ordered-by user; } leaf-list ip-protocol-except { type string; ordered-by user; } } // choice ip-protocol_choice choice source-port_choice { leaf-list source-port { type string; ordered-by user; } leaf-list source-port-except { type string; ordered-by user; } } // choice source-port_choice choice destination-port_choice { leaf-list destination-port { type string; ordered-by user; } leaf-list destination-port-except { type string; ordered-by user; } } // choice destination-port_choice choice user-vlan-id_choice { leaf-list user-vlan-id { type string; ordered-by user; description "Range of values"; } leaf-list user-vlan-id-except { type string; ordered-by user; description "Range of values"; } } // choice user-vlan-id_choice } // container from container then { description "Action to take if the 'from' condition is matched"; uses apply-advanced; choice designation { leaf accept { type empty; description "Accept the packet"; } leaf discard { type empty; description "Discard the packets"; } } // choice designation leaf next-hop-group { junos:must "(("policy-options satellite-policies port-group-alias $$" || "policy-options satellite-policies chassis-group-alias $$"))"; junos:must-message "port-group-alias or chassis-group-alias not defined"; type string; description "Use specified next-hop group"; } } // container then } // list term } // grouping satellite-bridge-filter grouping firewall_addr_object { leaf name { type jt:ipv4prefix; description "Prefix to match"; } leaf except { type empty; description "Match address not in this prefix"; } } // grouping firewall_addr_object grouping firewall_mac_addr_object { leaf name { type jt:mac-addr-prefix; description "MAC address to match"; } leaf except { type empty; description "Match MAC address not in this range"; } } // grouping firewall_mac_addr_object grouping upgrade-group-type { description "Upgrade group"; leaf name { type string { junos:posix-pattern "![^a-zA-Z0-9_-]|^[^a-zA-Z]|(^(all|.{64,}|.{0,1})$)"; junos:pattern-message "Must be a string of length at least 2 beginning with a letter and consisting of letters, numbers, periods, dashes, and underscores. Must not be 'all'"; length "2 .. 64"; } description "Upgrade group name"; } uses apply-advanced; leaf-list satellite { type string { length "1 .. 100"; } ordered-by user; description "Satellite slot-id or range or all"; } } // grouping upgrade-group-type } // module junos-qfx-conf-chassis
© 2024 YumaWorks, Inc. All rights reserved.