Junos virtual-chassis configuration module
Version: 2019-01-01
module junos-conf-virtual-chassis { yang-version 1; namespace "http://yang.juniper.net/junos/conf/virtual-chassis"; prefix jc-virtual-chassis; import junos-common-ddl-extensions { prefix junos; revision-date "2019-01-01"; } import junos-common-types { prefix jt; revision-date "2019-01-01"; } import junos-conf-root { prefix jc; revision-date "2019-01-01"; } organization "Juniper Networks, Inc."; contact "yang-support@juniper.net"; description "Junos virtual-chassis configuration module"; revision "2019-01-01" { description "Junos: 21.3R1.9"; } augment /jc:configuration { uses virtual-chassis-group; } augment /jc:configuration/jc:groups { uses virtual-chassis-group; } grouping virtual-chassis-group { container virtual-chassis { junos:must "(!("forwarding-options hyper-mode"))"; junos:must-message "To configure virtual-chassis, 'forwarding-options hyper-mode' should not be configured"; description "Virtual chassis configuration"; uses apply-advanced; container auto-sw-update { presence "enable auto-sw-update"; description "Auto software update"; uses apply-advanced; leaf package-name { type string { junos:posix-pattern "![*]"; junos:pattern-message "Package name cannot contain '*'. Use TAB for filename completion"; } description "URL or pathname of software package"; } container ex-4300 { presence "enable ex-4300"; description "URL or pathname of EX-43xx software package"; uses apply-advanced; leaf package-name { type string { junos:posix-pattern "![*]"; junos:pattern-message "Package name cannot contain '*'. Use TAB for filename completion"; } description "URL or pathname of software package"; } } // container ex-4300 container ex-4600 { presence "enable ex-4600"; description "URL or pathname of EX-46xx software package"; uses apply-advanced; leaf package-name { type string { junos:posix-pattern "![*]"; junos:pattern-message "Package name cannot contain '*'. Use TAB for filename completion"; } description "URL or pathname of software package"; } } // container ex-4600 container qfx-3 { presence "enable qfx-3"; description "URL or pathname of qfx-3 software package"; uses apply-advanced; leaf package-name { type string { junos:posix-pattern "![*]"; junos:pattern-message "Package name cannot contain '*'. Use TAB for filename completion"; } description "URL or pathname of software package"; } } // container qfx-3 container qfx-5 { presence "enable qfx-5"; description "URL or pathname of qfx-5 software package"; uses apply-advanced; leaf package-name { type string { junos:posix-pattern "![*]"; junos:pattern-message "Package name cannot contain '*'. Use TAB for filename completion"; } description "URL or pathname of software package"; } } // container qfx-5 } // container auto-sw-update choice provisioning { leaf preprovisioned { type empty; description "Only accept preprovisioned members"; } leaf auto-provisioned { type empty; description "Add and configure new line-card members automatically"; } } // choice provisioning leaf id { type jt:isosysid; description "Virtual chassis identifier, of type ISO system-id"; } container graceful-restart { description "Configure graceful restart attributes"; uses apply-advanced; choice enable-disable { leaf disable { type empty; description "Disable graceful restart"; } } // choice enable-disable } // container graceful-restart leaf no-split-detection { junos:must "(!("virtual-chassis heartbeat-address"))"; junos:must-message "no-split-detection is not allowed when heartbeat-address is configured"; type empty; description "Disable split detection. This command is recommended to only be enabled in a 2 member setup"; } container traceoptions { description "Trace options for virtual chassis"; uses juniper-virtual-chassis-traceoptions; } // container traceoptions leaf heartbeat-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 60"; } } units "seconds"; default "2"; description "Member's timeout period for receiving a heartbeat packet"; } leaf heartbeat-address { junos:must "(!("virtual-chassis no-split-detection"))"; junos:must-message "heartbeat-address is not allowed when no-split-detection is configured"; type jt:ipaddr; description "Peer member's IP address for sending heartbeat packet"; } leaf heartbeat-tos { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } default "0"; description "IPv4 TOS/DS or IPv6 TC octet for heartbeat packet"; } leaf locality-bias { junos:must "(!("services l2tp weighted-load-balancing"))"; junos:must-message "VC Locality-bias is not allowed with 'services l2tp weighted-load-balancing'"; junos:must "(!(any "interfaces <*> aggregated-ether-options load-balance adaptive"))"; junos:must-message "VC Locality-bias is not allowed if any interface has 'aggregated-ether-options load-balance adaptive'"; type empty; description "Bias transit packets to egress local chassis of Virtual-Chassis"; } list member { key "name"; ordered-by user; description "Member of virtual chassis configuration"; leaf name { type union { type string { pattern "<.*>|$.*"; } type int32; } description "Member identifier"; } uses apply-advanced; leaf mastership-priority { type union { type string { pattern "<.*>|$.*"; } type int32 { range "0 .. 255"; } } description "Member's mastership priority"; } leaf fabric-tree-root { type empty; description "Member's participation as root of multicast distribution tree"; } leaf role { type enumeration { enum "routing-engine" { value 0; description "Member to assume role of routing engine"; } enum "line-card" { value 1; description "Member to assume role of line card"; } } default "line-card"; description "Member's role"; } leaf serial-number { type string { length "1 .. 12"; } description "Member's serial number"; } leaf no-management-vlan { type empty; description "Disable management VLAN"; } leaf location { type string { length "1 .. 254"; } description "Member's location"; } } // list member container aliases { description "Aliases for serial numbers"; uses apply-advanced; list serial-number { key "name"; ordered-by user; description "Set alias for a serial number"; leaf name { type string { length "1 .. 12"; } description "Member's serial number"; } uses apply-advanced; leaf alias-name { type string { length "1 .. 12"; } description "Provide an alias name for this serial-number"; } } // list serial-number } // container aliases container mac-persistence-timer { description "How long to retain MAC address when member leaves virtual chassis"; uses apply-advanced; leaf timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 60"; } } units "minutes"; default "60"; description "MAC persistence time"; } leaf disable { type empty; description "Disable MAC persistence timer"; } } // container mac-persistence-timer container fast-failover { description "Fast failover mechanism"; uses apply-advanced; leaf ge { type empty; description "Fast failover on GE VC uplink ports (ring has to be formed)"; } leaf xe { type empty; description "Fast failover on XE VC uplink ports (ring has to be formed)"; } leaf et { type empty; description "Fast failover on ET VC uplink ports (ring has to be formed)"; } container vcp { description "Fast failover on VCP ports"; uses apply-advanced; leaf disable { type empty; description "Disable"; } } // container vcp } // container fast-failover choice auto_conversion_choice { leaf no-auto-conversion { type empty; description "Disable automatic VC port conversion"; } case case_2 { } // case case_2 } // choice auto_conversion_choice leaf vcp-no-hold-time { type empty; description "Set no hold time for vcp interfaces"; } } // container virtual-chassis } // grouping virtual-chassis-group grouping apply-advanced { description "Apply advanced configuration logic"; leaf-list apply-groups { type string; ordered-by user; description "Groups from which to inherit configuration data"; } leaf-list apply-groups-except { type string; ordered-by user; description "Don't inherit configuration data from these groups"; } list apply-macro { key "name"; ordered-by user; description "Macro and parameters for commit script expansion"; uses apply-macro-type; } // list apply-macro } // grouping apply-advanced grouping apply-macro-type { description "Macro data for commit-script expansion"; leaf name { type string; description "Name of the macro to be expanded"; } list data { key "name"; uses macro-data-type; } // list data } // grouping apply-macro-type grouping juniper-virtual-chassis-traceoptions { description "Global tracing options for virtual chassis"; uses apply-advanced; container file { description "Trace file options"; uses vchassis_trace_file_type; } // 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 "hello" { value 1; description "Trace virtual chassis hello packets"; } enum "psn" { value 2; description "Trace partial sequence number (PSN) packets"; } enum "csn" { value 3; description "Trace complete sequence number (CSN) packets"; } enum "lsp" { value 4; description "Trace virtual link-state packets"; } enum "normal" { value 5; description "Trace normal events"; } enum "task" { value 6; description "Trace virtual chassis task processing"; } enum "krt" { value 7; description "Trace virtual chassis kernel events"; } enum "spf" { value 8; description "Trace virtual chassis SPF events"; } enum "me" { value 9; description "Trace virtual chassis master election events"; } enum "packets" { value 10; description "Trace virtual chassis packets"; } enum "lsp-generation" { value 11; description "Trace virtual chassis LSP generation"; } enum "error" { value 12; description "Trace virtual chassis errors"; } enum "route" { value 13; description "Trace virtual chassis routing information"; } enum "state" { value 14; description "Trace virtual chassis state transitions"; } enum "auto-configuration" { value 15; description "Trace virtual chassis ports auto configuration"; } enum "graceful-restart" { value 16; description "Trace graceful restart events"; } enum "dcp-infra" { value 17; description "Trace dcp infrastructure configuration"; } enum "dcp-dev-state" { value 18; description "Trace dcp infrastructure configuration"; } enum "heartbeat" { value 19; description "Trace virtual chassis heartbeat packets"; } enum "all" { value 20; description "Trace everything"; } } } leaf send { type empty; description "Trace transmitted packets"; } leaf receive { type empty; description "Trace received packets"; } leaf detail { type empty; description "Trace detailed information"; } leaf disable { type empty; description "Disable this trace flag"; } } // list flag } // grouping juniper-virtual-chassis-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 vchassis_trace_file_type { 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 replace { type empty; description "Replace trace file rather than appending to it"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "10"; description "Maximum number of trace files"; } leaf no-stamp { type empty; description "Do not timestamp trace file"; } 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 } // grouping vchassis_trace_file_type } // module junos-conf-virtual-chassis
© 2023 YumaWorks, Inc. All rights reserved.